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: 9c3da9e7a1d0a857512a6f5f70627c74808540e2 (plain)
1
{"version":3,"file":"carousel.js","sources":["../src/util/index.js","../src/carousel/carousel.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 => ({}.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 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  const evt = document.createEvent('HTMLEvents')\n\n  evt.initEvent(TRANSITION_END, true, true)\n  element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n  let called = false\n  const durationPadding = 5\n  const emulatedDuration = duration + durationPadding\n  function listener() {\n    called = true\n    element.removeEventListener(TRANSITION_END, listener)\n  }\n\n  element.addEventListener(TRANSITION_END, listener)\n  setTimeout(() => {\n    if (!called) {\n      triggerTransitionEnd(element)\n    }\n  }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n  Object.keys(configTypes)\n    .forEach(property => {\n      const expectedTypes = configTypes[property]\n      const value = config[property]\n      const valueType = value && isElement(value) ?\n        'element' :\n        toType(value)\n\n      if (!new RegExp(expectedTypes).test(valueType)) {\n        throw new Error(\n          `${componentName.toUpperCase()}: ` +\n          `Option \"${property}\" provided type \"${valueType}\" ` +\n          `but expected type \"${expectedTypes}\".`)\n      }\n    })\n}\n\nconst makeArray = nodeList => {\n  if (!nodeList) {\n    return []\n  }\n\n  return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n  if (!element) {\n    return false\n  }\n\n  if (element.style && element.parentNode && element.parentNode.style) {\n    return element.style.display !== 'none' &&\n      element.parentNode.style.display !== 'none' &&\n      element.style.visibility !== 'hidden'\n  }\n\n  return false\n}\n\nconst findShadowRoot = element => {\n  if (!document.documentElement.attachShadow) {\n    return null\n  }\n\n  // Can find the shadow root otherwise it'll return the document\n  if (typeof element.getRootNode === 'function') {\n    const root = element.getRootNode()\n    return root instanceof ShadowRoot ? root : null\n  }\n\n  if (element instanceof ShadowRoot) {\n    return element\n  }\n\n  // when we don't find a shadow root\n  if (!element.parentNode) {\n    return null\n  }\n\n  return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\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  makeArray,\n  isVisible,\n  findShadowRoot,\n  noop,\n  reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.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  getElementFromSelector,\n  getTransitionDurationFromElement,\n  isVisible,\n  makeArray,\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'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\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 = {\n  NEXT: 'next',\n  PREV: 'prev',\n  LEFT: 'left',\n  RIGHT: 'right'\n}\n\nconst Event = {\n  SLIDE: `slide${EVENT_KEY}`,\n  SLID: `slid${EVENT_KEY}`,\n  KEYDOWN: `keydown${EVENT_KEY}`,\n  MOUSEENTER: `mouseenter${EVENT_KEY}`,\n  MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n  TOUCHSTART: `touchstart${EVENT_KEY}`,\n  TOUCHMOVE: `touchmove${EVENT_KEY}`,\n  TOUCHEND: `touchend${EVENT_KEY}`,\n  POINTERDOWN: `pointerdown${EVENT_KEY}`,\n  POINTERUP: `pointerup${EVENT_KEY}`,\n  DRAG_START: `dragstart${EVENT_KEY}`,\n  LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n  CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n  CAROUSEL: 'carousel',\n  ACTIVE: 'active',\n  SLIDE: 'slide',\n  RIGHT: 'carousel-item-right',\n  LEFT: 'carousel-item-left',\n  NEXT: 'carousel-item-next',\n  PREV: 'carousel-item-prev',\n  ITEM: 'carousel-item',\n  POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n  ACTIVE: '.active',\n  ACTIVE_ITEM: '.active.carousel-item',\n  ITEM: '.carousel-item',\n  ITEM_IMG: '.carousel-item img',\n  NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n  INDICATORS: '.carousel-indicators',\n  DATA_SLIDE: '[data-slide], [data-slide-to]',\n  DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n  TOUCH: 'touch',\n  PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n  constructor(element, config) {\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._element = element\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 || window.MSPointerEvent)\n\n    this._addEventListeners()\n    Data.setData(element, 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  // 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._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    EventHandler.off(this._element, EVENT_KEY)\n    Data.removeData(this._element, DATA_KEY)\n\n    this._items = null\n    this._config = null\n    this._element = 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\n        .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n    }\n\n    if (this._config.pause === 'hover') {\n      EventHandler\n        .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n      EventHandler\n        .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    makeArray(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(ClassName.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.which) {\n      case ARROW_LEFT_KEYCODE:\n        event.preventDefault()\n        this.prev()\n        break\n      case ARROW_RIGHT_KEYCODE:\n        event.preventDefault()\n        this.next()\n        break\n      default:\n    }\n  }\n\n  _getItemIndex(element) {\n    this._items = element && element.parentNode ?\n      makeArray(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      for (let i = 0; i < indicators.length; i++) {\n        indicators[i].classList.remove(ClassName.ACTIVE)\n      }\n\n      const nextIndicator = this._indicatorsElement.children[\n        this._getItemIndex(element)\n      ]\n\n      if (nextIndicator) {\n        nextIndicator.classList.add(ClassName.ACTIVE)\n      }\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 &&\n      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 = ClassName.LEFT\n      orderClassName = ClassName.NEXT\n      eventDirectionName = Direction.LEFT\n    } else {\n      directionalClassName = ClassName.RIGHT\n      orderClassName = ClassName.PREV\n      eventDirectionName = Direction.RIGHT\n    }\n\n    if (nextElement && nextElement.classList.contains(ClassName.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\n    if (this._element.classList.contains(ClassName.SLIDE)) {\n      nextElement.classList.add(orderClassName)\n\n      reflow(nextElement)\n\n      activeElement.classList.add(directionalClassName)\n      nextElement.classList.add(directionalClassName)\n\n      const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n      if (nextElementInterval) {\n        this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n        this._config.interval = nextElementInterval\n      } else {\n        this._config.interval = this._config.defaultInterval || this._config.interval\n      }\n\n      const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n      EventHandler\n        .one(activeElement, TRANSITION_END, () => {\n          nextElement.classList.remove(directionalClassName)\n          nextElement.classList.remove(orderClassName)\n          nextElement.classList.add(ClassName.ACTIVE)\n\n          activeElement.classList.remove(ClassName.ACTIVE)\n          activeElement.classList.remove(orderClassName)\n          activeElement.classList.remove(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(ClassName.ACTIVE)\n      nextElement.classList.add(ClassName.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(ClassName.CAROUSEL)) {\n      return\n    }\n\n    const config = {\n      ...Manipulator.getDataAttributes(target),\n      ...Manipulator.getDataAttributes(this)\n    }\n    const slideIndex = this.getAttribute('data-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  static getInstance(element) {\n    return Data.getData(element, DATA_KEY)\n  }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n  .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n  const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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\nexport default Carousel\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","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","isVisible","style","parentNode","display","visibility","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","Event","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CLICK_DATA_API","ClassName","CAROUSEL","ACTIVE","ITEM","POINTER_EVENT","Selector","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_element","_indicatorsElement","SelectorEngine","findOne","_touchSupported","documentElement","navigator","maxTouchPoints","_pointerEvent","Boolean","PointerEvent","MSPointerEvent","_addEventListeners","Data","setData","next","_slide","nextWhenVisible","hidden","prev","event","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","EventHandler","one","direction","dispose","off","removeData","_handleSwipe","absDeltax","Math","abs","on","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","find","itemImg","e","preventDefault","classList","add","target","tagName","which","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","trigger","from","_setActiveIndicatorElement","indicators","i","remove","nextIndicator","children","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","contains","slideEvent","defaultPrevented","nextElementInterval","parseInt","defaultInterval","carouselInterface","data","getData","Manipulator","getDataAttributes","action","TypeError","ride","jQueryInterface","each","dataApiClickHandler","slideIndex","getInstance","carousels","len","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}