mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-01 13:24:25 +01:00
1 line
59 KiB
Plaintext
1 line
59 KiB
Plaintext
{"version":3,"file":"tooltip.js","sources":["../src/util/index.js","../src/util/sanitizer.js","../src/tooltip.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'\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.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = 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() : 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 {\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 element.dispatchEvent(new Event(TRANSITION_END))\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 isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.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\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, `.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, `.${CLASS_NAME_MODAL}`),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip.jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip.jQueryInterface\n }\n}\n\nexport default Tooltip\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getTransitionDurationFromElement","element","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","noop","getjQuery","jQuery","body","hasAttribute","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","indexOf","nodeValue","regExp","filter","attrRegex","i","len","length","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","concat","querySelectorAll","el","elName","removeChild","attributeList","attributes","whitelistedAttributes","removeAttribute","innerHTML","NAME","VERSION","DATA_KEY","EVENT_KEY","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType","animation","template","title","trigger","delay","html","selector","placement","offset","container","fallbackPlacement","boundary","sanitize","popperConfig","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE","CLASS_NAME_MODAL","CLASS_NAME_SHOW","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","Popper","TypeError","_isEnabled","_timeout","_hoverState","_activeTrigger","_popper","_getConfig","tip","_setListeners","Data","setData","constructor","enable","disable","toggleEnabled","toggle","event","dataKey","context","getData","delegateTarget","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","classList","contains","dispose","clearTimeout","removeData","EventHandler","off","SelectorEngine","closest","_hideModalHandler","destroy","show","style","display","isWithContent","showEvent","shadowRoot","isInTheDom","ownerDocument","defaultPrevented","tipId","setAttribute","setContent","add","attachment","_getAttachment","_addAttachmentClass","_getContainer","appendChild","_getPopperConfig","children","on","complete","_fixTransition","prevHoverState","one","hide","_cleanTipClass","hideEvent","remove","update","scheduleUpdate","Boolean","getTitle","createElement","setElementContent","findOne","content","jquery","innerText","textContent","getAttribute","defaultBsConfig","modifiers","_getOffset","flip","behavior","arrow","preventOverflow","boundariesElement","onCreate","data","originalPlacement","_handlePopperPlacementChange","onUpdate","fn","offsets","triggers","eventIn","eventOut","_fixTitle","titleType","type","dataAttributes","Manipulator","getDataAttributes","dataAttr","key","tabClass","map","token","trim","tClass","popperData","popperInstance","instance","popper","initConfigAnimation","jQueryInterface","each","_config","getInstance","$","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"} |