Welcome to mirror list, hosted at ThFree Co, Russian Federation.

tooltip.js.map « dist « js - github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: db9017db37efe2ceca7c7b9e2e5fcfebf261f65b (plain)
1
{"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'\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  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 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): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n  makeArray\n} from './index'\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,[a-z0-9+/]+=*$/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 Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\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, l = regExp.length; i < l; i++) {\n    if (attrName.match(regExp[i])) {\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', '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 = makeArray(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 = makeArray(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  jQuery as $,\n  TRANSITION_END,\n  emulateTransitionEnd,\n  findShadowRoot,\n  getTransitionDurationFromElement,\n  getUID,\n  isElement,\n  makeArray,\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/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\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}\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}\n\nconst HoverState = {\n  SHOW: 'show',\n  OUT: 'out'\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 ClassName = {\n  FADE: 'fade',\n  SHOW: 'show'\n}\n\nconst Selector = {\n  TOOLTIP_INNER: '.tooltip-inner',\n  TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n  HOVER: 'hover',\n  FOCUS: 'focus',\n  CLICK: 'click',\n  MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n  constructor(element, config) {\n    /**\n     * Check for Popper dependency\n     * Popper - https://popper.js.org\n     */\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(ClassName.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, '.modal'), 'hide.bs.modal')\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 !== null) {\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(ClassName.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, {\n        placement: attachment,\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            behavior: this.config.fallbackPlacement\n          },\n          arrow: {\n            element: Selector.TOOLTIP_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      tip.classList.add(ClassName.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        makeArray(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 === HoverState.OUT) {\n          this._leave(null, this)\n        }\n      }\n\n      if (this.tip.classList.contains(ClassName.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(callback) {\n    const tip = this.getTipElement()\n    const complete = () => {\n      if (this._hoverState !== HoverState.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      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      if (callback) {\n        callback()\n      }\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(ClassName.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      makeArray(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(ClassName.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  addAttachmentClass(attachment) {\n    this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\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(ClassName.FADE)\n    tip.classList.remove(ClassName.SHOW)\n  }\n\n  setElementContent(element, content) {\n    if (element === null) {\n      return\n    }\n\n    if (typeof content === 'object' && (content.nodeType || content.jquery)) {\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  _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    EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n      'hide.bs.modal',\n      () => {\n        if (this.element) {\n          this.hide()\n        }\n      }\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(ClassName.SHOW) ||\n        context._hoverState === HoverState.SHOW) {\n      context._hoverState = HoverState.SHOW\n      return\n    }\n\n    clearTimeout(context._timeout)\n\n    context._hoverState = HoverState.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 === HoverState.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 = HoverState.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 === HoverState.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) {\n      tabClass\n        .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(ClassName.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\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\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","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getTransitionDurationFromElement","element","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","makeArray","nodeList","slice","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","noop","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","indexOf","Boolean","nodeValue","regExp","filter","attrRegex","i","l","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","body","querySelectorAll","len","el","elName","removeChild","attributeList","attributes","whitelistedAttributes","concat","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","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default","HoverState","SHOW","OUT","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","ClassName","FADE","Selector","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","FOCUS","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","destroy","show","style","display","isWithContent","showEvent","shadowRoot","isInTheDom","ownerDocument","defaultPrevented","tipId","setAttribute","setContent","add","attachment","_getAttachment","addAttachmentClass","_getContainer","appendChild","modifiers","_getOffset","flip","behavior","arrow","preventOverflow","boundariesElement","onCreate","data","originalPlacement","_handlePopperPlacementChange","onUpdate","children","on","complete","_fixTransition","prevHoverState","one","hide","callback","_cleanTipClass","hideEvent","remove","update","scheduleUpdate","getTitle","createElement","setElementContent","findOne","content","jquery","innerText","textContent","getAttribute","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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"}