codekingpro/portable-devtools
114k
1/*!2 * Bootstrap v4.6.2 (https://getbootstrap.com/)3 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)5 */6(function (global, factory) {7 typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :8 typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :9 (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery));10})(this, (function (exports, $) { 'use strict';11 12 function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }13 14 var $__default = /*#__PURE__*/_interopDefaultLegacy($);15 16 function _defineProperties(target, props) {17 for (var i = 0; i < props.length; i++) {18 var descriptor = props[i];19 descriptor.enumerable = descriptor.enumerable || false;20 descriptor.configurable = true;21 if ("value" in descriptor) descriptor.writable = true;22 Object.defineProperty(target, descriptor.key, descriptor);23 }24 }25 26 function _createClass(Constructor, protoProps, staticProps) {27 if (protoProps) _defineProperties(Constructor.prototype, protoProps);28 if (staticProps) _defineProperties(Constructor, staticProps);29 Object.defineProperty(Constructor, "prototype", {30 writable: false31 });32 return Constructor;33 }34 35 function _extends$1() {36 _extends$1 = Object.assign ? Object.assign.bind() : function (target) {37 for (var i = 1; i < arguments.length; i++) {38 var source = arguments[i];39 40 for (var key in source) {41 if (Object.prototype.hasOwnProperty.call(source, key)) {42 target[key] = source[key];43 }44 }45 }46 47 return target;48 };49 return _extends$1.apply(this, arguments);50 }51 52 function _inheritsLoose(subClass, superClass) {53 subClass.prototype = Object.create(superClass.prototype);54 subClass.prototype.constructor = subClass;55 56 _setPrototypeOf(subClass, superClass);57 }58 59 function _setPrototypeOf(o, p) {60 _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {61 o.__proto__ = p;62 return o;63 };64 return _setPrototypeOf(o, p);65 }66 67 /**68 * --------------------------------------------------------------------------69 * Bootstrap (v4.6.2): util.js70 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)71 * --------------------------------------------------------------------------72 */73 /**74 * Private TransitionEnd Helpers75 */76 77 var TRANSITION_END = 'transitionend';78 var MAX_UID = 1000000;79 var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)80 81 function toType(obj) {82 if (obj === null || typeof obj === 'undefined') {83 return "" + obj;84 }85 86 return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();87 }88 89 function getSpecialTransitionEndEvent() {90 return {91 bindType: TRANSITION_END,92 delegateType: TRANSITION_END,93 handle: function handle(event) {94 if ($__default["default"](event.target).is(this)) {95 return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params96 }97 98 return undefined;99 }100 };101 }102 103 function transitionEndEmulator(duration) {104 var _this = this;105 106 var called = false;107 $__default["default"](this).one(Util.TRANSITION_END, function () {108 called = true;109 });110 setTimeout(function () {111 if (!called) {112 Util.triggerTransitionEnd(_this);113 }114 }, duration);115 return this;116 }117 118 function setTransitionEndSupport() {119 $__default["default"].fn.emulateTransitionEnd = transitionEndEmulator;120 $__default["default"].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();121 }122 /**123 * Public Util API124 */125 126 127 var Util = {128 TRANSITION_END: 'bsTransitionEnd',129 getUID: function getUID(prefix) {130 do {131 // eslint-disable-next-line no-bitwise132 prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here133 } while (document.getElementById(prefix));134 135 return prefix;136 },137 getSelectorFromElement: function getSelectorFromElement(element) {138 var selector = element.getAttribute('data-target');139 140 if (!selector || selector === '#') {141 var hrefAttr = element.getAttribute('href');142 selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';143 }144 145 try {146 return document.querySelector(selector) ? selector : null;147 } catch (_) {148 return null;149 }150 },151 getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {152 if (!element) {153 return 0;154 } // Get transition-duration of the element155 156 157 var transitionDuration = $__default["default"](element).css('transition-duration');158 var transitionDelay = $__default["default"](element).css('transition-delay');159 var floatTransitionDuration = parseFloat(transitionDuration);160 var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found161 162 if (!floatTransitionDuration && !floatTransitionDelay) {163 return 0;164 } // If multiple durations are defined, take the first165 166 167 transitionDuration = transitionDuration.split(',')[0];168 transitionDelay = transitionDelay.split(',')[0];169 return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;170 },171 reflow: function reflow(element) {172 return element.offsetHeight;173 },174 triggerTransitionEnd: function triggerTransitionEnd(element) {175 $__default["default"](element).trigger(TRANSITION_END);176 },177 supportsTransitionEnd: function supportsTransitionEnd() {178 return Boolean(TRANSITION_END);179 },180 isElement: function isElement(obj) {181 return (obj[0] || obj).nodeType;182 },183 typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {184 for (var property in configTypes) {185 if (Object.prototype.hasOwnProperty.call(configTypes, property)) {186 var expectedTypes = configTypes[property];187 var value = config[property];188 var valueType = value && Util.isElement(value) ? 'element' : toType(value);189 190 if (!new RegExp(expectedTypes).test(valueType)) {191 throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));192 }193 }194 }195 },196 findShadowRoot: function findShadowRoot(element) {197 if (!document.documentElement.attachShadow) {198 return null;199 } // Can find the shadow root otherwise it'll return the document200 201 202 if (typeof element.getRootNode === 'function') {203 var root = element.getRootNode();204 return root instanceof ShadowRoot ? root : null;205 }206 207 if (element instanceof ShadowRoot) {208 return element;209 } // when we don't find a shadow root210 211 212 if (!element.parentNode) {213 return null;214 }215 216 return Util.findShadowRoot(element.parentNode);217 },218 jQueryDetection: function jQueryDetection() {219 if (typeof $__default["default"] === 'undefined') {220 throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');221 }222 223 var version = $__default["default"].fn.jquery.split(' ')[0].split('.');224 var minMajor = 1;225 var ltMajor = 2;226 var minMinor = 9;227 var minPatch = 1;228 var maxMajor = 4;229 230 if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {231 throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');232 }233 }234 };235 Util.jQueryDetection();236 setTransitionEndSupport();237 238 /**239 * Constants240 */241 242 var NAME$a = 'alert';243 var VERSION$a = '4.6.2';244 var DATA_KEY$a = 'bs.alert';245 var EVENT_KEY$a = "." + DATA_KEY$a;246 var DATA_API_KEY$7 = '.data-api';247 var JQUERY_NO_CONFLICT$a = $__default["default"].fn[NAME$a];248 var CLASS_NAME_ALERT = 'alert';249 var CLASS_NAME_FADE$5 = 'fade';250 var CLASS_NAME_SHOW$7 = 'show';251 var EVENT_CLOSE = "close" + EVENT_KEY$a;252 var EVENT_CLOSED = "closed" + EVENT_KEY$a;253 var EVENT_CLICK_DATA_API$6 = "click" + EVENT_KEY$a + DATA_API_KEY$7;254 var SELECTOR_DISMISS = '[data-dismiss="alert"]';255 /**256 * Class definition257 */258 259 var Alert = /*#__PURE__*/function () {260 function Alert(element) {261 this._element = element;262 } // Getters263 264 265 var _proto = Alert.prototype;266 267 // Public268 _proto.close = function close(element) {269 var rootElement = this._element;270 271 if (element) {272 rootElement = this._getRootElement(element);273 }274 275 var customEvent = this._triggerCloseEvent(rootElement);276 277 if (customEvent.isDefaultPrevented()) {278 return;279 }280 281 this._removeElement(rootElement);282 };283 284 _proto.dispose = function dispose() {285 $__default["default"].removeData(this._element, DATA_KEY$a);286 this._element = null;287 } // Private288 ;289 290 _proto._getRootElement = function _getRootElement(element) {291 var selector = Util.getSelectorFromElement(element);292 var parent = false;293 294 if (selector) {295 parent = document.querySelector(selector);296 }297 298 if (!parent) {299 parent = $__default["default"](element).closest("." + CLASS_NAME_ALERT)[0];300 }301 302 return parent;303 };304 305 _proto._triggerCloseEvent = function _triggerCloseEvent(element) {306 var closeEvent = $__default["default"].Event(EVENT_CLOSE);307 $__default["default"](element).trigger(closeEvent);308 return closeEvent;309 };310 311 _proto._removeElement = function _removeElement(element) {312 var _this = this;313 314 $__default["default"](element).removeClass(CLASS_NAME_SHOW$7);315 316 if (!$__default["default"](element).hasClass(CLASS_NAME_FADE$5)) {317 this._destroyElement(element);318 319 return;320 }321 322 var transitionDuration = Util.getTransitionDurationFromElement(element);323 $__default["default"](element).one(Util.TRANSITION_END, function (event) {324 return _this._destroyElement(element, event);325 }).emulateTransitionEnd(transitionDuration);326 };327 328 _proto._destroyElement = function _destroyElement(element) {329 $__default["default"](element).detach().trigger(EVENT_CLOSED).remove();330 } // Static331 ;332 333 Alert._jQueryInterface = function _jQueryInterface(config) {334 return this.each(function () {335 var $element = $__default["default"](this);336 var data = $element.data(DATA_KEY$a);337 338 if (!data) {339 data = new Alert(this);340 $element.data(DATA_KEY$a, data);341 }342 343 if (config === 'close') {344 data[config](this);345 }346 });347 };348 349 Alert._handleDismiss = function _handleDismiss(alertInstance) {350 return function (event) {351 if (event) {352 event.preventDefault();353 }354 355 alertInstance.close(this);356 };357 };358 359 _createClass(Alert, null, [{360 key: "VERSION",361 get: function get() {362 return VERSION$a;363 }364 }]);365 366 return Alert;367 }();368 /**369 * Data API implementation370 */371 372 373 $__default["default"](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));374 /**375 * jQuery376 */377 378 $__default["default"].fn[NAME$a] = Alert._jQueryInterface;379 $__default["default"].fn[NAME$a].Constructor = Alert;380 381 $__default["default"].fn[NAME$a].noConflict = function () {382 $__default["default"].fn[NAME$a] = JQUERY_NO_CONFLICT$a;383 return Alert._jQueryInterface;384 };385 386 /**387 * Constants388 */389 390 var NAME$9 = 'button';391 var VERSION$9 = '4.6.2';392 var DATA_KEY$9 = 'bs.button';393 var EVENT_KEY$9 = "." + DATA_KEY$9;394 var DATA_API_KEY$6 = '.data-api';395 var JQUERY_NO_CONFLICT$9 = $__default["default"].fn[NAME$9];396 var CLASS_NAME_ACTIVE$3 = 'active';397 var CLASS_NAME_BUTTON = 'btn';398 var CLASS_NAME_FOCUS = 'focus';399 var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$9 + DATA_API_KEY$6;400 var EVENT_FOCUS_BLUR_DATA_API = "focus" + EVENT_KEY$9 + DATA_API_KEY$6 + " " + ("blur" + EVENT_KEY$9 + DATA_API_KEY$6);401 var EVENT_LOAD_DATA_API$2 = "load" + EVENT_KEY$9 + DATA_API_KEY$6;402 var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';403 var SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]';404 var SELECTOR_DATA_TOGGLE$4 = '[data-toggle="button"]';405 var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle="buttons"] .btn';406 var SELECTOR_INPUT = 'input:not([type="hidden"])';407 var SELECTOR_ACTIVE$2 = '.active';408 var SELECTOR_BUTTON = '.btn';409 /**410 * Class definition411 */412 413 var Button = /*#__PURE__*/function () {414 function Button(element) {415 this._element = element;416 this.shouldAvoidTriggerChange = false;417 } // Getters418 419 420 var _proto = Button.prototype;421 422 // Public423 _proto.toggle = function toggle() {424 var triggerChangeEvent = true;425 var addAriaPressed = true;426 var rootElement = $__default["default"](this._element).closest(SELECTOR_DATA_TOGGLES)[0];427 428 if (rootElement) {429 var input = this._element.querySelector(SELECTOR_INPUT);430 431 if (input) {432 if (input.type === 'radio') {433 if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE$3)) {434 triggerChangeEvent = false;435 } else {436 var activeElement = rootElement.querySelector(SELECTOR_ACTIVE$2);437 438 if (activeElement) {439 $__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE$3);440 }441 }442 }443 444 if (triggerChangeEvent) {445 // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input446 if (input.type === 'checkbox' || input.type === 'radio') {447 input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE$3);448 }449 450 if (!this.shouldAvoidTriggerChange) {451 $__default["default"](input).trigger('change');452 }453 }454 455 input.focus();456 addAriaPressed = false;457 }458 }459 460 if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {461 if (addAriaPressed) {462 this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE$3));463 }464 465 if (triggerChangeEvent) {466 $__default["default"](this._element).toggleClass(CLASS_NAME_ACTIVE$3);467 }468 }469 };470 471 _proto.dispose = function dispose() {472 $__default["default"].removeData(this._element, DATA_KEY$9);473 this._element = null;474 } // Static475 ;476 477 Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {478 return this.each(function () {479 var $element = $__default["default"](this);480 var data = $element.data(DATA_KEY$9);481 482 if (!data) {483 data = new Button(this);484 $element.data(DATA_KEY$9, data);485 }486 487 data.shouldAvoidTriggerChange = avoidTriggerChange;488 489 if (config === 'toggle') {490 data[config]();491 }492 });493 };494 495 _createClass(Button, null, [{496 key: "VERSION",497 get: function get() {498 return VERSION$9;499 }500 }]);501 502 return Button;503 }();504 /**505 * Data API implementation506 */507 508 509 $__default["default"](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE_CARROT, function (event) {510 var button = event.target;511 var initialButton = button;512 513 if (!$__default["default"](button).hasClass(CLASS_NAME_BUTTON)) {514 button = $__default["default"](button).closest(SELECTOR_BUTTON)[0];515 }516 517 if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {518 event.preventDefault(); // work around Firefox bug #1540995519 } else {520 var inputBtn = button.querySelector(SELECTOR_INPUT);521 522 if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {523 event.preventDefault(); // work around Firefox bug #1540995524 525 return;526 }527 528 if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {529 Button._jQueryInterface.call($__default["default"](button), 'toggle', initialButton.tagName === 'INPUT');530 }531 }532 }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {533 var button = $__default["default"](event.target).closest(SELECTOR_BUTTON)[0];534 $__default["default"](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));535 });536 $__default["default"](window).on(EVENT_LOAD_DATA_API$2, function () {537 // ensure correct active class is set to match the controls' actual values/states538 // find all checkboxes/readio buttons inside data-toggle groups539 var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));540 541 for (var i = 0, len = buttons.length; i < len; i++) {542 var button = buttons[i];543 var input = button.querySelector(SELECTOR_INPUT);544 545 if (input.checked || input.hasAttribute('checked')) {546 button.classList.add(CLASS_NAME_ACTIVE$3);547 } else {548 button.classList.remove(CLASS_NAME_ACTIVE$3);549 }550 } // find all button toggles551 552 553 buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$4));554 555 for (var _i = 0, _len = buttons.length; _i < _len; _i++) {556 var _button = buttons[_i];557 558 if (_button.getAttribute('aria-pressed') === 'true') {559 _button.classList.add(CLASS_NAME_ACTIVE$3);560 } else {561 _button.classList.remove(CLASS_NAME_ACTIVE$3);562 }563 }564 });565 /**566 * jQuery567 */568 569 $__default["default"].fn[NAME$9] = Button._jQueryInterface;570 $__default["default"].fn[NAME$9].Constructor = Button;571 572 $__default["default"].fn[NAME$9].noConflict = function () {573 $__default["default"].fn[NAME$9] = JQUERY_NO_CONFLICT$9;574 return Button._jQueryInterface;575 };576 577 /**578 * Constants579 */580 581 var NAME$8 = 'carousel';582 var VERSION$8 = '4.6.2';583 var DATA_KEY$8 = 'bs.carousel';584 var EVENT_KEY$8 = "." + DATA_KEY$8;585 var DATA_API_KEY$5 = '.data-api';586 var JQUERY_NO_CONFLICT$8 = $__default["default"].fn[NAME$8];587 var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key588 589 var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key590 591 var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch592 593 var SWIPE_THRESHOLD = 40;594 var CLASS_NAME_CAROUSEL = 'carousel';595 var CLASS_NAME_ACTIVE$2 = 'active';596 var CLASS_NAME_SLIDE = 'slide';597 var CLASS_NAME_RIGHT = 'carousel-item-right';598 var CLASS_NAME_LEFT = 'carousel-item-left';599 var CLASS_NAME_NEXT = 'carousel-item-next';600 var CLASS_NAME_PREV = 'carousel-item-prev';601 var CLASS_NAME_POINTER_EVENT = 'pointer-event';602 var DIRECTION_NEXT = 'next';603 var DIRECTION_PREV = 'prev';604 var DIRECTION_LEFT = 'left';605 var DIRECTION_RIGHT = 'right';606 var EVENT_SLIDE = "slide" + EVENT_KEY$8;607 var EVENT_SLID = "slid" + EVENT_KEY$8;608 var EVENT_KEYDOWN = "keydown" + EVENT_KEY$8;609 var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY$8;610 var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY$8;611 var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY$8;612 var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY$8;613 var EVENT_TOUCHEND = "touchend" + EVENT_KEY$8;614 var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY$8;615 var EVENT_POINTERUP = "pointerup" + EVENT_KEY$8;616 var EVENT_DRAG_START = "dragstart" + EVENT_KEY$8;617 var EVENT_LOAD_DATA_API$1 = "load" + EVENT_KEY$8 + DATA_API_KEY$5;618 var EVENT_CLICK_DATA_API$4 = "click" + EVENT_KEY$8 + DATA_API_KEY$5;619 var SELECTOR_ACTIVE$1 = '.active';620 var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';621 var SELECTOR_ITEM = '.carousel-item';622 var SELECTOR_ITEM_IMG = '.carousel-item img';623 var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';624 var SELECTOR_INDICATORS = '.carousel-indicators';625 var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';626 var SELECTOR_DATA_RIDE = '[data-ride="carousel"]';627 var Default$7 = {628 interval: 5000,629 keyboard: true,630 slide: false,631 pause: 'hover',632 wrap: true,633 touch: true634 };635 var DefaultType$7 = {636 interval: '(number|boolean)',637 keyboard: 'boolean',638 slide: '(boolean|string)',639 pause: '(string|boolean)',640 wrap: 'boolean',641 touch: 'boolean'642 };643 var PointerType = {644 TOUCH: 'touch',645 PEN: 'pen'646 };647 /**648 * Class definition649 */650 651 var Carousel = /*#__PURE__*/function () {652 function Carousel(element, config) {653 this._items = null;654 this._interval = null;655 this._activeElement = null;656 this._isPaused = false;657 this._isSliding = false;658 this.touchTimeout = null;659 this.touchStartX = 0;660 this.touchDeltaX = 0;661 this._config = this._getConfig(config);662 this._element = element;663 this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);664 this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;665 this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);666 667 this._addEventListeners();668 } // Getters669 670 671 var _proto = Carousel.prototype;672 673 // Public674 _proto.next = function next() {675 if (!this._isSliding) {676 this._slide(DIRECTION_NEXT);677 }678 };679 680 _proto.nextWhenVisible = function nextWhenVisible() {681 var $element = $__default["default"](this._element); // Don't call next when the page isn't visible682 // or the carousel or its parent isn't visible683 684 if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {685 this.next();686 }687 };688 689 _proto.prev = function prev() {690 if (!this._isSliding) {691 this._slide(DIRECTION_PREV);692 }693 };694 695 _proto.pause = function pause(event) {696 if (!event) {697 this._isPaused = true;698 }699 700 if (this._element.querySelector(SELECTOR_NEXT_PREV)) {701 Util.triggerTransitionEnd(this._element);702 this.cycle(true);703 }704 705 clearInterval(this._interval);706 this._interval = null;707 };708 709 _proto.cycle = function cycle(event) {710 if (!event) {711 this._isPaused = false;712 }713 714 if (this._interval) {715 clearInterval(this._interval);716 this._interval = null;717 }718 719 if (this._config.interval && !this._isPaused) {720 this._updateInterval();721 722 this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);723 }724 };725 726 _proto.to = function to(index) {727 var _this = this;728 729 this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);730 731 var activeIndex = this._getItemIndex(this._activeElement);732 733 if (index > this._items.length - 1 || index < 0) {734 return;735 }736 737 if (this._isSliding) {738 $__default["default"](this._element).one(EVENT_SLID, function () {739 return _this.to(index);740 });741 return;742 }743 744 if (activeIndex === index) {745 this.pause();746 this.cycle();747 return;748 }749 750 var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;751 752 this._slide(direction, this._items[index]);753 };754 755 _proto.dispose = function dispose() {756 $__default["default"](this._element).off(EVENT_KEY$8);757 $__default["default"].removeData(this._element, DATA_KEY$8);758 this._items = null;759 this._config = null;760 this._element = null;761 this._interval = null;762 this._isPaused = null;763 this._isSliding = null;764 this._activeElement = null;765 this._indicatorsElement = null;766 } // Private767 ;768 769 _proto._getConfig = function _getConfig(config) {770 config = _extends$1({}, Default$7, config);771 Util.typeCheckConfig(NAME$8, config, DefaultType$7);772 return config;773 };774 775 _proto._handleSwipe = function _handleSwipe() {776 var absDeltax = Math.abs(this.touchDeltaX);777 778 if (absDeltax <= SWIPE_THRESHOLD) {779 return;780 }781 782 var direction = absDeltax / this.touchDeltaX;783 this.touchDeltaX = 0; // swipe left784 785 if (direction > 0) {786 this.prev();787 } // swipe right788 789 790 if (direction < 0) {791 this.next();792 }793 };794 795 _proto._addEventListeners = function _addEventListeners() {796 var _this2 = this;797 798 if (this._config.keyboard) {799 $__default["default"](this._element).on(EVENT_KEYDOWN, function (event) {800 return _this2._keydown(event);801 });802 }803 804 if (this._config.pause === 'hover') {805 $__default["default"](this._element).on(EVENT_MOUSEENTER, function (event) {806 return _this2.pause(event);807 }).on(EVENT_MOUSELEAVE, function (event) {808 return _this2.cycle(event);809 });810 }811 812 if (this._config.touch) {813 this._addTouchEventListeners();814 }815 };816 817 _proto._addTouchEventListeners = function _addTouchEventListeners() {818 var _this3 = this;819 820 if (!this._touchSupported) {821 return;822 }823 824 var start = function start(event) {825 if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {826 _this3.touchStartX = event.originalEvent.clientX;827 } else if (!_this3._pointerEvent) {828 _this3.touchStartX = event.originalEvent.touches[0].clientX;829 }830 };831 832 var move = function move(event) {833 // ensure swiping with one touch and not pinching834 _this3.touchDeltaX = event.originalEvent.touches && event.originalEvent.touches.length > 1 ? 0 : event.originalEvent.touches[0].clientX - _this3.touchStartX;835 };836 837 var end = function end(event) {838 if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {839 _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;840 }841 842 _this3._handleSwipe();843 844 if (_this3._config.pause === 'hover') {845 // If it's a touch-enabled device, mouseenter/leave are fired as846 // part of the mouse compatibility events on first tap - the carousel847 // would stop cycling until user tapped out of it;848 // here, we listen for touchend, explicitly pause the carousel849 // (as if it's the second time we tap on it, mouseenter compat event850 // is NOT fired) and after a timeout (to allow for mouse compatibility851 // events to fire) we explicitly restart cycling852 _this3.pause();853 854 if (_this3.touchTimeout) {855 clearTimeout(_this3.touchTimeout);856 }857 858 _this3.touchTimeout = setTimeout(function (event) {859 return _this3.cycle(event);860 }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);861 }862 };863 864 $__default["default"](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {865 return e.preventDefault();866 });867 868 if (this._pointerEvent) {869 $__default["default"](this._element).on(EVENT_POINTERDOWN, function (event) {870 return start(event);871 });872 $__default["default"](this._element).on(EVENT_POINTERUP, function (event) {873 return end(event);874 });875 876 this._element.classList.add(CLASS_NAME_POINTER_EVENT);877 } else {878 $__default["default"](this._element).on(EVENT_TOUCHSTART, function (event) {879 return start(event);880 });881 $__default["default"](this._element).on(EVENT_TOUCHMOVE, function (event) {882 return move(event);883 });884 $__default["default"](this._element).on(EVENT_TOUCHEND, function (event) {885 return end(event);886 });887 }888 };889 890 _proto._keydown = function _keydown(event) {891 if (/input|textarea/i.test(event.target.tagName)) {892 return;893 }894 895 switch (event.which) {896 case ARROW_LEFT_KEYCODE:897 event.preventDefault();898 this.prev();899 break;900 901 case ARROW_RIGHT_KEYCODE:902 event.preventDefault();903 this.next();904 break;905 }906 };907 908 _proto._getItemIndex = function _getItemIndex(element) {909 this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];910 return this._items.indexOf(element);911 };912 913 _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {914 var isNextDirection = direction === DIRECTION_NEXT;915 var isPrevDirection = direction === DIRECTION_PREV;916 917 var activeIndex = this._getItemIndex(activeElement);918 919 var lastItemIndex = this._items.length - 1;920 var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;921 922 if (isGoingToWrap && !this._config.wrap) {923 return activeElement;924 }925 926 var delta = direction === DIRECTION_PREV ? -1 : 1;927 var itemIndex = (activeIndex + delta) % this._items.length;928 return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];929 };930 931 _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {932 var targetIndex = this._getItemIndex(relatedTarget);933 934 var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));935 936 var slideEvent = $__default["default"].Event(EVENT_SLIDE, {937 relatedTarget: relatedTarget,938 direction: eventDirectionName,939 from: fromIndex,940 to: targetIndex941 });942 $__default["default"](this._element).trigger(slideEvent);943 return slideEvent;944 };945 946 _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {947 if (this._indicatorsElement) {948 var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1));949 $__default["default"](indicators).removeClass(CLASS_NAME_ACTIVE$2);950 951 var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];952 953 if (nextIndicator) {954 $__default["default"](nextIndicator).addClass(CLASS_NAME_ACTIVE$2);955 }956 }957 };958 959 _proto._updateInterval = function _updateInterval() {960 var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);961 962 if (!element) {963 return;964 }965 966 var elementInterval = parseInt(element.getAttribute('data-interval'), 10);967 968 if (elementInterval) {969 this._config.defaultInterval = this._config.defaultInterval || this._config.interval;970 this._config.interval = elementInterval;971 } else {972 this._config.interval = this._config.defaultInterval || this._config.interval;973 }974 };975 976 _proto._slide = function _slide(direction, element) {977 var _this4 = this;978 979 var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);980 981 var activeElementIndex = this._getItemIndex(activeElement);982 983 var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);984 985 var nextElementIndex = this._getItemIndex(nextElement);986 987 var isCycling = Boolean(this._interval);988 var directionalClassName;989 var orderClassName;990 var eventDirectionName;991 992 if (direction === DIRECTION_NEXT) {993 directionalClassName = CLASS_NAME_LEFT;994 orderClassName = CLASS_NAME_NEXT;995 eventDirectionName = DIRECTION_LEFT;996 } else {997 directionalClassName = CLASS_NAME_RIGHT;998 orderClassName = CLASS_NAME_PREV;999 eventDirectionName = DIRECTION_RIGHT;1000 }1001 1002 if (nextElement && $__default["default"](nextElement).hasClass(CLASS_NAME_ACTIVE$2)) {1003 this._isSliding = false;1004 return;1005 }1006 1007 var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);1008 1009 if (slideEvent.isDefaultPrevented()) {1010 return;1011 }1012 1013 if (!activeElement || !nextElement) {1014 // Some weirdness is happening, so we bail1015 return;1016 }1017 1018 this._isSliding = true;1019 1020 if (isCycling) {1021 this.pause();1022 }1023 1024 this._setActiveIndicatorElement(nextElement);1025 1026 this._activeElement = nextElement;1027 var slidEvent = $__default["default"].Event(EVENT_SLID, {1028 relatedTarget: nextElement,1029 direction: eventDirectionName,1030 from: activeElementIndex,1031 to: nextElementIndex1032 });1033 1034 if ($__default["default"](this._element).hasClass(CLASS_NAME_SLIDE)) {1035 $__default["default"](nextElement).addClass(orderClassName);1036 Util.reflow(nextElement);1037 $__default["default"](activeElement).addClass(directionalClassName);1038 $__default["default"](nextElement).addClass(directionalClassName);1039 var transitionDuration = Util.getTransitionDurationFromElement(activeElement);1040 $__default["default"](activeElement).one(Util.TRANSITION_END, function () {1041 $__default["default"](nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE$2);1042 $__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE$2 + " " + orderClassName + " " + directionalClassName);1043 _this4._isSliding = false;1044 setTimeout(function () {1045 return $__default["default"](_this4._element).trigger(slidEvent);1046 }, 0);1047 }).emulateTransitionEnd(transitionDuration);1048 } else {1049 $__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE$2);1050 $__default["default"](nextElement).addClass(CLASS_NAME_ACTIVE$2);1051 this._isSliding = false;1052 $__default["default"](this._element).trigger(slidEvent);1053 }1054 1055 if (isCycling) {1056 this.cycle();1057 }1058 } // Static1059 ;1060 1061 Carousel._jQueryInterface = function _jQueryInterface(config) {1062 return this.each(function () {1063 var data = $__default["default"](this).data(DATA_KEY$8);1064 1065 var _config = _extends$1({}, Default$7, $__default["default"](this).data());1066 1067 if (typeof config === 'object') {1068 _config = _extends$1({}, _config, config);1069 }1070 1071 var action = typeof config === 'string' ? config : _config.slide;1072 1073 if (!data) {1074 data = new Carousel(this, _config);1075 $__default["default"](this).data(DATA_KEY$8, data);1076 }1077 1078 if (typeof config === 'number') {1079 data.to(config);1080 } else if (typeof action === 'string') {1081 if (typeof data[action] === 'undefined') {1082 throw new TypeError("No method named \"" + action + "\"");1083 }1084 1085 data[action]();1086 } else if (_config.interval && _config.ride) {1087 data.pause();1088 data.cycle();1089 }1090 });1091 };1092 1093 Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {1094 var selector = Util.getSelectorFromElement(this);1095 1096 if (!selector) {1097 return;1098 }1099 1100 var target = $__default["default"](selector)[0];1101 1102 if (!target || !$__default["default"](target).hasClass(CLASS_NAME_CAROUSEL)) {1103 return;1104 }1105 1106 var config = _extends$1({}, $__default["default"](target).data(), $__default["default"](this).data());1107 1108 var slideIndex = this.getAttribute('data-slide-to');1109 1110 if (slideIndex) {1111 config.interval = false;1112 }1113 1114 Carousel._jQueryInterface.call($__default["default"](target), config);1115 1116 if (slideIndex) {1117 $__default["default"](target).data(DATA_KEY$8).to(slideIndex);1118 }1119 1120 event.preventDefault();1121 };1122 1123 _createClass(Carousel, null, [{1124 key: "VERSION",1125 get: function get() {1126 return VERSION$8;1127 }1128 }, {1129 key: "Default",1130 get: function get() {1131 return Default$7;1132 }1133 }]);1134 1135 return Carousel;1136 }();1137 /**1138 * Data API implementation1139 */1140 1141 1142 $__default["default"](document).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);1143 $__default["default"](window).on(EVENT_LOAD_DATA_API$1, function () {1144 var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));1145 1146 for (var i = 0, len = carousels.length; i < len; i++) {1147 var $carousel = $__default["default"](carousels[i]);1148 1149 Carousel._jQueryInterface.call($carousel, $carousel.data());1150 }1151 });1152 /**1153 * jQuery1154 */1155 1156 $__default["default"].fn[NAME$8] = Carousel._jQueryInterface;1157 $__default["default"].fn[NAME$8].Constructor = Carousel;1158 1159 $__default["default"].fn[NAME$8].noConflict = function () {1160 $__default["default"].fn[NAME$8] = JQUERY_NO_CONFLICT$8;1161 return Carousel._jQueryInterface;1162 };1163 1164 /**1165 * Constants1166 */1167 1168 var NAME$7 = 'collapse';1169 var VERSION$7 = '4.6.2';1170 var DATA_KEY$7 = 'bs.collapse';1171 var EVENT_KEY$7 = "." + DATA_KEY$7;1172 var DATA_API_KEY$4 = '.data-api';1173 var JQUERY_NO_CONFLICT$7 = $__default["default"].fn[NAME$7];1174 var CLASS_NAME_SHOW$6 = 'show';1175 var CLASS_NAME_COLLAPSE = 'collapse';1176 var CLASS_NAME_COLLAPSING = 'collapsing';1177 var CLASS_NAME_COLLAPSED = 'collapsed';1178 var DIMENSION_WIDTH = 'width';1179 var DIMENSION_HEIGHT = 'height';1180 var EVENT_SHOW$4 = "show" + EVENT_KEY$7;1181 var EVENT_SHOWN$4 = "shown" + EVENT_KEY$7;1182 var EVENT_HIDE$4 = "hide" + EVENT_KEY$7;1183 var EVENT_HIDDEN$4 = "hidden" + EVENT_KEY$7;1184 var EVENT_CLICK_DATA_API$3 = "click" + EVENT_KEY$7 + DATA_API_KEY$4;1185 var SELECTOR_ACTIVES = '.show, .collapsing';1186 var SELECTOR_DATA_TOGGLE$3 = '[data-toggle="collapse"]';1187 var Default$6 = {1188 toggle: true,1189 parent: ''1190 };1191 var DefaultType$6 = {1192 toggle: 'boolean',1193 parent: '(string|element)'1194 };1195 /**1196 * Class definition1197 */1198 1199 var Collapse = /*#__PURE__*/function () {1200 function Collapse(element, config) {