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: a55aa27d6a8f7a3cac7223e9994d61940737b3c1 (plain)
1
{"version":3,"file":"tooltip.js","sources":["../src/tooltip.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0-beta1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport { defineJQueryPlugin, findShadowRoot, getElement, getUID, isRTL, noop } from './util/index'\nimport { DefaultAllowlist } from './util/sanitizer'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\nimport TemplateFactory from './util/template-factory'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n  AUTO: 'auto',\n  TOP: 'top',\n  RIGHT: isRTL() ? 'left' : 'right',\n  BOTTOM: 'bottom',\n  LEFT: isRTL() ? 'right' : '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>' +\n            '</div>',\n  trigger: 'hover focus',\n  title: '',\n  delay: 0,\n  html: false,\n  selector: false,\n  placement: 'top',\n  offset: [0, 0],\n  container: false,\n  fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n  boundary: 'clippingParents',\n  customClass: '',\n  sanitize: true,\n  sanitizeFn: null,\n  allowList: DefaultAllowlist,\n  popperConfig: null\n}\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: '(array|string|function)',\n  container: '(string|element|boolean)',\n  fallbackPlacements: 'array',\n  boundary: '(string|element)',\n  customClass: '(string|function)',\n  sanitize: 'boolean',\n  sanitizeFn: '(null|function)',\n  allowList: 'object',\n  popperConfig: '(null|object|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n  constructor(element, config) {\n    if (typeof Popper === 'undefined') {\n      throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)')\n    }\n\n    super(element, config)\n\n    // Private\n    this._isEnabled = true\n    this._timeout = 0\n    this._isHovered = false\n    this._activeTrigger = {}\n    this._popper = null\n    this._templateFactory = null\n\n    // Protected\n    this.tip = null\n\n    this._setListeners()\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\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 context = this._initializeOnDelegatedTarget(event)\n\n      context._activeTrigger.click = !context._activeTrigger.click\n\n      if (context._isWithActiveTrigger()) {\n        context._enter()\n      } else {\n        context._leave()\n      }\n\n      return\n    }\n\n    if (this._isShown()) {\n      this._leave()\n      return\n    }\n\n    this._enter()\n  }\n\n  dispose() {\n    clearTimeout(this._timeout)\n\n    EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n    if (this.tip) {\n      this.tip.remove()\n    }\n\n    this._disposePopper()\n    super.dispose()\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      return\n    }\n\n    const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n    const shadowRoot = findShadowRoot(this._element)\n    const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n    if (showEvent.defaultPrevented || !isInTheDom) {\n      return\n    }\n\n    const tip = this._getTipElement()\n\n    this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n    const { container } = this._config\n\n    if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n      container.append(tip)\n      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n    }\n\n    if (this._popper) {\n      this._popper.update()\n    } else {\n      this._createPopper(tip)\n    }\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      for (const element of [].concat(...document.body.children)) {\n        EventHandler.on(element, 'mouseover', noop)\n      }\n    }\n\n    const complete = () => {\n      const previousHoverState = this._isHovered\n\n      this._isHovered = false\n      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n      if (previousHoverState) {\n        this._leave()\n      }\n    }\n\n    this._queueCallback(complete, this.tip, this._isAnimated())\n  }\n\n  hide() {\n    if (!this._isShown()) {\n      return\n    }\n\n    const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    const tip = this._getTipElement()\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      for (const element of [].concat(...document.body.children)) {\n        EventHandler.off(element, 'mouseover', noop)\n      }\n    }\n\n    this._activeTrigger[TRIGGER_CLICK] = false\n    this._activeTrigger[TRIGGER_FOCUS] = false\n    this._activeTrigger[TRIGGER_HOVER] = false\n    this._isHovered = false\n\n    const complete = () => {\n      if (this._isWithActiveTrigger()) {\n        return\n      }\n\n      if (!this._isHovered) {\n        tip.remove()\n      }\n\n      this._element.removeAttribute('aria-describedby')\n      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n\n      this._disposePopper()\n    }\n\n    this._queueCallback(complete, this.tip, this._isAnimated())\n  }\n\n  update() {\n    if (this._popper) {\n      this._popper.update()\n    }\n  }\n\n  // Protected\n  _isWithContent() {\n    return Boolean(this._getTitle())\n  }\n\n  _getTipElement() {\n    if (!this.tip) {\n      this.tip = this._createTipElement(this._getContentForTemplate())\n    }\n\n    return this.tip\n  }\n\n  _createTipElement(content) {\n    const tip = this._getTemplateFactory(content).toHtml()\n\n    // todo: remove this check on v6\n    if (!tip) {\n      return null\n    }\n\n    tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n    // todo: on v6 the following can be achieved with CSS only\n    tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n    const tipId = getUID(this.constructor.NAME).toString()\n\n    tip.setAttribute('id', tipId)\n\n    if (this._isAnimated()) {\n      tip.classList.add(CLASS_NAME_FADE)\n    }\n\n    return tip\n  }\n\n  setContent(content) {\n    let isShown = false\n    if (this.tip) {\n      isShown = this._isShown()\n      this.tip.remove()\n      this.tip = null\n    }\n\n    this._disposePopper()\n    this.tip = this._createTipElement(content)\n\n    if (isShown) {\n      this.show()\n    }\n  }\n\n  _getTemplateFactory(content) {\n    if (this._templateFactory) {\n      this._templateFactory.changeContent(content)\n    } else {\n      this._templateFactory = new TemplateFactory({\n        ...this._config,\n        // the `content` var has to be after `this._config`\n        // to override config.content in case of popover\n        content,\n        extraClass: this._resolvePossibleFunction(this._config.customClass)\n      })\n    }\n\n    return this._templateFactory\n  }\n\n  _getContentForTemplate() {\n    return {\n      [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n    }\n  }\n\n  _getTitle() {\n    return this._config.title\n  }\n\n  // Private\n  _initializeOnDelegatedTarget(event) {\n    return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n  }\n\n  _isAnimated() {\n    return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n  }\n\n  _isShown() {\n    return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n  }\n\n  _createPopper(tip) {\n    const placement = typeof this._config.placement === 'function' ?\n      this._config.placement.call(this, tip, this._element) :\n      this._config.placement\n    const attachment = AttachmentMap[placement.toUpperCase()]\n    this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n  }\n\n  _getOffset() {\n    const { offset } = this._config\n\n    if (typeof offset === 'string') {\n      return offset.split(',').map(value => Number.parseInt(value, 10))\n    }\n\n    if (typeof offset === 'function') {\n      return popperData => offset(popperData, this._element)\n    }\n\n    return offset\n  }\n\n  _resolvePossibleFunction(arg) {\n    return typeof arg === 'function' ? arg.call(this._element) : arg\n  }\n\n  _getPopperConfig(attachment) {\n    const defaultBsPopperConfig = {\n      placement: attachment,\n      modifiers: [\n        {\n          name: 'flip',\n          options: {\n            fallbackPlacements: this._config.fallbackPlacements\n          }\n        },\n        {\n          name: 'offset',\n          options: {\n            offset: this._getOffset()\n          }\n        },\n        {\n          name: 'preventOverflow',\n          options: {\n            boundary: this._config.boundary\n          }\n        },\n        {\n          name: 'arrow',\n          options: {\n            element: `.${this.constructor.NAME}-arrow`\n          }\n        },\n        {\n          name: 'preSetPlacement',\n          enabled: true,\n          phase: 'beforeMain',\n          fn: data => {\n            // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n            // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n            this._getTipElement().setAttribute('data-popper-placement', data.state.placement)\n          }\n        }\n      ]\n    }\n\n    return {\n      ...defaultBsPopperConfig,\n      ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n    }\n  }\n\n  _setListeners() {\n    const triggers = this._config.trigger.split(' ')\n\n    for (const trigger of triggers) {\n      if (trigger === 'click') {\n        EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => this.toggle(event))\n      } else if (trigger !== TRIGGER_MANUAL) {\n        const eventIn = trigger === TRIGGER_HOVER ?\n          this.constructor.eventName(EVENT_MOUSEENTER) :\n          this.constructor.eventName(EVENT_FOCUSIN)\n        const eventOut = trigger === TRIGGER_HOVER ?\n          this.constructor.eventName(EVENT_MOUSELEAVE) :\n          this.constructor.eventName(EVENT_FOCUSOUT)\n\n        EventHandler.on(this._element, eventIn, this._config.selector, event => {\n          const context = this._initializeOnDelegatedTarget(event)\n          context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n          context._enter()\n        })\n        EventHandler.on(this._element, eventOut, this._config.selector, event => {\n          const context = this._initializeOnDelegatedTarget(event)\n          context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n            context._element.contains(event.relatedTarget)\n\n          context._leave()\n        })\n      }\n    }\n\n    this._hideModalHandler = () => {\n      if (this._element) {\n        this.hide()\n      }\n    }\n\n    EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\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 title = this._config.originalTitle\n\n    if (!title) {\n      return\n    }\n\n    if (!this._element.getAttribute('aria-label') && !this._element.textContent) {\n      this._element.setAttribute('aria-label', title)\n    }\n\n    this._element.removeAttribute('title')\n  }\n\n  _enter() {\n    if (this._isShown() || this._isHovered) {\n      this._isHovered = true\n      return\n    }\n\n    this._isHovered = true\n\n    this._setTimeout(() => {\n      if (this._isHovered) {\n        this.show()\n      }\n    }, this._config.delay.show)\n  }\n\n  _leave() {\n    if (this._isWithActiveTrigger()) {\n      return\n    }\n\n    this._isHovered = false\n\n    this._setTimeout(() => {\n      if (!this._isHovered) {\n        this.hide()\n      }\n    }, this._config.delay.hide)\n  }\n\n  _setTimeout(handler, timeout) {\n    clearTimeout(this._timeout)\n    this._timeout = setTimeout(handler, timeout)\n  }\n\n  _isWithActiveTrigger() {\n    return Object.values(this._activeTrigger).includes(true)\n  }\n\n  _getConfig(config) {\n    const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n    for (const dataAttribute of Object.keys(dataAttributes)) {\n      if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n        delete dataAttributes[dataAttribute]\n      }\n    }\n\n    config = {\n      ...dataAttributes,\n      ...(typeof config === 'object' && config ? config : {})\n    }\n    config = this._mergeConfigObj(config)\n    config = this._configAfterMerge(config)\n    this._typeCheckConfig(config)\n    return config\n  }\n\n  _configAfterMerge(config) {\n    config.container = config.container === false ? document.body : getElement(config.container)\n\n    if (typeof config.delay === 'number') {\n      config.delay = {\n        show: config.delay,\n        hide: config.delay\n      }\n    }\n\n    config.originalTitle = this._element.getAttribute('title') || ''\n    config.title = this._resolvePossibleFunction(config.title) || config.originalTitle\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    return config\n  }\n\n  _getDelegateConfig() {\n    const config = {}\n\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    // In the future can be replaced with:\n    // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n    // `Object.fromEntries(keysWithDifferentValues)`\n    return config\n  }\n\n  _disposePopper() {\n    if (this._popper) {\n      this._popper.destroy()\n      this._popper = null\n    }\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Tooltip.getOrCreateInstance(this, config)\n\n      if (typeof config !== 'string') {\n        return\n      }\n\n      if (typeof data[config] === 'undefined') {\n        throw new TypeError(`No method named \"${config}\"`)\n      }\n\n      data[config]()\n    })\n  }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip)\n\nexport default Tooltip\n"],"names":["NAME","DISALLOWED_ATTRIBUTES","Set","CLASS_NAME_FADE","CLASS_NAME_MODAL","CLASS_NAME_SHOW","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_INSERTED","EVENT_CLICK","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","AttachmentMap","AUTO","TOP","RIGHT","isRTL","BOTTOM","LEFT","Default","animation","template","trigger","title","delay","html","selector","placement","offset","container","fallbackPlacements","boundary","customClass","sanitize","sanitizeFn","allowList","DefaultAllowlist","popperConfig","DefaultType","Tooltip","BaseComponent","constructor","element","config","Popper","TypeError","_isEnabled","_timeout","_isHovered","_activeTrigger","_popper","_templateFactory","tip","_setListeners","enable","disable","toggleEnabled","toggle","event","context","_initializeOnDelegatedTarget","click","_isWithActiveTrigger","_enter","_leave","_isShown","dispose","clearTimeout","EventHandler","off","_element","closest","_hideModalHandler","remove","_disposePopper","show","style","display","Error","_isWithContent","showEvent","eventName","shadowRoot","findShadowRoot","isInTheDom","ownerDocument","documentElement","contains","defaultPrevented","_getTipElement","setAttribute","getAttribute","_config","append","update","_createPopper","classList","add","document","concat","body","children","on","noop","complete","previousHoverState","_queueCallback","_isAnimated","hide","hideEvent","removeAttribute","Boolean","_getTitle","_createTipElement","_getContentForTemplate","content","_getTemplateFactory","toHtml","tipId","getUID","toString","setContent","isShown","changeContent","TemplateFactory","extraClass","_resolvePossibleFunction","getOrCreateInstance","delegateTarget","_getDelegateConfig","call","attachment","toUpperCase","createPopper","_getPopperConfig","_getOffset","split","map","value","Number","parseInt","popperData","arg","defaultBsPopperConfig","modifiers","name","options","enabled","phase","fn","data","state","triggers","eventIn","eventOut","type","relatedTarget","_fixTitle","originalTitle","textContent","_setTimeout","handler","timeout","setTimeout","Object","values","includes","_getConfig","dataAttributes","Manipulator","getDataAttributes","dataAttribute","keys","has","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","getElement","key","destroy","jQueryInterface","each","defineJQueryPlugin"],"mappings":"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"}