{"version":3,"file":"event_hub.0994ac0a.js","sources":["../../../node_modules/tiny-emitter/index.js","../../../node_modules/tiny-emitter/instance.js","../../../app/javascript/modules/event_hub.ts"],"sourcesContent":["function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n","var E = require('./index.js');\nmodule.exports = new E();\n","import { VideoJson } from \"@models/Video\";\nimport { useEventListener } from \"@vueuse/core\";\nimport emitter from \"tiny-emitter/instance\";\n\nexport type EditorState = { isLoading: boolean; isSaving: boolean };\n\nexport type EventHubChannels = {\n \"open-upsell-modal\": (benefit: string) => void; // The argument type of the first channel carries over to later args?\n \"add-video\": () => void;\n \"delete-video\": (videoId: string) => void; // Typing fails when we set this to a type other than string. But why?\n \"changed-events\": () => void;\n \"loaded-events\": () => void;\n};\n\ntype EventHub = {\n // eventHub type based on EventHubChannels\n $on: (channel: T, callback: EventHubChannels[T]) => void;\n addEventListener: (\n channel: T,\n callback: EventHubChannels[T],\n ) => void;\n $once: (channel: T, callback: EventHubChannels[T]) => void;\n $off: (channel: T, callback: EventHubChannels[T]) => void;\n removeEventListener: (\n channel: T,\n callback: EventHubChannels[T],\n ) => void;\n $emit: (\n channel: T,\n ...args: Parameters\n ) => void;\n};\n\nexport const eventHub: EventHub = {\n $on: (...args) => emitter.on(...args),\n addEventListener: (...args) => emitter.on(...args),\n $once: (...args) => emitter.once(...args),\n $off: (...args) => emitter.off(...args),\n removeEventListener: (...args) => emitter.off(...args),\n $emit: (channel, ...args) => emitter.emit(channel, ...args),\n};\nexport default eventHub;\n\nexport function listenToEvent(\n channel: T,\n callback: EventHubChannels[T],\n): void {\n useEventListener(eventHub, channel, callback);\n}\n"],"names":["E","name","callback","ctx","self","listener","data","evtArr","i","len","e","evts","liveEvents","tinyEmitterModule","tinyEmitter","require$$0","instance","eventHub","args","emitter","channel","listenToEvent","useEventListener"],"mappings":"qEAAA,SAASA,GAAK,CAGd,CAEAA,EAAE,UAAY,CACZ,GAAI,SAAUC,EAAMC,EAAUC,EAAK,CACjC,IAAI,EAAI,KAAK,IAAM,KAAK,EAAI,CAAA,GAE5B,OAAC,EAAEF,KAAU,EAAEA,GAAQ,CAAA,IAAK,KAAK,CAC/B,GAAIC,EACJ,IAAKC,CACX,CAAK,EAEM,IACR,EAED,KAAM,SAAUF,EAAMC,EAAUC,EAAK,CACnC,IAAIC,EAAO,KACX,SAASC,GAAY,CACnBD,EAAK,IAAIH,EAAMI,CAAQ,EACvBH,EAAS,MAAMC,EAAK,SAAS,CAEnC,CACI,OAAAE,EAAS,EAAIH,EACN,KAAK,GAAGD,EAAMI,EAAUF,CAAG,CACnC,EAED,KAAM,SAAUF,EAAM,CACpB,IAAIK,EAAO,CAAA,EAAG,MAAM,KAAK,UAAW,CAAC,EACjCC,IAAW,KAAK,IAAM,KAAK,EAAI,CAAA,IAAKN,IAAS,CAAE,GAAE,MAAK,EACtDO,EAAI,EACJC,EAAMF,EAAO,OAEjB,IAAKC,EAAGA,EAAIC,EAAKD,IACfD,EAAOC,GAAG,GAAG,MAAMD,EAAOC,GAAG,IAAKF,CAAI,EAGxC,OAAO,IACR,EAED,IAAK,SAAUL,EAAMC,EAAU,CAC7B,IAAIQ,EAAI,KAAK,IAAM,KAAK,EAAI,CAAA,GACxBC,EAAOD,EAAET,GACTW,EAAa,CAAA,EAEjB,GAAID,GAAQT,EACV,QAASM,EAAI,EAAGC,EAAME,EAAK,OAAQH,EAAIC,EAAKD,IACtCG,EAAKH,GAAG,KAAON,GAAYS,EAAKH,GAAG,GAAG,IAAMN,GAC9CU,EAAW,KAAKD,EAAKH,EAAE,EAQ7B,OAACI,EAAW,OACRF,EAAET,GAAQW,EACV,OAAOF,EAAET,GAEN,IACR,CACH,EAEAY,EAAc,QAAGb,EACjBc,EAAA,QAAA,YAA6Bd,EClE7B,IAAIA,EAAIe,EAAAA,QACRC,EAAiB,IAAIhB,ECgCd,MAAMiB,EAAqB,CAChC,IAAK,IAAIC,IAASC,EAAQ,GAAG,GAAGD,CAAI,EACpC,iBAAkB,IAAIA,IAASC,EAAQ,GAAG,GAAGD,CAAI,EACjD,MAAO,IAAIA,IAASC,EAAQ,KAAK,GAAGD,CAAI,EACxC,KAAM,IAAIA,IAASC,EAAQ,IAAI,GAAGD,CAAI,EACtC,oBAAqB,IAAIA,IAASC,EAAQ,IAAI,GAAGD,CAAI,EACrD,MAAO,CAACE,KAAYF,IAASC,EAAQ,KAAKC,EAAS,GAAGF,CAAI,CAC5D,EAGgB,SAAAG,EACdD,EACAlB,EACM,CACWoB,EAAAL,EAAUG,EAASlB,CAAQ,CAC9C"}