{"version":3,"file":"delegate-CYTemYP7.js","sources":["../../../node_modules/delegate-it/delegate.js"],"sourcesContent":["/** Keeps track of raw listeners added to the base elements to avoid duplication */\nconst ledger = new WeakMap();\nfunction editLedger(wanted, baseElement, callback, setup) {\n if (!wanted && !ledger.has(baseElement)) {\n return false;\n }\n const elementMap = ledger.get(baseElement)\n ?? new WeakMap();\n ledger.set(baseElement, elementMap);\n const setups = elementMap.get(callback) ?? new Set();\n elementMap.set(callback, setups);\n const existed = setups.has(setup);\n if (wanted) {\n setups.add(setup);\n }\n else {\n setups.delete(setup);\n }\n return existed && wanted;\n}\nfunction safeClosest(event, selector) {\n let target = event.target;\n if (target instanceof Text) {\n target = target.parentElement;\n }\n if (target instanceof Element && event.currentTarget instanceof Element) {\n // `.closest()` may match ancestors of `currentTarget` but we only need its children\n const closest = target.closest(selector);\n if (closest && event.currentTarget.contains(closest)) {\n return closest;\n }\n }\n}\n// This type isn't exported as a declaration, so it needs to be duplicated above\nfunction delegate(selector, type, callback, options = {}) {\n const { signal, base = document } = options;\n if (signal?.aborted) {\n return;\n }\n // Don't pass `once` to `addEventListener` because it needs to be handled in `delegate-it`\n const { once, ...nativeListenerOptions } = options;\n // `document` should never be the base, it's just an easy way to define \"global event listeners\"\n const baseElement = base instanceof Document ? base.documentElement : base;\n // Handle the regular Element usage\n const capture = Boolean(typeof options === 'object' ? options.capture : options);\n const listenerFunction = (event) => {\n const delegateTarget = safeClosest(event, String(selector));\n if (delegateTarget) {\n const delegateEvent = Object.assign(event, { delegateTarget });\n callback.call(baseElement, delegateEvent);\n if (once) {\n baseElement.removeEventListener(type, listenerFunction, nativeListenerOptions);\n editLedger(false, baseElement, callback, setup);\n }\n }\n };\n const setup = JSON.stringify({ selector, type, capture });\n const isAlreadyListening = editLedger(true, baseElement, callback, setup);\n if (!isAlreadyListening) {\n baseElement.addEventListener(type, listenerFunction, nativeListenerOptions);\n }\n signal?.addEventListener('abort', () => {\n editLedger(false, baseElement, callback, setup);\n });\n}\nexport default delegate;\n"],"names":["ledger","editLedger","wanted","baseElement","callback","setup","elementMap","setups","existed","safeClosest","event","selector","target","closest","delegate","type","options","signal","base","once","nativeListenerOptions","capture","listenerFunction","delegateTarget","delegateEvent"],"mappings":"AACA,MAAMA,EAAS,IAAI,QACnB,SAASC,EAAWC,EAAQC,EAAaC,EAAUC,EAAO,CACtD,GAAI,CAACH,GAAU,CAACF,EAAO,IAAIG,CAAW,EAClC,MAAO,GAEX,MAAMG,EAAaN,EAAO,IAAIG,CAAW,GAClC,IAAI,QACXH,EAAO,IAAIG,EAAaG,CAAU,EAClC,MAAMC,EAASD,EAAW,IAAIF,CAAQ,GAAK,IAAI,IAC/CE,EAAW,IAAIF,EAAUG,CAAM,EAC/B,MAAMC,EAAUD,EAAO,IAAIF,CAAK,EAChC,OAAIH,EACAK,EAAO,IAAIF,CAAK,EAGhBE,EAAO,OAAOF,CAAK,EAEhBG,GAAWN,CACtB,CACA,SAASO,EAAYC,EAAOC,EAAU,CAClC,IAAIC,EAASF,EAAM,OAInB,GAHIE,aAAkB,OAClBA,EAASA,EAAO,eAEhBA,aAAkB,SAAWF,EAAM,yBAAyB,QAAS,CAErE,MAAMG,EAAUD,EAAO,QAAQD,CAAQ,EACvC,GAAIE,GAAWH,EAAM,cAAc,SAASG,CAAO,EAC/C,OAAOA,CAEd,CACL,CAEA,SAASC,EAASH,EAAUI,EAAMX,EAAUY,EAAU,CAAA,EAAI,CACtD,KAAM,CAAE,OAAAC,EAAQ,KAAAC,EAAO,QAAQ,EAAKF,EACpC,GAAIC,GAAA,MAAAA,EAAQ,QACR,OAGJ,KAAM,CAAE,KAAAE,EAAM,GAAGC,CAAqB,EAAKJ,EAErCb,EAAce,aAAgB,SAAWA,EAAK,gBAAkBA,EAEhEG,EAAU,GAAQ,OAAOL,GAAY,SAAWA,EAAQ,QAAUA,GAClEM,EAAoBZ,GAAU,CAChC,MAAMa,EAAiBd,EAAYC,EAAO,OAAOC,CAAQ,CAAC,EAC1D,GAAIY,EAAgB,CAChB,MAAMC,EAAgB,OAAO,OAAOd,EAAO,CAAE,eAAAa,CAAc,CAAE,EAC7DnB,EAAS,KAAKD,EAAaqB,CAAa,EACpCL,IACAhB,EAAY,oBAAoBY,EAAMO,EAAkBF,CAAqB,EAC7EnB,EAAW,GAAOE,EAAaC,EAAUC,CAAK,EAErD,CACT,EACUA,EAAQ,KAAK,UAAU,CAAE,SAAAM,EAAU,KAAAI,EAAM,QAAAM,CAAO,CAAE,EAC7BpB,EAAW,GAAME,EAAaC,EAAUC,CAAK,GAEpEF,EAAY,iBAAiBY,EAAMO,EAAkBF,CAAqB,EAE9EH,GAAA,MAAAA,EAAQ,iBAAiB,QAAS,IAAM,CACpChB,EAAW,GAAOE,EAAaC,EAAUC,CAAK,CACtD,EACA","x_google_ignoreList":[0]}