{"version":3,"sources":["jsdelivr-header.js","/npm/uevent@3.0.0/index.js"],"names":[],"mappings":"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","file":"/npm/uevent@3.0.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/uevent@3.0.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const returnTrue = () => true;;\nconst returnFalse = () => false;;\n\nclass Event {\n\n    /**\n     * @param {*} target\n     * @param {String} type\n     * @param {Array} args\n     */\n    constructor(target, type, args) {\n        Object.defineProperties(this, {\n            'target': {\n                get: () => {\n                    return target;\n                },\n                set: () => { },\n                enumerable: true\n            },\n            'type': {\n                get: () => {\n                    return type;\n                },\n                set: () => { },\n                enumerable: true\n            },\n            'args': {\n                get: () => {\n                    return args;\n                },\n                set: () => { },\n                enumerable: true\n            }\n        });\n\n        this.isDefaultPrevented = returnFalse;\n        this.isPropagationStopped = returnFalse;\n    }\n\n    preventDefault() {\n        this.isDefaultPrevented = returnTrue;\n    }\n\n    stopPropagation() {\n        this.isPropagationStopped = returnTrue;\n    }\n\n}\n\n/**\n * @typedef {Object.<String, Function>} Callbacks\n */\n\nclass EventEmitter {\n\n    /**\n     * Add one or many event handlers\n     *\n     * @example\n     *  obj.on('event', callback)\n     *  obj.on('event', listener) // listener has an `handleEvent` method\n     *  obj.on('event1 event2', callback)\n     *  obj.on({ event1: callback1, event2: callback2 })\n     *\n     * @param {String|Callbacks} events\n     * @param {Function} [callback]\n     * @return {this}\n     */\n    on(events, callback) {\n        this.__events = this.__events || {};\n\n        if (typeof events === 'object') {\n            for (const event in events) {\n                if (events.hasOwnProperty(event)) {\n                    this.__events[event] = this.__events[event] || [];\n                    this.__events[event].push(events[event]);\n                }\n            }\n        }\n        else {\n            events.split(' ').forEach((event) => {\n                this.__events[event] = this.__events[event] || [];\n                this.__events[event].push(callback);\n            });\n        }\n\n        return this;\n    }\n\n    /**\n     * Remove one or many or all event handlers\n     *\n     * @example\n     *  obj.off('event')\n     *  obj.off('event', callback)\n     *  obj.off('event1 event2')\n     *  obj.off({ event1: callback1, event2: callback2 })\n     *  obj.off()\n     *\n     * @param {String|Callbacks} [events]\n     * @param {Function} [callback]\n     * @return {this}\n     */\n    off(events, callback) {\n        if (typeof events === 'object') {\n            for (const event in events) {\n                if (events.hasOwnProperty(event)) {\n                    if (this.__events && (event in this.__events)) {\n                        const index = this.__events[event].indexOf(events[event]);\n                        if (index !== -1) this.__events[event].splice(index, 1);\n                    }\n                    if (this.__once && (event in this.__once)) {\n                        const index = this.__once[event].indexOf(events[event]);\n                        if (index !== -1) this.__once[event].splice(index, 1);\n                    }\n                }\n            }\n        }\n        else if (!!events) {\n            events.split(' ').forEach((event) => {\n                if (this.__events && (event in this.__events)) {\n                    if (callback) {\n                        const index = this.__events[event].indexOf(callback);\n                        if (index !== -1) this.__events[event].splice(index, 1);\n                    }\n                    else {\n                        this.__events[event].length = 0;\n                    }\n                }\n                if (this.__once && (event in this.__once)) {\n                    if (callback) {\n                        const index = this.__once[event].indexOf(callback);\n                        if (index !== -1) this.__once[event].splice(index, 1);\n                    }\n                    else {\n                        this.__once[event].length = 0;\n                    }\n                }\n            });\n        }\n        else {\n            this.__events = {};\n            this.__once = {};\n        }\n\n        return this;\n    }\n\n    /**\n     * Add one or many event handlers that will be called only once\n     * This handlers are only applicable to \"trigger\", not \"change\"\n     *\n     * @example\n     *  obj.once('event', callback)\n     *  obj.once('event1 event2', callback)\n     *  obj.once({ event1: callback1, event2: callback2 })\n     *\n     * @param {String|Callbacks} events\n     * @param {Function} [callback]\n     * @return {this}\n     */\n    once(events, callback) {\n        this.__once = this.__once || {};\n\n        if (typeof events === 'object') {\n            for (const event in events) {\n                if (events.hasOwnProperty(event)) {\n                    this.__once[event] = this.__once[event] || [];\n                    this.__once[event].push(events[event]);\n                }\n            }\n        }\n        else {\n            events.split(' ').forEach((event) => {\n                this.__once[event] = this.__once[event] || [];\n                this.__once[event].push(callback);\n            });\n        }\n\n        return this;\n    }\n\n    /**\n     * Trigger all handlers for an event\n     *\n     * @param {String} event\n     * @param {*...} [arguments]\n     * @return {Event}\n     */\n    trigger(event /* , args... */) {\n        const args = Array.prototype.slice.call(arguments, 1);\n        const e = new Event(this, event, args);\n\n        if (this.__events && (event in this.__events)) {\n            for (let i = 0, l = this.__events[event].length; i < l; i++) {\n                const f = this.__events[event][i];\n                if (typeof f === 'object') {\n                    f.handleEvent(e);\n                }\n                else {\n                    f.call(this, e, ...args);\n                }\n                if (e.isPropagationStopped()) {\n                    break;\n                }\n            }\n        }\n\n        if (this.__once && (event in this.__once)) {\n            for (let i = 0, l = this.__once[event].length; i < l; i++) {\n                const f = this.__once[event][i];\n                if (typeof f === 'object') {\n                    f.handleEvent(e);\n                }\n                else {\n                    f.call(this, e, ...args);\n                }\n                if (e.isPropagationStopped()) {\n                    break;\n                }\n            }\n            delete this.__once[event];\n        }\n\n        return e;\n    }\n\n    /**\n     * Trigger all modificators for an event, each handler must return a value\n     *\n     * @param {String} event\n     * @param {*} value\n     * @param {*...} [arguments]\n     * @return {*} modified value\n     */\n    change(event, value /* , args... */) {\n        const args = Array.prototype.slice.call(arguments, 2);\n        const e = new Event(this, event, args);\n        e.value = value;\n\n        if (this.__events && event in this.__events) {\n            for (let i = 0, l = this.__events[event].length; i < l; i++) {\n                const f = this.__events[event][i];\n                if (typeof f === 'object') {\n                    e.value = f.handleEvent(e);\n                }\n                else {\n                    e.value = f.call(this, e, e.value, ...args);\n                }\n                if (e.isPropagationStopped()) {\n                    break;\n                }\n            }\n        }\n\n        return e.value;\n    }\n\n}\n\n\nfunction mixin(target) {\n    target = typeof target === 'function' ? target.prototype : target;\n\n    ['on', 'off', 'once', 'trigger', 'change'].forEach((name) => {\n        target[name] = EventEmitter.prototype[name];\n    });\n\n    return target;\n}\n\nexport {\n    EventEmitter,\n    Event,\n    mixin,\n};\n"]}