LaravelTest
4357 строк · 134.4 Кб
1/*!
2* Bootstrap v4.6.1 (https://getbootstrap.com/)
3* Copyright 2011-2021 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) {7typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :8typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :9(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));10})(this, (function (exports, $, Popper) { 'use strict';11
12function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }13
14var $__default = /*#__PURE__*/_interopDefaultLegacy($);15var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);16
17function _defineProperties(target, props) {18for (var i = 0; i < props.length; i++) {19var descriptor = props[i];20descriptor.enumerable = descriptor.enumerable || false;21descriptor.configurable = true;22if ("value" in descriptor) descriptor.writable = true;23Object.defineProperty(target, descriptor.key, descriptor);24}25}26
27function _createClass(Constructor, protoProps, staticProps) {28if (protoProps) _defineProperties(Constructor.prototype, protoProps);29if (staticProps) _defineProperties(Constructor, staticProps);30return Constructor;31}32
33function _extends() {34_extends = Object.assign || function (target) {35for (var i = 1; i < arguments.length; i++) {36var source = arguments[i];37
38for (var key in source) {39if (Object.prototype.hasOwnProperty.call(source, key)) {40target[key] = source[key];41}42}43}44
45return target;46};47
48return _extends.apply(this, arguments);49}50
51function _inheritsLoose(subClass, superClass) {52subClass.prototype = Object.create(superClass.prototype);53subClass.prototype.constructor = subClass;54
55_setPrototypeOf(subClass, superClass);56}57
58function _setPrototypeOf(o, p) {59_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {60o.__proto__ = p;61return o;62};63
64return _setPrototypeOf(o, p);65}66
67/**68* --------------------------------------------------------------------------
69* Bootstrap (v4.6.1): util.js
70* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
71* --------------------------------------------------------------------------
72*/
73/**74* Private TransitionEnd Helpers
75*/
76
77var TRANSITION_END = 'transitionend';78var MAX_UID = 1000000;79var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)80
81function toType(obj) {82if (obj === null || typeof obj === 'undefined') {83return "" + obj;84}85
86return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();87}88
89function getSpecialTransitionEndEvent() {90return {91bindType: TRANSITION_END,92delegateType: TRANSITION_END,93handle: function handle(event) {94if ($__default["default"](event.target).is(this)) {95return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params96}97
98return undefined;99}100};101}102
103function transitionEndEmulator(duration) {104var _this = this;105
106var called = false;107$__default["default"](this).one(Util.TRANSITION_END, function () {108called = true;109});110setTimeout(function () {111if (!called) {112Util.triggerTransitionEnd(_this);113}114}, duration);115return this;116}117
118function setTransitionEndSupport() {119$__default["default"].fn.emulateTransitionEnd = transitionEndEmulator;120$__default["default"].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();121}122/**123* Public Util API
124*/
125
126
127var Util = {128TRANSITION_END: 'bsTransitionEnd',129getUID: function getUID(prefix) {130do {131// eslint-disable-next-line no-bitwise132prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here133} while (document.getElementById(prefix));134
135return prefix;136},137getSelectorFromElement: function getSelectorFromElement(element) {138var selector = element.getAttribute('data-target');139
140if (!selector || selector === '#') {141var hrefAttr = element.getAttribute('href');142selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';143}144
145try {146return document.querySelector(selector) ? selector : null;147} catch (_) {148return null;149}150},151getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {152if (!element) {153return 0;154} // Get transition-duration of the element155
156
157var transitionDuration = $__default["default"](element).css('transition-duration');158var transitionDelay = $__default["default"](element).css('transition-delay');159var floatTransitionDuration = parseFloat(transitionDuration);160var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found161
162if (!floatTransitionDuration && !floatTransitionDelay) {163return 0;164} // If multiple durations are defined, take the first165
166
167transitionDuration = transitionDuration.split(',')[0];168transitionDelay = transitionDelay.split(',')[0];169return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;170},171reflow: function reflow(element) {172return element.offsetHeight;173},174triggerTransitionEnd: function triggerTransitionEnd(element) {175$__default["default"](element).trigger(TRANSITION_END);176},177supportsTransitionEnd: function supportsTransitionEnd() {178return Boolean(TRANSITION_END);179},180isElement: function isElement(obj) {181return (obj[0] || obj).nodeType;182},183typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {184for (var property in configTypes) {185if (Object.prototype.hasOwnProperty.call(configTypes, property)) {186var expectedTypes = configTypes[property];187var value = config[property];188var valueType = value && Util.isElement(value) ? 'element' : toType(value);189
190if (!new RegExp(expectedTypes).test(valueType)) {191throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));192}193}194}195},196findShadowRoot: function findShadowRoot(element) {197if (!document.documentElement.attachShadow) {198return null;199} // Can find the shadow root otherwise it'll return the document200
201
202if (typeof element.getRootNode === 'function') {203var root = element.getRootNode();204return root instanceof ShadowRoot ? root : null;205}206
207if (element instanceof ShadowRoot) {208return element;209} // when we don't find a shadow root210
211
212if (!element.parentNode) {213return null;214}215
216return Util.findShadowRoot(element.parentNode);217},218jQueryDetection: function jQueryDetection() {219if (typeof $__default["default"] === 'undefined') {220throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');221}222
223var version = $__default["default"].fn.jquery.split(' ')[0].split('.');224var minMajor = 1;225var ltMajor = 2;226var minMinor = 9;227var minPatch = 1;228var maxMajor = 4;229
230if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {231throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');232}233}234};235Util.jQueryDetection();236setTransitionEndSupport();237
238/**239* Constants
240*/
241
242var NAME$a = 'alert';243var VERSION$a = '4.6.1';244var DATA_KEY$a = 'bs.alert';245var EVENT_KEY$a = "." + DATA_KEY$a;246var DATA_API_KEY$7 = '.data-api';247var JQUERY_NO_CONFLICT$a = $__default["default"].fn[NAME$a];248var CLASS_NAME_ALERT = 'alert';249var CLASS_NAME_FADE$5 = 'fade';250var CLASS_NAME_SHOW$7 = 'show';251var EVENT_CLOSE = "close" + EVENT_KEY$a;252var EVENT_CLOSED = "closed" + EVENT_KEY$a;253var EVENT_CLICK_DATA_API$6 = "click" + EVENT_KEY$a + DATA_API_KEY$7;254var SELECTOR_DISMISS = '[data-dismiss="alert"]';255/**256* Class definition
257*/
258
259var Alert = /*#__PURE__*/function () {260function Alert(element) {261this._element = element;262} // Getters263
264
265var _proto = Alert.prototype;266
267// Public268_proto.close = function close(element) {269var rootElement = this._element;270
271if (element) {272rootElement = this._getRootElement(element);273}274
275var customEvent = this._triggerCloseEvent(rootElement);276
277if (customEvent.isDefaultPrevented()) {278return;279}280
281this._removeElement(rootElement);282};283
284_proto.dispose = function dispose() {285$__default["default"].removeData(this._element, DATA_KEY$a);286this._element = null;287} // Private288;289
290_proto._getRootElement = function _getRootElement(element) {291var selector = Util.getSelectorFromElement(element);292var parent = false;293
294if (selector) {295parent = document.querySelector(selector);296}297
298if (!parent) {299parent = $__default["default"](element).closest("." + CLASS_NAME_ALERT)[0];300}301
302return parent;303};304
305_proto._triggerCloseEvent = function _triggerCloseEvent(element) {306var closeEvent = $__default["default"].Event(EVENT_CLOSE);307$__default["default"](element).trigger(closeEvent);308return closeEvent;309};310
311_proto._removeElement = function _removeElement(element) {312var _this = this;313
314$__default["default"](element).removeClass(CLASS_NAME_SHOW$7);315
316if (!$__default["default"](element).hasClass(CLASS_NAME_FADE$5)) {317this._destroyElement(element);318
319return;320}321
322var transitionDuration = Util.getTransitionDurationFromElement(element);323$__default["default"](element).one(Util.TRANSITION_END, function (event) {324return _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
333Alert._jQueryInterface = function _jQueryInterface(config) {334return this.each(function () {335var $element = $__default["default"](this);336var data = $element.data(DATA_KEY$a);337
338if (!data) {339data = new Alert(this);340$element.data(DATA_KEY$a, data);341}342
343if (config === 'close') {344data[config](this);345}346});347};348
349Alert._handleDismiss = function _handleDismiss(alertInstance) {350return function (event) {351if (event) {352event.preventDefault();353}354
355alertInstance.close(this);356};357};358
359_createClass(Alert, null, [{360key: "VERSION",361get: function get() {362return VERSION$a;363}364}]);365
366return Alert;367}();368/**369* Data API implementation
370*/
371
372
373$__default["default"](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));374/**375* jQuery
376*/
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;383return Alert._jQueryInterface;384};385
386/**387* Constants
388*/
389
390var NAME$9 = 'button';391var VERSION$9 = '4.6.1';392var DATA_KEY$9 = 'bs.button';393var EVENT_KEY$9 = "." + DATA_KEY$9;394var DATA_API_KEY$6 = '.data-api';395var JQUERY_NO_CONFLICT$9 = $__default["default"].fn[NAME$9];396var CLASS_NAME_ACTIVE$3 = 'active';397var CLASS_NAME_BUTTON = 'btn';398var CLASS_NAME_FOCUS = 'focus';399var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$9 + DATA_API_KEY$6;400var EVENT_FOCUS_BLUR_DATA_API = "focus" + EVENT_KEY$9 + DATA_API_KEY$6 + " " + ("blur" + EVENT_KEY$9 + DATA_API_KEY$6);401var EVENT_LOAD_DATA_API$2 = "load" + EVENT_KEY$9 + DATA_API_KEY$6;402var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';403var SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]';404var SELECTOR_DATA_TOGGLE$4 = '[data-toggle="button"]';405var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle="buttons"] .btn';406var SELECTOR_INPUT = 'input:not([type="hidden"])';407var SELECTOR_ACTIVE$2 = '.active';408var SELECTOR_BUTTON = '.btn';409/**410* Class definition
411*/
412
413var Button = /*#__PURE__*/function () {414function Button(element) {415this._element = element;416this.shouldAvoidTriggerChange = false;417} // Getters418
419
420var _proto = Button.prototype;421
422// Public423_proto.toggle = function toggle() {424var triggerChangeEvent = true;425var addAriaPressed = true;426var rootElement = $__default["default"](this._element).closest(SELECTOR_DATA_TOGGLES)[0];427
428if (rootElement) {429var input = this._element.querySelector(SELECTOR_INPUT);430
431if (input) {432if (input.type === 'radio') {433if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE$3)) {434triggerChangeEvent = false;435} else {436var activeElement = rootElement.querySelector(SELECTOR_ACTIVE$2);437
438if (activeElement) {439$__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE$3);440}441}442}443
444if (triggerChangeEvent) {445// if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input446if (input.type === 'checkbox' || input.type === 'radio') {447input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE$3);448}449
450if (!this.shouldAvoidTriggerChange) {451$__default["default"](input).trigger('change');452}453}454
455input.focus();456addAriaPressed = false;457}458}459
460if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {461if (addAriaPressed) {462this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE$3));463}464
465if (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);473this._element = null;474} // Static475;476
477Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {478return this.each(function () {479var $element = $__default["default"](this);480var data = $element.data(DATA_KEY$9);481
482if (!data) {483data = new Button(this);484$element.data(DATA_KEY$9, data);485}486
487data.shouldAvoidTriggerChange = avoidTriggerChange;488
489if (config === 'toggle') {490data[config]();491}492});493};494
495_createClass(Button, null, [{496key: "VERSION",497get: function get() {498return VERSION$9;499}500}]);501
502return Button;503}();504/**505* Data API implementation
506*/
507
508
509$__default["default"](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE_CARROT, function (event) {510var button = event.target;511var initialButton = button;512
513if (!$__default["default"](button).hasClass(CLASS_NAME_BUTTON)) {514button = $__default["default"](button).closest(SELECTOR_BUTTON)[0];515}516
517if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {518event.preventDefault(); // work around Firefox bug #1540995519} else {520var inputBtn = button.querySelector(SELECTOR_INPUT);521
522if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {523event.preventDefault(); // work around Firefox bug #1540995524
525return;526}527
528if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {529Button._jQueryInterface.call($__default["default"](button), 'toggle', initialButton.tagName === 'INPUT');530}531}532}).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {533var 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 groups539var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));540
541for (var i = 0, len = buttons.length; i < len; i++) {542var button = buttons[i];543var input = button.querySelector(SELECTOR_INPUT);544
545if (input.checked || input.hasAttribute('checked')) {546button.classList.add(CLASS_NAME_ACTIVE$3);547} else {548button.classList.remove(CLASS_NAME_ACTIVE$3);549}550} // find all button toggles551
552
553buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$4));554
555for (var _i = 0, _len = buttons.length; _i < _len; _i++) {556var _button = buttons[_i];557
558if (_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* jQuery
567*/
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;574return Button._jQueryInterface;575};576
577/**578* Constants
579*/
580
581var NAME$8 = 'carousel';582var VERSION$8 = '4.6.1';583var DATA_KEY$8 = 'bs.carousel';584var EVENT_KEY$8 = "." + DATA_KEY$8;585var DATA_API_KEY$5 = '.data-api';586var JQUERY_NO_CONFLICT$8 = $__default["default"].fn[NAME$8];587var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key588
589var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key590
591var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch592
593var SWIPE_THRESHOLD = 40;594var CLASS_NAME_CAROUSEL = 'carousel';595var CLASS_NAME_ACTIVE$2 = 'active';596var CLASS_NAME_SLIDE = 'slide';597var CLASS_NAME_RIGHT = 'carousel-item-right';598var CLASS_NAME_LEFT = 'carousel-item-left';599var CLASS_NAME_NEXT = 'carousel-item-next';600var CLASS_NAME_PREV = 'carousel-item-prev';601var CLASS_NAME_POINTER_EVENT = 'pointer-event';602var DIRECTION_NEXT = 'next';603var DIRECTION_PREV = 'prev';604var DIRECTION_LEFT = 'left';605var DIRECTION_RIGHT = 'right';606var EVENT_SLIDE = "slide" + EVENT_KEY$8;607var EVENT_SLID = "slid" + EVENT_KEY$8;608var EVENT_KEYDOWN = "keydown" + EVENT_KEY$8;609var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY$8;610var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY$8;611var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY$8;612var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY$8;613var EVENT_TOUCHEND = "touchend" + EVENT_KEY$8;614var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY$8;615var EVENT_POINTERUP = "pointerup" + EVENT_KEY$8;616var EVENT_DRAG_START = "dragstart" + EVENT_KEY$8;617var EVENT_LOAD_DATA_API$1 = "load" + EVENT_KEY$8 + DATA_API_KEY$5;618var EVENT_CLICK_DATA_API$4 = "click" + EVENT_KEY$8 + DATA_API_KEY$5;619var SELECTOR_ACTIVE$1 = '.active';620var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';621var SELECTOR_ITEM = '.carousel-item';622var SELECTOR_ITEM_IMG = '.carousel-item img';623var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';624var SELECTOR_INDICATORS = '.carousel-indicators';625var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';626var SELECTOR_DATA_RIDE = '[data-ride="carousel"]';627var Default$7 = {628interval: 5000,629keyboard: true,630slide: false,631pause: 'hover',632wrap: true,633touch: true634};635var DefaultType$7 = {636interval: '(number|boolean)',637keyboard: 'boolean',638slide: '(boolean|string)',639pause: '(string|boolean)',640wrap: 'boolean',641touch: 'boolean'642};643var PointerType = {644TOUCH: 'touch',645PEN: 'pen'646};647/**648* Class definition
649*/
650
651var Carousel = /*#__PURE__*/function () {652function Carousel(element, config) {653this._items = null;654this._interval = null;655this._activeElement = null;656this._isPaused = false;657this._isSliding = false;658this.touchTimeout = null;659this.touchStartX = 0;660this.touchDeltaX = 0;661this._config = this._getConfig(config);662this._element = element;663this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);664this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;665this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);666
667this._addEventListeners();668} // Getters669
670
671var _proto = Carousel.prototype;672
673// Public674_proto.next = function next() {675if (!this._isSliding) {676this._slide(DIRECTION_NEXT);677}678};679
680_proto.nextWhenVisible = function nextWhenVisible() {681var $element = $__default["default"](this._element); // Don't call next when the page isn't visible682// or the carousel or its parent isn't visible683
684if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {685this.next();686}687};688
689_proto.prev = function prev() {690if (!this._isSliding) {691this._slide(DIRECTION_PREV);692}693};694
695_proto.pause = function pause(event) {696if (!event) {697this._isPaused = true;698}699
700if (this._element.querySelector(SELECTOR_NEXT_PREV)) {701Util.triggerTransitionEnd(this._element);702this.cycle(true);703}704
705clearInterval(this._interval);706this._interval = null;707};708
709_proto.cycle = function cycle(event) {710if (!event) {711this._isPaused = false;712}713
714if (this._interval) {715clearInterval(this._interval);716this._interval = null;717}718
719if (this._config.interval && !this._isPaused) {720this._updateInterval();721
722this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);723}724};725
726_proto.to = function to(index) {727var _this = this;728
729this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);730
731var activeIndex = this._getItemIndex(this._activeElement);732
733if (index > this._items.length - 1 || index < 0) {734return;735}736
737if (this._isSliding) {738$__default["default"](this._element).one(EVENT_SLID, function () {739return _this.to(index);740});741return;742}743
744if (activeIndex === index) {745this.pause();746this.cycle();747return;748}749
750var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;751
752this._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);758this._items = null;759this._config = null;760this._element = null;761this._interval = null;762this._isPaused = null;763this._isSliding = null;764this._activeElement = null;765this._indicatorsElement = null;766} // Private767;768
769_proto._getConfig = function _getConfig(config) {770config = _extends({}, Default$7, config);771Util.typeCheckConfig(NAME$8, config, DefaultType$7);772return config;773};774
775_proto._handleSwipe = function _handleSwipe() {776var absDeltax = Math.abs(this.touchDeltaX);777
778if (absDeltax <= SWIPE_THRESHOLD) {779return;780}781
782var direction = absDeltax / this.touchDeltaX;783this.touchDeltaX = 0; // swipe left784
785if (direction > 0) {786this.prev();787} // swipe right788
789
790if (direction < 0) {791this.next();792}793};794
795_proto._addEventListeners = function _addEventListeners() {796var _this2 = this;797
798if (this._config.keyboard) {799$__default["default"](this._element).on(EVENT_KEYDOWN, function (event) {800return _this2._keydown(event);801});802}803
804if (this._config.pause === 'hover') {805$__default["default"](this._element).on(EVENT_MOUSEENTER, function (event) {806return _this2.pause(event);807}).on(EVENT_MOUSELEAVE, function (event) {808return _this2.cycle(event);809});810}811
812if (this._config.touch) {813this._addTouchEventListeners();814}815};816
817_proto._addTouchEventListeners = function _addTouchEventListeners() {818var _this3 = this;819
820if (!this._touchSupported) {821return;822}823
824var start = function start(event) {825if (_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
832var 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
837var end = function end(event) {838if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {839_this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;840}841
842_this3._handleSwipe();843
844if (_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
854if (_this3.touchTimeout) {855clearTimeout(_this3.touchTimeout);856}857
858_this3.touchTimeout = setTimeout(function (event) {859return _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) {865return e.preventDefault();866});867
868if (this._pointerEvent) {869$__default["default"](this._element).on(EVENT_POINTERDOWN, function (event) {870return start(event);871});872$__default["default"](this._element).on(EVENT_POINTERUP, function (event) {873return end(event);874});875
876this._element.classList.add(CLASS_NAME_POINTER_EVENT);877} else {878$__default["default"](this._element).on(EVENT_TOUCHSTART, function (event) {879return start(event);880});881$__default["default"](this._element).on(EVENT_TOUCHMOVE, function (event) {882return move(event);883});884$__default["default"](this._element).on(EVENT_TOUCHEND, function (event) {885return end(event);886});887}888};889
890_proto._keydown = function _keydown(event) {891if (/input|textarea/i.test(event.target.tagName)) {892return;893}894
895switch (event.which) {896case ARROW_LEFT_KEYCODE:897event.preventDefault();898this.prev();899break;900
901case ARROW_RIGHT_KEYCODE:902event.preventDefault();903this.next();904break;905}906};907
908_proto._getItemIndex = function _getItemIndex(element) {909this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];910return this._items.indexOf(element);911};912
913_proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {914var isNextDirection = direction === DIRECTION_NEXT;915var isPrevDirection = direction === DIRECTION_PREV;916
917var activeIndex = this._getItemIndex(activeElement);918
919var lastItemIndex = this._items.length - 1;920var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;921
922if (isGoingToWrap && !this._config.wrap) {923return activeElement;924}925
926var delta = direction === DIRECTION_PREV ? -1 : 1;927var itemIndex = (activeIndex + delta) % this._items.length;928return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];929};930
931_proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {932var targetIndex = this._getItemIndex(relatedTarget);933
934var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));935
936var slideEvent = $__default["default"].Event(EVENT_SLIDE, {937relatedTarget: relatedTarget,938direction: eventDirectionName,939from: fromIndex,940to: targetIndex941});942$__default["default"](this._element).trigger(slideEvent);943return slideEvent;944};945
946_proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {947if (this._indicatorsElement) {948var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1));949$__default["default"](indicators).removeClass(CLASS_NAME_ACTIVE$2);950
951var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];952
953if (nextIndicator) {954$__default["default"](nextIndicator).addClass(CLASS_NAME_ACTIVE$2);955}956}957};958
959_proto._updateInterval = function _updateInterval() {960var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);961
962if (!element) {963return;964}965
966var elementInterval = parseInt(element.getAttribute('data-interval'), 10);967
968if (elementInterval) {969this._config.defaultInterval = this._config.defaultInterval || this._config.interval;970this._config.interval = elementInterval;971} else {972this._config.interval = this._config.defaultInterval || this._config.interval;973}974};975
976_proto._slide = function _slide(direction, element) {977var _this4 = this;978
979var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);980
981var activeElementIndex = this._getItemIndex(activeElement);982
983var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);984
985var nextElementIndex = this._getItemIndex(nextElement);986
987var isCycling = Boolean(this._interval);988var directionalClassName;989var orderClassName;990var eventDirectionName;991
992if (direction === DIRECTION_NEXT) {993directionalClassName = CLASS_NAME_LEFT;994orderClassName = CLASS_NAME_NEXT;995eventDirectionName = DIRECTION_LEFT;996} else {997directionalClassName = CLASS_NAME_RIGHT;998orderClassName = CLASS_NAME_PREV;999eventDirectionName = DIRECTION_RIGHT;1000}1001
1002if (nextElement && $__default["default"](nextElement).hasClass(CLASS_NAME_ACTIVE$2)) {1003this._isSliding = false;1004return;1005}1006
1007var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);1008
1009if (slideEvent.isDefaultPrevented()) {1010return;1011}1012
1013if (!activeElement || !nextElement) {1014// Some weirdness is happening, so we bail1015return;1016}1017
1018this._isSliding = true;1019
1020if (isCycling) {1021this.pause();1022}1023
1024this._setActiveIndicatorElement(nextElement);1025
1026this._activeElement = nextElement;1027var slidEvent = $__default["default"].Event(EVENT_SLID, {1028relatedTarget: nextElement,1029direction: eventDirectionName,1030from: activeElementIndex,1031to: nextElementIndex1032});1033
1034if ($__default["default"](this._element).hasClass(CLASS_NAME_SLIDE)) {1035$__default["default"](nextElement).addClass(orderClassName);1036Util.reflow(nextElement);1037$__default["default"](activeElement).addClass(directionalClassName);1038$__default["default"](nextElement).addClass(directionalClassName);1039var 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;1044setTimeout(function () {1045return $__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);1051this._isSliding = false;1052$__default["default"](this._element).trigger(slidEvent);1053}1054
1055if (isCycling) {1056this.cycle();1057}1058} // Static1059;1060
1061Carousel._jQueryInterface = function _jQueryInterface(config) {1062return this.each(function () {1063var data = $__default["default"](this).data(DATA_KEY$8);1064
1065var _config = _extends({}, Default$7, $__default["default"](this).data());1066
1067if (typeof config === 'object') {1068_config = _extends({}, _config, config);1069}1070
1071var action = typeof config === 'string' ? config : _config.slide;1072
1073if (!data) {1074data = new Carousel(this, _config);1075$__default["default"](this).data(DATA_KEY$8, data);1076}1077
1078if (typeof config === 'number') {1079data.to(config);1080} else if (typeof action === 'string') {1081if (typeof data[action] === 'undefined') {1082throw new TypeError("No method named \"" + action + "\"");1083}1084
1085data[action]();1086} else if (_config.interval && _config.ride) {1087data.pause();1088data.cycle();1089}1090});1091};1092
1093Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {1094var selector = Util.getSelectorFromElement(this);1095
1096if (!selector) {1097return;1098}1099
1100var target = $__default["default"](selector)[0];1101
1102if (!target || !$__default["default"](target).hasClass(CLASS_NAME_CAROUSEL)) {1103return;1104}1105
1106var config = _extends({}, $__default["default"](target).data(), $__default["default"](this).data());1107
1108var slideIndex = this.getAttribute('data-slide-to');1109
1110if (slideIndex) {1111config.interval = false;1112}1113
1114Carousel._jQueryInterface.call($__default["default"](target), config);1115
1116if (slideIndex) {1117$__default["default"](target).data(DATA_KEY$8).to(slideIndex);1118}1119
1120event.preventDefault();1121};1122
1123_createClass(Carousel, null, [{1124key: "VERSION",1125get: function get() {1126return VERSION$8;1127}1128}, {1129key: "Default",1130get: function get() {1131return Default$7;1132}1133}]);1134
1135return Carousel;1136}();1137/**1138* Data API implementation
1139*/
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 () {1144var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));1145
1146for (var i = 0, len = carousels.length; i < len; i++) {1147var $carousel = $__default["default"](carousels[i]);1148
1149Carousel._jQueryInterface.call($carousel, $carousel.data());1150}1151});1152/**1153* jQuery
1154*/
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;1161return Carousel._jQueryInterface;1162};1163
1164/**1165* Constants
1166*/
1167
1168var NAME$7 = 'collapse';1169var VERSION$7 = '4.6.1';1170var DATA_KEY$7 = 'bs.collapse';1171var EVENT_KEY$7 = "." + DATA_KEY$7;1172var DATA_API_KEY$4 = '.data-api';1173var JQUERY_NO_CONFLICT$7 = $__default["default"].fn[NAME$7];1174var CLASS_NAME_SHOW$6 = 'show';1175var CLASS_NAME_COLLAPSE = 'collapse';1176var CLASS_NAME_COLLAPSING = 'collapsing';1177var CLASS_NAME_COLLAPSED = 'collapsed';1178var DIMENSION_WIDTH = 'width';1179var DIMENSION_HEIGHT = 'height';1180var EVENT_SHOW$4 = "show" + EVENT_KEY$7;1181var EVENT_SHOWN$4 = "shown" + EVENT_KEY$7;1182var EVENT_HIDE$4 = "hide" + EVENT_KEY$7;1183var EVENT_HIDDEN$4 = "hidden" + EVENT_KEY$7;1184var EVENT_CLICK_DATA_API$3 = "click" + EVENT_KEY$7 + DATA_API_KEY$4;1185var SELECTOR_ACTIVES = '.show, .collapsing';1186var SELECTOR_DATA_TOGGLE$3 = '[data-toggle="collapse"]';1187var Default$6 = {1188toggle: true,1189parent: ''1190};1191var DefaultType$6 = {1192toggle: 'boolean',1193parent: '(string|element)'1194};1195/**1196* Class definition
1197*/
1198
1199var Collapse = /*#__PURE__*/function () {1200function Collapse(element, config) {1201this._isTransitioning = false;1202this._element = element;1203this._config = this._getConfig(config);1204this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));1205var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$3));1206
1207for (var i = 0, len = toggleList.length; i < len; i++) {1208var elem = toggleList[i];1209var selector = Util.getSelectorFromElement(elem);1210var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {1211return foundElem === element;1212});1213
1214if (selector !== null && filterElement.length > 0) {1215this._selector = selector;1216
1217this._triggerArray.push(elem);1218}1219}1220
1221this._parent = this._config.parent ? this._getParent() : null;1222
1223if (!this._config.parent) {1224this._addAriaAndCollapsedClass(this._element, this._triggerArray);1225}1226
1227if (this._config.toggle) {1228this.toggle();1229}1230} // Getters1231
1232
1233var _proto = Collapse.prototype;1234
1235// Public1236_proto.toggle = function toggle() {1237if ($__default["default"](this._element).hasClass(CLASS_NAME_SHOW$6)) {1238this.hide();1239} else {1240this.show();1241}1242};1243
1244_proto.show = function show() {1245var _this = this;1246
1247if (this._isTransitioning || $__default["default"](this._element).hasClass(CLASS_NAME_SHOW$6)) {1248return;1249}1250
1251var actives;1252var activesData;1253
1254if (this._parent) {1255actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {1256if (typeof _this._config.parent === 'string') {1257return elem.getAttribute('data-parent') === _this._config.parent;1258}1259
1260return elem.classList.contains(CLASS_NAME_COLLAPSE);1261});1262
1263if (actives.length === 0) {1264actives = null;1265}1266}1267
1268if (actives) {1269activesData = $__default["default"](actives).not(this._selector).data(DATA_KEY$7);1270
1271if (activesData && activesData._isTransitioning) {1272return;1273}1274}1275
1276var startEvent = $__default["default"].Event(EVENT_SHOW$4);1277$__default["default"](this._element).trigger(startEvent);1278
1279if (startEvent.isDefaultPrevented()) {1280return;1281}1282
1283if (actives) {1284Collapse._jQueryInterface.call($__default["default"](actives).not(this._selector), 'hide');1285
1286if (!activesData) {1287$__default["default"](actives).data(DATA_KEY$7, null);1288}1289}1290
1291var dimension = this._getDimension();1292
1293$__default["default"](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);1294this._element.style[dimension] = 0;1295
1296if (this._triggerArray.length) {1297$__default["default"](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);1298}1299
1300this.setTransitioning(true);1301
1302var complete = function complete() {1303$__default["default"](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$6);1304_this._element.style[dimension] = '';1305
1306_this.setTransitioning(false);1307
1308$__default["default"](_this._element).trigger(EVENT_SHOWN$4);1309};1310
1311var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);1312var scrollSize = "scroll" + capitalizedDimension;1313var transitionDuration = Util.getTransitionDurationFromElement(this._element);1314$__default["default"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);1315this._element.style[dimension] = this._element[scrollSize] + "px";1316};1317
1318_proto.hide = function hide() {1319var _this2 = this;1320
1321if (this._isTransitioning || !$__default["default"](this._element).hasClass(CLASS_NAME_SHOW$6)) {1322return;1323}1324
1325var startEvent = $__default["default"].Event(EVENT_HIDE$4);1326$__default["default"](this._element).trigger(startEvent);1327
1328if (startEvent.isDefaultPrevented()) {1329return;1330}1331
1332var dimension = this._getDimension();1333
1334this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";1335Util.reflow(this._element);1336$__default["default"](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$6);1337var triggerArrayLength = this._triggerArray.length;1338
1339if (triggerArrayLength > 0) {1340for (var i = 0; i < triggerArrayLength; i++) {1341var trigger = this._triggerArray[i];1342var selector = Util.getSelectorFromElement(trigger);1343
1344if (selector !== null) {1345var $elem = $__default["default"]([].slice.call(document.querySelectorAll(selector)));1346
1347if (!$elem.hasClass(CLASS_NAME_SHOW$6)) {1348$__default["default"](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);1349}1350}1351}1352}1353
1354this.setTransitioning(true);1355
1356var complete = function complete() {1357_this2.setTransitioning(false);1358
1359$__default["default"](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN$4);1360};1361
1362this._element.style[dimension] = '';1363var transitionDuration = Util.getTransitionDurationFromElement(this._element);1364$__default["default"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);1365};1366
1367_proto.setTransitioning = function setTransitioning(isTransitioning) {1368this._isTransitioning = isTransitioning;1369};1370
1371_proto.dispose = function dispose() {1372$__default["default"].removeData(this._element, DATA_KEY$7);1373this._config = null;1374this._parent = null;1375this._element = null;1376this._triggerArray = null;1377this._isTransitioning = null;1378} // Private1379;1380
1381_proto._getConfig = function _getConfig(config) {1382config = _extends({}, Default$6, config);1383config.toggle = Boolean(config.toggle); // Coerce string values1384
1385Util.typeCheckConfig(NAME$7, config, DefaultType$6);1386return config;1387};1388
1389_proto._getDimension = function _getDimension() {1390var hasWidth = $__default["default"](this._element).hasClass(DIMENSION_WIDTH);1391return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;1392};1393
1394_proto._getParent = function _getParent() {1395var _this3 = this;1396
1397var parent;1398
1399if (Util.isElement(this._config.parent)) {1400parent = this._config.parent; // It's a jQuery object1401
1402if (typeof this._config.parent.jquery !== 'undefined') {1403parent = this._config.parent[0];1404}1405} else {1406parent = document.querySelector(this._config.parent);1407}1408
1409var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";1410var children = [].slice.call(parent.querySelectorAll(selector));1411$__default["default"](children).each(function (i, element) {1412_this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);1413});1414return parent;1415};1416
1417_proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {1418var isOpen = $__default["default"](element).hasClass(CLASS_NAME_SHOW$6);1419
1420if (triggerArray.length) {1421$__default["default"](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);1422}1423} // Static1424;1425
1426Collapse._getTargetFromElement = function _getTargetFromElement(element) {1427var selector = Util.getSelectorFromElement(element);1428return selector ? document.querySelector(selector) : null;1429};1430
1431Collapse._jQueryInterface = function _jQueryInterface(config) {1432return this.each(function () {1433var $element = $__default["default"](this);1434var data = $element.data(DATA_KEY$7);1435
1436var _config = _extends({}, Default$6, $element.data(), typeof config === 'object' && config ? config : {});1437
1438if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {1439_config.toggle = false;1440}1441
1442if (!data) {1443data = new Collapse(this, _config);1444$element.data(DATA_KEY$7, data);1445}1446
1447if (typeof config === 'string') {1448if (typeof data[config] === 'undefined') {1449throw new TypeError("No method named \"" + config + "\"");1450}1451
1452data[config]();1453}1454});1455};1456
1457_createClass(Collapse, null, [{1458key: "VERSION",1459get: function get() {1460return VERSION$7;1461}1462}, {1463key: "Default",1464get: function get() {1465return Default$6;1466}1467}]);1468
1469return Collapse;1470}();1471/**1472* Data API implementation
1473*/
1474
1475
1476$__default["default"](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {1477// preventDefault only for <a> elements (which change the URL) not inside the collapsible element1478if (event.currentTarget.tagName === 'A') {1479event.preventDefault();1480}1481
1482var $trigger = $__default["default"](this);1483var selector = Util.getSelectorFromElement(this);1484var selectors = [].slice.call(document.querySelectorAll(selector));1485$__default["default"](selectors).each(function () {1486var $target = $__default["default"](this);1487var data = $target.data(DATA_KEY$7);1488var config = data ? 'toggle' : $trigger.data();1489
1490Collapse._jQueryInterface.call($target, config);1491});1492});1493/**1494* jQuery
1495*/
1496
1497$__default["default"].fn[NAME$7] = Collapse._jQueryInterface;1498$__default["default"].fn[NAME$7].Constructor = Collapse;1499
1500$__default["default"].fn[NAME$7].noConflict = function () {1501$__default["default"].fn[NAME$7] = JQUERY_NO_CONFLICT$7;1502return Collapse._jQueryInterface;1503};1504
1505/**1506* Constants
1507*/
1508
1509var NAME$6 = 'dropdown';1510var VERSION$6 = '4.6.1';1511var DATA_KEY$6 = 'bs.dropdown';1512var EVENT_KEY$6 = "." + DATA_KEY$6;1513var DATA_API_KEY$3 = '.data-api';1514var JQUERY_NO_CONFLICT$6 = $__default["default"].fn[NAME$6];1515var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key1516
1517var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key1518
1519var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key1520
1521var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key1522
1523var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key1524
1525var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)1526
1527var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE$1);1528var CLASS_NAME_DISABLED$1 = 'disabled';1529var CLASS_NAME_SHOW$5 = 'show';1530var CLASS_NAME_DROPUP = 'dropup';1531var CLASS_NAME_DROPRIGHT = 'dropright';1532var CLASS_NAME_DROPLEFT = 'dropleft';1533var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';1534var CLASS_NAME_POSITION_STATIC = 'position-static';1535var EVENT_HIDE$3 = "hide" + EVENT_KEY$6;1536var EVENT_HIDDEN$3 = "hidden" + EVENT_KEY$6;1537var EVENT_SHOW$3 = "show" + EVENT_KEY$6;1538var EVENT_SHOWN$3 = "shown" + EVENT_KEY$6;1539var EVENT_CLICK = "click" + EVENT_KEY$6;1540var EVENT_CLICK_DATA_API$2 = "click" + EVENT_KEY$6 + DATA_API_KEY$3;1541var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY$6 + DATA_API_KEY$3;1542var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY$6 + DATA_API_KEY$3;1543var SELECTOR_DATA_TOGGLE$2 = '[data-toggle="dropdown"]';1544var SELECTOR_FORM_CHILD = '.dropdown form';1545var SELECTOR_MENU = '.dropdown-menu';1546var SELECTOR_NAVBAR_NAV = '.navbar-nav';1547var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';1548var PLACEMENT_TOP = 'top-start';1549var PLACEMENT_TOPEND = 'top-end';1550var PLACEMENT_BOTTOM = 'bottom-start';1551var PLACEMENT_BOTTOMEND = 'bottom-end';1552var PLACEMENT_RIGHT = 'right-start';1553var PLACEMENT_LEFT = 'left-start';1554var Default$5 = {1555offset: 0,1556flip: true,1557boundary: 'scrollParent',1558reference: 'toggle',1559display: 'dynamic',1560popperConfig: null1561};1562var DefaultType$5 = {1563offset: '(number|string|function)',1564flip: 'boolean',1565boundary: '(string|element)',1566reference: '(string|element)',1567display: 'string',1568popperConfig: '(null|object)'1569};1570/**1571* Class definition
1572*/
1573
1574var Dropdown = /*#__PURE__*/function () {1575function Dropdown(element, config) {1576this._element = element;1577this._popper = null;1578this._config = this._getConfig(config);1579this._menu = this._getMenuElement();1580this._inNavbar = this._detectNavbar();1581
1582this._addEventListeners();1583} // Getters1584
1585
1586var _proto = Dropdown.prototype;1587
1588// Public1589_proto.toggle = function toggle() {1590if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED$1)) {1591return;1592}1593
1594var isActive = $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW$5);1595
1596Dropdown._clearMenus();1597
1598if (isActive) {1599return;1600}1601
1602this.show(true);1603};1604
1605_proto.show = function show(usePopper) {1606if (usePopper === void 0) {1607usePopper = false;1608}1609
1610if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED$1) || $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW$5)) {1611return;1612}1613
1614var relatedTarget = {1615relatedTarget: this._element1616};1617var showEvent = $__default["default"].Event(EVENT_SHOW$3, relatedTarget);1618
1619var parent = Dropdown._getParentFromElement(this._element);1620
1621$__default["default"](parent).trigger(showEvent);1622
1623if (showEvent.isDefaultPrevented()) {1624return;1625} // Totally disable Popper for Dropdowns in Navbar1626
1627
1628if (!this._inNavbar && usePopper) {1629// Check for Popper dependency1630if (typeof Popper__default["default"] === 'undefined') {1631throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');1632}1633
1634var referenceElement = this._element;1635
1636if (this._config.reference === 'parent') {1637referenceElement = parent;1638} else if (Util.isElement(this._config.reference)) {1639referenceElement = this._config.reference; // Check if it's jQuery element1640
1641if (typeof this._config.reference.jquery !== 'undefined') {1642referenceElement = this._config.reference[0];1643}1644} // If boundary is not `scrollParent`, then set position to `static`1645// to allow the menu to "escape" the scroll parent's boundaries1646// https://github.com/twbs/bootstrap/issues/242511647
1648
1649if (this._config.boundary !== 'scrollParent') {1650$__default["default"](parent).addClass(CLASS_NAME_POSITION_STATIC);1651}1652
1653this._popper = new Popper__default["default"](referenceElement, this._menu, this._getPopperConfig());1654} // If this is a touch-enabled device we add extra1655// empty mouseover listeners to the body's immediate children;1656// only needed because of broken event delegation on iOS1657// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html1658
1659
1660if ('ontouchstart' in document.documentElement && $__default["default"](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {1661$__default["default"](document.body).children().on('mouseover', null, $__default["default"].noop);1662}1663
1664this._element.focus();1665
1666this._element.setAttribute('aria-expanded', true);1667
1668$__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW$5);1669$__default["default"](parent).toggleClass(CLASS_NAME_SHOW$5).trigger($__default["default"].Event(EVENT_SHOWN$3, relatedTarget));1670};1671
1672_proto.hide = function hide() {1673if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED$1) || !$__default["default"](this._menu).hasClass(CLASS_NAME_SHOW$5)) {1674return;1675}1676
1677var relatedTarget = {1678relatedTarget: this._element1679};1680var hideEvent = $__default["default"].Event(EVENT_HIDE$3, relatedTarget);1681
1682var parent = Dropdown._getParentFromElement(this._element);1683
1684$__default["default"](parent).trigger(hideEvent);1685
1686if (hideEvent.isDefaultPrevented()) {1687return;1688}1689
1690if (this._popper) {1691this._popper.destroy();1692}1693
1694$__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW$5);1695$__default["default"](parent).toggleClass(CLASS_NAME_SHOW$5).trigger($__default["default"].Event(EVENT_HIDDEN$3, relatedTarget));1696};1697
1698_proto.dispose = function dispose() {1699$__default["default"].removeData(this._element, DATA_KEY$6);1700$__default["default"](this._element).off(EVENT_KEY$6);1701this._element = null;1702this._menu = null;1703
1704if (this._popper !== null) {1705this._popper.destroy();1706
1707this._popper = null;1708}1709};1710
1711_proto.update = function update() {1712this._inNavbar = this._detectNavbar();1713
1714if (this._popper !== null) {1715this._popper.scheduleUpdate();1716}1717} // Private1718;1719
1720_proto._addEventListeners = function _addEventListeners() {1721var _this = this;1722
1723$__default["default"](this._element).on(EVENT_CLICK, function (event) {1724event.preventDefault();1725event.stopPropagation();1726
1727_this.toggle();1728});1729};1730
1731_proto._getConfig = function _getConfig(config) {1732config = _extends({}, this.constructor.Default, $__default["default"](this._element).data(), config);1733Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);1734return config;1735};1736
1737_proto._getMenuElement = function _getMenuElement() {1738if (!this._menu) {1739var parent = Dropdown._getParentFromElement(this._element);1740
1741if (parent) {1742this._menu = parent.querySelector(SELECTOR_MENU);1743}1744}1745
1746return this._menu;1747};1748
1749_proto._getPlacement = function _getPlacement() {1750var $parentDropdown = $__default["default"](this._element.parentNode);1751var placement = PLACEMENT_BOTTOM; // Handle dropup1752
1753if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {1754placement = $__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;1755} else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {1756placement = PLACEMENT_RIGHT;1757} else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {1758placement = PLACEMENT_LEFT;1759} else if ($__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {1760placement = PLACEMENT_BOTTOMEND;1761}1762
1763return placement;1764};1765
1766_proto._detectNavbar = function _detectNavbar() {1767return $__default["default"](this._element).closest('.navbar').length > 0;1768};1769
1770_proto._getOffset = function _getOffset() {1771var _this2 = this;1772
1773var offset = {};1774
1775if (typeof this._config.offset === 'function') {1776offset.fn = function (data) {1777data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element));1778return data;1779};1780} else {1781offset.offset = this._config.offset;1782}1783
1784return offset;1785};1786
1787_proto._getPopperConfig = function _getPopperConfig() {1788var popperConfig = {1789placement: this._getPlacement(),1790modifiers: {1791offset: this._getOffset(),1792flip: {1793enabled: this._config.flip1794},1795preventOverflow: {1796boundariesElement: this._config.boundary1797}1798}1799}; // Disable Popper if we have a static display1800
1801if (this._config.display === 'static') {1802popperConfig.modifiers.applyStyle = {1803enabled: false1804};1805}1806
1807return _extends({}, popperConfig, this._config.popperConfig);1808} // Static1809;1810
1811Dropdown._jQueryInterface = function _jQueryInterface(config) {1812return this.each(function () {1813var data = $__default["default"](this).data(DATA_KEY$6);1814
1815var _config = typeof config === 'object' ? config : null;1816
1817if (!data) {1818data = new Dropdown(this, _config);1819$__default["default"](this).data(DATA_KEY$6, data);1820}1821
1822if (typeof config === 'string') {1823if (typeof data[config] === 'undefined') {1824throw new TypeError("No method named \"" + config + "\"");1825}1826
1827data[config]();1828}1829});1830};1831
1832Dropdown._clearMenus = function _clearMenus(event) {1833if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {1834return;1835}1836
1837var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));1838
1839for (var i = 0, len = toggles.length; i < len; i++) {1840var parent = Dropdown._getParentFromElement(toggles[i]);1841
1842var context = $__default["default"](toggles[i]).data(DATA_KEY$6);1843var relatedTarget = {1844relatedTarget: toggles[i]1845};1846
1847if (event && event.type === 'click') {1848relatedTarget.clickEvent = event;1849}1850
1851if (!context) {1852continue;1853}1854
1855var dropdownMenu = context._menu;1856
1857if (!$__default["default"](parent).hasClass(CLASS_NAME_SHOW$5)) {1858continue;1859}1860
1861if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default["default"].contains(parent, event.target)) {1862continue;1863}1864
1865var hideEvent = $__default["default"].Event(EVENT_HIDE$3, relatedTarget);1866$__default["default"](parent).trigger(hideEvent);1867
1868if (hideEvent.isDefaultPrevented()) {1869continue;1870} // If this is a touch-enabled device we remove the extra1871// empty mouseover listeners we added for iOS support1872
1873
1874if ('ontouchstart' in document.documentElement) {1875$__default["default"](document.body).children().off('mouseover', null, $__default["default"].noop);1876}1877
1878toggles[i].setAttribute('aria-expanded', 'false');1879
1880if (context._popper) {1881context._popper.destroy();1882}1883
1884$__default["default"](dropdownMenu).removeClass(CLASS_NAME_SHOW$5);1885$__default["default"](parent).removeClass(CLASS_NAME_SHOW$5).trigger($__default["default"].Event(EVENT_HIDDEN$3, relatedTarget));1886}1887};1888
1889Dropdown._getParentFromElement = function _getParentFromElement(element) {1890var parent;1891var selector = Util.getSelectorFromElement(element);1892
1893if (selector) {1894parent = document.querySelector(selector);1895}1896
1897return parent || element.parentNode;1898} // eslint-disable-next-line complexity1899;1900
1901Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {1902// If not input/textarea:1903// - And not a key in REGEXP_KEYDOWN => not a dropdown command1904// If input/textarea:1905// - If space key => not a dropdown command1906// - If key is other than escape1907// - If key is not up or down => not a dropdown command1908// - If trigger inside the menu => not a dropdown command1909if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE$1 && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default["default"](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {1910return;1911}1912
1913if (this.disabled || $__default["default"](this).hasClass(CLASS_NAME_DISABLED$1)) {1914return;1915}1916
1917var parent = Dropdown._getParentFromElement(this);1918
1919var isActive = $__default["default"](parent).hasClass(CLASS_NAME_SHOW$5);1920
1921if (!isActive && event.which === ESCAPE_KEYCODE$1) {1922return;1923}1924
1925event.preventDefault();1926event.stopPropagation();1927
1928if (!isActive || event.which === ESCAPE_KEYCODE$1 || event.which === SPACE_KEYCODE) {1929if (event.which === ESCAPE_KEYCODE$1) {1930$__default["default"](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');1931}1932
1933$__default["default"](this).trigger('click');1934return;1935}1936
1937var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {1938return $__default["default"](item).is(':visible');1939});1940
1941if (items.length === 0) {1942return;1943}1944
1945var index = items.indexOf(event.target);1946
1947if (event.which === ARROW_UP_KEYCODE && index > 0) {1948// Up1949index--;1950}1951
1952if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {1953// Down1954index++;1955}1956
1957if (index < 0) {1958index = 0;1959}1960
1961items[index].focus();1962};1963
1964_createClass(Dropdown, null, [{1965key: "VERSION",1966get: function get() {1967return VERSION$6;1968}1969}, {1970key: "Default",1971get: function get() {1972return Default$5;1973}1974}, {1975key: "DefaultType",1976get: function get() {1977return DefaultType$5;1978}1979}]);1980
1981return Dropdown;1982}();1983/**1984* Data API implementation
1985*/
1986
1987
1988$__default["default"](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$2 + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {1989event.preventDefault();1990event.stopPropagation();1991
1992Dropdown._jQueryInterface.call($__default["default"](this), 'toggle');1993}).on(EVENT_CLICK_DATA_API$2, SELECTOR_FORM_CHILD, function (e) {1994e.stopPropagation();1995});1996/**1997* jQuery
1998*/
1999
2000$__default["default"].fn[NAME$6] = Dropdown._jQueryInterface;2001$__default["default"].fn[NAME$6].Constructor = Dropdown;2002
2003$__default["default"].fn[NAME$6].noConflict = function () {2004$__default["default"].fn[NAME$6] = JQUERY_NO_CONFLICT$6;2005return Dropdown._jQueryInterface;2006};2007
2008/**2009* Constants
2010*/
2011
2012var NAME$5 = 'modal';2013var VERSION$5 = '4.6.1';2014var DATA_KEY$5 = 'bs.modal';2015var EVENT_KEY$5 = "." + DATA_KEY$5;2016var DATA_API_KEY$2 = '.data-api';2017var JQUERY_NO_CONFLICT$5 = $__default["default"].fn[NAME$5];2018var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key2019
2020var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';2021var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';2022var CLASS_NAME_BACKDROP = 'modal-backdrop';2023var CLASS_NAME_OPEN = 'modal-open';2024var CLASS_NAME_FADE$4 = 'fade';2025var CLASS_NAME_SHOW$4 = 'show';2026var CLASS_NAME_STATIC = 'modal-static';2027var EVENT_HIDE$2 = "hide" + EVENT_KEY$5;2028var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY$5;2029var EVENT_HIDDEN$2 = "hidden" + EVENT_KEY$5;2030var EVENT_SHOW$2 = "show" + EVENT_KEY$5;2031var EVENT_SHOWN$2 = "shown" + EVENT_KEY$5;2032var EVENT_FOCUSIN = "focusin" + EVENT_KEY$5;2033var EVENT_RESIZE = "resize" + EVENT_KEY$5;2034var EVENT_CLICK_DISMISS$1 = "click.dismiss" + EVENT_KEY$5;2035var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY$5;2036var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY$5;2037var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY$5;2038var EVENT_CLICK_DATA_API$1 = "click" + EVENT_KEY$5 + DATA_API_KEY$2;2039var SELECTOR_DIALOG = '.modal-dialog';2040var SELECTOR_MODAL_BODY = '.modal-body';2041var SELECTOR_DATA_TOGGLE$1 = '[data-toggle="modal"]';2042var SELECTOR_DATA_DISMISS$1 = '[data-dismiss="modal"]';2043var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';2044var SELECTOR_STICKY_CONTENT = '.sticky-top';2045var Default$4 = {2046backdrop: true,2047keyboard: true,2048focus: true,2049show: true2050};2051var DefaultType$4 = {2052backdrop: '(boolean|string)',2053keyboard: 'boolean',2054focus: 'boolean',2055show: 'boolean'2056};2057/**2058* Class definition
2059*/
2060
2061var Modal = /*#__PURE__*/function () {2062function Modal(element, config) {2063this._config = this._getConfig(config);2064this._element = element;2065this._dialog = element.querySelector(SELECTOR_DIALOG);2066this._backdrop = null;2067this._isShown = false;2068this._isBodyOverflowing = false;2069this._ignoreBackdropClick = false;2070this._isTransitioning = false;2071this._scrollbarWidth = 0;2072} // Getters2073
2074
2075var _proto = Modal.prototype;2076
2077// Public2078_proto.toggle = function toggle(relatedTarget) {2079return this._isShown ? this.hide() : this.show(relatedTarget);2080};2081
2082_proto.show = function show(relatedTarget) {2083var _this = this;2084
2085if (this._isShown || this._isTransitioning) {2086return;2087}2088
2089var showEvent = $__default["default"].Event(EVENT_SHOW$2, {2090relatedTarget: relatedTarget2091});2092$__default["default"](this._element).trigger(showEvent);2093
2094if (showEvent.isDefaultPrevented()) {2095return;2096}2097
2098this._isShown = true;2099
2100if ($__default["default"](this._element).hasClass(CLASS_NAME_FADE$4)) {2101this._isTransitioning = true;2102}2103
2104this._checkScrollbar();2105
2106this._setScrollbar();2107
2108this._adjustDialog();2109
2110this._setEscapeEvent();2111
2112this._setResizeEvent();2113
2114$__default["default"](this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function (event) {2115return _this.hide(event);2116});2117$__default["default"](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {2118$__default["default"](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {2119if ($__default["default"](event.target).is(_this._element)) {2120_this._ignoreBackdropClick = true;2121}2122});2123});2124
2125this._showBackdrop(function () {2126return _this._showElement(relatedTarget);2127});2128};2129
2130_proto.hide = function hide(event) {2131var _this2 = this;2132
2133if (event) {2134event.preventDefault();2135}2136
2137if (!this._isShown || this._isTransitioning) {2138return;2139}2140
2141var hideEvent = $__default["default"].Event(EVENT_HIDE$2);2142$__default["default"](this._element).trigger(hideEvent);2143
2144if (!this._isShown || hideEvent.isDefaultPrevented()) {2145return;2146}2147
2148this._isShown = false;2149var transition = $__default["default"](this._element).hasClass(CLASS_NAME_FADE$4);2150
2151if (transition) {2152this._isTransitioning = true;2153}2154
2155this._setEscapeEvent();2156
2157this._setResizeEvent();2158
2159$__default["default"](document).off(EVENT_FOCUSIN);2160$__default["default"](this._element).removeClass(CLASS_NAME_SHOW$4);2161$__default["default"](this._element).off(EVENT_CLICK_DISMISS$1);2162$__default["default"](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);2163
2164if (transition) {2165var transitionDuration = Util.getTransitionDurationFromElement(this._element);2166$__default["default"](this._element).one(Util.TRANSITION_END, function (event) {2167return _this2._hideModal(event);2168}).emulateTransitionEnd(transitionDuration);2169} else {2170this._hideModal();2171}2172};2173
2174_proto.dispose = function dispose() {2175[window, this._element, this._dialog].forEach(function (htmlElement) {2176return $__default["default"](htmlElement).off(EVENT_KEY$5);2177});2178/**2179* `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
2180* Do not move `document` in `htmlElements` array
2181* It will remove `EVENT_CLICK_DATA_API` event that should remain
2182*/
2183
2184$__default["default"](document).off(EVENT_FOCUSIN);2185$__default["default"].removeData(this._element, DATA_KEY$5);2186this._config = null;2187this._element = null;2188this._dialog = null;2189this._backdrop = null;2190this._isShown = null;2191this._isBodyOverflowing = null;2192this._ignoreBackdropClick = null;2193this._isTransitioning = null;2194this._scrollbarWidth = null;2195};2196
2197_proto.handleUpdate = function handleUpdate() {2198this._adjustDialog();2199} // Private2200;2201
2202_proto._getConfig = function _getConfig(config) {2203config = _extends({}, Default$4, config);2204Util.typeCheckConfig(NAME$5, config, DefaultType$4);2205return config;2206};2207
2208_proto._triggerBackdropTransition = function _triggerBackdropTransition() {2209var _this3 = this;2210
2211var hideEventPrevented = $__default["default"].Event(EVENT_HIDE_PREVENTED);2212$__default["default"](this._element).trigger(hideEventPrevented);2213
2214if (hideEventPrevented.isDefaultPrevented()) {2215return;2216}2217
2218var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;2219
2220if (!isModalOverflowing) {2221this._element.style.overflowY = 'hidden';2222}2223
2224this._element.classList.add(CLASS_NAME_STATIC);2225
2226var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog);2227$__default["default"](this._element).off(Util.TRANSITION_END);2228$__default["default"](this._element).one(Util.TRANSITION_END, function () {2229_this3._element.classList.remove(CLASS_NAME_STATIC);2230
2231if (!isModalOverflowing) {2232$__default["default"](_this3._element).one(Util.TRANSITION_END, function () {2233_this3._element.style.overflowY = '';2234}).emulateTransitionEnd(_this3._element, modalTransitionDuration);2235}2236}).emulateTransitionEnd(modalTransitionDuration);2237
2238this._element.focus();2239};2240
2241_proto._showElement = function _showElement(relatedTarget) {2242var _this4 = this;2243
2244var transition = $__default["default"](this._element).hasClass(CLASS_NAME_FADE$4);2245var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;2246
2247if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {2248// Don't move modal's DOM position2249document.body.appendChild(this._element);2250}2251
2252this._element.style.display = 'block';2253
2254this._element.removeAttribute('aria-hidden');2255
2256this._element.setAttribute('aria-modal', true);2257
2258this._element.setAttribute('role', 'dialog');2259
2260if ($__default["default"](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {2261modalBody.scrollTop = 0;2262} else {2263this._element.scrollTop = 0;2264}2265
2266if (transition) {2267Util.reflow(this._element);2268}2269
2270$__default["default"](this._element).addClass(CLASS_NAME_SHOW$4);2271
2272if (this._config.focus) {2273this._enforceFocus();2274}2275
2276var shownEvent = $__default["default"].Event(EVENT_SHOWN$2, {2277relatedTarget: relatedTarget2278});2279
2280var transitionComplete = function transitionComplete() {2281if (_this4._config.focus) {2282_this4._element.focus();2283}2284
2285_this4._isTransitioning = false;2286$__default["default"](_this4._element).trigger(shownEvent);2287};2288
2289if (transition) {2290var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);2291$__default["default"](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);2292} else {2293transitionComplete();2294}2295};2296
2297_proto._enforceFocus = function _enforceFocus() {2298var _this5 = this;2299
2300$__default["default"](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop2301.on(EVENT_FOCUSIN, function (event) {2302if (document !== event.target && _this5._element !== event.target && $__default["default"](_this5._element).has(event.target).length === 0) {2303_this5._element.focus();2304}2305});2306};2307
2308_proto._setEscapeEvent = function _setEscapeEvent() {2309var _this6 = this;2310
2311if (this._isShown) {2312$__default["default"](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {2313if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {2314event.preventDefault();2315
2316_this6.hide();2317} else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {2318_this6._triggerBackdropTransition();2319}2320});2321} else if (!this._isShown) {2322$__default["default"](this._element).off(EVENT_KEYDOWN_DISMISS);2323}2324};2325
2326_proto._setResizeEvent = function _setResizeEvent() {2327var _this7 = this;2328
2329if (this._isShown) {2330$__default["default"](window).on(EVENT_RESIZE, function (event) {2331return _this7.handleUpdate(event);2332});2333} else {2334$__default["default"](window).off(EVENT_RESIZE);2335}2336};2337
2338_proto._hideModal = function _hideModal() {2339var _this8 = this;2340
2341this._element.style.display = 'none';2342
2343this._element.setAttribute('aria-hidden', true);2344
2345this._element.removeAttribute('aria-modal');2346
2347this._element.removeAttribute('role');2348
2349this._isTransitioning = false;2350
2351this._showBackdrop(function () {2352$__default["default"](document.body).removeClass(CLASS_NAME_OPEN);2353
2354_this8._resetAdjustments();2355
2356_this8._resetScrollbar();2357
2358$__default["default"](_this8._element).trigger(EVENT_HIDDEN$2);2359});2360};2361
2362_proto._removeBackdrop = function _removeBackdrop() {2363if (this._backdrop) {2364$__default["default"](this._backdrop).remove();2365this._backdrop = null;2366}2367};2368
2369_proto._showBackdrop = function _showBackdrop(callback) {2370var _this9 = this;2371
2372var animate = $__default["default"](this._element).hasClass(CLASS_NAME_FADE$4) ? CLASS_NAME_FADE$4 : '';2373
2374if (this._isShown && this._config.backdrop) {2375this._backdrop = document.createElement('div');2376this._backdrop.className = CLASS_NAME_BACKDROP;2377
2378if (animate) {2379this._backdrop.classList.add(animate);2380}2381
2382$__default["default"](this._backdrop).appendTo(document.body);2383$__default["default"](this._element).on(EVENT_CLICK_DISMISS$1, function (event) {2384if (_this9._ignoreBackdropClick) {2385_this9._ignoreBackdropClick = false;2386return;2387}2388
2389if (event.target !== event.currentTarget) {2390return;2391}2392
2393if (_this9._config.backdrop === 'static') {2394_this9._triggerBackdropTransition();2395} else {2396_this9.hide();2397}2398});2399
2400if (animate) {2401Util.reflow(this._backdrop);2402}2403
2404$__default["default"](this._backdrop).addClass(CLASS_NAME_SHOW$4);2405
2406if (!callback) {2407return;2408}2409
2410if (!animate) {2411callback();2412return;2413}2414
2415var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);2416$__default["default"](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);2417} else if (!this._isShown && this._backdrop) {2418$__default["default"](this._backdrop).removeClass(CLASS_NAME_SHOW$4);2419
2420var callbackRemove = function callbackRemove() {2421_this9._removeBackdrop();2422
2423if (callback) {2424callback();2425}2426};2427
2428if ($__default["default"](this._element).hasClass(CLASS_NAME_FADE$4)) {2429var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);2430
2431$__default["default"](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);2432} else {2433callbackRemove();2434}2435} else if (callback) {2436callback();2437}2438} // ----------------------------------------------------------------------2439// the following methods are used to handle overflowing modals2440// todo (fat): these should probably be refactored out of modal.js2441// ----------------------------------------------------------------------2442;2443
2444_proto._adjustDialog = function _adjustDialog() {2445var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;2446
2447if (!this._isBodyOverflowing && isModalOverflowing) {2448this._element.style.paddingLeft = this._scrollbarWidth + "px";2449}2450
2451if (this._isBodyOverflowing && !isModalOverflowing) {2452this._element.style.paddingRight = this._scrollbarWidth + "px";2453}2454};2455
2456_proto._resetAdjustments = function _resetAdjustments() {2457this._element.style.paddingLeft = '';2458this._element.style.paddingRight = '';2459};2460
2461_proto._checkScrollbar = function _checkScrollbar() {2462var rect = document.body.getBoundingClientRect();2463this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;2464this._scrollbarWidth = this._getScrollbarWidth();2465};2466
2467_proto._setScrollbar = function _setScrollbar() {2468var _this10 = this;2469
2470if (this._isBodyOverflowing) {2471// Note: DOMNode.style.paddingRight returns the actual value or '' if not set2472// while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set2473var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));2474var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding2475
2476$__default["default"](fixedContent).each(function (index, element) {2477var actualPadding = element.style.paddingRight;2478var calculatedPadding = $__default["default"](element).css('padding-right');2479$__default["default"](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px");2480}); // Adjust sticky content margin2481
2482$__default["default"](stickyContent).each(function (index, element) {2483var actualMargin = element.style.marginRight;2484var calculatedMargin = $__default["default"](element).css('margin-right');2485$__default["default"](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px");2486}); // Adjust body padding2487
2488var actualPadding = document.body.style.paddingRight;2489var calculatedPadding = $__default["default"](document.body).css('padding-right');2490$__default["default"](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");2491}2492
2493$__default["default"](document.body).addClass(CLASS_NAME_OPEN);2494};2495
2496_proto._resetScrollbar = function _resetScrollbar() {2497// Restore fixed content padding2498var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));2499$__default["default"](fixedContent).each(function (index, element) {2500var padding = $__default["default"](element).data('padding-right');2501$__default["default"](element).removeData('padding-right');2502element.style.paddingRight = padding ? padding : '';2503}); // Restore sticky content2504
2505var elements = [].slice.call(document.querySelectorAll("" + SELECTOR_STICKY_CONTENT));2506$__default["default"](elements).each(function (index, element) {2507var margin = $__default["default"](element).data('margin-right');2508
2509if (typeof margin !== 'undefined') {2510$__default["default"](element).css('margin-right', margin).removeData('margin-right');2511}2512}); // Restore body padding2513
2514var padding = $__default["default"](document.body).data('padding-right');2515$__default["default"](document.body).removeData('padding-right');2516document.body.style.paddingRight = padding ? padding : '';2517};2518
2519_proto._getScrollbarWidth = function _getScrollbarWidth() {2520// thx d.walsh2521var scrollDiv = document.createElement('div');2522scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;2523document.body.appendChild(scrollDiv);2524var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;2525document.body.removeChild(scrollDiv);2526return scrollbarWidth;2527} // Static2528;2529
2530Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {2531return this.each(function () {2532var data = $__default["default"](this).data(DATA_KEY$5);2533
2534var _config = _extends({}, Default$4, $__default["default"](this).data(), typeof config === 'object' && config ? config : {});2535
2536if (!data) {2537data = new Modal(this, _config);2538$__default["default"](this).data(DATA_KEY$5, data);2539}2540
2541if (typeof config === 'string') {2542if (typeof data[config] === 'undefined') {2543throw new TypeError("No method named \"" + config + "\"");2544}2545
2546data[config](relatedTarget);2547} else if (_config.show) {2548data.show(relatedTarget);2549}2550});2551};2552
2553_createClass(Modal, null, [{2554key: "VERSION",2555get: function get() {2556return VERSION$5;2557}2558}, {2559key: "Default",2560get: function get() {2561return Default$4;2562}2563}]);2564
2565return Modal;2566}();2567/**2568* Data API implementation
2569*/
2570
2571
2572$__default["default"](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {2573var _this11 = this;2574
2575var target;2576var selector = Util.getSelectorFromElement(this);2577
2578if (selector) {2579target = document.querySelector(selector);2580}2581
2582var config = $__default["default"](target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $__default["default"](target).data(), $__default["default"](this).data());2583
2584if (this.tagName === 'A' || this.tagName === 'AREA') {2585event.preventDefault();2586}2587
2588var $target = $__default["default"](target).one(EVENT_SHOW$2, function (showEvent) {2589if (showEvent.isDefaultPrevented()) {2590// Only register focus restorer if modal will actually get shown2591return;2592}2593
2594$target.one(EVENT_HIDDEN$2, function () {2595if ($__default["default"](_this11).is(':visible')) {2596_this11.focus();2597}2598});2599});2600
2601Modal._jQueryInterface.call($__default["default"](target), config, this);2602});2603/**2604* jQuery
2605*/
2606
2607$__default["default"].fn[NAME$5] = Modal._jQueryInterface;2608$__default["default"].fn[NAME$5].Constructor = Modal;2609
2610$__default["default"].fn[NAME$5].noConflict = function () {2611$__default["default"].fn[NAME$5] = JQUERY_NO_CONFLICT$5;2612return Modal._jQueryInterface;2613};2614
2615/**2616* --------------------------------------------------------------------------
2617* Bootstrap (v4.6.1): tools/sanitizer.js
2618* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
2619* --------------------------------------------------------------------------
2620*/
2621var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];2622var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;2623var DefaultWhitelist = {2624// Global attributes allowed on any supplied element below.2625'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],2626a: ['target', 'href', 'title', 'rel'],2627area: [],2628b: [],2629br: [],2630col: [],2631code: [],2632div: [],2633em: [],2634hr: [],2635h1: [],2636h2: [],2637h3: [],2638h4: [],2639h5: [],2640h6: [],2641i: [],2642img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],2643li: [],2644ol: [],2645p: [],2646pre: [],2647s: [],2648small: [],2649span: [],2650sub: [],2651sup: [],2652strong: [],2653u: [],2654ul: []2655};2656/**2657* A pattern that recognizes a commonly useful subset of URLs that are safe.
2658*
2659* Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
2660*/
2661
2662var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;2663/**2664* A pattern that matches safe data URLs. Only matches image, video and audio types.
2665*
2666* Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
2667*/
2668
2669var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;2670
2671function allowedAttribute(attr, allowedAttributeList) {2672var attrName = attr.nodeName.toLowerCase();2673
2674if (allowedAttributeList.indexOf(attrName) !== -1) {2675if (uriAttrs.indexOf(attrName) !== -1) {2676return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));2677}2678
2679return true;2680}2681
2682var regExp = allowedAttributeList.filter(function (attrRegex) {2683return attrRegex instanceof RegExp;2684}); // Check if a regular expression validates the attribute.2685
2686for (var i = 0, len = regExp.length; i < len; i++) {2687if (regExp[i].test(attrName)) {2688return true;2689}2690}2691
2692return false;2693}2694
2695function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {2696if (unsafeHtml.length === 0) {2697return unsafeHtml;2698}2699
2700if (sanitizeFn && typeof sanitizeFn === 'function') {2701return sanitizeFn(unsafeHtml);2702}2703
2704var domParser = new window.DOMParser();2705var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');2706var whitelistKeys = Object.keys(whiteList);2707var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));2708
2709var _loop = function _loop(i, len) {2710var el = elements[i];2711var elName = el.nodeName.toLowerCase();2712
2713if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {2714el.parentNode.removeChild(el);2715return "continue";2716}2717
2718var attributeList = [].slice.call(el.attributes); // eslint-disable-next-line unicorn/prefer-spread2719
2720var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);2721attributeList.forEach(function (attr) {2722if (!allowedAttribute(attr, whitelistedAttributes)) {2723el.removeAttribute(attr.nodeName);2724}2725});2726};2727
2728for (var i = 0, len = elements.length; i < len; i++) {2729var _ret = _loop(i);2730
2731if (_ret === "continue") continue;2732}2733
2734return createdDocument.body.innerHTML;2735}2736
2737/**2738* Constants
2739*/
2740
2741var NAME$4 = 'tooltip';2742var VERSION$4 = '4.6.1';2743var DATA_KEY$4 = 'bs.tooltip';2744var EVENT_KEY$4 = "." + DATA_KEY$4;2745var JQUERY_NO_CONFLICT$4 = $__default["default"].fn[NAME$4];2746var CLASS_PREFIX$1 = 'bs-tooltip';2747var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g');2748var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];2749var CLASS_NAME_FADE$3 = 'fade';2750var CLASS_NAME_SHOW$3 = 'show';2751var HOVER_STATE_SHOW = 'show';2752var HOVER_STATE_OUT = 'out';2753var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';2754var SELECTOR_ARROW = '.arrow';2755var TRIGGER_HOVER = 'hover';2756var TRIGGER_FOCUS = 'focus';2757var TRIGGER_CLICK = 'click';2758var TRIGGER_MANUAL = 'manual';2759var AttachmentMap = {2760AUTO: 'auto',2761TOP: 'top',2762RIGHT: 'right',2763BOTTOM: 'bottom',2764LEFT: 'left'2765};2766var Default$3 = {2767animation: true,2768template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',2769trigger: 'hover focus',2770title: '',2771delay: 0,2772html: false,2773selector: false,2774placement: 'top',2775offset: 0,2776container: false,2777fallbackPlacement: 'flip',2778boundary: 'scrollParent',2779customClass: '',2780sanitize: true,2781sanitizeFn: null,2782whiteList: DefaultWhitelist,2783popperConfig: null2784};2785var DefaultType$3 = {2786animation: 'boolean',2787template: 'string',2788title: '(string|element|function)',2789trigger: 'string',2790delay: '(number|object)',2791html: 'boolean',2792selector: '(string|boolean)',2793placement: '(string|function)',2794offset: '(number|string|function)',2795container: '(string|element|boolean)',2796fallbackPlacement: '(string|array)',2797boundary: '(string|element)',2798customClass: '(string|function)',2799sanitize: 'boolean',2800sanitizeFn: '(null|function)',2801whiteList: 'object',2802popperConfig: '(null|object)'2803};2804var Event$1 = {2805HIDE: "hide" + EVENT_KEY$4,2806HIDDEN: "hidden" + EVENT_KEY$4,2807SHOW: "show" + EVENT_KEY$4,2808SHOWN: "shown" + EVENT_KEY$4,2809INSERTED: "inserted" + EVENT_KEY$4,2810CLICK: "click" + EVENT_KEY$4,2811FOCUSIN: "focusin" + EVENT_KEY$4,2812FOCUSOUT: "focusout" + EVENT_KEY$4,2813MOUSEENTER: "mouseenter" + EVENT_KEY$4,2814MOUSELEAVE: "mouseleave" + EVENT_KEY$42815};2816/**2817* Class definition
2818*/
2819
2820var Tooltip = /*#__PURE__*/function () {2821function Tooltip(element, config) {2822if (typeof Popper__default["default"] === 'undefined') {2823throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');2824} // Private2825
2826
2827this._isEnabled = true;2828this._timeout = 0;2829this._hoverState = '';2830this._activeTrigger = {};2831this._popper = null; // Protected2832
2833this.element = element;2834this.config = this._getConfig(config);2835this.tip = null;2836
2837this._setListeners();2838} // Getters2839
2840
2841var _proto = Tooltip.prototype;2842
2843// Public2844_proto.enable = function enable() {2845this._isEnabled = true;2846};2847
2848_proto.disable = function disable() {2849this._isEnabled = false;2850};2851
2852_proto.toggleEnabled = function toggleEnabled() {2853this._isEnabled = !this._isEnabled;2854};2855
2856_proto.toggle = function toggle(event) {2857if (!this._isEnabled) {2858return;2859}2860
2861if (event) {2862var dataKey = this.constructor.DATA_KEY;2863var context = $__default["default"](event.currentTarget).data(dataKey);2864
2865if (!context) {2866context = new this.constructor(event.currentTarget, this._getDelegateConfig());2867$__default["default"](event.currentTarget).data(dataKey, context);2868}2869
2870context._activeTrigger.click = !context._activeTrigger.click;2871
2872if (context._isWithActiveTrigger()) {2873context._enter(null, context);2874} else {2875context._leave(null, context);2876}2877} else {2878if ($__default["default"](this.getTipElement()).hasClass(CLASS_NAME_SHOW$3)) {2879this._leave(null, this);2880
2881return;2882}2883
2884this._enter(null, this);2885}2886};2887
2888_proto.dispose = function dispose() {2889clearTimeout(this._timeout);2890$__default["default"].removeData(this.element, this.constructor.DATA_KEY);2891$__default["default"](this.element).off(this.constructor.EVENT_KEY);2892$__default["default"](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);2893
2894if (this.tip) {2895$__default["default"](this.tip).remove();2896}2897
2898this._isEnabled = null;2899this._timeout = null;2900this._hoverState = null;2901this._activeTrigger = null;2902
2903if (this._popper) {2904this._popper.destroy();2905}2906
2907this._popper = null;2908this.element = null;2909this.config = null;2910this.tip = null;2911};2912
2913_proto.show = function show() {2914var _this = this;2915
2916if ($__default["default"](this.element).css('display') === 'none') {2917throw new Error('Please use show on visible elements');2918}2919
2920var showEvent = $__default["default"].Event(this.constructor.Event.SHOW);2921
2922if (this.isWithContent() && this._isEnabled) {2923$__default["default"](this.element).trigger(showEvent);2924var shadowRoot = Util.findShadowRoot(this.element);2925var isInTheDom = $__default["default"].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);2926
2927if (showEvent.isDefaultPrevented() || !isInTheDom) {2928return;2929}2930
2931var tip = this.getTipElement();2932var tipId = Util.getUID(this.constructor.NAME);2933tip.setAttribute('id', tipId);2934this.element.setAttribute('aria-describedby', tipId);2935this.setContent();2936
2937if (this.config.animation) {2938$__default["default"](tip).addClass(CLASS_NAME_FADE$3);2939}2940
2941var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;2942
2943var attachment = this._getAttachment(placement);2944
2945this.addAttachmentClass(attachment);2946
2947var container = this._getContainer();2948
2949$__default["default"](tip).data(this.constructor.DATA_KEY, this);2950
2951if (!$__default["default"].contains(this.element.ownerDocument.documentElement, this.tip)) {2952$__default["default"](tip).appendTo(container);2953}2954
2955$__default["default"](this.element).trigger(this.constructor.Event.INSERTED);2956this._popper = new Popper__default["default"](this.element, tip, this._getPopperConfig(attachment));2957$__default["default"](tip).addClass(CLASS_NAME_SHOW$3);2958$__default["default"](tip).addClass(this.config.customClass); // If this is a touch-enabled device we add extra2959// empty mouseover listeners to the body's immediate children;2960// only needed because of broken event delegation on iOS2961// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html2962
2963if ('ontouchstart' in document.documentElement) {2964$__default["default"](document.body).children().on('mouseover', null, $__default["default"].noop);2965}2966
2967var complete = function complete() {2968if (_this.config.animation) {2969_this._fixTransition();2970}2971
2972var prevHoverState = _this._hoverState;2973_this._hoverState = null;2974$__default["default"](_this.element).trigger(_this.constructor.Event.SHOWN);2975
2976if (prevHoverState === HOVER_STATE_OUT) {2977_this._leave(null, _this);2978}2979};2980
2981if ($__default["default"](this.tip).hasClass(CLASS_NAME_FADE$3)) {2982var transitionDuration = Util.getTransitionDurationFromElement(this.tip);2983$__default["default"](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);2984} else {2985complete();2986}2987}2988};2989
2990_proto.hide = function hide(callback) {2991var _this2 = this;2992
2993var tip = this.getTipElement();2994var hideEvent = $__default["default"].Event(this.constructor.Event.HIDE);2995
2996var complete = function complete() {2997if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {2998tip.parentNode.removeChild(tip);2999}3000
3001_this2._cleanTipClass();3002
3003_this2.element.removeAttribute('aria-describedby');3004
3005$__default["default"](_this2.element).trigger(_this2.constructor.Event.HIDDEN);3006
3007if (_this2._popper !== null) {3008_this2._popper.destroy();3009}3010
3011if (callback) {3012callback();3013}3014};3015
3016$__default["default"](this.element).trigger(hideEvent);3017
3018if (hideEvent.isDefaultPrevented()) {3019return;3020}3021
3022$__default["default"](tip).removeClass(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we remove the extra3023// empty mouseover listeners we added for iOS support3024
3025if ('ontouchstart' in document.documentElement) {3026$__default["default"](document.body).children().off('mouseover', null, $__default["default"].noop);3027}3028
3029this._activeTrigger[TRIGGER_CLICK] = false;3030this._activeTrigger[TRIGGER_FOCUS] = false;3031this._activeTrigger[TRIGGER_HOVER] = false;3032
3033if ($__default["default"](this.tip).hasClass(CLASS_NAME_FADE$3)) {3034var transitionDuration = Util.getTransitionDurationFromElement(tip);3035$__default["default"](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);3036} else {3037complete();3038}3039
3040this._hoverState = '';3041};3042
3043_proto.update = function update() {3044if (this._popper !== null) {3045this._popper.scheduleUpdate();3046}3047} // Protected3048;3049
3050_proto.isWithContent = function isWithContent() {3051return Boolean(this.getTitle());3052};3053
3054_proto.addAttachmentClass = function addAttachmentClass(attachment) {3055$__default["default"](this.getTipElement()).addClass(CLASS_PREFIX$1 + "-" + attachment);3056};3057
3058_proto.getTipElement = function getTipElement() {3059this.tip = this.tip || $__default["default"](this.config.template)[0];3060return this.tip;3061};3062
3063_proto.setContent = function setContent() {3064var tip = this.getTipElement();3065this.setElementContent($__default["default"](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());3066$__default["default"](tip).removeClass(CLASS_NAME_FADE$3 + " " + CLASS_NAME_SHOW$3);3067};3068
3069_proto.setElementContent = function setElementContent($element, content) {3070if (typeof content === 'object' && (content.nodeType || content.jquery)) {3071// Content is a DOM node or a jQuery3072if (this.config.html) {3073if (!$__default["default"](content).parent().is($element)) {3074$element.empty().append(content);3075}3076} else {3077$element.text($__default["default"](content).text());3078}3079
3080return;3081}3082
3083if (this.config.html) {3084if (this.config.sanitize) {3085content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);3086}3087
3088$element.html(content);3089} else {3090$element.text(content);3091}3092};3093
3094_proto.getTitle = function getTitle() {3095var title = this.element.getAttribute('data-original-title');3096
3097if (!title) {3098title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;3099}3100
3101return title;3102} // Private3103;3104
3105_proto._getPopperConfig = function _getPopperConfig(attachment) {3106var _this3 = this;3107
3108var defaultBsConfig = {3109placement: attachment,3110modifiers: {3111offset: this._getOffset(),3112flip: {3113behavior: this.config.fallbackPlacement3114},3115arrow: {3116element: SELECTOR_ARROW3117},3118preventOverflow: {3119boundariesElement: this.config.boundary3120}3121},3122onCreate: function onCreate(data) {3123if (data.originalPlacement !== data.placement) {3124_this3._handlePopperPlacementChange(data);3125}3126},3127onUpdate: function onUpdate(data) {3128return _this3._handlePopperPlacementChange(data);3129}3130};3131return _extends({}, defaultBsConfig, this.config.popperConfig);3132};3133
3134_proto._getOffset = function _getOffset() {3135var _this4 = this;3136
3137var offset = {};3138
3139if (typeof this.config.offset === 'function') {3140offset.fn = function (data) {3141data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element));3142return data;3143};3144} else {3145offset.offset = this.config.offset;3146}3147
3148return offset;3149};3150
3151_proto._getContainer = function _getContainer() {3152if (this.config.container === false) {3153return document.body;3154}3155
3156if (Util.isElement(this.config.container)) {3157return $__default["default"](this.config.container);3158}3159
3160return $__default["default"](document).find(this.config.container);3161};3162
3163_proto._getAttachment = function _getAttachment(placement) {3164return AttachmentMap[placement.toUpperCase()];3165};3166
3167_proto._setListeners = function _setListeners() {3168var _this5 = this;3169
3170var triggers = this.config.trigger.split(' ');3171triggers.forEach(function (trigger) {3172if (trigger === 'click') {3173$__default["default"](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {3174return _this5.toggle(event);3175});3176} else if (trigger !== TRIGGER_MANUAL) {3177var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;3178var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;3179$__default["default"](_this5.element).on(eventIn, _this5.config.selector, function (event) {3180return _this5._enter(event);3181}).on(eventOut, _this5.config.selector, function (event) {3182return _this5._leave(event);3183});3184}3185});3186
3187this._hideModalHandler = function () {3188if (_this5.element) {3189_this5.hide();3190}3191};3192
3193$__default["default"](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);3194
3195if (this.config.selector) {3196this.config = _extends({}, this.config, {3197trigger: 'manual',3198selector: ''3199});3200} else {3201this._fixTitle();3202}3203};3204
3205_proto._fixTitle = function _fixTitle() {3206var titleType = typeof this.element.getAttribute('data-original-title');3207
3208if (this.element.getAttribute('title') || titleType !== 'string') {3209this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');3210this.element.setAttribute('title', '');3211}3212};3213
3214_proto._enter = function _enter(event, context) {3215var dataKey = this.constructor.DATA_KEY;3216context = context || $__default["default"](event.currentTarget).data(dataKey);3217
3218if (!context) {3219context = new this.constructor(event.currentTarget, this._getDelegateConfig());3220$__default["default"](event.currentTarget).data(dataKey, context);3221}3222
3223if (event) {3224context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;3225}3226
3227if ($__default["default"](context.getTipElement()).hasClass(CLASS_NAME_SHOW$3) || context._hoverState === HOVER_STATE_SHOW) {3228context._hoverState = HOVER_STATE_SHOW;3229return;3230}3231
3232clearTimeout(context._timeout);3233context._hoverState = HOVER_STATE_SHOW;3234
3235if (!context.config.delay || !context.config.delay.show) {3236context.show();3237return;3238}3239
3240context._timeout = setTimeout(function () {3241if (context._hoverState === HOVER_STATE_SHOW) {3242context.show();3243}3244}, context.config.delay.show);3245};3246
3247_proto._leave = function _leave(event, context) {3248var dataKey = this.constructor.DATA_KEY;3249context = context || $__default["default"](event.currentTarget).data(dataKey);3250
3251if (!context) {3252context = new this.constructor(event.currentTarget, this._getDelegateConfig());3253$__default["default"](event.currentTarget).data(dataKey, context);3254}3255
3256if (event) {3257context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;3258}3259
3260if (context._isWithActiveTrigger()) {3261return;3262}3263
3264clearTimeout(context._timeout);3265context._hoverState = HOVER_STATE_OUT;3266
3267if (!context.config.delay || !context.config.delay.hide) {3268context.hide();3269return;3270}3271
3272context._timeout = setTimeout(function () {3273if (context._hoverState === HOVER_STATE_OUT) {3274context.hide();3275}3276}, context.config.delay.hide);3277};3278
3279_proto._isWithActiveTrigger = function _isWithActiveTrigger() {3280for (var trigger in this._activeTrigger) {3281if (this._activeTrigger[trigger]) {3282return true;3283}3284}3285
3286return false;3287};3288
3289_proto._getConfig = function _getConfig(config) {3290var dataAttributes = $__default["default"](this.element).data();3291Object.keys(dataAttributes).forEach(function (dataAttr) {3292if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {3293delete dataAttributes[dataAttr];3294}3295});3296config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});3297
3298if (typeof config.delay === 'number') {3299config.delay = {3300show: config.delay,3301hide: config.delay3302};3303}3304
3305if (typeof config.title === 'number') {3306config.title = config.title.toString();3307}3308
3309if (typeof config.content === 'number') {3310config.content = config.content.toString();3311}3312
3313Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);3314
3315if (config.sanitize) {3316config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);3317}3318
3319return config;3320};3321
3322_proto._getDelegateConfig = function _getDelegateConfig() {3323var config = {};3324
3325if (this.config) {3326for (var key in this.config) {3327if (this.constructor.Default[key] !== this.config[key]) {3328config[key] = this.config[key];3329}3330}3331}3332
3333return config;3334};3335
3336_proto._cleanTipClass = function _cleanTipClass() {3337var $tip = $__default["default"](this.getTipElement());3338var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);3339
3340if (tabClass !== null && tabClass.length) {3341$tip.removeClass(tabClass.join(''));3342}3343};3344
3345_proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {3346this.tip = popperData.instance.popper;3347
3348this._cleanTipClass();3349
3350this.addAttachmentClass(this._getAttachment(popperData.placement));3351};3352
3353_proto._fixTransition = function _fixTransition() {3354var tip = this.getTipElement();3355var initConfigAnimation = this.config.animation;3356
3357if (tip.getAttribute('x-placement') !== null) {3358return;3359}3360
3361$__default["default"](tip).removeClass(CLASS_NAME_FADE$3);3362this.config.animation = false;3363this.hide();3364this.show();3365this.config.animation = initConfigAnimation;3366} // Static3367;3368
3369Tooltip._jQueryInterface = function _jQueryInterface(config) {3370return this.each(function () {3371var $element = $__default["default"](this);3372var data = $element.data(DATA_KEY$4);3373
3374var _config = typeof config === 'object' && config;3375
3376if (!data && /dispose|hide/.test(config)) {3377return;3378}3379
3380if (!data) {3381data = new Tooltip(this, _config);3382$element.data(DATA_KEY$4, data);3383}3384
3385if (typeof config === 'string') {3386if (typeof data[config] === 'undefined') {3387throw new TypeError("No method named \"" + config + "\"");3388}3389
3390data[config]();3391}3392});3393};3394
3395_createClass(Tooltip, null, [{3396key: "VERSION",3397get: function get() {3398return VERSION$4;3399}3400}, {3401key: "Default",3402get: function get() {3403return Default$3;3404}3405}, {3406key: "NAME",3407get: function get() {3408return NAME$4;3409}3410}, {3411key: "DATA_KEY",3412get: function get() {3413return DATA_KEY$4;3414}3415}, {3416key: "Event",3417get: function get() {3418return Event$1;3419}3420}, {3421key: "EVENT_KEY",3422get: function get() {3423return EVENT_KEY$4;3424}3425}, {3426key: "DefaultType",3427get: function get() {3428return DefaultType$3;3429}3430}]);3431
3432return Tooltip;3433}();3434/**3435* jQuery
3436*/
3437
3438
3439$__default["default"].fn[NAME$4] = Tooltip._jQueryInterface;3440$__default["default"].fn[NAME$4].Constructor = Tooltip;3441
3442$__default["default"].fn[NAME$4].noConflict = function () {3443$__default["default"].fn[NAME$4] = JQUERY_NO_CONFLICT$4;3444return Tooltip._jQueryInterface;3445};3446
3447/**3448* Constants
3449*/
3450
3451var NAME$3 = 'popover';3452var VERSION$3 = '4.6.1';3453var DATA_KEY$3 = 'bs.popover';3454var EVENT_KEY$3 = "." + DATA_KEY$3;3455var JQUERY_NO_CONFLICT$3 = $__default["default"].fn[NAME$3];3456var CLASS_PREFIX = 'bs-popover';3457var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');3458var CLASS_NAME_FADE$2 = 'fade';3459var CLASS_NAME_SHOW$2 = 'show';3460var SELECTOR_TITLE = '.popover-header';3461var SELECTOR_CONTENT = '.popover-body';3462
3463var Default$2 = _extends({}, Tooltip.Default, {3464placement: 'right',3465trigger: 'click',3466content: '',3467template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'3468});3469
3470var DefaultType$2 = _extends({}, Tooltip.DefaultType, {3471content: '(string|element|function)'3472});3473
3474var Event = {3475HIDE: "hide" + EVENT_KEY$3,3476HIDDEN: "hidden" + EVENT_KEY$3,3477SHOW: "show" + EVENT_KEY$3,3478SHOWN: "shown" + EVENT_KEY$3,3479INSERTED: "inserted" + EVENT_KEY$3,3480CLICK: "click" + EVENT_KEY$3,3481FOCUSIN: "focusin" + EVENT_KEY$3,3482FOCUSOUT: "focusout" + EVENT_KEY$3,3483MOUSEENTER: "mouseenter" + EVENT_KEY$3,3484MOUSELEAVE: "mouseleave" + EVENT_KEY$33485};3486/**3487* Class definition
3488*/
3489
3490var Popover = /*#__PURE__*/function (_Tooltip) {3491_inheritsLoose(Popover, _Tooltip);3492
3493function Popover() {3494return _Tooltip.apply(this, arguments) || this;3495}3496
3497var _proto = Popover.prototype;3498
3499// Overrides3500_proto.isWithContent = function isWithContent() {3501return this.getTitle() || this._getContent();3502};3503
3504_proto.addAttachmentClass = function addAttachmentClass(attachment) {3505$__default["default"](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);3506};3507
3508_proto.getTipElement = function getTipElement() {3509this.tip = this.tip || $__default["default"](this.config.template)[0];3510return this.tip;3511};3512
3513_proto.setContent = function setContent() {3514var $tip = $__default["default"](this.getTipElement()); // We use append for html objects to maintain js events3515
3516this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());3517
3518var content = this._getContent();3519
3520if (typeof content === 'function') {3521content = content.call(this.element);3522}3523
3524this.setElementContent($tip.find(SELECTOR_CONTENT), content);3525$tip.removeClass(CLASS_NAME_FADE$2 + " " + CLASS_NAME_SHOW$2);3526} // Private3527;3528
3529_proto._getContent = function _getContent() {3530return this.element.getAttribute('data-content') || this.config.content;3531};3532
3533_proto._cleanTipClass = function _cleanTipClass() {3534var $tip = $__default["default"](this.getTipElement());3535var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);3536
3537if (tabClass !== null && tabClass.length > 0) {3538$tip.removeClass(tabClass.join(''));3539}3540} // Static3541;3542
3543Popover._jQueryInterface = function _jQueryInterface(config) {3544return this.each(function () {3545var data = $__default["default"](this).data(DATA_KEY$3);3546
3547var _config = typeof config === 'object' ? config : null;3548
3549if (!data && /dispose|hide/.test(config)) {3550return;3551}3552
3553if (!data) {3554data = new Popover(this, _config);3555$__default["default"](this).data(DATA_KEY$3, data);3556}3557
3558if (typeof config === 'string') {3559if (typeof data[config] === 'undefined') {3560throw new TypeError("No method named \"" + config + "\"");3561}3562
3563data[config]();3564}3565});3566};3567
3568_createClass(Popover, null, [{3569key: "VERSION",3570get: // Getters3571function get() {3572return VERSION$3;3573}3574}, {3575key: "Default",3576get: function get() {3577return Default$2;3578}3579}, {3580key: "NAME",3581get: function get() {3582return NAME$3;3583}3584}, {3585key: "DATA_KEY",3586get: function get() {3587return DATA_KEY$3;3588}3589}, {3590key: "Event",3591get: function get() {3592return Event;3593}3594}, {3595key: "EVENT_KEY",3596get: function get() {3597return EVENT_KEY$3;3598}3599}, {3600key: "DefaultType",3601get: function get() {3602return DefaultType$2;3603}3604}]);3605
3606return Popover;3607}(Tooltip);3608/**3609* jQuery
3610*/
3611
3612
3613$__default["default"].fn[NAME$3] = Popover._jQueryInterface;3614$__default["default"].fn[NAME$3].Constructor = Popover;3615
3616$__default["default"].fn[NAME$3].noConflict = function () {3617$__default["default"].fn[NAME$3] = JQUERY_NO_CONFLICT$3;3618return Popover._jQueryInterface;3619};3620
3621/**3622* Constants
3623*/
3624
3625var NAME$2 = 'scrollspy';3626var VERSION$2 = '4.6.1';3627var DATA_KEY$2 = 'bs.scrollspy';3628var EVENT_KEY$2 = "." + DATA_KEY$2;3629var DATA_API_KEY$1 = '.data-api';3630var JQUERY_NO_CONFLICT$2 = $__default["default"].fn[NAME$2];3631var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';3632var CLASS_NAME_ACTIVE$1 = 'active';3633var EVENT_ACTIVATE = "activate" + EVENT_KEY$2;3634var EVENT_SCROLL = "scroll" + EVENT_KEY$2;3635var EVENT_LOAD_DATA_API = "load" + EVENT_KEY$2 + DATA_API_KEY$1;3636var METHOD_OFFSET = 'offset';3637var METHOD_POSITION = 'position';3638var SELECTOR_DATA_SPY = '[data-spy="scroll"]';3639var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';3640var SELECTOR_NAV_LINKS = '.nav-link';3641var SELECTOR_NAV_ITEMS = '.nav-item';3642var SELECTOR_LIST_ITEMS = '.list-group-item';3643var SELECTOR_DROPDOWN$1 = '.dropdown';3644var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';3645var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';3646var Default$1 = {3647offset: 10,3648method: 'auto',3649target: ''3650};3651var DefaultType$1 = {3652offset: 'number',3653method: 'string',3654target: '(string|element)'3655};3656/**3657* Class definition
3658*/
3659
3660var ScrollSpy = /*#__PURE__*/function () {3661function ScrollSpy(element, config) {3662var _this = this;3663
3664this._element = element;3665this._scrollElement = element.tagName === 'BODY' ? window : element;3666this._config = this._getConfig(config);3667this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + "," + (this._config.target + " " + SELECTOR_LIST_ITEMS + ",") + (this._config.target + " " + SELECTOR_DROPDOWN_ITEMS);3668this._offsets = [];3669this._targets = [];3670this._activeTarget = null;3671this._scrollHeight = 0;3672$__default["default"](this._scrollElement).on(EVENT_SCROLL, function (event) {3673return _this._process(event);3674});3675this.refresh();3676
3677this._process();3678} // Getters3679
3680
3681var _proto = ScrollSpy.prototype;3682
3683// Public3684_proto.refresh = function refresh() {3685var _this2 = this;3686
3687var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;3688var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;3689var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;3690this._offsets = [];3691this._targets = [];3692this._scrollHeight = this._getScrollHeight();3693var targets = [].slice.call(document.querySelectorAll(this._selector));3694targets.map(function (element) {3695var target;3696var targetSelector = Util.getSelectorFromElement(element);3697
3698if (targetSelector) {3699target = document.querySelector(targetSelector);3700}3701
3702if (target) {3703var targetBCR = target.getBoundingClientRect();3704
3705if (targetBCR.width || targetBCR.height) {3706// TODO (fat): remove sketch reliance on jQuery position/offset3707return [$__default["default"](target)[offsetMethod]().top + offsetBase, targetSelector];3708}3709}3710
3711return null;3712}).filter(function (item) {3713return item;3714}).sort(function (a, b) {3715return a[0] - b[0];3716}).forEach(function (item) {3717_this2._offsets.push(item[0]);3718
3719_this2._targets.push(item[1]);3720});3721};3722
3723_proto.dispose = function dispose() {3724$__default["default"].removeData(this._element, DATA_KEY$2);3725$__default["default"](this._scrollElement).off(EVENT_KEY$2);3726this._element = null;3727this._scrollElement = null;3728this._config = null;3729this._selector = null;3730this._offsets = null;3731this._targets = null;3732this._activeTarget = null;3733this._scrollHeight = null;3734} // Private3735;3736
3737_proto._getConfig = function _getConfig(config) {3738config = _extends({}, Default$1, typeof config === 'object' && config ? config : {});3739
3740if (typeof config.target !== 'string' && Util.isElement(config.target)) {3741var id = $__default["default"](config.target).attr('id');3742
3743if (!id) {3744id = Util.getUID(NAME$2);3745$__default["default"](config.target).attr('id', id);3746}3747
3748config.target = "#" + id;3749}3750
3751Util.typeCheckConfig(NAME$2, config, DefaultType$1);3752return config;3753};3754
3755_proto._getScrollTop = function _getScrollTop() {3756return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;3757};3758
3759_proto._getScrollHeight = function _getScrollHeight() {3760return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);3761};3762
3763_proto._getOffsetHeight = function _getOffsetHeight() {3764return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;3765};3766
3767_proto._process = function _process() {3768var scrollTop = this._getScrollTop() + this._config.offset;3769
3770var scrollHeight = this._getScrollHeight();3771
3772var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();3773
3774if (this._scrollHeight !== scrollHeight) {3775this.refresh();3776}3777
3778if (scrollTop >= maxScroll) {3779var target = this._targets[this._targets.length - 1];3780
3781if (this._activeTarget !== target) {3782this._activate(target);3783}3784
3785return;3786}3787
3788if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {3789this._activeTarget = null;3790
3791this._clear();3792
3793return;3794}3795
3796for (var i = this._offsets.length; i--;) {3797var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);3798
3799if (isActiveTarget) {3800this._activate(this._targets[i]);3801}3802}3803};3804
3805_proto._activate = function _activate(target) {3806this._activeTarget = target;3807
3808this._clear();3809
3810var queries = this._selector.split(',').map(function (selector) {3811return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";3812});3813
3814var $link = $__default["default"]([].slice.call(document.querySelectorAll(queries.join(','))));3815
3816if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {3817$link.closest(SELECTOR_DROPDOWN$1).find(SELECTOR_DROPDOWN_TOGGLE$1).addClass(CLASS_NAME_ACTIVE$1);3818$link.addClass(CLASS_NAME_ACTIVE$1);3819} else {3820// Set triggered link as active3821$link.addClass(CLASS_NAME_ACTIVE$1); // Set triggered links parents as active3822// With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor3823
3824$link.parents(SELECTOR_NAV_LIST_GROUP$1).prev(SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).addClass(CLASS_NAME_ACTIVE$1); // Handle special case when .nav-link is inside .nav-item3825
3826$link.parents(SELECTOR_NAV_LIST_GROUP$1).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE$1);3827}3828
3829$__default["default"](this._scrollElement).trigger(EVENT_ACTIVATE, {3830relatedTarget: target3831});3832};3833
3834_proto._clear = function _clear() {3835[].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {3836return node.classList.contains(CLASS_NAME_ACTIVE$1);3837}).forEach(function (node) {3838return node.classList.remove(CLASS_NAME_ACTIVE$1);3839});3840} // Static3841;3842
3843ScrollSpy._jQueryInterface = function _jQueryInterface(config) {3844return this.each(function () {3845var data = $__default["default"](this).data(DATA_KEY$2);3846
3847var _config = typeof config === 'object' && config;3848
3849if (!data) {3850data = new ScrollSpy(this, _config);3851$__default["default"](this).data(DATA_KEY$2, data);3852}3853
3854if (typeof config === 'string') {3855if (typeof data[config] === 'undefined') {3856throw new TypeError("No method named \"" + config + "\"");3857}3858
3859data[config]();3860}3861});3862};3863
3864_createClass(ScrollSpy, null, [{3865key: "VERSION",3866get: function get() {3867return VERSION$2;3868}3869}, {3870key: "Default",3871get: function get() {3872return Default$1;3873}3874}]);3875
3876return ScrollSpy;3877}();3878/**3879* Data API implementation
3880*/
3881
3882
3883$__default["default"](window).on(EVENT_LOAD_DATA_API, function () {3884var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));3885var scrollSpysLength = scrollSpys.length;3886
3887for (var i = scrollSpysLength; i--;) {3888var $spy = $__default["default"](scrollSpys[i]);3889
3890ScrollSpy._jQueryInterface.call($spy, $spy.data());3891}3892});3893/**3894* jQuery
3895*/
3896
3897$__default["default"].fn[NAME$2] = ScrollSpy._jQueryInterface;3898$__default["default"].fn[NAME$2].Constructor = ScrollSpy;3899
3900$__default["default"].fn[NAME$2].noConflict = function () {3901$__default["default"].fn[NAME$2] = JQUERY_NO_CONFLICT$2;3902return ScrollSpy._jQueryInterface;3903};3904
3905/**3906* Constants
3907*/
3908
3909var NAME$1 = 'tab';3910var VERSION$1 = '4.6.1';3911var DATA_KEY$1 = 'bs.tab';3912var EVENT_KEY$1 = "." + DATA_KEY$1;3913var DATA_API_KEY = '.data-api';3914var JQUERY_NO_CONFLICT$1 = $__default["default"].fn[NAME$1];3915var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';3916var CLASS_NAME_ACTIVE = 'active';3917var CLASS_NAME_DISABLED = 'disabled';3918var CLASS_NAME_FADE$1 = 'fade';3919var CLASS_NAME_SHOW$1 = 'show';3920var EVENT_HIDE$1 = "hide" + EVENT_KEY$1;3921var EVENT_HIDDEN$1 = "hidden" + EVENT_KEY$1;3922var EVENT_SHOW$1 = "show" + EVENT_KEY$1;3923var EVENT_SHOWN$1 = "shown" + EVENT_KEY$1;3924var EVENT_CLICK_DATA_API = "click" + EVENT_KEY$1 + DATA_API_KEY;3925var SELECTOR_DROPDOWN = '.dropdown';3926var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';3927var SELECTOR_ACTIVE = '.active';3928var SELECTOR_ACTIVE_UL = '> li > .active';3929var SELECTOR_DATA_TOGGLE = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';3930var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';3931var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';3932/**3933* Class definition
3934*/
3935
3936var Tab = /*#__PURE__*/function () {3937function Tab(element) {3938this._element = element;3939} // Getters3940
3941
3942var _proto = Tab.prototype;3943
3944// Public3945_proto.show = function show() {3946var _this = this;3947
3948if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default["default"](this._element).hasClass(CLASS_NAME_ACTIVE) || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED)) {3949return;3950}3951
3952var target;3953var previous;3954var listElement = $__default["default"](this._element).closest(SELECTOR_NAV_LIST_GROUP)[0];3955var selector = Util.getSelectorFromElement(this._element);3956
3957if (listElement) {3958var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;3959previous = $__default["default"].makeArray($__default["default"](listElement).find(itemSelector));3960previous = previous[previous.length - 1];3961}3962
3963var hideEvent = $__default["default"].Event(EVENT_HIDE$1, {3964relatedTarget: this._element3965});3966var showEvent = $__default["default"].Event(EVENT_SHOW$1, {3967relatedTarget: previous3968});3969
3970if (previous) {3971$__default["default"](previous).trigger(hideEvent);3972}3973
3974$__default["default"](this._element).trigger(showEvent);3975
3976if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {3977return;3978}3979
3980if (selector) {3981target = document.querySelector(selector);3982}3983
3984this._activate(this._element, listElement);3985
3986var complete = function complete() {3987var hiddenEvent = $__default["default"].Event(EVENT_HIDDEN$1, {3988relatedTarget: _this._element3989});3990var shownEvent = $__default["default"].Event(EVENT_SHOWN$1, {3991relatedTarget: previous3992});3993$__default["default"](previous).trigger(hiddenEvent);3994$__default["default"](_this._element).trigger(shownEvent);3995};3996
3997if (target) {3998this._activate(target, target.parentNode, complete);3999} else {4000complete();4001}4002};4003
4004_proto.dispose = function dispose() {4005$__default["default"].removeData(this._element, DATA_KEY$1);4006this._element = null;4007} // Private4008;4009
4010_proto._activate = function _activate(element, container, callback) {4011var _this2 = this;4012
4013var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default["default"](container).find(SELECTOR_ACTIVE_UL) : $__default["default"](container).children(SELECTOR_ACTIVE);4014var active = activeElements[0];4015var isTransitioning = callback && active && $__default["default"](active).hasClass(CLASS_NAME_FADE$1);4016
4017var complete = function complete() {4018return _this2._transitionComplete(element, active, callback);4019};4020
4021if (active && isTransitioning) {4022var transitionDuration = Util.getTransitionDurationFromElement(active);4023$__default["default"](active).removeClass(CLASS_NAME_SHOW$1).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);4024} else {4025complete();4026}4027};4028
4029_proto._transitionComplete = function _transitionComplete(element, active, callback) {4030if (active) {4031$__default["default"](active).removeClass(CLASS_NAME_ACTIVE);4032var dropdownChild = $__default["default"](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];4033
4034if (dropdownChild) {4035$__default["default"](dropdownChild).removeClass(CLASS_NAME_ACTIVE);4036}4037
4038if (active.getAttribute('role') === 'tab') {4039active.setAttribute('aria-selected', false);4040}4041}4042
4043$__default["default"](element).addClass(CLASS_NAME_ACTIVE);4044
4045if (element.getAttribute('role') === 'tab') {4046element.setAttribute('aria-selected', true);4047}4048
4049Util.reflow(element);4050
4051if (element.classList.contains(CLASS_NAME_FADE$1)) {4052element.classList.add(CLASS_NAME_SHOW$1);4053}4054
4055var parent = element.parentNode;4056
4057if (parent && parent.nodeName === 'LI') {4058parent = parent.parentNode;4059}4060
4061if (parent && $__default["default"](parent).hasClass(CLASS_NAME_DROPDOWN_MENU)) {4062var dropdownElement = $__default["default"](element).closest(SELECTOR_DROPDOWN)[0];4063
4064if (dropdownElement) {4065var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE));4066$__default["default"](dropdownToggleList).addClass(CLASS_NAME_ACTIVE);4067}4068
4069element.setAttribute('aria-expanded', true);4070}4071
4072if (callback) {4073callback();4074}4075} // Static4076;4077
4078Tab._jQueryInterface = function _jQueryInterface(config) {4079return this.each(function () {4080var $this = $__default["default"](this);4081var data = $this.data(DATA_KEY$1);4082
4083if (!data) {4084data = new Tab(this);4085$this.data(DATA_KEY$1, data);4086}4087
4088if (typeof config === 'string') {4089if (typeof data[config] === 'undefined') {4090throw new TypeError("No method named \"" + config + "\"");4091}4092
4093data[config]();4094}4095});4096};4097
4098_createClass(Tab, null, [{4099key: "VERSION",4100get: function get() {4101return VERSION$1;4102}4103}]);4104
4105return Tab;4106}();4107/**4108* Data API implementation
4109*/
4110
4111
4112$__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {4113event.preventDefault();4114
4115Tab._jQueryInterface.call($__default["default"](this), 'show');4116});4117/**4118* jQuery
4119*/
4120
4121$__default["default"].fn[NAME$1] = Tab._jQueryInterface;4122$__default["default"].fn[NAME$1].Constructor = Tab;4123
4124$__default["default"].fn[NAME$1].noConflict = function () {4125$__default["default"].fn[NAME$1] = JQUERY_NO_CONFLICT$1;4126return Tab._jQueryInterface;4127};4128
4129/**4130* Constants
4131*/
4132
4133var NAME = 'toast';4134var VERSION = '4.6.1';4135var DATA_KEY = 'bs.toast';4136var EVENT_KEY = "." + DATA_KEY;4137var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];4138var CLASS_NAME_FADE = 'fade';4139var CLASS_NAME_HIDE = 'hide';4140var CLASS_NAME_SHOW = 'show';4141var CLASS_NAME_SHOWING = 'showing';4142var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;4143var EVENT_HIDE = "hide" + EVENT_KEY;4144var EVENT_HIDDEN = "hidden" + EVENT_KEY;4145var EVENT_SHOW = "show" + EVENT_KEY;4146var EVENT_SHOWN = "shown" + EVENT_KEY;4147var SELECTOR_DATA_DISMISS = '[data-dismiss="toast"]';4148var Default = {4149animation: true,4150autohide: true,4151delay: 5004152};4153var DefaultType = {4154animation: 'boolean',4155autohide: 'boolean',4156delay: 'number'4157};4158/**4159* Class definition
4160*/
4161
4162var Toast = /*#__PURE__*/function () {4163function Toast(element, config) {4164this._element = element;4165this._config = this._getConfig(config);4166this._timeout = null;4167
4168this._setListeners();4169} // Getters4170
4171
4172var _proto = Toast.prototype;4173
4174// Public4175_proto.show = function show() {4176var _this = this;4177
4178var showEvent = $__default["default"].Event(EVENT_SHOW);4179$__default["default"](this._element).trigger(showEvent);4180
4181if (showEvent.isDefaultPrevented()) {4182return;4183}4184
4185this._clearTimeout();4186
4187if (this._config.animation) {4188this._element.classList.add(CLASS_NAME_FADE);4189}4190
4191var complete = function complete() {4192_this._element.classList.remove(CLASS_NAME_SHOWING);4193
4194_this._element.classList.add(CLASS_NAME_SHOW);4195
4196$__default["default"](_this._element).trigger(EVENT_SHOWN);4197
4198if (_this._config.autohide) {4199_this._timeout = setTimeout(function () {4200_this.hide();4201}, _this._config.delay);4202}4203};4204
4205this._element.classList.remove(CLASS_NAME_HIDE);4206
4207Util.reflow(this._element);4208
4209this._element.classList.add(CLASS_NAME_SHOWING);4210
4211if (this._config.animation) {4212var transitionDuration = Util.getTransitionDurationFromElement(this._element);4213$__default["default"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);4214} else {4215complete();4216}4217};4218
4219_proto.hide = function hide() {4220if (!this._element.classList.contains(CLASS_NAME_SHOW)) {4221return;4222}4223
4224var hideEvent = $__default["default"].Event(EVENT_HIDE);4225$__default["default"](this._element).trigger(hideEvent);4226
4227if (hideEvent.isDefaultPrevented()) {4228return;4229}4230
4231this._close();4232};4233
4234_proto.dispose = function dispose() {4235this._clearTimeout();4236
4237if (this._element.classList.contains(CLASS_NAME_SHOW)) {4238this._element.classList.remove(CLASS_NAME_SHOW);4239}4240
4241$__default["default"](this._element).off(EVENT_CLICK_DISMISS);4242$__default["default"].removeData(this._element, DATA_KEY);4243this._element = null;4244this._config = null;4245} // Private4246;4247
4248_proto._getConfig = function _getConfig(config) {4249config = _extends({}, Default, $__default["default"](this._element).data(), typeof config === 'object' && config ? config : {});4250Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);4251return config;4252};4253
4254_proto._setListeners = function _setListeners() {4255var _this2 = this;4256
4257$__default["default"](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () {4258return _this2.hide();4259});4260};4261
4262_proto._close = function _close() {4263var _this3 = this;4264
4265var complete = function complete() {4266_this3._element.classList.add(CLASS_NAME_HIDE);4267
4268$__default["default"](_this3._element).trigger(EVENT_HIDDEN);4269};4270
4271this._element.classList.remove(CLASS_NAME_SHOW);4272
4273if (this._config.animation) {4274var transitionDuration = Util.getTransitionDurationFromElement(this._element);4275$__default["default"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);4276} else {4277complete();4278}4279};4280
4281_proto._clearTimeout = function _clearTimeout() {4282clearTimeout(this._timeout);4283this._timeout = null;4284} // Static4285;4286
4287Toast._jQueryInterface = function _jQueryInterface(config) {4288return this.each(function () {4289var $element = $__default["default"](this);4290var data = $element.data(DATA_KEY);4291
4292var _config = typeof config === 'object' && config;4293
4294if (!data) {4295data = new Toast(this, _config);4296$element.data(DATA_KEY, data);4297}4298
4299if (typeof config === 'string') {4300if (typeof data[config] === 'undefined') {4301throw new TypeError("No method named \"" + config + "\"");4302}4303
4304data[config](this);4305}4306});4307};4308
4309_createClass(Toast, null, [{4310key: "VERSION",4311get: function get() {4312return VERSION;4313}4314}, {4315key: "DefaultType",4316get: function get() {4317return DefaultType;4318}4319}, {4320key: "Default",4321get: function get() {4322return Default;4323}4324}]);4325
4326return Toast;4327}();4328/**4329* jQuery
4330*/
4331
4332
4333$__default["default"].fn[NAME] = Toast._jQueryInterface;4334$__default["default"].fn[NAME].Constructor = Toast;4335
4336$__default["default"].fn[NAME].noConflict = function () {4337$__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;4338return Toast._jQueryInterface;4339};4340
4341exports.Alert = Alert;4342exports.Button = Button;4343exports.Carousel = Carousel;4344exports.Collapse = Collapse;4345exports.Dropdown = Dropdown;4346exports.Modal = Modal;4347exports.Popover = Popover;4348exports.Scrollspy = ScrollSpy;4349exports.Tab = Tab;4350exports.Toast = Toast;4351exports.Tooltip = Tooltip;4352exports.Util = Util;4353
4354Object.defineProperty(exports, '__esModule', { value: true });4355
4356}));4357//# sourceMappingURL=bootstrap.js.map
4358