vendor: 110 bytes, lines 1-5
1/******/ (() => { // webpackBootstrap 2/******/ "use strict"; 3/******/ var __webpack_modules__ = ({ 4 5/***/ ".
5./beef/app.scss": 6/*!************************!*\ 7 !*** ../beef/app.scss ***! 8 \************************/ 9/***/ (() => { 10 11// extracted by mini-css-extract-plugin 12 13 14/***/ }), 15
16/***/ "../cattle/app.scss": 17/*!**************************!*\ 18 !*** ../cattle/app.scss ***! 19 \**************************/ 20/***/ (() => { 21 22// extracted by mini-css-extract-plugin 23 24 25/***/ }), 26
27/***/ "../dairy/app.scss": 28/*!*************************!*\ 29 !*** ../dairy/app.scss ***! 30 \*************************/ 31/***/ (() => { 32 33// extracted by mini-css-extract-plugin 34 35 36/***/ }), 37
38/***/ "../pig/app.scss": 39/*!***********************!*\ 40 !*** ../pig/app.scss ***! 41 \***********************/ 42/***/ (() => { 43 44// extracted by mini-css-extract-plugin 45 46 47/***/ }), 48
49/***/ "../poultry/app.scss": 50/*!***************************!*\ 51 !*** ../poultry/app.scss ***! 52 \***************************/ 53/***/ (() => { 54 55// extracted by mini-css-extract-plugin 56 57 58/***/ }), 59
60/***/ "./js/app.js": 61/*!*******************!*\ 62 !*** ./js/app.js ***! 63 \*******************/ 64/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { 65 66/* harmony import */ var bootstrap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! bootstrap */ "./node_modules/bootstrap/dist/js/bootstrap.esm.js"); 67 68var myCarousel = document.querySelector('#hero-slideshow'); 69if (myCarousel) { 70 var carousel = new bootstrap__WEBPACK_IMPORTED_MODULE_0__.Carousel(myCarousel); 71} 72var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')); 73var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { 74 return new bootstrap__WEBPACK_IMPORTED_MODULE_0__.Tooltip(tooltipTriggerEl); 75}); 76 77//loop through full width ads 78var fullWidthAds = document.getElementsByClassName("fullWidthAdImg"); 79var position = fullWidthAds.length - 1; 80function fullWidthSwitch() { 81 if (fullWidthAds && fullWidthAds.length > 0) { 82 if (!fullWidthAds[position].classList.contains("d-none")) { 83 fullWidthAds[position].classList.add("d-none"); 84 } 85 if (position == fullWidthAds.length - 1) position = -1; 86 position++; 87 fullWidthAds[position].classList.remove("d-none"); 88 setTimeout(fullWidthSwitch, 9000); 89 } 90} 91document.addEventListener('DOMContentLoaded', function () { 92 // START - COLLAPSE HEADER onScroll 93 94 document.getElementById('content').style.paddingTop = document.getElementsByTagName('header')[0].offsetHeight + 'px'; 95 96 // set variables mainly for scroll, but using for mobile-related stuff too 97 var latestKnownScrollY = 0, 98 rpos = false, 99 topNavAndHeaderHeight = document.getElementById('nav-row').scrollHeight, 100 navSearchHeight = document.getElementById('nav-search').scrollHeight, 101 mobileHeaderHeight = document.getElementById('mobile-banner-outer').scrollHeight, 102 navSearch = document.getElementById('nav-search'), 103 viewableHeight = document.body.clientHeight, 104 viewableWidth = document.body.clientWidth, 105 viewableHeightPc = 100 / viewableHeight, 106 navScrollDiff = 0, 107 screenWidth = 768; 108 var doResize = function doResize() { 109 window.addEventListener('scroll', onScroll, false); 110 viewableWidth = document.body.clientWidth; 111 }; 112 function updateScroll() { 113 var percentScroll = viewableHeightPc * window.scrollY; 114 var pixelsScrolled = viewableHeight * (percentScroll / 100); 115 if (viewableWidth > screenWidth) { 116 navScrollDiff = topNavAndHeaderHeight - Math.round(pixelsScrolled); 117 } else { 118 navScrollDiff = mobileHeaderHeight - Math.round(pixelsScrolled); 119 } 120 if (navScrollDiff > 0) { 121 // only collapse top nav and logo when on larger screens 122 if (viewableWidth > screenWidth) { 123 document.getElementById('nav-outer').style.height = topNavAndHeaderHeight - Math.round(pixelsScrolled) + 'px'; 124 navSearch.style.display = 'block'; // Show search when header is expanded 125 } else { 126 document.getElementById('nav-outer').style.height = mobileHeaderHeight - Math.round(pixelsScrolled) + 'px'; 127 } 128 document.getElementById('nav-search-outer').style.height = navSearchHeight - Math.round(pixelsScrolled) + 'px'; 129 document.getElementById('search-icon-header-ads').style.display = 'none'; 130 } else { 131 if (viewableWidth > screenWidth) { 132 document.getElementById('nav-outer').style.height = '0px'; 133 navSearch.style.display = 'none'; 134 } else { 135 document.getElementById('nav-outer').style.height = '0px'; 136 } 137 document.getElementById('nav-search-outer').style.height = '0px'; 138 document.getElementById('search-icon-header-ads').style.display = 'block'; 139 } 140 document.getElementById('content').style.paddingTop = document.getElementsByTagName('header')[0].scrollHeight + 'px'; 141 rpos = false; 142 } 143 function onScroll() { 144 latestKnownScrollY = window.scrollY; 145 requestPos(); 146 } 147 function requestPos() { 148 if (!rpos) { 149 requestAnimationFrame(updateScroll); 150 } 151 rpos = true; 152 } 153 154 // only for desktop 155 window.addEventListener('resize', doResize, false); 156 doResize(); 157 158 // MOBILE MENU - 159 160 var mobileMenu = document.querySelector('#menu-row'), 161 mobileMenuBtn = document.querySelector('#mobile-show-menu'); 162 if (mobileMenu && viewableWidth <= screenWidth) { 163 mobileMenuBtn.addEventListener('click', function () { 164 var menuStyle = mobileMenu.style.display;
165 var overlay = document.getElementById("overlay"); 166 overlay.addEventListener('click', function () { 167 overlay.style.display = 'none'; 168 }); 169 if (menuStyle == 'block') { 170 mobileMenu.style.display = 'none'; 171 overlay.style.display = "none"; 172 } else { 173 mobileMenu.setAttribute('style', 'display:block !important'); 174 overlay.style.display = "block"; 175 } 176 }); 177 } 178 179 // MOBILE SEARCH - Wrapped in IIFE to avoid conflicts 180 (function () { 181 var mobileSearchContainer = document.querySelector('#mobile-search-container'); 182 var mobileSearchBtn = document.querySelector('#mobile-show-search'); 183 var searchVisible = false; 184 if (mobileSearchContainer && mobileSearchBtn) { 185 // Hide search container initially 186 mobileSearchContainer.style.display = 'none'; 187 mobileSearchBtn.addEventListener('click', function (e) { 188 e.preventDefault(); 189 if (searchVisible) { 190 mobileSearchContainer.style.display = 'none'; 191 searchVisible = false; 192 } else { 193 mobileSearchContainer.style.display = 'block'; 194 searchVisible = true; 195 196 // Focus on search input after display 197 setTimeout(function () { 198 var searchInput = mobileSearchContainer.querySelector('.gagm-search-input'); 199 if (searchInput) { 200 searchInput.focus(); 201 } 202 }, 100); 203 } 204 }); 205 206 // Close search when clicking outside 207 document.addEventListener('click', function (e) { 208 if (searchVisible && !mobileSearchContainer.contains(e.target) && !mobileSearchBtn.contains(e.target)) { 209 mobileSearchContainer.style.display = 'none'; 210 searchVisible = false; 211 } 212 }); 213 } 214 })(); 215 216 // HEADER ADS SEARCH ICON - scroll to top and focus on search 217 var headerAdsSearchIcon = document.querySelector('#search-icon-header-ads'); 218 if (headerAdsSearchIcon) { 219 headerAdsSearchIcon.addEventListener('click', function (e) { 220 e.preventDefault(); 221 222 // Scroll to top of page 223 window.scrollTo({ 224 top: 0, 225 behavior: 'smooth' 226 }); 227 228 // Wait for scroll to complete, then focus on search input 229 setTimeout(function () { 230 var searchInput = document.querySelector('.gagm-search-input'); 231 if (searchInput) { 232 searchInput.focus(); 233 searchInput.select(); // Also select any existing text 234 } 235 }, 800); // Wait for smooth scroll to complete 236 }); 237 } 238}); 239fullWidthSwitch(); 240 241/***/ }), 242
vendor: 9,557 bytes, lines 243-462
243/***/ "./node_modules/@popperjs/core/lib/createPopper.js": 244/*!*********************************************************!*\ 245 !*** ./node_modules/@popperjs/core/lib/createPopper.js ***! 246 \*********************************************************/ 247/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 248 249/* harmony export */ __webpack_require__.d(__webpack_exports__, { 250/* harmony export */ createPopper: () => (/* binding */ createPopper), 251/* harmony export */ popperGenerator: () => (/* binding */ popperGenerator) 252/* harmony export */ }); 253/* harmony import */ var _dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom-utils/getCompositeRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js"); 254/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom-utils/getLayoutRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js"); 255/* harmony import */ var _dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dom-utils/listScrollParents.js */ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js"); 256/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js"); 257/* harmony import */ var _utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/orderModifiers.js */ "./node_modules/@popperjs/core/lib/utils/orderModifiers.js"); 258/* harmony import */ var _utils_debounce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/debounce.js */ "./node_modules/@popperjs/core/lib/utils/debounce.js"); 259/* harmony import */ var _utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/mergeByName.js */ "./node_modules/@popperjs/core/lib/utils/mergeByName.js"); 260/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./dom-utils/instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 261 262 263 264 265 266 267 268 269 270var DEFAULT_OPTIONS = { 271 placement: 'bottom', 272 modifiers: [], 273 strategy: 'absolute' 274}; 275 276function areValidElements() { 277 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 278 args[_key] = arguments[_key]; 279 } 280 281 return !args.some(function (element) { 282 return !(element && typeof element.getBoundingClientRect === 'function'); 283 }); 284} 285 286function popperGenerator(generatorOptions) { 287 if (generatorOptions === void 0) { 288 generatorOptions = {}; 289 } 290 291 var _generatorOptions = generatorOptions, 292 _generatorOptions$def = _generatorOptions.defaultModifiers, 293 defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, 294 _generatorOptions$def2 = _generatorOptions.defaultOptions, 295 defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; 296 return function createPopper(reference, popper, options) { 297 if (options === void 0) { 298 options = defaultOptions; 299 } 300 301 var state = { 302 placement: 'bottom', 303 orderedModifiers: [], 304 options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), 305 modifiersData: {}, 306 elements: { 307 reference: reference, 308 popper: popper 309 }, 310 attributes: {}, 311 styles: {} 312 }; 313 var effectCleanupFns = []; 314 var isDestroyed = false; 315 var instance = { 316 state: state, 317 setOptions: function setOptions(setOptionsAction) { 318 var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction; 319 cleanupModifierEffects(); 320 state.options = Object.assign({}, defaultOptions, state.options, options); 321 state.scrollParents = { 322 reference: (0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_7__.isElement)(reference) ? (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_2__["default"])(reference) : reference.contextElement ? (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_2__["default"])(reference.contextElement) : [], 323 popper: (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_2__["default"])(popper) 324 }; // Orders the modifiers based on their dependencies and `phase` 325 // properties 326 327 var orderedModifiers = (0,_utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_4__["default"])((0,_utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_6__["default"])([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers 328 329 state.orderedModifiers = orderedModifiers.filter(function (m) { 330 return m.enabled; 331 }); 332 runModifierEffects(); 333 return instance.update(); 334 }, 335 // Sync update â it will always be executed, even if not necessary. This 336 // is useful for low frequency updates where sync behavior simplifies the 337 // logic. 338 // For high frequency updates (e.g. `resize` and `scroll` events), always 339 // prefer the async Popper#update method 340 forceUpdate: function forceUpdate() { 341 if (isDestroyed) { 342 return; 343 } 344 345 var _state$elements = state.elements, 346 reference = _state$elements.reference, 347 popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements 348 // anymore 349 350 if (!areValidElements(reference, popper)) { 351 return; 352 } // Store the reference and popper rects to be read by modifiers 353 354 355 state.rects = { 356 reference: (0,_dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])(reference, (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_3__["default"])(popper), state.options.strategy === 'fixed'), 357 popper: (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_1__["default"])(popper) 358 }; // Modifiers have the ability to reset the current update cycle. The 359 // most common use case for this is the `flip` modifier changing the 360 // placement, which then needs to re-run all the modifiers, because the 361 // logic was previously ran for the previous placement and is therefore 362 // stale/incorrect 363 364 state.reset = false; 365 state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier 366 // is filled with the initial data specified by the modifier. This means 367 // it doesn't persist and is fresh on each update. 368 // To ensure persistent data, use `${name}#persistent` 369 370 state.orderedModifiers.forEach(function (modifier) { 371 return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); 372 }); 373 374 for (var index = 0; index < state.orderedModifiers.length; index++) { 375 if (state.reset === true) { 376 state.reset = false; 377 index = -1; 378 continue; 379 } 380 381 var _state$orderedModifie = state.orderedModifiers[index], 382 fn = _state$orderedModifie.fn, 383 _state$orderedModifie2 = _state$orderedModifie.options, 384 _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, 385 name = _state$orderedModifie.name; 386 387 if (typeof fn === 'function') { 388 state = fn({ 389 state: state, 390 options: _options, 391 name: name, 392 instance: instance 393 }) || state; 394 } 395 } 396 }, 397 // Async and optimistically optimized update â it will not be executed if 398 // not necessary (debounced to run at most once-per-tick) 399 update: (0,_utils_debounce_js__WEBPACK_IMPORTED_MODULE_5__["default"])(function () { 400 return new Promise(function (resolve) { 401 instance.forceUpdate(); 402 resolve(state); 403 }); 404 }), 405 destroy: function destroy() { 406 cleanupModifierEffects(); 407 isDestroyed = true; 408 } 409 }; 410 411 if (!areValidElements(reference, popper)) { 412 return instance; 413 } 414 415 instance.setOptions(options).then(function (state) { 416 if (!isDestroyed && options.onFirstUpdate) { 417 options.onFirstUpdate(state); 418 } 419 }); // Modifiers have the ability to execute arbitrary code before the first 420 // update cycle runs. They will be executed in the same order as the update 421 // cycle. This is useful when a modifier adds some persistent data that 422 // other modifiers need to use, but the modifier is run after the dependent 423 // one. 424 425 function runModifierEffects() { 426 state.orderedModifiers.forEach(function (_ref) { 427 var name = _ref.name, 428 _ref$options = _ref.options, 429 options = _ref$options === void 0 ? {} : _ref$options, 430 effect = _ref.effect; 431 432 if (typeof effect === 'function') { 433 var cleanupFn = effect({ 434 state: state, 435 name: name, 436 instance: instance, 437 options: options 438 }); 439 440 var noopFn = function noopFn() {}; 441 442 effectCleanupFns.push(cleanupFn || noopFn); 443 } 444 }); 445 } 446 447 function cleanupModifierEffects() { 448 effectCleanupFns.forEach(function (fn) { 449 return fn(); 450 }); 451 effectCleanupFns = []; 452 } 453 454 return instance; 455 }; 456} 457var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules 458 459 460 461/***/ }), 462
vendor: 1,360 bytes, lines 463-498
463/***/ "./node_modules/@popperjs/core/lib/dom-utils/contains.js": 464/*!***************************************************************!*\ 465 !*** ./node_modules/@popperjs/core/lib/dom-utils/contains.js ***! 466 \***************************************************************/ 467/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 468 469/* harmony export */ __webpack_require__.d(__webpack_exports__, { 470/* harmony export */ "default": () => (/* binding */ contains) 471/* harmony export */ }); 472/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 473 474function contains(parent, child) { 475 var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method 476 477 if (parent.contains(child)) { 478 return true; 479 } // then fallback to custom implementation with Shadow DOM support 480 else if (rootNode && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isShadowRoot)(rootNode)) { 481 var next = child; 482 483 do { 484 if (next && parent.isSameNode(next)) { 485 return true; 486 } // $FlowFixMe[prop-missing]: need a better way to handle this... 487 488 489 next = next.parentNode || next.host; 490 } while (next); 491 } // Give up, the result is false 492 493 494 return false; 495} 496 497/***/ }), 498
vendor: 2,748 bytes, lines 499-555
499/***/ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js": 500/*!****************************************************************************!*\ 501 !*** ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js ***! 502 \****************************************************************************/ 503/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 504 505/* harmony export */ __webpack_require__.d(__webpack_exports__, { 506/* harmony export */ "default": () => (/* binding */ getBoundingClientRect) 507/* harmony export */ }); 508/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 509/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 510/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 511/* harmony import */ var _isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isLayoutViewport.js */ "./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js"); 512 513 514 515 516function getBoundingClientRect(element, includeScale, isFixedStrategy) { 517 if (includeScale === void 0) { 518 includeScale = false; 519 } 520 521 if (isFixedStrategy === void 0) { 522 isFixedStrategy = false; 523 } 524 525 var clientRect = element.getBoundingClientRect(); 526 var scaleX = 1; 527 var scaleY = 1; 528 529 if (includeScale && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) { 530 scaleX = element.offsetWidth > 0 ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_1__.round)(clientRect.width) / element.offsetWidth || 1 : 1; 531 scaleY = element.offsetHeight > 0 ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_1__.round)(clientRect.height) / element.offsetHeight || 1 : 1; 532 } 533 534 var _ref = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element) : window, 535 visualViewport = _ref.visualViewport; 536 537 var addVisualOffsets = !(0,_isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_3__["default"])() && isFixedStrategy; 538 var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; 539 var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; 540 var width = clientRect.width / scaleX; 541 var height = clientRect.height / scaleY; 542 return { 543 width: width, 544 height: height, 545 top: y, 546 right: x + width, 547 bottom: y + height, 548 left: x, 549 x: x, 550 y: y 551 }; 552} 553 554/***/ }), 555
vendor: 6,859 bytes, lines 556-651
556/***/ "./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js": 557/*!**********************************************************************!*\ 558 !*** ./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js ***! 559 \**********************************************************************/ 560/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 561 562/* harmony export */ __webpack_require__.d(__webpack_exports__, { 563/* harmony export */ "default": () => (/* binding */ getClippingRect) 564/* harmony export */ }); 565/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 566/* harmony import */ var _getViewportRect_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getViewportRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js"); 567/* harmony import */ var _getDocumentRect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getDocumentRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js"); 568/* harmony import */ var _listScrollParents_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./listScrollParents.js */ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js"); 569/* harmony import */ var _getOffsetParent_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js"); 570/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 571/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js"); 572/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 573/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js"); 574/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js"); 575/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./contains.js */ "./node_modules/@popperjs/core/lib/dom-utils/contains.js"); 576/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 577/* harmony import */ var _utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/rectToClientRect.js */ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js"); 578/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594function getInnerBoundingClientRect(element, strategy) { 595 var rect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_8__["default"])(element, false, strategy === 'fixed'); 596 rect.top = rect.top + element.clientTop; 597 rect.left = rect.left + element.clientLeft; 598 rect.bottom = rect.top + element.clientHeight; 599 rect.right = rect.left + element.clientWidth; 600 rect.width = element.clientWidth; 601 rect.height = element.clientHeight; 602 rect.x = rect.left; 603 rect.y = rect.top; 604 return rect; 605} 606 607function getClientRectFromMixedType(element, clippingParent, strategy) { 608 return clippingParent === _enums_js__WEBPACK_IMPORTED_MODULE_0__.viewport ? (0,_utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_12__["default"])((0,_getViewportRect_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element, strategy)) : (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_7__.isElement)(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : (0,_utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_12__["default"])((0,_getDocumentRect_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__["default"])(element))); 609} // A "clipping parent" is an overflowable container with the characteristic of 610// clipping (or hiding) overflowing elements with a position different from 611// `initial` 612 613 614function getClippingParents(element) { 615 var clippingParents = (0,_listScrollParents_js__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_9__["default"])(element)); 616 var canEscapeClipping = ['absolute', 'fixed'].indexOf((0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_6__["default"])(element).position) >= 0; 617 var clipperElement = canEscapeClipping && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_7__.isHTMLElement)(element) ? (0,_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_4__["default"])(element) : element; 618 619 if (!(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_7__.isElement)(clipperElement)) { 620 return []; 621 } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414 622 623 624 return clippingParents.filter(function (clippingParent) { 625 return (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_7__.isElement)(clippingParent) && (0,_contains_js__WEBPACK_IMPORTED_MODULE_10__["default"])(clippingParent, clipperElement) && (0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_11__["default"])(clippingParent) !== 'body'; 626 }); 627} // Gets the maximum area that the element is visible in due to any number of 628// clipping parents 629 630 631function getClippingRect(element, boundary, rootBoundary, strategy) { 632 var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); 633 var clippingParents = [].concat(mainClippingParents, [rootBoundary]); 634 var firstClippingParent = clippingParents[0]; 635 var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { 636 var rect = getClientRectFromMixedType(element, clippingParent, strategy); 637 accRect.top = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.top, accRect.top); 638 accRect.right = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.right, accRect.right); 639 accRect.bottom = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.bottom, accRect.bottom); 640 accRect.left = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.left, accRect.left); 641 return accRect; 642 }, getClientRectFromMixedType(element, firstClippingParent, strategy)); 643 clippingRect.width = clippingRect.right - clippingRect.left; 644 clippingRect.height = clippingRect.bottom - clippingRect.top; 645 clippingRect.x = clippingRect.left; 646 clippingRect.y = clippingRect.top; 647 return clippingRect; 648} 649 650/***/ }), 651
vendor: 4,294 bytes, lines 652-729
652/***/ "./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js": 653/*!***********************************************************************!*\ 654 !*** ./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js ***! 655 \***********************************************************************/ 656/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 657 658/* harmony export */ __webpack_require__.d(__webpack_exports__, { 659/* harmony export */ "default": () => (/* binding */ getCompositeRect) 660/* harmony export */ }); 661/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js"); 662/* harmony import */ var _getNodeScroll_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getNodeScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js"); 663/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 664/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 665/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js"); 666/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 667/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js"); 668/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 669 670 671 672 673 674 675 676 677 678function isElementScaled(element) { 679 var rect = element.getBoundingClientRect(); 680 var scaleX = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_7__.round)(rect.width) / element.offsetWidth || 1; 681 var scaleY = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_7__.round)(rect.height) / element.offsetHeight || 1; 682 return scaleX !== 1 || scaleY !== 1; 683} // Returns the composite rect of an element relative to its offsetParent. 684// Composite means it takes into account transforms as well as layout. 685 686 687function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { 688 if (isFixed === void 0) { 689 isFixed = false; 690 } 691 692 var isOffsetParentAnElement = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_3__.isHTMLElement)(offsetParent); 693 var offsetParentIsScaled = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_3__.isHTMLElement)(offsetParent) && isElementScaled(offsetParent); 694 var documentElement = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__["default"])(offsetParent); 695 var rect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])(elementOrVirtualElement, offsetParentIsScaled, isFixed); 696 var scroll = { 697 scrollLeft: 0, 698 scrollTop: 0 699 }; 700 var offsets = { 701 x: 0, 702 y: 0 703 }; 704 705 if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { 706 if ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_2__["default"])(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078 707 (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_6__["default"])(documentElement)) { 708 scroll = (0,_getNodeScroll_js__WEBPACK_IMPORTED_MODULE_1__["default"])(offsetParent); 709 } 710 711 if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_3__.isHTMLElement)(offsetParent)) { 712 offsets = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])(offsetParent, true); 713 offsets.x += offsetParent.clientLeft; 714 offsets.y += offsetParent.clientTop; 715 } else if (documentElement) { 716 offsets.x = (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_4__["default"])(documentElement); 717 } 718 } 719 720 return { 721 x: rect.left + scroll.scrollLeft - offsets.x, 722 y: rect.top + scroll.scrollTop - offsets.y, 723 width: rect.width, 724 height: rect.height 725 }; 726} 727 728/***/ }), 729
vendor: 876 bytes, lines 730-746
730/***/ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js": 731/*!***********************************************************************!*\ 732 !*** ./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js ***! 733 \***********************************************************************/ 734/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 735 736/* harmony export */ __webpack_require__.d(__webpack_exports__, { 737/* harmony export */ "default": () => (/* binding */ getComputedStyle) 738/* harmony export */ }); 739/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 740 741function getComputedStyle(element) { 742 return (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element).getComputedStyle(element); 743} 744 745/***/ }), 746
vendor: 1,047 bytes, lines 747-765
747/***/ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js": 748/*!*************************************************************************!*\ 749 !*** ./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js ***! 750 \*************************************************************************/ 751/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 752 753/* harmony export */ __webpack_require__.d(__webpack_exports__, { 754/* harmony export */ "default": () => (/* binding */ getDocumentElement) 755/* harmony export */ }); 756/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 757 758function getDocumentElement(element) { 759 // $FlowFixMe[incompatible-return]: assume body is always available 760 return (((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? element.ownerDocument : // $FlowFixMe[prop-missing] 761 element.document) || window.document).documentElement; 762} 763 764/***/ }), 765
vendor: 2,800 bytes, lines 766-811
766/***/ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js": 767/*!**********************************************************************!*\ 768 !*** ./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js ***! 769 \**********************************************************************/ 770/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 771 772/* harmony export */ __webpack_require__.d(__webpack_exports__, { 773/* harmony export */ "default": () => (/* binding */ getDocumentRect) 774/* harmony export */ }); 775/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 776/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js"); 777/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js"); 778/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getWindowScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js"); 779/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 780 781 782 783 784 // Gets the entire size of the scrollable document area, even extending outside 785// of the `<html>` and `<body>` rect bounds if horizontally scrollable 786 787function getDocumentRect(element) { 788 var _element$ownerDocumen; 789 790 var html = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); 791 var winScroll = (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element); 792 var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; 793 var width = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_4__.max)(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); 794 var height = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_4__.max)(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); 795 var x = -winScroll.scrollLeft + (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element); 796 var y = -winScroll.scrollTop; 797 798 if ((0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(body || html).direction === 'rtl') { 799 x += (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_4__.max)(html.clientWidth, body ? body.clientWidth : 0) - width; 800 } 801 802 return { 803 width: width, 804 height: height, 805 x: x, 806 y: y 807 }; 808} 809 810/***/ }), 811
vendor: 708 bytes, lines 812-829
812/***/ "./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js": 813/*!***************************************************************************!*\ 814 !*** ./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js ***! 815 \***************************************************************************/ 816/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 817 818/* harmony export */ __webpack_require__.d(__webpack_exports__, { 819/* harmony export */ "default": () => (/* binding */ getHTMLElementScroll) 820/* harmony export */ }); 821function getHTMLElementScroll(element) { 822 return { 823 scrollLeft: element.scrollLeft, 824 scrollTop: element.scrollTop 825 }; 826} 827 828/***/ }), 829
vendor: 1,492 bytes, lines 830-867
830/***/ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js": 831/*!********************************************************************!*\ 832 !*** ./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js ***! 833 \********************************************************************/ 834/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 835 836/* harmony export */ __webpack_require__.d(__webpack_exports__, { 837/* harmony export */ "default": () => (/* binding */ getLayoutRect) 838/* harmony export */ }); 839/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js"); 840 // Returns the layout rect of an element relative to its offsetParent. Layout 841// means it doesn't take into account transforms. 842 843function getLayoutRect(element) { 844 var clientRect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); // Use the clientRect sizes if it's not been transformed. 845 // Fixes https://github.com/popperjs/popper-core/issues/1223 846 847 var width = element.offsetWidth; 848 var height = element.offsetHeight; 849 850 if (Math.abs(clientRect.width - width) <= 1) { 851 width = clientRect.width; 852 } 853 854 if (Math.abs(clientRect.height - height) <= 1) { 855 height = clientRect.height; 856 } 857 858 return { 859 x: element.offsetLeft, 860 y: element.offsetTop, 861 width: width, 862 height: height 863 }; 864} 865 866/***/ }), 867
vendor: 635 bytes, lines 868-882
868/***/ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js": 869/*!******************************************************************!*\ 870 !*** ./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js ***! 871 \******************************************************************/ 872/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 873 874/* harmony export */ __webpack_require__.d(__webpack_exports__, { 875/* harmony export */ "default": () => (/* binding */ getNodeName) 876/* harmony export */ }); 877function getNodeName(element) { 878 return element ? (element.nodeName || '').toLowerCase() : null; 879} 880 881/***/ }), 882
vendor: 1,666 bytes, lines 883-909
883/***/ "./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js": 884/*!********************************************************************!*\ 885 !*** ./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js ***! 886 \********************************************************************/ 887/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 888 889/* harmony export */ __webpack_require__.d(__webpack_exports__, { 890/* harmony export */ "default": () => (/* binding */ getNodeScroll) 891/* harmony export */ }); 892/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindowScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js"); 893/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 894/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 895/* harmony import */ var _getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getHTMLElementScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js"); 896 897 898 899 900function getNodeScroll(node) { 901 if (node === (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(node) || !(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(node)) { 902 return (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node); 903 } else { 904 return (0,_getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__["default"])(node); 905 } 906} 907 908/***/ }), 909
vendor: 4,914 bytes, lines 910-997
910/***/ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js": 911/*!**********************************************************************!*\ 912 !*** ./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js ***! 913 \**********************************************************************/ 914/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 915 916/* harmony export */ __webpack_require__.d(__webpack_exports__, { 917/* harmony export */ "default": () => (/* binding */ getOffsetParent) 918/* harmony export */ }); 919/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 920/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 921/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js"); 922/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 923/* harmony import */ var _isTableElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isTableElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js"); 924/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js"); 925/* harmony import */ var _utils_userAgent_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/userAgent.js */ "./node_modules/@popperjs/core/lib/utils/userAgent.js"); 926 927 928 929 930 931 932 933 934function getTrueOffsetParent(element) { 935 if (!(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_3__.isHTMLElement)(element) || // https://github.com/popperjs/popper-core/issues/837 936 (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element).position === 'fixed') { 937 return null; 938 } 939 940 return element.offsetParent; 941} // `.offsetParent` reports `null` for fixed elements, while absolute elements 942// return the containing block 943 944 945function getContainingBlock(element) { 946 var isFirefox = /firefox/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_6__["default"])()); 947 var isIE = /Trident/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_6__["default"])()); 948 949 if (isIE && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_3__.isHTMLElement)(element)) { 950 // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport 951 var elementCss = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element); 952 953 if (elementCss.position === 'fixed') { 954 return null; 955 } 956 } 957 958 var currentNode = (0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_5__["default"])(element); 959 960 if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_3__.isShadowRoot)(currentNode)) { 961 currentNode = currentNode.host; 962 } 963 964 while ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_3__.isHTMLElement)(currentNode) && ['html', 'body'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(currentNode)) < 0) { 965 var css = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_2__["default"])(currentNode); // This is non-exhaustive but covers the most common CSS properties that 966 // create a containing block. 967 // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block 968 969 if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') { 970 return currentNode; 971 } else { 972 currentNode = currentNode.parentNode; 973 } 974 } 975 976 return null; 977} // Gets the closest ancestor positioned element. Handles some edge cases, 978// such as table ancestors and cross browser bugs. 979 980 981function getOffsetParent(element) { 982 var window = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); 983 var offsetParent = getTrueOffsetParent(element); 984 985 while (offsetParent && (0,_isTableElement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(offsetParent) && (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_2__["default"])(offsetParent).position === 'static') { 986 offsetParent = getTrueOffsetParent(offsetParent); 987 } 988 989 if (offsetParent && ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(offsetParent) === 'html' || (0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(offsetParent) === 'body' && (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_2__["default"])(offsetParent).position === 'static')) { 990 return window; 991 } 992 993 return offsetParent || getContainingBlock(element) || window; 994} 995 996/***/ }), 997
vendor: 1,842 bytes, lines 998-1031
998/***/ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js": 999/*!********************************************************************!*\ 1000 !*** ./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js ***! 1001 \********************************************************************/ 1002/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1003 1004/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1005/* harmony export */ "default": () => (/* binding */ getParentNode) 1006/* harmony export */ }); 1007/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 1008/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 1009/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 1010 1011 1012 1013function getParentNode(element) { 1014 if ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element) === 'html') { 1015 return element; 1016 } 1017 1018 return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle 1019 // $FlowFixMe[incompatible-return] 1020 // $FlowFixMe[prop-missing] 1021 element.assignedSlot || // step into the shadow DOM of the parent of a slotted node 1022 element.parentNode || ( // DOM Element detected 1023 (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_2__.isShadowRoot)(element) ? element.host : null) || // ShadowRoot detected 1024 // $FlowFixMe[incompatible-call]: HTMLElement is a Node 1025 (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element) // fallback 1026 1027 ); 1028} 1029 1030/***/ }), 1031
vendor: 1,820 bytes, lines 1032-1063
1032/***/ "./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js": 1033/*!**********************************************************************!*\ 1034 !*** ./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js ***! 1035 \**********************************************************************/ 1036/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1037 1038/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1039/* harmony export */ "default": () => (/* binding */ getScrollParent) 1040/* harmony export */ }); 1041/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js"); 1042/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js"); 1043/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 1044/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 1045 1046 1047 1048 1049function getScrollParent(node) { 1050 if (['html', 'body', '#document'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_2__["default"])(node)) >= 0) { 1051 // $FlowFixMe[incompatible-return]: assume body is always available 1052 return node.ownerDocument.body; 1053 } 1054 1055 if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_3__.isHTMLElement)(node) && (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_1__["default"])(node)) { 1056 return node; 1057 } 1058 1059 return getScrollParent((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node)); 1060} 1061 1062/***/ }), 1063
vendor: 2,176 bytes, lines 1064-1110
1064/***/ "./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js": 1065/*!**********************************************************************!*\ 1066 !*** ./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js ***! 1067 \**********************************************************************/ 1068/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1069 1070/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1071/* harmony export */ "default": () => (/* binding */ getViewportRect) 1072/* harmony export */ }); 1073/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 1074/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 1075/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js"); 1076/* harmony import */ var _isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isLayoutViewport.js */ "./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js"); 1077 1078 1079 1080 1081function getViewportRect(element, strategy) { 1082 var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); 1083 var html = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element); 1084 var visualViewport = win.visualViewport; 1085 var width = html.clientWidth; 1086 var height = html.clientHeight; 1087 var x = 0; 1088 var y = 0; 1089 1090 if (visualViewport) { 1091 width = visualViewport.width; 1092 height = visualViewport.height; 1093 var layoutViewport = (0,_isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); 1094 1095 if (layoutViewport || !layoutViewport && strategy === 'fixed') { 1096 x = visualViewport.offsetLeft; 1097 y = visualViewport.offsetTop; 1098 } 1099 } 1100 1101 return { 1102 width: width, 1103 height: height, 1104 x: x + (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element), 1105 y: y 1106 }; 1107} 1108 1109/***/ }), 1110
vendor: 784 bytes, lines 1111-1134
1111/***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js": 1112/*!****************************************************************!*\ 1113 !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindow.js ***! 1114 \****************************************************************/ 1115/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1116 1117/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1118/* harmony export */ "default": () => (/* binding */ getWindow) 1119/* harmony export */ }); 1120function getWindow(node) { 1121 if (node == null) { 1122 return window; 1123 } 1124 1125 if (node.toString() !== '[object Window]') { 1126 var ownerDocument = node.ownerDocument; 1127 return ownerDocument ? ownerDocument.defaultView || window : window; 1128 } 1129 1130 return node; 1131} 1132 1133/***/ }), 1134
vendor: 981 bytes, lines 1135-1157
1135/***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js": 1136/*!**********************************************************************!*\ 1137 !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js ***! 1138 \**********************************************************************/ 1139/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1140 1141/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1142/* harmony export */ "default": () => (/* binding */ getWindowScroll) 1143/* harmony export */ }); 1144/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 1145 1146function getWindowScroll(node) { 1147 var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node); 1148 var scrollLeft = win.pageXOffset; 1149 var scrollTop = win.pageYOffset; 1150 return { 1151 scrollLeft: scrollLeft, 1152 scrollTop: scrollTop 1153 }; 1154} 1155 1156/***/ }), 1157
vendor: 1,855 bytes, lines 1158-1185
1158/***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js": 1159/*!**************************************************************************!*\ 1160 !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js ***! 1161 \**************************************************************************/ 1162/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1163 1164/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1165/* harmony export */ "default": () => (/* binding */ getWindowScrollBarX) 1166/* harmony export */ }); 1167/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js"); 1168/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 1169/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js"); 1170 1171 1172 1173function getWindowScrollBarX(element) { 1174 // If <html> has a CSS width greater than the viewport, then this will be 1175 // incorrect for RTL. 1176 // Popper 1 is broken in this case and never had a bug report so let's assume 1177 // it's not an issue. I don't think anyone ever specifies width on <html> 1178 // anyway. 1179 // Browsers where the left scrollbar doesn't cause an issue report `0` for 1180 // this (e.g. Edge 2019, IE11, Safari) 1181 return (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element)).left + (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element).scrollLeft; 1182} 1183 1184/***/ }), 1185
vendor: 1,527 bytes, lines 1186-1223
1186/***/ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js": 1187/*!*****************************************************************!*\ 1188 !*** ./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js ***! 1189 \*****************************************************************/ 1190/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1191 1192/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1193/* harmony export */ isElement: () => (/* binding */ isElement), 1194/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), 1195/* harmony export */ isShadowRoot: () => (/* binding */ isShadowRoot) 1196/* harmony export */ }); 1197/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 1198 1199 1200function isElement(node) { 1201 var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).Element; 1202 return node instanceof OwnElement || node instanceof Element; 1203} 1204 1205function isHTMLElement(node) { 1206 var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).HTMLElement; 1207 return node instanceof OwnElement || node instanceof HTMLElement; 1208} 1209 1210function isShadowRoot(node) { 1211 // IE 11 has no ShadowRoot 1212 if (typeof ShadowRoot === 'undefined') { 1213 return false; 1214 } 1215 1216 var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).ShadowRoot; 1217 return node instanceof OwnElement || node instanceof ShadowRoot; 1218} 1219 1220 1221 1222/***/ }), 1223
vendor: 891 bytes, lines 1224-1240
1224/***/ "./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js": 1225/*!***********************************************************************!*\ 1226 !*** ./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js ***! 1227 \***********************************************************************/ 1228/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1229 1230/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1231/* harmony export */ "default": () => (/* binding */ isLayoutViewport) 1232/* harmony export */ }); 1233/* harmony import */ var _utils_userAgent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/userAgent.js */ "./node_modules/@popperjs/core/lib/utils/userAgent.js"); 1234 1235function isLayoutViewport() { 1236 return !/^((?!chrome|android).)*safari/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_0__["default"])()); 1237} 1238 1239/***/ }), 1240
vendor: 1,165 bytes, lines 1241-1263
1241/***/ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js": 1242/*!*********************************************************************!*\ 1243 !*** ./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js ***! 1244 \*********************************************************************/ 1245/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1246 1247/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1248/* harmony export */ "default": () => (/* binding */ isScrollParent) 1249/* harmony export */ }); 1250/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js"); 1251 1252function isScrollParent(element) { 1253 // Firefox wants us to check `-x` and `-y` variations as well 1254 var _getComputedStyle = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element), 1255 overflow = _getComputedStyle.overflow, 1256 overflowX = _getComputedStyle.overflowX, 1257 overflowY = _getComputedStyle.overflowY; 1258 1259 return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); 1260} 1261 1262/***/ }), 1263
vendor: 882 bytes, lines 1264-1280
1264/***/ "./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js": 1265/*!*********************************************************************!*\ 1266 !*** ./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js ***! 1267 \*********************************************************************/ 1268/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1269 1270/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1271/* harmony export */ "default": () => (/* binding */ isTableElement) 1272/* harmony export */ }); 1273/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 1274 1275function isTableElement(element) { 1276 return ['table', 'td', 'th'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element)) >= 0; 1277} 1278 1279/***/ }), 1280
vendor: 2,471 bytes, lines 1281-1322
1281/***/ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js": 1282/*!************************************************************************!*\ 1283 !*** ./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js ***! 1284 \************************************************************************/ 1285/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1286 1287/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1288/* harmony export */ "default": () => (/* binding */ listScrollParents) 1289/* harmony export */ }); 1290/* harmony import */ var _getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js"); 1291/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js"); 1292/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 1293/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js"); 1294 1295 1296 1297 1298/* 1299given a DOM element, return the list of all scroll parents, up the list of ancesors 1300until we get to the top window object. This list is what we attach scroll listeners 1301to, because if any of these parent elements scroll, we'll need to re-calculate the 1302reference element's position. 1303*/ 1304 1305function listScrollParents(element, list) { 1306 var _element$ownerDocumen; 1307 1308 if (list === void 0) { 1309 list = []; 1310 } 1311 1312 var scrollParent = (0,_getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); 1313 var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); 1314 var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_2__["default"])(scrollParent); 1315 var target = isBody ? [win].concat(win.visualViewport || [], (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_3__["default"])(scrollParent) ? scrollParent : []) : scrollParent; 1316 var updatedList = list.concat(target); 1317 return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here 1318 updatedList.concat(listScrollParents((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_1__["default"])(target))); 1319} 1320 1321/***/ }), 1322
vendor: 3,140 bytes, lines 1323-1388
1323/***/ "./node_modules/@popperjs/core/lib/enums.js": 1324/*!**************************************************!*\ 1325 !*** ./node_modules/@popperjs/core/lib/enums.js ***! 1326 \**************************************************/ 1327/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1328 1329/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1330/* harmony export */ afterMain: () => (/* binding */ afterMain), 1331/* harmony export */ afterRead: () => (/* binding */ afterRead), 1332/* harmony export */ afterWrite: () => (/* binding */ afterWrite), 1333/* harmony export */ auto: () => (/* binding */ auto), 1334/* harmony export */ basePlacements: () => (/* binding */ basePlacements), 1335/* harmony export */ beforeMain: () => (/* binding */ beforeMain), 1336/* harmony export */ beforeRead: () => (/* binding */ beforeRead), 1337/* harmony export */ beforeWrite: () => (/* binding */ beforeWrite), 1338/* harmony export */ bottom: () => (/* binding */ bottom), 1339/* harmony export */ clippingParents: () => (/* binding */ clippingParents), 1340/* harmony export */ end: () => (/* binding */ end), 1341/* harmony export */ left: () => (/* binding */ left), 1342/* harmony export */ main: () => (/* binding */ main), 1343/* harmony export */ modifierPhases: () => (/* binding */ modifierPhases), 1344/* harmony export */ placements: () => (/* binding */ placements), 1345/* harmony export */ popper: () => (/* binding */ popper), 1346/* harmony export */ read: () => (/* binding */ read), 1347/* harmony export */ reference: () => (/* binding */ reference), 1348/* harmony export */ right: () => (/* binding */ right), 1349/* harmony export */ start: () => (/* binding */ start), 1350/* harmony export */ top: () => (/* binding */ top), 1351/* harmony export */ variationPlacements: () => (/* binding */ variationPlacements), 1352/* harmony export */ viewport: () => (/* binding */ viewport), 1353/* harmony export */ write: () => (/* binding */ write) 1354/* harmony export */ }); 1355var top = 'top'; 1356var bottom = 'bottom'; 1357var right = 'right'; 1358var left = 'left'; 1359var auto = 'auto'; 1360var basePlacements = [top, bottom, right, left]; 1361var start = 'start'; 1362var end = 'end'; 1363var clippingParents = 'clippingParents'; 1364var viewport = 'viewport'; 1365var popper = 'popper'; 1366var reference = 'reference'; 1367var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) { 1368 return acc.concat([placement + "-" + start, placement + "-" + end]); 1369}, []); 1370var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) { 1371 return acc.concat([placement, placement + "-" + start, placement + "-" + end]); 1372}, []); // modifiers that need to read the DOM 1373 1374var beforeRead = 'beforeRead'; 1375var read = 'read'; 1376var afterRead = 'afterRead'; // pure-logic modifiers 1377 1378var beforeMain = 'beforeMain'; 1379var main = 'main'; 1380var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) 1381 1382var beforeWrite = 'beforeWrite'; 1383var write = 'write'; 1384var afterWrite = 'afterWrite'; 1385var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; 1386 1387/***/ }), 1388
vendor: 6,008 bytes, lines 1389-1452
1389/***/ "./node_modules/@popperjs/core/lib/index.js": 1390/*!**************************************************!*\ 1391 !*** ./node_modules/@popperjs/core/lib/index.js ***! 1392 \**************************************************/ 1393/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1394 1395__webpack_require__.r(__webpack_exports__); 1396/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1397/* harmony export */ afterMain: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterMain), 1398/* harmony export */ afterRead: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterRead), 1399/* harmony export */ afterWrite: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterWrite), 1400/* harmony export */ applyStyles: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.applyStyles), 1401/* harmony export */ arrow: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.arrow), 1402/* harmony export */ auto: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.auto), 1403/* harmony export */ basePlacements: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements), 1404/* harmony export */ beforeMain: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeMain), 1405/* harmony export */ beforeRead: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeRead), 1406/* harmony export */ beforeWrite: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeWrite), 1407/* harmony export */ bottom: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom), 1408/* harmony export */ clippingParents: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.clippingParents), 1409/* harmony export */ computeStyles: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.computeStyles), 1410/* harmony export */ createPopper: () => (/* reexport safe */ _popper_js__WEBPACK_IMPORTED_MODULE_4__.createPopper), 1411/* harmony export */ createPopperBase: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_2__.createPopper), 1412/* harmony export */ createPopperLite: () => (/* reexport safe */ _popper_lite_js__WEBPACK_IMPORTED_MODULE_5__.createPopper), 1413/* harmony export */ detectOverflow: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_3__["default"]), 1414/* harmony export */ end: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.end), 1415/* harmony export */ eventListeners: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.eventListeners), 1416/* harmony export */ flip: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.flip), 1417/* harmony export */ hide: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.hide), 1418/* harmony export */ left: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.left), 1419/* harmony export */ main: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.main), 1420/* harmony export */ modifierPhases: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.modifierPhases), 1421/* harmony export */ offset: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.offset), 1422/* harmony export */ placements: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.placements), 1423/* harmony export */ popper: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper), 1424/* harmony export */ popperGenerator: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_2__.popperGenerator), 1425/* harmony export */ popperOffsets: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.popperOffsets), 1426/* harmony export */ preventOverflow: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.preventOverflow), 1427/* harmony export */ read: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.read), 1428/* harmony export */ reference: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.reference), 1429/* harmony export */ right: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.right), 1430/* harmony export */ start: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.start), 1431/* harmony export */ top: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.top), 1432/* harmony export */ variationPlacements: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements), 1433/* harmony export */ viewport: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.viewport), 1434/* harmony export */ write: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.write) 1435/* harmony export */ }); 1436/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 1437/* harmony import */ var _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/index.js */ "./node_modules/@popperjs/core/lib/modifiers/index.js"); 1438/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/createPopper.js"); 1439/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js"); 1440/* harmony import */ var _popper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./popper.js */ "./node_modules/@popperjs/core/lib/popper.js"); 1441/* harmony import */ var _popper_lite_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./popper-lite.js */ "./node_modules/@popperjs/core/lib/popper-lite.js"); 1442 1443 // eslint-disable-next-line import/no-unused-modules 1444 1445 // eslint-disable-next-line import/no-unused-modules 1446 1447 // eslint-disable-next-line import/no-unused-modules 1448 1449 1450 1451/***/ }), 1452
vendor: 3,631 bytes, lines 1453-1550
1453/***/ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js": 1454/*!******************************************************************!*\ 1455 !*** ./node_modules/@popperjs/core/lib/modifiers/applyStyles.js ***! 1456 \******************************************************************/ 1457/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1458 1459/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1460/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 1461/* harmony export */ }); 1462/* harmony import */ var _dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-utils/getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 1463/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dom-utils/instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 1464 1465 // This modifier takes the styles prepared by the `computeStyles` modifier 1466// and applies them to the HTMLElements such as popper and arrow 1467 1468function applyStyles(_ref) { 1469 var state = _ref.state; 1470 Object.keys(state.elements).forEach(function (name) { 1471 var style = state.styles[name] || {}; 1472 var attributes = state.attributes[name] || {}; 1473 var element = state.elements[name]; // arrow is optional + virtual elements 1474 1475 if (!(0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(element) || !(0,_dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element)) { 1476 return; 1477 } // Flow doesn't support to extend this property, but it's the most 1478 // effective way to apply styles to an HTMLElement 1479 // $FlowFixMe[cannot-write] 1480 1481 1482 Object.assign(element.style, style); 1483 Object.keys(attributes).forEach(function (name) { 1484 var value = attributes[name]; 1485 1486 if (value === false) { 1487 element.removeAttribute(name); 1488 } else { 1489 element.setAttribute(name, value === true ? '' : value); 1490 } 1491 }); 1492 }); 1493} 1494 1495function effect(_ref2) { 1496 var state = _ref2.state; 1497 var initialStyles = { 1498 popper: { 1499 position: state.options.strategy, 1500 left: '0', 1501 top: '0', 1502 margin: '0' 1503 }, 1504 arrow: { 1505 position: 'absolute' 1506 }, 1507 reference: {} 1508 }; 1509 Object.assign(state.elements.popper.style, initialStyles.popper); 1510 state.styles = initialStyles; 1511 1512 if (state.elements.arrow) { 1513 Object.assign(state.elements.arrow.style, initialStyles.arrow); 1514 } 1515 1516 return function () { 1517 Object.keys(state.elements).forEach(function (name) { 1518 var element = state.elements[name]; 1519 var attributes = state.attributes[name] || {}; 1520 var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them 1521 1522 var style = styleProperties.reduce(function (style, property) { 1523 style[property] = ''; 1524 return style; 1525 }, {}); // arrow is optional + virtual elements 1526 1527 if (!(0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(element) || !(0,_dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element)) { 1528 return; 1529 } 1530 1531 Object.assign(element.style, style); 1532 Object.keys(attributes).forEach(function (attribute) { 1533 element.removeAttribute(attribute); 1534 }); 1535 }); 1536 }; 1537} // eslint-disable-next-line import/no-unused-modules 1538 1539 1540/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 1541 name: 'applyStyles', 1542 enabled: true, 1543 phase: 'write', 1544 fn: applyStyles, 1545 effect: effect, 1546 requires: ['computeStyles'] 1547}); 1548 1549/***/ }), 1550
vendor: 5,932 bytes, lines 1551-1661
1551/***/ "./node_modules/@popperjs/core/lib/modifiers/arrow.js": 1552/*!************************************************************!*\ 1553 !*** ./node_modules/@popperjs/core/lib/modifiers/arrow.js ***! 1554 \************************************************************/ 1555/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1556 1557/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1558/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 1559/* harmony export */ }); 1560/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 1561/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dom-utils/getLayoutRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js"); 1562/* harmony import */ var _dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dom-utils/contains.js */ "./node_modules/@popperjs/core/lib/dom-utils/contains.js"); 1563/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js"); 1564/* harmony import */ var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/getMainAxisFromPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js"); 1565/* harmony import */ var _utils_within_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/within.js */ "./node_modules/@popperjs/core/lib/utils/within.js"); 1566/* harmony import */ var _utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/mergePaddingObject.js */ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js"); 1567/* harmony import */ var _utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/expandToHashMap.js */ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js"); 1568/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 1569 1570 1571 1572 1573 1574 1575 1576 1577 // eslint-disable-next-line import/no-unused-modules 1578 1579var toPaddingObject = function toPaddingObject(padding, state) { 1580 padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, { 1581 placement: state.placement 1582 })) : padding; 1583 return (0,_utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_6__["default"])(typeof padding !== 'number' ? padding : (0,_utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_7__["default"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_8__.basePlacements)); 1584}; 1585 1586function arrow(_ref) { 1587 var _state$modifiersData$; 1588 1589 var state = _ref.state, 1590 name = _ref.name, 1591 options = _ref.options; 1592 var arrowElement = state.elements.arrow; 1593 var popperOffsets = state.modifiersData.popperOffsets; 1594 var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(state.placement); 1595 var axis = (0,_utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(basePlacement); 1596 var isVertical = [_enums_js__WEBPACK_IMPORTED_MODULE_8__.left, _enums_js__WEBPACK_IMPORTED_MODULE_8__.right].indexOf(basePlacement) >= 0; 1597 var len = isVertical ? 'height' : 'width'; 1598 1599 if (!arrowElement || !popperOffsets) { 1600 return; 1601 } 1602 1603 var paddingObject = toPaddingObject(options.padding, state); 1604 var arrowRect = (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_1__["default"])(arrowElement); 1605 var minProp = axis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_8__.top : _enums_js__WEBPACK_IMPORTED_MODULE_8__.left; 1606 var maxProp = axis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_8__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_8__.right; 1607 var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len]; 1608 var startDiff = popperOffsets[axis] - state.rects.reference[axis]; 1609 var arrowOffsetParent = (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_3__["default"])(arrowElement); 1610 var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; 1611 var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is 1612 // outside of the popper bounds 1613 1614 var min = paddingObject[minProp]; 1615 var max = clientSize - arrowRect[len] - paddingObject[maxProp]; 1616 var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; 1617 var offset = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_5__.within)(min, center, max); // Prevents breaking syntax highlighting... 1618 1619 var axisProp = axis; 1620 state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$); 1621} 1622 1623function effect(_ref2) { 1624 var state = _ref2.state, 1625 options = _ref2.options; 1626 var _options$element = options.element, 1627 arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element; 1628 1629 if (arrowElement == null) { 1630 return; 1631 } // CSS selector 1632 1633 1634 if (typeof arrowElement === 'string') { 1635 arrowElement = state.elements.popper.querySelector(arrowElement); 1636 1637 if (!arrowElement) { 1638 return; 1639 } 1640 } 1641 1642 if (!(0,_dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_2__["default"])(state.elements.popper, arrowElement)) { 1643 return; 1644 } 1645 1646 state.elements.arrow = arrowElement; 1647} // eslint-disable-next-line import/no-unused-modules 1648 1649 1650/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 1651 name: 'arrow', 1652 enabled: true, 1653 phase: 'main', 1654 fn: arrow, 1655 effect: effect, 1656 requires: ['popperOffsets'], 1657 requiresIfExists: ['preventOverflow'] 1658}); 1659 1660/***/ }), 1661
vendor: 8,400 bytes, lines 1662-1851
1662/***/ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js": 1663/*!********************************************************************!*\ 1664 !*** ./node_modules/@popperjs/core/lib/modifiers/computeStyles.js ***! 1665 \********************************************************************/ 1666/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1667 1668/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1669/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 1670/* harmony export */ }); 1671/* unused harmony export mapToStyles */ 1672/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 1673/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js"); 1674/* harmony import */ var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dom-utils/getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 1675/* harmony import */ var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom-utils/getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 1676/* harmony import */ var _dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dom-utils/getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js"); 1677/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 1678/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js"); 1679/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 1680 1681 1682 1683 1684 1685 1686 1687 // eslint-disable-next-line import/no-unused-modules 1688 1689var unsetSides = { 1690 top: 'auto', 1691 right: 'auto', 1692 bottom: 'auto', 1693 left: 'auto' 1694}; // Round the offsets to the nearest suitable subpixel based on the DPR. 1695// Zooming can change the DPR, but it seems to report a value that will 1696// cleanly divide the values into the appropriate subpixels. 1697 1698function roundOffsetsByDPR(_ref, win) { 1699 var x = _ref.x, 1700 y = _ref.y; 1701 var dpr = win.devicePixelRatio || 1; 1702 return { 1703 x: (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_7__.round)(x * dpr) / dpr || 0, 1704 y: (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_7__.round)(y * dpr) / dpr || 0 1705 }; 1706} 1707 1708function mapToStyles(_ref2) { 1709 var _Object$assign2; 1710 1711 var popper = _ref2.popper, 1712 popperRect = _ref2.popperRect, 1713 placement = _ref2.placement, 1714 variation = _ref2.variation, 1715 offsets = _ref2.offsets, 1716 position = _ref2.position, 1717 gpuAcceleration = _ref2.gpuAcceleration, 1718 adaptive = _ref2.adaptive, 1719 roundOffsets = _ref2.roundOffsets, 1720 isFixed = _ref2.isFixed; 1721 var _offsets$x = offsets.x, 1722 x = _offsets$x === void 0 ? 0 : _offsets$x, 1723 _offsets$y = offsets.y, 1724 y = _offsets$y === void 0 ? 0 : _offsets$y; 1725 1726 var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({ 1727 x: x, 1728 y: y 1729 }) : { 1730 x: x, 1731 y: y 1732 }; 1733 1734 x = _ref3.x; 1735 y = _ref3.y; 1736 var hasX = offsets.hasOwnProperty('x'); 1737 var hasY = offsets.hasOwnProperty('y'); 1738 var sideX = _enums_js__WEBPACK_IMPORTED_MODULE_0__.left; 1739 var sideY = _enums_js__WEBPACK_IMPORTED_MODULE_0__.top; 1740 var win = window; 1741 1742 if (adaptive) { 1743 var offsetParent = (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_1__["default"])(popper); 1744 var heightProp = 'clientHeight'; 1745 var widthProp = 'clientWidth'; 1746 1747 if (offsetParent === (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_2__["default"])(popper)) { 1748 offsetParent = (0,_dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(popper); 1749 1750 if ((0,_dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__["default"])(offsetParent).position !== 'static' && position === 'absolute') { 1751 heightProp = 'scrollHeight'; 1752 widthProp = 'scrollWidth'; 1753 } 1754 } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it 1755 1756 1757 offsetParent = offsetParent; 1758 1759 if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_0__.top || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_0__.left || placement === _enums_js__WEBPACK_IMPORTED_MODULE_0__.right) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_0__.end) { 1760 sideY = _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom; 1761 var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing] 1762 offsetParent[heightProp]; 1763 y -= offsetY - popperRect.height; 1764 y *= gpuAcceleration ? 1 : -1; 1765 } 1766 1767 if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_0__.left || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_0__.top || placement === _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_0__.end) { 1768 sideX = _enums_js__WEBPACK_IMPORTED_MODULE_0__.right; 1769 var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing] 1770 offsetParent[widthProp]; 1771 x -= offsetX - popperRect.width; 1772 x *= gpuAcceleration ? 1 : -1; 1773 } 1774 } 1775 1776 var commonStyles = Object.assign({ 1777 position: position 1778 }, adaptive && unsetSides); 1779 1780 var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ 1781 x: x, 1782 y: y 1783 }, (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_2__["default"])(popper)) : { 1784 x: x, 1785 y: y 1786 }; 1787 1788 x = _ref4.x; 1789 y = _ref4.y; 1790 1791 if (gpuAcceleration) { 1792 var _Object$assign; 1793 1794 return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); 1795 } 1796 1797 return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2)); 1798} 1799 1800function computeStyles(_ref5) { 1801 var state = _ref5.state, 1802 options = _ref5.options; 1803 var _options$gpuAccelerat = options.gpuAcceleration, 1804 gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, 1805 _options$adaptive = options.adaptive, 1806 adaptive = _options$adaptive === void 0 ? true : _options$adaptive, 1807 _options$roundOffsets = options.roundOffsets, 1808 roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; 1809 var commonStyles = { 1810 placement: (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_5__["default"])(state.placement), 1811 variation: (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state.placement), 1812 popper: state.elements.popper, 1813 popperRect: state.rects.popper, 1814 gpuAcceleration: gpuAcceleration, 1815 isFixed: state.options.strategy === 'fixed' 1816 }; 1817 1818 if (state.modifiersData.popperOffsets != null) { 1819 state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { 1820 offsets: state.modifiersData.popperOffsets, 1821 position: state.options.strategy, 1822 adaptive: adaptive, 1823 roundOffsets: roundOffsets 1824 }))); 1825 } 1826 1827 if (state.modifiersData.arrow != null) { 1828 state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { 1829 offsets: state.modifiersData.arrow, 1830 position: 'absolute', 1831 adaptive: false, 1832 roundOffsets: roundOffsets 1833 }))); 1834 } 1835 1836 state.attributes.popper = Object.assign({}, state.attributes.popper, { 1837 'data-popper-placement': state.placement 1838 }); 1839} // eslint-disable-next-line import/no-unused-modules 1840 1841 1842/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 1843 name: 'computeStyles', 1844 enabled: true, 1845 phase: 'beforeWrite', 1846 fn: computeStyles, 1847 data: {} 1848}); 1849 1850/***/ }), 1851
vendor: 2,132 bytes, lines 1852-1913
1852/***/ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js": 1853/*!*********************************************************************!*\ 1854 !*** ./node_modules/@popperjs/core/lib/modifiers/eventListeners.js ***! 1855 \*********************************************************************/ 1856/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1857 1858/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1859/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 1860/* harmony export */ }); 1861/* harmony import */ var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-utils/getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 1862 // eslint-disable-next-line import/no-unused-modules 1863 1864var passive = { 1865 passive: true 1866}; 1867 1868function effect(_ref) { 1869 var state = _ref.state, 1870 instance = _ref.instance, 1871 options = _ref.options; 1872 var _options$scroll = options.scroll, 1873 scroll = _options$scroll === void 0 ? true : _options$scroll, 1874 _options$resize = options.resize, 1875 resize = _options$resize === void 0 ? true : _options$resize; 1876 var window = (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(state.elements.popper); 1877 var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); 1878 1879 if (scroll) { 1880 scrollParents.forEach(function (scrollParent) { 1881 scrollParent.addEventListener('scroll', instance.update, passive); 1882 }); 1883 } 1884 1885 if (resize) { 1886 window.addEventListener('resize', instance.update, passive); 1887 } 1888 1889 return function () { 1890 if (scroll) { 1891 scrollParents.forEach(function (scrollParent) { 1892 scrollParent.removeEventListener('scroll', instance.update, passive); 1893 }); 1894 } 1895 1896 if (resize) { 1897 window.removeEventListener('resize', instance.update, passive); 1898 } 1899 }; 1900} // eslint-disable-next-line import/no-unused-modules 1901 1902 1903/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 1904 name: 'eventListeners', 1905 enabled: true, 1906 phase: 'write', 1907 fn: function fn() {}, 1908 effect: effect, 1909 data: {} 1910}); 1911 1912/***/ }), 1913
vendor: 7,480 bytes, lines 1914-2079
1914/***/ "./node_modules/@popperjs/core/lib/modifiers/flip.js": 1915/*!***********************************************************!*\ 1916 !*** ./node_modules/@popperjs/core/lib/modifiers/flip.js ***! 1917 \***********************************************************/ 1918/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1919 1920/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1921/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 1922/* harmony export */ }); 1923/* harmony import */ var _utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/getOppositePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js"); 1924/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 1925/* harmony import */ var _utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/getOppositeVariationPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js"); 1926/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js"); 1927/* harmony import */ var _utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/computeAutoPlacement.js */ "./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js"); 1928/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 1929/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js"); 1930 1931 1932 1933 1934 1935 1936 // eslint-disable-next-line import/no-unused-modules 1937 1938function getExpandedFallbackPlacements(placement) { 1939 if ((0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_5__.auto) { 1940 return []; 1941 } 1942 1943 var oppositePlacement = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement); 1944 return [(0,_utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(placement), oppositePlacement, (0,_utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(oppositePlacement)]; 1945} 1946 1947function flip(_ref) { 1948 var state = _ref.state, 1949 options = _ref.options, 1950 name = _ref.name; 1951 1952 if (state.modifiersData[name]._skip) { 1953 return; 1954 } 1955 1956 var _options$mainAxis = options.mainAxis, 1957 checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, 1958 _options$altAxis = options.altAxis, 1959 checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, 1960 specifiedFallbackPlacements = options.fallbackPlacements, 1961 padding = options.padding, 1962 boundary = options.boundary, 1963 rootBoundary = options.rootBoundary, 1964 altBoundary = options.altBoundary, 1965 _options$flipVariatio = options.flipVariations, 1966 flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, 1967 allowedAutoPlacements = options.allowedAutoPlacements; 1968 var preferredPlacement = state.options.placement; 1969 var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(preferredPlacement); 1970 var isBasePlacement = basePlacement === preferredPlacement; 1971 var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [(0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); 1972 var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) { 1973 return acc.concat((0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_5__.auto ? (0,_utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(state, { 1974 placement: placement, 1975 boundary: boundary, 1976 rootBoundary: rootBoundary, 1977 padding: padding, 1978 flipVariations: flipVariations, 1979 allowedAutoPlacements: allowedAutoPlacements 1980 }) : placement); 1981 }, []); 1982 var referenceRect = state.rects.reference; 1983 var popperRect = state.rects.popper; 1984 var checksMap = new Map(); 1985 var makeFallbackChecks = true; 1986 var firstFittingPlacement = placements[0]; 1987 1988 for (var i = 0; i < placements.length; i++) { 1989 var placement = placements[i]; 1990 1991 var _basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement); 1992 1993 var isStartVariation = (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_6__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_5__.start; 1994 var isVertical = [_enums_js__WEBPACK_IMPORTED_MODULE_5__.top, _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom].indexOf(_basePlacement) >= 0; 1995 var len = isVertical ? 'width' : 'height'; 1996 var overflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_3__["default"])(state, { 1997 placement: placement, 1998 boundary: boundary, 1999 rootBoundary: rootBoundary, 2000 altBoundary: altBoundary, 2001 padding: padding 2002 }); 2003 var mainVariationSide = isVertical ? isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.right : _enums_js__WEBPACK_IMPORTED_MODULE_5__.left : isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_5__.top; 2004 2005 if (referenceRect[len] > popperRect[len]) { 2006 mainVariationSide = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(mainVariationSide); 2007 } 2008 2009 var altVariationSide = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(mainVariationSide); 2010 var checks = []; 2011 2012 if (checkMainAxis) { 2013 checks.push(overflow[_basePlacement] <= 0); 2014 } 2015 2016 if (checkAltAxis) { 2017 checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); 2018 } 2019 2020 if (checks.every(function (check) { 2021 return check; 2022 })) { 2023 firstFittingPlacement = placement; 2024 makeFallbackChecks = false; 2025 break; 2026 } 2027 2028 checksMap.set(placement, checks); 2029 } 2030 2031 if (makeFallbackChecks) { 2032 // `2` may be desired in some cases â research later 2033 var numberOfChecks = flipVariations ? 3 : 1; 2034 2035 var _loop = function _loop(_i) { 2036 var fittingPlacement = placements.find(function (placement) { 2037 var checks = checksMap.get(placement); 2038 2039 if (checks) { 2040 return checks.slice(0, _i).every(function (check) { 2041 return check; 2042 }); 2043 } 2044 }); 2045 2046 if (fittingPlacement) { 2047 firstFittingPlacement = fittingPlacement; 2048 return "break"; 2049 } 2050 }; 2051 2052 for (var _i = numberOfChecks; _i > 0; _i--) { 2053 var _ret = _loop(_i); 2054 2055 if (_ret === "break") break; 2056 } 2057 } 2058 2059 if (state.placement !== firstFittingPlacement) { 2060 state.modifiersData[name]._skip = true; 2061 state.placement = firstFittingPlacement; 2062 state.reset = true; 2063 } 2064} // eslint-disable-next-line import/no-unused-modules 2065 2066 2067/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 2068 name: 'flip', 2069 enabled: true, 2070 phase: 'main', 2071 fn: flip, 2072 requiresIfExists: ['offset'], 2073 data: { 2074 _skip: false 2075 } 2076}); 2077 2078/***/ }), 2079
vendor: 3,016 bytes, lines 2080-2154
2080/***/ "./node_modules/@popperjs/core/lib/modifiers/hide.js": 2081/*!***********************************************************!*\ 2082 !*** ./node_modules/@popperjs/core/lib/modifiers/hide.js ***! 2083 \***********************************************************/ 2084/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2085 2086/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2087/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 2088/* harmony export */ }); 2089/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 2090/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js"); 2091 2092 2093 2094function getSideOffsets(overflow, rect, preventedOffsets) { 2095 if (preventedOffsets === void 0) { 2096 preventedOffsets = { 2097 x: 0, 2098 y: 0 2099 }; 2100 } 2101 2102 return { 2103 top: overflow.top - rect.height - preventedOffsets.y, 2104 right: overflow.right - rect.width + preventedOffsets.x, 2105 bottom: overflow.bottom - rect.height + preventedOffsets.y, 2106 left: overflow.left - rect.width - preventedOffsets.x 2107 }; 2108} 2109 2110function isAnySideFullyClipped(overflow) { 2111 return [_enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.right, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom, _enums_js__WEBPACK_IMPORTED_MODULE_0__.left].some(function (side) { 2112 return overflow[side] >= 0; 2113 }); 2114} 2115 2116function hide(_ref) { 2117 var state = _ref.state, 2118 name = _ref.name; 2119 var referenceRect = state.rects.reference; 2120 var popperRect = state.rects.popper; 2121 var preventedOffsets = state.modifiersData.preventOverflow; 2122 var referenceOverflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state, { 2123 elementContext: 'reference' 2124 }); 2125 var popperAltOverflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state, { 2126 altBoundary: true 2127 }); 2128 var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); 2129 var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); 2130 var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); 2131 var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); 2132 state.modifiersData[name] = { 2133 referenceClippingOffsets: referenceClippingOffsets, 2134 popperEscapeOffsets: popperEscapeOffsets, 2135 isReferenceHidden: isReferenceHidden, 2136 hasPopperEscaped: hasPopperEscaped 2137 }; 2138 state.attributes.popper = Object.assign({}, state.attributes.popper, { 2139 'data-popper-reference-hidden': isReferenceHidden, 2140 'data-popper-escaped': hasPopperEscaped 2141 }); 2142} // eslint-disable-next-line import/no-unused-modules 2143 2144 2145/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 2146 name: 'hide', 2147 enabled: true, 2148 phase: 'main', 2149 requiresIfExists: ['preventOverflow'], 2150 fn: hide 2151}); 2152 2153/***/ }), 2154
vendor: 3,081 bytes, lines 2155-2192
2155/***/ "./node_modules/@popperjs/core/lib/modifiers/index.js": 2156/*!************************************************************!*\ 2157 !*** ./node_modules/@popperjs/core/lib/modifiers/index.js ***! 2158 \************************************************************/ 2159/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2160 2161/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2162/* harmony export */ applyStyles: () => (/* reexport safe */ _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__["default"]), 2163/* harmony export */ arrow: () => (/* reexport safe */ _arrow_js__WEBPACK_IMPORTED_MODULE_1__["default"]), 2164/* harmony export */ computeStyles: () => (/* reexport safe */ _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__["default"]), 2165/* harmony export */ eventListeners: () => (/* reexport safe */ _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__["default"]), 2166/* harmony export */ flip: () => (/* reexport safe */ _flip_js__WEBPACK_IMPORTED_MODULE_4__["default"]), 2167/* harmony export */ hide: () => (/* reexport safe */ _hide_js__WEBPACK_IMPORTED_MODULE_5__["default"]), 2168/* harmony export */ offset: () => (/* reexport safe */ _offset_js__WEBPACK_IMPORTED_MODULE_6__["default"]), 2169/* harmony export */ popperOffsets: () => (/* reexport safe */ _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__["default"]), 2170/* harmony export */ preventOverflow: () => (/* reexport safe */ _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__["default"]) 2171/* harmony export */ }); 2172/* harmony import */ var _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./applyStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js"); 2173/* harmony import */ var _arrow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./arrow.js */ "./node_modules/@popperjs/core/lib/modifiers/arrow.js"); 2174/* harmony import */ var _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./computeStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js"); 2175/* harmony import */ var _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./eventListeners.js */ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js"); 2176/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./flip.js */ "./node_modules/@popperjs/core/lib/modifiers/flip.js"); 2177/* harmony import */ var _hide_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hide.js */ "./node_modules/@popperjs/core/lib/modifiers/hide.js"); 2178/* harmony import */ var _offset_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./offset.js */ "./node_modules/@popperjs/core/lib/modifiers/offset.js"); 2179/* harmony import */ var _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./popperOffsets.js */ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js"); 2180/* harmony import */ var _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./preventOverflow.js */ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js"); 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191/***/ }), 2192
vendor: 2,711 bytes, lines 2193-2261
2193/***/ "./node_modules/@popperjs/core/lib/modifiers/offset.js": 2194/*!*************************************************************!*\ 2195 !*** ./node_modules/@popperjs/core/lib/modifiers/offset.js ***! 2196 \*************************************************************/ 2197/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2198 2199/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2200/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 2201/* harmony export */ }); 2202/* unused harmony export distanceAndSkiddingToXY */ 2203/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 2204/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 2205 2206 // eslint-disable-next-line import/no-unused-modules 2207 2208function distanceAndSkiddingToXY(placement, rects, offset) { 2209 var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement); 2210 var invertDistance = [_enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.top].indexOf(basePlacement) >= 0 ? -1 : 1; 2211 2212 var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, { 2213 placement: placement 2214 })) : offset, 2215 skidding = _ref[0], 2216 distance = _ref[1]; 2217 2218 skidding = skidding || 0; 2219 distance = (distance || 0) * invertDistance; 2220 return [_enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.right].indexOf(basePlacement) >= 0 ? { 2221 x: distance, 2222 y: skidding 2223 } : { 2224 x: skidding, 2225 y: distance 2226 }; 2227} 2228 2229function offset(_ref2) { 2230 var state = _ref2.state, 2231 options = _ref2.options, 2232 name = _ref2.name; 2233 var _options$offset = options.offset, 2234 offset = _options$offset === void 0 ? [0, 0] : _options$offset; 2235 var data = _enums_js__WEBPACK_IMPORTED_MODULE_1__.placements.reduce(function (acc, placement) { 2236 acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset); 2237 return acc; 2238 }, {}); 2239 var _data$state$placement = data[state.placement], 2240 x = _data$state$placement.x, 2241 y = _data$state$placement.y; 2242 2243 if (state.modifiersData.popperOffsets != null) { 2244 state.modifiersData.popperOffsets.x += x; 2245 state.modifiersData.popperOffsets.y += y; 2246 } 2247 2248 state.modifiersData[name] = data; 2249} // eslint-disable-next-line import/no-unused-modules 2250 2251 2252/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 2253 name: 'offset', 2254 enabled: true, 2255 phase: 'main', 2256 requires: ['popperOffsets'], 2257 fn: offset 2258}); 2259 2260/***/ }), 2261
vendor: 1,497 bytes, lines 2262-2299
2262/***/ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js": 2263/*!********************************************************************!*\ 2264 !*** ./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js ***! 2265 \********************************************************************/ 2266/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2267 2268/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2269/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 2270/* harmony export */ }); 2271/* harmony import */ var _utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/computeOffsets.js */ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js"); 2272 2273 2274function popperOffsets(_ref) { 2275 var state = _ref.state, 2276 name = _ref.name; 2277 // Offsets are the actual position the popper needs to have to be 2278 // properly positioned near its reference element 2279 // This is the most basic placement, and will be adjusted by 2280 // the modifiers in the next step 2281 state.modifiersData[name] = (0,_utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 2282 reference: state.rects.reference, 2283 element: state.rects.popper, 2284 strategy: 'absolute', 2285 placement: state.placement 2286 }); 2287} // eslint-disable-next-line import/no-unused-modules 2288 2289 2290/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 2291 name: 'popperOffsets', 2292 enabled: true, 2293 phase: 'read', 2294 fn: popperOffsets, 2295 data: {} 2296}); 2297 2298/***/ }), 2299
vendor: 9,846 bytes, lines 2300-2464
2300/***/ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js": 2301/*!**********************************************************************!*\ 2302 !*** ./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js ***! 2303 \**********************************************************************/ 2304/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2305 2306/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2307/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 2308/* harmony export */ }); 2309/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 2310/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 2311/* harmony import */ var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/getMainAxisFromPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js"); 2312/* harmony import */ var _utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getAltAxis.js */ "./node_modules/@popperjs/core/lib/utils/getAltAxis.js"); 2313/* harmony import */ var _utils_within_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/within.js */ "./node_modules/@popperjs/core/lib/utils/within.js"); 2314/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getLayoutRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js"); 2315/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js"); 2316/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js"); 2317/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js"); 2318/* harmony import */ var _utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/getFreshSideObject.js */ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js"); 2319/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332function preventOverflow(_ref) { 2333 var state = _ref.state, 2334 options = _ref.options, 2335 name = _ref.name; 2336 var _options$mainAxis = options.mainAxis, 2337 checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, 2338 _options$altAxis = options.altAxis, 2339 checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, 2340 boundary = options.boundary, 2341 rootBoundary = options.rootBoundary, 2342 altBoundary = options.altBoundary, 2343 padding = options.padding, 2344 _options$tether = options.tether, 2345 tether = _options$tether === void 0 ? true : _options$tether, 2346 _options$tetherOffset = options.tetherOffset, 2347 tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; 2348 var overflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_7__["default"])(state, { 2349 boundary: boundary, 2350 rootBoundary: rootBoundary, 2351 padding: padding, 2352 altBoundary: altBoundary 2353 }); 2354 var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state.placement); 2355 var variation = (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_8__["default"])(state.placement); 2356 var isBasePlacement = !variation; 2357 var mainAxis = (0,_utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(basePlacement); 2358 var altAxis = (0,_utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_3__["default"])(mainAxis); 2359 var popperOffsets = state.modifiersData.popperOffsets; 2360 var referenceRect = state.rects.reference; 2361 var popperRect = state.rects.popper; 2362 var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, { 2363 placement: state.placement 2364 })) : tetherOffset; 2365 var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? { 2366 mainAxis: tetherOffsetValue, 2367 altAxis: tetherOffsetValue 2368 } : Object.assign({ 2369 mainAxis: 0, 2370 altAxis: 0 2371 }, tetherOffsetValue); 2372 var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; 2373 var data = { 2374 x: 0, 2375 y: 0 2376 }; 2377 2378 if (!popperOffsets) { 2379 return; 2380 } 2381 2382 if (checkMainAxis) { 2383 var _offsetModifierState$; 2384 2385 var mainSide = mainAxis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.top : _enums_js__WEBPACK_IMPORTED_MODULE_0__.left; 2386 var altSide = mainAxis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_0__.right; 2387 var len = mainAxis === 'y' ? 'height' : 'width'; 2388 var offset = popperOffsets[mainAxis]; 2389 var min = offset + overflow[mainSide]; 2390 var max = offset - overflow[altSide]; 2391 var additive = tether ? -popperRect[len] / 2 : 0; 2392 var minLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_0__.start ? referenceRect[len] : popperRect[len]; 2393 var maxLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_0__.start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go 2394 // outside the reference bounds 2395 2396 var arrowElement = state.elements.arrow; 2397 var arrowRect = tether && arrowElement ? (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__["default"])(arrowElement) : { 2398 width: 0, 2399 height: 0 2400 }; 2401 var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : (0,_utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_9__["default"])(); 2402 var arrowPaddingMin = arrowPaddingObject[mainSide]; 2403 var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want 2404 // to include its full size in the calculation. If the reference is small 2405 // and near the edge of a boundary, the popper can overflow even if the 2406 // reference is not overflowing as well (e.g. virtual elements with no 2407 // width or height) 2408 2409 var arrowLen = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_4__.within)(0, referenceRect[len], arrowRect[len]); 2410 var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; 2411 var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; 2412 var arrowOffsetParent = state.elements.arrow && (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state.elements.arrow); 2413 var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; 2414 var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; 2415 var tetherMin = offset + minOffset - offsetModifierValue - clientOffset; 2416 var tetherMax = offset + maxOffset - offsetModifierValue; 2417 var preventedOffset = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_4__.within)(tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.min)(min, tetherMin) : min, offset, tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.max)(max, tetherMax) : max); 2418 popperOffsets[mainAxis] = preventedOffset; 2419 data[mainAxis] = preventedOffset - offset; 2420 } 2421 2422 if (checkAltAxis) { 2423 var _offsetModifierState$2; 2424 2425 var _mainSide = mainAxis === 'x' ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.top : _enums_js__WEBPACK_IMPORTED_MODULE_0__.left; 2426 2427 var _altSide = mainAxis === 'x' ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_0__.right; 2428 2429 var _offset = popperOffsets[altAxis]; 2430 2431 var _len = altAxis === 'y' ? 'height' : 'width'; 2432 2433 var _min = _offset + overflow[_mainSide]; 2434 2435 var _max = _offset - overflow[_altSide]; 2436 2437 var isOriginSide = [_enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.left].indexOf(basePlacement) !== -1; 2438 2439 var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; 2440 2441 var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; 2442 2443 var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; 2444 2445 var _preventedOffset = tether && isOriginSide ? (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_4__.withinMaxClamp)(_tetherMin, _offset, _tetherMax) : (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_4__.within)(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); 2446 2447 popperOffsets[altAxis] = _preventedOffset; 2448 data[altAxis] = _preventedOffset - _offset; 2449 } 2450 2451 state.modifiersData[name] = data; 2452} // eslint-disable-next-line import/no-unused-modules 2453 2454 2455/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 2456 name: 'preventOverflow', 2457 enabled: true, 2458 phase: 'main', 2459 fn: preventOverflow, 2460 requiresIfExists: ['offset'] 2461}); 2462 2463/***/ }), 2464
vendor: 2,034 bytes, lines 2465-2493
2465/***/ "./node_modules/@popperjs/core/lib/popper-lite.js": 2466/*!********************************************************!*\ 2467 !*** ./node_modules/@popperjs/core/lib/popper-lite.js ***! 2468 \********************************************************/ 2469/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2470 2471/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2472/* harmony export */ createPopper: () => (/* binding */ createPopper) 2473/* harmony export */ }); 2474/* unused harmony export defaultModifiers */ 2475/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/createPopper.js"); 2476/* harmony import */ var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/eventListeners.js */ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js"); 2477/* harmony import */ var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/popperOffsets.js */ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js"); 2478/* harmony import */ var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modifiers/computeStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js"); 2479/* harmony import */ var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modifiers/applyStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js"); 2480 2481 2482 2483 2484 2485var defaultModifiers = [_modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_1__["default"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_2__["default"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_3__["default"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_4__["default"]]; 2486var createPopper = /*#__PURE__*/(0,_createPopper_js__WEBPACK_IMPORTED_MODULE_0__.popperGenerator)({ 2487 defaultModifiers: defaultModifiers 2488}); // eslint-disable-next-line import/no-unused-modules 2489 2490 2491 2492/***/ }), 2493
vendor: 3,375 bytes, lines 2494-2536
2494/***/ "./node_modules/@popperjs/core/lib/popper.js": 2495/*!***************************************************!*\ 2496 !*** ./node_modules/@popperjs/core/lib/popper.js ***! 2497 \***************************************************/ 2498/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2499 2500/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2501/* harmony export */ createPopper: () => (/* binding */ createPopper) 2502/* harmony export */ }); 2503/* unused harmony export defaultModifiers */ 2504/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/createPopper.js"); 2505/* harmony import */ var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/eventListeners.js */ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js"); 2506/* harmony import */ var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/popperOffsets.js */ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js"); 2507/* harmony import */ var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modifiers/computeStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js"); 2508/* harmony import */ var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modifiers/applyStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js"); 2509/* harmony import */ var _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modifiers/offset.js */ "./node_modules/@popperjs/core/lib/modifiers/offset.js"); 2510/* harmony import */ var _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modifiers/flip.js */ "./node_modules/@popperjs/core/lib/modifiers/flip.js"); 2511/* harmony import */ var _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modifiers/preventOverflow.js */ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js"); 2512/* harmony import */ var _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modifiers/arrow.js */ "./node_modules/@popperjs/core/lib/modifiers/arrow.js"); 2513/* harmony import */ var _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modifiers/hide.js */ "./node_modules/@popperjs/core/lib/modifiers/hide.js"); 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524var defaultModifiers = [_modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_1__["default"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_2__["default"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_3__["default"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_4__["default"], _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_5__["default"], _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_6__["default"], _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_7__["default"], _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_8__["default"], _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_9__["default"]]; 2525var createPopper = /*#__PURE__*/(0,_createPopper_js__WEBPACK_IMPORTED_MODULE_0__.popperGenerator)({ 2526 defaultModifiers: defaultModifiers 2527}); // eslint-disable-next-line import/no-unused-modules 2528 2529 // eslint-disable-next-line import/no-unused-modules 2530 2531 // eslint-disable-next-line import/no-unused-modules 2532 2533 2534 2535/***/ }), 2536
vendor: 3,038 bytes, lines 2537-2595
2537/***/ "./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js": 2538/*!***********************************************************************!*\ 2539 !*** ./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js ***! 2540 \***********************************************************************/ 2541/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2542 2543/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2544/* harmony export */ "default": () => (/* binding */ computeAutoPlacement) 2545/* harmony export */ }); 2546/* harmony import */ var _getVariation_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js"); 2547/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 2548/* harmony import */ var _detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js"); 2549/* harmony import */ var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 2550 2551 2552 2553 2554function computeAutoPlacement(state, options) { 2555 if (options === void 0) { 2556 options = {}; 2557 } 2558 2559 var _options = options, 2560 placement = _options.placement, 2561 boundary = _options.boundary, 2562 rootBoundary = _options.rootBoundary, 2563 padding = _options.padding, 2564 flipVariations = _options.flipVariations, 2565 _options$allowedAutoP = _options.allowedAutoPlacements, 2566 allowedAutoPlacements = _options$allowedAutoP === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.placements : _options$allowedAutoP; 2567 var variation = (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement); 2568 var placements = variation ? flipVariations ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.variationPlacements : _enums_js__WEBPACK_IMPORTED_MODULE_1__.variationPlacements.filter(function (placement) { 2569 return (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) === variation; 2570 }) : _enums_js__WEBPACK_IMPORTED_MODULE_1__.basePlacements; 2571 var allowedPlacements = placements.filter(function (placement) { 2572 return allowedAutoPlacements.indexOf(placement) >= 0; 2573 }); 2574 2575 if (allowedPlacements.length === 0) { 2576 allowedPlacements = placements; 2577 } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions... 2578 2579 2580 var overflows = allowedPlacements.reduce(function (acc, placement) { 2581 acc[placement] = (0,_detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__["default"])(state, { 2582 placement: placement, 2583 boundary: boundary, 2584 rootBoundary: rootBoundary, 2585 padding: padding 2586 })[(0,_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(placement)]; 2587 return acc; 2588 }, {}); 2589 return Object.keys(overflows).sort(function (a, b) { 2590 return overflows[a] - overflows[b]; 2591 }); 2592} 2593 2594/***/ }), 2595
vendor: 3,136 bytes, lines 2596-2681
2596/***/ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js": 2597/*!*****************************************************************!*\ 2598 !*** ./node_modules/@popperjs/core/lib/utils/computeOffsets.js ***! 2599 \*****************************************************************/ 2600/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2601 2602/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2603/* harmony export */ "default": () => (/* binding */ computeOffsets) 2604/* harmony export */ }); 2605/* harmony import */ var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 2606/* harmony import */ var _getVariation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js"); 2607/* harmony import */ var _getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getMainAxisFromPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js"); 2608/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 2609 2610 2611 2612 2613function computeOffsets(_ref) { 2614 var reference = _ref.reference, 2615 element = _ref.element, 2616 placement = _ref.placement; 2617 var basePlacement = placement ? (0,_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) : null; 2618 var variation = placement ? (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement) : null; 2619 var commonX = reference.x + reference.width / 2 - element.width / 2; 2620 var commonY = reference.y + reference.height / 2 - element.height / 2; 2621 var offsets; 2622 2623 switch (basePlacement) { 2624 case _enums_js__WEBPACK_IMPORTED_MODULE_3__.top: 2625 offsets = { 2626 x: commonX, 2627 y: reference.y - element.height 2628 }; 2629 break; 2630 2631 case _enums_js__WEBPACK_IMPORTED_MODULE_3__.bottom: 2632 offsets = { 2633 x: commonX, 2634 y: reference.y + reference.height 2635 }; 2636 break; 2637 2638 case _enums_js__WEBPACK_IMPORTED_MODULE_3__.right: 2639 offsets = { 2640 x: reference.x + reference.width, 2641 y: commonY 2642 }; 2643 break; 2644 2645 case _enums_js__WEBPACK_IMPORTED_MODULE_3__.left: 2646 offsets = { 2647 x: reference.x - element.width, 2648 y: commonY 2649 }; 2650 break; 2651 2652 default: 2653 offsets = { 2654 x: reference.x, 2655 y: reference.y 2656 }; 2657 } 2658 2659 var mainAxis = basePlacement ? (0,_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(basePlacement) : null; 2660 2661 if (mainAxis != null) { 2662 var len = mainAxis === 'y' ? 'height' : 'width'; 2663 2664 switch (variation) { 2665 case _enums_js__WEBPACK_IMPORTED_MODULE_3__.start: 2666 offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); 2667 break; 2668 2669 case _enums_js__WEBPACK_IMPORTED_MODULE_3__.end: 2670 offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); 2671 break; 2672 2673 default: 2674 } 2675 } 2676 2677 return offsets; 2678} 2679 2680/***/ }), 2681
vendor: 792 bytes, lines 2682-2708
2682/***/ "./node_modules/@popperjs/core/lib/utils/debounce.js": 2683/*!***********************************************************!*\ 2684 !*** ./node_modules/@popperjs/core/lib/utils/debounce.js ***! 2685 \***********************************************************/ 2686/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2687 2688/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2689/* harmony export */ "default": () => (/* binding */ debounce) 2690/* harmony export */ }); 2691function debounce(fn) { 2692 var pending; 2693 return function () { 2694 if (!pending) { 2695 pending = new Promise(function (resolve) { 2696 Promise.resolve().then(function () { 2697 pending = undefined; 2698 resolve(fn()); 2699 }); 2700 }); 2701 } 2702 2703 return pending; 2704 }; 2705} 2706 2707/***/ }), 2708
vendor: 6,168 bytes, lines 2709-2794
2709/***/ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js": 2710/*!*****************************************************************!*\ 2711 !*** ./node_modules/@popperjs/core/lib/utils/detectOverflow.js ***! 2712 \*****************************************************************/ 2713/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2714 2715/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2716/* harmony export */ "default": () => (/* binding */ detectOverflow) 2717/* harmony export */ }); 2718/* harmony import */ var _dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-utils/getClippingRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js"); 2719/* harmony import */ var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dom-utils/getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 2720/* harmony import */ var _dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dom-utils/getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js"); 2721/* harmony import */ var _computeOffsets_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./computeOffsets.js */ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js"); 2722/* harmony import */ var _rectToClientRect_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./rectToClientRect.js */ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js"); 2723/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 2724/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 2725/* harmony import */ var _mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./mergePaddingObject.js */ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js"); 2726/* harmony import */ var _expandToHashMap_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./expandToHashMap.js */ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js"); 2727 2728 2729 2730 2731 2732 2733 2734 2735 // eslint-disable-next-line import/no-unused-modules 2736 2737function detectOverflow(state, options) { 2738 if (options === void 0) { 2739 options = {}; 2740 } 2741 2742 var _options = options, 2743 _options$placement = _options.placement, 2744 placement = _options$placement === void 0 ? state.placement : _options$placement, 2745 _options$strategy = _options.strategy, 2746 strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, 2747 _options$boundary = _options.boundary, 2748 boundary = _options$boundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.clippingParents : _options$boundary, 2749 _options$rootBoundary = _options.rootBoundary, 2750 rootBoundary = _options$rootBoundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.viewport : _options$rootBoundary, 2751 _options$elementConte = _options.elementContext, 2752 elementContext = _options$elementConte === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.popper : _options$elementConte, 2753 _options$altBoundary = _options.altBoundary, 2754 altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, 2755 _options$padding = _options.padding, 2756 padding = _options$padding === void 0 ? 0 : _options$padding; 2757 var paddingObject = (0,_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_7__["default"])(typeof padding !== 'number' ? padding : (0,_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_8__["default"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_5__.basePlacements)); 2758 var altContext = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_5__.popper ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.reference : _enums_js__WEBPACK_IMPORTED_MODULE_5__.popper; 2759 var popperRect = state.rects.popper; 2760 var element = state.elements[altBoundary ? altContext : elementContext]; 2761 var clippingClientRect = (0,_dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_6__.isElement)(element) ? element : element.contextElement || (0,_dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state.elements.popper), boundary, rootBoundary, strategy); 2762 var referenceClientRect = (0,_dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_2__["default"])(state.elements.reference); 2763 var popperOffsets = (0,_computeOffsets_js__WEBPACK_IMPORTED_MODULE_3__["default"])({ 2764 reference: referenceClientRect, 2765 element: popperRect, 2766 strategy: 'absolute', 2767 placement: placement 2768 }); 2769 var popperClientRect = (0,_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_4__["default"])(Object.assign({}, popperRect, popperOffsets)); 2770 var elementClientRect = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_5__.popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect 2771 // 0 or negative = within the clipping rect 2772 2773 var overflowOffsets = { 2774 top: clippingClientRect.top - elementClientRect.top + paddingObject.top, 2775 bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, 2776 left: clippingClientRect.left - elementClientRect.left + paddingObject.left, 2777 right: elementClientRect.right - clippingClientRect.right + paddingObject.right 2778 }; 2779 var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element 2780 2781 if (elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_5__.popper && offsetData) { 2782 var offset = offsetData[placement]; 2783 Object.keys(overflowOffsets).forEach(function (key) { 2784 var multiply = [_enums_js__WEBPACK_IMPORTED_MODULE_5__.right, _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom].indexOf(key) >= 0 ? 1 : -1; 2785 var axis = [_enums_js__WEBPACK_IMPORTED_MODULE_5__.top, _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom].indexOf(key) >= 0 ? 'y' : 'x'; 2786 overflowOffsets[key] += offset[axis] * multiply; 2787 }); 2788 } 2789 2790 return overflowOffsets; 2791} 2792 2793/***/ }), 2794
vendor: 684 bytes, lines 2795-2812
2795/***/ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js": 2796/*!******************************************************************!*\ 2797 !*** ./node_modules/@popperjs/core/lib/utils/expandToHashMap.js ***! 2798 \******************************************************************/ 2799/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2800 2801/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2802/* harmony export */ "default": () => (/* binding */ expandToHashMap) 2803/* harmony export */ }); 2804function expandToHashMap(value, keys) { 2805 return keys.reduce(function (hashMap, key) { 2806 hashMap[key] = value; 2807 return hashMap; 2808 }, {}); 2809} 2810 2811/***/ }), 2812
vendor: 579 bytes, lines 2813-2827
2813/***/ "./node_modules/@popperjs/core/lib/utils/getAltAxis.js": 2814/*!*************************************************************!*\ 2815 !*** ./node_modules/@popperjs/core/lib/utils/getAltAxis.js ***! 2816 \*************************************************************/ 2817/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2818 2819/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2820/* harmony export */ "default": () => (/* binding */ getAltAxis) 2821/* harmony export */ }); 2822function getAltAxis(axis) { 2823 return axis === 'x' ? 'y' : 'x'; 2824} 2825 2826/***/ }), 2827
vendor: 620 bytes, lines 2828-2843
2828/***/ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js": 2829/*!*******************************************************************!*\ 2830 !*** ./node_modules/@popperjs/core/lib/utils/getBasePlacement.js ***! 2831 \*******************************************************************/ 2832/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2833 2834/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2835/* harmony export */ "default": () => (/* binding */ getBasePlacement) 2836/* harmony export */ }); 2837 2838function getBasePlacement(placement) { 2839 return placement.split('-')[0]; 2840} 2841 2842/***/ }), 2843
vendor: 657 bytes, lines 2844-2863
2844/***/ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js": 2845/*!*********************************************************************!*\ 2846 !*** ./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js ***! 2847 \*********************************************************************/ 2848/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2849 2850/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2851/* harmony export */ "default": () => (/* binding */ getFreshSideObject) 2852/* harmony export */ }); 2853function getFreshSideObject() { 2854 return { 2855 top: 0, 2856 right: 0, 2857 bottom: 0, 2858 left: 0 2859 }; 2860} 2861 2862/***/ }), 2863
vendor: 697 bytes, lines 2864-2878
2864/***/ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js": 2865/*!***************************************************************************!*\ 2866 !*** ./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js ***! 2867 \***************************************************************************/ 2868/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2869 2870/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2871/* harmony export */ "default": () => (/* binding */ getMainAxisFromPlacement) 2872/* harmony export */ }); 2873function getMainAxisFromPlacement(placement) { 2874 return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y'; 2875} 2876 2877/***/ }), 2878
vendor: 798 bytes, lines 2879-2901
2879/***/ "./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js": 2880/*!***********************************************************************!*\ 2881 !*** ./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js ***! 2882 \***********************************************************************/ 2883/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2884 2885/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2886/* harmony export */ "default": () => (/* binding */ getOppositePlacement) 2887/* harmony export */ }); 2888var hash = { 2889 left: 'right', 2890 right: 'left', 2891 bottom: 'top', 2892 top: 'bottom' 2893}; 2894function getOppositePlacement(placement) { 2895 return placement.replace(/left|right|bottom|top/g, function (matched) { 2896 return hash[matched]; 2897 }); 2898} 2899 2900/***/ }), 2901
vendor: 804 bytes, lines 2902-2922
2902/***/ "./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js": 2903/*!********************************************************************************!*\ 2904 !*** ./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js ***! 2905 \********************************************************************************/ 2906/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2907 2908/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2909/* harmony export */ "default": () => (/* binding */ getOppositeVariationPlacement) 2910/* harmony export */ }); 2911var hash = { 2912 start: 'end', 2913 end: 'start' 2914}; 2915function getOppositeVariationPlacement(placement) { 2916 return placement.replace(/start|end/g, function (matched) { 2917 return hash[matched]; 2918 }); 2919} 2920 2921/***/ }), 2922
vendor: 595 bytes, lines 2923-2937
2923/***/ "./node_modules/@popperjs/core/lib/utils/getVariation.js": 2924/*!***************************************************************!*\ 2925 !*** ./node_modules/@popperjs/core/lib/utils/getVariation.js ***! 2926 \***************************************************************/ 2927/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2928 2929/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2930/* harmony export */ "default": () => (/* binding */ getVariation) 2931/* harmony export */ }); 2932function getVariation(placement) { 2933 return placement.split('-')[1]; 2934} 2935 2936/***/ }), 2937
vendor: 655 bytes, lines 2938-2954
2938/***/ "./node_modules/@popperjs/core/lib/utils/math.js": 2939/*!*******************************************************!*\ 2940 !*** ./node_modules/@popperjs/core/lib/utils/math.js ***! 2941 \*******************************************************/ 2942/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2943 2944/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2945/* harmony export */ max: () => (/* binding */ max), 2946/* harmony export */ min: () => (/* binding */ min), 2947/* harmony export */ round: () => (/* binding */ round) 2948/* harmony export */ }); 2949var max = Math.max; 2950var min = Math.min; 2951var round = Math.round; 2952 2953/***/ }), 2954
vendor: 1,029 bytes, lines 2955-2980
2955/***/ "./node_modules/@popperjs/core/lib/utils/mergeByName.js": 2956/*!**************************************************************!*\ 2957 !*** ./node_modules/@popperjs/core/lib/utils/mergeByName.js ***! 2958 \**************************************************************/ 2959/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2960 2961/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2962/* harmony export */ "default": () => (/* binding */ mergeByName) 2963/* harmony export */ }); 2964function mergeByName(modifiers) { 2965 var merged = modifiers.reduce(function (merged, current) { 2966 var existing = merged[current.name]; 2967 merged[current.name] = existing ? Object.assign({}, existing, current, { 2968 options: Object.assign({}, existing.options, current.options), 2969 data: Object.assign({}, existing.data, current.data) 2970 }) : current; 2971 return merged; 2972 }, {}); // IE11 does not support Object.values 2973 2974 return Object.keys(merged).map(function (key) { 2975 return merged[key]; 2976 }); 2977} 2978 2979/***/ }), 2980
vendor: 911 bytes, lines 2981-2997
2981/***/ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js": 2982/*!*********************************************************************!*\ 2983 !*** ./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js ***! 2984 \*********************************************************************/ 2985/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2986 2987/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2988/* harmony export */ "default": () => (/* binding */ mergePaddingObject) 2989/* harmony export */ }); 2990/* harmony import */ var _getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getFreshSideObject.js */ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js"); 2991 2992function mergePaddingObject(paddingObject) { 2993 return Object.assign({}, (0,_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__["default"])(), paddingObject); 2994} 2995 2996/***/ }), 2997
vendor: 1,906 bytes, lines 2998-3054
2998/***/ "./node_modules/@popperjs/core/lib/utils/orderModifiers.js": 2999/*!*****************************************************************!*\ 3000 !*** ./node_modules/@popperjs/core/lib/utils/orderModifiers.js ***! 3001 \*****************************************************************/ 3002/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 3003 3004/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3005/* harmony export */ "default": () => (/* binding */ orderModifiers) 3006/* harmony export */ }); 3007/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 3008 // source: https://stackoverflow.com/questions/49875255 3009 3010function order(modifiers) { 3011 var map = new Map(); 3012 var visited = new Set(); 3013 var result = []; 3014 modifiers.forEach(function (modifier) { 3015 map.set(modifier.name, modifier); 3016 }); // On visiting object, check for its dependencies and visit them recursively 3017 3018 function sort(modifier) { 3019 visited.add(modifier.name); 3020 var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); 3021 requires.forEach(function (dep) { 3022 if (!visited.has(dep)) { 3023 var depModifier = map.get(dep); 3024 3025 if (depModifier) { 3026 sort(depModifier); 3027 } 3028 } 3029 }); 3030 result.push(modifier); 3031 } 3032 3033 modifiers.forEach(function (modifier) { 3034 if (!visited.has(modifier.name)) { 3035 // check for visited object 3036 sort(modifier); 3037 } 3038 }); 3039 return result; 3040} 3041 3042function orderModifiers(modifiers) { 3043 // order based on dependencies 3044 var orderedModifiers = order(modifiers); // order based on phase 3045 3046 return _enums_js__WEBPACK_IMPORTED_MODULE_0__.modifierPhases.reduce(function (acc, phase) { 3047 return acc.concat(orderedModifiers.filter(function (modifier) { 3048 return modifier.phase === phase; 3049 })); 3050 }, []); 3051} 3052 3053/***/ }), 3054
vendor: 721 bytes, lines 3055-3074
3055/***/ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js": 3056/*!*******************************************************************!*\ 3057 !*** ./node_modules/@popperjs/core/lib/utils/rectToClientRect.js ***! 3058 \*******************************************************************/ 3059/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 3060 3061/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3062/* harmony export */ "default": () => (/* binding */ rectToClientRect) 3063/* harmony export */ }); 3064function rectToClientRect(rect) { 3065 return Object.assign({}, rect, { 3066 left: rect.x, 3067 top: rect.y, 3068 right: rect.x + rect.width, 3069 bottom: rect.y + rect.height 3070 }); 3071} 3072 3073/***/ }), 3074
vendor: 798 bytes, lines 3075-3097
3075/***/ "./node_modules/@popperjs/core/lib/utils/userAgent.js": 3076/*!************************************************************!*\ 3077 !*** ./node_modules/@popperjs/core/lib/utils/userAgent.js ***! 3078 \************************************************************/ 3079/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 3080 3081/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3082/* harmony export */ "default": () => (/* binding */ getUAString) 3083/* harmony export */ }); 3084function getUAString() { 3085 var uaData = navigator.userAgentData; 3086 3087 if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) { 3088 return uaData.brands.map(function (item) { 3089 return item.brand + "/" + item.version; 3090 }).join(' '); 3091 } 3092 3093 return navigator.userAgent; 3094} 3095 3096/***/ }), 3097
vendor: 988 bytes, lines 3098-3119
3098/***/ "./node_modules/@popperjs/core/lib/utils/within.js": 3099/*!*********************************************************!*\ 3100 !*** ./node_modules/@popperjs/core/lib/utils/within.js ***! 3101 \*********************************************************/ 3102/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 3103 3104/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3105/* harmony export */ within: () => (/* binding */ within), 3106/* harmony export */ withinMaxClamp: () => (/* binding */ withinMaxClamp) 3107/* harmony export */ }); 3108/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 3109 3110function within(min, value, max) { 3111 return (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.max)(min, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.min)(value, max)); 3112} 3113function withinMaxClamp(min, value, max) { 3114 var v = within(min, value, max); 3115 return v > max ? max : v; 3116} 3117 3118/***/ }), 3119
vendor: 136,885 bytes, lines 3120-7582
3120/***/ "./node_modules/bootstrap/dist/js/bootstrap.esm.js": 3121/*!*********************************************************!*\ 3122 !*** ./node_modules/bootstrap/dist/js/bootstrap.esm.js ***! 3123 \*********************************************************/ 3124/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 3125 3126/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3127/* harmony export */ Carousel: () => (/* binding */ Carousel), 3128/* harmony export */ Tooltip: () => (/* binding */ Tooltip) 3129/* harmony export */ }); 3130/* unused harmony exports Alert, Button, Collapse, Dropdown, Modal, Offcanvas, Popover, ScrollSpy, Tab, Toast */ 3131/* harmony import */ var _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @popperjs/core */ "./node_modules/@popperjs/core/lib/index.js"); 3132/* harmony import */ var _popperjs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @popperjs/core */ "./node_modules/@popperjs/core/lib/popper.js"); 3133/*! 3134 * Bootstrap v5.3.8 (https://getbootstrap.com/) 3135 * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 3136 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 3137 */ 3138 3139 3140/** 3141 * -------------------------------------------------------------------------- 3142 * Bootstrap dom/data.js 3143 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 3144 * -------------------------------------------------------------------------- 3145 */ 3146 3147/** 3148 * Constants 3149 */ 3150 3151const elementMap = new Map(); 3152const Data = { 3153 set(element, key, instance) { 3154 if (!elementMap.has(element)) { 3155 elementMap.set(element, new Map()); 3156 } 3157 const instanceMap = elementMap.get(element); 3158 3159 // make it clear we only want one instance per element 3160 // can be removed later when multiple key/instances are fine to be used 3161 if (!instanceMap.has(key) && instanceMap.size !== 0) { 3162 // eslint-disable-next-line no-console 3163 console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`); 3164 return; 3165 } 3166 instanceMap.set(key, instance); 3167 }, 3168 get(element, key) { 3169 if (elementMap.has(element)) { 3170 return elementMap.get(element).get(key) || null; 3171 } 3172 return null; 3173 }, 3174 remove(element, key) { 3175 if (!elementMap.has(element)) { 3176 return; 3177 } 3178 const instanceMap = elementMap.get(element); 3179 instanceMap.delete(key); 3180 3181 // free up element references if there are no instances left for an element 3182 if (instanceMap.size === 0) { 3183 elementMap.delete(element); 3184 } 3185 } 3186}; 3187 3188/** 3189 * -------------------------------------------------------------------------- 3190 * Bootstrap util/index.js 3191 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 3192 * -------------------------------------------------------------------------- 3193 */ 3194 3195const MAX_UID = 1000000; 3196const MILLISECONDS_MULTIPLIER = 1000; 3197const TRANSITION_END = 'transitionend'; 3198 3199/** 3200 * Properly escape IDs selectors to handle weird IDs 3201 * @param {string} selector 3202 * @returns {string} 3203 */ 3204const parseSelector = selector => { 3205 if (selector && window.CSS && window.CSS.escape) { 3206 // document.querySelector needs escaping to handle IDs (html5+) containing for instance / 3207 selector = selector.replace(/#([^\s"#']+)/g, (match, id) => `#${CSS.escape(id)}`); 3208 } 3209 return selector; 3210}; 3211 3212// Shout-out Angus Croll (https://goo.gl/pxwQGp) 3213const toType = object => { 3214 if (object === null || object === undefined) { 3215 return `${object}`; 3216 } 3217 return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); 3218}; 3219 3220/** 3221 * Public Util API 3222 */ 3223 3224const getUID = prefix => { 3225 do { 3226 prefix += Math.floor(Math.random() * MAX_UID); 3227 } while (document.getElementById(prefix)); 3228 return prefix; 3229}; 3230const getTransitionDurationFromElement = element => { 3231 if (!element) { 3232 return 0; 3233 } 3234 3235 // Get transition-duration of the element 3236 let { 3237 transitionDuration, 3238 transitionDelay 3239 } = window.getComputedStyle(element); 3240 const floatTransitionDuration = Number.parseFloat(transitionDuration); 3241 const floatTransitionDelay = Number.parseFloat(transitionDelay); 3242 3243 // Return 0 if element or transition duration is not found 3244 if (!floatTransitionDuration && !floatTransitionDelay) { 3245 return 0; 3246 } 3247 3248 // If multiple durations are defined, take the first 3249 transitionDuration = transitionDuration.split(',')[0]; 3250 transitionDelay = transitionDelay.split(',')[0]; 3251 return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; 3252}; 3253const triggerTransitionEnd = element => { 3254 element.dispatchEvent(new Event(TRANSITION_END)); 3255}; 3256const isElement = object => { 3257 if (!object || typeof object !== 'object') { 3258 return false; 3259 } 3260 if (typeof object.jquery !== 'undefined') { 3261 object = object[0]; 3262 } 3263 return typeof object.nodeType !== 'undefined'; 3264}; 3265const getElement = object => { 3266 // it's a jQuery object or a node element 3267 if (isElement(object)) { 3268 return object.jquery ? object[0] : object; 3269 } 3270 if (typeof object === 'string' && object.length > 0) { 3271 return document.querySelector(parseSelector(object)); 3272 } 3273 return null; 3274}; 3275const isVisible = element => { 3276 if (!isElement(element) || element.getClientRects().length === 0) { 3277 return false; 3278 } 3279 const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; 3280 // Handle `details` element as its content may falsie appear visible when it is closed 3281 const closedDetails = element.closest('details:not([open])'); 3282 if (!closedDetails) { 3283 return elementIsVisible; 3284 } 3285 if (closedDetails !== element) { 3286 const summary = element.closest('summary'); 3287 if (summary && summary.parentNode !== closedDetails) { 3288 return false; 3289 } 3290 if (summary === null) { 3291 return false; 3292 } 3293 } 3294 return elementIsVisible; 3295}; 3296const isDisabled = element => { 3297 if (!element || element.nodeType !== Node.ELEMENT_NODE) { 3298 return true; 3299 } 3300 if (element.classList.contains('disabled')) { 3301 return true; 3302 } 3303 if (typeof element.disabled !== 'undefined') { 3304 return element.disabled; 3305 } 3306 return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'; 3307}; 3308const findShadowRoot = element => { 3309 if (!document.documentElement.attachShadow) { 3310 return null; 3311 } 3312 3313 // Can find the shadow root otherwise it'll return the document 3314 if (typeof element.getRootNode === 'function') { 3315 const root = element.getRootNode(); 3316 return root instanceof ShadowRoot ? root : null; 3317 } 3318 if (element instanceof ShadowRoot) { 3319 return element; 3320 } 3321 3322 // when we don't find a shadow root 3323 if (!element.parentNode) { 3324 return null; 3325 } 3326 return findShadowRoot(element.parentNode); 3327}; 3328const noop = () => {}; 3329 3330/** 3331 * Trick to restart an element's animation 3332 * 3333 * @param {HTMLElement} element 3334 * @return void 3335 * 3336 * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation 3337 */ 3338const reflow = element => { 3339 element.offsetHeight; // eslint-disable-line no-unused-expressions 3340}; 3341const getjQuery = () => { 3342 if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { 3343 return window.jQuery; 3344 } 3345 return null; 3346}; 3347const DOMContentLoadedCallbacks = []; 3348const onDOMContentLoaded = callback => { 3349 if (document.readyState === 'loading') { 3350 // add listener on the first call when the document is in loading state 3351 if (!DOMContentLoadedCallbacks.length) { 3352 document.addEventListener('DOMContentLoaded', () => { 3353 for (const callback of DOMContentLoadedCallbacks) { 3354 callback(); 3355 } 3356 }); 3357 } 3358 DOMContentLoadedCallbacks.push(callback); 3359 } else { 3360 callback(); 3361 } 3362}; 3363const isRTL = () => document.documentElement.dir === 'rtl'; 3364const defineJQueryPlugin = plugin => { 3365 onDOMContentLoaded(() => { 3366 const $ = getjQuery(); 3367 /* istanbul ignore if */ 3368 if ($) { 3369 const name = plugin.NAME; 3370 const JQUERY_NO_CONFLICT = $.fn[name]; 3371 $.fn[name] = plugin.jQueryInterface; 3372 $.fn[name].Constructor = plugin; 3373 $.fn[name].noConflict = () => { 3374 $.fn[name] = JQUERY_NO_CONFLICT; 3375 return plugin.jQueryInterface; 3376 }; 3377 } 3378 }); 3379}; 3380const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => { 3381 return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue; 3382}; 3383const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => { 3384 if (!waitForTransition) { 3385 execute(callback); 3386 return; 3387 } 3388 const durationPadding = 5; 3389 const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding; 3390 let called = false; 3391 const handler = ({ 3392 target 3393 }) => { 3394 if (target !== transitionElement) { 3395 return; 3396 } 3397 called = true; 3398 transitionElement.removeEventListener(TRANSITION_END, handler); 3399 execute(callback); 3400 }; 3401 transitionElement.addEventListener(TRANSITION_END, handler); 3402 setTimeout(() => { 3403 if (!called) { 3404 triggerTransitionEnd(transitionElement); 3405 } 3406 }, emulatedDuration); 3407}; 3408 3409/** 3410 * Return the previous/next element of a list. 3411 * 3412 * @param {array} list The list of elements 3413 * @param activeElement The active element 3414 * @param shouldGetNext Choose to get next or previous element 3415 * @param isCycleAllowed 3416 * @return {Element|elem} The proper element 3417 */ 3418const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => { 3419 const listLength = list.length; 3420 let index = list.indexOf(activeElement); 3421 3422 // if the element does not exist in the list return an element 3423 // depending on the direction and if cycle is allowed 3424 if (index === -1) { 3425 return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]; 3426 } 3427 index += shouldGetNext ? 1 : -1; 3428 if (isCycleAllowed) { 3429 index = (index + listLength) % listLength; 3430 } 3431 return list[Math.max(0, Math.min(index, listLength - 1))]; 3432}; 3433 3434/** 3435 * -------------------------------------------------------------------------- 3436 * Bootstrap dom/event-handler.js 3437 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 3438 * -------------------------------------------------------------------------- 3439 */ 3440 3441 3442/** 3443 * Constants 3444 */ 3445 3446const namespaceRegex = /[^.]*(?=\..*)\.|.*/; 3447const stripNameRegex = /\..*/; 3448const stripUidRegex = /::\d+$/; 3449const eventRegistry = {}; // Events storage 3450let uidEvent = 1; 3451const customEvents = { 3452 mouseenter: 'mouseover', 3453 mouseleave: 'mouseout' 3454}; 3455const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); 3456 3457/** 3458 * Private methods 3459 */ 3460 3461function makeEventUid(element, uid) { 3462 return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; 3463} 3464function getElementEvents(element) { 3465 const uid = makeEventUid(element); 3466 element.uidEvent = uid; 3467 eventRegistry[uid] = eventRegistry[uid] || {}; 3468 return eventRegistry[uid]; 3469} 3470function bootstrapHandler(element, fn) { 3471 return function handler(event) { 3472 hydrateObj(event, { 3473 delegateTarget: element 3474 }); 3475 if (handler.oneOff) { 3476 EventHandler.off(element, event.type, fn); 3477 } 3478 return fn.apply(element, [event]); 3479 }; 3480} 3481function bootstrapDelegationHandler(element, selector, fn) { 3482 return function handler(event) { 3483 const domElements = element.querySelectorAll(selector); 3484 for (let { 3485 target 3486 } = event; target && target !== this; target = target.parentNode) { 3487 for (const domElement of domElements) { 3488 if (domElement !== target) { 3489 continue; 3490 } 3491 hydrateObj(event, { 3492 delegateTarget: target 3493 }); 3494 if (handler.oneOff) { 3495 EventHandler.off(element, event.type, selector, fn); 3496 } 3497 return fn.apply(target, [event]); 3498 } 3499 } 3500 }; 3501} 3502function findHandler(events, callable, delegationSelector = null) { 3503 return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector); 3504} 3505function normalizeParameters(originalTypeEvent, handler, delegationFunction) { 3506 const isDelegated = typeof handler === 'string'; 3507 // TODO: tooltip passes `false` instead of selector, so we need to check 3508 const callable = isDelegated ? delegationFunction : handler || delegationFunction; 3509 let typeEvent = getTypeEvent(originalTypeEvent); 3510 if (!nativeEvents.has(typeEvent)) { 3511 typeEvent = originalTypeEvent; 3512 } 3513 return [isDelegated, callable, typeEvent]; 3514} 3515function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) { 3516 if (typeof originalTypeEvent !== 'string' || !element) { 3517 return; 3518 } 3519 let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); 3520 3521 // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position 3522 // this prevents the handler from being dispatched the same way as mouseover or mouseout does 3523 if (originalTypeEvent in customEvents) { 3524 const wrapFunction = fn => { 3525 return function (event) { 3526 if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) { 3527 return fn.call(this, event); 3528 } 3529 }; 3530 }; 3531 callable = wrapFunction(callable); 3532 } 3533 const events = getElementEvents(element); 3534 const handlers = events[typeEvent] || (events[typeEvent] = {}); 3535 const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null); 3536 if (previousFunction) { 3537 previousFunction.oneOff = previousFunction.oneOff && oneOff; 3538 return; 3539 } 3540 const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, '')); 3541 const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable); 3542 fn.delegationSelector = isDelegated ? handler : null; 3543 fn.callable = callable; 3544 fn.oneOff = oneOff; 3545 fn.uidEvent = uid; 3546 handlers[uid] = fn; 3547 element.addEventListener(typeEvent, fn, isDelegated); 3548} 3549function removeHandler(element, events, typeEvent, handler, delegationSelector) { 3550 const fn = findHandler(events[typeEvent], handler, delegationSelector); 3551 if (!fn) { 3552 return; 3553 } 3554 element.removeEventListener(typeEvent, fn, Boolean(delegationSelector)); 3555 delete events[typeEvent][fn.uidEvent]; 3556} 3557function removeNamespacedHandlers(element, events, typeEvent, namespace) { 3558 const storeElementEvent = events[typeEvent] || {}; 3559 for (const [handlerKey, event] of Object.entries(storeElementEvent)) { 3560 if (handlerKey.includes(namespace)) { 3561 removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); 3562 } 3563 } 3564} 3565function getTypeEvent(event) { 3566 // allow to get the native events from namespaced events ('click.bs.button' --> 'click') 3567 event = event.replace(stripNameRegex, ''); 3568 return customEvents[event] || event; 3569} 3570const EventHandler = { 3571 on(element, event, handler, delegationFunction) { 3572 addHandler(element, event, handler, delegationFunction, false); 3573 }, 3574 one(element, event, handler, delegationFunction) { 3575 addHandler(element, event, handler, delegationFunction, true); 3576 }, 3577 off(element, originalTypeEvent, handler, delegationFunction) { 3578 if (typeof originalTypeEvent !== 'string' || !element) { 3579 return; 3580 } 3581 const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); 3582 const inNamespace = typeEvent !== originalTypeEvent; 3583 const events = getElementEvents(element); 3584 const storeElementEvent = events[typeEvent] || {}; 3585 const isNamespace = originalTypeEvent.startsWith('.'); 3586 if (typeof callable !== 'undefined') { 3587 // Simplest case: handler is passed, remove that listener ONLY. 3588 if (!Object.keys(storeElementEvent).length) { 3589 return; 3590 } 3591 removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null); 3592 return; 3593 } 3594 if (isNamespace) { 3595 for (const elementEvent of Object.keys(events)) { 3596 removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); 3597 } 3598 } 3599 for (const [keyHandlers, event] of Object.entries(storeElementEvent)) { 3600 const handlerKey = keyHandlers.replace(stripUidRegex, ''); 3601 if (!inNamespace || originalTypeEvent.includes(handlerKey)) { 3602 removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); 3603 } 3604 } 3605 }, 3606 trigger(element, event, args) { 3607 if (typeof event !== 'string' || !element) { 3608 return null; 3609 } 3610 const $ = getjQuery(); 3611 const typeEvent = getTypeEvent(event); 3612 const inNamespace = event !== typeEvent; 3613 let jQueryEvent = null; 3614 let bubbles = true; 3615 let nativeDispatch = true; 3616 let defaultPrevented = false; 3617 if (inNamespace && $) { 3618 jQueryEvent = $.Event(event, args); 3619 $(element).trigger(jQueryEvent); 3620 bubbles = !jQueryEvent.isPropagationStopped(); 3621 nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); 3622 defaultPrevented = jQueryEvent.isDefaultPrevented(); 3623 } 3624 const evt = hydrateObj(new Event(event, { 3625 bubbles, 3626 cancelable: true 3627 }), args); 3628 if (defaultPrevented) { 3629 evt.preventDefault(); 3630 } 3631 if (nativeDispatch) { 3632 element.dispatchEvent(evt); 3633 } 3634 if (evt.defaultPrevented && jQueryEvent) { 3635 jQueryEvent.preventDefault(); 3636 } 3637 return evt; 3638 } 3639}; 3640function hydrateObj(obj, meta = {}) { 3641 for (const [key, value] of Object.entries(meta)) { 3642 try { 3643 obj[key] = value; 3644 } catch (_unused) { 3645 Object.defineProperty(obj, key, { 3646 configurable: true, 3647 get() { 3648 return value; 3649 } 3650 }); 3651 } 3652 } 3653 return obj; 3654} 3655 3656/** 3657 * -------------------------------------------------------------------------- 3658 * Bootstrap dom/manipulator.js 3659 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 3660 * -------------------------------------------------------------------------- 3661 */ 3662 3663function normalizeData(value) { 3664 if (value === 'true') { 3665 return true; 3666 } 3667 if (value === 'false') { 3668 return false; 3669 } 3670 if (value === Number(value).toString()) { 3671 return Number(value); 3672 } 3673 if (value === '' || value === 'null') { 3674 return null; 3675 } 3676 if (typeof value !== 'string') { 3677 return value; 3678 } 3679 try { 3680 return JSON.parse(decodeURIComponent(value)); 3681 } catch (_unused) { 3682 return value; 3683 } 3684} 3685function normalizeDataKey(key) { 3686 return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); 3687} 3688const Manipulator = { 3689 setDataAttribute(element, key, value) { 3690 element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); 3691 }, 3692 removeDataAttribute(element, key) { 3693 element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); 3694 }, 3695 getDataAttributes(element) { 3696 if (!element) { 3697 return {}; 3698 } 3699 const attributes = {}; 3700 const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig')); 3701 for (const key of bsKeys) { 3702 let pureKey = key.replace(/^bs/, ''); 3703 pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1); 3704 attributes[pureKey] = normalizeData(element.dataset[key]); 3705 } 3706 return attributes; 3707 }, 3708 getDataAttribute(element, key) { 3709 return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); 3710 } 3711}; 3712 3713/** 3714 * -------------------------------------------------------------------------- 3715 * Bootstrap util/config.js 3716 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 3717 * -------------------------------------------------------------------------- 3718 */ 3719 3720 3721/** 3722 * Class definition 3723 */ 3724 3725class Config { 3726 // Getters 3727 static get Default() { 3728 return {}; 3729 } 3730 static get DefaultType() { 3731 return {}; 3732 } 3733 static get NAME() { 3734 throw new Error('You have to implement the static method "NAME", for each component!'); 3735 } 3736 _getConfig(config) { 3737 config = this._mergeConfigObj(config); 3738 config = this._configAfterMerge(config); 3739 this._typeCheckConfig(config); 3740 return config; 3741 } 3742 _configAfterMerge(config) { 3743 return config; 3744 } 3745 _mergeConfigObj(config, element) { 3746 const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse 3747 3748 return { 3749 ...this.constructor.Default, 3750 ...(typeof jsonConfig === 'object' ? jsonConfig : {}), 3751 ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}), 3752 ...(typeof config === 'object' ? config : {}) 3753 }; 3754 } 3755 _typeCheckConfig(config, configTypes = this.constructor.DefaultType) { 3756 for (const [property, expectedTypes] of Object.entries(configTypes)) { 3757 const value = config[property]; 3758 const valueType = isElement(value) ? 'element' : toType(value); 3759 if (!new RegExp(expectedTypes).test(valueType)) { 3760 throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); 3761 } 3762 } 3763 } 3764} 3765 3766/** 3767 * -------------------------------------------------------------------------- 3768 * Bootstrap base-component.js 3769 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 3770 * -------------------------------------------------------------------------- 3771 */ 3772 3773 3774/** 3775 * Constants 3776 */ 3777 3778const VERSION = '5.3.8'; 3779 3780/** 3781 * Class definition 3782 */ 3783 3784class BaseComponent extends Config { 3785 constructor(element, config) { 3786 super(); 3787 element = getElement(element); 3788 if (!element) { 3789 return; 3790 } 3791 this._element = element; 3792 this._config = this._getConfig(config); 3793 Data.set(this._element, this.constructor.DATA_KEY, this); 3794 } 3795 3796 // Public 3797 dispose() { 3798 Data.remove(this._element, this.constructor.DATA_KEY); 3799 EventHandler.off(this._element, this.constructor.EVENT_KEY); 3800 for (const propertyName of Object.getOwnPropertyNames(this)) { 3801 this[propertyName] = null; 3802 } 3803 } 3804 3805 // Private 3806 _queueCallback(callback, element, isAnimated = true) { 3807 executeAfterTransition(callback, element, isAnimated); 3808 } 3809 _getConfig(config) { 3810 config = this._mergeConfigObj(config, this._element); 3811 config = this._configAfterMerge(config); 3812 this._typeCheckConfig(config); 3813 return config; 3814 } 3815 3816 // Static 3817 static getInstance(element) { 3818 return Data.get(getElement(element), this.DATA_KEY); 3819 } 3820 static getOrCreateInstance(element, config = {}) { 3821 return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null); 3822 } 3823 static get VERSION() { 3824 return VERSION; 3825 } 3826 static get DATA_KEY() { 3827 return `bs.${this.NAME}`; 3828 } 3829 static get EVENT_KEY() { 3830 return `.${this.DATA_KEY}`; 3831 } 3832 static eventName(name) { 3833 return `${name}${this.EVENT_KEY}`; 3834 } 3835} 3836 3837/** 3838 * -------------------------------------------------------------------------- 3839 * Bootstrap dom/selector-engine.js 3840 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 3841 * -------------------------------------------------------------------------- 3842 */ 3843 3844const getSelector = element => { 3845 let selector = element.getAttribute('data-bs-target'); 3846 if (!selector || selector === '#') { 3847 let hrefAttribute = element.getAttribute('href'); 3848 3849 // The only valid content that could double as a selector are IDs or classes, 3850 // so everything starting with `#` or `.`. If a "real" URL is used as the selector, 3851 // `document.querySelector` will rightfully complain it is invalid. 3852 // See https://github.com/twbs/bootstrap/issues/32273 3853 if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) { 3854 return null; 3855 } 3856 3857 // Just in case some CMS puts out a full URL with the anchor appended 3858 if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) { 3859 hrefAttribute = `#${hrefAttribute.split('#')[1]}`; 3860 } 3861 selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null; 3862 } 3863 return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null; 3864}; 3865const SelectorEngine = { 3866 find(selector, element = document.documentElement) { 3867 return [].concat(...Element.prototype.querySelectorAll.call(element, selector)); 3868 }, 3869 findOne(selector, element = document.documentElement) { 3870 return Element.prototype.querySelector.call(element, selector); 3871 }, 3872 children(element, selector) { 3873 return [].concat(...element.children).filter(child => child.matches(selector)); 3874 }, 3875 parents(element, selector) { 3876 const parents = []; 3877 let ancestor = element.parentNode.closest(selector); 3878 while (ancestor) { 3879 parents.push(ancestor); 3880 ancestor = ancestor.parentNode.closest(selector); 3881 } 3882 return parents; 3883 }, 3884 prev(element, selector) { 3885 let previous = element.previousElementSibling; 3886 while (previous) { 3887 if (previous.matches(selector)) { 3888 return [previous]; 3889 } 3890 previous = previous.previousElementSibling; 3891 } 3892 return []; 3893 }, 3894 // TODO: this is now unused; remove later along with prev() 3895 next(element, selector) { 3896 let next = element.nextElementSibling; 3897 while (next) { 3898 if (next.matches(selector)) { 3899 return [next]; 3900 } 3901 next = next.nextElementSibling; 3902 } 3903 return []; 3904 }, 3905 focusableChildren(element) { 3906 const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(','); 3907 return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el)); 3908 }, 3909 getSelectorFromElement(element) { 3910 const selector = getSelector(element); 3911 if (selector) { 3912 return SelectorEngine.findOne(selector) ? selector : null; 3913 } 3914 return null; 3915 }, 3916 getElementFromSelector(element) { 3917 const selector = getSelector(element); 3918 return selector ? SelectorEngine.findOne(selector) : null; 3919 }, 3920 getMultipleElementsFromSelector(element) { 3921 const selector = getSelector(element); 3922 return selector ? SelectorEngine.find(selector) : []; 3923 } 3924}; 3925 3926/** 3927 * -------------------------------------------------------------------------- 3928 * Bootstrap util/component-functions.js 3929 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 3930 * -------------------------------------------------------------------------- 3931 */ 3932 3933const enableDismissTrigger = (component, method = 'hide') => { 3934 const clickEvent = `click.dismiss${component.EVENT_KEY}`; 3935 const name = component.NAME; 3936 EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) { 3937 if (['A', 'AREA'].includes(this.tagName)) { 3938 event.preventDefault(); 3939 } 3940 if (isDisabled(this)) { 3941 return; 3942 } 3943 const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`); 3944 const instance = component.getOrCreateInstance(target); 3945 3946 // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method 3947 instance[method](); 3948 }); 3949}; 3950 3951/** 3952 * -------------------------------------------------------------------------- 3953 * Bootstrap alert.js 3954 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 3955 * -------------------------------------------------------------------------- 3956 */ 3957 3958 3959/** 3960 * Constants 3961 */ 3962 3963const NAME$f = 'alert'; 3964const DATA_KEY$a = 'bs.alert'; 3965const EVENT_KEY$b = `.${DATA_KEY$a}`; 3966const EVENT_CLOSE = `close${EVENT_KEY$b}`; 3967const EVENT_CLOSED = `closed${EVENT_KEY$b}`; 3968const CLASS_NAME_FADE$5 = 'fade'; 3969const CLASS_NAME_SHOW$8 = 'show'; 3970 3971/** 3972 * Class definition 3973 */ 3974 3975class Alert extends BaseComponent { 3976 // Getters 3977 static get NAME() { 3978 return NAME$f; 3979 } 3980 3981 // Public 3982 close() { 3983 const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE); 3984 if (closeEvent.defaultPrevented) { 3985 return; 3986 } 3987 this._element.classList.remove(CLASS_NAME_SHOW$8); 3988 const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5); 3989 this._queueCallback(() => this._destroyElement(), this._element, isAnimated); 3990 } 3991 3992 // Private 3993 _destroyElement() { 3994 this._element.remove(); 3995 EventHandler.trigger(this._element, EVENT_CLOSED); 3996 this.dispose(); 3997 } 3998 3999 // Static 4000 static jQueryInterface(config) { 4001 return this.each(function () { 4002 const data = Alert.getOrCreateInstance(this); 4003 if (typeof config !== 'string') { 4004 return; 4005 } 4006 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 4007 throw new TypeError(`No method named "${config}"`); 4008 } 4009 data[config](this); 4010 }); 4011 } 4012} 4013 4014/** 4015 * Data API implementation 4016 */ 4017 4018enableDismissTrigger(Alert, 'close'); 4019 4020/** 4021 * jQuery 4022 */ 4023 4024defineJQueryPlugin(Alert); 4025 4026/** 4027 * -------------------------------------------------------------------------- 4028 * Bootstrap button.js 4029 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 4030 * -------------------------------------------------------------------------- 4031 */ 4032 4033 4034/** 4035 * Constants 4036 */ 4037 4038const NAME$e = 'button'; 4039const DATA_KEY$9 = 'bs.button'; 4040const EVENT_KEY$a = `.${DATA_KEY$9}`; 4041const DATA_API_KEY$6 = '.data-api'; 4042const CLASS_NAME_ACTIVE$3 = 'active'; 4043const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]'; 4044const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`; 4045 4046/** 4047 * Class definition 4048 */ 4049 4050class Button extends BaseComponent { 4051 // Getters 4052 static get NAME() { 4053 return NAME$e; 4054 } 4055 4056 // Public 4057 toggle() { 4058 // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method 4059 this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3)); 4060 } 4061 4062 // Static 4063 static jQueryInterface(config) { 4064 return this.each(function () { 4065 const data = Button.getOrCreateInstance(this); 4066 if (config === 'toggle') { 4067 data[config](); 4068 } 4069 }); 4070 } 4071} 4072 4073/** 4074 * Data API implementation 4075 */ 4076 4077EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => { 4078 event.preventDefault(); 4079 const button = event.target.closest(SELECTOR_DATA_TOGGLE$5); 4080 const data = Button.getOrCreateInstance(button); 4081 data.toggle(); 4082}); 4083 4084/** 4085 * jQuery 4086 */ 4087 4088defineJQueryPlugin(Button); 4089 4090/** 4091 * -------------------------------------------------------------------------- 4092 * Bootstrap util/swipe.js 4093 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 4094 * -------------------------------------------------------------------------- 4095 */ 4096 4097 4098/** 4099 * Constants 4100 */ 4101 4102const NAME$d = 'swipe'; 4103const EVENT_KEY$9 = '.bs.swipe'; 4104const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`; 4105const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`; 4106const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`; 4107const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`; 4108const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`; 4109const POINTER_TYPE_TOUCH = 'touch'; 4110const POINTER_TYPE_PEN = 'pen'; 4111const CLASS_NAME_POINTER_EVENT = 'pointer-event'; 4112const SWIPE_THRESHOLD = 40; 4113const Default$c = { 4114 endCallback: null, 4115 leftCallback: null, 4116 rightCallback: null 4117}; 4118const DefaultType$c = { 4119 endCallback: '(function|null)', 4120 leftCallback: '(function|null)', 4121 rightCallback: '(function|null)' 4122}; 4123 4124/** 4125 * Class definition 4126 */ 4127 4128class Swipe extends Config { 4129 constructor(element, config) { 4130 super(); 4131 this._element = element; 4132 if (!element || !Swipe.isSupported()) { 4133 return; 4134 } 4135 this._config = this._getConfig(config); 4136 this._deltaX = 0; 4137 this._supportPointerEvents = Boolean(window.PointerEvent); 4138 this._initEvents(); 4139 } 4140 4141 // Getters 4142 static get Default() { 4143 return Default$c; 4144 } 4145 static get DefaultType() { 4146 return DefaultType$c; 4147 } 4148 static get NAME() { 4149 return NAME$d; 4150 } 4151 4152 // Public 4153 dispose() { 4154 EventHandler.off(this._element, EVENT_KEY$9); 4155 } 4156 4157 // Private 4158 _start(event) { 4159 if (!this._supportPointerEvents) { 4160 this._deltaX = event.touches[0].clientX; 4161 return; 4162 } 4163 if (this._eventIsPointerPenTouch(event)) { 4164 this._deltaX = event.clientX; 4165 } 4166 } 4167 _end(event) { 4168 if (this._eventIsPointerPenTouch(event)) { 4169 this._deltaX = event.clientX - this._deltaX; 4170 } 4171 this._handleSwipe(); 4172 execute(this._config.endCallback); 4173 } 4174 _move(event) { 4175 this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX; 4176 } 4177 _handleSwipe() { 4178 const absDeltaX = Math.abs(this._deltaX); 4179 if (absDeltaX <= SWIPE_THRESHOLD) { 4180 return; 4181 } 4182 const direction = absDeltaX / this._deltaX; 4183 this._deltaX = 0; 4184 if (!direction) { 4185 return; 4186 } 4187 execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback); 4188 } 4189 _initEvents() { 4190 if (this._supportPointerEvents) { 4191 EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event)); 4192 EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event)); 4193 this._element.classList.add(CLASS_NAME_POINTER_EVENT); 4194 } else { 4195 EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event)); 4196 EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event)); 4197 EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event)); 4198 } 4199 } 4200 _eventIsPointerPenTouch(event) { 4201 return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH); 4202 } 4203 4204 // Static 4205 static isSupported() { 4206 return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; 4207 } 4208} 4209 4210/** 4211 * -------------------------------------------------------------------------- 4212 * Bootstrap carousel.js 4213 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 4214 * -------------------------------------------------------------------------- 4215 */ 4216 4217 4218/** 4219 * Constants 4220 */ 4221 4222const NAME$c = 'carousel'; 4223const DATA_KEY$8 = 'bs.carousel'; 4224const EVENT_KEY$8 = `.${DATA_KEY$8}`; 4225const DATA_API_KEY$5 = '.data-api'; 4226const ARROW_LEFT_KEY$1 = 'ArrowLeft'; 4227const ARROW_RIGHT_KEY$1 = 'ArrowRight'; 4228const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch 4229 4230const ORDER_NEXT = 'next'; 4231const ORDER_PREV = 'prev'; 4232const DIRECTION_LEFT = 'left'; 4233const DIRECTION_RIGHT = 'right'; 4234const EVENT_SLIDE = `slide${EVENT_KEY$8}`; 4235const EVENT_SLID = `slid${EVENT_KEY$8}`; 4236const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`; 4237const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`; 4238const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`; 4239const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`; 4240const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`; 4241const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`; 4242const CLASS_NAME_CAROUSEL = 'carousel'; 4243const CLASS_NAME_ACTIVE$2 = 'active'; 4244const CLASS_NAME_SLIDE = 'slide'; 4245const CLASS_NAME_END = 'carousel-item-end'; 4246const CLASS_NAME_START = 'carousel-item-start'; 4247const CLASS_NAME_NEXT = 'carousel-item-next'; 4248const CLASS_NAME_PREV = 'carousel-item-prev'; 4249const SELECTOR_ACTIVE = '.active'; 4250const SELECTOR_ITEM = '.carousel-item'; 4251const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM; 4252const SELECTOR_ITEM_IMG = '.carousel-item img'; 4253const SELECTOR_INDICATORS = '.carousel-indicators'; 4254const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; 4255const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; 4256const KEY_TO_DIRECTION = { 4257 [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT, 4258 [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT 4259}; 4260const Default$b = { 4261 interval: 5000, 4262 keyboard: true, 4263 pause: 'hover', 4264 ride: false, 4265 touch: true, 4266 wrap: true 4267}; 4268const DefaultType$b = { 4269 interval: '(number|boolean)', 4270 // TODO:v6 remove boolean support 4271 keyboard: 'boolean', 4272 pause: '(string|boolean)', 4273 ride: '(boolean|string)', 4274 touch: 'boolean', 4275 wrap: 'boolean' 4276}; 4277 4278/** 4279 * Class definition 4280 */ 4281 4282class Carousel extends BaseComponent { 4283 constructor(element, config) { 4284 super(element, config); 4285 this._interval = null; 4286 this._activeElement = null; 4287 this._isSliding = false; 4288 this.touchTimeout = null; 4289 this._swipeHelper = null; 4290 this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); 4291 this._addEventListeners(); 4292 if (this._config.ride === CLASS_NAME_CAROUSEL) { 4293 this.cycle(); 4294 } 4295 } 4296 4297 // Getters 4298 static get Default() { 4299 return Default$b; 4300 } 4301 static get DefaultType() { 4302 return DefaultType$b; 4303 } 4304 static get NAME() { 4305 return NAME$c; 4306 } 4307 4308 // Public 4309 next() { 4310 this._slide(ORDER_NEXT); 4311 } 4312 nextWhenVisible() { 4313 // FIXME TODO use `document.visibilityState` 4314 // Don't call next when the page isn't visible 4315 // or the carousel or its parent isn't visible 4316 if (!document.hidden && isVisible(this._element)) { 4317 this.next(); 4318 } 4319 } 4320 prev() { 4321 this._slide(ORDER_PREV); 4322 } 4323 pause() { 4324 if (this._isSliding) { 4325 triggerTransitionEnd(this._element); 4326 } 4327 this._clearInterval(); 4328 } 4329 cycle() { 4330 this._clearInterval(); 4331 this._updateInterval(); 4332 this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval); 4333 } 4334 _maybeEnableCycle() { 4335 if (!this._config.ride) { 4336 return; 4337 } 4338 if (this._isSliding) { 4339 EventHandler.one(this._element, EVENT_SLID, () => this.cycle()); 4340 return; 4341 } 4342 this.cycle(); 4343 } 4344 to(index) { 4345 const items = this._getItems(); 4346 if (index > items.length - 1 || index < 0) { 4347 return; 4348 } 4349 if (this._isSliding) { 4350 EventHandler.one(this._element, EVENT_SLID, () => this.to(index)); 4351 return; 4352 } 4353 const activeIndex = this._getItemIndex(this._getActive()); 4354 if (activeIndex === index) { 4355 return; 4356 } 4357 const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV; 4358 this._slide(order, items[index]); 4359 } 4360 dispose() { 4361 if (this._swipeHelper) { 4362 this._swipeHelper.dispose(); 4363 } 4364 super.dispose(); 4365 } 4366 4367 // Private 4368 _configAfterMerge(config) { 4369 config.defaultInterval = config.interval; 4370 return config; 4371 } 4372 _addEventListeners() { 4373 if (this._config.keyboard) { 4374 EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event)); 4375 } 4376 if (this._config.pause === 'hover') { 4377 EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause()); 4378 EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle()); 4379 } 4380 if (this._config.touch && Swipe.isSupported()) { 4381 this._addTouchEventListeners(); 4382 } 4383 } 4384 _addTouchEventListeners() { 4385 for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) { 4386 EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault()); 4387 } 4388 const endCallBack = () => { 4389 if (this._config.pause !== 'hover') { 4390 return; 4391 } 4392 4393 // If it's a touch-enabled device, mouseenter/leave are fired as 4394 // part of the mouse compatibility events on first tap - the carousel 4395 // would stop cycling until user tapped out of it; 4396 // here, we listen for touchend, explicitly pause the carousel 4397 // (as if it's the second time we tap on it, mouseenter compat event 4398 // is NOT fired) and after a timeout (to allow for mouse compatibility 4399 // events to fire) we explicitly restart cycling 4400 4401 this.pause(); 4402 if (this.touchTimeout) { 4403 clearTimeout(this.touchTimeout); 4404 } 4405 this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval); 4406 }; 4407 const swipeConfig = { 4408 leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)), 4409 rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)), 4410 endCallback: endCallBack 4411 }; 4412 this._swipeHelper = new Swipe(this._element, swipeConfig); 4413 } 4414 _keydown(event) { 4415 if (/input|textarea/i.test(event.target.tagName)) { 4416 return; 4417 } 4418 const direction = KEY_TO_DIRECTION[event.key]; 4419 if (direction) { 4420 event.preventDefault(); 4421 this._slide(this._directionToOrder(direction)); 4422 } 4423 } 4424 _getItemIndex(element) { 4425 return this._getItems().indexOf(element); 4426 } 4427 _setActiveIndicatorElement(index) { 4428 if (!this._indicatorsElement) { 4429 return; 4430 } 4431 const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement); 4432 activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); 4433 activeIndicator.removeAttribute('aria-current'); 4434 const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement); 4435 if (newActiveIndicator) { 4436 newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2); 4437 newActiveIndicator.setAttribute('aria-current', 'true'); 4438 } 4439 } 4440 _updateInterval() { 4441 const element = this._activeElement || this._getActive(); 4442 if (!element) { 4443 return; 4444 } 4445 const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); 4446 this._config.interval = elementInterval || this._config.defaultInterval; 4447 } 4448 _slide(order, element = null) { 4449 if (this._isSliding) { 4450 return; 4451 } 4452 const activeElement = this._getActive(); 4453 const isNext = order === ORDER_NEXT; 4454 const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap); 4455 if (nextElement === activeElement) { 4456 return; 4457 } 4458 const nextElementIndex = this._getItemIndex(nextElement); 4459 const triggerEvent = eventName => { 4460 return EventHandler.trigger(this._element, eventName, { 4461 relatedTarget: nextElement, 4462 direction: this._orderToDirection(order), 4463 from: this._getItemIndex(activeElement), 4464 to: nextElementIndex 4465 }); 4466 }; 4467 const slideEvent = triggerEvent(EVENT_SLIDE); 4468 if (slideEvent.defaultPrevented) { 4469 return; 4470 } 4471 if (!activeElement || !nextElement) { 4472 // Some weirdness is happening, so we bail 4473 // TODO: change tests that use empty divs to avoid this check 4474 return; 4475 } 4476 const isCycling = Boolean(this._interval); 4477 this.pause(); 4478 this._isSliding = true; 4479 this._setActiveIndicatorElement(nextElementIndex); 4480 this._activeElement = nextElement; 4481 const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; 4482 const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; 4483 nextElement.classList.add(orderClassName); 4484 reflow(nextElement); 4485 activeElement.classList.add(directionalClassName); 4486 nextElement.classList.add(directionalClassName); 4487 const completeCallBack = () => { 4488 nextElement.classList.remove(directionalClassName, orderClassName); 4489 nextElement.classList.add(CLASS_NAME_ACTIVE$2); 4490 activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); 4491 this._isSliding = false; 4492 triggerEvent(EVENT_SLID); 4493 }; 4494 this._queueCallback(completeCallBack, activeElement, this._isAnimated()); 4495 if (isCycling) { 4496 this.cycle(); 4497 } 4498 } 4499 _isAnimated() { 4500 return this._element.classList.contains(CLASS_NAME_SLIDE); 4501 } 4502 _getActive() { 4503 return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); 4504 } 4505 _getItems() { 4506 return SelectorEngine.find(SELECTOR_ITEM, this._element); 4507 } 4508 _clearInterval() { 4509 if (this._interval) { 4510 clearInterval(this._interval); 4511 this._interval = null; 4512 } 4513 } 4514 _directionToOrder(direction) { 4515 if (isRTL()) { 4516 return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT; 4517 } 4518 return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV; 4519 } 4520 _orderToDirection(order) { 4521 if (isRTL()) { 4522 return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT; 4523 } 4524 return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT; 4525 } 4526 4527 // Static 4528 static jQueryInterface(config) { 4529 return this.each(function () { 4530 const data = Carousel.getOrCreateInstance(this, config); 4531 if (typeof config === 'number') { 4532 data.to(config); 4533 return; 4534 } 4535 if (typeof config === 'string') { 4536 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 4537 throw new TypeError(`No method named "${config}"`); 4538 } 4539 data[config](); 4540 } 4541 }); 4542 } 4543} 4544 4545/** 4546 * Data API implementation 4547 */ 4548 4549EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) { 4550 const target = SelectorEngine.getElementFromSelector(this); 4551 if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { 4552 return; 4553 } 4554 event.preventDefault(); 4555 const carousel = Carousel.getOrCreateInstance(target); 4556 const slideIndex = this.getAttribute('data-bs-slide-to'); 4557 if (slideIndex) { 4558 carousel.to(slideIndex); 4559 carousel._maybeEnableCycle(); 4560 return; 4561 } 4562 if (Manipulator.getDataAttribute(this, 'slide') === 'next') { 4563 carousel.next(); 4564 carousel._maybeEnableCycle(); 4565 return; 4566 } 4567 carousel.prev(); 4568 carousel._maybeEnableCycle(); 4569}); 4570EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => { 4571 const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); 4572 for (const carousel of carousels) { 4573 Carousel.getOrCreateInstance(carousel); 4574 } 4575}); 4576 4577/** 4578 * jQuery 4579 */ 4580 4581defineJQueryPlugin(Carousel); 4582 4583/** 4584 * -------------------------------------------------------------------------- 4585 * Bootstrap collapse.js 4586 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 4587 * -------------------------------------------------------------------------- 4588 */ 4589 4590 4591/** 4592 * Constants 4593 */ 4594 4595const NAME$b = 'collapse'; 4596const DATA_KEY$7 = 'bs.collapse'; 4597const EVENT_KEY$7 = `.${DATA_KEY$7}`; 4598const DATA_API_KEY$4 = '.data-api'; 4599const EVENT_SHOW$6 = `show${EVENT_KEY$7}`; 4600const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`; 4601const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`; 4602const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`; 4603const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`; 4604const CLASS_NAME_SHOW$7 = 'show'; 4605const CLASS_NAME_COLLAPSE = 'collapse'; 4606const CLASS_NAME_COLLAPSING = 'collapsing'; 4607const CLASS_NAME_COLLAPSED = 'collapsed'; 4608const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`; 4609const CLASS_NAME_HORIZONTAL = 'collapse-horizontal'; 4610const WIDTH = 'width'; 4611const HEIGHT = 'height'; 4612const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'; 4613const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]'; 4614const Default$a = { 4615 parent: null, 4616 toggle: true 4617}; 4618const DefaultType$a = { 4619 parent: '(null|element)', 4620 toggle: 'boolean' 4621}; 4622 4623/** 4624 * Class definition 4625 */ 4626 4627class Collapse extends BaseComponent { 4628 constructor(element, config) { 4629 super(element, config); 4630 this._isTransitioning = false; 4631 this._triggerArray = []; 4632 const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4); 4633 for (const elem of toggleList) { 4634 const selector = SelectorEngine.getSelectorFromElement(elem); 4635 const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element); 4636 if (selector !== null && filterElement.length) { 4637 this._triggerArray.push(elem); 4638 } 4639 } 4640 this._initializeChildren(); 4641 if (!this._config.parent) { 4642 this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()); 4643 } 4644 if (this._config.toggle) { 4645 this.toggle(); 4646 } 4647 } 4648 4649 // Getters 4650 static get Default() { 4651 return Default$a; 4652 } 4653 static get DefaultType() { 4654 return DefaultType$a; 4655 } 4656 static get NAME() { 4657 return NAME$b; 4658 } 4659 4660 // Public 4661 toggle() { 4662 if (this._isShown()) { 4663 this.hide(); 4664 } else { 4665 this.show(); 4666 } 4667 } 4668 show() { 4669 if (this._isTransitioning || this._isShown()) { 4670 return; 4671 } 4672 let activeChildren = []; 4673 4674 // find active children 4675 if (this._config.parent) { 4676 activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, { 4677 toggle: false 4678 })); 4679 } 4680 if (activeChildren.length && activeChildren[0]._isTransitioning) { 4681 return; 4682 } 4683 const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6); 4684 if (startEvent.defaultPrevented) { 4685 return; 4686 } 4687 for (const activeInstance of activeChildren) { 4688 activeInstance.hide(); 4689 } 4690 const dimension = this._getDimension(); 4691 this._element.classList.remove(CLASS_NAME_COLLAPSE); 4692 this._element.classList.add(CLASS_NAME_COLLAPSING); 4693 this._element.style[dimension] = 0; 4694 this._addAriaAndCollapsedClass(this._triggerArray, true); 4695 this._isTransitioning = true; 4696 const complete = () => { 4697 this._isTransitioning = false; 4698 this._element.classList.remove(CLASS_NAME_COLLAPSING); 4699 this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); 4700 this._element.style[dimension] = ''; 4701 EventHandler.trigger(this._element, EVENT_SHOWN$6); 4702 }; 4703 const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); 4704 const scrollSize = `scroll${capitalizedDimension}`; 4705 this._queueCallback(complete, this._element, true); 4706 this._element.style[dimension] = `${this._element[scrollSize]}px`; 4707 } 4708 hide() { 4709 if (this._isTransitioning || !this._isShown()) { 4710 return; 4711 } 4712 const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6); 4713 if (startEvent.defaultPrevented) { 4714 return; 4715 } 4716 const dimension = this._getDimension(); 4717 this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; 4718 reflow(this._element); 4719 this._element.classList.add(CLASS_NAME_COLLAPSING); 4720 this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); 4721 for (const trigger of this._triggerArray) { 4722 const element = SelectorEngine.getElementFromSelector(trigger); 4723 if (element && !this._isShown(element)) { 4724 this._addAriaAndCollapsedClass([trigger], false); 4725 } 4726 } 4727 this._isTransitioning = true; 4728 const complete = () => { 4729 this._isTransitioning = false; 4730 this._element.classList.remove(CLASS_NAME_COLLAPSING); 4731 this._element.classList.add(CLASS_NAME_COLLAPSE); 4732 EventHandler.trigger(this._element, EVENT_HIDDEN$6); 4733 }; 4734 this._element.style[dimension] = ''; 4735 this._queueCallback(complete, this._element, true); 4736 } 4737 4738 // Private 4739 _isShown(element = this._element) { 4740 return element.classList.contains(CLASS_NAME_SHOW$7); 4741 } 4742 _configAfterMerge(config) { 4743 config.toggle = Boolean(config.toggle); // Coerce string values 4744 config.parent = getElement(config.parent); 4745 return config; 4746 } 4747 _getDimension() { 4748 return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT; 4749 } 4750 _initializeChildren() { 4751 if (!this._config.parent) { 4752 return; 4753 } 4754 const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4); 4755 for (const element of children) { 4756 const selected = SelectorEngine.getElementFromSelector(element); 4757 if (selected) { 4758 this._addAriaAndCollapsedClass([element], this._isShown(selected)); 4759 } 4760 } 4761 } 4762 _getFirstLevelChildren(selector) { 4763 const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); 4764 // remove children if greater depth 4765 return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element)); 4766 } 4767 _addAriaAndCollapsedClass(triggerArray, isOpen) { 4768 if (!triggerArray.length) { 4769 return; 4770 } 4771 for (const element of triggerArray) { 4772 element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen); 4773 element.setAttribute('aria-expanded', isOpen); 4774 } 4775 } 4776 4777 // Static 4778 static jQueryInterface(config) { 4779 const _config = {}; 4780 if (typeof config === 'string' && /show|hide/.test(config)) { 4781 _config.toggle = false; 4782 } 4783 return this.each(function () { 4784 const data = Collapse.getOrCreateInstance(this, _config); 4785 if (typeof config === 'string') { 4786 if (typeof data[config] === 'undefined') { 4787 throw new TypeError(`No method named "${config}"`); 4788 } 4789 data[config](); 4790 } 4791 }); 4792 } 4793} 4794 4795/** 4796 * Data API implementation 4797 */ 4798 4799EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) { 4800 // preventDefault only for <a> elements (which change the URL) not inside the collapsible element 4801 if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') { 4802 event.preventDefault(); 4803 } 4804 for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) { 4805 Collapse.getOrCreateInstance(element, { 4806 toggle: false 4807 }).toggle(); 4808 } 4809}); 4810 4811/** 4812 * jQuery 4813 */ 4814 4815defineJQueryPlugin(Collapse); 4816 4817/** 4818 * -------------------------------------------------------------------------- 4819 * Bootstrap dropdown.js 4820 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 4821 * -------------------------------------------------------------------------- 4822 */ 4823 4824 4825/** 4826 * Constants 4827 */ 4828 4829const NAME$a = 'dropdown'; 4830const DATA_KEY$6 = 'bs.dropdown'; 4831const EVENT_KEY$6 = `.${DATA_KEY$6}`; 4832const DATA_API_KEY$3 = '.data-api'; 4833const ESCAPE_KEY$2 = 'Escape'; 4834const TAB_KEY$1 = 'Tab'; 4835const ARROW_UP_KEY$1 = 'ArrowUp'; 4836const ARROW_DOWN_KEY$1 = 'ArrowDown'; 4837const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button 4838 4839const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`; 4840const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`; 4841const EVENT_SHOW$5 = `show${EVENT_KEY$6}`; 4842const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`; 4843const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; 4844const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`; 4845const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`; 4846const CLASS_NAME_SHOW$6 = 'show'; 4847const CLASS_NAME_DROPUP = 'dropup'; 4848const CLASS_NAME_DROPEND = 'dropend'; 4849const CLASS_NAME_DROPSTART = 'dropstart'; 4850const CLASS_NAME_DROPUP_CENTER = 'dropup-center'; 4851const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'; 4852const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)'; 4853const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`; 4854const SELECTOR_MENU = '.dropdown-menu'; 4855const SELECTOR_NAVBAR = '.navbar'; 4856const SELECTOR_NAVBAR_NAV = '.navbar-nav'; 4857const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; 4858const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'; 4859const PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'; 4860const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'; 4861const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'; 4862const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'; 4863const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'; 4864const PLACEMENT_TOPCENTER = 'top'; 4865const PLACEMENT_BOTTOMCENTER = 'bottom'; 4866const Default$9 = { 4867 autoClose: true, 4868 boundary: 'clippingParents', 4869 display: 'dynamic', 4870 offset: [0, 2], 4871 popperConfig: null, 4872 reference: 'toggle' 4873}; 4874const DefaultType$9 = { 4875 autoClose: '(boolean|string)', 4876 boundary: '(string|element)', 4877 display: 'string', 4878 offset: '(array|string|function)', 4879 popperConfig: '(null|object|function)', 4880 reference: '(string|element|object)' 4881}; 4882 4883/** 4884 * Class definition 4885 */ 4886 4887class Dropdown extends BaseComponent { 4888 constructor(element, config) { 4889 super(element, config); 4890 this._popper = null; 4891 this._parent = this._element.parentNode; // dropdown wrapper 4892 // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ 4893 this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent); 4894 this._inNavbar = this._detectNavbar(); 4895 } 4896 4897 // Getters 4898 static get Default() { 4899 return Default$9; 4900 } 4901 static get DefaultType() { 4902 return DefaultType$9; 4903 } 4904 static get NAME() { 4905 return NAME$a; 4906 } 4907 4908 // Public 4909 toggle() { 4910 return this._isShown() ? this.hide() : this.show(); 4911 } 4912 show() { 4913 if (isDisabled(this._element) || this._isShown()) { 4914 return; 4915 } 4916 const relatedTarget = { 4917 relatedTarget: this._element 4918 }; 4919 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget); 4920 if (showEvent.defaultPrevented) { 4921 return; 4922 } 4923 this._createPopper(); 4924 4925 // If this is a touch-enabled device we add extra 4926 // empty mouseover listeners to the body's immediate children; 4927 // only needed because of broken event delegation on iOS 4928 // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html 4929 if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) { 4930 for (const element of [].concat(...document.body.children)) { 4931 EventHandler.on(element, 'mouseover', noop); 4932 } 4933 } 4934 this._element.focus(); 4935 this._element.setAttribute('aria-expanded', true); 4936 this._menu.classList.add(CLASS_NAME_SHOW$6); 4937 this._element.classList.add(CLASS_NAME_SHOW$6); 4938 EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget); 4939 } 4940 hide() { 4941 if (isDisabled(this._element) || !this._isShown()) { 4942 return; 4943 } 4944 const relatedTarget = { 4945 relatedTarget: this._element 4946 }; 4947 this._completeHide(relatedTarget); 4948 } 4949 dispose() { 4950 if (this._popper) { 4951 this._popper.destroy(); 4952 } 4953 super.dispose(); 4954 } 4955 update() { 4956 this._inNavbar = this._detectNavbar(); 4957 if (this._popper) { 4958 this._popper.update(); 4959 } 4960 } 4961 4962 // Private 4963 _completeHide(relatedTarget) { 4964 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget); 4965 if (hideEvent.defaultPrevented) { 4966 return; 4967 } 4968 4969 // If this is a touch-enabled device we remove the extra 4970 // empty mouseover listeners we added for iOS support 4971 if ('ontouchstart' in document.documentElement) { 4972 for (const element of [].concat(...document.body.children)) { 4973 EventHandler.off(element, 'mouseover', noop); 4974 } 4975 } 4976 if (this._popper) { 4977 this._popper.destroy(); 4978 } 4979 this._menu.classList.remove(CLASS_NAME_SHOW$6); 4980 this._element.classList.remove(CLASS_NAME_SHOW$6); 4981 this._element.setAttribute('aria-expanded', 'false'); 4982 Manipulator.removeDataAttribute(this._menu, 'popper'); 4983 EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget); 4984 } 4985 _getConfig(config) { 4986 config = super._getConfig(config); 4987 if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') { 4988 // Popper virtual elements require a getBoundingClientRect method 4989 throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); 4990 } 4991 return config; 4992 } 4993 _createPopper() { 4994 if (typeof _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ === 'undefined') { 4995 throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org/docs/v2/)'); 4996 } 4997 let referenceElement = this._element; 4998 if (this._config.reference === 'parent') { 4999 referenceElement = this._parent; 5000 } else if (isElement(this._config.reference)) { 5001 referenceElement = getElement(this._config.reference); 5002 } else if (typeof this._config.reference === 'object') { 5003 referenceElement = this._config.reference; 5004 } 5005 const popperConfig = this._getPopperConfig(); 5006 this._popper = _popperjs_core__WEBPACK_IMPORTED_MODULE_1__.createPopper(referenceElement, this._menu, popperConfig); 5007 } 5008 _isShown() { 5009 return this._menu.classList.contains(CLASS_NAME_SHOW$6); 5010 } 5011 _getPlacement() { 5012 const parentDropdown = this._parent; 5013 if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { 5014 return PLACEMENT_RIGHT; 5015 } 5016 if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { 5017 return PLACEMENT_LEFT; 5018 } 5019 if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) { 5020 return PLACEMENT_TOPCENTER; 5021 } 5022 if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) { 5023 return PLACEMENT_BOTTOMCENTER; 5024 } 5025 5026 // We need to trim the value because custom properties can also include spaces 5027 const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'; 5028 if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { 5029 return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; 5030 } 5031 return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; 5032 } 5033 _detectNavbar() { 5034 return this._element.closest(SELECTOR_NAVBAR) !== null; 5035 } 5036 _getOffset() { 5037 const { 5038 offset 5039 } = this._config; 5040 if (typeof offset === 'string') { 5041 return offset.split(',').map(value => Number.parseInt(value, 10)); 5042 } 5043 if (typeof offset === 'function') { 5044 return popperData => offset(popperData, this._element); 5045 } 5046 return offset; 5047 } 5048 _getPopperConfig() { 5049 const defaultBsPopperConfig = { 5050 placement: this._getPlacement(), 5051 modifiers: [{ 5052 name: 'preventOverflow', 5053 options: { 5054 boundary: this._config.boundary 5055 } 5056 }, { 5057 name: 'offset', 5058 options: { 5059 offset: this._getOffset() 5060 } 5061 }] 5062 }; 5063 5064 // Disable Popper if we have a static display or Dropdown is in Navbar 5065 if (this._inNavbar || this._config.display === 'static') { 5066 Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove 5067 defaultBsPopperConfig.modifiers = [{ 5068 name: 'applyStyles', 5069 enabled: false 5070 }]; 5071 } 5072 return { 5073 ...defaultBsPopperConfig, 5074 ...execute(this._config.popperConfig, [undefined, defaultBsPopperConfig]) 5075 }; 5076 } 5077 _selectMenuItem({ 5078 key, 5079 target 5080 }) { 5081 const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element)); 5082 if (!items.length) { 5083 return; 5084 } 5085 5086 // if target isn't included in items (e.g. when expanding the dropdown) 5087 // allow cycling to get the last item in case key equals ARROW_UP_KEY 5088 getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus(); 5089 } 5090 5091 // Static 5092 static jQueryInterface(config) { 5093 return this.each(function () { 5094 const data = Dropdown.getOrCreateInstance(this, config); 5095 if (typeof config !== 'string') { 5096 return; 5097 } 5098 if (typeof data[config] === 'undefined') { 5099 throw new TypeError(`No method named "${config}"`); 5100 } 5101 data[config](); 5102 }); 5103 } 5104 static clearMenus(event) { 5105 if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) { 5106 return; 5107 } 5108 const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN); 5109 for (const toggle of openToggles) { 5110 const context = Dropdown.getInstance(toggle); 5111 if (!context || context._config.autoClose === false) { 5112 continue; 5113 } 5114 const composedPath = event.composedPath(); 5115 const isMenuTarget = composedPath.includes(context._menu); 5116 if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) { 5117 continue; 5118 } 5119 5120 // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu 5121 if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) { 5122 continue; 5123 } 5124 const relatedTarget = { 5125 relatedTarget: context._element 5126 }; 5127 if (event.type === 'click') { 5128 relatedTarget.clickEvent = event; 5129 } 5130 context._completeHide(relatedTarget); 5131 } 5132 } 5133 static dataApiKeydownHandler(event) { 5134 // If not an UP | DOWN | ESCAPE key => not a dropdown command 5135 // If input/textarea && if key is other than ESCAPE => not a dropdown command 5136 5137 const isInput = /input|textarea/i.test(event.target.tagName); 5138 const isEscapeEvent = event.key === ESCAPE_KEY$2; 5139 const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key); 5140 if (!isUpOrDownEvent && !isEscapeEvent) { 5141 return; 5142 } 5143 if (isInput && !isEscapeEvent) { 5144 return; 5145 } 5146 event.preventDefault(); 5147 5148 // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ 5149 const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); 5150 const instance = Dropdown.getOrCreateInstance(getToggleButton); 5151 if (isUpOrDownEvent) { 5152 event.stopPropagation(); 5153 instance.show(); 5154 instance._selectMenuItem(event); 5155 return; 5156 } 5157 if (instance._isShown()) { 5158 // else is escape and we check if it is shown 5159 event.stopPropagation(); 5160 instance.hide(); 5161 getToggleButton.focus(); 5162 } 5163 } 5164} 5165 5166/** 5167 * Data API implementation 5168 */ 5169 5170EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler); 5171EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler); 5172EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus); 5173EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus); 5174EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) { 5175 event.preventDefault(); 5176 Dropdown.getOrCreateInstance(this).toggle(); 5177}); 5178 5179/** 5180 * jQuery 5181 */ 5182 5183defineJQueryPlugin(Dropdown); 5184 5185/** 5186 * -------------------------------------------------------------------------- 5187 * Bootstrap util/backdrop.js 5188 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5189 * -------------------------------------------------------------------------- 5190 */ 5191 5192 5193/** 5194 * Constants 5195 */ 5196 5197const NAME$9 = 'backdrop'; 5198const CLASS_NAME_FADE$4 = 'fade'; 5199const CLASS_NAME_SHOW$5 = 'show'; 5200const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`; 5201const Default$8 = { 5202 className: 'modal-backdrop', 5203 clickCallback: null, 5204 isAnimated: false, 5205 isVisible: true, 5206 // if false, we use the backdrop helper without adding any element to the dom 5207 rootElement: 'body' // give the choice to place backdrop under different elements 5208}; 5209const DefaultType$8 = { 5210 className: 'string', 5211 clickCallback: '(function|null)', 5212 isAnimated: 'boolean', 5213 isVisible: 'boolean', 5214 rootElement: '(element|string)' 5215}; 5216 5217/** 5218 * Class definition 5219 */ 5220 5221class Backdrop extends Config { 5222 constructor(config) { 5223 super(); 5224 this._config = this._getConfig(config); 5225 this._isAppended = false; 5226 this._element = null; 5227 } 5228 5229 // Getters 5230 static get Default() { 5231 return Default$8; 5232 } 5233 static get DefaultType() { 5234 return DefaultType$8; 5235 } 5236 static get NAME() { 5237 return NAME$9; 5238 } 5239 5240 // Public 5241 show(callback) { 5242 if (!this._config.isVisible) { 5243 execute(callback); 5244 return; 5245 } 5246 this._append(); 5247 const element = this._getElement(); 5248 if (this._config.isAnimated) { 5249 reflow(element); 5250 } 5251 element.classList.add(CLASS_NAME_SHOW$5); 5252 this._emulateAnimation(() => { 5253 execute(callback); 5254 }); 5255 } 5256 hide(callback) { 5257 if (!this._config.isVisible) { 5258 execute(callback); 5259 return; 5260 } 5261 this._getElement().classList.remove(CLASS_NAME_SHOW$5); 5262 this._emulateAnimation(() => { 5263 this.dispose(); 5264 execute(callback); 5265 }); 5266 } 5267 dispose() { 5268 if (!this._isAppended) { 5269 return; 5270 } 5271 EventHandler.off(this._element, EVENT_MOUSEDOWN); 5272 this._element.remove(); 5273 this._isAppended = false; 5274 } 5275 5276 // Private 5277 _getElement() { 5278 if (!this._element) { 5279 const backdrop = document.createElement('div'); 5280 backdrop.className = this._config.className; 5281 if (this._config.isAnimated) { 5282 backdrop.classList.add(CLASS_NAME_FADE$4); 5283 } 5284 this._element = backdrop; 5285 } 5286 return this._element; 5287 } 5288 _configAfterMerge(config) { 5289 // use getElement() with the default "body" to get a fresh Element on each instantiation 5290 config.rootElement = getElement(config.rootElement); 5291 return config; 5292 } 5293 _append() { 5294 if (this._isAppended) { 5295 return; 5296 } 5297 const element = this._getElement(); 5298 this._config.rootElement.append(element); 5299 EventHandler.on(element, EVENT_MOUSEDOWN, () => { 5300 execute(this._config.clickCallback); 5301 }); 5302 this._isAppended = true; 5303 } 5304 _emulateAnimation(callback) { 5305 executeAfterTransition(callback, this._getElement(), this._config.isAnimated); 5306 } 5307} 5308 5309/** 5310 * -------------------------------------------------------------------------- 5311 * Bootstrap util/focustrap.js 5312 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5313 * -------------------------------------------------------------------------- 5314 */ 5315 5316 5317/** 5318 * Constants 5319 */ 5320 5321const NAME$8 = 'focustrap'; 5322const DATA_KEY$5 = 'bs.focustrap'; 5323const EVENT_KEY$5 = `.${DATA_KEY$5}`; 5324const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`; 5325const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`; 5326const TAB_KEY = 'Tab'; 5327const TAB_NAV_FORWARD = 'forward'; 5328const TAB_NAV_BACKWARD = 'backward'; 5329const Default$7 = { 5330 autofocus: true, 5331 trapElement: null // The element to trap focus inside of 5332}; 5333const DefaultType$7 = { 5334 autofocus: 'boolean', 5335 trapElement: 'element' 5336}; 5337 5338/** 5339 * Class definition 5340 */ 5341 5342class FocusTrap extends Config { 5343 constructor(config) { 5344 super(); 5345 this._config = this._getConfig(config); 5346 this._isActive = false; 5347 this._lastTabNavDirection = null; 5348 } 5349 5350 // Getters 5351 static get Default() { 5352 return Default$7; 5353 } 5354 static get DefaultType() { 5355 return DefaultType$7; 5356 } 5357 static get NAME() { 5358 return NAME$8; 5359 } 5360 5361 // Public 5362 activate() { 5363 if (this._isActive) { 5364 return; 5365 } 5366 if (this._config.autofocus) { 5367 this._config.trapElement.focus(); 5368 } 5369 EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop 5370 EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event)); 5371 EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event)); 5372 this._isActive = true; 5373 } 5374 deactivate() { 5375 if (!this._isActive) { 5376 return; 5377 } 5378 this._isActive = false; 5379 EventHandler.off(document, EVENT_KEY$5); 5380 } 5381 5382 // Private 5383 _handleFocusin(event) { 5384 const { 5385 trapElement 5386 } = this._config; 5387 if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) { 5388 return; 5389 } 5390 const elements = SelectorEngine.focusableChildren(trapElement); 5391 if (elements.length === 0) { 5392 trapElement.focus(); 5393 } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) { 5394 elements[elements.length - 1].focus(); 5395 } else { 5396 elements[0].focus(); 5397 } 5398 } 5399 _handleKeydown(event) { 5400 if (event.key !== TAB_KEY) { 5401 return; 5402 } 5403 this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD; 5404 } 5405} 5406 5407/** 5408 * -------------------------------------------------------------------------- 5409 * Bootstrap util/scrollBar.js 5410 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5411 * -------------------------------------------------------------------------- 5412 */ 5413 5414 5415/** 5416 * Constants 5417 */ 5418 5419const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; 5420const SELECTOR_STICKY_CONTENT = '.sticky-top'; 5421const PROPERTY_PADDING = 'padding-right'; 5422const PROPERTY_MARGIN = 'margin-right'; 5423 5424/** 5425 * Class definition 5426 */ 5427 5428class ScrollBarHelper { 5429 constructor() { 5430 this._element = document.body; 5431 } 5432 5433 // Public 5434 getWidth() { 5435 // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes 5436 const documentWidth = document.documentElement.clientWidth; 5437 return Math.abs(window.innerWidth - documentWidth); 5438 } 5439 hide() { 5440 const width = this.getWidth(); 5441 this._disableOverFlow(); 5442 // give padding to element to balance the hidden scrollbar width 5443 this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width); 5444 // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth 5445 this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width); 5446 this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width); 5447 } 5448 reset() { 5449 this._resetElementAttributes(this._element, 'overflow'); 5450 this._resetElementAttributes(this._element, PROPERTY_PADDING); 5451 this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING); 5452 this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN); 5453 } 5454 isOverflowing() { 5455 return this.getWidth() > 0; 5456 } 5457 5458 // Private 5459 _disableOverFlow() { 5460 this._saveInitialAttribute(this._element, 'overflow'); 5461 this._element.style.overflow = 'hidden'; 5462 } 5463 _setElementAttributes(selector, styleProperty, callback) { 5464 const scrollbarWidth = this.getWidth(); 5465 const manipulationCallBack = element => { 5466 if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) { 5467 return; 5468 } 5469 this._saveInitialAttribute(element, styleProperty); 5470 const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty); 5471 element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`); 5472 }; 5473 this._applyManipulationCallback(selector, manipulationCallBack); 5474 } 5475 _saveInitialAttribute(element, styleProperty) { 5476 const actualValue = element.style.getPropertyValue(styleProperty); 5477 if (actualValue) { 5478 Manipulator.setDataAttribute(element, styleProperty, actualValue); 5479 } 5480 } 5481 _resetElementAttributes(selector, styleProperty) { 5482 const manipulationCallBack = element => { 5483 const value = Manipulator.getDataAttribute(element, styleProperty); 5484 // We only want to remove the property if the value is `null`; the value can also be zero 5485 if (value === null) { 5486 element.style.removeProperty(styleProperty); 5487 return; 5488 } 5489 Manipulator.removeDataAttribute(element, styleProperty); 5490 element.style.setProperty(styleProperty, value); 5491 }; 5492 this._applyManipulationCallback(selector, manipulationCallBack); 5493 } 5494 _applyManipulationCallback(selector, callBack) { 5495 if (isElement(selector)) { 5496 callBack(selector); 5497 return; 5498 } 5499 for (const sel of SelectorEngine.find(selector, this._element)) { 5500 callBack(sel); 5501 } 5502 } 5503} 5504 5505/** 5506 * -------------------------------------------------------------------------- 5507 * Bootstrap modal.js 5508 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5509 * -------------------------------------------------------------------------- 5510 */ 5511 5512 5513/** 5514 * Constants 5515 */ 5516 5517const NAME$7 = 'modal'; 5518const DATA_KEY$4 = 'bs.modal'; 5519const EVENT_KEY$4 = `.${DATA_KEY$4}`; 5520const DATA_API_KEY$2 = '.data-api'; 5521const ESCAPE_KEY$1 = 'Escape'; 5522const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`; 5523const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`; 5524const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`; 5525const EVENT_SHOW$4 = `show${EVENT_KEY$4}`; 5526const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; 5527const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`; 5528const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`; 5529const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`; 5530const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`; 5531const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`; 5532const CLASS_NAME_OPEN = 'modal-open'; 5533const CLASS_NAME_FADE$3 = 'fade'; 5534const CLASS_NAME_SHOW$4 = 'show'; 5535const CLASS_NAME_STATIC = 'modal-static'; 5536const OPEN_SELECTOR$1 = '.modal.show'; 5537const SELECTOR_DIALOG = '.modal-dialog'; 5538const SELECTOR_MODAL_BODY = '.modal-body'; 5539const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]'; 5540const Default$6 = { 5541 backdrop: true, 5542 focus: true, 5543 keyboard: true 5544}; 5545const DefaultType$6 = { 5546 backdrop: '(boolean|string)', 5547 focus: 'boolean', 5548 keyboard: 'boolean' 5549}; 5550 5551/** 5552 * Class definition 5553 */ 5554 5555class Modal extends BaseComponent { 5556 constructor(element, config) { 5557 super(element, config); 5558 this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element); 5559 this._backdrop = this._initializeBackDrop(); 5560 this._focustrap = this._initializeFocusTrap(); 5561 this._isShown = false; 5562 this._isTransitioning = false; 5563 this._scrollBar = new ScrollBarHelper(); 5564 this._addEventListeners(); 5565 } 5566 5567 // Getters 5568 static get Default() { 5569 return Default$6; 5570 } 5571 static get DefaultType() { 5572 return DefaultType$6; 5573 } 5574 static get NAME() { 5575 return NAME$7; 5576 } 5577 5578 // Public 5579 toggle(relatedTarget) { 5580 return this._isShown ? this.hide() : this.show(relatedTarget); 5581 } 5582 show(relatedTarget) { 5583 if (this._isShown || this._isTransitioning) { 5584 return; 5585 } 5586 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, { 5587 relatedTarget 5588 }); 5589 if (showEvent.defaultPrevented) { 5590 return; 5591 } 5592 this._isShown = true; 5593 this._isTransitioning = true; 5594 this._scrollBar.hide(); 5595 document.body.classList.add(CLASS_NAME_OPEN); 5596 this._adjustDialog(); 5597 this._backdrop.show(() => this._showElement(relatedTarget)); 5598 } 5599 hide() { 5600 if (!this._isShown || this._isTransitioning) { 5601 return; 5602 } 5603 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4); 5604 if (hideEvent.defaultPrevented) { 5605 return; 5606 } 5607 this._isShown = false; 5608 this._isTransitioning = true; 5609 this._focustrap.deactivate(); 5610 this._element.classList.remove(CLASS_NAME_SHOW$4); 5611 this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()); 5612 } 5613 dispose() { 5614 EventHandler.off(window, EVENT_KEY$4); 5615 EventHandler.off(this._dialog, EVENT_KEY$4); 5616 this._backdrop.dispose(); 5617 this._focustrap.deactivate(); 5618 super.dispose(); 5619 } 5620 handleUpdate() { 5621 this._adjustDialog(); 5622 } 5623 5624 // Private 5625 _initializeBackDrop() { 5626 return new Backdrop({ 5627 isVisible: Boolean(this._config.backdrop), 5628 // 'static' option will be translated to true, and booleans will keep their value, 5629 isAnimated: this._isAnimated() 5630 }); 5631 } 5632 _initializeFocusTrap() { 5633 return new FocusTrap({ 5634 trapElement: this._element 5635 }); 5636 } 5637 _showElement(relatedTarget) { 5638 // try to append dynamic modal 5639 if (!document.body.contains(this._element)) { 5640 document.body.append(this._element); 5641 } 5642 this._element.style.display = 'block'; 5643 this._element.removeAttribute('aria-hidden'); 5644 this._element.setAttribute('aria-modal', true); 5645 this._element.setAttribute('role', 'dialog'); 5646 this._element.scrollTop = 0; 5647 const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); 5648 if (modalBody) { 5649 modalBody.scrollTop = 0; 5650 } 5651 reflow(this._element); 5652 this._element.classList.add(CLASS_NAME_SHOW$4); 5653 const transitionComplete = () => { 5654 if (this._config.focus) { 5655 this._focustrap.activate(); 5656 } 5657 this._isTransitioning = false; 5658 EventHandler.trigger(this._element, EVENT_SHOWN$4, { 5659 relatedTarget 5660 }); 5661 }; 5662 this._queueCallback(transitionComplete, this._dialog, this._isAnimated()); 5663 } 5664 _addEventListeners() { 5665 EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => { 5666 if (event.key !== ESCAPE_KEY$1) { 5667 return; 5668 } 5669 if (this._config.keyboard) { 5670 this.hide(); 5671 return; 5672 } 5673 this._triggerBackdropTransition(); 5674 }); 5675 EventHandler.on(window, EVENT_RESIZE$1, () => { 5676 if (this._isShown && !this._isTransitioning) { 5677 this._adjustDialog(); 5678 } 5679 }); 5680 EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => { 5681 // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks 5682 EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => { 5683 if (this._element !== event.target || this._element !== event2.target) { 5684 return; 5685 } 5686 if (this._config.backdrop === 'static') { 5687 this._triggerBackdropTransition(); 5688 return; 5689 } 5690 if (this._config.backdrop) { 5691 this.hide(); 5692 } 5693 }); 5694 }); 5695 } 5696 _hideModal() { 5697 this._element.style.display = 'none'; 5698 this._element.setAttribute('aria-hidden', true); 5699 this._element.removeAttribute('aria-modal'); 5700 this._element.removeAttribute('role'); 5701 this._isTransitioning = false; 5702 this._backdrop.hide(() => { 5703 document.body.classList.remove(CLASS_NAME_OPEN); 5704 this._resetAdjustments(); 5705 this._scrollBar.reset(); 5706 EventHandler.trigger(this._element, EVENT_HIDDEN$4); 5707 }); 5708 } 5709 _isAnimated() { 5710 return this._element.classList.contains(CLASS_NAME_FADE$3); 5711 } 5712 _triggerBackdropTransition() { 5713 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1); 5714 if (hideEvent.defaultPrevented) { 5715 return; 5716 } 5717 const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; 5718 const initialOverflowY = this._element.style.overflowY; 5719 // return if the following background transition hasn't yet completed 5720 if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) { 5721 return; 5722 } 5723 if (!isModalOverflowing) { 5724 this._element.style.overflowY = 'hidden'; 5725 } 5726 this._element.classList.add(CLASS_NAME_STATIC); 5727 this._queueCallback(() => { 5728 this._element.classList.remove(CLASS_NAME_STATIC); 5729 this._queueCallback(() => { 5730 this._element.style.overflowY = initialOverflowY; 5731 }, this._dialog); 5732 }, this._dialog); 5733 this._element.focus(); 5734 } 5735 5736 /** 5737 * The following methods are used to handle overflowing modals 5738 */ 5739 5740 _adjustDialog() { 5741 const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; 5742 const scrollbarWidth = this._scrollBar.getWidth(); 5743 const isBodyOverflowing = scrollbarWidth > 0; 5744 if (isBodyOverflowing && !isModalOverflowing) { 5745 const property = isRTL() ? 'paddingLeft' : 'paddingRight'; 5746 this._element.style[property] = `${scrollbarWidth}px`; 5747 } 5748 if (!isBodyOverflowing && isModalOverflowing) { 5749 const property = isRTL() ? 'paddingRight' : 'paddingLeft'; 5750 this._element.style[property] = `${scrollbarWidth}px`; 5751 } 5752 } 5753 _resetAdjustments() { 5754 this._element.style.paddingLeft = ''; 5755 this._element.style.paddingRight = ''; 5756 } 5757 5758 // Static 5759 static jQueryInterface(config, relatedTarget) { 5760 return this.each(function () { 5761 const data = Modal.getOrCreateInstance(this, config); 5762 if (typeof config !== 'string') { 5763 return; 5764 } 5765 if (typeof data[config] === 'undefined') { 5766 throw new TypeError(`No method named "${config}"`); 5767 } 5768 data[config](relatedTarget); 5769 }); 5770 } 5771} 5772 5773/** 5774 * Data API implementation 5775 */ 5776 5777EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) { 5778 const target = SelectorEngine.getElementFromSelector(this); 5779 if (['A', 'AREA'].includes(this.tagName)) { 5780 event.preventDefault(); 5781 } 5782 EventHandler.one(target, EVENT_SHOW$4, showEvent => { 5783 if (showEvent.defaultPrevented) { 5784 // only register focus restorer if modal will actually get shown 5785 return; 5786 } 5787 EventHandler.one(target, EVENT_HIDDEN$4, () => { 5788 if (isVisible(this)) { 5789 this.focus(); 5790 } 5791 }); 5792 }); 5793 5794 // avoid conflict when clicking modal toggler while another one is open 5795 const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1); 5796 if (alreadyOpen) { 5797 Modal.getInstance(alreadyOpen).hide(); 5798 } 5799 const data = Modal.getOrCreateInstance(target); 5800 data.toggle(this); 5801}); 5802enableDismissTrigger(Modal); 5803 5804/** 5805 * jQuery 5806 */ 5807 5808defineJQueryPlugin(Modal); 5809 5810/** 5811 * -------------------------------------------------------------------------- 5812 * Bootstrap offcanvas.js 5813 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5814 * -------------------------------------------------------------------------- 5815 */ 5816 5817 5818/** 5819 * Constants 5820 */ 5821 5822const NAME$6 = 'offcanvas'; 5823const DATA_KEY$3 = 'bs.offcanvas'; 5824const EVENT_KEY$3 = `.${DATA_KEY$3}`; 5825const DATA_API_KEY$1 = '.data-api'; 5826const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`; 5827const ESCAPE_KEY = 'Escape'; 5828const CLASS_NAME_SHOW$3 = 'show'; 5829const CLASS_NAME_SHOWING$1 = 'showing'; 5830const CLASS_NAME_HIDING = 'hiding'; 5831const CLASS_NAME_BACKDROP = 'offcanvas-backdrop'; 5832const OPEN_SELECTOR = '.offcanvas.show'; 5833const EVENT_SHOW$3 = `show${EVENT_KEY$3}`; 5834const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`; 5835const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`; 5836const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`; 5837const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`; 5838const EVENT_RESIZE = `resize${EVENT_KEY$3}`; 5839const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`; 5840const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`; 5841const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; 5842const Default$5 = { 5843 backdrop: true, 5844 keyboard: true, 5845 scroll: false 5846}; 5847const DefaultType$5 = { 5848 backdrop: '(boolean|string)', 5849 keyboard: 'boolean', 5850 scroll: 'boolean' 5851}; 5852 5853/** 5854 * Class definition 5855 */ 5856 5857class Offcanvas extends BaseComponent { 5858 constructor(element, config) { 5859 super(element, config); 5860 this._isShown = false; 5861 this._backdrop = this._initializeBackDrop(); 5862 this._focustrap = this._initializeFocusTrap(); 5863 this._addEventListeners(); 5864 } 5865 5866 // Getters 5867 static get Default() { 5868 return Default$5; 5869 } 5870 static get DefaultType() { 5871 return DefaultType$5; 5872 } 5873 static get NAME() { 5874 return NAME$6; 5875 } 5876 5877 // Public 5878 toggle(relatedTarget) { 5879 return this._isShown ? this.hide() : this.show(relatedTarget); 5880 } 5881 show(relatedTarget) { 5882 if (this._isShown) { 5883 return; 5884 } 5885 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { 5886 relatedTarget 5887 }); 5888 if (showEvent.defaultPrevented) { 5889 return; 5890 } 5891 this._isShown = true; 5892 this._backdrop.show(); 5893 if (!this._config.scroll) { 5894 new ScrollBarHelper().hide(); 5895 } 5896 this._element.setAttribute('aria-modal', true); 5897 this._element.setAttribute('role', 'dialog'); 5898 this._element.classList.add(CLASS_NAME_SHOWING$1); 5899 const completeCallBack = () => { 5900 if (!this._config.scroll || this._config.backdrop) { 5901 this._focustrap.activate(); 5902 } 5903 this._element.classList.add(CLASS_NAME_SHOW$3); 5904 this._element.classList.remove(CLASS_NAME_SHOWING$1); 5905 EventHandler.trigger(this._element, EVENT_SHOWN$3, { 5906 relatedTarget 5907 }); 5908 }; 5909 this._queueCallback(completeCallBack, this._element, true); 5910 } 5911 hide() { 5912 if (!this._isShown) { 5913 return; 5914 } 5915 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); 5916 if (hideEvent.defaultPrevented) { 5917 return; 5918 } 5919 this._focustrap.deactivate(); 5920 this._element.blur(); 5921 this._isShown = false; 5922 this._element.classList.add(CLASS_NAME_HIDING); 5923 this._backdrop.hide(); 5924 const completeCallback = () => { 5925 this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING); 5926 this._element.removeAttribute('aria-modal'); 5927 this._element.removeAttribute('role'); 5928 if (!this._config.scroll) { 5929 new ScrollBarHelper().reset(); 5930 } 5931 EventHandler.trigger(this._element, EVENT_HIDDEN$3); 5932 }; 5933 this._queueCallback(completeCallback, this._element, true); 5934 } 5935 dispose() { 5936 this._backdrop.dispose(); 5937 this._focustrap.deactivate(); 5938 super.dispose(); 5939 } 5940 5941 // Private 5942 _initializeBackDrop() { 5943 const clickCallback = () => { 5944 if (this._config.backdrop === 'static') { 5945 EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); 5946 return; 5947 } 5948 this.hide(); 5949 }; 5950 5951 // 'static' option will be translated to true, and booleans will keep their value 5952 const isVisible = Boolean(this._config.backdrop); 5953 return new Backdrop({ 5954 className: CLASS_NAME_BACKDROP, 5955 isVisible, 5956 isAnimated: true, 5957 rootElement: this._element.parentNode, 5958 clickCallback: isVisible ? clickCallback : null 5959 }); 5960 } 5961 _initializeFocusTrap() { 5962 return new FocusTrap({ 5963 trapElement: this._element 5964 }); 5965 } 5966 _addEventListeners() { 5967 EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => { 5968 if (event.key !== ESCAPE_KEY) { 5969 return; 5970 } 5971 if (this._config.keyboard) { 5972 this.hide(); 5973 return; 5974 } 5975 EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); 5976 }); 5977 } 5978 5979 // Static 5980 static jQueryInterface(config) { 5981 return this.each(function () { 5982 const data = Offcanvas.getOrCreateInstance(this, config); 5983 if (typeof config !== 'string') { 5984 return; 5985 } 5986 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 5987 throw new TypeError(`No method named "${config}"`); 5988 } 5989 data[config](this); 5990 }); 5991 } 5992} 5993 5994/** 5995 * Data API implementation 5996 */ 5997 5998EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) { 5999 const target = SelectorEngine.getElementFromSelector(this); 6000 if (['A', 'AREA'].includes(this.tagName)) { 6001 event.preventDefault(); 6002 } 6003 if (isDisabled(this)) { 6004 return; 6005 } 6006 EventHandler.one(target, EVENT_HIDDEN$3, () => { 6007 // focus on trigger when it is closed 6008 if (isVisible(this)) { 6009 this.focus(); 6010 } 6011 }); 6012 6013 // avoid conflict when clicking a toggler of an offcanvas, while another is open 6014 const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR); 6015 if (alreadyOpen && alreadyOpen !== target) { 6016 Offcanvas.getInstance(alreadyOpen).hide(); 6017 } 6018 const data = Offcanvas.getOrCreateInstance(target); 6019 data.toggle(this); 6020}); 6021EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { 6022 for (const selector of SelectorEngine.find(OPEN_SELECTOR)) { 6023 Offcanvas.getOrCreateInstance(selector).show(); 6024 } 6025}); 6026EventHandler.on(window, EVENT_RESIZE, () => { 6027 for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) { 6028 if (getComputedStyle(element).position !== 'fixed') { 6029 Offcanvas.getOrCreateInstance(element).hide(); 6030 } 6031 } 6032}); 6033enableDismissTrigger(Offcanvas); 6034 6035/** 6036 * jQuery 6037 */ 6038 6039defineJQueryPlugin(Offcanvas); 6040 6041/** 6042 * -------------------------------------------------------------------------- 6043 * Bootstrap util/sanitizer.js 6044 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 6045 * -------------------------------------------------------------------------- 6046 */ 6047 6048// js-docs-start allow-list 6049const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; 6050const DefaultAllowlist = { 6051 // Global attributes allowed on any supplied element below. 6052 '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], 6053 a: ['target', 'href', 'title', 'rel'], 6054 area: [], 6055 b: [], 6056 br: [], 6057 col: [], 6058 code: [], 6059 dd: [], 6060 div: [], 6061 dl: [], 6062 dt: [], 6063 em: [], 6064 hr: [], 6065 h1: [], 6066 h2: [], 6067 h3: [], 6068 h4: [], 6069 h5: [], 6070 h6: [], 6071 i: [], 6072 img: ['src', 'srcset', 'alt', 'title', 'width', 'height'], 6073 li: [], 6074 ol: [], 6075 p: [], 6076 pre: [], 6077 s: [], 6078 small: [], 6079 span: [], 6080 sub: [], 6081 sup: [], 6082 strong: [], 6083 u: [], 6084 ul: [] 6085}; 6086// js-docs-end allow-list 6087 6088const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); 6089 6090/** 6091 * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation 6092 * contexts. 6093 * 6094 * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38 6095 */ 6096const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i; 6097const allowedAttribute = (attribute, allowedAttributeList) => { 6098 const attributeName = attribute.nodeName.toLowerCase(); 6099 if (allowedAttributeList.includes(attributeName)) { 6100 if (uriAttributes.has(attributeName)) { 6101 return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue)); 6102 } 6103 return true; 6104 } 6105 6106 // Check if a regular expression validates the attribute. 6107 return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName)); 6108}; 6109function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { 6110 if (!unsafeHtml.length) { 6111 return unsafeHtml; 6112 } 6113 if (sanitizeFunction && typeof sanitizeFunction === 'function') { 6114 return sanitizeFunction(unsafeHtml); 6115 } 6116 const domParser = new window.DOMParser(); 6117 const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); 6118 const elements = [].concat(...createdDocument.body.querySelectorAll('*')); 6119 for (const element of elements) { 6120 const elementName = element.nodeName.toLowerCase(); 6121 if (!Object.keys(allowList).includes(elementName)) { 6122 element.remove(); 6123 continue; 6124 } 6125 const attributeList = [].concat(...element.attributes); 6126 const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []); 6127 for (const attribute of attributeList) { 6128 if (!allowedAttribute(attribute, allowedAttributes)) { 6129 element.removeAttribute(attribute.nodeName); 6130 } 6131 } 6132 } 6133 return createdDocument.body.innerHTML; 6134} 6135 6136/** 6137 * -------------------------------------------------------------------------- 6138 * Bootstrap util/template-factory.js 6139 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 6140 * -------------------------------------------------------------------------- 6141 */ 6142 6143 6144/** 6145 * Constants 6146 */ 6147 6148const NAME$5 = 'TemplateFactory'; 6149const Default$4 = { 6150 allowList: DefaultAllowlist, 6151 content: {}, 6152 // { selector : text , selector2 : text2 , } 6153 extraClass: '', 6154 html: false, 6155 sanitize: true, 6156 sanitizeFn: null, 6157 template: '<div></div>' 6158}; 6159const DefaultType$4 = { 6160 allowList: 'object', 6161 content: 'object', 6162 extraClass: '(string|function)', 6163 html: 'boolean', 6164 sanitize: 'boolean', 6165 sanitizeFn: '(null|function)', 6166 template: 'string' 6167}; 6168const DefaultContentType = { 6169 entry: '(string|element|function|null)', 6170 selector: '(string|element)' 6171}; 6172 6173/** 6174 * Class definition 6175 */ 6176 6177class TemplateFactory extends Config { 6178 constructor(config) { 6179 super(); 6180 this._config = this._getConfig(config); 6181 } 6182 6183 // Getters 6184 static get Default() { 6185 return Default$4; 6186 } 6187 static get DefaultType() { 6188 return DefaultType$4; 6189 } 6190 static get NAME() { 6191 return NAME$5; 6192 } 6193 6194 // Public 6195 getContent() { 6196 return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean); 6197 } 6198 hasContent() { 6199 return this.getContent().length > 0; 6200 } 6201 changeContent(content) { 6202 this._checkContent(content); 6203 this._config.content = { 6204 ...this._config.content, 6205 ...content 6206 }; 6207 return this; 6208 } 6209 toHtml() { 6210 const templateWrapper = document.createElement('div'); 6211 templateWrapper.innerHTML = this._maybeSanitize(this._config.template); 6212 for (const [selector, text] of Object.entries(this._config.content)) { 6213 this._setContent(templateWrapper, text, selector); 6214 } 6215 const template = templateWrapper.children[0]; 6216 const extraClass = this._resolvePossibleFunction(this._config.extraClass); 6217 if (extraClass) { 6218 template.classList.add(...extraClass.split(' ')); 6219 } 6220 return template; 6221 } 6222 6223 // Private 6224 _typeCheckConfig(config) { 6225 super._typeCheckConfig(config); 6226 this._checkContent(config.content); 6227 } 6228 _checkContent(arg) { 6229 for (const [selector, content] of Object.entries(arg)) { 6230 super._typeCheckConfig({ 6231 selector, 6232 entry: content 6233 }, DefaultContentType); 6234 } 6235 } 6236 _setContent(template, content, selector) { 6237 const templateElement = SelectorEngine.findOne(selector, template); 6238 if (!templateElement) { 6239 return; 6240 } 6241 content = this._resolvePossibleFunction(content); 6242 if (!content) { 6243 templateElement.remove(); 6244 return; 6245 } 6246 if (isElement(content)) { 6247 this._putElementInTemplate(getElement(content), templateElement); 6248 return; 6249 } 6250 if (this._config.html) { 6251 templateElement.innerHTML = this._maybeSanitize(content); 6252 return; 6253 } 6254 templateElement.textContent = content; 6255 } 6256 _maybeSanitize(arg) { 6257 return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg; 6258 } 6259 _resolvePossibleFunction(arg) { 6260 return execute(arg, [undefined, this]); 6261 } 6262 _putElementInTemplate(element, templateElement) { 6263 if (this._config.html) { 6264 templateElement.innerHTML = ''; 6265 templateElement.append(element); 6266 return; 6267 } 6268 templateElement.textContent = element.textContent; 6269 } 6270} 6271 6272/** 6273 * -------------------------------------------------------------------------- 6274 * Bootstrap tooltip.js 6275 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 6276 * -------------------------------------------------------------------------- 6277 */ 6278 6279 6280/** 6281 * Constants 6282 */ 6283 6284const NAME$4 = 'tooltip'; 6285const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); 6286const CLASS_NAME_FADE$2 = 'fade'; 6287const CLASS_NAME_MODAL = 'modal'; 6288const CLASS_NAME_SHOW$2 = 'show'; 6289const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; 6290const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`; 6291const EVENT_MODAL_HIDE = 'hide.bs.modal'; 6292const TRIGGER_HOVER = 'hover'; 6293const TRIGGER_FOCUS = 'focus'; 6294const TRIGGER_CLICK = 'click'; 6295const TRIGGER_MANUAL = 'manual'; 6296const EVENT_HIDE$2 = 'hide'; 6297const EVENT_HIDDEN$2 = 'hidden'; 6298const EVENT_SHOW$2 = 'show'; 6299const EVENT_SHOWN$2 = 'shown'; 6300const EVENT_INSERTED = 'inserted'; 6301const EVENT_CLICK$1 = 'click'; 6302const EVENT_FOCUSIN$1 = 'focusin'; 6303const EVENT_FOCUSOUT$1 = 'focusout'; 6304const EVENT_MOUSEENTER = 'mouseenter'; 6305const EVENT_MOUSELEAVE = 'mouseleave'; 6306const AttachmentMap = { 6307 AUTO: 'auto', 6308 TOP: 'top', 6309 RIGHT: isRTL() ? 'left' : 'right', 6310 BOTTOM: 'bottom', 6311 LEFT: isRTL() ? 'right' : 'left' 6312}; 6313const Default$3 = { 6314 allowList: DefaultAllowlist, 6315 animation: true, 6316 boundary: 'clippingParents', 6317 container: false, 6318 customClass: '', 6319 delay: 0, 6320 fallbackPlacements: ['top', 'right', 'bottom', 'left'], 6321 html: false, 6322 offset: [0, 6], 6323 placement: 'top', 6324 popperConfig: null, 6325 sanitize: true, 6326 sanitizeFn: null, 6327 selector: false, 6328 template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>', 6329 title: '', 6330 trigger: 'hover focus' 6331}; 6332const DefaultType$3 = { 6333 allowList: 'object', 6334 animation: 'boolean', 6335 boundary: '(string|element)', 6336 container: '(string|element|boolean)', 6337 customClass: '(string|function)', 6338 delay: '(number|object)', 6339 fallbackPlacements: 'array', 6340 html: 'boolean', 6341 offset: '(array|string|function)', 6342 placement: '(string|function)', 6343 popperConfig: '(null|object|function)', 6344 sanitize: 'boolean', 6345 sanitizeFn: '(null|function)', 6346 selector: '(string|boolean)', 6347 template: 'string', 6348 title: '(string|element|function)', 6349 trigger: 'string' 6350}; 6351 6352/** 6353 * Class definition 6354 */ 6355 6356class Tooltip extends BaseComponent { 6357 constructor(element, config) { 6358 if (typeof _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ === 'undefined') { 6359 throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org/docs/v2/)'); 6360 } 6361 super(element, config); 6362 6363 // Private 6364 this._isEnabled = true; 6365 this._timeout = 0; 6366 this._isHovered = null; 6367 this._activeTrigger = {}; 6368 this._popper = null; 6369 this._templateFactory = null; 6370 this._newContent = null; 6371 6372 // Protected 6373 this.tip = null; 6374 this._setListeners(); 6375 if (!this._config.selector) { 6376 this._fixTitle(); 6377 } 6378 } 6379 6380 // Getters 6381 static get Default() { 6382 return Default$3; 6383 } 6384 static get DefaultType() { 6385 return DefaultType$3; 6386 } 6387 static get NAME() { 6388 return NAME$4; 6389 } 6390 6391 // Public 6392 enable() { 6393 this._isEnabled = true; 6394 } 6395 disable() { 6396 this._isEnabled = false; 6397 } 6398 toggleEnabled() { 6399 this._isEnabled = !this._isEnabled; 6400 } 6401 toggle() { 6402 if (!this._isEnabled) { 6403 return; 6404 } 6405 if (this._isShown()) { 6406 this._leave(); 6407 return; 6408 } 6409 this._enter(); 6410 } 6411 dispose() { 6412 clearTimeout(this._timeout); 6413 EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); 6414 if (this._element.getAttribute('data-bs-original-title')) { 6415 this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title')); 6416 } 6417 this._disposePopper(); 6418 super.dispose(); 6419 } 6420 show() { 6421 if (this._element.style.display === 'none') { 6422 throw new Error('Please use show on visible elements'); 6423 } 6424 if (!(this._isWithContent() && this._isEnabled)) { 6425 return; 6426 } 6427 const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2)); 6428 const shadowRoot = findShadowRoot(this._element); 6429 const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element); 6430 if (showEvent.defaultPrevented || !isInTheDom) { 6431 return; 6432 } 6433 6434 // TODO: v6 remove this or make it optional 6435 this._disposePopper(); 6436 const tip = this._getTipElement(); 6437 this._element.setAttribute('aria-describedby', tip.getAttribute('id')); 6438 const { 6439 container 6440 } = this._config; 6441 if (!this._element.ownerDocument.documentElement.contains(this.tip)) { 6442 container.append(tip); 6443 EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)); 6444 } 6445 this._popper = this._createPopper(tip); 6446 tip.classList.add(CLASS_NAME_SHOW$2); 6447 6448 // If this is a touch-enabled device we add extra 6449 // empty mouseover listeners to the body's immediate children; 6450 // only needed because of broken event delegation on iOS 6451 // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html 6452 if ('ontouchstart' in document.documentElement) { 6453 for (const element of [].concat(...document.body.children)) { 6454 EventHandler.on(element, 'mouseover', noop); 6455 } 6456 } 6457 const complete = () => { 6458 EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); 6459 if (this._isHovered === false) { 6460 this._leave(); 6461 } 6462 this._isHovered = false; 6463 }; 6464 this._queueCallback(complete, this.tip, this._isAnimated()); 6465 } 6466 hide() { 6467 if (!this._isShown()) { 6468 return; 6469 } 6470 const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2)); 6471 if (hideEvent.defaultPrevented) { 6472 return; 6473 } 6474 const tip = this._getTipElement(); 6475 tip.classList.remove(CLASS_NAME_SHOW$2); 6476 6477 // If this is a touch-enabled device we remove the extra 6478 // empty mouseover listeners we added for iOS support 6479 if ('ontouchstart' in document.documentElement) { 6480 for (const element of [].concat(...document.body.children)) { 6481 EventHandler.off(element, 'mouseover', noop); 6482 } 6483 } 6484 this._activeTrigger[TRIGGER_CLICK] = false; 6485 this._activeTrigger[TRIGGER_FOCUS] = false; 6486 this._activeTrigger[TRIGGER_HOVER] = false; 6487 this._isHovered = null; // it is a trick to support manual triggering 6488 6489 const complete = () => { 6490 if (this._isWithActiveTrigger()) { 6491 return; 6492 } 6493 if (!this._isHovered) { 6494 this._disposePopper(); 6495 } 6496 this._element.removeAttribute('aria-describedby'); 6497 EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2)); 6498 }; 6499 this._queueCallback(complete, this.tip, this._isAnimated()); 6500 } 6501 update() { 6502 if (this._popper) { 6503 this._popper.update(); 6504 } 6505 } 6506 6507 // Protected 6508 _isWithContent() { 6509 return Boolean(this._getTitle()); 6510 } 6511 _getTipElement() { 6512 if (!this.tip) { 6513 this.tip = this._createTipElement(this._newContent || this._getContentForTemplate()); 6514 } 6515 return this.tip; 6516 } 6517 _createTipElement(content) { 6518 const tip = this._getTemplateFactory(content).toHtml(); 6519 6520 // TODO: remove this check in v6 6521 if (!tip) { 6522 return null; 6523 } 6524 tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); 6525 // TODO: v6 the following can be achieved with CSS only 6526 tip.classList.add(`bs-${this.constructor.NAME}-auto`); 6527 const tipId = getUID(this.constructor.NAME).toString(); 6528 tip.setAttribute('id', tipId); 6529 if (this._isAnimated()) { 6530 tip.classList.add(CLASS_NAME_FADE$2); 6531 } 6532 return tip; 6533 } 6534 setContent(content) { 6535 this._newContent = content; 6536 if (this._isShown()) { 6537 this._disposePopper(); 6538 this.show(); 6539 } 6540 } 6541 _getTemplateFactory(content) { 6542 if (this._templateFactory) { 6543 this._templateFactory.changeContent(content); 6544 } else { 6545 this._templateFactory = new TemplateFactory({ 6546 ...this._config, 6547 // the `content` var has to be after `this._config` 6548 // to override config.content in case of popover 6549 content, 6550 extraClass: this._resolvePossibleFunction(this._config.customClass) 6551 }); 6552 } 6553 return this._templateFactory; 6554 } 6555 _getContentForTemplate() { 6556 return { 6557 [SELECTOR_TOOLTIP_INNER]: this._getTitle() 6558 }; 6559 } 6560 _getTitle() { 6561 return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title'); 6562 } 6563 6564 // Private 6565 _initializeOnDelegatedTarget(event) { 6566 return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig()); 6567 } 6568 _isAnimated() { 6569 return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2); 6570 } 6571 _isShown() { 6572 return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2); 6573 } 6574 _createPopper(tip) { 6575 const placement = execute(this._config.placement, [this, tip, this._element]); 6576 const attachment = AttachmentMap[placement.toUpperCase()]; 6577 return _popperjs_core__WEBPACK_IMPORTED_MODULE_1__.createPopper(this._element, tip, this._getPopperConfig(attachment)); 6578 } 6579 _getOffset() { 6580 const { 6581 offset 6582 } = this._config; 6583 if (typeof offset === 'string') { 6584 return offset.split(',').map(value => Number.parseInt(value, 10)); 6585 } 6586 if (typeof offset === 'function') { 6587 return popperData => offset(popperData, this._element); 6588 } 6589 return offset; 6590 } 6591 _resolvePossibleFunction(arg) { 6592 return execute(arg, [this._element, this._element]); 6593 } 6594 _getPopperConfig(attachment) { 6595 const defaultBsPopperConfig = { 6596 placement: attachment, 6597 modifiers: [{ 6598 name: 'flip', 6599 options: { 6600 fallbackPlacements: this._config.fallbackPlacements 6601 } 6602 }, { 6603 name: 'offset', 6604 options: { 6605 offset: this._getOffset() 6606 } 6607 }, { 6608 name: 'preventOverflow', 6609 options: { 6610 boundary: this._config.boundary 6611 } 6612 }, { 6613 name: 'arrow', 6614 options: { 6615 element: `.${this.constructor.NAME}-arrow` 6616 } 6617 }, { 6618 name: 'preSetPlacement', 6619 enabled: true, 6620 phase: 'beforeMain', 6621 fn: data => { 6622 // Pre-set Popper's placement attribute in order to read the arrow sizes properly. 6623 // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement 6624 this._getTipElement().setAttribute('data-popper-placement', data.state.placement); 6625 } 6626 }] 6627 }; 6628 return { 6629 ...defaultBsPopperConfig, 6630 ...execute(this._config.popperConfig, [undefined, defaultBsPopperConfig]) 6631 }; 6632 } 6633 _setListeners() { 6634 const triggers = this._config.trigger.split(' '); 6635 for (const trigger of triggers) { 6636 if (trigger === 'click') { 6637 EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => { 6638 const context = this._initializeOnDelegatedTarget(event); 6639 context._activeTrigger[TRIGGER_CLICK] = !(context._isShown() && context._activeTrigger[TRIGGER_CLICK]); 6640 context.toggle(); 6641 }); 6642 } else if (trigger !== TRIGGER_MANUAL) { 6643 const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); 6644 const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); 6645 EventHandler.on(this._element, eventIn, this._config.selector, event => { 6646 const context = this._initializeOnDelegatedTarget(event); 6647 context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; 6648 context._enter(); 6649 }); 6650 EventHandler.on(this._element, eventOut, this._config.selector, event => { 6651 const context = this._initializeOnDelegatedTarget(event); 6652 context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); 6653 context._leave(); 6654 }); 6655 } 6656 } 6657 this._hideModalHandler = () => { 6658 if (this._element) { 6659 this.hide(); 6660 } 6661 }; 6662 EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); 6663 } 6664 _fixTitle() { 6665 const title = this._element.getAttribute('title'); 6666 if (!title) { 6667 return; 6668 } 6669 if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) { 6670 this._element.setAttribute('aria-label', title); 6671 } 6672 this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility 6673 this._element.removeAttribute('title'); 6674 } 6675 _enter() { 6676 if (this._isShown() || this._isHovered) { 6677 this._isHovered = true; 6678 return; 6679 } 6680 this._isHovered = true; 6681 this._setTimeout(() => { 6682 if (this._isHovered) { 6683 this.show(); 6684 } 6685 }, this._config.delay.show); 6686 } 6687 _leave() { 6688 if (this._isWithActiveTrigger()) { 6689 return; 6690 } 6691 this._isHovered = false; 6692 this._setTimeout(() => { 6693 if (!this._isHovered) { 6694 this.hide(); 6695 } 6696 }, this._config.delay.hide); 6697 } 6698 _setTimeout(handler, timeout) { 6699 clearTimeout(this._timeout); 6700 this._timeout = setTimeout(handler, timeout); 6701 } 6702 _isWithActiveTrigger() { 6703 return Object.values(this._activeTrigger).includes(true); 6704 } 6705 _getConfig(config) { 6706 const dataAttributes = Manipulator.getDataAttributes(this._element); 6707 for (const dataAttribute of Object.keys(dataAttributes)) { 6708 if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) { 6709 delete dataAttributes[dataAttribute]; 6710 } 6711 } 6712 config = { 6713 ...dataAttributes, 6714 ...(typeof config === 'object' && config ? config : {}) 6715 }; 6716 config = this._mergeConfigObj(config); 6717 config = this._configAfterMerge(config); 6718 this._typeCheckConfig(config); 6719 return config; 6720 } 6721 _configAfterMerge(config) { 6722 config.container = config.container === false ? document.body : getElement(config.container); 6723 if (typeof config.delay === 'number') { 6724 config.delay = { 6725 show: config.delay, 6726 hide: config.delay 6727 }; 6728 } 6729 if (typeof config.title === 'number') { 6730 config.title = config.title.toString(); 6731 } 6732 if (typeof config.content === 'number') { 6733 config.content = config.content.toString(); 6734 } 6735 return config; 6736 } 6737 _getDelegateConfig() { 6738 const config = {}; 6739 for (const [key, value] of Object.entries(this._config)) { 6740 if (this.constructor.Default[key] !== value) { 6741 config[key] = value; 6742 } 6743 } 6744 config.selector = false; 6745 config.trigger = 'manual'; 6746 6747 // In the future can be replaced with: 6748 // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]]) 6749 // `Object.fromEntries(keysWithDifferentValues)` 6750 return config; 6751 } 6752 _disposePopper() { 6753 if (this._popper) { 6754 this._popper.destroy(); 6755 this._popper = null; 6756 } 6757 if (this.tip) { 6758 this.tip.remove(); 6759 this.tip = null; 6760 } 6761 } 6762 6763 // Static 6764 static jQueryInterface(config) { 6765 return this.each(function () { 6766 const data = Tooltip.getOrCreateInstance(this, config); 6767 if (typeof config !== 'string') { 6768 return; 6769 } 6770 if (typeof data[config] === 'undefined') { 6771 throw new TypeError(`No method named "${config}"`); 6772 } 6773 data[config](); 6774 }); 6775 } 6776} 6777 6778/** 6779 * jQuery 6780 */ 6781 6782defineJQueryPlugin(Tooltip); 6783 6784/** 6785 * -------------------------------------------------------------------------- 6786 * Bootstrap popover.js 6787 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 6788 * -------------------------------------------------------------------------- 6789 */ 6790 6791 6792/** 6793 * Constants 6794 */ 6795 6796const NAME$3 = 'popover'; 6797const SELECTOR_TITLE = '.popover-header'; 6798const SELECTOR_CONTENT = '.popover-body'; 6799const Default$2 = { 6800 ...Tooltip.Default, 6801 content: '', 6802 offset: [0, 8], 6803 placement: 'right', 6804 template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>', 6805 trigger: 'click' 6806}; 6807const DefaultType$2 = { 6808 ...Tooltip.DefaultType, 6809 content: '(null|string|element|function)' 6810}; 6811 6812/** 6813 * Class definition 6814 */ 6815 6816class Popover extends Tooltip { 6817 // Getters 6818 static get Default() { 6819 return Default$2; 6820 } 6821 static get DefaultType() { 6822 return DefaultType$2; 6823 } 6824 static get NAME() { 6825 return NAME$3; 6826 } 6827 6828 // Overrides 6829 _isWithContent() { 6830 return this._getTitle() || this._getContent(); 6831 } 6832 6833 // Private 6834 _getContentForTemplate() { 6835 return { 6836 [SELECTOR_TITLE]: this._getTitle(), 6837 [SELECTOR_CONTENT]: this._getContent() 6838 }; 6839 } 6840 _getContent() { 6841 return this._resolvePossibleFunction(this._config.content); 6842 } 6843 6844 // Static 6845 static jQueryInterface(config) { 6846 return this.each(function () { 6847 const data = Popover.getOrCreateInstance(this, config); 6848 if (typeof config !== 'string') { 6849 return; 6850 } 6851 if (typeof data[config] === 'undefined') { 6852 throw new TypeError(`No method named "${config}"`); 6853 } 6854 data[config](); 6855 }); 6856 } 6857} 6858 6859/** 6860 * jQuery 6861 */ 6862 6863defineJQueryPlugin(Popover); 6864 6865/** 6866 * -------------------------------------------------------------------------- 6867 * Bootstrap scrollspy.js 6868 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 6869 * -------------------------------------------------------------------------- 6870 */ 6871 6872 6873/** 6874 * Constants 6875 */ 6876 6877const NAME$2 = 'scrollspy'; 6878const DATA_KEY$2 = 'bs.scrollspy'; 6879const EVENT_KEY$2 = `.${DATA_KEY$2}`; 6880const DATA_API_KEY = '.data-api'; 6881const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; 6882const EVENT_CLICK = `click${EVENT_KEY$2}`; 6883const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`; 6884const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; 6885const CLASS_NAME_ACTIVE$1 = 'active'; 6886const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; 6887const SELECTOR_TARGET_LINKS = '[href]'; 6888const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; 6889const SELECTOR_NAV_LINKS = '.nav-link'; 6890const SELECTOR_NAV_ITEMS = '.nav-item'; 6891const SELECTOR_LIST_ITEMS = '.list-group-item'; 6892const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`; 6893const SELECTOR_DROPDOWN = '.dropdown'; 6894const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; 6895const Default$1 = { 6896 offset: null, 6897 // TODO: v6 @deprecated, keep it for backwards compatibility reasons 6898 rootMargin: '0px 0px -25%', 6899 smoothScroll: false, 6900 target: null, 6901 threshold: [0.1, 0.5, 1] 6902}; 6903const DefaultType$1 = { 6904 offset: '(number|null)', 6905 // TODO v6 @deprecated, keep it for backwards compatibility reasons 6906 rootMargin: 'string', 6907 smoothScroll: 'boolean', 6908 target: 'element', 6909 threshold: 'array' 6910}; 6911 6912/** 6913 * Class definition 6914 */ 6915 6916class ScrollSpy extends BaseComponent { 6917 constructor(element, config) { 6918 super(element, config); 6919 6920 // this._element is the observablesContainer and config.target the menu links wrapper 6921 this._targetLinks = new Map(); 6922 this._observableSections = new Map(); 6923 this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element; 6924 this._activeTarget = null; 6925 this._observer = null; 6926 this._previousScrollData = { 6927 visibleEntryTop: 0, 6928 parentScrollTop: 0 6929 }; 6930 this.refresh(); // initialize 6931 } 6932 6933 // Getters 6934 static get Default() { 6935 return Default$1; 6936 } 6937 static get DefaultType() { 6938 return DefaultType$1; 6939 } 6940 static get NAME() { 6941 return NAME$2; 6942 } 6943 6944 // Public 6945 refresh() { 6946 this._initializeTargetsAndObservables(); 6947 this._maybeEnableSmoothScroll(); 6948 if (this._observer) { 6949 this._observer.disconnect(); 6950 } else { 6951 this._observer = this._getNewObserver(); 6952 } 6953 for (const section of this._observableSections.values()) { 6954 this._observer.observe(section); 6955 } 6956 } 6957 dispose() { 6958 this._observer.disconnect(); 6959 super.dispose(); 6960 } 6961 6962 // Private 6963 _configAfterMerge(config) { 6964 // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case 6965 config.target = getElement(config.target) || document.body; 6966 6967 // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only 6968 config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin; 6969 if (typeof config.threshold === 'string') { 6970 config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value)); 6971 } 6972 return config; 6973 } 6974 _maybeEnableSmoothScroll() { 6975 if (!this._config.smoothScroll) { 6976 return; 6977 } 6978 6979 // unregister any previous listeners 6980 EventHandler.off(this._config.target, EVENT_CLICK); 6981 EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => { 6982 const observableSection = this._observableSections.get(event.target.hash); 6983 if (observableSection) { 6984 event.preventDefault(); 6985 const root = this._rootElement || window; 6986 const height = observableSection.offsetTop - this._element.offsetTop; 6987 if (root.scrollTo) { 6988 root.scrollTo({ 6989 top: height, 6990 behavior: 'smooth' 6991 }); 6992 return; 6993 } 6994 6995 // Chrome 60 doesn't support `scrollTo` 6996 root.scrollTop = height; 6997 } 6998 }); 6999 } 7000 _getNewObserver() { 7001 const options = { 7002 root: this._rootElement, 7003 threshold: this._config.threshold, 7004 rootMargin: this._config.rootMargin 7005 }; 7006 return new IntersectionObserver(entries => this._observerCallback(entries), options); 7007 } 7008 7009 // The logic of selection 7010 _observerCallback(entries) { 7011 const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`); 7012 const activate = entry => { 7013 this._previousScrollData.visibleEntryTop = entry.target.offsetTop; 7014 this._process(targetElement(entry)); 7015 }; 7016 const parentScrollTop = (this._rootElement || document.documentElement).scrollTop; 7017 const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop; 7018 this._previousScrollData.parentScrollTop = parentScrollTop; 7019 for (const entry of entries) { 7020 if (!entry.isIntersecting) { 7021 this._activeTarget = null; 7022 this._clearActiveClass(targetElement(entry)); 7023 continue; 7024 } 7025 const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; 7026 // if we are scrolling down, pick the bigger offsetTop 7027 if (userScrollsDown && entryIsLowerThanPrevious) { 7028 activate(entry); 7029 // if parent isn't scrolled, let's keep the first visible item, breaking the iteration 7030 if (!parentScrollTop) { 7031 return; 7032 } 7033 continue; 7034 } 7035 7036 // if we are scrolling up, pick the smallest offsetTop 7037 if (!userScrollsDown && !entryIsLowerThanPrevious) { 7038 activate(entry); 7039 } 7040 } 7041 } 7042 _initializeTargetsAndObservables() { 7043 this._targetLinks = new Map(); 7044 this._observableSections = new Map(); 7045 const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target); 7046 for (const anchor of targetLinks) { 7047 // ensure that the anchor has an id and is not disabled 7048 if (!anchor.hash || isDisabled(anchor)) { 7049 continue; 7050 } 7051 const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element); 7052 7053 // ensure that the observableSection exists & is visible 7054 if (isVisible(observableSection)) { 7055 this._targetLinks.set(decodeURI(anchor.hash), anchor); 7056 this._observableSections.set(anchor.hash, observableSection); 7057 } 7058 } 7059 } 7060 _process(target) { 7061 if (this._activeTarget === target) { 7062 return; 7063 } 7064 this._clearActiveClass(this._config.target); 7065 this._activeTarget = target; 7066 target.classList.add(CLASS_NAME_ACTIVE$1); 7067 this._activateParents(target); 7068 EventHandler.trigger(this._element, EVENT_ACTIVATE, { 7069 relatedTarget: target 7070 }); 7071 } 7072 _activateParents(target) { 7073 // Activate dropdown parents 7074 if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { 7075 SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1); 7076 return; 7077 } 7078 for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) { 7079 // Set triggered links parents as active 7080 // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor 7081 for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) { 7082 item.classList.add(CLASS_NAME_ACTIVE$1); 7083 } 7084 } 7085 } 7086 _clearActiveClass(parent) { 7087 parent.classList.remove(CLASS_NAME_ACTIVE$1); 7088 const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent); 7089 for (const node of activeNodes) { 7090 node.classList.remove(CLASS_NAME_ACTIVE$1); 7091 } 7092 } 7093 7094 // Static 7095 static jQueryInterface(config) { 7096 return this.each(function () { 7097 const data = ScrollSpy.getOrCreateInstance(this, config); 7098 if (typeof config !== 'string') { 7099 return; 7100 } 7101 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 7102 throw new TypeError(`No method named "${config}"`); 7103 } 7104 data[config](); 7105 }); 7106 } 7107} 7108 7109/** 7110 * Data API implementation 7111 */ 7112 7113EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => { 7114 for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) { 7115 ScrollSpy.getOrCreateInstance(spy); 7116 } 7117}); 7118 7119/** 7120 * jQuery 7121 */ 7122 7123defineJQueryPlugin(ScrollSpy); 7124 7125/** 7126 * -------------------------------------------------------------------------- 7127 * Bootstrap tab.js 7128 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 7129 * -------------------------------------------------------------------------- 7130 */ 7131 7132 7133/** 7134 * Constants 7135 */ 7136 7137const NAME$1 = 'tab'; 7138const DATA_KEY$1 = 'bs.tab'; 7139const EVENT_KEY$1 = `.${DATA_KEY$1}`; 7140const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`; 7141const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`; 7142const EVENT_SHOW$1 = `show${EVENT_KEY$1}`; 7143const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`; 7144const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`; 7145const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`; 7146const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`; 7147const ARROW_LEFT_KEY = 'ArrowLeft'; 7148const ARROW_RIGHT_KEY = 'ArrowRight'; 7149const ARROW_UP_KEY = 'ArrowUp'; 7150const ARROW_DOWN_KEY = 'ArrowDown'; 7151const HOME_KEY = 'Home'; 7152const END_KEY = 'End'; 7153const CLASS_NAME_ACTIVE = 'active'; 7154const CLASS_NAME_FADE$1 = 'fade'; 7155const CLASS_NAME_SHOW$1 = 'show'; 7156const CLASS_DROPDOWN = 'dropdown'; 7157const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; 7158const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; 7159const NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`; 7160const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; 7161const SELECTOR_OUTER = '.nav-item, .list-group-item'; 7162const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`; 7163const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // TODO: could only be `tab` in v6 7164const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`; 7165const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`; 7166 7167/** 7168 * Class definition 7169 */ 7170 7171class Tab extends BaseComponent { 7172 constructor(element) { 7173 super(element); 7174 this._parent = this._element.closest(SELECTOR_TAB_PANEL); 7175 if (!this._parent) { 7176 return; 7177 // TODO: should throw exception in v6 7178 // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`) 7179 } 7180 7181 // Set up initial aria attributes 7182 this._setInitialAttributes(this._parent, this._getChildren()); 7183 EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event)); 7184 } 7185 7186 // Getters 7187 static get NAME() { 7188 return NAME$1; 7189 } 7190 7191 // Public 7192 show() { 7193 // Shows this elem and deactivate the active sibling if exists 7194 const innerElem = this._element; 7195 if (this._elemIsActive(innerElem)) { 7196 return; 7197 } 7198 7199 // Search for active tab on same parent to deactivate it 7200 const active = this._getActiveElem(); 7201 const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, { 7202 relatedTarget: innerElem 7203 }) : null; 7204 const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, { 7205 relatedTarget: active 7206 }); 7207 if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) { 7208 return; 7209 } 7210 this._deactivate(active, innerElem); 7211 this._activate(innerElem, active); 7212 } 7213 7214 // Private 7215 _activate(element, relatedElem) { 7216 if (!element) { 7217 return; 7218 } 7219 element.classList.add(CLASS_NAME_ACTIVE); 7220 this._activate(SelectorEngine.getElementFromSelector(element)); // Search and activate/show the proper section 7221 7222 const complete = () => { 7223 if (element.getAttribute('role') !== 'tab') { 7224 element.classList.add(CLASS_NAME_SHOW$1); 7225 return; 7226 } 7227 element.removeAttribute('tabindex'); 7228 element.setAttribute('aria-selected', true); 7229 this._toggleDropDown(element, true); 7230 EventHandler.trigger(element, EVENT_SHOWN$1, { 7231 relatedTarget: relatedElem 7232 }); 7233 }; 7234 this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); 7235 } 7236 _deactivate(element, relatedElem) { 7237 if (!element) { 7238 return; 7239 } 7240 element.classList.remove(CLASS_NAME_ACTIVE); 7241 element.blur(); 7242 this._deactivate(SelectorEngine.getElementFromSelector(element)); // Search and deactivate the shown section too 7243 7244 const complete = () => { 7245 if (element.getAttribute('role') !== 'tab') { 7246 element.classList.remove(CLASS_NAME_SHOW$1); 7247 return; 7248 } 7249 element.setAttribute('aria-selected', false); 7250 element.setAttribute('tabindex', '-1'); 7251 this._toggleDropDown(element, false); 7252 EventHandler.trigger(element, EVENT_HIDDEN$1, { 7253 relatedTarget: relatedElem 7254 }); 7255 }; 7256 this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); 7257 } 7258 _keydown(event) { 7259 if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) { 7260 return; 7261 } 7262 event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page 7263 event.preventDefault(); 7264 const children = this._getChildren().filter(element => !isDisabled(element)); 7265 let nextActiveElement; 7266 if ([HOME_KEY, END_KEY].includes(event.key)) { 7267 nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1]; 7268 } else { 7269 const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key); 7270 nextActiveElement = getNextActiveElement(children, event.target, isNext, true); 7271 } 7272 if (nextActiveElement) { 7273 nextActiveElement.focus({ 7274 preventScroll: true 7275 }); 7276 Tab.getOrCreateInstance(nextActiveElement).show(); 7277 } 7278 } 7279 _getChildren() { 7280 // collection of inner elements 7281 return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent); 7282 } 7283 _getActiveElem() { 7284 return this._getChildren().find(child => this._elemIsActive(child)) || null; 7285 } 7286 _setInitialAttributes(parent, children) { 7287 this._setAttributeIfNotExists(parent, 'role', 'tablist'); 7288 for (const child of children) { 7289 this._setInitialAttributesOnChild(child); 7290 } 7291 } 7292 _setInitialAttributesOnChild(child) { 7293 child = this._getInnerElement(child); 7294 const isActive = this._elemIsActive(child); 7295 const outerElem = this._getOuterElement(child); 7296 child.setAttribute('aria-selected', isActive); 7297 if (outerElem !== child) { 7298 this._setAttributeIfNotExists(outerElem, 'role', 'presentation'); 7299 } 7300 if (!isActive) { 7301 child.setAttribute('tabindex', '-1'); 7302 } 7303 this._setAttributeIfNotExists(child, 'role', 'tab'); 7304 7305 // set attributes to the related panel too 7306 this._setInitialAttributesOnTargetPanel(child); 7307 } 7308 _setInitialAttributesOnTargetPanel(child) { 7309 const target = SelectorEngine.getElementFromSelector(child); 7310 if (!target) { 7311 return; 7312 } 7313 this._setAttributeIfNotExists(target, 'role', 'tabpanel'); 7314 if (child.id) { 7315 this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`); 7316 } 7317 } 7318 _toggleDropDown(element, open) { 7319 const outerElem = this._getOuterElement(element); 7320 if (!outerElem.classList.contains(CLASS_DROPDOWN)) { 7321 return; 7322 } 7323 const toggle = (selector, className) => { 7324 const element = SelectorEngine.findOne(selector, outerElem); 7325 if (element) { 7326 element.classList.toggle(className, open); 7327 } 7328 }; 7329 toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE); 7330 toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1); 7331 outerElem.setAttribute('aria-expanded', open); 7332 } 7333 _setAttributeIfNotExists(element, attribute, value) { 7334 if (!element.hasAttribute(attribute)) { 7335 element.setAttribute(attribute, value); 7336 } 7337 } 7338 _elemIsActive(elem) { 7339 return elem.classList.contains(CLASS_NAME_ACTIVE); 7340 } 7341 7342 // Try to get the inner element (usually the .nav-link) 7343 _getInnerElement(elem) { 7344 return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem); 7345 } 7346 7347 // Try to get the outer element (usually the .nav-item) 7348 _getOuterElement(elem) { 7349 return elem.closest(SELECTOR_OUTER) || elem; 7350 } 7351 7352 // Static 7353 static jQueryInterface(config) { 7354 return this.each(function () { 7355 const data = Tab.getOrCreateInstance(this); 7356 if (typeof config !== 'string') { 7357 return; 7358 } 7359 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 7360 throw new TypeError(`No method named "${config}"`); 7361 } 7362 data[config](); 7363 }); 7364 } 7365} 7366 7367/** 7368 * Data API implementation 7369 */ 7370 7371EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { 7372 if (['A', 'AREA'].includes(this.tagName)) { 7373 event.preventDefault(); 7374 } 7375 if (isDisabled(this)) { 7376 return; 7377 } 7378 Tab.getOrCreateInstance(this).show(); 7379}); 7380 7381/** 7382 * Initialize on focus 7383 */ 7384EventHandler.on(window, EVENT_LOAD_DATA_API, () => { 7385 for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) { 7386 Tab.getOrCreateInstance(element); 7387 } 7388}); 7389/** 7390 * jQuery 7391 */ 7392 7393defineJQueryPlugin(Tab); 7394 7395/** 7396 * -------------------------------------------------------------------------- 7397 * Bootstrap toast.js 7398 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 7399 * -------------------------------------------------------------------------- 7400 */ 7401 7402 7403/** 7404 * Constants 7405 */ 7406 7407const NAME = 'toast'; 7408const DATA_KEY = 'bs.toast'; 7409const EVENT_KEY = `.${DATA_KEY}`; 7410const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`; 7411const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`; 7412const EVENT_FOCUSIN = `focusin${EVENT_KEY}`; 7413const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`; 7414const EVENT_HIDE = `hide${EVENT_KEY}`; 7415const EVENT_HIDDEN = `hidden${EVENT_KEY}`; 7416const EVENT_SHOW = `show${EVENT_KEY}`; 7417const EVENT_SHOWN = `shown${EVENT_KEY}`; 7418const CLASS_NAME_FADE = 'fade'; 7419const CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility 7420const CLASS_NAME_SHOW = 'show'; 7421const CLASS_NAME_SHOWING = 'showing'; 7422const DefaultType = { 7423 animation: 'boolean', 7424 autohide: 'boolean', 7425 delay: 'number' 7426}; 7427const Default = { 7428 animation: true, 7429 autohide: true, 7430 delay: 5000 7431}; 7432 7433/** 7434 * Class definition 7435 */ 7436 7437class Toast extends BaseComponent { 7438 constructor(element, config) { 7439 super(element, config); 7440 this._timeout = null; 7441 this._hasMouseInteraction = false; 7442 this._hasKeyboardInteraction = false; 7443 this._setListeners(); 7444 } 7445 7446 // Getters 7447 static get Default() { 7448 return Default; 7449 } 7450 static get DefaultType() { 7451 return DefaultType; 7452 } 7453 static get NAME() { 7454 return NAME; 7455 } 7456 7457 // Public 7458 show() { 7459 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW); 7460 if (showEvent.defaultPrevented) { 7461 return; 7462 } 7463 this._clearTimeout(); 7464 if (this._config.animation) { 7465 this._element.classList.add(CLASS_NAME_FADE); 7466 } 7467 const complete = () => { 7468 this._element.classList.remove(CLASS_NAME_SHOWING); 7469 EventHandler.trigger(this._element, EVENT_SHOWN); 7470 this._maybeScheduleHide(); 7471 }; 7472 this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated 7473 reflow(this._element); 7474 this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING); 7475 this._queueCallback(complete, this._element, this._config.animation); 7476 } 7477 hide() { 7478 if (!this.isShown()) { 7479 return; 7480 } 7481 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); 7482 if (hideEvent.defaultPrevented) { 7483 return; 7484 } 7485 const complete = () => { 7486 this._element.classList.add(CLASS_NAME_HIDE); // @deprecated 7487 this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW); 7488 EventHandler.trigger(this._element, EVENT_HIDDEN); 7489 }; 7490 this._element.classList.add(CLASS_NAME_SHOWING); 7491 this._queueCallback(complete, this._element, this._config.animation); 7492 } 7493 dispose() { 7494 this._clearTimeout(); 7495 if (this.isShown()) { 7496 this._element.classList.remove(CLASS_NAME_SHOW); 7497 } 7498 super.dispose(); 7499 } 7500 isShown() { 7501 return this._element.classList.contains(CLASS_NAME_SHOW); 7502 } 7503 7504 // Private 7505 _maybeScheduleHide() { 7506 if (!this._config.autohide) { 7507 return; 7508 } 7509 if (this._hasMouseInteraction || this._hasKeyboardInteraction) { 7510 return; 7511 } 7512 this._timeout = setTimeout(() => { 7513 this.hide(); 7514 }, this._config.delay); 7515 } 7516 _onInteraction(event, isInteracting) { 7517 switch (event.type) { 7518 case 'mouseover': 7519 case 'mouseout': 7520 { 7521 this._hasMouseInteraction = isInteracting; 7522 break; 7523 } 7524 case 'focusin': 7525 case 'focusout': 7526 { 7527 this._hasKeyboardInteraction = isInteracting; 7528 break; 7529 } 7530 } 7531 if (isInteracting) { 7532 this._clearTimeout(); 7533 return; 7534 } 7535 const nextElement = event.relatedTarget; 7536 if (this._element === nextElement || this._element.contains(nextElement)) { 7537 return; 7538 } 7539 this._maybeScheduleHide(); 7540 } 7541 _setListeners() { 7542 EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true)); 7543 EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false)); 7544 EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true)); 7545 EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false)); 7546 } 7547 _clearTimeout() { 7548 clearTimeout(this._timeout); 7549 this._timeout = null; 7550 } 7551 7552 // Static 7553 static jQueryInterface(config) { 7554 return this.each(function () { 7555 const data = Toast.getOrCreateInstance(this, config); 7556 if (typeof config === 'string') { 7557 if (typeof data[config] === 'undefined') { 7558 throw new TypeError(`No method named "${config}"`); 7559 } 7560 data[config](this); 7561 } 7562 }); 7563 } 7564} 7565 7566/** 7567 * Data API implementation 7568 */ 7569 7570enableDismissTrigger(Toast); 7571 7572/** 7573 * jQuery 7574 */ 7575 7576defineJQueryPlugin(Toast); 7577 7578 7579//# sourceMappingURL=bootstrap.esm.js.map 7580 7581 7582/***/ })
vendor: 7,415 bytes, lines 7582-7747
7582 7583 7584/******/ }); 7585/************************************************************************/ 7586/******/ // The module cache 7587/******/ var __webpack_module_cache__ = {}; 7588/******/ 7589/******/ // The require function 7590/******/ function __webpack_require__(moduleId) { 7591/******/ // Check if module is in cache 7592/******/ var cachedModule = __webpack_module_cache__[moduleId]; 7593/******/ if (cachedModule !== undefined) { 7594/******/ return cachedModule.exports; 7595/******/ } 7596/******/ // Create a new module (and put it into the cache) 7597/******/ var module = __webpack_module_cache__[moduleId] = { 7598/******/ // no module.id needed 7599/******/ // no module.loaded needed 7600/******/ exports: {} 7601/******/ }; 7602/******/ 7603/******/ // Execute the module function 7604/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); 7605/******/ 7606/******/ // Return the exports of the module 7607/******/ return module.exports; 7608/******/ } 7609/******/ 7610/******/ // expose the modules object (__webpack_modules__) 7611/******/ __webpack_require__.m = __webpack_modules__; 7612/******/ 7613/************************************************************************/ 7614/******/ /* webpack/runtime/chunk loaded */ 7615/******/ (() => { 7616/******/ var deferred = []; 7617/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { 7618/******/ if(chunkIds) { 7619/******/ priority = priority || 0; 7620/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; 7621/******/ deferred[i] = [chunkIds, fn, priority]; 7622/******/ return; 7623/******/ } 7624/******/ var notFulfilled = Infinity; 7625/******/ for (var i = 0; i < deferred.length; i++) { 7626/******/ var [chunkIds, fn, priority] = deferred[i]; 7627/******/ var fulfilled = true; 7628/******/ for (var j = 0; j < chunkIds.length; j++) { 7629/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { 7630/******/ chunkIds.splice(j--, 1); 7631/******/ } else { 7632/******/ fulfilled = false; 7633/******/ if(priority < notFulfilled) notFulfilled = priority; 7634/******/ } 7635/******/ } 7636/******/ if(fulfilled) { 7637/******/ deferred.splice(i--, 1) 7638/******/ var r = fn(); 7639/******/ if (r !== undefined) result = r; 7640/******/ } 7641/******/ } 7642/******/ return result; 7643/******/ }; 7644/******/ })(); 7645/******/ 7646/******/ /* webpack/runtime/define property getters */ 7647/******/ (() => { 7648/******/ // define getter functions for harmony exports 7649/******/ __webpack_require__.d = (exports, definition) => { 7650/******/ for(var key in definition) { 7651/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 7652/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 7653/******/ } 7654/******/ } 7655/******/ }; 7656/******/ })(); 7657/******/ 7658/******/ /* webpack/runtime/hasOwnProperty shorthand */ 7659/******/ (() => { 7660/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) 7661/******/ })(); 7662/******/ 7663/******/ /* webpack/runtime/make namespace object */ 7664/******/ (() => { 7665/******/ // define __esModule on exports 7666/******/ __webpack_require__.r = (exports) => { 7667/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 7668/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 7669/******/ } 7670/******/ Object.defineProperty(exports, '__esModule', { value: true }); 7671/******/ }; 7672/******/ })(); 7673/******/ 7674/******/ /* webpack/runtime/jsonp chunk loading */ 7675/******/ (() => { 7676/******/ // no baseURI 7677/******/ 7678/******/ // object to store loaded and loading chunks 7679/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched 7680/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded 7681/******/ var installedChunks = { 7682/******/ "/js/app": 0, 7683/******/ "css/cattle/app": 0, 7684/******/ "css/beef/app": 0, 7685/******/ "css/dairy/app": 0, 7686/******/ "css/pig/app": 0, 7687/******/ "css/poultry/app": 0 7688/******/ }; 7689/******/ 7690/******/ // no chunk on demand loading 7691/******/ 7692/******/ // no prefetching 7693/******/ 7694/******/ // no preloaded 7695/******/ 7696/******/ // no HMR 7697/******/ 7698/******/ // no HMR manifest 7699/******/ 7700/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); 7701/******/ 7702/******/ // install a JSONP callback for chunk loading 7703/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { 7704/******/ var [chunkIds, moreModules, runtime] = data; 7705/******/ // add "moreModules" to the modules object, 7706/******/ // then flag all "chunkIds" as loaded and fire callback 7707/******/ var moduleId, chunkId, i = 0; 7708/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { 7709/******/ for(moduleId in moreModules) { 7710/******/ if(__webpack_require__.o(moreModules, moduleId)) { 7711/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; 7712/******/ } 7713/******/ } 7714/******/ if(runtime) var result = runtime(__webpack_require__); 7715/******/ } 7716/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); 7717/******/ for(;i < chunkIds.length; i++) { 7718/******/ chunkId = chunkIds[i]; 7719/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { 7720/******/ installedChunks[chunkId][0](); 7721/******/ } 7722/******/ installedChunks[chunkId] = 0; 7723/******/ } 7724/******/ return __webpack_require__.O(result); 7725/******/ } 7726/******/ 7727/******/ var chunkLoadingGlobal = self["webpackChunkgagm"] = self["webpackChunkgagm"] || []; 7728/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); 7729/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); 7730/******/ })(); 7731/******/ 7732/************************************************************************/ 7733/******/ 7734/******/ // startup 7735/******/ // Load entry module and return exports 7736/******/ // This entry module depends on other loaded chunks and execution need to be delayed 7737/******/ __webpack_require__.O(undefined, ["css/cattle/app","css/beef/app","css/dairy/app","css/pig/app","css/poultry/app"], () => (__webpack_require__("./js/app.js"))) 7738/******/ __webpack_require__.O(undefined, ["css/cattle/app","css/beef/app","css/dairy/app","css/pig/app","css/poultry/app"], () => (__webpack_require__("../poultry/app.scss"))) 7739/******/ __webpack_require__.O(undefined, ["css/cattle/app","css/beef/app","css/dairy/app","css/pig/app","css/poultry/app"], () => (__webpack_require__("../pig/app.scss"))) 7740/******/ __webpack_require__.O(undefined, ["css/cattle/app","css/beef/app","css/dairy/app","css/pig/app","css/poultry/app"], () => (__webpack_require__("../dairy/app.scss"))) 7741/******/ __webpack_require__.O(undefined, ["css/cattle/app","css/beef/app","css/dairy/app","css/pig/app","css/poultry/app"], () => (__webpack_require__("../beef/app.scss"))) 7742/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["css/cattle/app","css/beef/app","css/dairy/app","css/pig/app","css/poultry/app"], () => (__webpack_require__("../cattle/app.scss"))) 7743/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); 7744/******/ 7745/******/ })() 7746; 7747//# sourceMappingURL=app.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.