{"version":3,"sources":["../../src/eventbus/index.ts"],"sourcesContent":["export interface EventBusOptions {\n    on(type: string, handler: Function): void;\n    off(type: string, handler: Function): void;\n    emit(type: string, evt?: any): void;\n    clear(): void;\n}\n\nexport function EventBus(): EventBusOptions {\n    const allHandlers = new Map<string, Function[]>();\n\n    return {\n        on(type: string, handler: Function) {\n            let handlers = allHandlers.get(type);\n\n            if (!handlers) handlers = [handler];\n            else handlers.push(handler);\n\n            allHandlers.set(type, handlers);\n\n            return this;\n        },\n        off(type: string, handler: Function) {\n            let handlers = allHandlers.get(type);\n\n            if (handlers) {\n                handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n            }\n\n            return this;\n        },\n        emit(type: string, evt?: any) {\n            let handlers = allHandlers.get(type);\n\n            if (handlers) {\n                handlers.slice().map((handler) => {\n                    handler(evt);\n                });\n            }\n        },\n        clear() {\n            allHandlers.clear();\n        }\n    };\n}\n"],"mappings":";AAOO,SAAS,WAA4B;AACxC,QAAM,cAAc,oBAAI,IAAwB;AAEhD,SAAO;AAAA,IACH,GAAG,MAAc,SAAmB;AAChC,UAAI,WAAW,YAAY,IAAI,IAAI;AAEnC,UAAI,CAAC,SAAU,YAAW,CAAC,OAAO;AAAA,UAC7B,UAAS,KAAK,OAAO;AAE1B,kBAAY,IAAI,MAAM,QAAQ;AAE9B,aAAO;AAAA,IACX;AAAA,IACA,IAAI,MAAc,SAAmB;AACjC,UAAI,WAAW,YAAY,IAAI,IAAI;AAEnC,UAAI,UAAU;AACV,iBAAS,OAAO,SAAS,QAAQ,OAAO,MAAM,GAAG,CAAC;AAAA,MACtD;AAEA,aAAO;AAAA,IACX;AAAA,IACA,KAAK,MAAc,KAAW;AAC1B,UAAI,WAAW,YAAY,IAAI,IAAI;AAEnC,UAAI,UAAU;AACV,iBAAS,MAAM,EAAE,IAAI,CAAC,YAAY;AAC9B,kBAAQ,GAAG;AAAA,QACf,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,IACA,QAAQ;AACJ,kBAAY,MAAM;AAAA,IACtB;AAAA,EACJ;AACJ;","names":[]}