diff options
Diffstat (limited to 'js/dist/dom/event-handler.js.map')
| -rw-r--r-- | js/dist/dom/event-handler.js.map | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/js/dist/dom/event-handler.js.map b/js/dist/dom/event-handler.js.map index d83e03721..b5d7fe212 100644 --- a/js/dist/dom/event-handler.js.map +++ b/js/dist/dom/event-handler.js.map @@ -1 +1 @@ -{"version":3,"file":"event-handler.js","sources":["../../src/util/index.js","../../src/dom/event-handler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0]\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst getElement = obj => {\n if (isElement(obj)) { // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return document.querySelector(obj)\n }\n\n return null\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight\n}\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n DOMContentLoadedCallbacks.forEach(callback => callback())\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback()\n }\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0]\n }\n\n const listLength = list.length\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n getElement,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n getNextActiveElement,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin,\n execute,\n executeAfterTransition\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst customEventsRegex = /^(mouseenter|mouseleave)/i\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n event.delegateTarget = element\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n let typeEvent = getTypeEvent(originalTypeEvent)\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (customEventsRegex.test(originalTypeEvent)) {\n const wrapFn = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n if (delegationFn) {\n delegationFn = wrapFn(delegationFn)\n } else {\n handler = wrapFn(handler)\n }\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n"],"names":["getjQuery","jQuery","window","document","body","hasAttribute","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","customEventsRegex","nativeEvents","Set","getUidEvent","element","uid","getEvent","bootstrapHandler","fn","handler","event","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","parentNode","i","length","findHandler","events","delegationSelector","uidEventList","Object","keys","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","isNative","has","addHandler","test","wrapFn","relatedTarget","contains","call","handlers","previousFn","replace","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","forEach","handlerKey","includes","on","one","inNamespace","isNamespace","startsWith","elementEvent","slice","keyHandlers","trigger","args","$","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","Event","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","key","defineProperty","get","preventDefault","dispatchEvent"],"mappings":";;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;;EAqMA,MAAMA,SAAS,GAAG,MAAM;EACtB,QAAM;EAAEC,IAAAA;EAAF,MAAaC,MAAnB;;EAEA,MAAID,MAAM,IAAI,CAACE,QAAQ,CAACC,IAAT,CAAcC,YAAd,CAA2B,mBAA3B,CAAf,EAAgE;EAC9D,WAAOJ,MAAP;EACD;;EAED,SAAO,IAAP;EACD,CARD;;EC1MA;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;EACA;EACA;EACA;;EAEA,MAAMK,cAAc,GAAG,oBAAvB;EACA,MAAMC,cAAc,GAAG,MAAvB;EACA,MAAMC,aAAa,GAAG,QAAtB;EACA,MAAMC,aAAa,GAAG,EAAtB;;EACA,IAAIC,QAAQ,GAAG,CAAf;EACA,MAAMC,YAAY,GAAG;EACnBC,EAAAA,UAAU,EAAE,WADO;EAEnBC,EAAAA,UAAU,EAAE;EAFO,CAArB;EAIA,MAAMC,iBAAiB,GAAG,2BAA1B;EACA,MAAMC,YAAY,GAAG,IAAIC,GAAJ,CAAQ,CAC3B,OAD2B,EAE3B,UAF2B,EAG3B,SAH2B,EAI3B,WAJ2B,EAK3B,aAL2B,EAM3B,YAN2B,EAO3B,gBAP2B,EAQ3B,WAR2B,EAS3B,UAT2B,EAU3B,WAV2B,EAW3B,aAX2B,EAY3B,WAZ2B,EAa3B,SAb2B,EAc3B,UAd2B,EAe3B,OAf2B,EAgB3B,mBAhB2B,EAiB3B,YAjB2B,EAkB3B,WAlB2B,EAmB3B,UAnB2B,EAoB3B,aApB2B,EAqB3B,aArB2B,EAsB3B,aAtB2B,EAuB3B,WAvB2B,EAwB3B,cAxB2B,EAyB3B,eAzB2B,EA0B3B,cA1B2B,EA2B3B,eA3B2B,EA4B3B,YA5B2B,EA6B3B,OA7B2B,EA8B3B,MA9B2B,EA+B3B,QA/B2B,EAgC3B,OAhC2B,EAiC3B,QAjC2B,EAkC3B,QAlC2B,EAmC3B,SAnC2B,EAoC3B,UApC2B,EAqC3B,MArC2B,EAsC3B,QAtC2B,EAuC3B,cAvC2B,EAwC3B,QAxC2B,EAyC3B,MAzC2B,EA0C3B,kBA1C2B,EA2C3B,kBA3C2B,EA4C3B,OA5C2B,EA6C3B,OA7C2B,EA8C3B,QA9C2B,CAAR,CAArB;EAiDA;EACA;EACA;EACA;EACA;;EAEA,SAASC,WAAT,CAAqBC,OAArB,EAA8BC,GAA9B,EAAmC;EACjC,SAAQA,GAAG,IAAK,GAAEA,GAAI,KAAIT,QAAQ,EAAG,EAA9B,IAAoCQ,OAAO,CAACR,QAA5C,IAAwDA,QAAQ,EAAvE;EACD;;EAED,SAASU,QAAT,CAAkBF,OAAlB,EAA2B;EACzB,QAAMC,GAAG,GAAGF,WAAW,CAACC,OAAD,CAAvB;EAEAA,EAAAA,OAAO,CAACR,QAAR,GAAmBS,GAAnB;EACAV,EAAAA,aAAa,CAACU,GAAD,CAAb,GAAqBV,aAAa,CAACU,GAAD,CAAb,IAAsB,EAA3C;EAEA,SAAOV,aAAa,CAACU,GAAD,CAApB;EACD;;EAED,SAASE,gBAAT,CAA0BH,OAA1B,EAAmCI,EAAnC,EAAuC;EACrC,SAAO,SAASC,OAAT,CAAiBC,KAAjB,EAAwB;EAC7BA,IAAAA,KAAK,CAACC,cAAN,GAAuBP,OAAvB;;EAEA,QAAIK,OAAO,CAACG,MAAZ,EAAoB;EAClBC,MAAAA,YAAY,CAACC,GAAb,CAAiBV,OAAjB,EAA0BM,KAAK,CAACK,IAAhC,EAAsCP,EAAtC;EACD;;EAED,WAAOA,EAAE,CAACQ,KAAH,CAASZ,OAAT,EAAkB,CAACM,KAAD,CAAlB,CAAP;EACD,GARD;EASD;;EAED,SAASO,0BAAT,CAAoCb,OAApC,EAA6Cc,QAA7C,EAAuDV,EAAvD,EAA2D;EACzD,SAAO,SAASC,OAAT,CAAiBC,KAAjB,EAAwB;EAC7B,UAAMS,WAAW,GAAGf,OAAO,CAACgB,gBAAR,CAAyBF,QAAzB,CAApB;;EAEA,SAAK,IAAI;EAAEG,MAAAA;EAAF,QAAaX,KAAtB,EAA6BW,MAAM,IAAIA,MAAM,KAAK,IAAlD,EAAwDA,MAAM,GAAGA,MAAM,CAACC,UAAxE,EAAoF;EAClF,WAAK,IAAIC,CAAC,GAAGJ,WAAW,CAACK,MAAzB,EAAiCD,CAAC,EAAlC,GAAuC;EACrC,YAAIJ,WAAW,CAACI,CAAD,CAAX,KAAmBF,MAAvB,EAA+B;EAC7BX,UAAAA,KAAK,CAACC,cAAN,GAAuBU,MAAvB;;EAEA,cAAIZ,OAAO,CAACG,MAAZ,EAAoB;EAClBC,YAAAA,YAAY,CAACC,GAAb,CAAiBV,OAAjB,EAA0BM,KAAK,CAACK,IAAhC,EAAsCG,QAAtC,EAAgDV,EAAhD;EACD;;EAED,iBAAOA,EAAE,CAACQ,KAAH,CAASK,MAAT,EAAiB,CAACX,KAAD,CAAjB,CAAP;EACD;EACF;EACF,KAf4B;;;EAkB7B,WAAO,IAAP;EACD,GAnBD;EAoBD;;EAED,SAASe,WAAT,CAAqBC,MAArB,EAA6BjB,OAA7B,EAAsCkB,kBAAkB,GAAG,IAA3D,EAAiE;EAC/D,QAAMC,YAAY,GAAGC,MAAM,CAACC,IAAP,CAAYJ,MAAZ,CAArB;;EAEA,OAAK,IAAIH,CAAC,GAAG,CAAR,EAAWQ,GAAG,GAAGH,YAAY,CAACJ,MAAnC,EAA2CD,CAAC,GAAGQ,GAA/C,EAAoDR,CAAC,EAArD,EAAyD;EACvD,UAAMb,KAAK,GAAGgB,MAAM,CAACE,YAAY,CAACL,CAAD,CAAb,CAApB;;EAEA,QAAIb,KAAK,CAACsB,eAAN,KAA0BvB,OAA1B,IAAqCC,KAAK,CAACiB,kBAAN,KAA6BA,kBAAtE,EAA0F;EACxF,aAAOjB,KAAP;EACD;EACF;;EAED,SAAO,IAAP;EACD;;EAED,SAASuB,eAAT,CAAyBC,iBAAzB,EAA4CzB,OAA5C,EAAqD0B,YAArD,EAAmE;EACjE,QAAMC,UAAU,GAAG,OAAO3B,OAAP,KAAmB,QAAtC;EACA,QAAMuB,eAAe,GAAGI,UAAU,GAAGD,YAAH,GAAkB1B,OAApD;EAEA,MAAI4B,SAAS,GAAGC,YAAY,CAACJ,iBAAD,CAA5B;EACA,QAAMK,QAAQ,GAAGtC,YAAY,CAACuC,GAAb,CAAiBH,SAAjB,CAAjB;;EAEA,MAAI,CAACE,QAAL,EAAe;EACbF,IAAAA,SAAS,GAAGH,iBAAZ;EACD;;EAED,SAAO,CAACE,UAAD,EAAaJ,eAAb,EAA8BK,SAA9B,CAAP;EACD;;EAED,SAASI,UAAT,CAAoBrC,OAApB,EAA6B8B,iBAA7B,EAAgDzB,OAAhD,EAAyD0B,YAAzD,EAAuEvB,MAAvE,EAA+E;EAC7E,MAAI,OAAOsB,iBAAP,KAA6B,QAA7B,IAAyC,CAAC9B,OAA9C,EAAuD;EACrD;EACD;;EAED,MAAI,CAACK,OAAL,EAAc;EACZA,IAAAA,OAAO,GAAG0B,YAAV;EACAA,IAAAA,YAAY,GAAG,IAAf;EACD,GAR4E;EAW7E;;;EACA,MAAInC,iBAAiB,CAAC0C,IAAlB,CAAuBR,iBAAvB,CAAJ,EAA+C;EAC7C,UAAMS,MAAM,GAAGnC,EAAE,IAAI;EACnB,aAAO,UAAUE,KAAV,EAAiB;EACtB,YAAI,CAACA,KAAK,CAACkC,aAAP,IAAyBlC,KAAK,CAACkC,aAAN,KAAwBlC,KAAK,CAACC,cAA9B,IAAgD,CAACD,KAAK,CAACC,cAAN,CAAqBkC,QAArB,CAA8BnC,KAAK,CAACkC,aAApC,CAA9E,EAAmI;EACjI,iBAAOpC,EAAE,CAACsC,IAAH,CAAQ,IAAR,EAAcpC,KAAd,CAAP;EACD;EACF,OAJD;EAKD,KAND;;EAQA,QAAIyB,YAAJ,EAAkB;EAChBA,MAAAA,YAAY,GAAGQ,MAAM,CAACR,YAAD,CAArB;EACD,KAFD,MAEO;EACL1B,MAAAA,OAAO,GAAGkC,MAAM,CAAClC,OAAD,CAAhB;EACD;EACF;;EAED,QAAM,CAAC2B,UAAD,EAAaJ,eAAb,EAA8BK,SAA9B,IAA2CJ,eAAe,CAACC,iBAAD,EAAoBzB,OAApB,EAA6B0B,YAA7B,CAAhE;EACA,QAAMT,MAAM,GAAGpB,QAAQ,CAACF,OAAD,CAAvB;EACA,QAAM2C,QAAQ,GAAGrB,MAAM,CAACW,SAAD,CAAN,KAAsBX,MAAM,CAACW,SAAD,CAAN,GAAoB,EAA1C,CAAjB;EACA,QAAMW,UAAU,GAAGvB,WAAW,CAACsB,QAAD,EAAWf,eAAX,EAA4BI,UAAU,GAAG3B,OAAH,GAAa,IAAnD,CAA9B;;EAEA,MAAIuC,UAAJ,EAAgB;EACdA,IAAAA,UAAU,CAACpC,MAAX,GAAoBoC,UAAU,CAACpC,MAAX,IAAqBA,MAAzC;EAEA;EACD;;EAED,QAAMP,GAAG,GAAGF,WAAW,CAAC6B,eAAD,EAAkBE,iBAAiB,CAACe,OAAlB,CAA0BzD,cAA1B,EAA0C,EAA1C,CAAlB,CAAvB;EACA,QAAMgB,EAAE,GAAG4B,UAAU,GACnBnB,0BAA0B,CAACb,OAAD,EAAUK,OAAV,EAAmB0B,YAAnB,CADP,GAEnB5B,gBAAgB,CAACH,OAAD,EAAUK,OAAV,CAFlB;EAIAD,EAAAA,EAAE,CAACmB,kBAAH,GAAwBS,UAAU,GAAG3B,OAAH,GAAa,IAA/C;EACAD,EAAAA,EAAE,CAACwB,eAAH,GAAqBA,eAArB;EACAxB,EAAAA,EAAE,CAACI,MAAH,GAAYA,MAAZ;EACAJ,EAAAA,EAAE,CAACZ,QAAH,GAAcS,GAAd;EACA0C,EAAAA,QAAQ,CAAC1C,GAAD,CAAR,GAAgBG,EAAhB;EAEAJ,EAAAA,OAAO,CAAC8C,gBAAR,CAAyBb,SAAzB,EAAoC7B,EAApC,EAAwC4B,UAAxC;EACD;;EAED,SAASe,aAAT,CAAuB/C,OAAvB,EAAgCsB,MAAhC,EAAwCW,SAAxC,EAAmD5B,OAAnD,EAA4DkB,kBAA5D,EAAgF;EAC9E,QAAMnB,EAAE,GAAGiB,WAAW,CAACC,MAAM,CAACW,SAAD,CAAP,EAAoB5B,OAApB,EAA6BkB,kBAA7B,CAAtB;;EAEA,MAAI,CAACnB,EAAL,EAAS;EACP;EACD;;EAEDJ,EAAAA,OAAO,CAACgD,mBAAR,CAA4Bf,SAA5B,EAAuC7B,EAAvC,EAA2C6C,OAAO,CAAC1B,kBAAD,CAAlD;EACA,SAAOD,MAAM,CAACW,SAAD,CAAN,CAAkB7B,EAAE,CAACZ,QAArB,CAAP;EACD;;EAED,SAAS0D,wBAAT,CAAkClD,OAAlC,EAA2CsB,MAA3C,EAAmDW,SAAnD,EAA8DkB,SAA9D,EAAyE;EACvE,QAAMC,iBAAiB,GAAG9B,MAAM,CAACW,SAAD,CAAN,IAAqB,EAA/C;EAEAR,EAAAA,MAAM,CAACC,IAAP,CAAY0B,iBAAZ,EAA+BC,OAA/B,CAAuCC,UAAU,IAAI;EACnD,QAAIA,UAAU,CAACC,QAAX,CAAoBJ,SAApB,CAAJ,EAAoC;EAClC,YAAM7C,KAAK,GAAG8C,iBAAiB,CAACE,UAAD,CAA/B;EAEAP,MAAAA,aAAa,CAAC/C,OAAD,EAAUsB,MAAV,EAAkBW,SAAlB,EAA6B3B,KAAK,CAACsB,eAAnC,EAAoDtB,KAAK,CAACiB,kBAA1D,CAAb;EACD;EACF,GAND;EAOD;;EAED,SAASW,YAAT,CAAsB5B,KAAtB,EAA6B;EAC3B;EACAA,EAAAA,KAAK,GAAGA,KAAK,CAACuC,OAAN,CAAcxD,cAAd,EAA8B,EAA9B,CAAR;EACA,SAAOI,YAAY,CAACa,KAAD,CAAZ,IAAuBA,KAA9B;EACD;;QAEKG,YAAY,GAAG;EACnB+C,EAAAA,EAAE,CAACxD,OAAD,EAAUM,KAAV,EAAiBD,OAAjB,EAA0B0B,YAA1B,EAAwC;EACxCM,IAAAA,UAAU,CAACrC,OAAD,EAAUM,KAAV,EAAiBD,OAAjB,EAA0B0B,YAA1B,EAAwC,KAAxC,CAAV;EACD,GAHkB;;EAKnB0B,EAAAA,GAAG,CAACzD,OAAD,EAAUM,KAAV,EAAiBD,OAAjB,EAA0B0B,YAA1B,EAAwC;EACzCM,IAAAA,UAAU,CAACrC,OAAD,EAAUM,KAAV,EAAiBD,OAAjB,EAA0B0B,YAA1B,EAAwC,IAAxC,CAAV;EACD,GAPkB;;EASnBrB,EAAAA,GAAG,CAACV,OAAD,EAAU8B,iBAAV,EAA6BzB,OAA7B,EAAsC0B,YAAtC,EAAoD;EACrD,QAAI,OAAOD,iBAAP,KAA6B,QAA7B,IAAyC,CAAC9B,OAA9C,EAAuD;EACrD;EACD;;EAED,UAAM,CAACgC,UAAD,EAAaJ,eAAb,EAA8BK,SAA9B,IAA2CJ,eAAe,CAACC,iBAAD,EAAoBzB,OAApB,EAA6B0B,YAA7B,CAAhE;EACA,UAAM2B,WAAW,GAAGzB,SAAS,KAAKH,iBAAlC;EACA,UAAMR,MAAM,GAAGpB,QAAQ,CAACF,OAAD,CAAvB;EACA,UAAM2D,WAAW,GAAG7B,iBAAiB,CAAC8B,UAAlB,CAA6B,GAA7B,CAApB;;EAEA,QAAI,OAAOhC,eAAP,KAA2B,WAA/B,EAA4C;EAC1C;EACA,UAAI,CAACN,MAAD,IAAW,CAACA,MAAM,CAACW,SAAD,CAAtB,EAAmC;EACjC;EACD;;EAEDc,MAAAA,aAAa,CAAC/C,OAAD,EAAUsB,MAAV,EAAkBW,SAAlB,EAA6BL,eAA7B,EAA8CI,UAAU,GAAG3B,OAAH,GAAa,IAArE,CAAb;EACA;EACD;;EAED,QAAIsD,WAAJ,EAAiB;EACflC,MAAAA,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoB+B,OAApB,CAA4BQ,YAAY,IAAI;EAC1CX,QAAAA,wBAAwB,CAAClD,OAAD,EAAUsB,MAAV,EAAkBuC,YAAlB,EAAgC/B,iBAAiB,CAACgC,KAAlB,CAAwB,CAAxB,CAAhC,CAAxB;EACD,OAFD;EAGD;;EAED,UAAMV,iBAAiB,GAAG9B,MAAM,CAACW,SAAD,CAAN,IAAqB,EAA/C;EACAR,IAAAA,MAAM,CAACC,IAAP,CAAY0B,iBAAZ,EAA+BC,OAA/B,CAAuCU,WAAW,IAAI;EACpD,YAAMT,UAAU,GAAGS,WAAW,CAAClB,OAAZ,CAAoBvD,aAApB,EAAmC,EAAnC,CAAnB;;EAEA,UAAI,CAACoE,WAAD,IAAgB5B,iBAAiB,CAACyB,QAAlB,CAA2BD,UAA3B,CAApB,EAA4D;EAC1D,cAAMhD,KAAK,GAAG8C,iBAAiB,CAACW,WAAD,CAA/B;EAEAhB,QAAAA,aAAa,CAAC/C,OAAD,EAAUsB,MAAV,EAAkBW,SAAlB,EAA6B3B,KAAK,CAACsB,eAAnC,EAAoDtB,KAAK,CAACiB,kBAA1D,CAAb;EACD;EACF,KARD;EASD,GA7CkB;;EA+CnByC,EAAAA,OAAO,CAAChE,OAAD,EAAUM,KAAV,EAAiB2D,IAAjB,EAAuB;EAC5B,QAAI,OAAO3D,KAAP,KAAiB,QAAjB,IAA6B,CAACN,OAAlC,EAA2C;EACzC,aAAO,IAAP;EACD;;EAED,UAAMkE,CAAC,GAAGpF,SAAS,EAAnB;EACA,UAAMmD,SAAS,GAAGC,YAAY,CAAC5B,KAAD,CAA9B;EACA,UAAMoD,WAAW,GAAGpD,KAAK,KAAK2B,SAA9B;EACA,UAAME,QAAQ,GAAGtC,YAAY,CAACuC,GAAb,CAAiBH,SAAjB,CAAjB;EAEA,QAAIkC,WAAJ;EACA,QAAIC,OAAO,GAAG,IAAd;EACA,QAAIC,cAAc,GAAG,IAArB;EACA,QAAIC,gBAAgB,GAAG,KAAvB;EACA,QAAIC,GAAG,GAAG,IAAV;;EAEA,QAAIb,WAAW,IAAIQ,CAAnB,EAAsB;EACpBC,MAAAA,WAAW,GAAGD,CAAC,CAACM,KAAF,CAAQlE,KAAR,EAAe2D,IAAf,CAAd;EAEAC,MAAAA,CAAC,CAAClE,OAAD,CAAD,CAAWgE,OAAX,CAAmBG,WAAnB;EACAC,MAAAA,OAAO,GAAG,CAACD,WAAW,CAACM,oBAAZ,EAAX;EACAJ,MAAAA,cAAc,GAAG,CAACF,WAAW,CAACO,6BAAZ,EAAlB;EACAJ,MAAAA,gBAAgB,GAAGH,WAAW,CAACQ,kBAAZ,EAAnB;EACD;;EAED,QAAIxC,QAAJ,EAAc;EACZoC,MAAAA,GAAG,GAAGtF,QAAQ,CAAC2F,WAAT,CAAqB,YAArB,CAAN;EACAL,MAAAA,GAAG,CAACM,SAAJ,CAAc5C,SAAd,EAAyBmC,OAAzB,EAAkC,IAAlC;EACD,KAHD,MAGO;EACLG,MAAAA,GAAG,GAAG,IAAIO,WAAJ,CAAgBxE,KAAhB,EAAuB;EAC3B8D,QAAAA,OAD2B;EAE3BW,QAAAA,UAAU,EAAE;EAFe,OAAvB,CAAN;EAID,KAjC2B;;;EAoC5B,QAAI,OAAOd,IAAP,KAAgB,WAApB,EAAiC;EAC/BxC,MAAAA,MAAM,CAACC,IAAP,CAAYuC,IAAZ,EAAkBZ,OAAlB,CAA0B2B,GAAG,IAAI;EAC/BvD,QAAAA,MAAM,CAACwD,cAAP,CAAsBV,GAAtB,EAA2BS,GAA3B,EAAgC;EAC9BE,UAAAA,GAAG,GAAG;EACJ,mBAAOjB,IAAI,CAACe,GAAD,CAAX;EACD;;EAH6B,SAAhC;EAKD,OAND;EAOD;;EAED,QAAIV,gBAAJ,EAAsB;EACpBC,MAAAA,GAAG,CAACY,cAAJ;EACD;;EAED,QAAId,cAAJ,EAAoB;EAClBrE,MAAAA,OAAO,CAACoF,aAAR,CAAsBb,GAAtB;EACD;;EAED,QAAIA,GAAG,CAACD,gBAAJ,IAAwB,OAAOH,WAAP,KAAuB,WAAnD,EAAgE;EAC9DA,MAAAA,WAAW,CAACgB,cAAZ;EACD;;EAED,WAAOZ,GAAP;EACD;;EA1GkB;;;;;;;;"}
\ No newline at end of file +{"version":3,"file":"event-handler.js","sources":["../../src/dom/event-handler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index.js'\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n\n let jQueryEvent = null\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n const evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args)\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n"],"names":["namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","element","uid","getElementEvents","bootstrapHandler","fn","handler","event","hydrateObj","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","parentNode","domElement","findHandler","events","callable","delegationSelector","Object","values","find","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","has","addHandler","wrapFunction","relatedTarget","contains","call","handlers","previousFunction","replace","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","includes","on","one","inNamespace","isNamespace","startsWith","keys","length","elementEvent","slice","keyHandlers","trigger","args","$","getjQuery","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","Event","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","evt","cancelable","preventDefault","dispatchEvent","obj","meta","key","value","_unused","defineProperty","configurable","get"],"mappings":"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"}
\ No newline at end of file |
