mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-01 13:24:25 +01:00
1 line
46 KiB
Plaintext
1 line
46 KiB
Plaintext
{"version":3,"file":"carousel.js","sources":["../src/util/index.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-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 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).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-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\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}\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'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '5.0.0-alpha3'\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_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\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-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\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)\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._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 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.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 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 = parseInt(element.getAttribute('data-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 &&\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 = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\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-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.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","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","NAME","VERSION","DATA_KEY","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_RIGHT","CLASS_NAME_LEFT","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","_element","_indicatorsElement","SelectorEngine","findOne","_touchSupported","documentElement","navigator","maxTouchPoints","_pointerEvent","Boolean","PointerEvent","_addEventListeners","Data","setData","next","_slide","nextWhenVisible","hidden","prev","event","cycle","clearInterval","_updateInterval","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","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","getData","Manipulator","getDataAttributes","action","TypeError","ride","jQueryInterface","each","dataApiClickHandler","slideIndex","getInstance","carousels","len","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} |