{"version":3,"file":"event-handler-yIUX6qdw.js","sources":["../../../app/frontend/entrypoints/marketing/bootstrap/mdb-prefix/dom/event-handler.js"],"sourcesContent":["/**\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 (\n !event.relatedTarget ||\n (event.relatedTarget !== event.delegateTarget &&\n !event.delegateTarget.contains(event.relatedTarget))\n ) {\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(\n originalTypeEvent,\n handler,\n delegationFn\n );\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(\n originalTypeEvent,\n handler,\n delegationFn\n );\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":["namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","customEventsRegex","nativeEvents","getUidEvent","element","uid","getEvent","bootstrapHandler","fn","handler","event","EventHandler","bootstrapDelegationHandler","selector","domElements","target","i","findHandler","events","delegationSelector","uidEventList","len","normalizeParams","originalTypeEvent","delegationFn","delegation","originalHandler","typeEvent","getTypeEvent","addHandler","oneOff","wrapFn","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","inNamespace","isNamespace","elementEvent","keyHandlers","args","$","getjQuery","isNative","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","key"],"mappings":"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"}