{"version":3,"sources":["jsdelivr-header.js","/npm/ee-ts@1.0.2/lib/ee.js"],"names":[],"mappings":"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","file":"/npm/ee-ts@1.0.2/lib/ee.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/ee-ts@1.0.2/lib/ee.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (_) try {\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$listeners = Symbol('EventEmitter.listeners');\nexports.$addListener = Symbol('EventEmitter.addListener');\n/** Statically typed event emitter */\nvar EventEmitter = /** @class */ (function () {\n    function EventEmitter() {\n        this[exports.$listeners] = {};\n    }\n    /** Count the number of listeners for an event */\n    EventEmitter.count = function (ee, key) {\n        var count = 0;\n        var list = ee[exports.$listeners][key];\n        if (list) {\n            var cb = list.first;\n            while (++count) {\n                if (cb.next) {\n                    cb = cb.next;\n                }\n                else\n                    break;\n            }\n        }\n        return count;\n    };\n    /** Check if an event has listeners */\n    EventEmitter.has = function (ee, key) {\n        if (key == '*') {\n            for (key in ee[exports.$listeners])\n                return true;\n            return false;\n        }\n        return ee[exports.$listeners][key] !== undefined;\n    };\n    /** Get an array of event keys that have listeners */\n    EventEmitter.keys = function (ee) {\n        return Object.keys(ee[exports.$listeners]);\n    };\n    /** Call the given listener when no other listeners exist */\n    EventEmitter.unhandle = function (ee, key, impl, disposables) {\n        var listener = function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            if (!ee[exports.$listeners][key].first.next)\n                return impl.apply(void 0, args);\n        };\n        return ee.on(key, listener, disposables);\n    };\n    /** Implementation */\n    EventEmitter.prototype.on = function (arg, fn, disposables) {\n        if (typeof fn == 'function') {\n            return this[exports.$addListener](arg, fn, disposables);\n        }\n        return this[exports.$addListener](arg, undefined, fn);\n    };\n    /** Implementation */\n    EventEmitter.prototype.one = function (arg, fn, disposables) {\n        if (typeof fn == 'function') {\n            return this[exports.$addListener](arg, fn, disposables, true);\n        }\n        return this[exports.$addListener](arg, undefined, fn, true);\n    };\n    /** Implementation */\n    EventEmitter.prototype.off = function (arg, fn) {\n        if (arg == '*') {\n            var cache = this[exports.$listeners];\n            this[exports.$listeners] = {};\n            if (this._onEventUnhandled) {\n                for (var key in cache) {\n                    this._onEventUnhandled(key);\n                }\n            }\n            return this;\n        }\n        if (typeof fn == 'function') {\n            var list = this[exports.$listeners][arg];\n            if (!list || unlink(list, function (l) { return l.fn == fn; })) {\n                return this;\n            }\n        }\n        delete this[exports.$listeners][arg];\n        if (this._onEventUnhandled) {\n            this._onEventUnhandled(arg);\n        }\n        return this;\n    };\n    /** Implementation */\n    EventEmitter.prototype.emit = function (key) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        var result;\n        var gen = this.listeners(key);\n        while (true) {\n            var _a = gen.next(), listener = _a.value, done = _a.done;\n            if (done) {\n                return result;\n            }\n            else {\n                var generated = listener.apply(void 0, args);\n                if (generated !== undefined) {\n                    result = generated;\n                }\n            }\n        }\n    };\n    /** Iterate over the listeners of an event */\n    EventEmitter.prototype.listeners = function (key) {\n        var list, prev, curr;\n        return __generator(this, function (_a) {\n            switch (_a.label) {\n                case 0:\n                    list = this[exports.$listeners][key];\n                    if (!list)\n                        return [2 /*return*/];\n                    prev = null;\n                    curr = list.first;\n                    _a.label = 1;\n                case 1:\n                    if (!true) return [3 /*break*/, 3];\n                    return [4 /*yield*/, curr.fn\n                        // One-time listener\n                    ];\n                case 2:\n                    _a.sent();\n                    // One-time listener\n                    if (curr.once) {\n                        // Splice it.\n                        if (prev) {\n                            prev.next = curr.next;\n                        }\n                        // Shift it.\n                        else if (curr.next) {\n                            list.first = curr = curr.next;\n                            return [3 /*break*/, 1];\n                        }\n                        // Delete it.\n                        else {\n                            delete this[exports.$listeners][key];\n                            if (this._onEventUnhandled) {\n                                this._onEventUnhandled(key);\n                            }\n                            return [2 /*return*/];\n                        }\n                    }\n                    // Recurring listener\n                    else {\n                        prev = curr;\n                    }\n                    // Continue to the next listener.\n                    if (curr.next) {\n                        curr = curr.next;\n                        return [3 /*break*/, 1];\n                    }\n                    // Update the last listener.\n                    list.last = curr;\n                    // All done.\n                    return [2 /*return*/];\n                case 3: return [2 /*return*/];\n            }\n        });\n    };\n    /** Implementation of the `on` and `one` methods */\n    EventEmitter.prototype[exports.$addListener] = function (arg, fn, disposables, once) {\n        var _this = this;\n        if (once === void 0) { once = false; }\n        if (typeof arg == 'object') {\n            var key_1;\n            var _loop_1 = function () {\n                if (typeof arg[key_1] == 'function') {\n                    var fn_1 = arg[key_1];\n                    var list = addListener(this_1[exports.$listeners], key_1, {\n                        fn: fn_1,\n                        once: once,\n                        next: null,\n                    });\n                    if (disposables) {\n                        disposables.push({\n                            dispose: function () { return _this.off(key_1, fn_1); },\n                        });\n                    }\n                    if (fn_1 == list.first.fn && this_1._onEventHandled) {\n                        this_1._onEventHandled(key_1);\n                    }\n                }\n            };\n            var this_1 = this;\n            for (key_1 in arg) {\n                _loop_1();\n            }\n            return this;\n        }\n        if (typeof fn == 'function') {\n            var key_2 = arg;\n            var list = addListener(this[exports.$listeners], key_2, {\n                fn: fn,\n                once: once,\n                next: null,\n            });\n            if (disposables) {\n                disposables.push({\n                    dispose: function () { return _this.off(key_2, fn); },\n                });\n            }\n            if (fn == list.first.fn && this._onEventHandled) {\n                this._onEventHandled(arg);\n            }\n        }\n        return fn;\n    };\n    /** Unique symbol for accessing the internal listener cache */\n    EventEmitter.ev = exports.$listeners;\n    return EventEmitter;\n}());\nexports.EventEmitter = EventEmitter;\nfunction addListener(cache, key, cb) {\n    var list = cache[key];\n    if (list) {\n        list.last.next = cb;\n        list.last = cb;\n    }\n    else {\n        cache[key] = list = { first: cb, last: cb };\n    }\n    return list;\n}\n/** Remove listeners that match the filter function */\nfunction unlink(list, filter) {\n    var prev = null;\n    var curr = list.first;\n    while (true) {\n        // Return true to unlink the listener.\n        if (filter(curr)) {\n            // Splice it.\n            if (prev) {\n                prev.next = curr.next;\n                if (curr.next) {\n                    curr = curr.next;\n                }\n                else\n                    break;\n            }\n            // Shift it.\n            else if (curr.next) {\n                list.first = curr = curr.next;\n            }\n            // No listeners remain.\n            else {\n                return null;\n            }\n        }\n        // Keep this listener.\n        else {\n            prev = curr;\n            if (curr.next) {\n                curr = curr.next;\n            }\n            else\n                break;\n        }\n    }\n    // At least one listener remains.\n    list.last = prev;\n    return list;\n}\n"]}