mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-01 13:24:25 +01:00
1 line
45 KiB
Plaintext
1 line
45 KiB
Plaintext
{"version":3,"file":"carousel.js","sources":["../src/util/index.js","../src/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'\nconst jQuery = window.jQuery\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 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 (err) {\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' : 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): carousel.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 getSelectorFromElement,\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/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\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 // 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) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\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 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] : 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 Error(`No method named \"${action}\"`)\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 selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\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\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\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","jQuery","window","toType","obj","toString","call","match","toLowerCase","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","err","getTransitionDurationFromElement","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","isVisible","style","parentNode","display","visibility","reflow","offsetHeight","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","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","ride","_jQueryInterface","each","_dataApiClickHandler","slideIndex","_getInstance","carousels","len","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} |