{"version":3,"file":"kendo.data.signalr.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendodata","signalr","js","this","$","kendo","window","isFunction","isJQueryPromise","promise","done","fail","isNativePromise","then","catch","transport","data","RemoteTransport","extend","init","options","Error","hub","on","invoke","fn","call","push","callbacks","client","create","pushCreate","update","pushUpdate","destroy","pushDestroy","_crud","type","server","format","args","parameterMap","isEmptyObject","apply","success","error","read","transports","jQuery"],"sources":["kendo.data.signalr.js"],"mappings":"CAAA,SAAWA,EAAQC,GACI,iBAAZC,SAA0C,oBAAXC,OAAyBA,OAAOD,QAAUD,EAAQG,QAAQ,kBAC9E,mBAAXC,QAAyBA,OAAOC,IAAMD,OAAO,CAAC,kBAAmBJ,KACvED,EAA+B,oBAAfO,WAA6BA,WAAaP,GAAUQ,MAAcC,UAAYT,EAAOS,WAAa,GAAIT,EAAOS,UAAUC,QAAUV,EAAOS,UAAUC,SAAW,GAAIV,EAAOS,UAAUC,QAAQC,GAAKV,KAHpN,CAIGW,MAAM,WA8HL,OArHA,SAAUC,GACN,IAAIC,EAAQC,OAAOD,MACfE,EAAaF,EAAME,WAEvB,SAASC,EAAgBC,GACrB,OAAOA,GAAWF,EAAWE,EAAQC,OAASH,EAAWE,EAAQE,MAGrE,SAASC,EAAgBH,GACrB,OAAOA,GAAWF,EAAWE,EAAQI,OAASN,EAAWE,EAAQK,OAGrE,IAAIC,EAAYV,EAAMW,KAAKC,gBAAgBC,OAAO,CAC9CC,KAAM,SAASC,GACX,IAAInB,EAAUmB,GAAWA,EAAQnB,QAAUmB,EAAQnB,QAAU,GAEzDQ,EAAUR,EAAQQ,QAEtB,IAAKA,EACD,MAAM,IAAIY,MAAM,qCAGpB,IAAKb,EAAgBC,KAAaG,EAAgBH,GAC9C,MAAM,IAAIY,MAAM,2CAGpBlB,KAAKM,QAAUA,EAEf,IAAIa,EAAMrB,EAAQqB,IAElB,IAAKA,EACD,MAAM,IAAID,MAAM,iCAGpB,GAAqB,mBAAVC,EAAIC,IAAyC,mBAAdD,EAAIE,OAC1C,MAAM,IAAIH,MAAM,sDAGpBlB,KAAKmB,IAAMA,EAEXjB,EAAMW,KAAKC,gBAAgBQ,GAAGN,KAAKO,KAAKvB,KAAMiB,IAGlDO,KAAM,SAASC,GACX,IAAIC,EAAS1B,KAAKiB,QAAQnB,QAAQ4B,QAAU,GAExCA,EAAOC,QACP3B,KAAKmB,IAAIC,GAAGM,EAAOC,OAAQF,EAAUG,YAGrCF,EAAOG,QACP7B,KAAKmB,IAAIC,GAAGM,EAAOG,OAAQJ,EAAUK,YAGrCJ,EAAOK,SACP/B,KAAKmB,IAAIC,GAAGM,EAAOK,QAASN,EAAUO,cAI9CC,MAAO,SAAShB,EAASiB,GACrB,IAAIf,EAAMnB,KAAKmB,IACXb,EAAUN,KAAKM,QACf6B,EAASnC,KAAKiB,QAAQnB,QAAQqC,OAElC,IAAKA,IAAWA,EAAOD,GACnB,MAAM,IAAIhB,MAAMhB,EAAMkC,OAAO,uCAAwCF,IAGzE,IAAIG,EAAO,CAACF,EAAOD,IAEfrB,EAAOb,KAAKsC,aAAarB,EAAQJ,KAAMqB,GAEtCjC,EAAEsC,cAAc1B,IACjBwB,EAAKb,KAAKX,GAGVR,EAAgBC,GAChBA,EAAQC,MAAK,WACTY,EAAIE,OAAOmB,MAAMrB,EAAKkB,GACX9B,KAAKU,EAAQwB,SACbjC,KAAKS,EAAQyB,UAErBjC,EAAgBH,IACvBA,EAAQI,MAAK,WACTS,EAAIE,OAAOmB,MAAMrB,EAAKkB,GACX3B,KAAKO,EAAQwB,SACb9B,MAAMM,EAAQyB,WAKrCC,KAAM,SAAS1B,GACXjB,KAAKiC,MAAMhB,EAAS,SAGxBU,OAAQ,SAASV,GACbjB,KAAKiC,MAAMhB,EAAS,WAGxBY,OAAQ,SAASZ,GACbjB,KAAKiC,MAAMhB,EAAS,WAGxBc,QAAS,SAASd,GACdjB,KAAKiC,MAAMhB,EAAS,cAI5BhB,EAAEc,QAAO,EAAMb,EAAMW,KAAM,CACvB+B,WAAY,CACR9C,QAASc,KA9GrB,CAkHGT,OAAOD,MAAM2C,QACF3C","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.data.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.data'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendodata = global.kendodata || {}, global.kendodata.signalr = global.kendodata.signalr || {}, global.kendodata.signalr.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"data.signalr\",\n name: \"SignalR\",\n category: \"framework\",\n depends: [ \"data\" ],\n hidden: true\n };\n\n (function($) {\n var kendo = window.kendo;\n var isFunction = kendo.isFunction;\n\n function isJQueryPromise(promise) {\n return promise && isFunction(promise.done) && isFunction(promise.fail);\n }\n\n function isNativePromise(promise) {\n return promise && isFunction(promise.then) && isFunction(promise.catch);\n }\n\n var transport = kendo.data.RemoteTransport.extend({\n init: function(options) {\n var signalr = options && options.signalr ? options.signalr : {};\n\n var promise = signalr.promise;\n\n if (!promise) {\n throw new Error('The \"promise\" option must be set.');\n }\n\n if (!isJQueryPromise(promise) && !isNativePromise(promise)) {\n throw new Error('The \"promise\" option must be a Promise.');\n }\n\n this.promise = promise;\n\n var hub = signalr.hub;\n\n if (!hub) {\n throw new Error('The \"hub\" option must be set.');\n }\n\n if (typeof hub.on != \"function\" || typeof hub.invoke != \"function\") {\n throw new Error('The \"hub\" option is not a valid SignalR hub proxy.');\n }\n\n this.hub = hub;\n\n kendo.data.RemoteTransport.fn.init.call(this, options);\n },\n\n push: function(callbacks) {\n var client = this.options.signalr.client || {};\n\n if (client.create) {\n this.hub.on(client.create, callbacks.pushCreate);\n }\n\n if (client.update) {\n this.hub.on(client.update, callbacks.pushUpdate);\n }\n\n if (client.destroy) {\n this.hub.on(client.destroy, callbacks.pushDestroy);\n }\n },\n\n _crud: function(options, type) {\n var hub = this.hub;\n var promise = this.promise;\n var server = this.options.signalr.server;\n\n if (!server || !server[type]) {\n throw new Error(kendo.format('The \"server.{0}\" option must be set.', type));\n }\n\n var args = [server[type]];\n\n var data = this.parameterMap(options.data, type);\n\n if (!$.isEmptyObject(data)) {\n args.push(data);\n }\n\n if (isJQueryPromise(promise)) {\n promise.done(function() {\n hub.invoke.apply(hub, args)\n .done(options.success)\n .fail(options.error);\n });\n } else if (isNativePromise(promise)) {\n promise.then(function() {\n hub.invoke.apply(hub, args)\n .then(options.success)\n .catch(options.error);\n });\n }\n },\n\n read: function(options) {\n this._crud(options, \"read\");\n },\n\n create: function(options) {\n this._crud(options, \"create\");\n },\n\n update: function(options) {\n this._crud(options, \"update\");\n },\n\n destroy: function(options) {\n this._crud(options, \"destroy\");\n }\n });\n\n $.extend(true, kendo.data, {\n transports: {\n signalr: transport\n }\n });\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}