EventKit.js.map 11.6 KB
{"version":3,"sources":["assets/script/event/EventKit.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAa,UAAU;IAInB,YAAY,cAA0B;QAH9B,cAAS,GAAG,KAAK,CAAC;QAItB,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IAC1C,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC/B;SACJ;IACL,CAAC;CACJ;AArBD,gCAqBC;AAED,MAAa,mBAAmB;IAI5B,YAAY,GAAG,WAAyB;QAHhC,cAAS,GAAG,KAAK,CAAC;QAClB,iBAAY,GAAoB,IAAI,GAAG,EAAE,CAAC;QAG9C,KAAK,IAAI,UAAU,IAAI,WAAW,EAAE;YAChC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SACxB;IACL,CAAC;IAED,GAAG,CAAC,UAAsB;QACtB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,UAAU,EAAE;gBACZ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aACrC;SACJ;IACL,CAAC;IAED,MAAM,CAAC,UAAsB;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACxC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;SAC7B;IACL,CAAC;IAED,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBACrC,UAAU,CAAC,OAAO,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;IACL,CAAC;CACJ;AAvCD,kDAuCC;AAED,MAAa,KAAK;IAId,YAAY,OAAgB,EAAE,IAAqB;QAqB1C,SAAI,GAAG,CAAC,CAAC,GAAG,SAAgB,EAA4B,EAAE;YAC/D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC5D,CAAC,CAAM,CAAC;QAvBJ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,QAAQ;QACJ,OAAO,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;IAC7C,CAAC;IAED,EAAE,CAAC,OAAU,EAAE,UAAmB,KAAK;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,OAAU,EAAE,UAAmB,KAAK;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;CAMJ;AA7BD,sBA6BC;AAED,MAAa,OAAO;IAApB;QACY,cAAS,GAAG,KAAK,CAAC;QAClB,yBAAoB,GAAyD,IAAI,GAAG,EAAE,CAAC;QAiDvF,QAAG,GAAG,CAAC,SAA0B,EAAE,eAAwC,EAAE,EAAE;YACnF,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC3B,IAAI,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3D,IAAI,WAAW,EAAE;gBACb,IAAI,WAAW,GAAG,EAAE,CAAC;gBACrB,KAAK,IAAI,OAAO,IAAI,WAAW,EAAE;oBAC7B,IAAI,OAAO,IAAI,eAAe,EAAE;wBAC5B,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBAC7B;iBACJ;gBACD,IAAI,WAAW,CAAC,MAAM,EAAE;oBACpB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;iBACzD;qBAAM;oBACH,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;iBAC/C;aACJ;QACL,CAAC,CAAC;IA2DN,CAAC;IA1HG,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,KAAK;QACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAED,OAAO;QACH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,WAAW,CAAqC,SAA2B;QACvE,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,IAAI,KAAK,CAAI,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;SAC9C;QACD,OAAO,IAAI,KAAK,CAAI,IAAI,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,EAAE,CAAC,SAA0B,EAAE,OAAgC,EAAE,UAAmB,KAAK;QACrF,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;SAC/C;QAED,IAAI,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,cAAc,EAAE;YAChB,IAAI,OAAO,EAAE;gBACT,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aACnC;iBAAM;gBACH,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAChC;SACJ;aAAM;YACH,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;SACvD;QACD,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,CAAC,SAA0B,EAAE,OAAgC,EAAE,UAAmB,KAAK;QACvF,IAAI,OAAO,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;YAC7B,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;QACF,IAAI,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,UAAU,CAAC;IACtB,CAAC;IAoBD,IAAI,CAAC,SAA0B,EAAE,GAAG,IAAW;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,MAAM,GAAmB,EAAE,CAAC;QAChC,IAAI,QAAQ,EAAE;YACV,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE;gBAC1B,IAAI;oBACA,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;oBAC3B,IAAI,GAAG,KAAK,SAAS,EAAE;wBACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;qBAClC;yBAAM,IAAI,GAAG,YAAY,OAAO,EAAE;wBAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBACpB;yBAAM;wBACH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;qBACrC;iBACJ;gBAAC,OAAO,CAAC,EAAE;oBACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACpB;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,aAAa;QACT,IAAI,GAAG,GAAa,EAAE,CAAC;QACvB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE;YAChB,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACzB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACf;SACJ;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,eAAe;QACX,IAAI,GAAG,GAAa,EAAE,CAAC;QACvB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE;YAChB,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACzB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACf;SACJ;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,yBAAyB,CAAC,SAA0B;QAChD,IAAI,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,qBAAqB;QACjB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClD,KAAK,IAAI,SAAS,IAAI,IAAI,EAAE;YACxB,MAAM,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;SAC7D;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AA9HD,0BA8HC","file":"","sourceRoot":"/","sourcesContent":["export class Disposable {\n    private _disposed = false;\n    private _disposalAction: () => void;\n\n    constructor(disposalAction: () => void) {\n        this._disposalAction = disposalAction;\n    }\n\n    get disposed() {\n        return this._disposed;\n    }\n\n    dispose() {\n        if (!this.disposed) {\n            this._disposed = true;\n            if (this._disposalAction) {\n                this._disposalAction();\n                this._disposalAction = null;\n            }\n        }\n    }\n}\n\nexport class CompositeDisposable {\n    private _disposed = false;\n    private _disposables: Set<Disposable> = new Set();\n\n    constructor(...disposables: Disposable[]) {\n        for (let disposable of disposables) {\n            this.add(disposable);\n        }\n    }\n\n    add(disposable: Disposable) {\n        if (!this._disposed) {\n            if (disposable) {\n                this._disposables.add(disposable);\n            }\n        }\n    }\n\n    remove(disposable: Disposable) {\n        if (!this._disposed) {\n            this._disposables.delete(disposable);\n        }\n    }\n\n    clear() {\n        if (!this._disposed) {\n            this._disposables.clear();\n        }\n    }\n\n    dispose() {\n        if (!this._disposed) {\n            this._disposed = true;\n            this._disposables.forEach((disposable) => {\n                disposable.dispose();\n            });\n            this._disposables = null;\n        }\n    }\n}\n\nexport class Event<T extends (...args: any[]) => any> {\n    private emitter: Emitter;\n    private name: string | symbol;\n\n    constructor(emitter: Emitter, name: string | symbol) {\n        this.emitter = emitter;\n        this.name = name;\n    }\n\n    getName() {\n        return this.name;\n    }\n\n    toString() {\n        return `[Event ${this.name.toString()}]`;\n    }\n\n    on(handler: T, unshift: boolean = false) {\n        return this.emitter.on(this.name, handler, unshift);\n    }\n\n    once(handler: T, unshift: boolean = false) {\n        return this.emitter.once(this.name, handler, unshift);\n    }\n\n    readonly emit = ((...argsparam: any[]): Promise<ReturnType<T>>[] => {\n        argsparam.unshift(this.name);\n        return this.emitter.emit.apply(this.emitter, argsparam);\n    }) as T;\n}\n\nexport class Emitter {\n    private _disposed = false;\n    private _handlersByEventName: Map<string | symbol, Array<(...args: any[]) => any>> = new Map();\n\n    get disposed() {\n        return this._disposed;\n    }\n\n    clear() {\n        this._handlersByEventName.clear();\n    }\n\n    dispose() {\n        this._handlersByEventName = null;\n        this._disposed = true;\n    }\n\n    createEvent<T extends (...args: any[]) => void>(eventName?: string | symbol) {\n        if (!eventName) {\n            return new Event<T>(this, Symbol(\"Event\"));\n        }\n        return new Event<T>(this, eventName);\n    }\n\n    on(eventName: string | symbol, handler: (...args: any[]) => any, unshift: boolean = false) {\n        if (this._disposed) {\n            throw new Error(\"Emitter has been diposed\");\n        }\n\n        let currentHandler = this._handlersByEventName.get(eventName);\n        if (currentHandler) {\n            if (unshift) {\n                currentHandler.unshift(handler);\n            } else {\n                currentHandler.push(handler);\n            }\n        } else {\n            this._handlersByEventName.set(eventName, [handler]);\n        }\n        return new Disposable(this.off.bind(this, eventName, handler));\n    }\n\n    once(eventName: string | symbol, handler: (...args: any[]) => any, unshift: boolean = false) {\n        let wrapped = (...args: any[]) => {\n            disposable.dispose();\n            return handler(...args);\n        };\n        let disposable = this.on(eventName, wrapped, unshift);\n        return disposable;\n    }\n\n    private off = (eventName: string | symbol, handlerToRemove: (...args: any[]) => any) => {\n        if (this._disposed) return;\n        let oldHandlers = this._handlersByEventName.get(eventName);\n        if (oldHandlers) {\n            let newHandlers = [];\n            for (let handler of oldHandlers) {\n                if (handler != handlerToRemove) {\n                    newHandlers.push(handler);\n                }\n            }\n            if (newHandlers.length) {\n                this._handlersByEventName.set(eventName, newHandlers);\n            } else {\n                this._handlersByEventName.delete(eventName);\n            }\n        }\n    };\n\n    emit(eventName: string | symbol, ...args: any[]) {\n        let handlers = this._handlersByEventName.get(eventName);\n        let result: Promise<any>[] = [];\n        if (handlers) {\n            for (let handler of handlers) {\n                try {\n                    let ret = handler(...args);\n                    if (ret === undefined) {\n                        result.push(Promise.resolve());\n                    } else if (ret instanceof Promise) {\n                        result.push(ret);\n                    } else {\n                        result.push(Promise.resolve(ret));\n                    }\n                } catch (e) {\n                    console.error(e);\n                }\n            }\n        }\n        return result;\n    }\n\n    getEventNames() {\n        let ret: string[] = [];\n        let keys = Object.keys(this._handlersByEventName);\n        for (let k of keys) {\n            if (typeof (k) === 'string') {\n                ret.push(k);\n            }\n        }\n        return ret;\n    }\n\n    getEventSymbols() {\n        let ret: symbol[] = [];\n        let keys = Object.keys(this._handlersByEventName);\n        for (let k of keys) {\n            if (typeof (k) === 'symbol') {\n                ret.push(k);\n            }\n        }\n        return ret;\n    }\n\n    listenerCountForEventName(eventName: string | symbol) {\n        let handlers = this._handlersByEventName.get(eventName);\n        return handlers ? handlers.length : 0;\n    }\n\n    getTotalListenerCount() {\n        let result = 0;\n        let keys = Object.keys(this._handlersByEventName);\n        for (let eventName of keys) {\n            result += this._handlersByEventName.get(eventName).length;\n        }\n        return result;\n    }\n}\n"]}