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 8628c29975..646d1a1441 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/polyfill.js","../../src/dom/event-handler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = 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 (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return 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\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\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 fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\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 fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, 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 for (const uid of Object.keys(events)) {\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\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 // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\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 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 ? bootstrapDelegationHandler(element, handler, delegationFn) : 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 === null) {\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)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\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.charAt(0) === '.'\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)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\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 typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\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 = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .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 if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\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":["MAX_UID","window","jQuery","getUID","prefix","Math","random","document","getElementById","Element","prototype","matches","closest","find","querySelectorAll","findOne","querySelector","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","workingDefaultPrevented","e","initEvent","preventDefault","defaultPrevented","origPreventDefault","Event","call","Object","defineProperty","get","configurable","defaultPreventedPreservedOnDispatch","element","createElement","addEventListener","dispatchEvent","msMatchesSelector","webkitMatchesSelector","selector","parentElement","parentNode","nodeType","scopeSelectorRegex","supportScopeQuery","error","test","hasId","Boolean","id","nodeList","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","keys","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeEventListener","removeNamespacedHandlers","namespace","storeElementEvent","forEach","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","key"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"event-handler.js","sources":["../../src/util/index.js","../../src/dom/event-handler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = 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 (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return 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\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\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 fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\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 fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, 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 // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\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 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 ? bootstrapDelegationHandler(element, handler, delegationFn) : 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)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\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.charAt(0) === '.'\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)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\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 typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\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 = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .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 if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\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":["window","jQuery","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","element","uid","getEvent","fixEvent","event","which","test","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","parentNode","i","length","findHandler","events","delegationSelector","uidEventList","Object","keys","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","isNative","indexOf","addHandler","handlers","previousFn","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","forEach","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","$","Event","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","document","createEvent","initEvent","createCustomEvent","cancelable","key","defineProperty","get","preventDefault","defaultPreventedPreservedOnDispatch","dispatchEvent"],"mappings":"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"}
\ No newline at end of file |