{"version":3,"sources":["webpack:///./node_modules/aurelia-event-aggregator/dist/native-modules/aurelia-event-aggregator.js"],"names":["logger","Handler","messageType","callback","this","prototype","handle","message","call","invokeCallback","data","event","e","error","invokeHandler","handler","EventAggregator","eventLookup","messageHandlers","publish","subscribers","i","Error","slice","length","subscribe","push","dispose","idx","indexOf","splice","subscribeOnce","sub","a","b","includeEventsIn","obj","ea","configure","config","instance","aurelia"],"mappings":"gQAIIA,E,MAAS,UAAqB,oBAE9BC,EAAU,WACZ,SAASA,EAAQC,EAAaC,GAG5BC,KAAKF,YAAcA,EACnBE,KAAKD,SAAWA,EASlB,OANAF,EAAQI,UAAUC,OAAS,SAAgBC,GACrCA,aAAmBH,KAAKF,aAC1BE,KAAKD,SAASK,KAAK,KAAMD,IAItBN,EAdK,GAiBd,SAASQ,EAAeN,EAAUO,EAAMC,GACtC,IACER,EAASO,EAAMC,GACf,MAAOC,GACPZ,EAAOa,MAAMD,IAIjB,SAASE,EAAcC,EAASL,GAC9B,IACEK,EAAQT,OAAOI,GACf,MAAOE,GACPZ,EAAOa,MAAMD,IAIV,IAAII,EAAkB,WAC3B,SAASA,IAGPZ,KAAKa,YAAc,GACnBb,KAAKc,gBAAkB,GAoEzB,OAjEAF,EAAgBX,UAAUc,QAAU,SAAiBR,EAAOD,GAC1D,IAAIU,OAAc,EACdC,OAAI,EAER,IAAKV,EACH,MAAM,IAAIW,MAAM,sBAGlB,GAAqB,iBAAVX,GAET,GADAS,EAAchB,KAAKa,YAAYN,GAK7B,IAFAU,GADAD,EAAcA,EAAYG,SACVC,OAETH,KACLZ,EAAeW,EAAYC,GAAIX,EAAMC,QAOzC,IAFAU,GADAD,EAAchB,KAAKc,gBAAgBK,SACnBC,OAETH,KACLP,EAAcM,EAAYC,GAAIV,IAKpCK,EAAgBX,UAAUoB,UAAY,SAAmBd,EAAOR,GAC9D,IAAIY,OAAU,EACVK,OAAc,EAElB,IAAKT,EACH,MAAM,IAAIW,MAAM,mCAalB,MAVqB,iBAAVX,GACTI,EAAUZ,EACViB,EAAchB,KAAKa,YAAYN,KAAWP,KAAKa,YAAYN,GAAS,MAEpEI,EAAU,IAAId,EAAQU,EAAOR,GAC7BiB,EAAchB,KAAKc,iBAGrBE,EAAYM,KAAKX,GAEV,CACLY,QAAS,WACP,IAAIC,EAAMR,EAAYS,QAAQd,IACjB,IAATa,GACFR,EAAYU,OAAOF,EAAK,MAMhCZ,EAAgBX,UAAU0B,cAAgB,SAAuBpB,EAAOR,GACtE,IAAI6B,EAAM5B,KAAKqB,UAAUd,EAAO,SAAUsB,EAAGC,GAE3C,OADAF,EAAIL,UACGxB,EAAS8B,EAAGC,KAGrB,OAAOF,GAGFhB,EAzEoB,GA4EtB,SAASmB,EAAgBC,GAC9B,IAAIC,EAAK,IAAIrB,EAcb,OAZAoB,EAAIL,cAAgB,SAAUpB,EAAOR,GACnC,OAAOkC,EAAGN,cAAcpB,EAAOR,IAGjCiC,EAAIX,UAAY,SAAUd,EAAOR,GAC/B,OAAOkC,EAAGZ,UAAUd,EAAOR,IAG7BiC,EAAIjB,QAAU,SAAUR,EAAOD,GAC7B2B,EAAGlB,QAAQR,EAAOD,IAGb2B,EAGF,SAASC,EAAUC,GACxBA,EAAOC,SAASxB,EAAiBmB,EAAgBI,EAAOE","file":"npm.aurelia-event-aggregator.984c468f19f1347af6e7.js","sourcesContent":["\n\nimport * as LogManager from 'aurelia-logging';\n\nvar logger = LogManager.getLogger('event-aggregator');\n\nvar Handler = function () {\n function Handler(messageType, callback) {\n \n\n this.messageType = messageType;\n this.callback = callback;\n }\n\n Handler.prototype.handle = function handle(message) {\n if (message instanceof this.messageType) {\n this.callback.call(null, message);\n }\n };\n\n return Handler;\n}();\n\nfunction invokeCallback(callback, data, event) {\n try {\n callback(data, event);\n } catch (e) {\n logger.error(e);\n }\n}\n\nfunction invokeHandler(handler, data) {\n try {\n handler.handle(data);\n } catch (e) {\n logger.error(e);\n }\n}\n\nexport var EventAggregator = function () {\n function EventAggregator() {\n \n\n this.eventLookup = {};\n this.messageHandlers = [];\n }\n\n EventAggregator.prototype.publish = function publish(event, data) {\n var subscribers = void 0;\n var i = void 0;\n\n if (!event) {\n throw new Error('Event was invalid.');\n }\n\n if (typeof event === 'string') {\n subscribers = this.eventLookup[event];\n if (subscribers) {\n subscribers = subscribers.slice();\n i = subscribers.length;\n\n while (i--) {\n invokeCallback(subscribers[i], data, event);\n }\n }\n } else {\n subscribers = this.messageHandlers.slice();\n i = subscribers.length;\n\n while (i--) {\n invokeHandler(subscribers[i], event);\n }\n }\n };\n\n EventAggregator.prototype.subscribe = function subscribe(event, callback) {\n var handler = void 0;\n var subscribers = void 0;\n\n if (!event) {\n throw new Error('Event channel/type was invalid.');\n }\n\n if (typeof event === 'string') {\n handler = callback;\n subscribers = this.eventLookup[event] || (this.eventLookup[event] = []);\n } else {\n handler = new Handler(event, callback);\n subscribers = this.messageHandlers;\n }\n\n subscribers.push(handler);\n\n return {\n dispose: function dispose() {\n var idx = subscribers.indexOf(handler);\n if (idx !== -1) {\n subscribers.splice(idx, 1);\n }\n }\n };\n };\n\n EventAggregator.prototype.subscribeOnce = function subscribeOnce(event, callback) {\n var sub = this.subscribe(event, function (a, b) {\n sub.dispose();\n return callback(a, b);\n });\n\n return sub;\n };\n\n return EventAggregator;\n}();\n\nexport function includeEventsIn(obj) {\n var ea = new EventAggregator();\n\n obj.subscribeOnce = function (event, callback) {\n return ea.subscribeOnce(event, callback);\n };\n\n obj.subscribe = function (event, callback) {\n return ea.subscribe(event, callback);\n };\n\n obj.publish = function (event, data) {\n ea.publish(event, data);\n };\n\n return ea;\n}\n\nexport function configure(config) {\n config.instance(EventAggregator, includeEventsIn(config.aurelia));\n}"],"sourceRoot":""}