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

carousel.js.map « dist « js - github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e000b5a72919263c90480edfc05aff98e5558668 (plain)
1
{"version":3,"file":"carousel.js","sources":["../src/util/index.js","../src/base-component.js","../src/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/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.floor(Math.random() * MAX_UID)\n  } while (document.getElementById(prefix))\n\n  return prefix\n}\n\nconst getSelector = element => {\n  let selector = element.getAttribute('data-bs-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 { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n  const floatTransitionDuration = Number.parseFloat(transitionDuration)\n  const floatTransitionDelay = Number.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 (Number.parseFloat(transitionDuration) + Number.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\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).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-bs-no-jquery')) {\n    return jQuery\n  }\n\n  return null\n}\n\nconst onDOMContentLoaded = callback => {\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', callback)\n  } else {\n    callback()\n  }\n}\n\nconst isRTL = document.documentElement.dir === 'rtl'\n\nexport {\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  getjQuery,\n  onDOMContentLoaded,\n  isRTL\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-alpha3'\n\nclass BaseComponent {\n  constructor(element) {\n    if (!element) {\n      return\n    }\n\n    this._element = element\n    Data.setData(element, this.constructor.DATA_KEY, this)\n  }\n\n  dispose() {\n    Data.removeData(this._element, this.constructor.DATA_KEY)\n    this._element = null\n  }\n\n  /** Static */\n\n  static getInstance(element) {\n    return Data.getData(element, this.DATA_KEY)\n  }\n\n  static get VERSION() {\n    return VERSION\n  }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n  getjQuery,\n  onDOMContentLoaded,\n  TRANSITION_END,\n  emulateTransitionEnd,\n  getElementFromSelector,\n  getTransitionDurationFromElement,\n  isVisible,\n  reflow,\n  triggerTransitionEnd,\n  typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n  interval: 5000,\n  keyboard: true,\n  slide: false,\n  pause: 'hover',\n  wrap: true,\n  touch: true\n}\n\nconst DefaultType = {\n  interval: '(number|boolean)',\n  keyboard: 'boolean',\n  slide: '(boolean|string)',\n  pause: '(string|boolean)',\n  wrap: 'boolean',\n  touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst PointerType = {\n  TOUCH: 'touch',\n  PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n  constructor(element, config) {\n    super(element)\n\n    this._items = null\n    this._interval = null\n    this._activeElement = null\n    this._isPaused = false\n    this._isSliding = false\n    this.touchTimeout = null\n    this.touchStartX = 0\n    this.touchDeltaX = 0\n\n    this._config = this._getConfig(config)\n    this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n    this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n    this._pointerEvent = Boolean(window.PointerEvent)\n\n    this._addEventListeners()\n  }\n\n  // Getters\n\n  static get Default() {\n    return Default\n  }\n\n  static get DATA_KEY() {\n    return DATA_KEY\n  }\n\n  // Public\n\n  next() {\n    if (!this._isSliding) {\n      this._slide(DIRECTION_NEXT)\n    }\n  }\n\n  nextWhenVisible() {\n    // Don't call next when the page isn't visible\n    // or the carousel or its parent isn't visible\n    if (!document.hidden && isVisible(this._element)) {\n      this.next()\n    }\n  }\n\n  prev() {\n    if (!this._isSliding) {\n      this._slide(DIRECTION_PREV)\n    }\n  }\n\n  pause(event) {\n    if (!event) {\n      this._isPaused = true\n    }\n\n    if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n      triggerTransitionEnd(this._element)\n      this.cycle(true)\n    }\n\n    clearInterval(this._interval)\n    this._interval = null\n  }\n\n  cycle(event) {\n    if (!event) {\n      this._isPaused = false\n    }\n\n    if (this._interval) {\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    if (this._config && this._config.interval && !this._isPaused) {\n      this._updateInterval()\n\n      this._interval = setInterval(\n        (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n        this._config.interval\n      )\n    }\n  }\n\n  to(index) {\n    this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n    const activeIndex = this._getItemIndex(this._activeElement)\n\n    if (index > this._items.length - 1 || index < 0) {\n      return\n    }\n\n    if (this._isSliding) {\n      EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n      return\n    }\n\n    if (activeIndex === index) {\n      this.pause()\n      this.cycle()\n      return\n    }\n\n    const direction = index > activeIndex ?\n      DIRECTION_NEXT :\n      DIRECTION_PREV\n\n    this._slide(direction, this._items[index])\n  }\n\n  dispose() {\n    super.dispose()\n    EventHandler.off(this._element, EVENT_KEY)\n\n    this._items = null\n    this._config = null\n    this._interval = null\n    this._isPaused = null\n    this._isSliding = null\n    this._activeElement = null\n    this._indicatorsElement = null\n  }\n\n  // Private\n\n  _getConfig(config) {\n    config = {\n      ...Default,\n      ...config\n    }\n    typeCheckConfig(NAME, config, DefaultType)\n    return config\n  }\n\n  _handleSwipe() {\n    const absDeltax = Math.abs(this.touchDeltaX)\n\n    if (absDeltax <= SWIPE_THRESHOLD) {\n      return\n    }\n\n    const direction = absDeltax / this.touchDeltaX\n\n    this.touchDeltaX = 0\n\n    // swipe left\n    if (direction > 0) {\n      this.prev()\n    }\n\n    // swipe right\n    if (direction < 0) {\n      this.next()\n    }\n  }\n\n  _addEventListeners() {\n    if (this._config.keyboard) {\n      EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n    }\n\n    if (this._config.pause === 'hover') {\n      EventHandler.on(this._element, EVENT_MOUSEENTER, event => this.pause(event))\n      EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n    }\n\n    if (this._config.touch && this._touchSupported) {\n      this._addTouchEventListeners()\n    }\n  }\n\n  _addTouchEventListeners() {\n    const start = event => {\n      if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n        this.touchStartX = event.clientX\n      } else if (!this._pointerEvent) {\n        this.touchStartX = event.touches[0].clientX\n      }\n    }\n\n    const move = event => {\n      // ensure swiping with one touch and not pinching\n      if (event.touches && event.touches.length > 1) {\n        this.touchDeltaX = 0\n      } else {\n        this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n      }\n    }\n\n    const end = event => {\n      if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n        this.touchDeltaX = event.clientX - this.touchStartX\n      }\n\n      this._handleSwipe()\n      if (this._config.pause === 'hover') {\n        // If it's a touch-enabled device, mouseenter/leave are fired as\n        // part of the mouse compatibility events on first tap - the carousel\n        // would stop cycling until user tapped out of it;\n        // here, we listen for touchend, explicitly pause the carousel\n        // (as if it's the second time we tap on it, mouseenter compat event\n        // is NOT fired) and after a timeout (to allow for mouse compatibility\n        // events to fire) we explicitly restart cycling\n\n        this.pause()\n        if (this.touchTimeout) {\n          clearTimeout(this.touchTimeout)\n        }\n\n        this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n      }\n    }\n\n    SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n      EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n    })\n\n    if (this._pointerEvent) {\n      EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n      EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n      this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n    } else {\n      EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n      EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n      EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n    }\n  }\n\n  _keydown(event) {\n    if (/input|textarea/i.test(event.target.tagName)) {\n      return\n    }\n\n    switch (event.key) {\n      case ARROW_LEFT_KEY:\n        event.preventDefault()\n        this.prev()\n        break\n      case ARROW_RIGHT_KEY:\n        event.preventDefault()\n        this.next()\n        break\n      default:\n    }\n  }\n\n  _getItemIndex(element) {\n    this._items = element && element.parentNode ?\n      SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n      []\n\n    return this._items.indexOf(element)\n  }\n\n  _getItemByDirection(direction, activeElement) {\n    const isNextDirection = direction === DIRECTION_NEXT\n    const isPrevDirection = direction === DIRECTION_PREV\n    const activeIndex = this._getItemIndex(activeElement)\n    const lastItemIndex = this._items.length - 1\n    const isGoingToWrap = (isPrevDirection && activeIndex === 0) ||\n                            (isNextDirection && activeIndex === lastItemIndex)\n\n    if (isGoingToWrap && !this._config.wrap) {\n      return activeElement\n    }\n\n    const delta = direction === DIRECTION_PREV ? -1 : 1\n    const itemIndex = (activeIndex + delta) % this._items.length\n\n    return itemIndex === -1 ?\n      this._items[this._items.length - 1] :\n      this._items[itemIndex]\n  }\n\n  _triggerSlideEvent(relatedTarget, eventDirectionName) {\n    const targetIndex = this._getItemIndex(relatedTarget)\n    const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n    return EventHandler.trigger(this._element, EVENT_SLIDE, {\n      relatedTarget,\n      direction: eventDirectionName,\n      from: fromIndex,\n      to: targetIndex\n    })\n  }\n\n  _setActiveIndicatorElement(element) {\n    if (this._indicatorsElement) {\n      const indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement)\n\n      for (let i = 0; i < indicators.length; i++) {\n        indicators[i].classList.remove(CLASS_NAME_ACTIVE)\n      }\n\n      const nextIndicator = this._indicatorsElement.children[\n        this._getItemIndex(element)\n      ]\n\n      if (nextIndicator) {\n        nextIndicator.classList.add(CLASS_NAME_ACTIVE)\n      }\n    }\n  }\n\n  _updateInterval() {\n    const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n    if (!element) {\n      return\n    }\n\n    const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n    if (elementInterval) {\n      this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n      this._config.interval = elementInterval\n    } else {\n      this._config.interval = this._config.defaultInterval || this._config.interval\n    }\n  }\n\n  _slide(direction, element) {\n    const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n    const activeElementIndex = this._getItemIndex(activeElement)\n    const nextElement = element || (activeElement && this._getItemByDirection(direction, activeElement))\n\n    const nextElementIndex = this._getItemIndex(nextElement)\n    const isCycling = Boolean(this._interval)\n\n    let directionalClassName\n    let orderClassName\n    let eventDirectionName\n\n    if (direction === DIRECTION_NEXT) {\n      directionalClassName = CLASS_NAME_START\n      orderClassName = CLASS_NAME_NEXT\n      eventDirectionName = DIRECTION_LEFT\n    } else {\n      directionalClassName = CLASS_NAME_END\n      orderClassName = CLASS_NAME_PREV\n      eventDirectionName = DIRECTION_RIGHT\n    }\n\n    if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n      this._isSliding = false\n      return\n    }\n\n    const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n    if (slideEvent.defaultPrevented) {\n      return\n    }\n\n    if (!activeElement || !nextElement) {\n      // Some weirdness is happening, so we bail\n      return\n    }\n\n    this._isSliding = true\n\n    if (isCycling) {\n      this.pause()\n    }\n\n    this._setActiveIndicatorElement(nextElement)\n    this._activeElement = nextElement\n\n    if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n      nextElement.classList.add(orderClassName)\n\n      reflow(nextElement)\n\n      activeElement.classList.add(directionalClassName)\n      nextElement.classList.add(directionalClassName)\n\n      const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n      EventHandler.one(activeElement, TRANSITION_END, () => {\n        nextElement.classList.remove(directionalClassName, orderClassName)\n        nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n        activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n        this._isSliding = false\n\n        setTimeout(() => {\n          EventHandler.trigger(this._element, EVENT_SLID, {\n            relatedTarget: nextElement,\n            direction: eventDirectionName,\n            from: activeElementIndex,\n            to: nextElementIndex\n          })\n        }, 0)\n      })\n\n      emulateTransitionEnd(activeElement, transitionDuration)\n    } else {\n      activeElement.classList.remove(CLASS_NAME_ACTIVE)\n      nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n      this._isSliding = false\n      EventHandler.trigger(this._element, EVENT_SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n    }\n\n    if (isCycling) {\n      this.cycle()\n    }\n  }\n\n  // Static\n\n  static carouselInterface(element, config) {\n    let data = Data.getData(element, DATA_KEY)\n    let _config = {\n      ...Default,\n      ...Manipulator.getDataAttributes(element)\n    }\n\n    if (typeof config === 'object') {\n      _config = {\n        ..._config,\n        ...config\n      }\n    }\n\n    const action = typeof config === 'string' ? config : _config.slide\n\n    if (!data) {\n      data = new Carousel(element, _config)\n    }\n\n    if (typeof config === 'number') {\n      data.to(config)\n    } else if (typeof action === 'string') {\n      if (typeof data[action] === 'undefined') {\n        throw new TypeError(`No method named \"${action}\"`)\n      }\n\n      data[action]()\n    } else if (_config.interval && _config.ride) {\n      data.pause()\n      data.cycle()\n    }\n  }\n\n  static jQueryInterface(config) {\n    return this.each(function () {\n      Carousel.carouselInterface(this, config)\n    })\n  }\n\n  static dataApiClickHandler(event) {\n    const target = getElementFromSelector(this)\n\n    if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n      return\n    }\n\n    const config = {\n      ...Manipulator.getDataAttributes(target),\n      ...Manipulator.getDataAttributes(this)\n    }\n    const slideIndex = this.getAttribute('data-bs-slide-to')\n\n    if (slideIndex) {\n      config.interval = false\n    }\n\n    Carousel.carouselInterface(target, config)\n\n    if (slideIndex) {\n      Data.getData(target, DATA_KEY).to(slideIndex)\n    }\n\n    event.preventDefault()\n  }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n  const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n  for (let i = 0, len = carousels.length; i < len; i++) {\n    Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n  }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n  const $ = getjQuery()\n  /* istanbul ignore if */\n  if ($) {\n    const JQUERY_NO_CONFLICT = $.fn[NAME]\n    $.fn[NAME] = Carousel.jQueryInterface\n    $.fn[NAME].Constructor = Carousel\n    $.fn[NAME].noConflict = () => {\n      $.fn[NAME] = JQUERY_NO_CONFLICT\n      return Carousel.jQueryInterface\n    }\n  }\n})\n\nexport default Carousel\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","Number","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","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","onDOMContentLoaded","callback","readyState","isRTL","documentElement","dir","VERSION","BaseComponent","_element","Data","setData","constructor","DATA_KEY","dispose","removeData","getInstance","getData","NAME","EVENT_KEY","DATA_API_KEY","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","EVENT_CLICK_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","SelectorEngine","findOne","_touchSupported","navigator","maxTouchPoints","_pointerEvent","Boolean","PointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","event","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","EventHandler","one","direction","off","_handleSwipe","absDeltax","Math","abs","on","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","find","itemImg","e","preventDefault","classList","add","target","tagName","key","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","trigger","from","_setActiveIndicatorElement","indicators","i","remove","nextIndicator","children","elementInterval","parseInt","defaultInterval","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","contains","slideEvent","defaultPrevented","carouselInterface","data","Manipulator","getDataAttributes","action","TypeError","ride","jQueryInterface","each","dataApiClickHandler","slideIndex","carousels","len","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}