{"version":3,"sources":["jsdelivr-header.js","/npm/energy@0.8.0/energy.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;CCLC,SAAS,EAAM,EAAM,GACC,oBAAV,QAAyB,OAAO,QAAS,OAAO,QAAU,IAChE,EAAS,OAAI,GACpB,CAHC,CAGC,KAAM,GAAU,WAEhB,IAAI,EAAU,EAAO,UAAY,EAAO,UACpC,EAAU,CAAC,EAEX,EADQ,GACM,MACd,EAAO,EAAQ,eACf,EAAS,UACT,EAAS,UAET,EAAO,OACP,EAAY,YAKhB,SAAS,EAAS,EAAK,GACrB,IAAK,IAAI,KAAK,OAAU,IAAW,EAAI,KAAI,EAAI,GAAK,EAAK,IACzD,OAAO,CACT,CAKA,SAAS,IACP,KAAK,GAAU,CAAC,CAClB,CAKA,SAAS,EAAO,GACd,OAAO,aAAa,EAAS,EAAE,KAAU,IAAI,CAC/C,CA4BA,SAAS,EAAQ,EAAK,EAAO,EAAM,GACjC,IAAI,EAAI,GAAO,EAAI,OAAQ,EAAI,EAE/B,IADA,OAAO,IAAW,EAAO,EAAU,EAC5B,EAAI,GAAO,IAAS,EAAI,KAAK,MAAM,EAAO,KACjD,OAAO,CACT,CAyGA,OAnIA,EAAW,GAAI,SAAS,GACtB,OAAO,EAAS,EAAQ,KAAK,OAC/B,EAOA,EAAY,GAAI,SAAS,GAEvB,OADA,EAAS,EAAQ,MACV,IACT,EAgDA,EAAQ,GAAQ,WAEd,OA7BF,SAAgB,EAAG,EAAG,GACpB,EAAE,GAAK,EAAK,KAAK,KAAM,IAAM,KAAK,IAAM,CAC1C,CA0BE,CAAO,KAAM,EAAQ,CAAC,GACf,IACT,EAMA,EAAY,KAAI,SAAS,GACvB,IAAI,EAAO,EAAM,KAAK,UAAW,GACjC,OAD6C,EAAQ,KAAK,GAAW,GAAK,KAAM,EAElF,EAMA,EAAQ,GAAa,SAAS,GAC5B,GAAI,MAAQ,EAAI,MAAM,IAAI,UAAU,cACpC,OAAO,KAAK,GAAQ,IA5GC,EA4Ga,KAAK,GAAQ,cA3GvB,OAAS,GA2GsB,GA5G3C,IAAS,CA6GvB,EAKA,EAAe,MAAI,WACjB,IAAI,EAAQ,IAAI,EAAO,MAEvB,OADA,EAAS,EAAM,GAAS,KAAK,IACtB,CACT,EAOA,EAAY,GAAI,SAAY,EAAI,GAC9B,GAAI,MAAQ,GAAM,MAAQ,EAAI,MAAM,IAAI,UAAU,OAElD,OADA,KAAK,GAAW,GAAI,KAAK,GAClB,IACT,EAQA,EAAa,IAAI,SAAS,EAAI,EAAI,GAIhC,OAHI,MAAQ,EA3Dd,SAAc,EAAG,EAAG,GAClB,IAAU,EAEV,IAAK,IAAI,EAAI,EAAE,OAAQ,SAZb,EAY0B,EAAE,OAZlB,EAYsB,IAXd,GAAY,EAAS,KAAY,KAWb,EAAE,OAAO,EAAG,MAAS,KAZvE,IAAY,EAAU,CAatB,CAuDkB,CAAK,KAAK,GAAW,GAAK,EAAI,GACrC,MAAQ,EAAI,KAAK,GAAQ,QAAM,EAC9B,UAAU,SAAQ,KAAK,GAAU,CAAC,GACrC,IACT,EAOA,EAAc,KAAI,SAAS,EAAI,GAC7B,IAAI,EAAO,KAAM,EAAU,WAEzB,OADA,EAAU,IAAE,EAAI,GACT,EAAG,MAAM,KAAM,UACxB,EAEA,OADA,EAAQ,GAAU,EACX,KAAS,GAAE,EAAI,EACxB,EAEA,EAAgB,QAAI,EACb,CACT","file":"/npm/energy@0.8.0/energy.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/energy@0.8.0/energy.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/** @preserve npm.im/energy */\r\n!function(root, name, make) {\r\n  if (typeof module != 'undefined' && module.exports) module.exports = make()\r\n  else root[name] = make()\r\n}(this, 'energy', function() {\r\n\r\n  var emitter = energy.prototype = Energy.prototype\r\n    , proceed = {}\r\n    , array = []\r\n    , slice = array.slice\r\n    , owns = proceed.hasOwnProperty\r\n    , events = '_events'\r\n    , origin = '_origin'\r\n    , emit = 'emit'\r\n    , init = 'init'\r\n    , listeners = 'listeners'\r\n    , ifArray = function(o) {\r\n        return o instanceof Array && o\r\n      }\r\n\r\n  function defaults(ops, defs) {\r\n    for (var k in defs) if (void 0 === ops[k]) ops[k] = defs[k]\r\n    return ops\r\n  }\r\n\r\n  /**\r\n   * @constructor\r\n   */\r\n  function Energy() {\r\n    this[events] = {}\r\n  }\r\n\r\n  /**\r\n   * @return {Energy} emitter instance\r\n   */\r\n  function energy(o) {\r\n    return o instanceof Energy ? o[init]() : new Energy\r\n  }\r\n\r\n  /**\r\n   * @this {Function} wrapper that constructs the source instance\r\n   * @param {Object|Function} target to convert into emitter\r\n   * @return {Object|Function} target converted into emitter\r\n   */\r\n  energy['to'] = function(target) {\r\n    return defaults(target, this.call())\r\n  }\r\n\r\n  /**\r\n   * @this {Object|Energy|Function} source emitter or emitter-like\r\n   * @param {Object|Energy|Function} target to convert into emitter\r\n   * @return {Object|Energy|Function} source for chaining\r\n   */\r\n  emitter['to'] = function(target) {\r\n    defaults(target, this)\r\n    return this\r\n  }\r\n\r\n  /**\r\n   * @param {{length:number}} fns\r\n   * @param {*} scope\r\n   * @param {Array|Arguments} args\r\n   * @param {*=} stop breaker\r\n   * @return {number} fired\r\n   */\r\n  function applies(fns, scope, args, stop) {\r\n    var l = fns && fns.length, i = 0\r\n    stop = void 0 === stop ? proceed : stop\r\n    while (i < l) if (stop === fns[i++].apply(scope, args)) break\r\n    return i\r\n  }\r\n\r\n  /**\r\n   * @param {Object} o\r\n   * @param {string} k\r\n   * @param {*} def\r\n   */\r\n  function ensure(o, k, def) {\r\n    o[k] = owns.call(this, k) && this[k] || def\r\n  }\r\n\r\n  /**\r\n   * @param {*} listener\r\n   * @param {*} fn\r\n   * @return {boolean} true if they're the same listener\r\n   */\r\n  function is(listener, fn) {\r\n    return listener === fn || !!listener && listener[origin] === fn\r\n  }\r\n\r\n  /**\r\n   * @param {Array} a array to mutate\r\n   * @param {*=} v value to remove\r\n   * @param {number=} quota occurrences to remove\r\n   */\r\n  function pull(a, v, quota) {\r\n    quota >>= 0\r\n    // Loop down so that splices don't interfere with subsequent iterations\r\n    for (var i = a.length; i--;) if (is(a[i], v) && a.splice(i, 1) && !--quota) break\r\n  }\r\n\r\n  /**\r\n   * @this {Energy|Object}\r\n   */\r\n  emitter[init] = function() {\r\n    ensure(this, events, {})\r\n    return this\r\n  }\r\n\r\n  /**\r\n   * @param {string|number} id\r\n   * @return {number} fired\r\n   */\r\n  emitter[emit] = function(id) {\r\n    var rest = slice.call(arguments, 1), fired = applies(this[listeners](id), this, rest)\r\n    return fired\r\n  }\r\n\r\n  /**\r\n   * @param {string|number} id\r\n   * @return {Array}\r\n   */\r\n  emitter[listeners] = function(id) {\r\n    if (null == id) throw new TypeError('@listeners')\r\n    return this[events][id] = ifArray(this[events][id]) || []\r\n  }\r\n\r\n  /**\r\n   * @return {Energy}\r\n   */\r\n  emitter['clone'] = function() {\r\n    var clone = new Energy(this)\r\n    defaults(clone[events], this[events])\r\n    return clone\r\n  }\r\n\r\n  /**\r\n   * @param {string|number} id\r\n   * @param {Function} fn listener to add\r\n   * @return {Energy|Object}\r\n   */\r\n  emitter['on'] = function on(id, fn) {\r\n    if (null == id || null == fn) throw new TypeError('@on')\r\n    this[listeners](id).push(fn)\r\n    return this\r\n  }\r\n\r\n  /**\r\n   * @param {(string|number)=} id\r\n   * @param {Function=} fn listener to remove\r\n   * @param {number=} quota occurrences to remove (the default 0 removes all)\r\n   * @return {Energy|Object}\r\n   */\r\n  emitter['off'] = function(id, fn, quota) {\r\n    if (null != fn) pull(this[listeners](id), fn, quota)\r\n    else if (null != id) this[events][id] = void 0\r\n    else if (!arguments.length) this[events] = {}\r\n    return this\r\n  }\r\n\r\n  /**\r\n   * @param {string|number} id\r\n   * @param {Function} fn one-time listener to add\r\n   * @return {Energy|Object}\r\n   */\r\n  emitter['once'] = function(id, fn) {\r\n    var that = this, handler = function() {\r\n      that['off'](id, handler)\r\n      return fn.apply(this, arguments)\r\n    }\r\n    handler[origin] = fn\r\n    return this['on'](id, handler)\r\n  }\r\n\r\n  energy['applies'] = applies\r\n  return energy\r\n});\r\n"]}