1(self["webpackChunk"] = self["webpackChunk"] || []).push([["main"],{ 2 3/***/ "./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs sync recursive ^(.*\\.(js$))[^.]*$/i": 4/*!***********************************************************************************************!*\ 5 !*** ./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs/ sync ^(.*\.(js$))[^.]*$/i ***! 6 \***********************************************************************************************/ 7/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8 9var map = { 10 "./wave.js": "./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs/wave.js" 11}; 12 13 14function webpackContext(req) { 15 var id = webpackContextResolve(req); 16 return __webpack_require__(id); 17} 18function webpackContextResolve(req) { 19 if(!__webpack_require__.o(map, req)) { 20 var e = new Error("Cannot find module '" + req + "'"); 21 e.code = 'MODULE_NOT_FOUND'; 22 throw e; 23 } 24 return map[req]; 25} 26webpackContext.keys = function webpackContextKeys() { 27 return Object.keys(map); 28}; 29webpackContext.resolve = webpackContextResolve; 30module.exports = webpackContext; 31webpackContext.id = "./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs sync recursive ^(.*\\.(js$))[^.]*$/i"; 32 33/***/ }), 34
35/***/ "./assets/child/WaveElektroWandelt/build/app.js": 36/*!******************************************************!*\ 37 !*** ./assets/child/WaveElektroWandelt/build/app.js ***! 38 \******************************************************/ 39/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 40 41"use strict"; 42__webpack_require__.r(__webpack_exports__); 43/* harmony import */ var _js_main_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./js/main.js */ "./assets/child/WaveElektroWandelt/build/js/main.js"); 44var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 45 46__webpack_require__.g.$ = __webpack_require__.g.jQuery = $; 47 48 49/***/ }), 50
51/***/ "./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs/wave.js": 52/*!****************************************************************************!*\ 53 !*** ./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs/wave.js ***! 54 \****************************************************************************/ 55/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 56 57/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 58__webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); 59 60window.isMobileDevice = function () { 61 var check = false; 62 63 (function (a) { 64 if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) { 65 check = true; 66 } 67 })(navigator.userAgent || navigator.vendor || window.opera); 68 69 return check; 70}; 71 72__webpack_require__.g.Wave = { 73 initEvents: function initEvents() { 74 isMobileDevice(); 75 } 76}; 77 78if (window.isMobileDevice()) { 79 $('body').addClass('mobile'); 80} else { 81 $('body').addClass('desktop'); 82} 83 84/***/ }), 85
86/***/ "./assets/child/WaveElektroWandelt/build/js/helpers/get-year.js": 87/*!**********************************************************************!*\ 88 !*** ./assets/child/WaveElektroWandelt/build/js/helpers/get-year.js ***! 89 \**********************************************************************/ 90/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 91 92"use strict"; 93__webpack_require__.r(__webpack_exports__); 94/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.date.to-string.js */ "./node_modules/core-js/modules/es.date.to-string.js"); 95/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_0__); 96 97 98var getYear = function getYear() { 99 return new Date().getFullYear(); 100}; 101 102/* harmony default export */ __webpack_exports__["default"] = (getYear); 103 104/***/ }), 105
106/***/ "./assets/child/WaveElektroWandelt/build/js/main.js": 107/*!**********************************************************!*\ 108 !*** ./assets/child/WaveElektroWandelt/build/js/main.js ***! 109 \**********************************************************/ 110/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 111 112"use strict"; 113__webpack_require__.r(__webpack_exports__); 114/* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.for-each.js */ "./node_modules/core-js/modules/es.array.for-each.js"); 115/* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0__); 116/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 117/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 118/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ "./node_modules/core-js/modules/web.dom-collections.for-each.js"); 119/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2__); 120/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js"); 121/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_3__); 122/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 123/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_4__); 124/* harmony import */ var _styles_main_main_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/main/main.scss */ "./assets/child/WaveElektroWandelt/build/styles/main/main.scss"); 125/* harmony import */ var jquery_ui_ui_widget_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! jquery-ui/ui/widget.js */ "./node_modules/jquery-ui/ui/widget.js"); 126/* harmony import */ var jquery_ui_ui_widget_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(jquery_ui_ui_widget_js__WEBPACK_IMPORTED_MODULE_6__); 127/* harmony import */ var bootstrap_js_dist_dropdown__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! bootstrap/js/dist/dropdown */ "./node_modules/bootstrap/js/dist/dropdown.js"); 128/* harmony import */ var bootstrap_js_dist_dropdown__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(bootstrap_js_dist_dropdown__WEBPACK_IMPORTED_MODULE_7__); 129/* harmony import */ var bootstrap_js_dist_popover__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! bootstrap/js/dist/popover */ "./node_modules/bootstrap/js/dist/popover.js"); 130/* harmony import */ var bootstrap_js_dist_popover__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(bootstrap_js_dist_popover__WEBPACK_IMPORTED_MODULE_8__); 131/* harmony import */ var bootstrap_js_dist_alert__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! bootstrap/js/dist/alert */ "./node_modules/bootstrap/js/dist/alert.js"); 132/* harmony import */ var bootstrap_js_dist_alert__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(bootstrap_js_dist_alert__WEBPACK_IMPORTED_MODULE_9__); 133/* harmony import */ var bootstrap_js_dist_tooltip__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! bootstrap/js/dist/tooltip */ "./node_modules/bootstrap/js/dist/tooltip.js"); 134/* harmony import */ var bootstrap_js_dist_tooltip__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(bootstrap_js_dist_tooltip__WEBPACK_IMPORTED_MODULE_10__); 135/* harmony import */ var bootstrap_datepicker_js_bootstrap_datepicker__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! bootstrap-datepicker/js/bootstrap-datepicker */ "./node_modules/bootstrap-datepicker/js/bootstrap-datepicker.js"); 136/* harmony import */ var bootstrap_datepicker_js_bootstrap_datepicker__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(bootstrap_datepicker_js_bootstrap_datepicker__WEBPACK_IMPORTED_MODULE_11__); 137/* harmony import */ var bootstrap_datepicker_js_locales_bootstrap_datepicker_de__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! bootstrap-datepicker/js/locales/bootstrap-datepicker.de */ "./node_modules/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js"); 138/* harmony import */ var bootstrap_datepicker_js_locales_bootstrap_datepicker_de__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(bootstrap_datepicker_js_locales_bootstrap_datepicker_de__WEBPACK_IMPORTED_MODULE_12__); 139/* harmony import */ var _wave_build_vendor_jquery_unveil_js_jquery_unveil__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../../wave/build/vendor/jquery-unveil/js/jquery.unveil */ "./assets/wave/build/vendor/jquery-unveil/js/jquery.unveil.js"); 140/* harmony import */ var _wave_build_vendor_jquery_unveil_js_jquery_unveil__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_wave_build_vendor_jquery_unveil_js_jquery_unveil__WEBPACK_IMPORTED_MODULE_13__); 141/* harmony import */ var _modules_ksbasket_index__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modules/ksbasket/index */ "./assets/child/WaveElektroWandelt/build/js/modules/ksbasket/index.js"); 142/* harmony import */ var _modules_ksmenu_index__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./modules/ksmenu/index */ "./assets/child/WaveElektroWandelt/build/js/modules/ksmenu/index.js"); 143/* harmony import */ var _modules_ksimageoptimizer_jquery_responsImg__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./modules/ksimageoptimizer/jquery.responsImg */ "./assets/child/WaveElektroWandelt/build/js/modules/ksimageoptimizer/jquery.responsImg.js"); 144/* harmony import */ var _modules_ksimageoptimizer_index__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./modules/ksimageoptimizer/index */ "./assets/child/WaveElektroWandelt/build/js/modules/ksimageoptimizer/index.js"); 145/* harmony import */ var _modules_header_sticky_header__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./modules/header/sticky-header */ "./assets/child/WaveElektroWandelt/build/js/modules/header/sticky-header.js"); 146/* harmony import */ var _modules_header_mobile_header__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./modules/header/mobile-header */ "./assets/child/WaveElektroWandelt/build/js/modules/header/mobile-header.js"); 147/* harmony import */ var _modules_header_main_nav__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./modules/header/main-nav */ "./assets/child/WaveElektroWandelt/build/js/modules/header/main-nav.js"); 148/* harmony import */ var _modules_header_main_nav_desktop__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./modules/header/main-nav-desktop */ "./assets/child/WaveElektroWandelt/build/js/modules/header/main-nav-desktop.js"); 149/* harmony import */ var _modules_scroll_to_top__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./modules/scroll-to-top */ "./assets/child/WaveElektroWandelt/build/js/modules/scroll-to-top.js"); 150/* harmony import */ var _modules_page_anchor_link__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./modules/page-anchor-link */ "./assets/child/WaveElektroWandelt/build/js/modules/page-anchor-link.js"); 151/* harmony import */ var _modules_default_search_block__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./modules/default-search-block */ "./assets/child/WaveElektroWandelt/build/js/modules/default-search-block.js"); 152/* harmony import */ var _modules_default_search_submit__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./modules/default-search-submit */ "./assets/child/WaveElektroWandelt/build/js/modules/default-search-submit.js"); 153/* harmony import */ var _modules_minibasket_handler__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./modules/minibasket-handler */ "./assets/child/WaveElektroWandelt/build/js/modules/minibasket-handler.js"); 154/* harmony import */ var _modules_years_of_expertise__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./modules/years-of-ex
154pertise */ "./assets/child/WaveElektroWandelt/build/js/modules/years-of-expertise.js"); 155/* harmony import */ var _modules_copyright_year__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./modules/copyright-year */ "./assets/child/WaveElektroWandelt/build/js/modules/copyright-year.js"); 156/* harmony import */ var _modules_page_not_found__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./modules/page-not-found */ "./assets/child/WaveElektroWandelt/build/js/modules/page-not-found.js"); 157/* harmony import */ var _modules_add_to_cart__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./modules/add-to-cart */ "./assets/child/WaveElektroWandelt/build/js/modules/add-to-cart.js"); 158/* harmony import */ var _modules_amount_switcher__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./modules/amount-switcher */ "./assets/child/WaveElektroWandelt/build/js/modules/amount-switcher.js"); 159/* harmony import */ var _modules_product_price_product_price_calc__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./modules/product-price/product-price-calc */ "./assets/child/WaveElektroWandelt/build/js/modules/product-price/product-price-calc.js"); 160/* harmony import */ var _modules_ksseoanalytics_index__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./modules/ksseoanalytics/index */ "./assets/child/WaveElektroWandelt/build/js/modules/ksseoanalytics/index.js"); 161/* harmony import */ var _modules_jq_bootstrap_validation_adapter_init_submit_only_validation__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./modules/jq-bootstrap-validation-adapter/init-submit-only-validation */ "./assets/child/WaveElektroWandelt/build/js/modules/jq-bootstrap-validation-adapter/init-submit-only-validation.js"); 162/* harmony import */ var _modules_ksmarketing_index__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./modules/ksmarketing/index */ "./assets/child/WaveElektroWandelt/build/js/modules/ksmarketing/index.js"); 163/* harmony import */ var _modules_close_main_menus__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./modules/close-main-menus */ "./assets/child/WaveElektroWandelt/build/js/modules/close-main-menus.js"); 164/* harmony import */ var _modules_ksdoofinder_trigger_doofinder_input__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./modules/ksdoofinder/trigger-doofinder-input */ "./assets/child/WaveElektroWandelt/build/js/modules/ksdoofinder/trigger-doofinder-input.js"); 165 166 167 168 169 170 171 172document.querySelector('.header__container').style.visibility = 'visible'; 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 208 209__webpack_require__.g.$ = __webpack_require__.g.jQuery = $; // Autoload every file in main / start folders 210 211var reqMain = __webpack_require__("./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs sync recursive ^(.*\\.(js$))[^.]*$/i"); 212 213reqMain.keys().forEach(function (key) { 214 reqMain(key); 215}); 216(0,_modules_ksbasket_index__WEBPACK_IMPORTED_MODULE_14__["default"])(); 217(0,_modules_ksmenu_index__WEBPACK_IMPORTED_MODULE_15__["default"])(); 218(0,_modules_ksimageoptimizer_jquery_responsImg__WEBPACK_IMPORTED_MODULE_16__["default"])(); 219(0,_modules_ksimageoptimizer_index__WEBPACK_IMPORTED_MODULE_17__["default"])(); 220(0,_modules_minibasket_handler__WEBPACK_IMPORTED_MODULE_26__["default"])(); 221(0,_modules_header_sticky_header__WEBPACK_IMPORTED_MODULE_18__["default"])(); 222(0,_modules_header_mobile_header__WEBPACK_IMPORTED_MODULE_19__["default"])(); 223(0,_modules_header_main_nav__WEBPACK_IMPORTED_MODULE_20__["default"])(); 224(0,_modules_header_main_nav_desktop__WEBPACK_IMPORTED_MODULE_21__["default"])(); 225(0,_modules_scroll_to_top__WEBPACK_IMPORTED_MODULE_22__["default"])(); 226(0,_modules_default_search_block__WEBPACK_IMPORTED_MODULE_24__["default"])(); 227(0,_modules_default_search_submit__WEBPACK_IMPORTED_MODULE_25__["default"])(); // for 'Doofinder', 'Emarsys' module and sliders 228 229(0,_modules_amount_switcher__WEBPACK_IMPORTED_MODULE_31__["default"])(); 230(0,_modules_product_price_product_price_calc__WEBPACK_IMPORTED_MODULE_32__["default"])('.ks__toBasketForm:not([data-set-ppc-function])'); 231(0,_modules_page_anchor_link__WEBPACK_IMPORTED_MODULE_23__["default"])(); 232window.amountSwitcher = _modules_amount_switcher__WEBPACK_IMPORTED_MODULE_31__["default"]; 233window.productPriceCalc = _modules_product_price_product_price_calc__WEBPACK_IMPORTED_MODULE_32__["default"]; 234window.pageAnhorLinks = _modules_page_anchor_link__WEBPACK_IMPORTED_MODULE_23__["default"]; // 235 236(0,_modules_years_of_expertise__WEBPACK_IMPORTED_MODULE_27__["default"])(); 237(0,_modules_copyright_year__WEBPACK_IMPORTED_MODULE_28__["default"])(); 238(0,_modules_page_not_found__WEBPACK_IMPORTED_MODULE_29__["default"])(); 239window.addToCart = _modules_add_to_cart__WEBPACK_IMPORTED_MODULE_30__["default"]; 240(0,_modules_ksseoanalytics_index__WEBPACK_IMPORTED_MODULE_33__["default"])(); 241(0,_modules_jq_bootstrap_validation_adapter_init_submit_only_validation__WEBPACK_IMPORTED_MODULE_34__["default"])('form[n
241ame="marketing-popup-form"]'); 242(0,_modules_ksmarketing_index__WEBPACK_IMPORTED_MODULE_35__["default"])(); 243window.closeMainMenus = _modules_close_main_menus__WEBPACK_IMPORTED_MODULE_36__["default"]; 244(0,_modules_ksdoofinder_trigger_doofinder_input__WEBPACK_IMPORTED_MODULE_37__["default"])(); 245 246/***/ }), 247
248/***/ "./assets/child/WaveElektroWandelt/build/js/modules/add-to-cart.js": 249/*!*************************************************************************!*\ 250 !*** ./assets/child/WaveElektroWandelt/build/js/modules/add-to-cart.js ***! 251 \*************************************************************************/ 252/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 253 254"use strict"; 255__webpack_require__.r(__webpack_exports__); 256/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); 257/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__); 258/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 259/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 260/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js"); 261/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2__); 262/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 263 264 265 266 267var addToCart = function addToCart(form) { 268 var addToCartLoader = function addToCartLoader(form) { 269 var formSubmitBtn = $(form).find('button.has-loader')[0]; 270 $(formSubmitBtn).addClass('loading'); 271 }; 272 273 var addToCartMessage = function addToCartMessage() { 274 $('.add-to-cart-message').removeClass('d-none'); 275 $('.add-to-cart-message').addClass('show'); 276 setTimeout(function () { 277 $('.add-to-cart-message').removeClass('show'); 278 }, 3000); 279 }; 280 281 addToCartLoader(form); 282 addToCartMessage(); 283}; 284 285/* harmony default export */ __webpack_exports__["default"] = (addToCart); 286 287/***/ }), 288
289/***/ "./assets/child/WaveElektroWandelt/build/js/modules/amount-switcher.js": 290/*!*****************************************************************************!*\ 291 !*** ./assets/child/WaveElektroWandelt/build/js/modules/amount-switcher.js ***! 292 \*****************************************************************************/ 293/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 294 295"use strict"; 296__webpack_require__.r(__webpack_exports__); 297/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); 298/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__); 299/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 300/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 301/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js"); 302/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__); 303/* harmony import */ var _ksdiscontinueditem_limit_amount_switcher_increase__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ksdiscontinueditem/limit-amount-switcher-increase */ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/limit-amount-switcher-increase.js"); 304/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 305 306 307 308 309 310var amountSwitcher = function amountSwitcher() { 311 $(document).off('click.amountSwitcher', '.ks__amount__switcher_increase').on('click.amountSwitcher', '.ks__amount__switcher_increase', function () { 312 var wrapper = $(this).closest('.ks__amount__switcher'); 313 var input = wrapper.find('.ks__amount__switcher_amount'); 314 var discontinuedProduct = $(this).closest('[ksdiscontinueditem]'); 315 316 if (!(0,_ksdiscontinueditem_limit_amount_switcher_increase__WEBPACK_IMPORTED_MODULE_3__["default"])(discontinuedProduct)) { 317 input.val(Number(input.val()) + 1).trigger('change'); 318 } 319 }); 320 $(document).off('click.amountSwitcher', '.ks__amount__switcher_decrease').on('click.amountSwitcher', '.ks__amount__switcher_decrease', function () { 321 var wrapper = $(this).closest('.ks__amount__switcher'); 322 var input = wrapper.find('.ks__amount__switcher_amount'); 323 324 if (Number(input.val()) > 1) { 325 input.val(Number(input.val()) - 1).trigger('change'); 326 } 327 }); 328}; 329 330/* harmony default export */ __webpack_exports__["default"] = (amountSwitcher); 331 332/***/ }), 333
334/***/ "./assets/child/WaveElektroWandelt/build/js/modules/close-main-menus.js": 335/*!******************************************************************************!*\ 336 !*** ./assets/child/WaveElektroWandelt/build/js/modules/close-main-menus.js ***! 337 \******************************************************************************/ 338/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 339 340"use strict"; 341__webpack_require__.r(__webpack_exports__); 342/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 343var closeMainMenus = function closeMainMenus() { 344 // "Produktsortiment" menu desktop 345 if ($('.header__mainNav').hasClass('show')) { 346 $('#header__mainNav_btn').trigger('click'); 347 } // "Serviceangebot" menu desktop 348 349 350 if ($('.header__serviceNav').hasClass('show')) { 351 $('#header__serviceNav_btn').trigger('click'); 352 } // Main menu mobile 353 354 355 if ($('body').hasClass('mobile-menu-open')) { 356 $('.header__mobBtn').trigger('click'); 357 } 358}; 359 360/* harmony default export */ __webpack_exports__["default"] = (closeMainMenus); 361 362/***/ }), 363
364/***/ "./assets/child/WaveElektroWandelt/build/js/modules/copyright-year.js": 365/*!****************************************************************************!*\ 366 !*** ./assets/child/WaveElektroWandelt/build/js/modules/copyright-year.js ***! 367 \****************************************************************************/ 368/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 369 370"use strict"; 371__webpack_require__.r(__webpack_exports__); 372/* harmony import */ var _helpers_get_year__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/get-year */ "./assets/child/WaveElektroWandelt/build/js/helpers/get-year.js"); 373/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 374 375 376var copyrightYear = function copyrightYear() { 377 $('#copyrightYear').html((0,_helpers_get_year__WEBPACK_IMPORTED_MODULE_0__["default"])()); 378}; 379 380/* harmony default export */ __webpack_exports__["default"] = (copyrightYear); 381 382/***/ }), 383
384/***/ "./assets/child/WaveElektroWandelt/build/js/modules/default-search-block.js": 385/*!**********************************************************************************!*\ 386 !*** ./assets/child/WaveElektroWandelt/build/js/modules/default-search-block.js ***! 387 \**********************************************************************************/ 388/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 389 390"use strict"; 391__webpack_require__.r(__webpack_exports__); 392/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 393var defaultSearchBlock = function defaultSearchBlock() { 394 $('#searchParam').on('keydown', function (e) { 395 if (e.key === 'Enter') { 396 e.preventDefault(); 397 } 398 }); 399}; 400 401/* harmony default export */ __webpack_exports__["default"] = (defaultSearchBlock); 402 403/***/ }), 404
405/***/ "./assets/child/WaveElektroWandelt/build/js/modules/default-search-submit.js": 406/*!***********************************************************************************!*\ 407 !*** ./assets/child/WaveElektroWandelt/build/js/modules/default-search-submit.js ***! 408 \***********************************************************************************/ 409/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 410 411"use strict"; 412__webpack_require__.r(__webpack_exports__); 413/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); 414/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__); 415/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); 416/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__); 417/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 418 419 420 421var defaultSearchSubmit = function defaultSearchSubmit() { 422 $('#submitDefaultSearch').on('click', function () { 423 var searchValue = $('#searchParam').val().replace(' ', '+'); 424 window.location.href = '/?cl=search&searchparam=' + searchValue; 425 }); 426}; 427 428/* harmony default export */ __webpack_exports__["default"] = (defaultSearchSubmit); 429 430/***/ }), 431
432/***/ "./assets/child/WaveElektroWandelt/build/js/modules/details/popup-products-slider.js": 433/*!*******************************************************************************************!*\ 434 !*** ./assets/child/WaveElektroWandelt/build/js/modules/details/popup-products-slider.js ***! 435 \*******************************************************************************************/ 436/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 437 438"use strict"; 439__webpack_require__.r(__webpack_exports__); 440/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! swiper */ "./node_modules/swiper/swiper.esm.js"); 441/* harmony import */ var swiper_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! swiper/css */ "./node_modules/swiper/swiper.min.css"); 442 443 444 445var popupProductsSlider = function popupProductsSlider() { 446 var popupProductSlider = new swiper__WEBPACK_IMPORTED_MODULE_0__["default"]('.popup-productslider', { 447 modules: [swiper__WEBPACK_IMPORTED_MODULE_0__.Autoplay], 448 slidesPerView: 2, 449 spaceBetween: 30, 450 disableOnInteraction: true, 451 loop: true, 452 autoplay: { 453 delay: 4000 454 } 455 }); 456}; 457 458/* harmony default export */ __webpack_exports__["default"] = (popupProductsSlider); 459 460/***/ }), 461
462/***/ "./assets/child/WaveElektroWandelt/build/js/modules/header/main-nav-desktop.js": 463/*!*************************************************************************************!*\ 464 !*** ./assets/child/WaveElektroWandelt/build/js/modules/header/main-nav-desktop.js ***! 465 \*************************************************************************************/ 466/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 467 468"use strict"; 469__webpack_require__.r(__webpack_exports__); 470/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 471var mainNavDesktop = function mainNavDesktop() { 472 if (window.innerWidth >= 1360) { 473 // active by default 474 var addActive = function addActive() { 475 var hoveredItem; 476 $('.desktop-active').removeClass('desktop-active'); 477 $('.mainav__list_item:first-child').addClass('desktop-active'); 478 $('.mainav__list_item').hover(function () { 479 hoveredItem = this; 480 $('.desktop-active').removeClass('desktop-active'); 481 $(this).addClass('desktop-active'); 482 }); 483 $('.header__mainNav__dropdown').on('mouseleave', function () { 484 $('.desktop-active').removeClass('desktop-active'); 485 $(hoveredItem).addClass('desktop-active'); 486 }); 487 }; 488 489 addActive(); 490 $('#header__mainNav_btn').on('click', function () { 491 addActive(); 492 }); // open submenu by ">" btn with keyboard 493 494 $('.header__mainNav__dropdown').on('click', function (e) { 495 e.stopPropagation(); 496 }); 497 $('.nav-item-btn').on('click', function () { 498 var parent = $(this).parent(); 499 $('.desktop-active').removeClass('desktop-active'); 500 $(parent).addClass('desktop-active'); 501 }); 502 } 503}; 504 505/* harmony default export */ __webpack_exports__["default"] = (mainNavDesktop); 506 507/***/ }), 508
vendor: 8,009 bytes, lines 509-578
509/***/ "./assets/child/WaveElektroWandelt/build/js/modules/header/main-nav.js": 510/*!*****************************************************************************!*\ 511 !*** ./assets/child/WaveElektroWandelt/build/js/modules/header/main-nav.js ***! 512 \*****************************************************************************/ 513/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 514 515"use strict"; 516__webpack_require__.r(__webpack_exports__); 517/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js"); 518/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_0__); 519/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 520/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 521/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ "./node_modules/core-js/modules/es.function.name.js"); 522/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2__); 523/* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.from.js */ "./node_modules/core-js/modules/es.array.from.js"); 524/* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_3__); 525/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ "./node_modules/core-js/modules/es.string.iterator.js"); 526/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_4__); 527/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); 528/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__); 529/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js"); 530/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_6__); 531/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js"); 532/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_7__); 533/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ "./node_modules/core-js/modules/es.symbol.iterator.js"); 534/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_8__); 535/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js"); 536/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_9__); 537/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 538/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_10__); 539/* harmony import */ var core_js_modules_es_array_is_array_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.array.is-array.js */ "./node_modules/core-js/modules/es.array.is-array.js"); 540/* harmony import */ var core_js_modules_es_array_is_array_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_is_array_js__WEBPACK_IMPORTED_MODULE_11__); 541/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 542 543 544 545 546 547 548 549 550 551 552 553 554 555function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } 556 557function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } 558 559function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } 560 561var mainNav = function mainNav() { 562 $(window).on('load', function () { 563 var menu = document.querySelector('.header__mainNav .mainnavext'); 564 var menuDropdown = document.getElementById('header__mainNav__dropdown'); 565 var menuItemLinks = document.getElementsByClassName('mainav__list_item_link'); 566 var dropDownButton = document.getElementsByClassName('nav-item-btn'); 567 var showMenuBtn = document.getElementById('header__mainNav'); 568 569 function showMenu() { 570 var asideMenuHTMLCollection = this.parentElement.getElementsByClassName('asideMenu'); 571 572 if (asideMenuHTMLCollection) { 573 // toggling class in loop for showing aside menu 574 var _iterator = _createForOfIteratorHelper(asideMenuHTMLCollection), 575 _step; 576 577 try { 578 for (_iterator.s();
578 !(_step = _iterator.n()).done;) { 579 var _menu = _step.value; 580 581 _menu.classList.toggle('active'); 582 } 583 } catch (err) { 584 _iterator.e(err); 585 } finally { 586 _iterator.f(); 587 } 588 589 this.classList.toggle('active'); 590 this.parentElement.classList.toggle('active'); 591 } 592 } 593 594 function resizeMenu() { 595 if (menuDropdown && showMenuBtn) { 596 menuDropdown.classList.remove('show'); 597 showMenuBtn.classList.remove('show'); 598 } 599 } 600 601 if (typeof menu !== 'undefined' && menu !== null) { 602 if (window.innerWidth < 1360) { 603 var _iterator2 = _createForOfIteratorHelper(menuItemLinks), 604 _step2; 605 606 try { 607 for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { 608 var link = _step2.value; 609 link.setAttribute('data-toggle', 'dropdown'); 610 } // loop all buttons for setting eventListeners 611 612 } catch (err) { 613 _iterator2.e(err); 614 } finally { 615 _iterator2.f(); 616 } 617 618 var _iterator3 = _createForOfIteratorHelper(dropDownButton), 619 _step3; 620 621 try { 622 for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { 623 var button = _step3.value; 624 button.addEventListener('click', showMenu); 625 } 626 } catch (err) { 627 _iterator3.e(err); 628 } finally { 629 _iterator3.f(); 630 } 631 } 632 633 $(window).on('resize', resizeMenu); 634 } 635 }); 636}; 637 638/* harmony default export */ __webpack_exports__["default"] = (mainNav); 639 640/***/ }), 641
642/***/ "./assets/child/WaveElektroWandelt/build/js/modules/header/mobile-header.js": 643/*!**********************************************************************************!*\ 644 !*** ./assets/child/WaveElektroWandelt/build/js/modules/header/mobile-header.js ***! 645 \**********************************************************************************/ 646/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 647 648"use strict"; 649__webpack_require__.r(__webpack_exports__); 650/* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.for-each.js */ "./node_modules/core-js/modules/es.array.for-each.js"); 651/* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0__); 652/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 653/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 654/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ "./node_modules/core-js/modules/web.dom-collections.for-each.js"); 655/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2__); 656/* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.from.js */ "./node_modules/core-js/modules/es.array.from.js"); 657/* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_3__); 658/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ "./node_modules/core-js/modules/es.string.iterator.js"); 659/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_4__); 660/* harmony import */ var _toggle_animation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./toggle-animation */ "./assets/child/WaveElektroWandelt/build/js/modules/header/toggle-animation.js"); 661 662 663 664 665 666 667 668var mobileHeader = function mobileHeader() { 669 document.addEventListener("DOMContentLoaded", function () { 670 var mobMobileBtn = document.getElementById('header__mobBtn'); 671 var menuDropdowns = document.querySelectorAll('.header__mainNav__dropdown'); 672 var body = document.querySelector('body'); 673 674 var showMobileMenu = function showMobileMenu() { 675 Array.from(menuDropdowns).forEach(function (item) { 676 item.classList.toggle('show'); 677 body.classList.toggle('mobile-menu-open'); 678 }); 679 }; 680 681 var resizeMenu = function resizeMenu() { 682 Array.from(menuDropdowns).forEach(function (item) { 683 item.classList.remove('show'); 684 }); 685 }; 686 687 mobMobileBtn.addEventListener('click', function () { 688 showMobileMenu(); 689 (0,_toggle_animation__WEBPACK_IMPORTED_MODULE_5__["default"])(); 690 window.closeBasket(); 691 }); 692 window.addEventListener('resize', resizeMenu); 693 }); 694}; 695 696/* harmony default export */ __webpack_exports__["default"] = (mobileHeader); 697 698/***/ }), 699
700/***/ "./assets/child/WaveElektroWandelt/build/js/modules/header/sticky-header.js": 701/*!**********************************************************************************!*\ 702 !*** ./assets/child/WaveElektroWandelt/build/js/modules/header/sticky-header.js ***! 703 \**********************************************************************************/ 704/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 705 706"use strict"; 707__webpack_require__.r(__webpack_exports__); 708var stickyHeader = function stickyHeader() { 709 document.addEventListener('DOMContentLoaded', function () { 710 var body = document.body; 711 var header = document.querySelector('.header'); 712 var lastScroll = 0; 713 var sticky = header.offsetTop; 714 715 function checkHeaderPosition() { 716 if (window.scrollY > sticky) { 717 header.classList.add('sticky'); 718 } else { 719 header.classList.remove('sticky'); 720 } 721 } 722 723 window.addEventListener('scroll', function () { 724 var currentScroll = window.scrollY; 725 726 if (currentScroll === 0 || currentScroll < 0) { 727 body.classList.remove('scroll-up'); 728 body.classList.add('default-state'); 729 return; 730 } 731 732 if (currentScroll > lastScroll && !body.classList.contains('scroll-down')) { 733 // down 734 body.classList.remove('scroll-up'); 735 body.classList.remove('default-state'); 736 body.classList.add('scroll-down'); 737 } else if (currentScroll < lastScroll && body.classList.contains('scroll-down')) { 738 // up 739 body.classList.remove('scroll-down'); 740 body.classList.remove('default-state'); 741 body.classList.add('scroll-up'); 742 } 743 744 lastScroll = currentScroll; 745 }); 746 747 window.onscroll = function () { 748 checkHeaderPosition(); 749 }; 750 }); 751}; 752 753/* harmony default export */ __webpack_exports__["default"] = (stickyHeader); 754 755/***/ }), 756
757/***/ "./assets/child/WaveElektroWandelt/build/js/modules/header/toggle-animation.js": 758/*!*************************************************************************************!*\ 759 !*** ./assets/child/WaveElektroWandelt/build/js/modules/header/toggle-animation.js ***! 760 \*************************************************************************************/ 761/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 762 763"use strict"; 764__webpack_require__.r(__webpack_exports__); 765var toggleAnimation = function toggleAnimation() { 766 var toggleAnimationStyles = document.createElement('style'); 767 toggleAnimationStyles.classList.add('toggleAnimationStyles'); 768 toggleAnimationStyles.textContent = "\n .header__mobBtn span:nth-child(1) {\n animation: ease .7s top-2 forwards;\n }\n .header__mobBtn span:nth-child(2) {\n animation: ease .7s scaled-2 forwards;\n }\n .header__mobBtn span:nth-child(3) {\n animation: ease .7s bottom-2 forwards;\n }\n\n @keyframes top-2 {\n 0% {\n top: 9px;\n transform: rotate(45deg);\n }\n 50% {\n top: 9px;\n transform: rotate(0deg);\n }\n 100% {\n top: 0;\n transform: rotate(0deg);\n }\n }\n \n @keyframes bottom-2 {\n 0% {\n bottom: 9px;\n transform: rotate(135deg);\n }\n 50% {\n bottom: 9px;\n transform: rotate(0);\n }\n 100% {\n bottom: 0;\n transform: rotate(0);\n }\n }\n \n @keyframes scaled-2 {\n 0% {\n transform: scale(0);\n }\n 50% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n }\n "; 769 var isToggleAnimationStyles = document.querySelector('.toggleAnimationStyles'); 770 771 if (!isToggleAnimationStyles) { 772 document.head.appendChild(toggleAnimationStyles); 773 } 774}; 775 776/* harmony default export */ __webpack_exports__["default"] = (toggleAnimation); 777 778/***/ }), 779
780/***/ "./assets/child/WaveElektroWandelt/build/js/modules/jq-bootstrap-validation-adapter/init-submit-only-validation.js": 781/*!*************************************************************************************************************************!*\ 782 !*** ./assets/child/WaveElektroWandelt/build/js/modules/jq-bootstrap-validation-adapter/init-submit-only-validation.js ***! 783 \*************************************************************************************************************************/ 784/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 785 786"use strict"; 787__webpack_require__.r(__webpack_exports__); 788/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); 789/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__); 790/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 791/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 792/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 793 794 795 796var initSubmitOnlyValidation = function initSubmitOnlyValidation(formSelector) { 797 $(document).ready(function () { 798 var $fields = $(formSelector + ' input:not([type="hidden"],.hidden),' + formSelector + ' select,' + formSelector + ' textarea').not('[type=submit]').not('altcha-widget input'); 799 $fields.each(function () { 800 var $this = $(this); 801 802 var changeEvents = $._data(this, 'events')['change']; 803 804 var originalHandler = changeEvents && changeEvents.find(function (e) { 805 return e.namespace === 'validation'; 806 }); 807 if (!originalHandler) return; 808 var fn = originalHandler.handler; 809 $this.off('keyup.validation keydown.validation keypress.validation click.validation focus.validation blur.validation change.validation'); 810 $this.on('change.validation', function (e, params) { 811 if (!params || !params.submitting) return; 812 fn.call(this, e, params); 813 }); 814 }); 815 }); 816}; 817 818/* harmony default export */ __webpack_exports__["default"] = (initSubmitOnlyValidation); 819 820/***/ }), 821
822/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksbasket/index.js": 823/*!****************************************************************************!*\ 824 !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksbasket/index.js ***! 825 \****************************************************************************/ 826/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 827 828"use strict"; 829__webpack_require__.r(__webpack_exports__); 830/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); 831/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__); 832/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 833/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 834/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js"); 835/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2__); 836/* harmony import */ var _details_popup_products_slider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../details/popup-products-slider */ "./assets/child/WaveElektroWandelt/build/js/modules/details/popup-products-slider.js"); 837/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 838 839 840 841 842 843var ksAjaxToBasket = function ksAjaxToBasket() { 844 var ksAjaxToBasket = { 845 options: { 846 blBasketPopup: true, 847 sSelectorForm: '', 848 sCurrentProductId: '' 849 }, 850 _create: function _create() { 851 var self = this, 852 options = self.options; // add product to basket vie Ajax 853 854 self.AjaxToBasketFormSubmit(); 855 }, 856 857 /** 858 * Add product to basket vie Ajax 859 */ 860 AjaxToBasketFormSubmit: function AjaxToBasketFormSubmit() { 861 var self = this; 862 var options = self.options; 863 var el = self.element; 864 $(el).on('submit', options.sSelectorForm, function () { 865 var form = $(this); 866 var formSubmitBtn = $(form).find('button[type="submit"]')[0]; 867 options.sCurrentProductId = $('input[name=aid]', form).val(); // submit from paypa express 868 869 if ($('input[name=fnc]', this).val() === 'actionExpressCheckoutFromDetailsPage') {// trigger base handler 870 } else { 871 $('#paypalExpressCheckoutDetailsBox').hide(); // hide button paypall express 872 873 $.ajax({ 874 url: '/index.php', 875 type: 'post', 876 data: $(this).serialize() + '&cl=oxwminibasket', 877 dataType: 'html', 878 success: function success(data) { 879 if (data) { 880 $('.minibasket-menu-wrapper').html(data); // update minibasket html 881 882 $('.minibasket-menu-wrapper').find("script").each(function () { 883 eval($(this).text()); 884 }); 885 886 if (options.blBasketPopup && !($(window).width() < 1360)) { 887 // update popup data from ekonda and show basket popup 888 self.updateArticleRecommendationsPopup(formSubmitBtn); 889 } else { 890 // window.openBasket(); 891 window.addMiniBaskethandlers(); 892 window.adaptiveMinibasketHeight(); 893 $(formSubmitBtn).removeClass('loading'); 894 } 895 896 window.addToBasketDiscontinuedItem(form); 897 } 898 } 899 }); 900 return false;
901 } 902 }); 903 }, 904 905 /** 906 * Update popup data from ekonda and show popup 907 * @uses - object oxAjax 908 */ 909 updateArticleRecommendationsPopup: function updateArticleRecommendationsPopup(formSubmitBtn) { 910 var self = this; 911 var options = self.options; 912 $.ajax({ 913 url: '/widget.php?cl=KsEcondaArticleRecommendations', 914 type: 'get', 915 data: 'sCurrentProductId=' + options.sCurrentProductId + '&isPopup=1', 916 dataType: 'html', 917 success: function success(response) { 918 $('#product-recommendations-popup').html(response); // Removing loading circle from "Add to cart" btn 919 920 $(formSubmitBtn).removeClass('loading'); // Left part of pupup (clone minicart) 921 922 $('.minibasket').clone().appendTo('.basket-items-wrap'); // Loading econda/emarsys slider 923 // we need setTimeout`s for emarsys loading widget 924 925 setTimeout(function () { 926 $('#econdaPopup .swiper').addClass('popup-productslider'); 927 (0,_details_popup_products_slider__WEBPACK_IMPORTED_MODULE_3__["default"])(); 928 }, 150); // setTimeout(() => { 929 // $('#econdaPopup').modal('show'); 930 // }, 200) 931 932 window.addMiniBaskethandlers(); 933 } 934 }); 935 } 936 }; 937 $.widget('ui.ksAjaxToBasket', ksAjaxToBasket); 938}; 939 940/* harmony default export */ __webpack_exports__["default"] = (ksAjaxToBasket); 941 942/***/ }), 943
944/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/alert/show-alert-info.js": 945/*!******************************************************************************************************!*\ 946 !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/alert/show-alert-info.js ***! 947 \******************************************************************************************************/ 948/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 949 950"use strict"; 951__webpack_require__.r(__webpack_exports__); 952/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); 953/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__); 954/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 955/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 956/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js"); 957/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2__); 958/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 959 960 961 962 963var showAlertInfo = function showAlertInfo(discontinuedItem, amountInputValue) { 964 var alertInfo = $(discontinuedItem).find('.ksdiscontinueditem-alert-info'); 965 var productUnit = $(discontinuedItem).find('.product-unit').html(); 966 $(alertInfo).html('...nur noch ' + amountInputValue + (productUnit !== undefined ? ' ' + productUnit : '') + ' verfügbar'); 967 $(alertInfo).addClass('show'); 968 setTimeout(function () { 969 $(alertInfo).removeClass('show'); 970 }, 3000); 971}; 972 973/* harmony default export */ __webpack_exports__["default"] = (showAlertInfo); 974 975/***/ }), 976
977/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/helper/minibasket-quantity.js": 978/*!***********************************************************************************************************!*\ 979 !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/helper/minibasket-quantity.js ***! 980 \***********************************************************************************************************/ 981/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 982 983"use strict"; 984__webpack_require__.r(__webpack_exports__); 985/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); 986/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__); 987/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 988/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 989/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js"); 990/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__); 991/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 992 993 994 995 996var minibasketQuantity = function minibasketQuantity(discontinuedItem) { 997 var productAid = $(discontinuedItem).find('[name="aid"]').val(); 998 return Number($('[aid="' + productAid + '"]').find('.minibasket__item__info_quantity span').html()) || 0; 999}; 1000 1001/* harmony default export */ __webpack_exports__["default"] = (minibasketQuantity); 1002 1003/***/ }), 1004
1005/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/helper/product-max.js": 1006/*!***************************************************************************************************!*\ 1007 !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/helper/product-max.js ***! 1008 \***************************************************************************************************/ 1009/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1010 1011"use strict"; 1012__webpack_require__.r(__webpack_exports__); 1013/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js"); 1014/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__); 1015/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 1016 1017 1018var productMax = function productMax(discontinuedItem) { 1019 return Number($(discontinuedItem).attr('ks-max')); 1020}; 1021 1022/* harmony default export */ __webpack_exports__["default"] = (productMax); 1023 1024/***/ }), 1025
1026/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/limit-amount-switcher-increase.js": 1027/*!***************************************************************************************************************!*\ 1028 !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/limit-amount-switcher-increase.js ***! 1029 \***************************************************************************************************************/ 1030/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1031 1032"use strict"; 1033__webpack_require__.r(__webpack_exports__); 1034/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); 1035/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__); 1036/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 1037/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 1038/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js"); 1039/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__); 1040/* harmony import */ var _helper_product_max__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helper/product-max */ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/helper/product-max.js"); 1041/* harmony import */ var _helper_minibasket_quantity__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helper/minibasket-quantity */ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/helper/minibasket-quantity.js"); 1042/* harmony import */ var _alert_show_alert_info__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./alert/show-alert-info */ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/alert/show-alert-info.js"); 1043/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 1044 1045 1046 1047 1048 1049 1050 1051var limitAmountSwitcherIncrease = function limitAmountSwitcherIncrease(discontinuedItem) { 1052 if ((0,_helper_product_max__WEBPACK_IMPORTED_MODULE_3__["default"])(discontinuedItem)) { 1053 var amountInput = $(discontinuedItem).find('.ks__amount__switcher_amount'); 1054 1055 if ((0,_helper_product_max__WEBPACK_IMPORTED_MODULE_3__["default"])(discontinuedItem) <= (0,_helper_minibasket_quantity__WEBPACK_IMPORTED_MODULE_4__["default"])(discontinuedItem) + Number(amountInput.val())) { 1056 (0,_alert_show_alert_info__WEBPACK_IMPORTED_MODULE_5__["default"])(discontinuedItem, Number(amountInput.val())); 1057 return true; 1058 } 1059 } 1060}; 1061 1062/* harmony default export */ __webpack_exports__["default"] = (limitAmountSwitcherIncrease); 1063 1064/***/ }), 1065
1066/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksdoofinder/trigger-doofinder-input.js": 1067/*!*************************************************************************************************!*\ 1068 !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksdoofinder/trigger-doofinder-input.js ***! 1069 \*************************************************************************************************/ 1070/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1071 1072"use strict"; 1073__webpack_require__.r(__webpack_exports__); 1074var triggerDoofinderOnInput = function triggerDoofinderOnInput() { 1075 var _document$getElementB; 1076 1077 (_document$getElementB = document.getElementById('searchParam')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.addEventListener('input', function (e) { 1078 return e.target.click(); 1079 }); 1080}; 1081 1082/* harmony default export */ __webpack_exports__["default"] = (triggerDoofinderOnInput); 1083 1084/***/ }), 1085
1086/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksimageoptimizer/index.js": 1087/*!************************************************************************************!*\ 1088 !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksimageoptimizer/index.js ***! 1089 \************************************************************************************/ 1090/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1091 1092"use strict"; 1093__webpack_require__.r(__webpack_exports__); 1094/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.parse-int.js */ "./node_modules/core-js/modules/es.parse-int.js"); 1095/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_0__); 1096/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 1097 1098 1099var ksImageOptimizer = function ksImageOptimizer() { 1100 var imageoptimizer = { 1101 setWidth: function setWidth(iCurrentWidth) { 1102 $.cookie('imageoptimizer_window_width', iCurrentWidth, { 1103 path: '/' 1104 }); 1105 }, 1106 getWidth: function getWidth() { 1107 var cookie = $.cookie('imageoptimizer_window_width'); 1108 return cookie === null ? 0 : parseInt(cookie); 1109 }, 1110 init: function init() { 1111 var iPrevWidth = this.getWidth(); 1112 var iCurrentWidth = $(window).width() * window.devicePixelRatio; // init responseImg 1113 1114 $('img').not('.details-productmain-img').responsImg({ 1115 allowDownsize: true 1116 }); 1117 $('a.responsiveImg').responsImg({ 1118 allowDownsize: true 1119 }); // send new display width for user 1120 1121 if (iPrevWidth != iCurrentWidth) { 1122 this.setWidth(iCurrentWidth); 1123 } // on window resize 1124 1125 1126 $(window).resize(function () { 1127 var iCurrentWidth = $(window).width() * window.devicePixelRatio; 1128 imageoptimizer.setWidth(iCurrentWidth); 1129 }); 1130 } 1131 }; // on page ready 1132 1133 $(function () { 1134 imageoptimizer.init(); 1135 }); 1136}; 1137 1138/* harmony default export */ __webpack_exports__["default"] = (ksImageOptimizer); 1139 1140/***/ }), 1141
1142/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksimageoptimizer/jquery.responsImg.js": 1143/*!************************************************************************************************!*\ 1144 !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksimageoptimizer/jquery.responsImg.js ***! 1145 \************************************************************************************************/ 1146/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1147 1148"use strict"; 1149__webpack_require__.r(__webpack_exports__); 1150/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); 1151/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__); 1152/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); 1153/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__); 1154/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.parse-int.js */ "./node_modules/core-js/modules/es.parse-int.js"); 1155/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_2__); 1156/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js"); 1157/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3__); 1158/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js"); 1159/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_4__); 1160/* harmony import */ var core_js_modules_es_array_index_of_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.index-of.js */ "./node_modules/core-js/modules/es.array.index-of.js"); 1161/* harmony import */ var core_js_modules_es_array_index_of_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_index_of_js__WEBPACK_IMPORTED_MODULE_5__); 1162/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 1163/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 1164 1165 1166 1167 1168 1169 1170 1171var responsImg = function responsImg() { 1172 jQuery.responsImg = function (element, settings) { 1173 var checkSizes, config, defineWidth, determineSizes, elementType, getBackgroundImage, getElementType, getMobileWindowWidth, init, largestSize, resizeDetected, resizeTimer, retinaDisplay, rimData, setBackgroundImage, setImage, theWindow; 1174 config = { 1175 allowDownsize: false, 1176 elementQuery: false, 1177 delay: 200, 1178 breakpoints: null, 1179 considerDevice: false 1180 }; 1181 1182 if (settings) { 1183 jQuery.extend(config, settings); 1184 } 1185 1186 theWindow = jQuery(window); 1187 element = jQuery(element); 1188 rimData = {}; 1189 elementType = null; 1190 resizeTimer = null; 1191 largestSize = 0; 1192 retinaDisplay = false; 1193 1194 init = function init() { 1195 elementType = getElementType(element); 1196 1197 if (window.devicePixelRatio >= 1.5) { 1198 retinaDisplay = true; 1199 } 1200 1201 if (elementType === 'IMG') { 1202 rimData[0] = new Array(element.attr('src')); 1203 } else {
1204 rimData[0] = new Array(getBackgroundImage(element)); 1205 } 1206 1207 theWindow.on('resize.responsImg orientationchange.responsImg', resizeDetected); 1208 determineSizes(); 1209 }; 1210 1211 getBackgroundImage = function getBackgroundImage(element) { 1212 var bg; 1213 bg = element.css('background-image'); 1214 bg = bg.replace('url(', ''); 1215 bg = bg.replace(')', ''); 1216 return bg; 1217 }; 1218 1219 getElementType = function getElementType(element) { 1220 return jQuery(element).prop('tagName'); 1221 }; 1222 1223 determineSizes = function determineSizes() { 1224 var breakKey, breakValue, elData, key, newKey, pattern, ref, value; 1225 elData = element.data(); 1226 pattern = /^responsimg/; 1227 1228 for (key in elData) { 1229 value = elData[key]; 1230 1231 if (pattern.test(key)) { 1232 newKey = key.replace('responsimg', ''); 1233 1234 if (isNaN(newKey)) { 1235 newKey = newKey.toLowerCase(); 1236 ref = config.breakpoints; 1237 1238 for (breakKey in ref) { 1239 breakValue = ref[breakKey]; 1240 1241 if (newKey === breakKey) { 1242 newKey = breakValue; 1243 } 1244 } 1245 } else { 1246 newKey = parseInt(newKey, 10); 1247 } 1248 1249 rimData[newKey] = value.replace(' ', '').split(','); 1250 } 1251 } 1252 1253 checkSizes(); 1254 }; 1255 1256 resizeDetected = function resizeDetected() { 1257 clearTimeout(resizeTimer); 1258 resizeTimer = setTimeout(checkSizes, config.delay); 1259 }; 1260 1261 defineWidth = function defineWidth() { 1262 var definedWidth, mobileWindowWidth, windowWidth; 1263 definedWidth = null; 1264 1265 if (config.elementQuery === true) { 1266 definedWidth = element.width(); 1267 1268 if (window.orientation != null && config.considerDevice) { 1269 windowWidth = theWindow.width(); 1270 mobileWindowWidth = getMobileWindowWidth(); 1271 definedWidth = Math.ceil(mobileWindowWidth * definedWidth / windowWidth); 1272 } 1273 } else { 1274 if (window.orientation != null && config.considerDevice) { 1275 definedWidth = getMobileWindowWidth(); 1276 } else { 1277 definedWidth = theWindow.width(); 1278 } 1279 } 1280 1281 return definedWidth; 1282 }; 1283 1284 getMobileWindowWidth = function getMobileWindowWidth() { 1285 var mobileWindowWidth; 1286 1287 if (window.orientation === 0) { 1288 mobileWindowWidth = window.screen.width; 1289 } else { 1290 mobileWindowWidth = window.screen.height; 1291 } 1292 1293 if (navigator.userAgent.indexOf('Android') >= 0 && window.devicePixelRatio) { 1294 mobileWindowWidth = mobileWindowWidth / window.devicePixelRatio; 1295 } 1296 1297 return mobileWindowWidth; 1298 }; 1299 1300 checkSizes = function checkSizes() { 1301 var currentSelection, doIt, key, newSrc, theWidth, value; 1302 theWidth = defineWidth(); // save width for backend checking 1303 1304 $.cookie("imageoptimizer_defined_width", theWidth, { 1305 path: '/' 1306 }); 1307 currentSelection = 0; 1308 doIt = true; 1309 newSrc = ''; 1310 1311 if (theWidth > largestSize) { 1312 largestSize = theWidth; 1313 } else if (config.allowDownsize === false) { 1314 doIt = false; 1315 } 1316 1317 if (doIt === true) { 1318 for (key in rimData) { 1319 value = rimData[key]; 1320 1321 if (parseInt(key, 10) <= theWidth && parseInt(key, 10) >= currentSelection) { 1322 currentSelection = parseInt(key, 10); 1323 newSrc = rimData[currentSelection][0]; 1324 } 1325 } 1326 1327 if (retinaDisplay === true && rimData[currentSelection][1] != null) { 1328 newSrc = rimData[currentSelection][1]; 1329 } 1330 1331 if (elementType === 'IMG') { 1332 setImage(element, newSrc); 1333 } else { 1334 setBackgroundImage(element, newSrc); 1335 } 1336 } 1337 }; 1338 1339 setImage = function setImage(element, newSrc) { 1340 var oldSrc; 1341 oldSrc = element.attr('src'); 1342 1343 if (newSrc !== oldSrc) { 1344 element.attr('src', newSrc); 1345 element.attr('data-src', newSrc); 1346 } 1347 }; 1348 1349 setBackgroundImage = function setBackgroundImage(element, newSrc) { 1350 var oldSrc; 1351 oldSrc = getBackgroundImage(element); 1352 1353 if (newSrc !== oldSrc) { 1354 element.css('background-image', 'url(' + newSrc + ')'); 1355 } 1356 }; 1357 1358 init(); 1359 1360 this.recheck = function () { 1361 checkSizes(); 1362 }; 1363 1364 return this; 1365 }; 1366 1367 jQuery.fn.responsImg = function (options) { 1368 return this.each(function () { 1369 var jQthis, plugin; 1370 jQthis = jQuery(this); 1371 1372 if (jQthis.data('responsImg') === void 0) { 1373 plugin = new jQuery.responsImg(this, options); 1374 jQthis.data('responsImg', plugin); 1375 } 1376 }); 1377 }; 1378}; 1379 1380/* harmony default export */ __webpack_exports__["default"] = (responsImg); 1381 1382/***/ }), 1383
1384/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksmarketing/index.js": 1385/*!*******************************************************************************!*\ 1386 !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksmarketing/index.js ***! 1387 \*******************************************************************************/ 1388/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1389 1390"use strict"; 1391__webpack_require__.r(__webpack_exports__); 1392/* harmony import */ var core_js_modules_es_date_now_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.date.now.js */ "./node_modules/core-js/modules/es.date.now.js"); 1393/* harmony import */ var core_js_modules_es_date_now_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_now_js__WEBPACK_IMPORTED_MODULE_0__); 1394/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.date.to-string.js */ "./node_modules/core-js/modules/es.date.to-string.js"); 1395/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 1396/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.parse-int.js */ "./node_modules/core-js/modules/es.parse-int.js"); 1397/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_2__); 1398/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js"); 1399/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_3__); 1400/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 1401/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_4__); 1402/* harmony import */ var core_js_modules_es_promise_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.promise.js */ "./node_modules/core-js/modules/es.promise.js"); 1403/* harmony import */ var core_js_modules_es_promise_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_js__WEBPACK_IMPORTED_MODULE_5__); 1404/* harmony import */ var core_js_modules_es_promise_finally_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.promise.finally.js */ "./node_modules/core-js/modules/es.promise.finally.js"); 1405/* harmony import */ var core_js_modules_es_promise_finally_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally_js__WEBPACK_IMPORTED_MODULE_6__); 1406/* harmony import */ var _swipe_to_close_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../swipe-to-close.js */ "./assets/child/WaveElektroWandelt/build/js/modules/swipe-to-close.js"); 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416var ksMarketing = function ksMarketing() { 1417 document.addEventListener('DOMContentLoaded', function () { 1418 var popup = document.querySelector('.ks-marketing-popup'); 1419 if (!popup) return; 1420 var STORAGE_KEY = 'marketingPopupClosedUntil'; 1421 var DAY_MS = 24 * 60 * 60 * 1000; 1422 var BLOCK_DURATION_LOGGED_IN = 14 * DAY_MS; 1423 var BLOCK_DURATION_GUEST = 7 * DAY_MS; 1424 var SCROLL_TRIGGER_PERCENT = 50; 1425 var TIME_TRIGGER_MS = 20 * 1000; 1426 var popupCloseBtn = popup.querySelector('.ks-marketing-popup-close'); 1427 var popupSwipeHandler = popup.querySelector('.ks-marketing-popup-swipe-handler'); 1428 var popupForm = popup.querySelector('form[name="marketing-popup-form"]'); 1429 var popupBody = popup.querySelector('.ks-marketing-popup-body'); 1430 var hasTriggered = false;
1431 var scrollTimer = null; 1432 1433 function isBlocked() { 1434 var blockedUntil = localStorage.getItem(STORAGE_KEY); 1435 if (!blockedUntil) return false; 1436 return Date.now() < parseInt(blockedUntil, 10); 1437 } 1438 1439 function setBlocked() { 1440 var duration = isUserLoggedIn ? BLOCK_DURATION_LOGGED_IN : BLOCK_DURATION_GUEST; 1441 localStorage.setItem(STORAGE_KEY, String(Date.now() + duration)); 1442 } 1443 1444 function openPopup() { 1445 if (hasTriggered) return; 1446 hasTriggered = true; 1447 document.body.classList.add('ks-marketing-popup-open'); 1448 window.removeEventListener('scroll', onScroll); 1449 clearTimeout(scrollTimer); 1450 } 1451 1452 function closePopup() { 1453 document.body.classList.remove('ks-marketing-popup-open'); 1454 setBlocked(); 1455 } 1456 1457 function getScrollPercent() { 1458 var scrollTop = window.scrollY || document.documentElement.scrollTop; 1459 var docHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight; 1460 if (docHeight <= 0) return 0; 1461 return scrollTop / docHeight * 100; 1462 } 1463 1464 function onScroll() { 1465 if (getScrollPercent() >= SCROLL_TRIGGER_PERCENT) { 1466 openPopup(); 1467 } 1468 } // --- init triggers (only if not blocked) --- 1469 1470 1471 if (!isBlocked()) { 1472 window.addEventListener('scroll', onScroll, { 1473 passive: true 1474 }); 1475 scrollTimer = setTimeout(openPopup, TIME_TRIGGER_MS); 1476 } // --- close button --- 1477 1478 1479 if (popupCloseBtn) { 1480 popupCloseBtn.addEventListener('click', closePopup); 1481 } // --- swipe to close (mobile only) --- 1482 1483 1484 if (popupSwipeHandler) { 1485 (0,_swipe_to_close_js__WEBPACK_IMPORTED_MODULE_7__["default"])({ 1486 container: popup, 1487 handler: popupSwipeHandler, 1488 onClose: closePopup, 1489 closeThreshold: 150, 1490 velocityThreshold: 1, 1491 mediaQuery: '(max-width: 576px)' 1492 }); 1493 } // --- form submit --- 1494 1495 1496 if (popupForm) { 1497 popupForm.addEventListener('submit', function (e) { 1498 e.preventDefault(); 1499 1500 if (popupForm.querySelector('[aria-invalid="true"]')) { 1501 return; 1502 } 1503 1504 var submitBtn = popupForm.querySelector('button[type="submit"]'); 1505 1506 if (submitBtn) { 1507 submitBtn.classList.add('loading'); 1508 } 1509 1510 var formData = new FormData(popupForm); 1511 fetch(popupForm.getAttribute('action'), { 1512 method: 'POST', 1513 body: formData, 1514 headers: { 1515 'X-Requested-With': 'XMLHttpRequest' 1516 } 1517 }).then(function (response) { 1518 return response.json(); 1519 }).then(function (data) { 1520 if (data && data.success && popupBody) { 1521 popupBody.classList.add('is-success'); 1522 } 1523 })["catch"](function (err) { 1524 console.log('error: ' + err); 1525 })["finally"](function () { 1526 if (submitBtn) { 1527 submitBtn.classList.remove('loading'); 1528 } 1529 }); 1530 }); 1531 } 1532 }); 1533}; 1534 1535/* harmony default export */ __webpack_exports__["default"] = (ksMarketing); 1536 1537/***/ }), 1538
1539/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksmenu/index.js": 1540/*!**************************************************************************!*\ 1541 !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksmenu/index.js ***! 1542 \**************************************************************************/ 1543/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1544 1545"use strict"; 1546__webpack_require__.r(__webpack_exports__); 1547/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); 1548/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__); 1549/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 1550/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 1551/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js"); 1552/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_2__); 1553/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js"); 1554/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_3__); 1555/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ "./node_modules/core-js/modules/es.symbol.iterator.js"); 1556/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_4__); 1557/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js"); 1558/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_5__); 1559/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ "./node_modules/core-js/modules/es.string.iterator.js"); 1560/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_6__); 1561/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 1562/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_7__); 1563/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } 1574 1575var ksMenu = function ksMenu() { 1576 !function (a) { 1577 var b = { 1578 pageX: 0, 1579 pageY: 0 1580 }, 1581 c = { 1582 pageX: 0, 1583 pageY: 0 1584 }; 1585 a(document).on("touchstart", function (a) { 1586 b = a.originalEvent.touches[0], c = b; 1587 }).on("touchmove", function (a) { 1588 c = a.originalEvent.touches[0]; 1589 }).on("touchend", function (d) { 1590 var e = 10, 1591 f = b.clientX > c.clientX ? b.clientX - c.clientX : c.clientX - b.clientX, 1592 g = b.clientY > c.clientY ? b.clientY - c.clientY : c.clientY - b.clientY; 1593 f <= e && g <= e && (d.type = "touchclick", a(d.target).trigger(d)); 1594 }
1594), window.checkMenuSize = function (b, c, d) { 1595 void 0 === c && (c = !1), "object" != _typeof(d) && (d = a(".dd-menu .navbar-nav")); 1596 var e = a(".moreLinks", d), 1597 f = a(this).width() <= 750, 1598 g = 0, 1599 h = d.width(); 1600 1601 if (h += 2, d.children("li:not(.moreLinks)").each(function () { 1602 g += a(this).width(); 1603 }), !f && g > h) { 1604 var i = 0; 1605 e.show(); 1606 1607 do { 1608 var j = d.children("li:not(.moreLinks)").last(); 1609 if (!j.length) break; 1610 e.children(".dropdown-menu").prepend(j), i = 0, d.children("li").each(function () { 1611 i += a(this).width(); 1612 }); 1613 } while (i > h); 1614 } else { 1615 var j = d.children("li:not(.moreLinks)").last(), 1616 k = e.children(".dropdown-menu").children("li"); 1617 j.length ? j.after(k) : d.prepend(k), e.hide(), f || c || this.checkMenuSize.call(this, b, !0, d); 1618 } 1619 }, void 0 !== window.blDisableMegaMenuMoreButton && 0 != window.blDisableMegaMenuMoreButton || a(window).on("resize", window.checkMenuSize).on("load", window.checkMenuSize), a(function () { 1620 a('.dd-menu .dd-nav-category-menu li[data-cat-pic!=""]').mouseenter(function () { 1621 a(".dd-nav-category-img img", a(this).closest(".dd-nav-category ")).attr("src", a(this).data("cat-pic")); 1622 }).mouseleave(function () { 1623 var b = a(".dd-nav-category-img img", a(this).closest(".dd-nav-category")); 1624 b.attr("src", b.data("main-pic")); 1625 }), a(document).on("touchclick", function (b) { 1626 a(b.target).closest(".dropdown").length || a(b.target).hasClass("dropdown") || a(".dropdown").removeClass("open"); 1627 }), a(".nav li.dd-tree-dropdown>.dropdown-toggle, .nav li.dd-expand-dropdown>.dropdown-toggle").click(function (b) { 1628 if (a(window).width() < 768) { 1629 if ("object" == (typeof Flow === "undefined" ? "undefined" : _typeof(Flow)) || "object" == (typeof RoxIVE === "undefined" ? "undefined" : _typeof(RoxIVE))) { 1630 a(".caret", this).removeClass("caret").addClass("fa fa-caret-down"); 1631 var c = a(this).parent("li.dd-tree-dropdown, li.dd-expand-dropdown"); 1632 a(c).hasClass("open") ? (a(".nav li.dd-tree-dropdown, .nav li.dd-expand-dropdown").removeClass("open", "active"), a(".dd-menu .fa-caret-up").removeClass("fa-caret-up").addClass("fa-caret-down")) : (a(".dd-menu .fa-caret-up").removeClass("fa-caret-up").addClass("fa-caret-down"), a(".fa-caret-down", this).removeClass("fa-caret-down").addClass("fa-caret-up"), a(".nav li.dd-tree-dropdown, .nav li.dd-expand-dropdown").removeClass("open", "active"), a(c).addClass("open")), b.stopPropagation(); 1633 } 1634 1635 b.preventDefault(); 1636 } 1637 }), a(".dd-menu").on("shown.bs.collapse", function () { 1638 if (a(window).width() < 768 && ("object" == (typeof Flow === "undefined" ? "undefined" : _typeof(Flow)) || "object" == (typeof RoxIVE === "undefined" ? "undefined" : _typeof(RoxIVE)))) { 1639 var b = a(".dd-menu").get(0).getBoundingClientRect(), 1640 c = b.top, 1641 d = window.innerHeight || a(window).height(); 1642 a(".dd-menu").css("max-height", d - c + "px"); 1643 } 1644 }), "object" == (typeof RoxIVE === "undefined" ? "undefined" : _typeof(RoxIVE)) && (a(".dd-nav-content").addClass("dd-font-color"), a(".nav>li").addClass("remove-bottom-li"), a(".menu-header-span").addClass("menu-color"), a(".dd-menu .nav li").addClass("dd-menu-li-bottom")), a(".header-box").hasClass("menu-in-header") ? a(".navbar-collapse").css("padding-left", 382) : a(".header-box").hasClass("boxed") && a(".navbar-collapse").css("padding-left", 15), a(".dropdown-menu a.dropdown-toggle > .caret").on("click", function () { 1645 var b = a(this).parents("a.dropdown-toggle"); 1646 return a(b).next().hasClass("show") || a(b).parents(".dropdown-menu").first().find(".show").removeClass("show"), a(b).next(".dropdown-menu").toggleClass("show"), a(b).parents("li.nav-item.dropdown.show").on("hidden.bs.dropdown", function (b) { 1647 a(".dropdown-submenu .show").removeClass("show"); 1648 }), !1; 1649 }); 1650 }); 1651 }(jQuery); 1652}; 1653 1654/* harmony default export */ __webpack_exports__["default"] = (ksMenu); 1655 1656/***/ }), 1657
1658/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksseoanalytics/index.js": 1659/*!**********************************************************************************!*\ 1660 !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksseoanalytics/index.js ***! 1661 \**********************************************************************************/ 1662/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1663 1664"use strict"; 1665__webpack_require__.r(__webpack_exports__); 1666/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.parse-int.js */ "./node_modules/core-js/modules/es.parse-int.js"); 1667/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_0__); 1668/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); 1669/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_1__); 1670/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 1671/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__); 1672/* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.object.assign.js */ "./node_modules/core-js/modules/es.object.assign.js"); 1673/* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_3__); 1674/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js"); 1675/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_4__); 1676/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); 1677/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__); 1678/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); 1679/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__); 1680/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js"); 1681/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_7__); 1682/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692var productListEvents = function productListEvents() { 1693 window.selectItemEvent = function (e) { 1694 var currentForm = e.closest('form'); // gtm event 1695 1696 window.dataLayer = window.dataLayer || []; 1697 window.dataLayer.push({ 1698 event: 'select_item', 1699 ecommerce: { 1700 items: getEventDataFromForm(currentForm) 1701 } 1702 }); 1703 }; 1704 1705 window.addToCartEvents = function (currentForm) { 1706 // gtm event 1707 window.dataLayer = window.dataLayer || []; 1708 window.dataLayer.push({ 1709 event: 'add_to_cart', 1710 ecommerce: { 1711 items: getEventDataFromForm(currentForm, event = 'addToCartEvent') 1712 } 1713 }); // tracify event 1714 1715 tracify.captureAddToCart({ 1716 quantity: setQuantity(currentForm) 1717 }); 1718 }; // get data for events: 1719 1720 1721 var setQuantity = function setQuantity(form) { 1722 return parseInt($(form).find('.ks__amount__switcher_amount').val()); 1723 }; 1724 1725 var getEventDataFromForm = function getEventDataFromForm(form, event) { 1726 var data = { 1727 item_name: $(form).find('.ks__listDetails__title span:nth-child(1)').html(), 1728 item_id: $(form).attr('data-artnr'), 1729 quantity: event === 'addToCartEvent' ? setQuantity(form) : 1 1730 }; 1731 1732 if (data.item_brand !== '') { 1733 Object.assign(data, { 1734 item_brand: $(form).find('.ks__listDetails__vendor_wrapper img').attr('alt') 1735 }); 1736 } 1737 1738 if (data.price !== '') { 1739 Object.assign(data, { 1740 price: Number($(form).find('.price').html().slice(0, -2).replace('.', '').replace(',', '.').replace(' ', '')) 1741 }); 1742 } 1743 1744 return [data]; 1745 }; 1746}; 1747 1748/* harmony default export */ __webpack_exports__["default"] = (productListEvents); 1749 1750/***/ }), 1751
1752/***/ "./assets/child/WaveElektroWandelt/build/js/modules/minibasket-handler.js": 1753/*!********************************************************************************!*\ 1754 !*** ./assets/child/WaveElektroWandelt/build/js/modules/minibasket-handler.js ***! 1755 \********************************************************************************/ 1756/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1757 1758"use strict"; 1759__webpack_require__.r(__webpack_exports__); 1760/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js"); 1761/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_0__); 1762/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 1763 1764 1765var minibasketHandler = function minibasketHandler() { 1766 window.openBasket = function () { 1767 $('.minibasket-menu').addClass('show'); 1768 $('body').addClass('minibasket-menu-open'); 1769 1770 if (typeof showButtonExpress == 'function') { 1771 showButtonExpress(); 1772 } 1773 }; 1774 1775 window.closeBasket = function () { 1776 $('.minibasket-menu').removeClass('show'); 1777 $('body').removeClass('minibasket-menu-open'); 1778 }; // Adding new click events because Doofinder and kaAjax destroy them 1779 1780 1781 window.addMiniBaskethandlers = function () { 1782 $('.minibasket__open-btn').click(function () { 1783 // window.openBasket(); 1784 document.location.href = '/warenkorb/'; 1785 }); 1786 $('.minibasket__close-btn').click(function () { 1787 window.closeBasket(); 1788 }); 1789 }; 1790 1791 window.addMiniBaskethandlers(); 1792 1793 window.adaptiveMinibasketHeight = function () { 1794 var windowHeight = window.innerHeight; 1795 var minibasketFooterHeight = $('.minibasket__footer').outerHeight(); 1796 var heightHeight = $('.header').height(); // append <style> because ksAjaxToBasket rebuild all minibasket DOM 1797 // 34 - PT for .minibasket__close-btn 1798 1799 $('.minibasket-styles').html('<style>.minibasket {max-height: ' + (windowHeight - minibasketFooterHeight - heightHeight - 36) + 'px}</style>'); 1800 }; // paypal btns loaded after document ready 1801 1802 1803 setTimeout(function () { 1804 window.adaptiveMinibasketHeight(); 1805 }, 500); // mobile topbar 1806 1807 $(window).on('resize', function () { 1808 window.adaptiveMinibasketHeight(); 1809 }); 1810}; 1811 1812/* harmony default export */ __webpack_exports__["default"] = (minibasketHandler); 1813 1814/***/ }), 1815
1816/***/ "./assets/child/WaveElektroWandelt/build/js/modules/page-anchor-link.js": 1817/*!******************************************************************************!*\ 1818 !*** ./assets/child/WaveElektroWandelt/build/js/modules/page-anchor-link.js ***! 1819 \******************************************************************************/ 1820/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1821 1822"use strict"; 1823__webpack_require__.r(__webpack_exports__); 1824/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); 1825/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__); 1826/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); 1827/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__); 1828/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.string.replace-all.js */ "./node_modules/core-js/modules/esnext.string.replace-all.js"); 1829/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_2__); 1830/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js"); 1831/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_3__); 1832/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 1833 1834 1835 1836 1837 1838var pageAnhorLinks = function pageAnhorLinks() { 1839 var PAGE_ANCHOR_LINK_CLASS = '.page-anchor-link'; 1840 var PAGE_ANCHOR_LINK = 'pageAnchorLink'; 1841 $(PAGE_ANCHOR_LINK_CLASS + '.availability-status').each(function () { 1842 $(this).attr('page-anchor-link', $(this).attr('page-anchor-link').replaceAll('** ', '').replaceAll(' ', '-')); 1843 }); 1844 $(PAGE_ANCHOR_LINK_CLASS).click(function (e) { 1845 var pageAnhorLinkAttr = $(this).attr('page-anchor-link'); 1846 var href = $(this).attr('href'); 1847 1848 if (!href || href === '#' || href === window.location.href || href === window.location.pathname) { 1849 e.preventDefault(); 1850 1851 if ($('body').hasClass('mobile-menu-open')) { 1852 $('.header__mobBtn').trigger('click'); 1853 } 1854 1855 var target = $(pageAnhorLinkAttr); 1856 1857 if (pageAnhorLinkAttr && target.length) { 1858 $('html, body').animate({ 1859 scrollTop: target.offset().top - $('.header').height() 1860 }, 500); 1861 } 1862 } else { 1863 sessionStorage.setItem(PAGE_ANCHOR_LINK, pageAnhorLinkAttr); 1864 } 1865 }); 1866 setTimeout(function () { 1867 var pageAnhorLink = $(sessionStorage.getItem(PAGE_ANCHOR_LINK)); 1868 1869 if (pageAnhorLink.length) { 1870 $('html, body').animate({ 1871 scrollTop: pageAnhorLink.offset().top - $('.header').height() 1872 }, 500); 1873 sessionStorage.removeItem(PAGE_ANCHOR_LINK); 1874 } 1875 }, 100); 1876}; 1877 1878/* harmony default export */ __webpack_exports__["default"] = (pageAnhorLinks); 1879 1880/***/ }), 1881
1882/***/ "./assets/child/WaveElektroWandelt/build/js/modules/page-not-found.js": 1883/*!****************************************************************************!*\ 1884 !*** ./assets/child/WaveElektroWandelt/build/js/modules/page-not-found.js ***! 1885 \****************************************************************************/ 1886/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1887 1888"use strict"; 1889__webpack_require__.r(__webpack_exports__); 1890/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 1891var pageNotFound = function pageNotFound() { 1892 if ($('.page-not-found').length) { 1893 if (!$('.not-found-background').length) { 1894 $('.footer').prepend('<div class="not-found-background"></div>'); 1895 } 1896 1897 var notFoundBackgroundHeight = window.innerWidth / 4.1; 1898 $('.content-box').css('padding-bottom', notFoundBackgroundHeight + 'px'); 1899 $('.not-found-background').css('height', notFoundBackgroundHeight + 'px'); 1900 $('.not-found-background').css('top', '-' + notFoundBackgroundHeight + 'px'); 1901 } 1902}; 1903 1904window.addEventListener('resize', pageNotFound); 1905/* harmony default export */ __webpack_exports__["default"] = (pageNotFound); 1906 1907/***/ }), 1908
1909/***/ "./assets/child/WaveElektroWandelt/build/js/modules/product-price/number-to-price-format.js": 1910/*!**************************************************************************************************!*\ 1911 !*** ./assets/child/WaveElektroWandelt/build/js/modules/product-price/number-to-price-format.js ***! 1912 \**************************************************************************************************/ 1913/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1914 1915"use strict"; 1916__webpack_require__.r(__webpack_exports__); 1917/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); 1918/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__); 1919/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); 1920/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__); 1921/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.string.replace-all.js */ "./node_modules/core-js/modules/esnext.string.replace-all.js"); 1922/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_2__); 1923 1924 1925 1926 1927var numberToPriceFormat = function numberToPriceFormat(number) { 1928 return number.toLocaleString('en-US', { 1929 minimumFractionDigits: 2 1930 }).replace('.', ' ').replaceAll(',', '.').replace(' ', ',') + " \u20AC"; 1931}; 1932 1933/* harmony default export */ __webpack_exports__["default"] = (numberToPriceFormat); 1934 1935/***/ }), 1936
1937/***/ "./assets/child/WaveElektroWandelt/build/js/modules/product-price/price-format-to-number.js": 1938/*!**************************************************************************************************!*\ 1939 !*** ./assets/child/WaveElektroWandelt/build/js/modules/product-price/price-format-to-number.js ***! 1940 \**************************************************************************************************/ 1941/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1942 1943"use strict"; 1944__webpack_require__.r(__webpack_exports__); 1945/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js"); 1946/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__); 1947/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); 1948/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__); 1949/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); 1950/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2__); 1951/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js"); 1952/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_3__); 1953/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.string.replace-all.js */ "./node_modules/core-js/modules/esnext.string.replace-all.js"); 1954/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_4__); 1955 1956 1957 1958 1959 1960 1961var priceFormatToNumber = function priceFormatToNumber(stringPriceContainer) { 1962 return Number(stringPriceContainer.html().replaceAll(' ', '').replaceAll('.', '').slice(0, -1).replace(',', '.')); 1963}; 1964 1965/* harmony default export */ __webpack_exports__["default"] = (priceFormatToNumber); 1966 1967/***/ }), 1968
1969/***/ "./assets/child/WaveElektroWandelt/build/js/modules/product-price/product-price-calc.js": 1970/*!**********************************************************************************************!*\ 1971 !*** ./assets/child/WaveElektroWandelt/build/js/modules/product-price/product-price-calc.js ***! 1972 \**********************************************************************************************/ 1973/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 1974 1975"use strict"; 1976__webpack_require__.r(__webpack_exports__); 1977/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); 1978/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__); 1979/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 1980/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 1981/* harmony import */ var core_js_modules_es_parse_float_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.parse-float.js */ "./node_modules/core-js/modules/es.parse-float.js"); 1982/* harmony import */ var core_js_modules_es_parse_float_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_parse_float_js__WEBPACK_IMPORTED_MODULE_2__); 1983/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); 1984/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_3__); 1985/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); 1986/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_4__); 1987/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.string.replace-all.js */ "./node_modules/core-js/modules/esnext.string.replace-all.js"); 1988/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_5__); 1989/* harmony import */ var _number_to_price_format__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./number-to-price-format */ "./assets/child/WaveElektroWandelt/build/js/modules/product-price/number-to-price-format.js"); 1990/* harmony import */ var _price_format_to_number__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./price-format-to-number */ "./assets/child/WaveElektroWandelt/build/js/modules/product-price/price-format-to-number.js"); 1991/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001var productPriceCalc = function productPriceCalc(formClass) { 2002 $(formClass).each(function () { 2003 var _this = this; 2004 2005 $(this).attr('data-set-ppc-function', ''); 2006 var priceContainer = $(this).find('.price'); 2007 2008 if (priceContainer.length) { 2009 var switcherContainer = $(this).find('.ks__amount__switcher'); 2010 var oldPriceContainer = $(this).find('.price-old .value'); 2011 var discountPriceContainer = $(this).find('.price-discount .value'); 2012 var price = (0,_price_format_to_number__WEBPACK_IMPORTED_MODULE_7__["default"])(priceContainer); 2013 2014 if (oldPriceContainer.length) { 2015 var oldPrice = (0,_price_format_to_number__WEBPACK_IMPORTED_MODULE_7__["default"])(oldPriceContainer); 2016 } 2017 2018 if (discountPriceContainer.length) { 2019 var discountPrice = (0,_price_format_to_number__WEBPACK_IMPORTED_MODULE_7__["default"])(discountPriceContainer); 2020 } 2021 2022 var getQuantityPrice = function getQuantityPrice(quantity, defaultPrice) { 2023 var priceListContainer = $(_this).find('.price-info-tooltip table'); 2024 var currentPrice = defaultPrice; 2025 2026 if (priceListContainer.length) { 2027 priceListContainer.find('tr').each(function (idx, el) { 2028 if ($(el).data('min') <= quantity && $(el).data('max') >= quantity) { 2029 currentPrice = parseFloat($(el).data('value').replaceAll(' ', '').replaceAll('.', '').replace(',', '.')); 2030 } 2031 }); 2032 } 2033 2034 return currentPrice; 2035 }; 2036 2037 var calcPrice = function calcPrice() { 2038 var quantity = $(_this).find('.ks__amount__switcher input').val(); 2039 var totalPrice = quantity * getQuantityPrice(quantity, price); 2040 priceContainer.html((0,_number_to_price_format__WEBPACK_IMPORTED_MODULE_6__["default"])(totalPrice)); 2041 2042 if (oldPriceContainer.length) { 2043 var totaloldPrice = quantity * oldPrice; 2044 oldPriceContainer.html((0,_number_to_price_format__WEBPACK_IMPORTED_MODULE_6__["default"])(totaloldPrice)); 2045 } 2046 2047 if (discountPriceContainer.length) { 2048 var totalDiscountPrice = quantity * discountPrice; 2049 discountPriceContainer.html((0,_number_to_price_format__WEBPACK_IMPORTED_MODULE_6__["default"])(totalDiscountPrice)); 2050 } 2051 }; 2052 2053 switcherContainer.change(function () { 2054 calcPrice(); 2055 }); 2056 } 2057 }); 2058}; 2059 2060/* harmony default export */ __webpack_exports__["default"] = (productPriceCalc); 2061 2062/***/ }), 2063
2064/***/ "./assets/child/WaveElektroWandelt/build/js/modules/scroll-to-top.js": 2065/*!***************************************************************************!*\ 2066 !*** ./assets/child/WaveElektroWandelt/build/js/modules/scroll-to-top.js ***! 2067 \***************************************************************************/ 2068/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 2069 2070"use strict"; 2071__webpack_require__.r(__webpack_exports__); 2072/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 2073var scrollToTop = function scrollToTop() { 2074 var scrollToTopEl = $('#scroll-to-top'); 2075 var SHOW_CLASS = 'show'; 2076 $(window).on('scroll', function () { 2077 if ($(this).scrollTop() > window.innerHeight) { 2078 $(scrollToTopEl).addClass(SHOW_CLASS); 2079 } else { 2080 $(scrollToTopEl).removeClass(SHOW_CLASS); 2081 } 2082 }); 2083 $(scrollToTopEl).click(function (e) { 2084 e.preventDefault(); 2085 $('html, body').animate({ 2086 scrollTop: 0 2087 }, 300); 2088 }); 2089}; 2090 2091/* harmony default export */ __webpack_exports__["default"] = (scrollToTop); 2092 2093/***/ }), 2094
2095/***/ "./assets/child/WaveElektroWandelt/build/js/modules/swipe-to-close.js": 2096/*!****************************************************************************!*\ 2097 !*** ./assets/child/WaveElektroWandelt/build/js/modules/swipe-to-close.js ***! 2098 \****************************************************************************/ 2099/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 2100 2101"use strict"; 2102__webpack_require__.r(__webpack_exports__); 2103/* harmony import */ var core_js_modules_es_date_now_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.date.now.js */ "./node_modules/core-js/modules/es.date.now.js"); 2104/* harmony import */ var core_js_modules_es_date_now_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_now_js__WEBPACK_IMPORTED_MODULE_0__); 2105/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.date.to-string.js */ "./node_modules/core-js/modules/es.date.to-string.js"); 2106/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1__); 2107 2108 2109 2110var swipeToClose = function swipeToClose(options) { 2111 var container = options.container; 2112 var handler = options.handler; 2113 var onClose = options.onClose; 2114 var closeThreshold = options.closeThreshold || 150; 2115 var velocityThreshold = options.velocityThreshold || 1; 2116 var mql = options.mediaQuery ? window.matchMedia(options.mediaQuery) : null; 2117 2118 if (!container || !handler || typeof onClose !== 'function') { 2119 return { 2120 destroy: function destroy() {} 2121 }; 2122 } 2123 2124 var startY = 0; 2125 var currentY = 0; 2126 var startTime = 0; 2127 var isDragging = false; 2128 2129 function isActive() { 2130 return !mql || mql.matches; 2131 } 2132 2133 function onPointerDown(e) { 2134 if (!isActive()) return; 2135 startY = e.clientY; 2136 startTime = Date.now(); 2137 isDragging = true; 2138 container.style.transition = 'none'; 2139 handler.setPointerCapture(e.pointerId); 2140 } 2141 2142 function onPointerMove(e) { 2143 if (!isDragging) return; 2144 currentY = e.clientY; 2145 var diff = currentY - startY; 2146 2147 if (diff > 0) { 2148 container.style.transform = 'translateY(' + diff + 'px)'; 2149 } 2150 } 2151 2152 function onPointerUp(e) { 2153 if (!isDragging) return; 2154 isDragging = false; 2155 handler.releasePointerCapture(e.pointerId); 2156 var diff = currentY - startY; 2157 var duration = Date.now() - startTime || 1; 2158 var velocity = diff / duration; 2159 container.style.transition = ''; 2160 container.style.transform = ''; 2161 2162 if (diff > closeThreshold || velocity > velocityThreshold) { 2163 onClose(); 2164 } 2165 2166 startY = 0; 2167 currentY = 0; 2168 } 2169 2170 handler.addEventListener('pointerdown', onPointerDown); 2171 handler.addEventListener('pointermove', onPointerMove); 2172 handler.addEventListener('pointerup', onPointerUp); 2173 2174 function destroy() { 2175 handler.removeEventListener('pointerdown', onPointerDown); 2176 handler.removeEventListener('pointermove', onPointerMove); 2177 handler.removeEventListener('pointerup', onPointerUp); 2178 } 2179 2180 return { 2181 destroy: destroy 2182 }; 2183}; 2184 2185/* harmony default export */ __webpack_exports__["default"] = (swipeToClose); 2186 2187/***/ }), 2188
2189/***/ "./assets/child/WaveElektroWandelt/build/js/modules/years-of-expertise.js": 2190/*!********************************************************************************!*\ 2191 !*** ./assets/child/WaveElektroWandelt/build/js/modules/years-of-expertise.js ***! 2192 \********************************************************************************/ 2193/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 2194 2195"use strict"; 2196__webpack_require__.r(__webpack_exports__); 2197/* harmony import */ var _helpers_get_year__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/get-year */ "./assets/child/WaveElektroWandelt/build/js/helpers/get-year.js"); 2198/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 2199 2200 2201var yearsOfExpertise = function yearsOfExpertise() { 2202 var yearsOfExpertise = (0,_helpers_get_year__WEBPACK_IMPORTED_MODULE_0__["default"])() - 2005; 2203 $('.yearsOfExpertise').each(function () { 2204 $(this).html(yearsOfExpertise); 2205 }); 2206}; 2207 2208/* harmony default export */ __webpack_exports__["default"] = (yearsOfExpertise); 2209 2210/***/ }), 2211
vendor: 2,125 bytes, lines 2212-2273
2212/***/ "./assets/wave/build/vendor/jquery-unveil/js/jquery.unveil.js": 2213/*!********************************************************************!*\ 2214 !*** ./assets/wave/build/vendor/jquery-unveil/js/jquery.unveil.js ***! 2215 \********************************************************************/ 2216/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 2217 2218/* provided dependency */ var __webpack_provided_window_dot_jQuery = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 2219__webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js"); 2220 2221__webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); 2222 2223/** 2224 * jQuery Unveil 2225 * A very lightweight jQuery plugin to lazy load images 2226 * http://luis-almeida.github.com/unveil 2227 * 2228 * Licensed under the MIT license. 2229 * Copyright 2013 LuÃÂs Almeida 2230 * https://github.com/luis-almeida 2231 */ 2232; 2233 2234(function ($) { 2235 $.fn.unveil = function (threshold, callback) { 2236 var $w = $(window), 2237 th = threshold || 0, 2238 retina = window.devicePixelRatio > 1, 2239 attrib = retina ? "data-src-retina" : "data-src", 2240 images = this, 2241 loaded; 2242 this.one("unveil", function () { 2243 var source = this.getAttribute(attrib); 2244 source = source || this.getAttribute("data-src"); 2245 2246 if (source) { 2247 this.setAttribute("src", source); 2248 if (typeof callback === "function") callback.call(this); 2249 } 2250 }); 2251 2252 function unveil() { 2253 var inview = images.filter(function () { 2254 var $e = $(this); 2255 if ($e.is(":hidden")) return; 2256 var wt = $w.scrollTop(), 2257 wb = wt + $w.height(), 2258 et = $e.offset().top, 2259 eb = et + $e.height(); 2260 return eb >= wt - th && et <= wb + th; 2261 }); 2262 loaded = inview.trigger("unveil"); 2263 images = images.not(loaded); 2264 } 2265 2266 $w.on("scroll.unveil resize.unveil lookup.unveil", unveil); 2267 unveil(); 2268 return this; 2269 }; 2270})(__webpack_provided_window_dot_jQuery || window.Zepto); 2271 2272/***/ }), 2273
vendor: 59,743 bytes, lines 2274-4340
2274/***/ "./node_modules/bootstrap-datepicker/js/bootstrap-datepicker.js": 2275/*!**********************************************************************!*\ 2276 !*** ./node_modules/bootstrap-datepicker/js/bootstrap-datepicker.js ***! 2277 \**********************************************************************/ 2278/***/ (function(module, exports, __webpack_require__) { 2279 2280var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* ========================================================= 2281 * bootstrap-datepicker.js 2282 * Repo: https://github.com/uxsolutions/bootstrap-datepicker/ 2283 * Demo: https://uxsolutions.github.io/bootstrap-datepicker/ 2284 * Docs: https://bootstrap-datepicker.readthedocs.org/ 2285 * ========================================================= 2286 * Licensed under the Apache License, Version 2.0 (the "License"); 2287 * you may not use this file except in compliance with the License. 2288 * You may obtain a copy of the License at 2289 * 2290 * https://www.apache.org/licenses/LICENSE-2.0 2291 * 2292 * Unless required by applicable law or agreed to in writing, software 2293 * distributed under the License is distributed on an "AS IS" BASIS, 2294 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2295 * See the License for the specific language governing permissions and 2296 * limitations under the License. 2297 * ========================================================= */ 2298 2299(function(factory){ 2300 if (true) { 2301 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 2302 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 2303 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 2304 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 2305 } else {} 2306}(function($, undefined){ 2307 function UTCDate(){ 2308 return new Date(Date.UTC.apply(Date, arguments)); 2309 } 2310 function UTCToday(){ 2311 var today = new Date(); 2312 return UTCDate(today.getFullYear(), today.getMonth(), today.getDate()); 2313 } 2314 function isUTCEquals(date1, date2) { 2315 return ( 2316 date1.getUTCFullYear() === date2.getUTCFullYear() && 2317 date1.getUTCMonth() === date2.getUTCMonth() && 2318 date1.getUTCDate() === date2.getUTCDate() 2319 ); 2320 } 2321 function alias(method, deprecationMsg){ 2322 return function(){ 2323 if (deprecationMsg !== undefined) { 2324 $.fn.bootstrapdatepicker.deprecated(deprecationMsg); 2325 } 2326 2327 return this[method].apply(this, arguments); 2328 }; 2329 } 2330 function isValidDate(d) { 2331 return d && !isNaN(d.getTime()); 2332 } 2333 2334 var DateArray = (function(){ 2335 var extras = { 2336 get: function(i){ 2337 return this.slice(i)[0]; 2338 }, 2339 contains: function(d){ 2340 // Array.indexOf is not cross-browser; 2341 // $.inArray doesn't work with Dates 2342 var val = d && d.valueOf(); 2343 for (var i=0, l=this.length; i < l; i++) 2344 // Use date arithmetic to allow dates with different times to match 2345 if (0 <= this[i].valueOf() - val && this[i].valueOf() - val < 1000*60*60*24) 2346 return i; 2347 return -1; 2348 }, 2349 remove: function(i){ 2350 this.splice(i,1); 2351 }, 2352 replace: function(new_array){ 2353 if (!new_array) 2354 return; 2355 if (!Array.isArray(new_array)) 2356 new_array = [new_array]; 2357 this.clear(); 2358 this.push.apply(this, new_array); 2359 }, 2360 clear: function(){ 2361 this.length = 0; 2362 }, 2363 copy: function(){ 2364 var a = new DateArray(); 2365 a.replace(this); 2366 return a; 2367 } 2368 }; 2369 2370 return function(){ 2371 var a = []; 2372 a.push.apply(a, arguments); 2373 $.extend(a, extras); 2374 return a; 2375 }; 2376 })(); 2377 2378 2379 // Picker object 2380 2381 var Datepicker = function(element, options){ 2382 $.data(element, 'datepicker', this); 2383 2384 this._events = []; 2385 this._secondaryEvents = []; 2386 2387 this._process_options(options); 2388 2389 this.dates = new DateArray(); 2390 this.viewDate = this.o.defaultViewDate; 2391 this.focusDate = null; 2392 2393 this.element = $(element); 2394 this.isInput = this.element.is('input'); 2395 this.inputField = this.isInput ? this.element : this.element.find('input'); 2396 this.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .input-group-append, .input-group-prepend, .btn') : false; 2397 if (this.component && this.component.length === 0){ 2398 this.component = false; 2399 } 2400 2401 if (this.o.isInline === null){ 2402 this.isInline = !this.component && !this.isInput; 2403 } else { 2404 this.isInline = this.o.isInline; 2405 } 2406 2407 this.picker = $(DPGlobal.template); 2408 2409 // Checking templates and inserting 2410 if (this._check_template(this.o.templates.leftArrow)) { 2411 this.picker.find('.prev').html(this.o.templates.leftArrow); 2412 } 2413 2414 if (this._check_template(this.o.templates.rightArrow)) { 2415 this.picker.find('.next').html(this.o.templates.rightArrow); 2416 } 2417 2418 this._buildEvents(); 2419 this._attachEvents(); 2420 2421 if (this.isInline){ 2422 this.picker.addClass('datepicker-inline').appendTo(this.element); 2423 } 2424 else { 2425 this.picker.addClass('datepicker-dropdown dropdown-menu'); 2426 } 2427 2428 if (this.o.rtl){ 2429 this.picker.addClass('datepicker-rtl'); 2430 } 2431 2432 if (this.o.calendarWeeks) { 2433 this.picker.find('.datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear') 2434 .attr('colspan', function(i, val){ 2435 return Number(val) + 1; 2436 }); 2437 } 2438 2439 this._process_options({ 2440 startDate: this._o.startDate, 2441 endDate: this._o.endDate, 2442 daysOfWeekDisabled: this.o.daysOfWeekDisabled, 2443 daysOfWeekHighlighted: this.o.daysOfWeekHighlighted, 2444 datesDisabled: this.o.datesDisabled 2445 }); 2446 2447 this._allow_update = false; 2448 this.setViewMode(this.o.startView); 2449 this._allow_update = true; 2450 2451 this.fillDow(); 2452 this.fillMonths(); 2453 2454 this.update(); 2455 2456 if (this.isInline){ 2457 this.show(); 2458 } 2459 }; 2460 2461 Datepicker.prototype = { 2462 constructor: Datepicker, 2463 2464 _resolveViewName: function(view){ 2465 $.each(DPGlobal.viewModes, function(i, viewMode){ 2466 if (view === i || $.inArray(view, viewMode.names) !== -1){ 2467 view = i; 2468 return false; 2469 } 2470 }); 2471 2472 return view; 2473 }, 2474 2475 _resolveDaysOfWeek: function(daysOfWeek){ 2476 if (!Array.isArray(daysOfWeek)) 2477 daysOfWeek = daysOfWeek.split(/[,\s]*/); 2478 return $.map(daysOfWeek, Number); 2479 }, 2480 2481 _check_template: function(tmp){ 2482 try { 2483 // If empty 2484 if (tmp === undefined || tmp === "") { 2485 return false; 2486 } 2487 // If no html, everything ok 2488 if ((tmp.match(/[<>]/g) || []).length <= 0) { 2489 return true; 2490 } 2491 // Checking if html is fine 2492 var jDom = $(tmp); 2493 return jDom.length > 0; 2494 } 2495 catch (ex) { 2496 return false; 2497 } 2498 }, 2499 2500 _process_options: function(opts){ 2501 // Store raw options for reference 2502 this._o = $.extend({}, this._o, opts); 2503 // Processed options 2504 var o = this.o = $.extend({}, this._o); 2505 2506 // Check if "de-DE" style date is available, if not language should 2507 // fallback to 2 letter code eg "de" 2508 var lang = o.language; 2509 if (!dates[lang]){ 2510 lang = lang.split('-')[0]; 2511 if (!dates[lang]) 2512 lang = defaults.language; 2513 } 2514 o.language = lang; 2515 2516 // Retrieve view index from any aliases 2517 o.startView = this._resolveViewName(o.startView); 2518 o.minViewMode = this._resolveViewName(o.minViewMode); 2519 o.maxViewMode = this._resolveViewName(o.maxViewMode); 2520 2521 // Check view is between min and max 2522 o.startView = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, o.startView)); 2523 2524 // true, false, or Number > 0 2525 if (o.multidate !== true){ 2526 o.multidate = Number(o.multidate) || false; 2527 if (o.multidate !== false) 2528 o.multidate = Math.max(0, o.multidate); 2529 } 2530 o.multidateSeparator = String(o.multidateSeparator); 2531 2532 o.weekStart %= 7; 2533 o.weekEnd = (o.weekStart + 6) % 7; 2534 2535 var format = DPGlobal.parseFormat(o.format); 2536 if (o.startDate !== -Infinity){ 2537 if (!!o.startDate){ 2538 if (o.startDate instanceof Date) 2539 o.startDate = this._local_to_utc(this._zero_time(o.startDate)); 2540 else 2541 o.startDate = DPGlobal.parseDate(o.startDate, format, o.language, o.assumeNearbyYear); 2542 } 2543 else { 2544 o.startDate = -Infinity; 2545 } 2546 } 2547 if (o.endDate !== Infinity){ 2548 if (!!o.endDate){ 2549 if (o.endDate instanceof Date) 2550 o.endDate = this._local_to_utc(this._zero_time(o.endDate)); 2551 else 2552 o.endDate = DPGlobal.parseDate(o.endDate, format, o.language, o.assumeNearbyYear); 2553 } 2554 else { 2555 o.endDate = Infinity; 2556 } 2557 } 2558 2559 o.daysOfWeekDisabled = this._resolveDaysOfWeek(o.daysOfWeekDisabled||[]); 2560 o.daysOfWeekHighlighted = this._resolveDaysOfWeek(o.daysOfWeekHighlighted||[]); 2561 2562 o.datesDisabled = o.datesDisabled||[]; 2563 if (!Array.isArray(o.datesDisabled)) { 2564 o.datesDisabled = o.datesDisabled.split(','); 2565 } 2566 o.datesDisabled = $.map(o.datesDisabled, function(d){ 2567 return DPGlobal.parseDate(d, format, o.language, o.assumeNearbyYear); 2568 }); 2569 2570 var plc = String(o.orientation).toLowerCase().split(/\s+/g), 2571 _plc = o.orientation.toLowerCase(); 2572 plc = $.grep(plc, function(word){ 2573 return /^auto|left|right|top|bottom$/.test(word); 2574 }); 2575 o.orientation = {x: 'auto', y: 'auto'}; 2576 if (!_plc || _plc === 'auto') 2577 ; // no action 2578 else if (plc.length === 1){ 2579 switch (plc[0]){ 2580 case 'top': 2581 case 'bottom': 2582 o.orientation.y = plc[0]; 2583 break; 2584 case 'left': 2585 case 'right': 2586 o.orientation.x = plc[0]; 2587 break; 2588 } 2589 } 2590 else { 2591 _plc = $.grep(plc, function(word){ 2592 return /^left|right$/.test(word); 2593 }); 2594 o.orientation.x = _plc[0] || 'auto'; 2595 2596 _plc = $.grep(plc, function(word){ 2597 return /^top|bottom$/.test(word); 2598 }); 2599 o.orientation.y = _plc[0] || 'auto'; 2600 } 2601 if (o.defaultViewDate instanceof Date || typeof o.defaultViewDate === 'string') { 2602 o.defaultViewDate = DPGlobal.parseDate(o.defaultViewDate, format, o.language, o.assumeNearbyYear); 2603 } else if (o.defaultViewDate) { 2604 var year = o.defaultViewDate.year || new Date().getFullYear(); 2605 var month = o.defaultViewDate.month || 0; 2606 var day = o.defaultViewDate.day || 1; 2607 o.defaultViewDate = UTCDate(year, month, day); 2608 } else { 2609 o.defaultViewDate = UTCToday(); 2610 } 2611 }, 2612 _applyEvents: function(evs){ 2613 for (var i=0, el, ch, ev; i < evs.length; i++){ 2614 el = evs[i][0]; 2615 if (evs[i].length === 2){ 2616 ch = undefined; 2617 ev = evs[i][1]; 2618 } else if (evs[i].length === 3){ 2619 ch = evs[i][1]; 2620 ev = evs[i][2]; 2621 } 2622 el.on(ev, ch); 2623 } 2624 }, 2625 _unapplyEvents: function(evs){ 2626 for (var i=0, el, ev, ch; i < evs.length; i++){ 2627 el = evs[i][0]; 2628 if (evs[i].length === 2){ 2629 ch = undefined; 2630 ev = evs[i][1]; 2631 } else if (evs[i].length === 3){ 2632 ch = evs[i][1]; 2633 ev = evs[i][2]; 2634 } 2635 el.off(ev, ch); 2636 } 2637 }, 2638 _buildEvents: function(){ 2639 var events = { 2640 keyup: $.proxy(function(e){ 2641 if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1) 2642 this.update(); 2643 }, this), 2644 keydown: $.proxy(this.keydown, this), 2645 paste: $.proxy(this.paste, this) 2646 }; 2647 2648 if (this.o.showOnFocus === true) { 2649 events.focus = $.proxy(this.show, this); 2650 } 2651 2652 if (this.isInput) { // single input 2653 this._events = [ 2654 [this.element, events] 2655 ]; 2656 } 2657 // component: input + button 2658 else if (this.component && this.inputField.length) { 2659 this._events = [ 2660 // For components that are not readonly, allow keyboard nav 2661 [this.inputField, events], 2662 [this.component, { 2663 click: $.proxy(this.show, this) 2664 }] 2665 ]; 2666 } 2667 else { 2668 this._events = [ 2669 [this.element, { 2670 click: $.proxy(this.show, this), 2671 keydown: $.proxy(this.keydown, this) 2672 }] 2673 ]; 2674 } 2675 this._events.push( 2676 // Component: listen for blur on element descendants 2677 [this.element, '*', { 2678 blur: $.proxy(function(e){ 2679 this._focused_from = e.target; 2680 }, this) 2681 }], 2682 // Input: listen for blur on element 2683 [this.element, { 2684 blur: $.proxy(function(e){ 2685 this._focused_from = e.target; 2686 }, this) 2687 }] 2688 ); 2689 2690 if (this.o.immediateUpdates) { 2691 // Trigger input updates immediately on changed year/month 2692 this._events.push([this.element, { 2693 'changeYear changeMonth': $.proxy(function(e){ 2694 this.update(e.date); 2695 }, this) 2696 }]); 2697 } 2698 2699 this._secondaryEvents = [ 2700 [this.picker, { 2701 click: $.proxy(this.click, this) 2702 }], 2703 [this.picker, '.prev, .next', { 2704 click: $.proxy(this.navArrowsClick, this) 2705 }], 2706 [this.picker, '.day:not(.disabled)', { 2707 click: $.proxy(this.dayCellClick, this) 2708 }], 2709 [$(window), { 2710 resize: $.proxy(this.place, this) 2711 }], 2712 [$(document), { 2713 'mousedown touchstart': $.proxy(function(e){ 2714 // Clicked outside the datepicker, hide it 2715 if (!( 2716 this.element.is(e.target) || 2717 this.element.find(e.target).length || 2718 this.picker.is(e.target) || 2719 this.picker.find(e.target).length || 2720 this.isInline 2721 )){ 2722 this.hide(); 2723 } 2724 }, this) 2725 }] 2726 ]; 2727 }, 2728 _attachEvents: function(){ 2729 this._detachEvents(); 2730 this._applyEvents(this._events); 2731 }, 2732 _detachEvents: function(){ 2733 this._unapplyEvents(this._events); 2734 }, 2735 _attachSecondaryEvents: function(){ 2736 this._detachSecondaryEvents(); 2737 this._applyEvents(this._secondaryEvents); 2738 }, 2739 _detachSecondaryEvents: function(){ 2740 this._unapplyEvents(this._secondaryEvents); 2741 }, 2742 _trigger: function(event, altdate){ 2743 var date = altdate || this.dates.get(-1), 2744 local_date = this._utc_to_local(date); 2745 2746 this.element.trigger({ 2747 type: event, 2748 date: local_date, 2749 viewMode: this.viewMode, 2750 dates: $.map(this.dates, this._utc_to_local), 2751 format: $.proxy(function(ix, format){ 2752 if (arguments.length === 0){ 2753 ix = this.dates.length - 1; 2754 format = this.o.format; 2755 } else if (typeof ix === 'string'){ 2756 format = ix; 2757 ix = this.dates.length - 1; 2758 } 2759 format = format || this.o.format; 2760 var date = this.dates.get(ix); 2761 return DPGlobal.formatDate(date, format, this.o.language); 2762 }, this) 2763 }); 2764 }, 2765 2766 show: function(){ 2767 if (this.inputField.is(':disabled') || (this.inputField.prop('readonly') && this.o.enableOnReadonly === false)) 2768 return; 2769 if (!this.isInline) 2770 this.picker.appendTo(this.o.container); 2771 this.place(); 2772 this.picker.show(); 2773 this._attachSecondaryEvents(); 2774 this._trigger('show'); 2775 if ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) { 2776 $(this.element).blur(); 2777 } 2778 return this; 2779 }, 2780 2781 hide: function(){ 2782 if (this.isInline || !this.picker.is(':visible')) 2783 return this; 2784 this.focusDate = null; 2785 this.picker.hide().detach(); 2786 this._detachSecondaryEvents(); 2787 this.setViewMode(this.o.startView); 2788 2789 if (this.o.forceParse && this.inputField.val()) 2790 this.setValue(); 2791 this._trigger('hide'); 2792 return this; 2793 }, 2794 2795 destroy: function(){ 2796 this.hide(); 2797 this._detachEvents(); 2798 this._detachSecondaryEvents(); 2799 this.picker.remove(); 2800 delete this.element.data().datepicker; 2801 if (!this.isInput){ 2802 delete this.element.data().date; 2803 } 2804 return this; 2805 }, 2806 2807 paste: function(e){ 2808 var dateString; 2809 if (e.originalEvent.clipboardData && e.originalEvent.clipboardData.types 2810 && $.inArray('text/plain', e.originalEvent.clipboardData.types) !== -1) { 2811 dateString = e.originalEvent.clipboardData.getData('text/plain'); 2812 } else if (window.clipboardData) { 2813 dateString = window.clipboardData.getData('Text'); 2814 } else { 2815 return; 2816 } 2817 this.setDate(dateString); 2818 this.update(); 2819 e.preventDefault(); 2820 }, 2821 2822 _utc_to_local: function(utc){ 2823 if (!utc) { 2824 return utc; 2825 } 2826 2827 var local = new Date(utc.getTime() + (utc.getTimezoneOffset() * 60000)); 2828 2829 if (local.getTimezoneOffset() !== utc.getTimezoneOffset()) { 2830 local = new Date(utc.getTime() + (local.getTimezoneOffset() * 60000)); 2831 } 2832 2833 return local; 2834 }, 2835 _local_to_utc: function(local){ 2836 return local && new Date(local.getTime() - (local.getTimezoneOffset()*60000)); 2837 }, 2838 _zero_time: function(local){ 2839 return local && new Date(local.getFullYear(), local.getMonth(), local.getDate()); 2840 }, 2841 _zero_utc_time: function(utc){ 2842 return utc && UTCDate(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()); 2843 }, 2844 2845 getDates: function(){ 2846 return $.map(this.dates, this._utc_to_local); 2847 }, 2848 2849 getUTCDates: function(){ 2850 return $.map(this.dates, function(d){ 2851 return new Date(d); 2852 }); 2853 }, 2854 2855 getDate: function(){ 2856 return this._utc_to_local(this.getUTCDate()); 2857 }, 2858 2859 getUTCDate: function(){ 2860 var selected_date = this.dates.get(-1); 2861 if (selected_date !== undefined) { 2862 return new Date(selected_date); 2863 } else { 2864 return null; 2865 } 2866 }, 2867 2868 clearDates: function(){ 2869 this.inputField.val(''); 2870 this._trigger('changeDate'); 2871 this.update(); 2872 if (this.o.autoclose) { 2873 this.hide(); 2874 } 2875 }, 2876 2877 setDates: function(){ 2878 var args = Array.isArray(arguments[0]) ? arguments[0] : arguments; 2879 this.update.apply(this, args); 2880 this._trigger('changeDate'); 2881 this.setValue(); 2882 return this; 2883 }, 2884 2885 setUTCDates: function(){ 2886 var args = Array.isArray(arguments[0]) ? arguments[0] : arguments; 2887 this.setDates.apply(this, $.map(args, this._utc_to_local)); 2888 return this; 2889 }, 2890 2891 setDate: alias('setDates'), 2892 setUTCDate: alias('setUTCDates'), 2893 remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead'), 2894 2895 setValue: function(){ 2896 var formatted = this.getFormattedDate(); 2897 this.inputField.val(formatted); 2898 return this; 2899 }, 2900 2901 getFormattedDate: function(format){ 2902 if (format === undefined) 2903 format = this.o.format; 2904 2905 var lang = this.o.language; 2906 return $.map(this.dates, function(d){ 2907 return DPGlobal.formatDate(d, format, lang); 2908 }).join(this.o.multidateSeparator); 2909 }, 2910 2911 getStartDate: function(){ 2912 return this.o.startDate; 2913 }, 2914 2915 setStartDate: function(startDate){ 2916 this._process_options({startDate: startDate}); 2917 this.update(); 2918 this.updateNavArrows(); 2919 return this; 2920 }, 2921 2922 getEndDate: function(){ 2923 return this.o.endDate; 2924 }, 2925 2926 setEndDate: function(endDate){ 2927 this._process_options({endDate: endDate}); 2928 this.update(); 2929 this.updateNavArrows(); 2930 return this; 2931 }, 2932 2933 setDaysOfWeekDisabled: function(daysOfWeekDisabled){ 2934 this._process_options({daysOfWeekDisabled: daysOfWeekDisabled}); 2935 this.update(); 2936 return this; 2937 }, 2938 2939 setDaysOfWeekHighlighted: function(daysOfWeekHighlighted){ 2940 this._process_options({daysOfWeekHighlighted: daysOfWeekHighlighted}); 2941 this.update(); 2942 return this; 2943 }, 2944 2945 setDatesDisabled: function(datesDisabled){ 2946 this._process_options({datesDisabled: datesDisabled}); 2947 this.update(); 2948 return this; 2949 }, 2950 2951 place: function(){ 2952 if (this.isInline) 2953 return this; 2954 var calendarWidth = this.picker.outerWidth(), 2955 calendarHeight = this.picker.outerHeight(), 2956 visualPadding = 10, 2957 container = $(this.o.container), 2958 windowWidth = container.width(), 2959 scrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(), 2960 appendOffset = container.offset(); 2961 2962 var parentsZindex = [0]; 2963 this.element.parents().each(function(){ 2964 var itemZIndex = $(this).css('z-index'); 2965 if (itemZIndex !== 'auto' && Number(itemZIndex) !== 0) parentsZindex.push(Number(itemZIndex)); 2966 }); 2967 var zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset; 2968 var offset = this.component ? this.component.parent().offset() : this.element.offset(); 2969 var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false); 2970 var width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false); 2971 var left = offset.left - appendOffset.left; 2972 var top = offset.top - appendOffset.top; 2973 2974 if (this.o.container !== 'body') { 2975 top += scrollTop; 2976 } 2977 2978 this.picker.removeClass( 2979 'datepicker-orient-top datepicker-orient-bottom '+ 2980 'datepicker-orient-right datepicker-orient-left' 2981 ); 2982 2983 if (this.o.orientation.x !== 'auto'){ 2984 this.picker.addClass('datepicker-orient-' + this.o.orientation.x); 2985 if (this.o.orientation.x === 'right') 2986 left -= calendarWidth - width; 2987 } 2988 // auto x orientation is best-placement: if it crosses a window 2989 // edge, fudge it sideways 2990 else { 2991 if (offset.left < 0) { 2992 // component is outside the window on the left side. Move it into visible range 2993 this.picker.addClass('datepicker-orient-left'); 2994 left -= offset.left - visualPadding; 2995 } else if (left + calendarWidth > windowWidth) { 2996 // the calendar passes the widow right edge. Align it to component right side 2997 this.picker.addClass('datepicker-orient-right'); 2998 left += width - calendarWidth; 2999 } else { 3000 if (this.o.rtl) { 3001 // Default to right 3002 this.picker.addClass('datepicker-orient-right'); 3003 } else { 3004 // Default to left 3005 this.picker.addClass('datepicker-orient-left'); 3006 } 3007 } 3008 } 3009 3010 // auto y orientation is best-situation: top or bottom, no fudging, 3011 // decision based on which shows more of the calendar 3012 var yorient = this.o.orientation.y, 3013 top_overflow; 3014 if (yorient === 'auto'){ 3015 top_overflow = -scrollTop + top - calendarHeight; 3016 yorient = top_overflow < 0 ? 'bottom' : 'top'; 3017 } 3018 3019 this.picker.addClass('datepicker-orient-' + yorient); 3020 if (yorient === 'top') 3021 top -= calendarHeight + parseInt(this.picker.css('padding-top')); 3022 else 3023 top += height; 3024 3025 if (this.o.rtl) { 3026 var right = windowWidth - (left + width); 3027 this.picker.css({ 3028 top: top, 3029 right: right, 3030 zIndex: zIndex 3031 }); 3032 } else { 3033 this.picker.css({ 3034 top: top, 3035 left: left, 3036 zIndex: zIndex 3037 }); 3038 } 3039 return this; 3040 }, 3041 3042 _allow_update: true, 3043 update: function(){ 3044 if (!this._allow_update) 3045 return this; 3046 3047 var oldDates = this.dates.copy(), 3048 dates = [], 3049 fromArgs = false; 3050 if (arguments.length){ 3051 $.each(arguments, $.proxy(function(i, date){ 3052 if (date instanceof Date) 3053 date = this._local_to_utc(date); 3054 dates.push(date); 3055 }, this)); 3056 fromArgs = true; 3057 } else { 3058 dates = this.isInput 3059 ? this.element.val() 3060 : this.element.data('date') || this.inputField.val(); 3061 if (dates && this.o.multidate) 3062 dates = dates.split(this.o.multidateSeparator); 3063 else 3064 dates = [dates]; 3065 delete this.element.data().date; 3066 } 3067 3068 dates = $.map(dates, $.proxy(function(date){ 3069 return DPGlobal.parseDate(date, this.o.format, this.o.language, this.o.assumeNearbyYear); 3070 }, this)); 3071 dates = $.grep(dates, $.proxy(function(date){ 3072 return ( 3073 !this.dateWithinRange(date) || 3074 !date 3075 ); 3076 }, this), true); 3077 this.dates.replace(dates); 3078 3079 if (this.o.updateViewDate) { 3080 if (this.dates.length) 3081 this.viewDate = new Date(this.dates.get(-1)); 3082 else if (this.viewDate < this.o.startDate) 3083 this.viewDate = new Date(this.o.startDate); 3084 else if (this.viewDate > this.o.endDate) 3085 this.viewDate = new Date(this.o.endDate); 3086 else 3087 this.viewDate = this.o.defaultViewDate; 3088 } 3089 3090 if (fromArgs){ 3091 // setting date by clicking 3092 this.setValue(); 3093 this.element.change(); 3094 } 3095 else if (this.dates.length){ 3096 // setting date by typing 3097 if (String(oldDates) !== String(this.dates) && fromArgs) { 3098 this._trigger('changeDate'); 3099 this.element.change(); 3100 } 3101 } 3102 if (!this.dates.length && oldDates.length) { 3103 this._trigger('clearDate'); 3104 this.element.change(); 3105 } 3106 3107 this.fill(); 3108 return this; 3109 }, 3110 3111 fillDow: function(){ 3112 if (this.o.showWeekDays) { 3113 var dowCnt = this.o.weekStart, 3114 html = '<tr>'; 3115 if (this.o.calendarWeeks){ 3116 html += '<th class="cw"> </th>'; 3117 } 3118 while (dowCnt < this.o.weekStart + 7){ 3119 html += '<th class="dow'; 3120 if ($.inArray(dowCnt, this.o.daysOfWeekDisabled) !== -1) 3121 html += ' disabled'; 3122 html += '">'+dates[this.o.language].daysMin[(dowCnt++)%7]+'</th>'; 3123 } 3124 html += '</tr>'; 3125 this.picker.find('.datepicker-days thead').append(html); 3126 } 3127 }, 3128 3129 fillMonths: function(){ 3130 var localDate = this._utc_to_local(this.viewDate); 3131 var html = ''; 3132 var focused; 3133 for (var i = 0; i < 12; i++){ 3134 focused = localDate && localDate.getMonth() === i ? ' focused' : ''; 3135 html += '<span class="month' + focused + '">' + dates[this.o.language].monthsShort[i] + '</span>'; 3136 } 3137 this.picker.find('.datepicker-months td').html(html); 3138 }, 3139 3140 setRange: function(range){ 3141 if (!range || !range.length) 3142 delete this.range; 3143 else 3144 this.range = $.map(range, function(d){ 3145 return d.valueOf(); 3146 }); 3147 this.fill(); 3148 }, 3149 3150 getClassNames: function(date){ 3151 var cls = [], 3152 year = this.viewDate.getUTCFullYear(), 3153 month = this.viewDate.getUTCMonth(), 3154 today = UTCToday(); 3155 if (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){ 3156 cls.push('old'); 3157 } else if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){ 3158 cls.push('new'); 3159 } 3160 if (this.focusDate && date.valueOf() === this.focusDate.valueOf()) 3161 cls.push('focused'); 3162 // Compare internal UTC date with UTC today, not local today 3163 if (this.o.todayHighlight && isUTCEquals(date, today)) { 3164 cls.push('today'); 3165 } 3166 if (this.dates.contains(date) !== -1) 3167 cls.push('active'); 3168 if (!this.dateWithinRange(date)){ 3169 cls.push('disabled'); 3170 } 3171 if (this.dateIsDisabled(date)){ 3172 cls.push('disabled', 'disabled-date'); 3173 } 3174 if ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1){ 3175 cls.push('highlighted'); 3176 } 3177 3178 if (this.range){ 3179 if (date > this.range[0] && date < this.range[this.range.length-1]){ 3180 cls.push('range'); 3181 } 3182 if ($.inArray(date.valueOf(), this.range) !== -1){ 3183 cls.push('selected'); 3184 } 3185 if (date.valueOf() === this.range[0]){ 3186 cls.push('range-start'); 3187 } 3188 if (date.valueOf() === this.range[this.range.length-1]){ 3189 cls.push('range-end'); 3190 } 3191 } 3192 return cls; 3193 }, 3194 3195 _fill_yearsView: function(selector, cssClass, factor, year, startYear, endYear, beforeFn){ 3196 var html = ''; 3197 var step = factor / 10; 3198 var view = this.picker.find(selector); 3199 var startVal = Math.floor(year / factor) * factor; 3200 var endVal = startVal + step * 9; 3201 var focusedVal = Math.floor(this.viewDate.getFullYear() / step) * step; 3202 var selected = $.map(this.dates, function(d){ 3203 return Math.floor(d.getUTCFullYear() / step) * step; 3204 }); 3205 3206 var classes, tooltip, before; 3207 for (var currVal = startVal - step; currVal <= endVal + step; currVal += step) { 3208 classes = [cssClass]; 3209 tooltip = null; 3210 3211 if (currVal === startVal - step) { 3212 classes.push('old'); 3213 } else if (currVal === endVal + step) { 3214 classes.push('new'); 3215 } 3216 if ($.inArray(currVal, selected) !== -1) { 3217 classes.push('active'); 3218 } 3219 if (currVal < startYear || currVal > endYear) { 3220 classes.push('disabled'); 3221 } 3222 if (currVal === focusedVal) { 3223 classes.push('focused'); 3224 } 3225 3226 if (beforeFn !== $.noop) { 3227 before = beforeFn(new Date(currVal, 0, 1)); 3228 if (before === undefined) { 3229 before = {}; 3230 } else if (typeof before === 'boolean') { 3231 before = {enabled: before}; 3232 } else if (typeof before === 'string') { 3233 before = {classes: before}; 3234 } 3235 if (before.enabled === false) { 3236 classes.push('disabled'); 3237 } 3238 if (before.classes) { 3239 classes = classes.concat(before.classes.split(/\s+/)); 3240 } 3241 if (before.tooltip) { 3242 tooltip = before.tooltip; 3243 } 3244 } 3245 3246 html += '<span class="' + classes.join(' ') + '"' + (tooltip ? ' title="' + tooltip + '"' : '') + '>' + currVal + '</span>'; 3247 } 3248 3249 view.find('.datepicker-switch').text(startVal + '-' + endVal); 3250 view.find('td').html(html); 3251 }, 3252 3253 fill: function(){ 3254 var d = new Date(this.viewDate), 3255 year = d.getUTCFullYear(), 3256 month = d.getUTCMonth(), 3257 startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity, 3258 startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity, 3259 endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity, 3260 endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity, 3261 todaytxt = dates[this.o.language].today || dates['en'].today || '', 3262 cleartxt = dates[this.o.language].clear || dates['en'].clear || '', 3263 titleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat, 3264 todayDate = UTCToday(), 3265 titleBtnVisible = (this.o.todayBtn === true || this.o.todayBtn === 'linked') && todayDate >= this.o.startDate && todayDate <= this.o.endDate && !this.weekOfDateIsDisabled(todayDate), 3266 tooltip, 3267 before; 3268 if (isNaN(year) || isNaN(month)) 3269 return; 3270 this.picker.find('.datepicker-days .datepicker-switch') 3271 .text(DPGlobal.formatDate(d, titleFormat, this.o.language)); 3272 this.picker.find('tfoot .today') 3273 .text(todaytxt) 3274 .css('display', titleBtnVisible ? 'table-cell' : 'none'); 3275 this.picker.find('tfoot .clear') 3276 .text(cleartxt) 3277 .css('display', this.o.clearBtn === true ? 'table-cell' : 'none'); 3278 this.picker.find('thead .datepicker-title') 3279 .text(this.o.title) 3280 .css('display', typeof this.o.title === 'string' && this.o.title !== '' ? 'table-cell' : 'none'); 3281 this.updateNavArrows(); 3282 this.fillMonths(); 3283 var prevMonth = UTCDate(year, month, 0), 3284 day = prevMonth.getUTCDate(); 3285 prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7); 3286 var nextMonth = new Date(prevMonth); 3287 if (prevMonth.getUTCFullYear() < 100){ 3288 nextMonth.setUTCFullYear(prevMonth.getUTCFullYear()); 3289 } 3290 nextMonth.setUTCDate(nextMonth.getUTCDate() + 42); 3291 nextMonth = nextMonth.valueOf(); 3292 var html = []; 3293 var weekDay, clsName; 3294 while (prevMonth.valueOf() < nextMonth){ 3295 weekDay = prevMonth.getUTCDay(); 3296 if (weekDay === this.o.weekStart){ 3297 html.push('<tr>'); 3298 if (this.o.calendarWeeks){ 3299 // ISO 8601: First week contains first thursday. 3300 // ISO also states week starts on Monday, but we can be more abstract here. 3301 var 3302 // Start of current week: based on weekstart/current date 3303 ws = new Date(+prevMonth + (this.o.weekStart - weekDay - 7) % 7 * 864e5), 3304 // Thursday of this week 3305 th = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5), 3306 // First Thursday of year, year from thursday 3307 yth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay()) % 7 * 864e5), 3308 // Calendar week: ms between thursdays, div ms per day, div 7 days 3309 calWeek = (th - yth) / 864e5 / 7 + 1; 3310 html.push('<td class="cw">'+ calWeek +'</td>'); 3311 } 3312 } 3313 clsName = this.getClassNames(prevMonth); 3314 clsName.push('day'); 3315 3316 var content = prevMonth.getUTCDate(); 3317 3318 if (this.o.beforeShowDay !== $.noop){ 3319 before = this.o.beforeShowDay(this._utc_to_local(prevMonth)); 3320 if (before === undefined) 3321 before = {}; 3322 else if (typeof before === 'boolean') 3323 before = {enabled: before}; 3324 else if (typeof before === 'string') 3325 before = {classes: before}; 3326 if (before.enabled === false) 3327 clsName.push('disabled'); 3328 if (before.classes) 3329 clsName = clsName.concat(before.classes.split(/\s+/)); 3330 if (before.tooltip) 3331 tooltip = before.tooltip; 3332 if (before.content) 3333 content = before.content; 3334 } 3335 3336 //Check if uniqueSort exists (supported by jquery >=1.12 and >=2.2) 3337 //Fallback to unique function for older jquery versions 3338 if (typeof $.uniqueSort === "function") { 3339 clsName = $.uniqueSort(clsName); 3340 } else { 3341 clsName = $.unique(clsName); 3342 } 3343 3344 html.push('<td class="'+clsName.join(' ')+'"' + (tooltip ? ' title="'+tooltip+'"' : '') + ' data-date="' + prevMonth.getTime().toString() + '">' + content + '</td>'); 3345 tooltip = null; 3346 if (weekDay === this.o.weekEnd){ 3347 html.push('</tr>'); 3348 } 3349 prevMonth.setUTCDate(prevMonth.getUTCDate() + 1); 3350 } 3351 this.picker.find('.datepicker-days tbody').html(html.join('')); 3352 3353 var monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months'; 3354 var months = this.picker.find('.datepicker-months') 3355 .find('.datepicker-switch') 3356 .text(this.o.maxViewMode < 2 ? monthsTitle : year) 3357 .end() 3358 .find('tbody span').removeClass('active'); 3359 3360 $.each(this.dates, function(i, d){ 3361 if (d.getUTCFullYear() === year) 3362 months.eq(d.getUTCMonth()).addClass('active'); 3363 }); 3364 3365 if (year < startYear || year > endYear){ 3366 months.addClass('disabled'); 3367 } 3368 if (year === startYear){ 3369 months.slice(0, startMonth).addClass('disabled'); 3370 } 3371 if (year === endYear){ 3372 months.slice(endMonth+1).addClass('disabled'); 3373 } 3374 3375 if (this.o.beforeShowMonth !== $.noop){ 3376 var that = this; 3377 $.each(months, function(i, month){ 3378 var moDate = new Date(year, i, 1); 3379 var before = that.o.beforeShowMonth(moDate); 3380 if (before === undefined) 3381 before = {}; 3382 else if (typeof before === 'boolean') 3383 before = {enabled: before}; 3384 else if (typeof before === 'string') 3385 before = {classes: before}; 3386 if (before.enabled === false && !$(month).hasClass('disabled')) 3387 $(month).addClass('disabled'); 3388 if (before.classes) 3389 $(month).addClass(before.classes); 3390 if (before.tooltip) 3391 $(month).prop('title', before.tooltip); 3392 }); 3393 } 3394 3395 // Generating decade/years picker 3396 this._fill_yearsView( 3397 '.datepicker-years', 3398 'year', 3399 10, 3400 year, 3401 startYear, 3402 endYear, 3403 this.o.beforeShowYear 3404 ); 3405 3406 // Generating century/decades picker 3407 this._fill_yearsView( 3408 '.datepicker-decades', 3409 'decade', 3410 100, 3411 year, 3412 startYear, 3413 endYear, 3414 this.o.beforeShowDecade 3415 ); 3416 3417 // Generating millennium/centuries picker 3418 this._fill_yearsView( 3419 '.datepicker-centuries', 3420 'century', 3421 1000, 3422 year, 3423 startYear, 3424 endYear, 3425 this.o.beforeShowCentury 3426 ); 3427 }, 3428 3429 updateNavArrows: function(){ 3430 if (!this._allow_update) 3431 return; 3432 3433 var d = new Date(this.viewDate), 3434 year = d.getUTCFullYear(), 3435 month = d.getUTCMonth(), 3436 startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity, 3437 startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity, 3438 endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity, 3439 endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity, 3440 prevIsDisabled, 3441 nextIsDisabled, 3442 factor = 1; 3443 switch (this.viewMode){ 3444 case 4: 3445 factor *= 10; 3446 /* falls through */ 3447 case 3: 3448 factor *= 10; 3449 /* falls through */ 3450 case 2: 3451 factor *= 10; 3452 /* falls through */ 3453 case 1: 3454 prevIsDisabled = Math.floor(year / factor) * factor <= startYear; 3455 nextIsDisabled = Math.floor(year / factor) * factor + factor > endYear; 3456 break; 3457 case 0: 3458 prevIsDisabled = year <= startYear && month <= startMonth; 3459 nextIsDisabled = year >= endYear && month >= endMonth; 3460 break; 3461 } 3462 3463 this.picker.find('.prev').toggleClass('disabled', prevIsDisabled); 3464 this.picker.find('.next').toggleClass('disabled', nextIsDisabled); 3465 }, 3466 3467 click: function(e){ 3468 e.preventDefault(); 3469 e.stopPropagation(); 3470 3471 var target, dir, day, year, month; 3472 target = $(e.target); 3473 3474 // Clicked on the switch 3475 if (target.hasClass('datepicker-switch') && this.viewMode !== this.o.maxViewMode){ 3476 this.setViewMode(this.viewMode + 1); 3477 } 3478 3479 // Clicked on today button 3480 if (target.hasClass('today') && !target.hasClass('day')){ 3481 this.setViewMode(0); 3482 this._setDate(UTCToday(), this.o.todayBtn === 'linked' ? null : 'view'); 3483 } 3484 3485 // Clicked on clear button 3486 if (target.hasClass('clear')){ 3487 this.clearDates(); 3488 } 3489 3490 if (!target.hasClass('disabled')){ 3491 // Clicked on a month, year, decade, century 3492 if (target.hasClass('month') 3493 || target.hasClass('year') 3494 || target.hasClass('decade') 3495 || target.hasClass('century')) { 3496 this.viewDate.setUTCDate(1); 3497 3498 day = 1; 3499 if (this.viewMode === 1){ 3500 month = target.parent().find('span').index(target); 3501 year = this.viewDate.getUTCFullYear(); 3502 this.viewDate.setUTCMonth(month); 3503 } else { 3504 month = 0; 3505 year = Number(target.text()); 3506 this.viewDate.setUTCFullYear(year); 3507 } 3508 3509 this._trigger(DPGlobal.viewModes[this.viewMode - 1].e, this.viewDate); 3510 3511 if (this.viewMode === this.o.minViewMode){ 3512 this._setDate(UTCDate(year, month, day)); 3513 } else { 3514 this.setViewMode(this.viewMode - 1); 3515 this.fill(); 3516 } 3517 } 3518 } 3519 3520 if (this.picker.is(':visible') && this._focused_from){ 3521 this._focused_from.focus(); 3522 } 3523 delete this._focused_from; 3524 }, 3525 3526 dayCellClick: function(e){ 3527 var $target = $(e.currentTarget); 3528 var timestamp = $target.data('date'); 3529 var date = new Date(timestamp); 3530 3531 if (this.o.updateViewDate) { 3532 if (date.getUTCFullYear() !== this.viewDate.getUTCFullYear()) { 3533 this._trigger('changeYear', this.viewDate); 3534 } 3535 3536 if (date.getUTCMonth() !== this.viewDate.getUTCMonth()) { 3537 this._trigger('changeMonth', this.viewDate); 3538 } 3539 } 3540 this._setDate(date); 3541 }, 3542 3543 // Clicked on prev or next 3544 navArrowsClick: function(e){ 3545 var $target = $(e.currentTarget); 3546 var dir = $target.hasClass('prev') ? -1 : 1; 3547 if (this.viewMode !== 0){ 3548 dir *= DPGlobal.viewModes[this.viewMode].navStep * 12; 3549 } 3550 this.viewDate = this.moveMonth(this.viewDate, dir); 3551 this._trigger(DPGlobal.viewModes[this.viewMode].e, this.viewDate); 3552 this.fill(); 3553 }, 3554 3555 _toggle_multidate: function(date){ 3556 var ix = this.dates.contains(date); 3557 if (!date){ 3558 this.dates.clear(); 3559 } 3560 3561 if (ix !== -1){ 3562 if (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive){ 3563 this.dates.remove(ix); 3564 } 3565 } else if (this.o.multidate === false) { 3566 this.dates.clear(); 3567 this.dates.push(date); 3568 } 3569 else { 3570 this.dates.push(date); 3571 } 3572 3573 if (typeof this.o.multidate === 'number') 3574 while (this.dates.length > this.o.multidate) 3575 this.dates.remove(0); 3576 }, 3577 3578 _setDate: function(date, which){ 3579 if (!which || which === 'date') 3580 this._toggle_multidate(date && new Date(date)); 3581 if ((!which && this.o.updateViewDate) || which === 'view') 3582 this.viewDate = date && new Date(date); 3583 3584 this.fill(); 3585 this.setValue(); 3586 if (!which || which !== 'view') { 3587 this._trigger('changeDate'); 3588 } 3589 this.inputField.trigger('change'); 3590 if (this.o.autoclose && (!which || which === 'date')){ 3591 this.hide(); 3592 } 3593 }, 3594 3595 moveDay: function(date, dir){ 3596 var newDate = new Date(date); 3597 newDate.setUTCDate(date.getUTCDate() + dir); 3598 3599 return newDate; 3600 }, 3601 3602 moveWeek: function(date, dir){ 3603 return this.moveDay(date, dir * 7); 3604 }, 3605 3606 moveMonth: function(date, dir){ 3607 if (!isValidDate(date)) 3608 return this.o.defaultViewDate; 3609 if (!dir) 3610 return date; 3611 var new_date = new Date(date.valueOf()), 3612 day = new_date.getUTCDate(), 3613 month = new_date.getUTCMonth(), 3614 mag = Math.abs(dir), 3615 new_month, test; 3616 dir = dir > 0 ? 1 : -1; 3617 if (mag === 1){ 3618 test = dir === -1 3619 // If going back one month, make sure month is not current month 3620 // (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02) 3621 ? function(){ 3622 return new_date.getUTCMonth() === month; 3623 } 3624 // If going forward one month, make sure month is as expected 3625 // (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02) 3626 : function(){ 3627 return new_date.getUTCMonth() !== new_month; 3628 }; 3629 new_month = month + dir; 3630 new_date.setUTCMonth(new_month); 3631 // Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11 3632 new_month = (new_month + 12) % 12; 3633 } 3634 else { 3635 // For magnitudes >1, move one month at a time... 3636 for (var i=0; i < mag; i++) 3637 // ...which might decrease the day (eg, Jan 31 to Feb 28, etc)... 3638 new_date = this.moveMonth(new_date, dir); 3639 // ...then reset the day, keeping it in the new month 3640 new_month = new_date.getUTCMonth(); 3641 new_date.setUTCDate(day); 3642 test = function(){ 3643 return new_month !== new_date.getUTCMonth(); 3644 }; 3645 } 3646 // Common date-resetting loop -- if date is beyond end of month, make it 3647 // end of month 3648 while (test()){ 3649 new_date.setUTCDate(--day); 3650 new_date.setUTCMonth(new_month); 3651 } 3652 return new_date; 3653 }, 3654 3655 moveYear: function(date, dir){ 3656 return this.moveMonth(date, dir*12); 3657 }, 3658 3659 moveAvailableDate: function(date, dir, fn){ 3660 do { 3661 date = this[fn](date, dir); 3662 3663 if (!this.dateWithinRange(date)) 3664 return false; 3665 3666 fn = 'moveDay'; 3667 } 3668 while (this.dateIsDisabled(date)); 3669 3670 return date; 3671 }, 3672 3673 weekOfDateIsDisabled: function(date){ 3674 return $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1; 3675 }, 3676 3677 dateIsDisabled: function(date){ 3678 return ( 3679 this.weekOfDateIsDisabled(date) || 3680 $.grep(this.o.datesDisabled, function(d){ 3681 return isUTCEquals(date, d); 3682 }).length > 0 3683 ); 3684 }, 3685 3686 dateWithinRange: function(date){ 3687 return date >= this.o.startDate && date <= this.o.endDate; 3688 }, 3689 3690 keydown: function(e){ 3691 if (!this.picker.is(':visible')){ 3692 if (e.keyCode === 40 || e.keyCode === 27) { // allow down to re-show picker 3693 this.show(); 3694 e.stopPropagation(); 3695 } 3696 return; 3697 } 3698 var dateChanged = false, 3699 dir, newViewDate, 3700 focusDate = this.focusDate || this.viewDate; 3701 switch (e.keyCode){ 3702 case 27: // escape 3703 if (this.focusDate){ 3704 this.focusDate = null; 3705 this.viewDate = this.dates.get(-1) || this.viewDate; 3706 this.fill(); 3707 } 3708 else 3709 this.hide(); 3710 e.preventDefault(); 3711 e.stopPropagation(); 3712 break; 3713 case 37: // left 3714 case 38: // up 3715 case 39: // right 3716 case 40: // down 3717 if (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7) 3718 break; 3719 dir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1; 3720 if (this.viewMode === 0) { 3721 if (e.ctrlKey){ 3722 newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear'); 3723 3724 if (newViewDate) 3725 this._trigger('changeYear', this.viewDate); 3726 } else if (e.shiftKey){ 3727 newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth'); 3728 3729 if (newViewDate) 3730 this._trigger('changeMonth', this.viewDate); 3731 } else if (e.keyCode === 37 || e.keyCode === 39){ 3732 newViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay'); 3733 } else if (!this.weekOfDateIsDisabled(focusDate)){ 3734 newViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek'); 3735 } 3736 } else if (this.viewMode === 1) { 3737 if (e.keyCode === 38 || e.keyCode === 40) { 3738 dir = dir * 4; 3739 } 3740 newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth'); 3741 } else if (this.viewMode === 2) { 3742 if (e.keyCode === 38 || e.keyCode === 40) { 3743 dir = dir * 4; 3744 } 3745 newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear'); 3746 } 3747 if (newViewDate){ 3748 this.focusDate = this.viewDate = newViewDate; 3749 this.setValue(); 3750 this.fill(); 3751 e.preventDefault(); 3752 } 3753 break; 3754 case 13: // enter 3755 if (!this.o.forceParse) 3756 break; 3757 focusDate = this.focusDate || this.dates.get(-1) || this.viewDate; 3758 if (this.o.keyboardNavigation) { 3759 this._toggle_multidate(focusDate); 3760 dateChanged = true; 3761 } 3762 this.focusDate = null; 3763 this.viewDate = this.dates.get(-1) || this.viewDate; 3764 this.setValue(); 3765 this.fill(); 3766 if (this.picker.is(':visible')){ 3767 e.preventDefault(); 3768 e.stopPropagation(); 3769 if (this.o.autoclose) 3770 this.hide(); 3771 } 3772 break; 3773 case 9: // tab 3774 this.focusDate = null; 3775 this.viewDate = this.dates.get(-1) || this.viewDate; 3776 this.fill(); 3777 this.hide(); 3778 break; 3779 } 3780 if (dateChanged){ 3781 if (this.dates.length) 3782 this._trigger('changeDate'); 3783 else 3784 this._trigger('clearDate'); 3785 this.inputField.trigger('change'); 3786 } 3787 }, 3788 3789 setViewMode: function(viewMode){ 3790 this.viewMode = viewMode; 3791 this.picker 3792 .children('div') 3793 .hide() 3794 .filter('.datepicker-' + DPGlobal.viewModes[this.viewMode].clsName) 3795 .show(); 3796 this.updateNavArrows(); 3797 this._trigger('changeViewMode', new Date(this.viewDate)); 3798 } 3799 }; 3800 3801 var DateRangePicker = function(element, options){ 3802 $.data(element, 'datepicker', this); 3803 this.element = $(element); 3804 this.inputs = $.map(options.inputs, function(i){ 3805 return i.jquery ? i[0] : i; 3806 }); 3807 delete options.inputs; 3808 3809 this.keepEmptyValues = options.keepEmptyValues; 3810 delete options.keepEmptyValues; 3811 3812 datepickerPlugin.call($(this.inputs), options) 3813 .on('changeDate', $.proxy(this.dateUpdated, this)); 3814 3815 this.pickers = $.map(this.inputs, function(i){ 3816 return $.data(i, 'datepicker'); 3817 }); 3818 this.updateDates(); 3819 }; 3820 DateRangePicker.prototype = { 3821 updateDates: function(){ 3822 this.dates = $.map(this.pickers, function(i){ 3823 return i.getUTCDate(); 3824 }); 3825 this.updateRanges(); 3826 }, 3827 updateRanges: function(){ 3828 var range = $.map(this.dates, function(d){ 3829 return d.valueOf(); 3830 }); 3831 $.each(this.pickers, function(i, p){ 3832 p.setRange(range); 3833 }); 3834 }, 3835 clearDates: function(){ 3836 $.each(this.pickers, function(i, p){ 3837 p.clearDates(); 3838 }); 3839 }, 3840 dateUpdated: function(e){ 3841 // `this.updating` is a workaround for preventing infinite recursion 3842 // between `changeDate` triggering and `setUTCDate` calling. Until 3843 // there is a better mechanism. 3844 if (this.updating) 3845 return; 3846 this.updating = true; 3847 3848 var dp = $.data(e.target, 'datepicker'); 3849 3850 if (dp === undefined) { 3851 return; 3852 } 3853 3854 var new_date = dp.getUTCDate(), 3855 keep_empty_values = this.keepEmptyValues, 3856 i = $.inArray(e.target, this.inputs), 3857 j = i - 1, 3858 k = i + 1, 3859 l = this.inputs.length; 3860 if (i === -1) 3861 return; 3862 3863 $.each(this.pickers, function(i, p){ 3864 if (!p.getUTCDate() && (p === dp || !keep_empty_values)) 3865 p.setUTCDate(new_date); 3866 }); 3867 3868 if (new_date < this.dates[j]){ 3869 // Date being moved earlier/left 3870 while (j >= 0 && new_date < this.dates[j] && (this.pickers[j].element.val() || "").length > 0) { 3871 this.pickers[j--].setUTCDate(new_date); 3872 } 3873 } else if (new_date > this.dates[k]){ 3874 // Date being moved later/right 3875 while (k < l && new_date > this.dates[k] && (this.pickers[k].element.val() || "").length > 0) { 3876 this.pickers[k++].setUTCDate(new_date); 3877 } 3878 } 3879 this.updateDates(); 3880 3881 delete this.updating; 3882 }, 3883 destroy: function(){ 3884 $.map(this.pickers, function(p){ p.destroy(); }); 3885 $(this.inputs).off('changeDate', this.dateUpdated); 3886 delete this.element.data().datepicker; 3887 }, 3888 remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead') 3889 }; 3890 3891 function opts_from_el(el, prefix){ 3892 // Derive options from element data-attrs 3893 var data = $(el).data(), 3894 out = {}, inkey, 3895 replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])'); 3896 prefix = new RegExp('^' + prefix.toLowerCase()); 3897 function re_lower(_,a){ 3898 return a.toLowerCase(); 3899 } 3900 for (var key in data) 3901 if (prefix.test(key)){ 3902 inkey = key.replace(replace, re_lower); 3903 out[inkey] = data[key]; 3904 } 3905 return out; 3906 } 3907 3908 function opts_from_locale(lang){ 3909 // Derive options from locale plugins 3910 var out = {}; 3911 // Check if "de-DE" style date is available, if not language should 3912 // fallback to 2 letter code eg "de" 3913 if (!dates[lang]){ 3914 lang = lang.split('-')[0]; 3915 if (!dates[lang]) 3916 return; 3917 } 3918 var d = dates[lang]; 3919 $.each(locale_opts, function(i,k){ 3920 if (k in d) 3921 out[k] = d[k]; 3922 }); 3923 return out; 3924 } 3925 3926 var old = $.fn.bootstrapdatepicker; 3927 var datepickerPlugin = function(option){ 3928 var args = Array.apply(null, arguments); 3929 args.shift(); 3930 var internal_return; 3931 this.each(function(){ 3932 var $this = $(this), 3933 data = $this.data('datepicker'), 3934 options = typeof option === 'object' && option; 3935 if (!data){ 3936 var elopts = opts_from_el(this, 'date'), 3937 // Preliminary otions 3938 xopts = $.extend({}, defaults, elopts, options), 3939 locopts = opts_from_locale(xopts.language), 3940 // Options priority: js args, data-attrs, locales, defaults 3941 opts = $.extend({}, defaults, locopts, elopts, options); 3942 if ($this.hasClass('input-daterange') || opts.inputs){ 3943 $.extend(opts, { 3944 inputs: opts.inputs || $this.find('input').toArray() 3945 }); 3946 data = new DateRangePicker(this, opts); 3947 } 3948 else { 3949 data = new Datepicker(this, opts); 3950 } 3951 $this.data('datepicker', data); 3952 } 3953 if (typeof option === 'string' && typeof data[option] === 'function'){ 3954 internal_return = data[option].apply(data, args); 3955 } 3956 }); 3957 3958 if ( 3959 internal_return === undefined || 3960 internal_return instanceof Datepicker || 3961 internal_return instanceof DateRangePicker 3962 ) 3963 return this; 3964 3965 if (this.length > 1) 3966 throw new Error('Using only allowed for the collection of a single element (' + option + ' function)'); 3967 else 3968 return internal_return; 3969 }; 3970 $.fn.bootstrapdatepicker = datepickerPlugin; 3971 3972 var defaults = $.fn.bootstrapdatepicker.defaults = { 3973 assumeNearbyYear: false, 3974 autoclose: false, 3975 beforeShowDay: $.noop, 3976 beforeShowMonth: $.noop, 3977 beforeShowYear: $.noop, 3978 beforeShowDecade: $.noop, 3979 beforeShowCentury: $.noop, 3980 calendarWeeks: false, 3981 clearBtn: false, 3982 toggleActive: false, 3983 daysOfWeekDisabled: [], 3984 daysOfWeekHighlighted: [], 3985 datesDisabled: [], 3986 endDate: Infinity, 3987 forceParse: true, 3988 format: 'mm/dd/yyyy', 3989 isInline: null, 3990 keepEmptyValues: false, 3991 keyboardNavigation: true, 3992 language: 'en', 3993 minViewMode: 0, 3994 maxViewMode: 4, 3995 multidate: false, 3996 multidateSeparator: ',', 3997 orientation: "auto", 3998 rtl: false, 3999 startDate: -Infinity, 4000 startView: 0, 4001 todayBtn: false, 4002 todayHighlight: false, 4003 updateViewDate: true, 4004 weekStart: 0, 4005 disableTouchKeyboard: false, 4006 enableOnReadonly: true, 4007 showOnFocus: true, 4008 zIndexOffset: 10, 4009 container: 'body', 4010 immediateUpdates: false, 4011 title: '', 4012 templates: { 4013 leftArrow: '«', 4014 rightArrow: '»' 4015 }, 4016 showWeekDays: true 4017 }; 4018 var locale_opts = $.fn.bootstrapdatepicker.locale_opts = [ 4019 'format', 4020 'rtl', 4021 'weekStart' 4022 ]; 4023 $.fn.bootstrapdatepicker.Constructor = Datepicker; 4024 var dates = $.fn.bootstrapdatepicker.dates = { 4025 en: { 4026 days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], 4027 daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 4028 daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], 4029 months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], 4030 monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], 4031 today: "Today", 4032 clear: "Clear", 4033 titleFormat: "MM yyyy" 4034 } 4035 }; 4036 4037 var DPGlobal = { 4038 viewModes: [ 4039 { 4040 names: ['days', 'month'], 4041 clsName: 'days', 4042 e: 'changeMonth' 4043 }, 4044 { 4045 names: ['months', 'year'], 4046 clsName: 'months', 4047 e: 'changeYear', 4048 navStep: 1 4049 }, 4050 { 4051 names: ['years', 'decade'], 4052 clsName: 'years', 4053 e: 'changeDecade', 4054 navStep: 10 4055 }, 4056 { 4057 names: ['decades', 'century'], 4058 clsName: 'decades', 4059 e: 'changeCentury', 4060 navStep: 100 4061 }, 4062 { 4063 names: ['centuries', 'millennium'], 4064 clsName: 'centuries', 4065 e: 'changeMillennium', 4066 navStep: 1000 4067 } 4068 ], 4069 validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g, 4070 nonpunctuation: /[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g, 4071 parseFormat: function(format){ 4072 if (typeof format.toValue === 'function' && typeof format.toDisplay === 'function') 4073 return format; 4074 // IE treats \0 as a string end in inputs (truncating the value), 4075 // so it's a bad format delimiter, anyway 4076 var separators = format.replace(this.validParts, '\0').split('\0'), 4077 parts = format.match(this.validParts); 4078 if (!separators || !separators.length || !parts || parts.length === 0){ 4079 throw new Error("Invalid date format."); 4080 } 4081 return {separators: separators, parts: parts}; 4082 }, 4083 parseDate: function(date, format, language, assumeNearby){ 4084 if (!date) 4085 return undefined; 4086 if (date instanceof Date) 4087 return date; 4088 if (typeof format === 'string') 4089 format = DPGlobal.parseFormat(format); 4090 if (format.toValue) 4091 return format.toValue(date, format, language); 4092 var fn_map = { 4093 d: 'moveDay', 4094 m: 'moveMonth', 4095 w: 'moveWeek', 4096 y: 'moveYear' 4097 }, 4098 dateAliases = { 4099 yesterday: '-1d', 4100 today: '+0d', 4101 tomorrow: '+1d' 4102 }, 4103 parts, part, dir, i, fn; 4104 if (date in dateAliases){ 4105 date = dateAliases[date]; 4106 } 4107 if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(date)){ 4108 parts = date.match(/([\-+]\d+)([dmwy])/gi); 4109 date = new Date(); 4110 for (i=0; i < parts.length; i++){ 4111 part = parts[i].match(/([\-+]\d+)([dmwy])/i); 4112 dir = Number(part[1]); 4113 fn = fn_map[part[2].toLowerCase()]; 4114 date = Datepicker.prototype[fn](date, dir); 4115 } 4116 return Datepicker.prototype._zero_utc_time(date); 4117 } 4118 4119 parts = date && date.match(this.nonpunctuation) || []; 4120 4121 function applyNearbyYear(year, threshold){ 4122 if (threshold === true) 4123 threshold = 10; 4124 4125 // if year is 2 digits or less, than the user most likely is trying to get a recent century 4126 if (year < 100){ 4127 year += 2000; 4128 // if the new year is more than threshold years in advance, use last century 4129 if (year > ((new Date()).getFullYear()+threshold)){ 4130 year -= 100; 4131 } 4132 } 4133 4134 return year; 4135 } 4136 4137 var parsed = {}, 4138 setters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'], 4139 setters_map = { 4140 yyyy: function(d,v){ 4141 return d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v); 4142 }, 4143 m: function(d,v){ 4144 if (isNaN(d)) 4145 return d; 4146 v -= 1; 4147 while (v < 0) v += 12; 4148 v %= 12; 4149 d.setUTCMonth(v); 4150 while (d.getUTCMonth() !== v) 4151 d.setUTCDate(d.getUTCDate()-1); 4152 return d; 4153 }, 4154 d: function(d,v){ 4155 return d.setUTCDate(v); 4156 } 4157 }, 4158 val, filtered; 4159 setters_map['yy'] = setters_map['yyyy']; 4160 setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m']; 4161 setters_map['dd'] = setters_map['d']; 4162 date = UTCToday(); 4163 var fparts = format.parts.slice(); 4164 // Remove noop parts 4165 if (parts.length !== fparts.length){ 4166 fparts = $(fparts).filter(function(i,p){ 4167 return $.inArray(p, setters_order) !== -1; 4168 }).toArray(); 4169 } 4170 // Process remainder 4171 function match_part(){ 4172 var m = this.slice(0, parts[i].length), 4173 p = parts[i].slice(0, m.length); 4174 return m.toLowerCase() === p.toLowerCase(); 4175 } 4176 if (parts.length === fparts.length){ 4177 var cnt; 4178 for (i=0, cnt = fparts.length; i < cnt; i++){ 4179 val = parseInt(parts[i], 10); 4180 part = fparts[i]; 4181 if (isNaN(val)){ 4182 switch (part){ 4183 case 'MM': 4184 filtered = $(dates[language].months).filter(match_part); 4185 val = $.inArray(filtered[0], dates[language].months) + 1; 4186 break; 4187 case 'M': 4188 filtered = $(dates[language].monthsShort).filter(match_part); 4189 val = $.inArray(filtered[0], dates[language].monthsShort) + 1; 4190 break; 4191 } 4192 } 4193 parsed[part] = val; 4194 } 4195 var _date, s; 4196 for (i=0; i < setters_order.length; i++){ 4197 s = setters_order[i]; 4198 if (s in parsed && !isNaN(parsed[s])){ 4199 _date = new Date(date); 4200 setters_map[s](_date, parsed[s]); 4201 if (!isNaN(_date)) 4202 date = _date; 4203 } 4204 } 4205 } 4206 return date; 4207 }, 4208 formatDate: function(date, format, language){ 4209 if (!date) 4210 return ''; 4211 if (typeof format === 'string') 4212 format = DPGlobal.parseFormat(format); 4213 if (format.toDisplay) 4214 return format.toDisplay(date, format, language); 4215 var val = { 4216 d: date.getUTCDate(), 4217 D: dates[language].daysShort[date.getUTCDay()], 4218 DD: dates[language].days[date.getUTCDay()], 4219 m: date.getUTCMonth() + 1, 4220 M: dates[language].monthsShort[date.getUTCMonth()], 4221 MM: dates[language].months[date.getUTCMonth()], 4222 yy: date.getUTCFullYear().toString().substring(2), 4223 yyyy: date.getUTCFullYear() 4224 }; 4225 val.dd = (val.d < 10 ? '0' : '') + val.d; 4226 val.mm = (val.m < 10 ? '0' : '') + val.m; 4227 date = []; 4228 var seps = $.extend([], format.separators); 4229 for (var i=0, cnt = format.parts.length; i <= cnt; i++){ 4230 if (seps.length) 4231 date.push(seps.shift()); 4232 date.push(val[format.parts[i]]); 4233 } 4234 return date.join(''); 4235 }, 4236 headTemplate: '<thead>'+ 4237 '<tr>'+ 4238 '<th colspan="7" class="datepicker-title"></th>'+ 4239 '</tr>'+ 4240 '<tr>'+ 4241 '<th class="prev">'+defaults.templates.leftArrow+'</th>'+ 4242 '<th colspan="5" class="datepicker-switch"></th>'+ 4243 '<th class="next">'+defaults.templates.rightArrow+'</th>'+ 4244 '</tr>'+ 4245 '</thead>', 4246 contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>', 4247 footTemplate: '<tfoot>'+ 4248 '<tr>'+ 4249 '<th colspan="7" class="today"></th>'+ 4250 '</tr>'+ 4251 '<tr>'+ 4252 '<th colspan="7" class="clear"></th>'+ 4253 '</tr>'+ 4254 '</tfoot>' 4255 }; 4256 DPGlobal.template = '<div class="datepicker">'+ 4257 '<div class="datepicker-days">'+ 4258 '<table class="table-condensed">'+ 4259 DPGlobal.headTemplate+ 4260 '<tbody></tbody>'+ 4261 DPGlobal.footTemplate+ 4262 '</table>'+ 4263 '</div>'+ 4264 '<div class="datepicker-months">'+ 4265 '<table class="table-condensed">'+ 4266 DPGlobal.headTemplate+ 4267 DPGlobal.contTemplate+ 4268 DPGlobal.footTemplate+ 4269 '</table>'+ 4270 '</div>'+ 4271 '<div class="datepicker-years">'+ 4272 '<table class="table-condensed">'+ 4273 DPGlobal.headTemplate+ 4274 DPGlobal.contTemplate+ 4275 DPGlobal.footTemplate+ 4276 '</table>'+ 4277 '</div>'+ 4278 '<div class="datepicker-decades">'+ 4279 '<table class="table-condensed">'+ 4280 DPGlobal.headTemplate+ 4281 DPGlobal.contTemplate+ 4282 DPGlobal.footTemplate+ 4283 '</table>'+ 4284 '</div>'+ 4285 '<div class="datepicker-centuries">'+ 4286 '<table class="table-condensed">'+ 4287 DPGlobal.headTemplate+ 4288 DPGlobal.contTemplate+ 4289 DPGlobal.footTemplate+ 4290 '</table>'+ 4291 '</div>'+ 4292 '</div>'; 4293 4294 $.fn.bootstrapdatepicker.DPGlobal = DPGlobal; 4295 4296 4297 /* DATEPICKER NO CONFLICT 4298 * =================== */ 4299 4300 $.fn.bootstrapdatepicker.noConflict = function(){ 4301 $.fn.bootstrapdatepicker = old; 4302 return this; 4303 }; 4304 4305 /* DATEPICKER VERSION 4306 * =================== */ 4307 $.fn.bootstrapdatepicker.version = '1.10.0'; 4308 4309 $.fn.bootstrapdatepicker.deprecated = function(msg){ 4310 var console = window.console; 4311 if (console && console.warn) { 4312 console.warn('DEPRECATED: ' + msg); 4313 } 4314 }; 4315 4316 4317 /* DATEPICKER DATA-API 4318 * ================== */ 4319 4320 $(document).on( 4321 'focus.datepicker.data-api click.datepicker.data-api', 4322 '[data-provide="datepicker"]', 4323 function(e){ 4324 var $this = $(this); 4325 if ($this.data('datepicker')) 4326 return; 4327 e.preventDefault(); 4328 // component click requires us to explicitly show it 4329 datepickerPlugin.call($this, 'show'); 4330 } 4331 ); 4332 $(function(){ 4333 datepickerPlugin.call($('[data-provide="datepicker-inline"]')); 4334 }); 4335 4336})); 4337 4338 4339/***/ }), 4340
vendor: 1,261 bytes, lines 4341-4369
4341/***/ "./node_modules/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js": 4342/*!*********************************************************************************!*\ 4343 !*** ./node_modules/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js ***! 4344 \*********************************************************************************/ 4345/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 4346 4347/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 4348/** 4349 * German translation for bootstrap-datepicker 4350 * Sam Zurcher <[email protected]> 4351 */ 4352;(function($){ 4353 $.fn.bootstrapdatepicker.dates['de'] = { 4354 days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"], 4355 daysShort: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"], 4356 daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"], 4357 months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], 4358 monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], 4359 today: "Heute", 4360 monthsTitle: "Monate", 4361 clear: "Löschen", 4362 weekStart: 1, 4363 format: "dd.mm.yyyy" 4364 }; 4365}(jQuery)); 4366 4367 4368/***/ }), 4369
vendor: 5,570 bytes, lines 4370-4562
4370/***/ "./node_modules/bootstrap/js/dist/alert.js": 4371/*!*************************************************!*\ 4372 !*** ./node_modules/bootstrap/js/dist/alert.js ***! 4373 \*************************************************/ 4374/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 4375 4376/*! 4377 * Bootstrap alert.js v4.6.1 (https://getbootstrap.com/) 4378 * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 4379 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 4380 */ 4381(function (global, factory) { 4382 true ? module.exports = factory(__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! ./util.js */ "./node_modules/bootstrap/js/dist/util.js")) : 4383 0; 4384})(this, (function ($, Util) { 'use strict'; 4385 4386 function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } 4387 4388 var $__default = /*#__PURE__*/_interopDefaultLegacy($); 4389 var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util); 4390 4391 function _defineProperties(target, props) { 4392 for (var i = 0; i < props.length; i++) { 4393 var descriptor = props[i]; 4394 descriptor.enumerable = descriptor.enumerable || false; 4395 descriptor.configurable = true; 4396 if ("value" in descriptor) descriptor.writable = true; 4397 Object.defineProperty(target, descriptor.key, descriptor); 4398 } 4399 } 4400 4401 function _createClass(Constructor, protoProps, staticProps) { 4402 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 4403 if (staticProps) _defineProperties(Constructor, staticProps); 4404 return Constructor; 4405 } 4406 4407 /** 4408 * Constants 4409 */ 4410 4411 var NAME = 'alert'; 4412 var VERSION = '4.6.1'; 4413 var DATA_KEY = 'bs.alert'; 4414 var EVENT_KEY = "." + DATA_KEY; 4415 var DATA_API_KEY = '.data-api'; 4416 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 4417 var CLASS_NAME_ALERT = 'alert'; 4418 var CLASS_NAME_FADE = 'fade'; 4419 var CLASS_NAME_SHOW = 'show'; 4420 var EVENT_CLOSE = "close" + EVENT_KEY; 4421 var EVENT_CLOSED = "closed" + EVENT_KEY; 4422 var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; 4423 var SELECTOR_DISMISS = '[data-dismiss="alert"]'; 4424 /** 4425 * Class definition 4426 */ 4427 4428 var Alert = /*#__PURE__*/function () { 4429 function Alert(element) { 4430 this._element = element; 4431 } // Getters 4432 4433 4434 var _proto = Alert.prototype; 4435 4436 // Public 4437 _proto.close = function close(element) { 4438 var rootElement = this._element; 4439 4440 if (element) { 4441 rootElement = this._getRootElement(element); 4442 } 4443 4444 var customEvent = this._triggerCloseEvent(rootElement); 4445 4446 if (customEvent.isDefaultPrevented()) { 4447 return; 4448 } 4449 4450 this._removeElement(rootElement); 4451 }; 4452 4453 _proto.dispose = function dispose() { 4454 $__default["default"].removeData(this._element, DATA_KEY); 4455 this._element = null; 4456 } // Private 4457 ; 4458 4459 _proto._getRootElement = function _getRootElement(element) { 4460 var selector = Util__default["default"].getSelectorFromElement(element); 4461 var parent = false; 4462 4463 if (selector) { 4464 parent = document.querySelector(selector); 4465 } 4466 4467 if (!parent) { 4468 parent = $__default["default"](element).closest("." + CLASS_NAME_ALERT)[0]; 4469 } 4470 4471 return parent; 4472 }; 4473 4474 _proto._triggerCloseEvent = function _triggerCloseEvent(element) { 4475 var closeEvent = $__default["default"].Event(EVENT_CLOSE); 4476 $__default["default"](element).trigger(closeEvent); 4477 return closeEvent; 4478 }; 4479 4480 _proto._removeElement = function _removeElement(element) { 4481 var _this = this; 4482 4483 $__default["default"](element).removeClass(CLASS_NAME_SHOW); 4484 4485 if (!$__default["default"](element).hasClass(CLASS_NAME_FADE)) { 4486 this._destroyElement(element); 4487 4488 return; 4489 } 4490 4491 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(element); 4492 $__default["default"](element).one(Util__default["default"].TRANSITION_END, function (event) { 4493 return _this._destroyElement(element, event); 4494 }).emulateTransitionEnd(transitionDuration); 4495 }; 4496 4497 _proto._destroyElement = function _destroyElement(element) { 4498 $__default["default"](element).detach().trigger(EVENT_CLOSED).remove(); 4499 } // Static 4500 ; 4501 4502 Alert._jQueryInterface = function _jQueryInterface(config) { 4503 return this.each(function () { 4504 var $element = $__default["default"](this); 4505 var data = $element.data(DATA_KEY); 4506 4507 if (!data) { 4508 data = new Alert(this); 4509 $element.data(DATA_KEY, data); 4510 } 4511 4512 if (config === 'close') { 4513 data[config](this); 4514 } 4515 }); 4516 }; 4517 4518 Alert._handleDismiss = function _handleDismiss(alertInstance) { 4519 return function (event) { 4520 if (event) { 4521 event.preventDefault(); 4522 } 4523 4524 alertInstance.close(this); 4525 }; 4526 }; 4527 4528 _createClass(Alert, null, [{ 4529 key: "VERSION", 4530 get: function get() { 4531 return VERSION; 4532 } 4533 }]); 4534 4535 return Alert; 4536 }(); 4537 /** 4538 * Data API implementation 4539 */ 4540 4541 4542 $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert())); 4543 /** 4544 * jQuery 4545 */ 4546 4547 $__default["default"].fn[NAME] = Alert._jQueryInterface; 4548 $__default["default"].fn[NAME].Constructor = Alert; 4549 4550 $__default["default"].fn[NAME].noConflict = function () { 4551 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 4552 return Alert._jQueryInterface; 4553 }; 4554 4555 return Alert; 4556 4557})); 4558//# sourceMappingURL=alert.js.map 4559 4560 4561/***/ }), 4562
vendor: 18,620 bytes, lines 4563-5129
4563/***/ "./node_modules/bootstrap/js/dist/dropdown.js": 4564/*!****************************************************!*\ 4565 !*** ./node_modules/bootstrap/js/dist/dropdown.js ***! 4566 \****************************************************/ 4567/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 4568 4569/*! 4570 * Bootstrap dropdown.js v4.6.1 (https://getbootstrap.com/) 4571 * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 4572 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 4573 */ 4574(function (global, factory) { 4575 true ? module.exports = factory(__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! popper.js */ "./node_modules/popper.js/dist/esm/popper.js"), __webpack_require__(/*! ./util.js */ "./node_modules/bootstrap/js/dist/util.js")) : 4576 0; 4577})(this, (function ($, Popper, Util) { 'use strict'; 4578 4579 function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } 4580 4581 var $__default = /*#__PURE__*/_interopDefaultLegacy($); 4582 var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper); 4583 var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util); 4584 4585 function _defineProperties(target, props) { 4586 for (var i = 0; i < props.length; i++) { 4587 var descriptor = props[i]; 4588 descriptor.enumerable = descriptor.enumerable || false; 4589 descriptor.configurable = true; 4590 if ("value" in descriptor) descriptor.writable = true; 4591 Object.defineProperty(target, descriptor.key, descriptor); 4592 } 4593 } 4594 4595 function _createClass(Constructor, protoProps, staticProps) { 4596 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 4597 if (staticProps) _defineProperties(Constructor, staticProps); 4598 return Constructor; 4599 } 4600 4601 function _extends() { 4602 _extends = Object.assign || function (target) { 4603 for (var i = 1; i < arguments.length; i++) { 4604 var source = arguments[i]; 4605 4606 for (var key in source) { 4607 if (Object.prototype.hasOwnProperty.call(source, key)) { 4608 target[key] = source[key]; 4609 } 4610 } 4611 } 4612 4613 return target; 4614 }; 4615 4616 return _extends.apply(this, arguments); 4617 } 4618 4619 /** 4620 * Constants 4621 */ 4622 4623 var NAME = 'dropdown'; 4624 var VERSION = '4.6.1'; 4625 var DATA_KEY = 'bs.dropdown'; 4626 var EVENT_KEY = "." + DATA_KEY; 4627 var DATA_API_KEY = '.data-api'; 4628 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 4629 var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key 4630 4631 var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key 4632 4633 var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key 4634 4635 var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key 4636 4637 var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key 4638 4639 var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse) 4640 4641 var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE); 4642 var CLASS_NAME_DISABLED = 'disabled'; 4643 var CLASS_NAME_SHOW = 'show'; 4644 var CLASS_NAME_DROPUP = 'dropup'; 4645 var CLASS_NAME_DROPRIGHT = 'dropright'; 4646 var CLASS_NAME_DROPLEFT = 'dropleft'; 4647 var CLASS_NAME_MENURIGHT = 'dropdown-menu-right'; 4648 var CLASS_NAME_POSITION_STATIC = 'position-static'; 4649 var EVENT_HIDE = "hide" + EVENT_KEY; 4650 var EVENT_HIDDEN = "hidden" + EVENT_KEY; 4651 var EVENT_SHOW = "show" + EVENT_KEY; 4652 var EVENT_SHOWN = "shown" + EVENT_KEY; 4653 var EVENT_CLICK = "click" + EVENT_KEY; 4654 var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; 4655 var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY + DATA_API_KEY; 4656 var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY + DATA_API_KEY; 4657 var SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]'; 4658 var SELECTOR_FORM_CHILD = '.dropdown form'; 4659 var SELECTOR_MENU = '.dropdown-menu'; 4660 var SELECTOR_NAVBAR_NAV = '.navbar-nav'; 4661 var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; 4662 var PLACEMENT_TOP = 'top-start'; 4663 var PLACEMENT_TOPEND = 'top-end'; 4664 var PLACEMENT_BOTTOM = 'bottom-start'; 4665 var PLACEMENT_BOTTOMEND = 'bottom-end'; 4666 var PLACEMENT_RIGHT = 'right-start'; 4667 var PLACEMENT_LEFT = 'left-start'; 4668 var Default = { 4669 offset: 0, 4670 flip: true, 4671 boundary: 'scrollParent', 4672 reference: 'toggle', 4673 display: 'dynamic', 4674 popperConfig: null 4675 }; 4676 var DefaultType = { 4677 offset: '(number|string|function)', 4678 flip: 'boolean', 4679 boundary: '(string|element)', 4680 reference: '(string|element)', 4681 display: 'string', 4682 popperConfig: '(null|object)' 4683 }; 4684 /** 4685 * Class definition 4686 */ 4687 4688 var Dropdown = /*#__PURE__*/function () { 4689 function Dropdown(element, config) { 4690 this._element = element; 4691 this._popper = null; 4692 this._config = this._getConfig(config); 4693 this._menu = this._getMenuElement(); 4694 this._inNavbar = this._detectNavbar(); 4695 4696 this._addEventListeners(); 4697 } // Getters 4698 4699 4700 var _proto = Dropdown.prototype; 4701 4702 // Public 4703 _proto.toggle = function toggle() { 4704 if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED)) { 4705 return; 4706 } 4707 4708 var isActive = $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW); 4709 4710 Dropdown._clearMenus(); 4711 4712 if (isActive) { 4713 return; 4714 } 4715 4716 this.show(true); 4717 }; 4718 4719 _proto.show = function show(usePopper) { 4720 if (usePopper === void 0) { 4721 usePopper = false; 4722 } 4723 4724 if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED) || $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW)) { 4725 return; 4726 } 4727 4728 var relatedTarget = { 4729 relatedTarget: this._element 4730 }; 4731 var showEvent = $__default["default"].Event(EVENT_SHOW, relatedTarget); 4732 4733 var parent = Dropdown._getParentFromElement(this._element); 4734 4735 $__default["default"](parent).trigger(showEvent); 4736 4737 if (showEvent.isDefaultPrevented()) { 4738 return; 4739 } // Totally disable Popper for Dropdowns in Navbar 4740 4741 4742 if (!this._inNavbar && usePopper) { 4743 // Check for Popper dependency 4744 if (typeof Popper__default["default"] === 'undefined') { 4745 throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); 4746 } 4747 4748 var referenceElement = this._element; 4749 4750 if (this._config.reference === 'parent') { 4751 referenceElement = parent; 4752 } else if (Util__default["default"].isElement(this._config.reference)) { 4753 referenceElement = this._config.reference; // Check if it's jQuery element 4754 4755 if (typeof this._config.reference.jquery !== 'undefined') { 4756 referenceElement = this._config.reference[0]; 4757 } 4758 } // If boundary is not `scrollParent`, then set position to `static` 4759 // to allow the menu to "escape" the scroll parent's boundaries 4760 // https://github.com/twbs/bootstrap/issues/24251 4761 4762 4763 if (this._config.boundary !== 'scrollParent') { 4764 $__default["default"](parent).addClass(CLASS_NAME_POSITION_STATIC); 4765 } 4766 4767 this._popper = new Popper__default["default"](referenceElement, this._menu, this._getPopperConfig()); 4768 } // If this is a touch-enabled device we add extra 4769 // empty mouseover listeners to the body's immediate children; 4770 // only needed because of broken event delegation on iOS 4771 // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html 4772 4773 4774 if ('ontouchstart' in document.documentElement && $__default["default"](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) { 4775 $__default["default"](document.body).children().on('mouseover', null, $__default["default"].noop); 4776 } 4777 4778 this._element.focus(); 4779 4780 this._element.setAttribute('aria-expanded', true); 4781 4782 $__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW); 4783 $__default["default"](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default["default"].Event(EVENT_SHOWN, relatedTarget)); 4784 }; 4785 4786 _proto.hide = function hide() { 4787 if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default["default"](this._menu).hasClass(CLASS_NAME_SHOW)) { 4788 return; 4789 } 4790 4791 var relatedTarget = { 4792 relatedTarget: this._element 4793 }; 4794 var hideEvent = $__default["default"].Event(EVENT_HIDE, relatedTarget); 4795 4796 var parent = Dropdown._getParentFromElement(this._element); 4797 4798 $__default["default"](parent).trigger(hideEvent); 4799 4800 if (hideEvent.isDefaultPrevented()) { 4801 return; 4802 } 4803 4804 if (this._popper) { 4805 this._popper.destroy(); 4806 } 4807 4808 $__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW); 4809 $__default["default"](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default["default"].Event(EVENT_HIDDEN, relatedTarget)); 4810 }; 4811 4812 _proto.dispose = function dispose() { 4813 $__default["default"].removeData(this._element, DATA_KEY); 4814 $__default["default"](this._element).off(EVENT_KEY); 4815 this._element = null; 4816 this._menu = null; 4817 4818 if (this._popper !== null) { 4819 this._popper.destroy(); 4820 4821 this._popper = null; 4822 } 4823 }; 4824 4825 _proto.update = function update() { 4826 this._inNavbar = this._detectNavbar(); 4827 4828 if (this._popper !== null) { 4829 this._popper.scheduleUpdate(); 4830 } 4831 } // Private 4832 ; 4833 4834 _proto._addEventListeners = function _addEventListeners() { 4835 var _this = this; 4836 4837 $__default["default"](this._element).on(EVENT_CLICK, function (event) { 4838 event.preventDefault(); 4839 event.stopPropagation(); 4840 4841 _this.toggle(); 4842 }); 4843 }; 4844 4845 _proto._getConfig = function _getConfig(config) { 4846 config = _extends({}, this.constructor.Default, $__default["default"](this._element).data(), config); 4847 Util__default["default"].typeCheckConfig(NAME, config, this.constructor.DefaultType); 4848 return config; 4849 }; 4850 4851 _proto._getMenuElement = function _getMenuElement() { 4852 if (!this._menu) { 4853 var parent = Dropdown._getParentFromElement(this._element); 4854 4855 if (parent) { 4856 this._menu = parent.querySelector(SELECTOR_MENU); 4857 } 4858 } 4859 4860 return this._menu; 4861 }; 4862 4863 _proto._getPlacement = function _getPlacement() { 4864 var $parentDropdown = $__default["default"](this._element.parentNode); 4865 var placement = PLACEMENT_BOTTOM; // Handle dropup 4866 4867 if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) { 4868 placement = $__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP; 4869 } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) { 4870 placement = PLACEMENT_RIGHT; 4871 } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) { 4872 placement = PLACEMENT_LEFT; 4873 } else if ($__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT)) { 4874 placement = PLACEMENT_BOTTOMEND; 4875 } 4876 4877 return placement; 4878 }; 4879 4880 _proto._detectNavbar = function _detectNavbar() { 4881 return $__default["default"](this._element).closest('.navbar').length > 0; 4882 }; 4883 4884 _proto._getOffset = function _getOffset() { 4885 var _this2 = this; 4886 4887 var offset = {}; 4888 4889 if (typeof this._config.offset === 'function') { 4890 offset.fn = function (data) { 4891 data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element)); 4892 return data; 4893 }; 4894 } else { 4895 offset.offset = this._config.offset; 4896 } 4897 4898 return offset; 4899 }; 4900 4901 _proto._getPopperConfig = function _getPopperConfig() { 4902 var popperConfig = { 4903 placement: this._getPlacement(), 4904 modifiers: { 4905 offset: this._getOffset(), 4906 flip: { 4907 enabled: this._config.flip 4908 }, 4909 preventOverflow: { 4910 boundariesElement: this._config.boundary 4911 } 4912 } 4913 }; // Disable Popper if we have a static display 4914 4915 if (this._config.display === 'static') { 4916 popperConfig.modifiers.applyStyle = { 4917 enabled: false 4918 }; 4919 } 4920 4921 return _extends({}, popperConfig, this._config.popperConfig); 4922 } // Static 4923 ; 4924 4925 Dropdown._jQueryInterface = function _jQueryInterface(config) { 4926 return this.each(function () { 4927 var data = $__default["default"](this).data(DATA_KEY); 4928 4929 var _config = typeof config === 'object' ? config : null; 4930 4931 if (!data) { 4932 data = new Dropdown(this, _config); 4933 $__default["default"](this).data(DATA_KEY, data); 4934 } 4935 4936 if (typeof config === 'string') { 4937 if (typeof data[config] === 'undefined') { 4938 throw new TypeError("No method named \"" + config + "\""); 4939 } 4940 4941 data[config](); 4942 } 4943 }); 4944 }; 4945 4946 Dropdown._clearMenus = function _clearMenus(event) { 4947 if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) { 4948 return; 4949 } 4950 4951 var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE)); 4952 4953 for (var i = 0, len = toggles.length; i < len; i++) { 4954 var parent = Dropdown._getParentFromElement(toggles[i]); 4955 4956 var context = $__default["default"](toggles[i]).data(DATA_KEY); 4957 var relatedTarget = { 4958 relatedTarget: toggles[i] 4959 }; 4960 4961 if (event && event.type === 'click') { 4962 relatedTarget.clickEvent = event; 4963 } 4964 4965 if (!context) { 4966 continue; 4967 } 4968 4969 var dropdownMenu = context._menu; 4970 4971 if (!$__default["default"](parent).hasClass(CLASS_NAME_SHOW)) { 4972 continue; 4973 } 4974 4975 if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default["default"].contains(parent, event.target)) { 4976 continue; 4977 } 4978 4979 var hideEvent = $__default["default"].Event(EVENT_HIDE, relatedTarget); 4980 $__default["default"](parent).trigger(hideEvent); 4981 4982 if (hideEvent.isDefaultPrevented()) { 4983 continue; 4984 } // If this is a touch-enabled device we remove the extra 4985 // empty mouseover listeners we added for iOS support 4986 4987 4988 if ('ontouchstart' in document.documentElement) { 4989 $__default["default"](document.body).children().off('mouseover', null, $__default["default"].noop); 4990 } 4991 4992 toggles[i].setAttribute('aria-expanded', 'false'); 4993 4994 if (context._popper) { 4995 context._popper.destroy(); 4996 } 4997 4998 $__default["default"](dropdownMenu).removeClass(CLASS_NAME_SHOW); 4999 $__default["default"](parent).removeClass(CLASS_NAME_SHOW).trigger($__default["default"].Event(EVENT_HIDDEN, relatedTarget)); 5000 } 5001 }; 5002 5003 Dropdown._getParentFromElement = function _getParentFromElement(element) { 5004 var parent; 5005 var selector = Util__default["default"].getSelectorFromElement(element); 5006 5007 if (selector) { 5008 parent = document.querySelector(selector); 5009 } 5010 5011 return parent || element.parentNode; 5012 } // eslint-disable-next-line complexity 5013 ; 5014 5015 Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) { 5016 // If not input/textarea: 5017 // - And not a key in REGEXP_KEYDOWN => not a dropdown command 5018 // If input/textarea: 5019 // - If space key => not a dropdown command 5020 // - If key is other than escape 5021 // - If key is not up or down => not a dropdown command 5022 // - If trigger inside the menu => not a dropdown command 5023 if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default["default"](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) { 5024 return; 5025 } 5026 5027 if (this.disabled || $__default["default"](this).hasClass(CLASS_NAME_DISABLED)) { 5028 return; 5029 } 5030 5031 var parent = Dropdown._getParentFromElement(this); 5032 5033 var isActive = $__default["default"](parent).hasClass(CLASS_NAME_SHOW); 5034 5035 if (!isActive && event.which === ESCAPE_KEYCODE) { 5036 return; 5037 } 5038 5039 event.preventDefault(); 5040 event.stopPropagation(); 5041 5042 if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) { 5043 if (event.which === ESCAPE_KEYCODE) { 5044 $__default["default"](parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus'); 5045 } 5046 5047 $__default["default"](this).trigger('click'); 5048 return; 5049 } 5050 5051 var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) { 5052 return $__default["default"](item).is(':visible'); 5053 }); 5054 5055 if (items.length === 0) { 5056 return; 5057 } 5058 5059 var index = items.indexOf(event.target); 5060 5061 if (event.which === ARROW_UP_KEYCODE && index > 0) { 5062 // Up 5063 index--; 5064 } 5065 5066 if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { 5067 // Down 5068 index++; 5069 } 5070 5071 if (index < 0) { 5072 index = 0; 5073 } 5074 5075 items[index].focus(); 5076 }; 5077 5078 _createClass(Dropdown, null, [{ 5079 key: "VERSION", 5080 get: function get() { 5081 return VERSION; 5082 } 5083 }, { 5084 key: "Default", 5085 get: function get() { 5086 return Default; 5087 } 5088 }, { 5089 key: "DefaultType", 5090 get: function get() { 5091 return DefaultType; 5092 } 5093 }]); 5094 5095 return Dropdown; 5096 }(); 5097 /** 5098 * Data API implementation 5099 */ 5100 5101 5102 $__default["default"](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { 5103 event.preventDefault(); 5104 event.stopPropagation(); 5105 5106 Dropdown._jQueryInterface.call($__default["default"](this), 'toggle'); 5107 }).on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) { 5108 e.stopPropagation(); 5109 }); 5110 /** 5111 * jQuery 5112 */ 5113 5114 $__default["default"].fn[NAME] = Dropdown._jQueryInterface; 5115 $__default["default"].fn[NAME].Constructor = Dropdown; 5116 5117 $__default["default"].fn[NAME].noConflict = function () { 5118 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 5119 return Dropdown._jQueryInterface; 5120 }; 5121 5122 return Dropdown; 5123 5124})); 5125//# sourceMappingURL=dropdown.js.map 5126 5127 5128/***/ }), 5129
vendor: 7,273 bytes, lines 5130-5382
5130/***/ "./node_modules/bootstrap/js/dist/popover.js": 5131/*!***************************************************!*\ 5132 !*** ./node_modules/bootstrap/js/dist/popover.js ***! 5133 \***************************************************/ 5134/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 5135 5136/*! 5137 * Bootstrap popover.js v4.6.1 (https://getbootstrap.com/) 5138 * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 5139 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5140 */ 5141(function (global, factory) { 5142 true ? module.exports = factory(__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! ./tooltip.js */ "./node_modules/bootstrap/js/dist/tooltip.js")) : 5143 0; 5144})(this, (function ($, Tooltip) { 'use strict'; 5145 5146 function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } 5147 5148 var $__default = /*#__PURE__*/_interopDefaultLegacy($); 5149 var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip); 5150 5151 function _defineProperties(target, props) { 5152 for (var i = 0; i < props.length; i++) { 5153 var descriptor = props[i]; 5154 descriptor.enumerable = descriptor.enumerable || false; 5155 descriptor.configurable = true; 5156 if ("value" in descriptor) descriptor.writable = true; 5157 Object.defineProperty(target, descriptor.key, descriptor); 5158 } 5159 } 5160 5161 function _createClass(Constructor, protoProps, staticProps) { 5162 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 5163 if (staticProps) _defineProperties(Constructor, staticProps); 5164 return Constructor; 5165 } 5166 5167 function _extends() { 5168 _extends = Object.assign || function (target) { 5169 for (var i = 1; i < arguments.length; i++) { 5170 var source = arguments[i]; 5171 5172 for (var key in source) { 5173 if (Object.prototype.hasOwnProperty.call(source, key)) { 5174 target[key] = source[key]; 5175 } 5176 } 5177 } 5178 5179 return target; 5180 }; 5181 5182 return _extends.apply(this, arguments); 5183 } 5184 5185 function _inheritsLoose(subClass, superClass) { 5186 subClass.prototype = Object.create(superClass.prototype); 5187 subClass.prototype.constructor = subClass; 5188 5189 _setPrototypeOf(subClass, superClass); 5190 } 5191 5192 function _setPrototypeOf(o, p) { 5193 _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { 5194 o.__proto__ = p; 5195 return o; 5196 }; 5197 5198 return _setPrototypeOf(o, p); 5199 } 5200 5201 /** 5202 * Constants 5203 */ 5204 5205 var NAME = 'popover'; 5206 var VERSION = '4.6.1'; 5207 var DATA_KEY = 'bs.popover'; 5208 var EVENT_KEY = "." + DATA_KEY; 5209 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 5210 var CLASS_PREFIX = 'bs-popover'; 5211 var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); 5212 var CLASS_NAME_FADE = 'fade'; 5213 var CLASS_NAME_SHOW = 'show'; 5214 var SELECTOR_TITLE = '.popover-header'; 5215 var SELECTOR_CONTENT = '.popover-body'; 5216 5217 var Default = _extends({}, Tooltip__default["default"].Default, { 5218 placement: 'right', 5219 trigger: 'click', 5220 content: '', 5221 template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>' 5222 }); 5223 5224 var DefaultType = _extends({}, Tooltip__default["default"].DefaultType, { 5225 content: '(string|element|function)' 5226 }); 5227 5228 var Event = { 5229 HIDE: "hide" + EVENT_KEY, 5230 HIDDEN: "hidden" + EVENT_KEY, 5231 SHOW: "show" + EVENT_KEY, 5232 SHOWN: "shown" + EVENT_KEY, 5233 INSERTED: "inserted" + EVENT_KEY, 5234 CLICK: "click" + EVENT_KEY, 5235 FOCUSIN: "focusin" + EVENT_KEY, 5236 FOCUSOUT: "focusout" + EVENT_KEY, 5237 MOUSEENTER: "mouseenter" + EVENT_KEY, 5238 MOUSELEAVE: "mouseleave" + EVENT_KEY 5239 }; 5240 /** 5241 * Class definition 5242 */ 5243 5244 var Popover = /*#__PURE__*/function (_Tooltip) { 5245 _inheritsLoose(Popover, _Tooltip); 5246 5247 function Popover() { 5248 return _Tooltip.apply(this, arguments) || this; 5249 } 5250 5251 var _proto = Popover.prototype; 5252 5253 // Overrides 5254 _proto.isWithContent = function isWithContent() { 5255 return this.getTitle() || this._getContent(); 5256 }; 5257 5258 _proto.addAttachmentClass = function addAttachmentClass(attachment) { 5259 $__default["default"](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); 5260 }; 5261 5262 _proto.getTipElement = function getTipElement() { 5263 this.tip = this.tip || $__default["default"](this.config.template)[0]; 5264 return this.tip; 5265 }; 5266 5267 _proto.setContent = function setContent() { 5268 var $tip = $__default["default"](this.getTipElement()); // We use append for html objects to maintain js events 5269 5270 this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle()); 5271 5272 var content = this._getContent(); 5273 5274 if (typeof content === 'function') { 5275 content = content.call(this.element); 5276 } 5277 5278 this.setElementContent($tip.find(SELECTOR_CONTENT), content); 5279 $tip.removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW); 5280 } // Private 5281 ; 5282 5283 _proto._getContent = function _getContent() { 5284 return this.element.getAttribute('data-content') || this.config.content; 5285 }; 5286 5287 _proto._cleanTipClass = function _cleanTipClass() { 5288 var $tip = $__default["default"](this.getTipElement()); 5289 var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); 5290 5291 if (tabClass !== null && tabClass.length > 0) { 5292 $tip.removeClass(tabClass.join('')); 5293 } 5294 } // Static 5295 ; 5296 5297 Popover._jQueryInterface = function _jQueryInterface(config) { 5298 return this.each(function () { 5299 var data = $__default["default"](this).data(DATA_KEY); 5300 5301 var _config = typeof config === 'object' ? config : null; 5302 5303 if (!data && /dispose|hide/.test(config)) { 5304 return; 5305 } 5306 5307 if (!data) { 5308 data = new Popover(this, _config); 5309 $__default["default"](this).data(DATA_KEY, data); 5310 } 5311 5312 if (typeof config === 'string') { 5313 if (typeof data[config] === 'undefined') { 5314 throw new TypeError("No method named \"" + config + "\""); 5315 } 5316 5317 data[config](); 5318 } 5319 }); 5320 }; 5321 5322 _createClass(Popover, null, [{ 5323 key: "VERSION", 5324 get: // Getters 5325 function get() { 5326 return VERSION; 5327 } 5328 }, { 5329 key: "Default", 5330 get: function get() { 5331 return Default; 5332 } 5333 }, { 5334 key: "NAME", 5335 get: function get() { 5336 return NAME; 5337 } 5338 }, { 5339 key: "DATA_KEY", 5340 get: function get() { 5341 return DATA_KEY; 5342 } 5343 }, { 5344 key: "Event", 5345 get: function get() { 5346 return Event; 5347 } 5348 }, { 5349 key: "EVENT_KEY", 5350 get: function get() { 5351 return EVENT_KEY; 5352 } 5353 }, { 5354 key: "DefaultType", 5355 get: function get() { 5356 return DefaultType; 5357 } 5358 }]); 5359 5360 return Popover; 5361 }(Tooltip__default["default"]); 5362 /** 5363 * jQuery 5364 */ 5365 5366 5367 $__default["default"].fn[NAME] = Popover._jQueryInterface; 5368 $__default["default"].fn[NAME].Constructor = Popover; 5369 5370 $__default["default"].fn[NAME].noConflict = function () { 5371 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 5372 return Popover._jQueryInterface; 5373 }; 5374 5375 return Popover; 5376 5377})); 5378//# sourceMappingURL=popover.js.map 5379 5380 5381/***/ }), 5382
vendor: 27,608 bytes, lines 5383-6278
5383/***/ "./node_modules/bootstrap/js/dist/tooltip.js": 5384/*!***************************************************!*\ 5385 !*** ./node_modules/bootstrap/js/dist/tooltip.js ***! 5386 \***************************************************/ 5387/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 5388 5389/*! 5390 * Bootstrap tooltip.js v4.6.1 (https://getbootstrap.com/) 5391 * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 5392 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5393 */ 5394(function (global, factory) { 5395 true ? module.exports = factory(__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! popper.js */ "./node_modules/popper.js/dist/esm/popper.js"), __webpack_require__(/*! ./util.js */ "./node_modules/bootstrap/js/dist/util.js")) : 5396 0; 5397})(this, (function ($, Popper, Util) { 'use strict'; 5398 5399 function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } 5400 5401 var $__default = /*#__PURE__*/_interopDefaultLegacy($); 5402 var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper); 5403 var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util); 5404 5405 function _defineProperties(target, props) { 5406 for (var i = 0; i < props.length; i++) { 5407 var descriptor = props[i]; 5408 descriptor.enumerable = descriptor.enumerable || false; 5409 descriptor.configurable = true; 5410 if ("value" in descriptor) descriptor.writable = true; 5411 Object.defineProperty(target, descriptor.key, descriptor); 5412 } 5413 } 5414 5415 function _createClass(Constructor, protoProps, staticProps) { 5416 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 5417 if (staticProps) _defineProperties(Constructor, staticProps); 5418 return Constructor; 5419 } 5420 5421 function _extends() { 5422 _extends = Object.assign || function (target) { 5423 for (var i = 1; i < arguments.length; i++) { 5424 var source = arguments[i]; 5425 5426 for (var key in source) { 5427 if (Object.prototype.hasOwnProperty.call(source, key)) { 5428 target[key] = source[key]; 5429 } 5430 } 5431 } 5432 5433 return target; 5434 }; 5435 5436 return _extends.apply(this, arguments); 5437 } 5438 5439 /** 5440 * -------------------------------------------------------------------------- 5441 * Bootstrap (v4.6.1): tools/sanitizer.js 5442 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5443 * -------------------------------------------------------------------------- 5444 */ 5445 var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']; 5446 var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; 5447 var DefaultWhitelist = { 5448 // Global attributes allowed on any supplied element below. 5449 '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], 5450 a: ['target', 'href', 'title', 'rel'], 5451 area: [], 5452 b: [], 5453 br: [], 5454 col: [], 5455 code: [], 5456 div: [], 5457 em: [], 5458 hr: [], 5459 h1: [], 5460 h2: [], 5461 h3: [], 5462 h4: [], 5463 h5: [], 5464 h6: [], 5465 i: [], 5466 img: ['src', 'srcset', 'alt', 'title', 'width', 'height'], 5467 li: [], 5468 ol: [], 5469 p: [], 5470 pre: [], 5471 s: [], 5472 small: [], 5473 span: [], 5474 sub: [], 5475 sup: [], 5476 strong: [], 5477 u: [], 5478 ul: [] 5479 }; 5480 /** 5481 * A pattern that recognizes a commonly useful subset of URLs that are safe. 5482 * 5483 * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts 5484 */ 5485 5486 var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i; 5487 /** 5488 * A pattern that matches safe data URLs. Only matches image, video and audio types. 5489 * 5490 * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts 5491 */ 5492 5493 var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; 5494 5495 function allowedAttribute(attr, allowedAttributeList) { 5496 var attrName = attr.nodeName.toLowerCase(); 5497 5498 if (allowedAttributeList.indexOf(attrName) !== -1) { 5499 if (uriAttrs.indexOf(attrName) !== -1) { 5500 return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)); 5501 } 5502 5503 return true; 5504 } 5505 5506 var regExp = allowedAttributeList.filter(function (attrRegex) { 5507 return attrRegex instanceof RegExp; 5508 }); // Check if a regular expression validates the attribute. 5509 5510 for (var i = 0, len = regExp.length; i < len; i++) { 5511 if (regExp[i].test(attrName)) { 5512 return true; 5513 } 5514 } 5515 5516 return false; 5517 } 5518 5519 function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) { 5520 if (unsafeHtml.length === 0) { 5521 return unsafeHtml; 5522 } 5523 5524 if (sanitizeFn && typeof sanitizeFn === 'function') { 5525 return sanitizeFn(unsafeHtml); 5526 } 5527 5528 var domParser = new window.DOMParser(); 5529 var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); 5530 var whitelistKeys = Object.keys(whiteList); 5531 var elements = [].slice.call(createdDocument.body.querySelectorAll('*')); 5532 5533 var _loop = function _loop(i, len) { 5534 var el = elements[i]; 5535 var elName = el.nodeName.toLowerCase(); 5536 5537 if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) { 5538 el.parentNode.removeChild(el); 5539 return "continue"; 5540 } 5541 5542 var attributeList = [].slice.call(el.attributes); // eslint-disable-next-line unicorn/prefer-spread 5543 5544 var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []); 5545 attributeList.forEach(function (attr) { 5546 if (!allowedAttribute(attr, whitelistedAttributes)) { 5547 el.removeAttribute(attr.nodeName); 5548 } 5549 }); 5550 }; 5551 5552 for (var i = 0, len = elements.length; i < len; i++) { 5553 var _ret = _loop(i); 5554 5555 if (_ret === "continue") continue; 5556 } 5557 5558 return createdDocument.body.innerHTML; 5559 } 5560 5561 /** 5562 * Constants 5563 */ 5564 5565 var NAME = 'tooltip'; 5566 var VERSION = '4.6.1'; 5567 var DATA_KEY = 'bs.tooltip'; 5568 var EVENT_KEY = "." + DATA_KEY; 5569 var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; 5570 var CLASS_PREFIX = 'bs-tooltip'; 5571 var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); 5572 var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']; 5573 var CLASS_NAME_FADE = 'fade'; 5574 var CLASS_NAME_SHOW = 'show'; 5575 var HOVER_STATE_SHOW = 'show'; 5576 var HOVER_STATE_OUT = 'out'; 5577 var SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; 5578 var SELECTOR_ARROW = '.arrow'; 5579 var TRIGGER_HOVER = 'hover'; 5580 var TRIGGER_FOCUS = 'focus'; 5581 var TRIGGER_CLICK = 'click'; 5582 var TRIGGER_MANUAL = 'manual'; 5583 var AttachmentMap = { 5584 AUTO: 'auto', 5585 TOP: 'top', 5586 RIGHT: 'right', 5587 BOTTOM: 'bottom', 5588 LEFT: 'left' 5589 }; 5590 var Default = { 5591 animation: true, 5592 template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>', 5593 trigger: 'hover focus', 5594 title: '', 5595 delay: 0, 5596 html: false, 5597 selector: false, 5598 placement: 'top', 5599 offset: 0, 5600 container: false, 5601 fallbackPlacement: 'flip', 5602 boundary: 'scrollParent', 5603 customClass: '', 5604 sanitize: true, 5605 sanitizeFn: null, 5606 whiteList: DefaultWhitelist, 5607 popperConfig: null 5608 }; 5609 var DefaultType = { 5610 animation: 'boolean', 5611 template: 'string', 5612 title: '(string|element|function)', 5613 trigger: 'string', 5614 delay: '(number|object)', 5615 html: 'boolean', 5616 selector: '(string|boolean)', 5617 placement: '(string|function)', 5618 offset: '(number|string|function)', 5619 container: '(string|element|boolean)', 5620 fallbackPlacement: '(string|array)', 5621 boundary: '(string|element)', 5622 customClass: '(string|function)', 5623 sanitize: 'boolean', 5624 sanitizeFn: '(null|function)', 5625 whiteList: 'object', 5626 popperConfig: '(null|object)' 5627 }; 5628 var Event = { 5629 HIDE: "hide" + EVENT_KEY, 5630 HIDDEN: "hidden" + EVENT_KEY, 5631 SHOW: "show" + EVENT_KEY, 5632 SHOWN: "shown" + EVENT_KEY, 5633 INSERTED: "inserted" + EVENT_KEY, 5634 CLICK: "click" + EVENT_KEY, 5635 FOCUSIN: "focusin" + EVENT_KEY, 5636 FOCUSOUT: "focusout" + EVENT_KEY, 5637 MOUSEENTER: "mouseenter" + EVENT_KEY, 5638 MOUSELEAVE: "mouseleave" + EVENT_KEY 5639 }; 5640 /** 5641 * Class definition 5642 */ 5643 5644 var Tooltip = /*#__PURE__*/function () { 5645 function Tooltip(element, config) { 5646 if (typeof Popper__default["default"] === 'undefined') { 5647 throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)'); 5648 } // Private 5649 5650 5651 this._isEnabled = true; 5652 this._timeout = 0; 5653 this._hoverState = ''; 5654 this._activeTrigger = {}; 5655 this._popper = null; // Protected 5656 5657 this.element = element; 5658 this.config = this._getConfig(config); 5659 this.tip = null; 5660 5661 this._setListeners(); 5662 } // Getters 5663 5664 5665 var _proto = Tooltip.prototype; 5666 5667 // Public 5668 _proto.enable = function enable() { 5669 this._isEnabled = true; 5670 }; 5671 5672 _proto.disable = function disable() { 5673 this._isEnabled = false; 5674 }; 5675 5676 _proto.toggleEnabled = function toggleEnabled() { 5677 this._isEnabled = !this._isEnabled; 5678 }; 5679 5680 _proto.toggle = function toggle(event) { 5681 if (!this._isEnabled) { 5682 return; 5683 } 5684 5685 if (event) { 5686 var dataKey = this.constructor.DATA_KEY; 5687 var context = $__default["default"](event.currentTarget).data(dataKey); 5688 5689 if (!context) { 5690 context = new this.constructor(event.currentTarget, this._getDelegateConfig()); 5691 $__default["default"](event.currentTarget).data(dataKey, context); 5692 } 5693 5694 context._activeTrigger.click = !context._activeTrigger.click; 5695 5696 if (context._isWithActiveTrigger()) { 5697 context._enter(null, context); 5698 } else { 5699 context._leave(null, context); 5700 } 5701 } else { 5702 if ($__default["default"](this.getTipElement()).hasClass(CLASS_NAME_SHOW)) { 5703 this._leave(null, this); 5704 5705 return; 5706 } 5707 5708 this._enter(null, this); 5709 } 5710 }; 5711 5712 _proto.dispose = function dispose() { 5713 clearTimeout(this._timeout); 5714 $__default["default"].removeData(this.element, this.constructor.DATA_KEY); 5715 $__default["default"](this.element).off(this.constructor.EVENT_KEY); 5716 $__default["default"](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler); 5717 5718 if (this.tip) { 5719 $__default["default"](this.tip).remove(); 5720 } 5721 5722 this._isEnabled = null; 5723 this._timeout = null; 5724 this._hoverState = null; 5725 this._activeTrigger = null; 5726 5727 if (this._popper) { 5728 this._popper.destroy(); 5729 } 5730 5731 this._popper = null; 5732 this.element = null; 5733 this.config = null; 5734 this.tip = null; 5735 }; 5736 5737 _proto.show = function show() { 5738 var _this = this; 5739 5740 if ($__default["default"](this.element).css('display') === 'none') { 5741 throw new Error('Please use show on visible elements'); 5742 } 5743 5744 var showEvent = $__default["default"].Event(this.constructor.Event.SHOW); 5745 5746 if (this.isWithContent() && this._isEnabled) { 5747 $__default["default"](this.element).trigger(showEvent); 5748 var shadowRoot = Util__default["default"].findShadowRoot(this.element); 5749 var isInTheDom = $__default["default"].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element); 5750 5751 if (showEvent.isDefaultPrevented() || !isInTheDom) { 5752 return; 5753 } 5754 5755 var tip = this.getTipElement(); 5756 var tipId = Util__default["default"].getUID(this.constructor.NAME); 5757 tip.setAttribute('id', tipId); 5758 this.element.setAttribute('aria-describedby', tipId); 5759 this.setContent(); 5760 5761 if (this.config.animation) { 5762 $__default["default"](tip).addClass(CLASS_NAME_FADE); 5763 } 5764 5765 var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; 5766 5767 var attachment = this._getAttachment(placement); 5768 5769 this.addAttachmentClass(attachment); 5770 5771 var container = this._getContainer(); 5772 5773 $__default["default"](tip).data(this.constructor.DATA_KEY, this); 5774 5775 if (!$__default["default"].contains(this.element.ownerDocument.documentElement, this.tip)) { 5776 $__default["default"](tip).appendTo(container); 5777 } 5778 5779 $__default["default"](this.element).trigger(this.constructor.Event.INSERTED); 5780 this._popper = new Popper__default["default"](this.element, tip, this._getPopperConfig(attachment)); 5781 $__default["default"](tip).addClass(CLASS_NAME_SHOW); 5782 $__default["default"](tip).addClass(this.config.customClass); // If this is a touch-enabled device we add extra 5783 // empty mouseover listeners to the body's immediate children; 5784 // only needed because of broken event delegation on iOS 5785 // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html 5786 5787 if ('ontouchstart' in document.documentElement) { 5788 $__default["default"](document.body).children().on('mouseover', null, $__default["default"].noop); 5789 } 5790 5791 var complete = function complete() { 5792 if (_this.config.animation) { 5793 _this._fixTransition(); 5794 } 5795 5796 var prevHoverState = _this._hoverState; 5797 _this._hoverState = null; 5798 $__default["default"](_this.element).trigger(_this.constructor.Event.SHOWN); 5799 5800 if (prevHoverState === HOVER_STATE_OUT) { 5801 _this._leave(null, _this); 5802 } 5803 }; 5804 5805 if ($__default["default"](this.tip).hasClass(CLASS_NAME_FADE)) { 5806 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(this.tip); 5807 $__default["default"](this.tip).one(Util__default["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 5808 } else { 5809 complete(); 5810 } 5811 } 5812 }; 5813 5814 _proto.hide = function hide(callback) { 5815 var _this2 = this; 5816 5817 var tip = this.getTipElement(); 5818 var hideEvent = $__default["default"].Event(this.constructor.Event.HIDE); 5819 5820 var complete = function complete() { 5821 if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { 5822 tip.parentNode.removeChild(tip); 5823 } 5824 5825 _this2._cleanTipClass(); 5826 5827 _this2.element.removeAttribute('aria-describedby'); 5828 5829 $__default["default"](_this2.element).trigger(_this2.constructor.Event.HIDDEN); 5830 5831 if (_this2._popper !== null) { 5832 _this2._popper.destroy(); 5833 } 5834 5835 if (callback) { 5836 callback(); 5837 } 5838 }; 5839 5840 $__default["default"](this.element).trigger(hideEvent); 5841 5842 if (hideEvent.isDefaultPrevented()) { 5843 return; 5844 } 5845 5846 $__default["default"](tip).removeClass(CLASS_NAME_SHOW); // If this is a touch-enabled device we remove the extra 5847 // empty mouseover listeners we added for iOS support 5848 5849 if ('ontouchstart' in document.documentElement) { 5850 $__default["default"](document.body).children().off('mouseover', null, $__default["default"].noop); 5851 } 5852 5853 this._activeTrigger[TRIGGER_CLICK] = false; 5854 this._activeTrigger[TRIGGER_FOCUS] = false; 5855 this._activeTrigger[TRIGGER_HOVER] = false; 5856 5857 if ($__default["default"](this.tip).hasClass(CLASS_NAME_FADE)) { 5858 var transitionDuration = Util__default["default"].getTransitionDurationFromElement(tip); 5859 $__default["default"](tip).one(Util__default["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 5860 } else { 5861 complete(); 5862 } 5863 5864 this._hoverState = ''; 5865 }; 5866 5867 _proto.update = function update() { 5868 if (this._popper !== null) { 5869 this._popper.scheduleUpdate(); 5870 } 5871 } // Protected 5872 ; 5873 5874 _proto.isWithContent = function isWithContent() { 5875 return Boolean(this.getTitle()); 5876 }; 5877 5878 _proto.addAttachmentClass = function addAttachmentClass(attachment) { 5879 $__default["default"](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); 5880 }; 5881 5882 _proto.getTipElement = function getTipElement() { 5883 this.tip = this.tip || $__default["default"](this.config.template)[0]; 5884 return this.tip; 5885 }; 5886 5887 _proto.setContent = function setContent() { 5888 var tip = this.getTipElement(); 5889 this.setElementContent($__default["default"](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle()); 5890 $__default["default"](tip).removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW); 5891 }; 5892 5893 _proto.setElementContent = function setElementContent($element, content) { 5894 if (typeof content === 'object' && (content.nodeType || content.jquery)) { 5895 // Content is a DOM node or a jQuery 5896 if (this.config.html) { 5897 if (!$__default["default"](content).parent().is($element)) { 5898 $element.empty().append(content); 5899 } 5900 } else { 5901 $element.text($__default["default"](content).text()); 5902 } 5903 5904 return; 5905 } 5906 5907 if (this.config.html) { 5908 if (this.config.sanitize) { 5909 content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn); 5910 } 5911 5912 $element.html(content); 5913 } else { 5914 $element.text(content); 5915 } 5916 }; 5917 5918 _proto.getTitle = function getTitle() { 5919 var title = this.element.getAttribute('data-original-title'); 5920 5921 if (!title) { 5922 title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; 5923 } 5924 5925 return title; 5926 } // Private 5927 ; 5928 5929 _proto._getPopperConfig = function _getPopperConfig(attachment) { 5930 var _this3 = this; 5931 5932 var defaultBsConfig = { 5933 placement: attachment, 5934 modifiers: { 5935 offset: this._getOffset(), 5936 flip: { 5937 behavior: this.config.fallbackPlacement 5938 }, 5939 arrow: { 5940 element: SELECTOR_ARROW 5941 }, 5942 preventOverflow: { 5943 boundariesElement: this.config.boundary 5944 } 5945 }, 5946 onCreate: function onCreate(data) { 5947 if (data.originalPlacement !== data.placement) { 5948 _this3._handlePopperPlacementChange(data); 5949 } 5950 }, 5951 onUpdate: function onUpdate(data) { 5952 return _this3._handlePopperPlacementChange(data); 5953 } 5954 }; 5955 return _extends({}, defaultBsConfig, this.config.popperConfig); 5956 }; 5957 5958 _proto._getOffset = function _getOffset() { 5959 var _this4 = this; 5960 5961 var offset = {}; 5962 5963 if (typeof this.config.offset === 'function') { 5964 offset.fn = function (data) { 5965 data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element)); 5966 return data; 5967 }; 5968 } else { 5969 offset.offset = this.config.offset; 5970 } 5971 5972 return offset; 5973 }; 5974 5975 _proto._getContainer = function _getContainer() { 5976 if (this.config.container === false) { 5977 return document.body; 5978 } 5979 5980 if (Util__default["default"].isElement(this.config.container)) { 5981 return $__default["default"](this.config.container); 5982 } 5983 5984 return $__default["default"](document).find(this.config.container); 5985 }; 5986 5987 _proto._getAttachment = function _getAttachment(placement) { 5988 return AttachmentMap[placement.toUpperCase()]; 5989 }; 5990 5991 _proto._setListeners = function _setListeners() { 5992 var _this5 = this; 5993 5994 var triggers = this.config.trigger.split(' '); 5995 triggers.forEach(function (trigger) { 5996 if (trigger === 'click') { 5997 $__default["default"](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) { 5998 return _this5.toggle(event); 5999 }); 6000 } else if (trigger !== TRIGGER_MANUAL) { 6001 var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN; 6002 var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT; 6003 $__default["default"](_this5.element).on(eventIn, _this5.config.selector, function (event) { 6004 return _this5._enter(event); 6005 }).on(eventOut, _this5.config.selector, function (event) { 6006 return _this5._leave(event); 6007 }); 6008 } 6009 }); 6010 6011 this._hideModalHandler = function () { 6012 if (_this5.element) { 6013 _this5.hide(); 6014 } 6015 }; 6016 6017 $__default["default"](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler); 6018 6019 if (this.config.selector) { 6020 this.config = _extends({}, this.config, { 6021 trigger: 'manual', 6022 selector: '' 6023 }); 6024 } else { 6025 this._fixTitle(); 6026 } 6027 }; 6028 6029 _proto._fixTitle = function _fixTitle() { 6030 var titleType = typeof this.element.getAttribute('data-original-title'); 6031 6032 if (this.element.getAttribute('title') || titleType !== 'string') { 6033 this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); 6034 this.element.setAttribute('title', ''); 6035 } 6036 }; 6037 6038 _proto._enter = function _enter(event, context) { 6039 var dataKey = this.constructor.DATA_KEY; 6040 context = context || $__default["default"](event.currentTarget).data(dataKey); 6041 6042 if (!context) { 6043 context = new this.constructor(event.currentTarget, this._getDelegateConfig()); 6044 $__default["default"](event.currentTarget).data(dataKey, context); 6045 } 6046 6047 if (event) { 6048 context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; 6049 } 6050 6051 if ($__default["default"](context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) { 6052 context._hoverState = HOVER_STATE_SHOW; 6053 return; 6054 } 6055 6056 clearTimeout(context._timeout); 6057 context._hoverState = HOVER_STATE_SHOW; 6058 6059 if (!context.config.delay || !context.config.delay.show) { 6060 context.show(); 6061 return; 6062 } 6063 6064 context._timeout = setTimeout(function () { 6065 if (context._hoverState === HOVER_STATE_SHOW) { 6066 context.show(); 6067 } 6068 }, context.config.delay.show); 6069 }; 6070 6071 _proto._leave = function _leave(event, context) { 6072 var dataKey = this.constructor.DATA_KEY; 6073 context = context || $__default["default"](event.currentTarget).data(dataKey); 6074 6075 if (!context) { 6076 context = new this.constructor(event.currentTarget, this._getDelegateConfig()); 6077 $__default["default"](event.currentTarget).data(dataKey, context); 6078 } 6079 6080 if (event) { 6081 context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false; 6082 } 6083 6084 if (context._isWithActiveTrigger()) { 6085 return; 6086 } 6087 6088 clearTimeout(context._timeout); 6089 context._hoverState = HOVER_STATE_OUT; 6090 6091 if (!context.config.delay || !context.config.delay.hide) { 6092 context.hide(); 6093 return; 6094 } 6095 6096 context._timeout = setTimeout(function () { 6097 if (context._hoverState === HOVER_STATE_OUT) { 6098 context.hide(); 6099 } 6100 }, context.config.delay.hide); 6101 }; 6102 6103 _proto._isWithActiveTrigger = function _isWithActiveTrigger() { 6104 for (var trigger in this._activeTrigger) { 6105 if (this._activeTrigger[trigger]) { 6106 return true; 6107 } 6108 } 6109 6110 return false; 6111 }; 6112 6113 _proto._getConfig = function _getConfig(config) { 6114 var dataAttributes = $__default["default"](this.element).data(); 6115 Object.keys(dataAttributes).forEach(function (dataAttr) { 6116 if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) { 6117 delete dataAttributes[dataAttr]; 6118 } 6119 }); 6120 config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {}); 6121 6122 if (typeof config.delay === 'number') { 6123 config.delay = { 6124 show: config.delay, 6125 hide: config.delay 6126 }; 6127 } 6128 6129 if (typeof config.title === 'number') { 6130 config.title = config.title.toString(); 6131 } 6132 6133 if (typeof config.content === 'number') { 6134 config.content = config.content.toString(); 6135 } 6136 6137 Util__default["default"].typeCheckConfig(NAME, config, this.constructor.DefaultType); 6138 6139 if (config.sanitize) { 6140 config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn); 6141 } 6142 6143 return config; 6144 }; 6145 6146 _proto._getDelegateConfig = function _getDelegateConfig() { 6147 var config = {}; 6148 6149 if (this.config) { 6150 for (var key in this.config) { 6151 if (this.constructor.Default[key] !== this.config[key]) { 6152 config[key] = this.config[key]; 6153 } 6154 } 6155 } 6156 6157 return config; 6158 }; 6159 6160 _proto._cleanTipClass = function _cleanTipClass() { 6161 var $tip = $__default["default"](this.getTipElement()); 6162 var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); 6163 6164 if (tabClass !== null && tabClass.length) { 6165 $tip.removeClass(tabClass.join('')); 6166 } 6167 }; 6168 6169 _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) { 6170 this.tip = popperData.instance.popper; 6171 6172 this._cleanTipClass(); 6173 6174 this.addAttachmentClass(this._getAttachment(popperData.placement)); 6175 }; 6176 6177 _proto._fixTransition = function _fixTransition() { 6178 var tip = this.getTipElement(); 6179 var initConfigAnimation = this.config.animation; 6180 6181 if (tip.getAttribute('x-placement') !== null) { 6182 return; 6183 } 6184 6185 $__default["default"](tip).removeClass(CLASS_NAME_FADE); 6186 this.config.animation = false; 6187 this.hide(); 6188 this.show(); 6189 this.config.animation = initConfigAnimation; 6190 } // Static 6191 ; 6192 6193 Tooltip._jQueryInterface = function _jQueryInterface(config) { 6194 return this.each(function () { 6195 var $element = $__default["default"](this); 6196 var data = $element.data(DATA_KEY); 6197 6198 var _config = typeof config === 'object' && config; 6199 6200 if (!data && /dispose|hide/.test(config)) { 6201 return; 6202 } 6203 6204 if (!data) { 6205 data = new Tooltip(this, _config); 6206 $element.data(DATA_KEY, data); 6207 } 6208 6209 if (typeof config === 'string') { 6210 if (typeof data[config] === 'undefined') { 6211 throw new TypeError("No method named \"" + config + "\""); 6212 } 6213 6214 data[config](); 6215 } 6216 }); 6217 }; 6218 6219 _createClass(Tooltip, null, [{ 6220 key: "VERSION", 6221 get: function get() { 6222 return VERSION; 6223 } 6224 }, { 6225 key: "Default", 6226 get: function get() { 6227 return Default; 6228 } 6229 }, { 6230 key: "NAME", 6231 get: function get() { 6232 return NAME; 6233 } 6234 }, { 6235 key: "DATA_KEY", 6236 get: function get() { 6237 return DATA_KEY; 6238 } 6239 }, { 6240 key: "Event", 6241 get: function get() { 6242 return Event; 6243 } 6244 }, { 6245 key: "EVENT_KEY", 6246 get: function get() { 6247 return EVENT_KEY; 6248 } 6249 }, { 6250 key: "DefaultType", 6251 get: function get() { 6252 return DefaultType; 6253 } 6254 }]); 6255 6256 return Tooltip; 6257 }(); 6258 /** 6259 * jQuery 6260 */ 6261 6262 6263 $__default["default"].fn[NAME] = Tooltip._jQueryInterface; 6264 $__default["default"].fn[NAME].Constructor = Tooltip; 6265 6266 $__default["default"].fn[NAME].noConflict = function () { 6267 $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; 6268 return Tooltip._jQueryInterface; 6269 }; 6270 6271 return Tooltip; 6272 6273})); 6274//# sourceMappingURL=tooltip.js.map 6275 6276 6277/***/ }), 6278
vendor: 6,742 bytes, lines 6279-6477
6279/***/ "./node_modules/bootstrap/js/dist/util.js": 6280/*!************************************************!*\ 6281 !*** ./node_modules/bootstrap/js/dist/util.js ***! 6282 \************************************************/ 6283/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6284 6285/*! 6286 * Bootstrap util.js v4.6.1 (https://getbootstrap.com/) 6287 * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 6288 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 6289 */ 6290(function (global, factory) { 6291 true ? module.exports = factory(__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")) : 6292 0; 6293})(this, (function ($) { 'use strict'; 6294 6295 function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } 6296 6297 var $__default = /*#__PURE__*/_interopDefaultLegacy($); 6298 6299 /** 6300 * -------------------------------------------------------------------------- 6301 * Bootstrap (v4.6.1): util.js 6302 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 6303 * -------------------------------------------------------------------------- 6304 */ 6305 /** 6306 * Private TransitionEnd Helpers 6307 */ 6308 6309 var TRANSITION_END = 'transitionend'; 6310 var MAX_UID = 1000000; 6311 var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp) 6312 6313 function toType(obj) { 6314 if (obj === null || typeof obj === 'undefined') { 6315 return "" + obj; 6316 } 6317 6318 return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); 6319 } 6320 6321 function getSpecialTransitionEndEvent() { 6322 return { 6323 bindType: TRANSITION_END, 6324 delegateType: TRANSITION_END, 6325 handle: function handle(event) { 6326 if ($__default["default"](event.target).is(this)) { 6327 return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params 6328 } 6329 6330 return undefined; 6331 } 6332 }; 6333 } 6334 6335 function transitionEndEmulator(duration) { 6336 var _this = this; 6337 6338 var called = false; 6339 $__default["default"](this).one(Util.TRANSITION_END, function () { 6340 called = true; 6341 }); 6342 setTimeout(function () { 6343 if (!called) { 6344 Util.triggerTransitionEnd(_this); 6345 } 6346 }, duration); 6347 return this; 6348 } 6349 6350 function setTransitionEndSupport() { 6351 $__default["default"].fn.emulateTransitionEnd = transitionEndEmulator; 6352 $__default["default"].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); 6353 } 6354 /** 6355 * Public Util API 6356 */ 6357 6358 6359 var Util = { 6360 TRANSITION_END: 'bsTransitionEnd', 6361 getUID: function getUID(prefix) { 6362 do { 6363 // eslint-disable-next-line no-bitwise 6364 prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here 6365 } while (document.getElementById(prefix)); 6366 6367 return prefix; 6368 }, 6369 getSelectorFromElement: function getSelectorFromElement(element) { 6370 var selector = element.getAttribute('data-target'); 6371 6372 if (!selector || selector === '#') { 6373 var hrefAttr = element.getAttribute('href'); 6374 selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''; 6375 } 6376 6377 try { 6378 return document.querySelector(selector) ? selector : null; 6379 } catch (_) { 6380 return null; 6381 } 6382 }, 6383 getTransitionDurationFromElement: function getTransitionDurationFromElement(element) { 6384 if (!element) { 6385 return 0; 6386 } // Get transition-duration of the element 6387 6388 6389 var transitionDuration = $__default["default"](element).css('transition-duration'); 6390 var transitionDelay = $__default["default"](element).css('transition-delay'); 6391 var floatTransitionDuration = parseFloat(transitionDuration); 6392 var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found 6393 6394 if (!floatTransitionDuration && !floatTransitionDelay) { 6395 return 0; 6396 } // If multiple durations are defined, take the first 6397 6398 6399 transitionDuration = transitionDuration.split(',')[0]; 6400 transitionDelay = transitionDelay.split(',')[0]; 6401 return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; 6402 }, 6403 reflow: function reflow(element) { 6404 return element.offsetHeight; 6405 }, 6406 triggerTransitionEnd: function triggerTransitionEnd(element) { 6407 $__default["default"](element).trigger(TRANSITION_END); 6408 }, 6409 supportsTransitionEnd: function supportsTransitionEnd() { 6410 return Boolean(TRANSITION_END); 6411 }, 6412 isElement: function isElement(obj) { 6413 return (obj[0] || obj).nodeType; 6414 }, 6415 typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { 6416 for (var property in configTypes) { 6417 if (Object.prototype.hasOwnProperty.call(configTypes, property)) { 6418 var expectedTypes = configTypes[property]; 6419 var value = config[property]; 6420 var valueType = value && Util.isElement(value) ? 'element' : toType(value); 6421 6422 if (!new RegExp(expectedTypes).test(valueType)) { 6423 throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); 6424 } 6425 } 6426 } 6427 }, 6428 findShadowRoot: function findShadowRoot(element) { 6429 if (!document.documentElement.attachShadow) { 6430 return null; 6431 } // Can find the shadow root otherwise it'll return the document 6432 6433 6434 if (typeof element.getRootNode === 'function') { 6435 var root = element.getRootNode(); 6436 return root instanceof ShadowRoot ? root : null; 6437 } 6438 6439 if (element instanceof ShadowRoot) { 6440 return element; 6441 } // when we don't find a shadow root 6442 6443 6444 if (!element.parentNode) { 6445 return null; 6446 } 6447 6448 return Util.findShadowRoot(element.parentNode); 6449 }, 6450 jQueryDetection: function jQueryDetection() { 6451 if (typeof $__default["default"] === 'undefined') { 6452 throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.'); 6453 } 6454 6455 var version = $__default["default"].fn.jquery.split(' ')[0].split('.'); 6456 var minMajor = 1; 6457 var ltMajor = 2; 6458 var minMinor = 9; 6459 var minPatch = 1; 6460 var maxMajor = 4; 6461 6462 if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) { 6463 throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0'); 6464 } 6465 } 6466 }; 6467 Util.jQueryDetection(); 6468 setTransitionEndSupport(); 6469 6470 return Util; 6471 6472})); 6473//# sourceMappingURL=util.js.map 6474 6475 6476/***/ }), 6477
vendor: 906 bytes, lines 6478-6498
6478/***/ "./node_modules/core-js/internals/a-callable.js": 6479/*!******************************************************!*\ 6480 !*** ./node_modules/core-js/internals/a-callable.js ***! 6481 \******************************************************/ 6482/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6483 6484var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 6485var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 6486var tryToString = __webpack_require__(/*! ../internals/try-to-string */ "./node_modules/core-js/internals/try-to-string.js"); 6487 6488var TypeError = global.TypeError; 6489 6490// `Assert: IsCallable(argument) is true` 6491module.exports = function (argument) { 6492 if (isCallable(argument)) return argument; 6493 throw TypeError(tryToString(argument) + ' is not a function'); 6494}; 6495 6496 6497/***/ }), 6498
vendor: 936 bytes, lines 6499-6519
6499/***/ "./node_modules/core-js/internals/a-constructor.js": 6500/*!*********************************************************!*\ 6501 !*** ./node_modules/core-js/internals/a-constructor.js ***! 6502 \*********************************************************/ 6503/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6504 6505var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 6506var isConstructor = __webpack_require__(/*! ../internals/is-constructor */ "./node_modules/core-js/internals/is-constructor.js"); 6507var tryToString = __webpack_require__(/*! ../internals/try-to-string */ "./node_modules/core-js/internals/try-to-string.js"); 6508 6509var TypeError = global.TypeError; 6510 6511// `Assert: IsConstructor(argument) is true` 6512module.exports = function (argument) { 6513 if (isConstructor(argument)) return argument; 6514 throw TypeError(tryToString(argument) + ' is not a constructor'); 6515}; 6516 6517 6518/***/ }), 6519
vendor: 844 bytes, lines 6520-6539
6520/***/ "./node_modules/core-js/internals/a-possible-prototype.js": 6521/*!****************************************************************!*\ 6522 !*** ./node_modules/core-js/internals/a-possible-prototype.js ***! 6523 \****************************************************************/ 6524/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6525 6526var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 6527var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 6528 6529var String = global.String; 6530var TypeError = global.TypeError; 6531 6532module.exports = function (argument) { 6533 if (typeof argument == 'object' || isCallable(argument)) return argument; 6534 throw TypeError("Can't set " + String(argument) + ' as a prototype'); 6535}; 6536 6537 6538/***/ }), 6539
vendor: 1,240 bytes, lines 6540-6569
6540/***/ "./node_modules/core-js/internals/add-to-unscopables.js": 6541/*!**************************************************************!*\ 6542 !*** ./node_modules/core-js/internals/add-to-unscopables.js ***! 6543 \**************************************************************/ 6544/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6545 6546var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 6547var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js"); 6548var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 6549 6550var UNSCOPABLES = wellKnownSymbol('unscopables'); 6551var ArrayPrototype = Array.prototype; 6552 6553// Array.prototype[@@unscopables] 6554// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables 6555if (ArrayPrototype[UNSCOPABLES] == undefined) { 6556 definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { 6557 configurable: true, 6558 value: create(null) 6559 }); 6560} 6561 6562// add a key to Array.prototype[@@unscopables] 6563module.exports = function (key) { 6564 ArrayPrototype[UNSCOPABLES][key] = true; 6565}; 6566 6567 6568/***/ }), 6569
vendor: 717 bytes, lines 6570-6588
6570/***/ "./node_modules/core-js/internals/advance-string-index.js": 6571/*!****************************************************************!*\ 6572 !*** ./node_modules/core-js/internals/advance-string-index.js ***! 6573 \****************************************************************/ 6574/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6575 6576"use strict"; 6577 6578var charAt = (__webpack_require__(/*! ../internals/string-multibyte */ "./node_modules/core-js/internals/string-multibyte.js").charAt); 6579 6580// `AdvanceStringIndex` abstract operation 6581// https://tc39.es/ecma262/#sec-advancestringindex 6582module.exports = function (S, index, unicode) { 6583 return index + (unicode ? charAt(S, index).length : 1); 6584}; 6585 6586 6587/***/ }), 6588
vendor: 752 bytes, lines 6589-6607
6589/***/ "./node_modules/core-js/internals/an-instance.js": 6590/*!*******************************************************!*\ 6591 !*** ./node_modules/core-js/internals/an-instance.js ***! 6592 \*******************************************************/ 6593/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6594 6595var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 6596var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "./node_modules/core-js/internals/object-is-prototype-of.js"); 6597 6598var TypeError = global.TypeError; 6599 6600module.exports = function (it, Prototype) { 6601 if (isPrototypeOf(Prototype, it)) return it; 6602 throw TypeError('Incorrect invocation'); 6603}; 6604 6605 6606/***/ }), 6607
vendor: 786 bytes, lines 6608-6628
6608/***/ "./node_modules/core-js/internals/an-object.js": 6609/*!*****************************************************!*\ 6610 !*** ./node_modules/core-js/internals/an-object.js ***! 6611 \*****************************************************/ 6612/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6613 6614var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 6615var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 6616 6617var String = global.String; 6618var TypeError = global.TypeError; 6619 6620// `Assert: Type(argument) is Object` 6621module.exports = function (argument) { 6622 if (isObject(argument)) return argument; 6623 throw TypeError(String(argument) + ' is not an object'); 6624}; 6625 6626 6627/***/ }), 6628
vendor: 1,052 bytes, lines 6629-6651
6629/***/ "./node_modules/core-js/internals/array-for-each.js": 6630/*!**********************************************************!*\ 6631 !*** ./node_modules/core-js/internals/array-for-each.js ***! 6632 \**********************************************************/ 6633/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6634 6635"use strict"; 6636 6637var $forEach = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").forEach); 6638var arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ "./node_modules/core-js/internals/array-method-is-strict.js"); 6639 6640var STRICT_METHOD = arrayMethodIsStrict('forEach'); 6641 6642// `Array.prototype.forEach` method implementation 6643// https://tc39.es/ecma262/#sec-array.prototype.foreach 6644module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { 6645 return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); 6646// eslint-disable-next-line es/no-array-prototype-foreach -- safe 6647} : [].forEach; 6648 6649 6650/***/ }), 6651
vendor: 3,269 bytes, lines 6652-6709
6652/***/ "./node_modules/core-js/internals/array-from.js": 6653/*!******************************************************!*\ 6654 !*** ./node_modules/core-js/internals/array-from.js ***! 6655 \******************************************************/ 6656/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6657 6658"use strict"; 6659 6660var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 6661var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js"); 6662var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 6663var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); 6664var callWithSafeIterationClosing = __webpack_require__(/*! ../internals/call-with-safe-iteration-closing */ "./node_modules/core-js/internals/call-with-safe-iteration-closing.js"); 6665var isArrayIteratorMethod = __webpack_require__(/*! ../internals/is-array-iterator-method */ "./node_modules/core-js/internals/is-array-iterator-method.js"); 6666var isConstructor = __webpack_require__(/*! ../internals/is-constructor */ "./node_modules/core-js/internals/is-constructor.js"); 6667var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "./node_modules/core-js/internals/length-of-array-like.js"); 6668var createProperty = __webpack_require__(/*! ../internals/create-property */ "./node_modules/core-js/internals/create-property.js"); 6669var getIterator = __webpack_require__(/*! ../internals/get-iterator */ "./node_modules/core-js/internals/get-iterator.js"); 6670var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ "./node_modules/core-js/internals/get-iterator-method.js"); 6671 6672var Array = global.Array; 6673 6674// `Array.from` method implementation 6675// https://tc39.es/ecma262/#sec-array.from 6676module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { 6677 var O = toObject(arrayLike); 6678 var IS_CONSTRUCTOR = isConstructor(this); 6679 var argumentsLength = arguments.length; 6680 var mapfn = argumentsLength > 1 ? arguments[1] : undefined; 6681 var mapping = mapfn !== undefined; 6682 if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); 6683 var iteratorMethod = getIteratorMethod(O); 6684 var index = 0; 6685 var length, result, step, iterator, next, value; 6686 // if the target is not iterable or it's an array with the default iterator - use a simple case 6687 if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) { 6688 iterator = getIterator(O, iteratorMethod); 6689 next = iterator.next; 6690 result = IS_CONSTRUCTOR ? new this() : []; 6691 for (;!(step = call(next, iterator)).done; index++) { 6692 value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; 6693 createProperty(result, index, value); 6694 } 6695 } else { 6696 length = lengthOfArrayLike(O); 6697 result = IS_CONSTRUCTOR ? new this(length) : Array(length); 6698 for (;length > index; index++) { 6699 value = mapping ? mapfn(O[index], index) : O[index]; 6700 createProperty(result, index, value); 6701 } 6702 } 6703 result.length = index; 6704 return result; 6705}; 6706 6707 6708/***/ }), 6709
vendor: 1,877 bytes, lines 6710-6751
6710/***/ "./node_modules/core-js/internals/array-includes.js": 6711/*!**********************************************************!*\ 6712 !*** ./node_modules/core-js/internals/array-includes.js ***! 6713 \**********************************************************/ 6714/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6715 6716var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 6717var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/core-js/internals/to-absolute-index.js"); 6718var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "./node_modules/core-js/internals/length-of-array-like.js"); 6719 6720// `Array.prototype.{ indexOf, includes }` methods implementation 6721var createMethod = function (IS_INCLUDES) { 6722 return function ($this, el, fromIndex) { 6723 var O = toIndexedObject($this); 6724 var length = lengthOfArrayLike(O); 6725 var index = toAbsoluteIndex(fromIndex, length); 6726 var value; 6727 // Array#includes uses SameValueZero equality algorithm 6728 // eslint-disable-next-line no-self-compare -- NaN check 6729 if (IS_INCLUDES && el != el) while (length > index) { 6730 value = O[index++]; 6731 // eslint-disable-next-line no-self-compare -- NaN check 6732 if (value != value) return true; 6733 // Array#indexOf ignores holes, Array#includes - not 6734 } else for (;length > index; index++) { 6735 if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; 6736 } return !IS_INCLUDES && -1; 6737 }; 6738}; 6739 6740module.exports = { 6741 // `Array.prototype.includes` method 6742 // https://tc39.es/ecma262/#sec-array.prototype.includes 6743 includes: createMethod(true), 6744 // `Array.prototype.indexOf` method 6745 // https://tc39.es/ecma262/#sec-array.prototype.indexof 6746 indexOf: createMethod(false) 6747}; 6748 6749 6750/***/ }), 6751
vendor: 3,692 bytes, lines 6752-6834
6752/***/ "./node_modules/core-js/internals/array-iteration.js": 6753/*!***********************************************************!*\ 6754 !*** ./node_modules/core-js/internals/array-iteration.js ***! 6755 \***********************************************************/ 6756/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6757 6758var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js"); 6759var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 6760var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js"); 6761var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); 6762var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "./node_modules/core-js/internals/length-of-array-like.js"); 6763var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ "./node_modules/core-js/internals/array-species-create.js"); 6764 6765var push = uncurryThis([].push); 6766 6767// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation 6768var createMethod = function (TYPE) { 6769 var IS_MAP = TYPE == 1; 6770 var IS_FILTER = TYPE == 2; 6771 var IS_SOME = TYPE == 3; 6772 var IS_EVERY = TYPE == 4; 6773 var IS_FIND_INDEX = TYPE == 6; 6774 var IS_FILTER_REJECT = TYPE == 7; 6775 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; 6776 return function ($this, callbackfn, that, specificCreate) { 6777 var O = toObject($this); 6778 var self = IndexedObject(O); 6779 var boundFunction = bind(callbackfn, that); 6780 var length = lengthOfArrayLike(self); 6781 var index = 0; 6782 var create = specificCreate || arraySpeciesCreate; 6783 var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; 6784 var value, result; 6785 for (;length > index; index++) if (NO_HOLES || index in self) { 6786 value = self[index]; 6787 result = boundFunction(value, index, O); 6788 if (TYPE) { 6789 if (IS_MAP) target[index] = result; // map 6790 else if (result) switch (TYPE) { 6791 case 3: return true; // some 6792 case 5: return value; // find 6793 case 6: return index; // findIndex 6794 case 2: push(target, value); // filter 6795 } else switch (TYPE) { 6796 case 4: return false; // every 6797 case 7: push(target, value); // filterReject 6798 } 6799 } 6800 } 6801 return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; 6802 }; 6803}; 6804 6805module.exports = { 6806 // `Array.prototype.forEach` method 6807 // https://tc39.es/ecma262/#sec-array.prototype.foreach 6808 forEach: createMethod(0), 6809 // `Array.prototype.map` method 6810 // https://tc39.es/ecma262/#sec-array.prototype.map 6811 map: createMethod(1), 6812 // `Array.prototype.filter` method 6813 // https://tc39.es/ecma262/#sec-array.prototype.filter 6814 filter: createMethod(2), 6815 // `Array.prototype.some` method 6816 // https://tc39.es/ecma262/#sec-array.prototype.some 6817 some: createMethod(3), 6818 // `Array.prototype.every` method 6819 // https://tc39.es/ecma262/#sec-array.prototype.every 6820 every: createMethod(4), 6821 // `Array.prototype.find` method 6822 // https://tc39.es/ecma262/#sec-array.prototype.find 6823 find: createMethod(5), 6824 // `Array.prototype.findIndex` method 6825 // https://tc39.es/ecma262/#sec-array.prototype.findIndex 6826 findIndex: createMethod(6), 6827 // `Array.prototype.filterReject` method 6828 // https://github.com/tc39/proposal-array-filtering 6829 filterReject: createMethod(7) 6830}; 6831 6832 6833/***/ }), 6834
vendor: 1,290 bytes, lines 6835-6863
6835/***/ "./node_modules/core-js/internals/array-method-has-species-support.js": 6836/*!****************************************************************************!*\ 6837 !*** ./node_modules/core-js/internals/array-method-has-species-support.js ***! 6838 \****************************************************************************/ 6839/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6840 6841var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 6842var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 6843var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ "./node_modules/core-js/internals/engine-v8-version.js"); 6844 6845var SPECIES = wellKnownSymbol('species'); 6846 6847module.exports = function (METHOD_NAME) { 6848 // We can't use this feature detection in V8 since it causes 6849 // deoptimization and serious performance degradation 6850 // https://github.com/zloirock/core-js/issues/677 6851 return V8_VERSION >= 51 || !fails(function () { 6852 var array = []; 6853 var constructor = array.constructor = {}; 6854 constructor[SPECIES] = function () { 6855 return { foo: 1 }; 6856 }; 6857 return array[METHOD_NAME](Boolean).foo !== 1; 6858 }); 6859}; 6860 6861 6862/***/ }), 6863
vendor: 777 bytes, lines 6864-6884
6864/***/ "./node_modules/core-js/internals/array-method-is-strict.js": 6865/*!******************************************************************!*\ 6866 !*** ./node_modules/core-js/internals/array-method-is-strict.js ***! 6867 \******************************************************************/ 6868/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6869 6870"use strict"; 6871 6872var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 6873 6874module.exports = function (METHOD_NAME, argument) { 6875 var method = [][METHOD_NAME]; 6876 return !!method && fails(function () { 6877 // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing 6878 method.call(null, argument || function () { throw 1; }, 1); 6879 }); 6880}; 6881 6882 6883/***/ }), 6884
vendor: 1,270 bytes, lines 6885-6911
6885/***/ "./node_modules/core-js/internals/array-slice-simple.js": 6886/*!**************************************************************!*\ 6887 !*** ./node_modules/core-js/internals/array-slice-simple.js ***! 6888 \**************************************************************/ 6889/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6890 6891var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 6892var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/core-js/internals/to-absolute-index.js"); 6893var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "./node_modules/core-js/internals/length-of-array-like.js"); 6894var createProperty = __webpack_require__(/*! ../internals/create-property */ "./node_modules/core-js/internals/create-property.js"); 6895 6896var Array = global.Array; 6897var max = Math.max; 6898 6899module.exports = function (O, start, end) { 6900 var length = lengthOfArrayLike(O); 6901 var k = toAbsoluteIndex(start, length); 6902 var fin = toAbsoluteIndex(end === undefined ? length : end, length); 6903 var result = Array(max(fin - k, 0)); 6904 for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]); 6905 result.length = n; 6906 return result; 6907}; 6908 6909 6910/***/ }), 6911
vendor: 509 bytes, lines 6912-6924
6912/***/ "./node_modules/core-js/internals/array-slice.js": 6913/*!*******************************************************!*\ 6914 !*** ./node_modules/core-js/internals/array-slice.js ***! 6915 \*******************************************************/ 6916/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6917 6918var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 6919 6920module.exports = uncurryThis([].slice); 6921 6922 6923/***/ }), 6924
vendor: 1,524 bytes, lines 6925-6957
6925/***/ "./node_modules/core-js/internals/array-species-constructor.js": 6926/*!*********************************************************************!*\ 6927 !*** ./node_modules/core-js/internals/array-species-constructor.js ***! 6928 \*********************************************************************/ 6929/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6930 6931var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 6932var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js"); 6933var isConstructor = __webpack_require__(/*! ../internals/is-constructor */ "./node_modules/core-js/internals/is-constructor.js"); 6934var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 6935var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 6936 6937var SPECIES = wellKnownSymbol('species'); 6938var Array = global.Array; 6939 6940// a part of `ArraySpeciesCreate` abstract operation 6941// https://tc39.es/ecma262/#sec-arrayspeciescreate 6942module.exports = function (originalArray) { 6943 var C; 6944 if (isArray(originalArray)) { 6945 C = originalArray.constructor; 6946 // cross-realm fallback 6947 if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined; 6948 else if (isObject(C)) { 6949 C = C[SPECIES]; 6950 if (C === null) C = undefined; 6951 } 6952 } return C === undefined ? Array : C; 6953}; 6954 6955 6956/***/ }), 6957
vendor: 756 bytes, lines 6958-6974
6958/***/ "./node_modules/core-js/internals/array-species-create.js": 6959/*!****************************************************************!*\ 6960 !*** ./node_modules/core-js/internals/array-species-create.js ***! 6961 \****************************************************************/ 6962/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6963 6964var arraySpeciesConstructor = __webpack_require__(/*! ../internals/array-species-constructor */ "./node_modules/core-js/internals/array-species-constructor.js"); 6965 6966// `ArraySpeciesCreate` abstract operation 6967// https://tc39.es/ecma262/#sec-arrayspeciescreate 6968module.exports = function (originalArray, length) { 6969 return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); 6970}; 6971 6972 6973/***/ }), 6974
vendor: 924 bytes, lines 6975-6995
6975/***/ "./node_modules/core-js/internals/call-with-safe-iteration-closing.js": 6976/*!****************************************************************************!*\ 6977 !*** ./node_modules/core-js/internals/call-with-safe-iteration-closing.js ***! 6978 \****************************************************************************/ 6979/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 6980 6981var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 6982var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "./node_modules/core-js/internals/iterator-close.js"); 6983 6984// call something on iterator step with safe closing on error 6985module.exports = function (iterator, fn, value, ENTRIES) { 6986 try { 6987 return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); 6988 } catch (error) { 6989 iteratorClose(iterator, 'throw', error); 6990 } 6991}; 6992 6993 6994/***/ }), 6995
vendor: 1,453 bytes, lines 6996-7043
6996/***/ "./node_modules/core-js/internals/check-correctness-of-iteration.js": 6997/*!**************************************************************************!*\ 6998 !*** ./node_modules/core-js/internals/check-correctness-of-iteration.js ***! 6999 \**************************************************************************/ 7000/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7001 7002var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 7003 7004var ITERATOR = wellKnownSymbol('iterator'); 7005var SAFE_CLOSING = false; 7006 7007try { 7008 var called = 0; 7009 var iteratorWithReturn = { 7010 next: function () { 7011 return { done: !!called++ }; 7012 }, 7013 'return': function () { 7014 SAFE_CLOSING = true; 7015 } 7016 }; 7017 iteratorWithReturn[ITERATOR] = function () { 7018 return this; 7019 }; 7020 // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing 7021 Array.from(iteratorWithReturn, function () { throw 2; }); 7022} catch (error) { /* empty */ } 7023 7024module.exports = function (exec, SKIP_CLOSING) { 7025 if (!SKIP_CLOSING && !SAFE_CLOSING) return false; 7026 var ITERATION_SUPPORT = false; 7027 try { 7028 var object = {}; 7029 object[ITERATOR] = function () { 7030 return { 7031 next: function () { 7032 return { done: ITERATION_SUPPORT = true }; 7033 } 7034 }; 7035 }; 7036 exec(object); 7037 } catch (error) { /* empty */ } 7038 return ITERATION_SUPPORT; 7039}; 7040 7041 7042/***/ }), 7043
vendor: 631 bytes, lines 7044-7061
7044/***/ "./node_modules/core-js/internals/classof-raw.js": 7045/*!*******************************************************!*\ 7046 !*** ./node_modules/core-js/internals/classof-raw.js ***! 7047 \*******************************************************/ 7048/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7049 7050var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 7051 7052var toString = uncurryThis({}.toString); 7053var stringSlice = uncurryThis(''.slice); 7054 7055module.exports = function (it) { 7056 return stringSlice(toString(it), 8, -1); 7057}; 7058 7059 7060/***/ }), 7061
vendor: 1,784 bytes, lines 7062-7101
7062/***/ "./node_modules/core-js/internals/classof.js": 7063/*!***************************************************!*\ 7064 !*** ./node_modules/core-js/internals/classof.js ***! 7065 \***************************************************/ 7066/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7067 7068var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 7069var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js"); 7070var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 7071var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); 7072var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 7073 7074var TO_STRING_TAG = wellKnownSymbol('toStringTag'); 7075var Object = global.Object; 7076 7077// ES3 wrong here 7078var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; 7079 7080// fallback for IE11 Script Access Denied error 7081var tryGet = function (it, key) { 7082 try { 7083 return it[key]; 7084 } catch (error) { /* empty */ } 7085}; 7086 7087// getting tag from ES6+ `Object.prototype.toString` 7088module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { 7089 var O, tag, result; 7090 return it === undefined ? 'Undefined' : it === null ? 'Null' 7091 // @@toStringTag case 7092 : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag 7093 // builtinTag case 7094 : CORRECT_ARGUMENTS ? classofRaw(O) 7095 // ES3 arguments fallback 7096 : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result; 7097}; 7098 7099 7100/***/ }), 7101
vendor: 1,399 bytes, lines 7102-7127
7102/***/ "./node_modules/core-js/internals/copy-constructor-properties.js": 7103/*!***********************************************************************!*\ 7104 !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***! 7105 \***********************************************************************/ 7106/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7107 7108var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 7109var ownKeys = __webpack_require__(/*! ../internals/own-keys */ "./node_modules/core-js/internals/own-keys.js"); 7110var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js"); 7111var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 7112 7113module.exports = function (target, source, exceptions) { 7114 var keys = ownKeys(source); 7115 var defineProperty = definePropertyModule.f; 7116 var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; 7117 for (var i = 0; i < keys.length; i++) { 7118 var key = keys[i]; 7119 if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { 7120 defineProperty(target, key, getOwnPropertyDescriptor(source, key)); 7121 } 7122 } 7123}; 7124 7125 7126/***/ }), 7127
vendor: 729 bytes, lines 7128-7145
7128/***/ "./node_modules/core-js/internals/correct-prototype-getter.js": 7129/*!********************************************************************!*\ 7130 !*** ./node_modules/core-js/internals/correct-prototype-getter.js ***! 7131 \********************************************************************/ 7132/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7133 7134var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 7135 7136module.exports = !fails(function () { 7137 function F() { /* empty */ } 7138 F.prototype.constructor = null; 7139 // eslint-disable-next-line es/no-object-getprototypeof -- required for testing 7140 return Object.getPrototypeOf(new F()) !== F.prototype; 7141}); 7142 7143 7144/***/ }), 7145
vendor: 1,531 bytes, lines 7146-7172
7146/***/ "./node_modules/core-js/internals/create-iterator-constructor.js": 7147/*!***********************************************************************!*\ 7148 !*** ./node_modules/core-js/internals/create-iterator-constructor.js ***! 7149 \***********************************************************************/ 7150/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7151 7152"use strict"; 7153 7154var IteratorPrototype = (__webpack_require__(/*! ../internals/iterators-core */ "./node_modules/core-js/internals/iterators-core.js").IteratorPrototype); 7155var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js"); 7156var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); 7157var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js"); 7158var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); 7159 7160var returnThis = function () { return this; }; 7161 7162module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { 7163 var TO_STRING_TAG = NAME + ' Iterator'; 7164 IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) }); 7165 setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); 7166 Iterators[TO_STRING_TAG] = returnThis; 7167 return IteratorConstructor; 7168}; 7169 7170 7171/***/ }), 7172
vendor: 1,067 bytes, lines 7173-7192
7173/***/ "./node_modules/core-js/internals/create-non-enumerable-property.js": 7174/*!**************************************************************************!*\ 7175 !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***! 7176 \**************************************************************************/ 7177/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7178 7179var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 7180var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 7181var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); 7182 7183module.exports = DESCRIPTORS ? function (object, key, value) { 7184 return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); 7185} : function (object, key, value) { 7186 object[key] = value; 7187 return object; 7188}; 7189 7190 7191/***/ }), 7192
vendor: 512 bytes, lines 7193-7210
7193/***/ "./node_modules/core-js/internals/create-property-descriptor.js": 7194/*!**********************************************************************!*\ 7195 !*** ./node_modules/core-js/internals/create-property-descriptor.js ***! 7196 \**********************************************************************/ 7197/***/ (function(module) { 7198 7199module.exports = function (bitmap, value) { 7200 return { 7201 enumerable: !(bitmap & 1), 7202 configurable: !(bitmap & 2), 7203 writable: !(bitmap & 4), 7204 value: value 7205 }; 7206}; 7207 7208 7209/***/ }), 7210
vendor: 1,046 bytes, lines 7211-7231
7211/***/ "./node_modules/core-js/internals/create-property.js": 7212/*!***********************************************************!*\ 7213 !*** ./node_modules/core-js/internals/create-property.js ***! 7214 \***********************************************************/ 7215/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7216 7217"use strict"; 7218 7219var toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ "./node_modules/core-js/internals/to-property-key.js"); 7220var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 7221var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); 7222 7223module.exports = function (object, key, value) { 7224 var propertyKey = toPropertyKey(key); 7225 if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); 7226 else object[propertyKey] = value; 7227}; 7228 7229 7230/***/ }), 7231
vendor: 5,817 bytes, lines 7232-7341
7232/***/ "./node_modules/core-js/internals/define-iterator.js": 7233/*!***********************************************************!*\ 7234 !*** ./node_modules/core-js/internals/define-iterator.js ***! 7235 \***********************************************************/ 7236/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7237 7238"use strict"; 7239 7240var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 7241var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 7242var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 7243var FunctionName = __webpack_require__(/*! ../internals/function-name */ "./node_modules/core-js/internals/function-name.js"); 7244var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 7245var createIteratorConstructor = __webpack_require__(/*! ../internals/create-iterator-constructor */ "./node_modules/core-js/internals/create-iterator-constructor.js"); 7246var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js"); 7247var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "./node_modules/core-js/internals/object-set-prototype-of.js"); 7248var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js"); 7249var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 7250var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 7251var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 7252var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); 7253var IteratorsCore = __webpack_require__(/*! ../internals/iterators-core */ "./node_modules/core-js/internals/iterators-core.js"); 7254 7255var PROPER_FUNCTION_NAME = FunctionName.PROPER; 7256var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; 7257var IteratorPrototype = IteratorsCore.IteratorPrototype; 7258var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; 7259var ITERATOR = wellKnownSymbol('iterator'); 7260var KEYS = 'keys'; 7261var VALUES = 'values'; 7262var ENTRIES = 'entries'; 7263 7264var returnThis = function () { return this; }; 7265 7266module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { 7267 createIteratorConstructor(IteratorConstructor, NAME, next); 7268 7269 var getIterationMethod = function (KIND) { 7270 if (KIND === DEFAULT && defaultIterator) return defaultIterator; 7271 if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; 7272 switch (KIND) { 7273 case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; 7274 case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; 7275 case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; 7276 } return function () { return new IteratorConstructor(this); }; 7277 }; 7278 7279 var TO_STRING_TAG = NAME + ' Iterator'; 7280 var INCORRECT_VALUES_NAME = false; 7281 var IterablePrototype = Iterable.prototype; 7282 var nativeIterator = IterablePrototype[ITERATOR] 7283 || IterablePrototype['@@iterator'] 7284 || DEFAULT && IterablePrototype[DEFAULT]; 7285 var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); 7286 var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; 7287 var CurrentIteratorPrototype, methods, KEY; 7288 7289 // fix native 7290 if (anyNativeIterator) { 7291 CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); 7292 if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { 7293 if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { 7294 if (setPrototypeOf) { 7295 setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); 7296 } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) { 7297 redefine(CurrentIteratorPrototype, ITERATOR, returnThis); 7298 } 7299 } 7300 // Set @@toStringTag to native iterators 7301 setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); 7302 if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; 7303 } 7304 } 7305 7306 // fix Array.prototype.{ values, @@iterator }.name in V8 / FF 7307 if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { 7308 if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) { 7309 createNonEnumerableProperty(IterablePrototype, 'name', VALUES); 7310 } else { 7311 INCORRECT_VALUES_NAME = true; 7312 defaultIterator = function values() { return call(nativeIterator, this); }; 7313 } 7314 } 7315 7316 // export additional methods 7317 if (DEFAULT) { 7318 methods = { 7319 values: getIterationMethod(VALUES), 7320 keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), 7321 entries: getIterationMethod(ENTRIES) 7322 }; 7323 if (FORCED) for (KEY in methods) { 7324 if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { 7325 redefine(IterablePrototype, KEY, methods[KEY]); 7326 } 7327 } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); 7328 } 7329 7330 // define iterator 7331 if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { 7332 redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT }); 7333 } 7334 Iterators[NAME] = defaultIterator; 7335 7336 return methods; 7337}; 7338 7339 7340/***/ }), 7341
vendor: 1,127 bytes, lines 7342-7362
7342/***/ "./node_modules/core-js/internals/define-well-known-symbol.js": 7343/*!********************************************************************!*\ 7344 !*** ./node_modules/core-js/internals/define-well-known-symbol.js ***! 7345 \********************************************************************/ 7346/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7347 7348var path = __webpack_require__(/*! ../internals/path */ "./node_modules/core-js/internals/path.js"); 7349var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 7350var wrappedWellKnownSymbolModule = __webpack_require__(/*! ../internals/well-known-symbol-wrapped */ "./node_modules/core-js/internals/well-known-symbol-wrapped.js"); 7351var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f); 7352 7353module.exports = function (NAME) { 7354 var Symbol = path.Symbol || (path.Symbol = {}); 7355 if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, { 7356 value: wrappedWellKnownSymbolModule.f(NAME) 7357 }); 7358}; 7359 7360 7361/***/ }), 7362
vendor: 695 bytes, lines 7363-7379
7363/***/ "./node_modules/core-js/internals/descriptors.js": 7364/*!*******************************************************!*\ 7365 !*** ./node_modules/core-js/internals/descriptors.js ***! 7366 \*******************************************************/ 7367/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7368 7369var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 7370 7371// Detect IE8's incomplete defineProperty implementation 7372module.exports = !fails(function () { 7373 // eslint-disable-next-line es/no-object-defineproperty -- required for testing 7374 return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; 7375}); 7376 7377 7378/***/ }), 7379
vendor: 841 bytes, lines 7380-7399
7380/***/ "./node_modules/core-js/internals/document-create-element.js": 7381/*!*******************************************************************!*\ 7382 !*** ./node_modules/core-js/internals/document-create-element.js ***! 7383 \*******************************************************************/ 7384/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7385 7386var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 7387var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 7388 7389var document = global.document; 7390// typeof document.createElement is 'object' in old IE 7391var EXISTS = isObject(document) && isObject(document.createElement); 7392 7393module.exports = function (it) { 7394 return EXISTS ? document.createElement(it) : {}; 7395}; 7396 7397 7398/***/ }), 7399
vendor: 1,040 bytes, lines 7400-7444
7400/***/ "./node_modules/core-js/internals/dom-iterables.js": 7401/*!*********************************************************!*\ 7402 !*** ./node_modules/core-js/internals/dom-iterables.js ***! 7403 \*********************************************************/ 7404/***/ (function(module) { 7405 7406// iterable DOM collections 7407// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods 7408module.exports = { 7409 CSSRuleList: 0, 7410 CSSStyleDeclaration: 0, 7411 CSSValueList: 0, 7412 ClientRectList: 0, 7413 DOMRectList: 0, 7414 DOMStringList: 0, 7415 DOMTokenList: 1, 7416 DataTransferItemList: 0, 7417 FileList: 0, 7418 HTMLAllCollection: 0, 7419 HTMLCollection: 0, 7420 HTMLFormElement: 0, 7421 HTMLSelectElement: 0, 7422 MediaList: 0, 7423 MimeTypeArray: 0, 7424 NamedNodeMap: 0, 7425 NodeList: 1, 7426 PaintRequestList: 0, 7427 Plugin: 0, 7428 PluginArray: 0, 7429 SVGLengthList: 0, 7430 SVGNumberList: 0, 7431 SVGPathSegList: 0, 7432 SVGPointList: 0, 7433 SVGStringList: 0, 7434 SVGTransformList: 0, 7435 SourceBufferList: 0, 7436 StyleSheetList: 0, 7437 TextTrackCueList: 0, 7438 TextTrackList: 0, 7439 TouchList: 0 7440}; 7441 7442 7443/***/ }), 7444
vendor: 880 bytes, lines 7445-7461
7445/***/ "./node_modules/core-js/internals/dom-token-list-prototype.js": 7446/*!********************************************************************!*\ 7447 !*** ./node_modules/core-js/internals/dom-token-list-prototype.js ***! 7448 \********************************************************************/ 7449/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7450 7451// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` 7452var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js"); 7453 7454var classList = documentCreateElement('span').classList; 7455var DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype; 7456 7457module.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype; 7458 7459 7460/***/ }), 7461
vendor: 347 bytes, lines 7462-7472
7462/***/ "./node_modules/core-js/internals/engine-is-browser.js": 7463/*!*************************************************************!*\ 7464 !*** ./node_modules/core-js/internals/engine-is-browser.js ***! 7465 \*************************************************************/ 7466/***/ (function(module) { 7467 7468module.exports = typeof window == 'object'; 7469 7470 7471/***/ }), 7472
vendor: 687 bytes, lines 7473-7486
7473/***/ "./node_modules/core-js/internals/engine-is-ios-pebble.js": 7474/*!****************************************************************!*\ 7475 !*** ./node_modules/core-js/internals/engine-is-ios-pebble.js ***! 7476 \****************************************************************/ 7477/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7478 7479var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js"); 7480var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 7481 7482module.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined; 7483 7484 7485/***/ }), 7486
vendor: 538 bytes, lines 7487-7499
7487/***/ "./node_modules/core-js/internals/engine-is-ios.js": 7488/*!*********************************************************!*\ 7489 !*** ./node_modules/core-js/internals/engine-is-ios.js ***! 7490 \*********************************************************/ 7491/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7492 7493var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js"); 7494 7495module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent); 7496 7497 7498/***/ }), 7499
vendor: 619 bytes, lines 7500-7513
7500/***/ "./node_modules/core-js/internals/engine-is-node.js": 7501/*!**********************************************************!*\ 7502 !*** ./node_modules/core-js/internals/engine-is-node.js ***! 7503 \**********************************************************/ 7504/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7505 7506var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); 7507var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 7508 7509module.exports = classof(global.process) == 'process'; 7510 7511 7512/***/ }), 7513
vendor: 558 bytes, lines 7514-7526
7514/***/ "./node_modules/core-js/internals/engine-is-webos-webkit.js": 7515/*!******************************************************************!*\ 7516 !*** ./node_modules/core-js/internals/engine-is-webos-webkit.js ***! 7517 \******************************************************************/ 7518/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7519 7520var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js"); 7521 7522module.exports = /web0s(?!.*chrome)/i.test(userAgent); 7523 7524 7525/***/ }), 7526
vendor: 535 bytes, lines 7527-7539
7527/***/ "./node_modules/core-js/internals/engine-user-agent.js": 7528/*!*************************************************************!*\ 7529 !*** ./node_modules/core-js/internals/engine-user-agent.js ***! 7530 \*************************************************************/ 7531/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7532 7533var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 7534 7535module.exports = getBuiltIn('navigator', 'userAgent') || ''; 7536 7537 7538/***/ }), 7539
vendor: 1,335 bytes, lines 7540-7576
7540/***/ "./node_modules/core-js/internals/engine-v8-version.js": 7541/*!*************************************************************!*\ 7542 !*** ./node_modules/core-js/internals/engine-v8-version.js ***! 7543 \*************************************************************/ 7544/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7545 7546var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 7547var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js"); 7548 7549var process = global.process; 7550var Deno = global.Deno; 7551var versions = process && process.versions || Deno && Deno.version; 7552var v8 = versions && versions.v8; 7553var match, version; 7554 7555if (v8) { 7556 match = v8.split('.'); 7557 // in old Chrome, versions of V8 isn't V8 = Chrome / 10 7558 // but their correct versions are not interesting for us 7559 version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); 7560} 7561 7562// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` 7563// so check `userAgent` even if `.v8` exists, but 0 7564if (!version && userAgent) { 7565 match = userAgent.match(/Edge\/(\d+)/); 7566 if (!match || match[1] >= 74) { 7567 match = userAgent.match(/Chrome\/(\d+)/); 7568 if (match) version = +match[1]; 7569 } 7570} 7571 7572module.exports = version; 7573 7574 7575/***/ }), 7576
vendor: 465 bytes, lines 7577-7596
7577/***/ "./node_modules/core-js/internals/enum-bug-keys.js": 7578/*!*********************************************************!*\ 7579 !*** ./node_modules/core-js/internals/enum-bug-keys.js ***! 7580 \*********************************************************/ 7581/***/ (function(module) { 7582 7583// IE8- don't enum bug keys 7584module.exports = [ 7585 'constructor', 7586 'hasOwnProperty', 7587 'isPrototypeOf', 7588 'propertyIsEnumerable', 7589 'toLocaleString', 7590 'toString', 7591 'valueOf' 7592]; 7593 7594 7595/***/ }), 7596
vendor: 3,421 bytes, lines 7597-7661
7597/***/ "./node_modules/core-js/internals/export.js": 7598/*!**************************************************!*\ 7599 !*** ./node_modules/core-js/internals/export.js ***! 7600 \**************************************************/ 7601/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7602 7603var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 7604var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f); 7605var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 7606var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 7607var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js"); 7608var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "./node_modules/core-js/internals/copy-constructor-properties.js"); 7609var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js"); 7610 7611/* 7612 options.target - name of the target object 7613 options.global - target is the global object 7614 options.stat - export as static methods of target 7615 options.proto - export as prototype methods of target 7616 options.real - real prototype method for the `pure` version 7617 options.forced - export even if the native feature is available 7618 options.bind - bind methods to the target, required for the `pure` version 7619 options.wrap - wrap constructors to preventing global pollution, required for the `pure` version 7620 options.unsafe - use the simple assignment of property instead of delete + defineProperty 7621 options.sham - add a flag to not completely full polyfills 7622 options.enumerable - export as enumerable property 7623 options.noTargetGet - prevent calling a getter on target 7624 options.name - the .name of the function if it does not match the key 7625*/ 7626module.exports = function (options, source) { 7627 var TARGET = options.target; 7628 var GLOBAL = options.global; 7629 var STATIC = options.stat; 7630 var FORCED, target, key, targetProperty, sourceProperty, descriptor; 7631 if (GLOBAL) { 7632 target = global; 7633 } else if (STATIC) { 7634 target = global[TARGET] || setGlobal(TARGET, {}); 7635 } else { 7636 target = (global[TARGET] || {}).prototype; 7637 } 7638 if (target) for (key in source) { 7639 sourceProperty = source[key]; 7640 if (options.noTargetGet) { 7641 descriptor = getOwnPropertyDescriptor(target, key); 7642 targetProperty = descriptor && descriptor.value; 7643 } else targetProperty = target[key]; 7644 FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); 7645 // contained in target 7646 if (!FORCED && targetProperty !== undefined) { 7647 if (typeof sourceProperty == typeof targetProperty) continue; 7648 copyConstructorProperties(sourceProperty, targetProperty); 7649 } 7650 // add a flag to not completely full polyfills 7651 if (options.sham || (targetProperty && targetProperty.sham)) { 7652 createNonEnumerableProperty(sourceProperty, 'sham', true); 7653 } 7654 // extend global 7655 redefine(target, key, sourceProperty, options); 7656 } 7657}; 7658 7659 7660/***/ }), 7661
vendor: 363 bytes, lines 7662-7678
7662/***/ "./node_modules/core-js/internals/fails.js": 7663/*!*************************************************!*\ 7664 !*** ./node_modules/core-js/internals/fails.js ***! 7665 \*************************************************/ 7666/***/ (function(module) { 7667 7668module.exports = function (exec) { 7669 try { 7670 return !!exec(); 7671 } catch (error) { 7672 return true; 7673 } 7674}; 7675 7676 7677/***/ }), 7678
vendor: 3,668 bytes, lines 7679-7763
7679/***/ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js": 7680/*!******************************************************************************!*\ 7681 !*** ./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js ***! 7682 \******************************************************************************/ 7683/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7684 7685"use strict"; 7686 7687// TODO: Remove from `core-js@4` since it's moved to entry points 7688__webpack_require__(/*! ../modules/es.regexp.exec */ "./node_modules/core-js/modules/es.regexp.exec.js"); 7689var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 7690var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 7691var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js"); 7692var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 7693var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 7694var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 7695 7696var SPECIES = wellKnownSymbol('species'); 7697var RegExpPrototype = RegExp.prototype; 7698 7699module.exports = function (KEY, exec, FORCED, SHAM) { 7700 var SYMBOL = wellKnownSymbol(KEY); 7701 7702 var DELEGATES_TO_SYMBOL = !fails(function () { 7703 // String methods call symbol-named RegEp methods 7704 var O = {}; 7705 O[SYMBOL] = function () { return 7; }; 7706 return ''[KEY](O) != 7; 7707 }); 7708 7709 var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { 7710 // Symbol-named RegExp methods call .exec 7711 var execCalled = false; 7712 var re = /a/; 7713 7714 if (KEY === 'split') { 7715 // We can't use real regex here since it causes deoptimization 7716 // and serious performance degradation in V8 7717 // https://github.com/zloirock/core-js/issues/306 7718 re = {}; 7719 // RegExp[@@split] doesn't call the regex's exec method, but first creates 7720 // a new one. We need to return the patched regex when creating the new one. 7721 re.constructor = {}; 7722 re.constructor[SPECIES] = function () { return re; }; 7723 re.flags = ''; 7724 re[SYMBOL] = /./[SYMBOL]; 7725 } 7726 7727 re.exec = function () { execCalled = true; return null; }; 7728 7729 re[SYMBOL](''); 7730 return !execCalled; 7731 }); 7732 7733 if ( 7734 !DELEGATES_TO_SYMBOL || 7735 !DELEGATES_TO_EXEC || 7736 FORCED 7737 ) { 7738 var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]); 7739 var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { 7740 var uncurriedNativeMethod = uncurryThis(nativeMethod); 7741 var $exec = regexp.exec; 7742 if ($exec === regexpExec || $exec === RegExpPrototype.exec) { 7743 if (DELEGATES_TO_SYMBOL && !forceStringMethod) { 7744 // The native String method already delegates to @@method (this 7745 // polyfilled function), leasing to infinite recursion. 7746 // We avoid it by directly calling the native @@method method. 7747 return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) }; 7748 } 7749 return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) }; 7750 } 7751 return { done: false }; 7752 }); 7753 7754 redefine(String.prototype, KEY, methods[0]); 7755 redefine(RegExpPrototype, SYMBOL, methods[1]); 7756 } 7757 7758 if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true); 7759}; 7760 7761 7762/***/ }), 7763
vendor: 641 bytes, lines 7764-7782
7764/***/ "./node_modules/core-js/internals/function-apply.js": 7765/*!**********************************************************!*\ 7766 !*** ./node_modules/core-js/internals/function-apply.js ***! 7767 \**********************************************************/ 7768/***/ (function(module) { 7769 7770var FunctionPrototype = Function.prototype; 7771var apply = FunctionPrototype.apply; 7772var bind = FunctionPrototype.bind; 7773var call = FunctionPrototype.call; 7774 7775// eslint-disable-next-line es/no-reflect -- safe 7776module.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () { 7777 return call.apply(apply, arguments); 7778}); 7779 7780 7781/***/ }), 7782
vendor: 895 bytes, lines 7783-7804
7783/***/ "./node_modules/core-js/internals/function-bind-context.js": 7784/*!*****************************************************************!*\ 7785 !*** ./node_modules/core-js/internals/function-bind-context.js ***! 7786 \*****************************************************************/ 7787/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7788 7789var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 7790var aCallable = __webpack_require__(/*! ../internals/a-callable */ "./node_modules/core-js/internals/a-callable.js"); 7791 7792var bind = uncurryThis(uncurryThis.bind); 7793 7794// optional / simple context binding 7795module.exports = function (fn, that) { 7796 aCallable(fn); 7797 return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) { 7798 return fn.apply(that, arguments); 7799 }; 7800}; 7801 7802 7803/***/ }), 7804
vendor: 426 bytes, lines 7805-7819
7805/***/ "./node_modules/core-js/internals/function-call.js": 7806/*!*********************************************************!*\ 7807 !*** ./node_modules/core-js/internals/function-call.js ***! 7808 \*********************************************************/ 7809/***/ (function(module) { 7810 7811var call = Function.prototype.call; 7812 7813module.exports = call.bind ? call.bind(call) : function () { 7814 return call.apply(call, arguments); 7815}; 7816 7817 7818/***/ }), 7819
vendor: 1,184 bytes, lines 7820-7846
7820/***/ "./node_modules/core-js/internals/function-name.js": 7821/*!*********************************************************!*\ 7822 !*** ./node_modules/core-js/internals/function-name.js ***! 7823 \*********************************************************/ 7824/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7825 7826var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 7827var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 7828 7829var FunctionPrototype = Function.prototype; 7830// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe 7831var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; 7832 7833var EXISTS = hasOwn(FunctionPrototype, 'name'); 7834// additional protection from minified / mangled / dropped function names 7835var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; 7836var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); 7837 7838module.exports = { 7839 EXISTS: EXISTS, 7840 PROPER: PROPER, 7841 CONFIGURABLE: CONFIGURABLE 7842}; 7843 7844 7845/***/ }), 7846
vendor: 644 bytes, lines 7847-7868
7847/***/ "./node_modules/core-js/internals/function-uncurry-this.js": 7848/*!*****************************************************************!*\ 7849 !*** ./node_modules/core-js/internals/function-uncurry-this.js ***! 7850 \*****************************************************************/ 7851/***/ (function(module) { 7852 7853var FunctionPrototype = Function.prototype; 7854var bind = FunctionPrototype.bind; 7855var call = FunctionPrototype.call; 7856var callBind = bind && bind.bind(call); 7857 7858module.exports = bind ? function (fn) { 7859 return fn && callBind(call, fn); 7860} : function (fn) { 7861 return fn && function () { 7862 return call.apply(fn, arguments); 7863 }; 7864}; 7865 7866 7867/***/ }), 7868
vendor: 817 bytes, lines 7869-7888
7869/***/ "./node_modules/core-js/internals/get-built-in.js": 7870/*!********************************************************!*\ 7871 !*** ./node_modules/core-js/internals/get-built-in.js ***! 7872 \********************************************************/ 7873/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7874 7875var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 7876var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 7877 7878var aFunction = function (argument) { 7879 return isCallable(argument) ? argument : undefined; 7880}; 7881 7882module.exports = function (namespace, method) { 7883 return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; 7884}; 7885 7886 7887/***/ }), 7888
vendor: 1,042 bytes, lines 7889-7910
7889/***/ "./node_modules/core-js/internals/get-iterator-method.js": 7890/*!***************************************************************!*\ 7891 !*** ./node_modules/core-js/internals/get-iterator-method.js ***! 7892 \***************************************************************/ 7893/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7894 7895var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js"); 7896var getMethod = __webpack_require__(/*! ../internals/get-method */ "./node_modules/core-js/internals/get-method.js"); 7897var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); 7898var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 7899 7900var ITERATOR = wellKnownSymbol('iterator'); 7901 7902module.exports = function (it) { 7903 if (it != undefined) return getMethod(it, ITERATOR) 7904 || getMethod(it, '@@iterator') 7905 || Iterators[classof(it)]; 7906}; 7907 7908 7909/***/ }), 7910
vendor: 1,388 bytes, lines 7911-7934
7911/***/ "./node_modules/core-js/internals/get-iterator.js": 7912/*!********************************************************!*\ 7913 !*** ./node_modules/core-js/internals/get-iterator.js ***! 7914 \********************************************************/ 7915/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7916 7917var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 7918var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 7919var aCallable = __webpack_require__(/*! ../internals/a-callable */ "./node_modules/core-js/internals/a-callable.js"); 7920var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 7921var tryToString = __webpack_require__(/*! ../internals/try-to-string */ "./node_modules/core-js/internals/try-to-string.js"); 7922var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ "./node_modules/core-js/internals/get-iterator-method.js"); 7923 7924var TypeError = global.TypeError; 7925 7926module.exports = function (argument, usingIterator) { 7927 var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; 7928 if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument)); 7929 throw TypeError(tryToString(argument) + ' is not iterable'); 7930}; 7931 7932 7933/***/ }), 7934
vendor: 627 bytes, lines 7935-7952
7935/***/ "./node_modules/core-js/internals/get-method.js": 7936/*!******************************************************!*\ 7937 !*** ./node_modules/core-js/internals/get-method.js ***! 7938 \******************************************************/ 7939/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7940 7941var aCallable = __webpack_require__(/*! ../internals/a-callable */ "./node_modules/core-js/internals/a-callable.js"); 7942 7943// `GetMethod` abstract operation 7944// https://tc39.es/ecma262/#sec-getmethod 7945module.exports = function (V, P) { 7946 var func = V[P]; 7947 return func == null ? undefined : aCallable(func); 7948}; 7949 7950 7951/***/ }), 7952
vendor: 2,055 bytes, lines 7953-8006
7953/***/ "./node_modules/core-js/internals/get-substitution.js": 7954/*!************************************************************!*\ 7955 !*** ./node_modules/core-js/internals/get-substitution.js ***! 7956 \************************************************************/ 7957/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7958 7959var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 7960var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); 7961 7962var floor = Math.floor; 7963var charAt = uncurryThis(''.charAt); 7964var replace = uncurryThis(''.replace); 7965var stringSlice = uncurryThis(''.slice); 7966var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; 7967var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; 7968 7969// `GetSubstitution` abstract operation 7970// https://tc39.es/ecma262/#sec-getsubstitution 7971module.exports = function (matched, str, position, captures, namedCaptures, replacement) { 7972 var tailPos = position + matched.length; 7973 var m = captures.length; 7974 var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; 7975 if (namedCaptures !== undefined) { 7976 namedCaptures = toObject(namedCaptures); 7977 symbols = SUBSTITUTION_SYMBOLS; 7978 } 7979 return replace(replacement, symbols, function (match, ch) { 7980 var capture; 7981 switch (charAt(ch, 0)) { 7982 case '$': return '$'; 7983 case '&': return matched; 7984 case '`': return stringSlice(str, 0, position); 7985 case "'": return stringSlice(str, tailPos); 7986 case '<': 7987 capture = namedCaptures[stringSlice(ch, 1, -1)]; 7988 break; 7989 default: // \d\d? 7990 var n = +ch; 7991 if (n === 0) return match; 7992 if (n > m) { 7993 var f = floor(n / 10); 7994 if (f === 0) return match; 7995 if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1); 7996 return match; 7997 } 7998 capture = captures[n - 1]; 7999 } 8000 return capture === undefined ? '' : capture; 8001 }); 8002}; 8003 8004 8005/***/ }), 8006
vendor: 926 bytes, lines 8007-8030
8007/***/ "./node_modules/core-js/internals/global.js": 8008/*!**************************************************!*\ 8009 !*** ./node_modules/core-js/internals/global.js ***! 8010 \**************************************************/ 8011/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8012 8013var check = function (it) { 8014 return it && it.Math == Math && it; 8015}; 8016 8017// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 8018module.exports = 8019 // eslint-disable-next-line es/no-global-this -- safe 8020 check(typeof globalThis == 'object' && globalThis) || 8021 check(typeof window == 'object' && window) || 8022 // eslint-disable-next-line no-restricted-globals -- safe 8023 check(typeof self == 'object' && self) || 8024 check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) || 8025 // eslint-disable-next-line no-new-func -- fallback 8026 (function () { return this; })() || Function('return this')(); 8027 8028 8029/***/ }), 8030
vendor: 852 bytes, lines 8031-8050
8031/***/ "./node_modules/core-js/internals/has-own-property.js": 8032/*!************************************************************!*\ 8033 !*** ./node_modules/core-js/internals/has-own-property.js ***! 8034 \************************************************************/ 8035/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8036 8037var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 8038var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); 8039 8040var hasOwnProperty = uncurryThis({}.hasOwnProperty); 8041 8042// `HasOwnProperty` abstract operation 8043// https://tc39.es/ecma262/#sec-hasownproperty 8044module.exports = Object.hasOwn || function hasOwn(it, key) { 8045 return hasOwnProperty(toObject(it), key); 8046}; 8047 8048 8049/***/ }), 8050
vendor: 300 bytes, lines 8051-8061
8051/***/ "./node_modules/core-js/internals/hidden-keys.js": 8052/*!*******************************************************!*\ 8053 !*** ./node_modules/core-js/internals/hidden-keys.js ***! 8054 \*******************************************************/ 8055/***/ (function(module) { 8056 8057module.exports = {}; 8058 8059 8060/***/ }), 8061
vendor: 638 bytes, lines 8062-8079
8062/***/ "./node_modules/core-js/internals/host-report-errors.js": 8063/*!**************************************************************!*\ 8064 !*** ./node_modules/core-js/internals/host-report-errors.js ***! 8065 \**************************************************************/ 8066/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8067 8068var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 8069 8070module.exports = function (a, b) { 8071 var console = global.console; 8072 if (console && console.error) { 8073 arguments.length == 1 ? console.error(a) : console.error(a, b); 8074 } 8075}; 8076 8077 8078/***/ }), 8079
vendor: 482 bytes, lines 8080-8092
8080/***/ "./node_modules/core-js/internals/html.js": 8081/*!************************************************!*\ 8082 !*** ./node_modules/core-js/internals/html.js ***! 8083 \************************************************/ 8084/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8085 8086var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 8087 8088module.exports = getBuiltIn('document', 'documentElement'); 8089 8090 8091/***/ }), 8092
vendor: 1,005 bytes, lines 8093-8113
8093/***/ "./node_modules/core-js/internals/ie8-dom-define.js": 8094/*!**********************************************************!*\ 8095 !*** ./node_modules/core-js/internals/ie8-dom-define.js ***! 8096 \**********************************************************/ 8097/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8098 8099var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 8100var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 8101var createElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js"); 8102 8103// Thank's IE8 for his funny defineProperty 8104module.exports = !DESCRIPTORS && !fails(function () { 8105 // eslint-disable-next-line es/no-object-defineproperty -- required for testing 8106 return Object.defineProperty(createElement('div'), 'a', { 8107 get: function () { return 7; } 8108 }).a != 7; 8109}); 8110 8111 8112/***/ }), 8113
vendor: 1,262 bytes, lines 8114-8139
8114/***/ "./node_modules/core-js/internals/indexed-object.js": 8115/*!**********************************************************!*\ 8116 !*** ./node_modules/core-js/internals/indexed-object.js ***! 8117 \**********************************************************/ 8118/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8119 8120var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 8121var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 8122var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 8123var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); 8124 8125var Object = global.Object; 8126var split = uncurryThis(''.split); 8127 8128// fallback for non-array-like ES3 and non-enumerable old V8 strings 8129module.exports = fails(function () { 8130 // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 8131 // eslint-disable-next-line no-prototype-builtins -- safe 8132 return !Object('z').propertyIsEnumerable(0); 8133}) ? function (it) { 8134 return classof(it) == 'String' ? split(it, '') : Object(it); 8135} : Object; 8136 8137 8138/***/ }), 8139
vendor: 1,305 bytes, lines 8140-8167
8140/***/ "./node_modules/core-js/internals/inherit-if-required.js": 8141/*!***************************************************************!*\ 8142 !*** ./node_modules/core-js/internals/inherit-if-required.js ***! 8143 \***************************************************************/ 8144/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8145 8146var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 8147var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 8148var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "./node_modules/core-js/internals/object-set-prototype-of.js"); 8149 8150// makes subclassing work correct for wrapped built-ins 8151module.exports = function ($this, dummy, Wrapper) { 8152 var NewTarget, NewTargetPrototype; 8153 if ( 8154 // it can work only with native `setPrototypeOf` 8155 setPrototypeOf && 8156 // we haven't completely correct pre-ES6 way for getting `new.target`, so use this 8157 isCallable(NewTarget = dummy.constructor) && 8158 NewTarget !== Wrapper && 8159 isObject(NewTargetPrototype = NewTarget.prototype) && 8160 NewTargetPrototype !== Wrapper.prototype 8161 ) setPrototypeOf($this, NewTargetPrototype); 8162 return $this; 8163}; 8164 8165 8166/***/ }), 8167
vendor: 1,015 bytes, lines 8168-8191
8168/***/ "./node_modules/core-js/internals/inspect-source.js": 8169/*!**********************************************************!*\ 8170 !*** ./node_modules/core-js/internals/inspect-source.js ***! 8171 \**********************************************************/ 8172/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8173 8174var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 8175var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 8176var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js"); 8177 8178var functionToString = uncurryThis(Function.toString); 8179 8180// this helper broken in `[email protected]`, so we can't use `shared` helper 8181if (!isCallable(store.inspectSource)) { 8182 store.inspectSource = function (it) { 8183 return functionToString(it); 8184 }; 8185} 8186 8187module.exports = store.inspectSource; 8188 8189 8190/***/ }), 8191
vendor: 3,011 bytes, lines 8192-8270
8192/***/ "./node_modules/core-js/internals/internal-state.js": 8193/*!**********************************************************!*\ 8194 !*** ./node_modules/core-js/internals/internal-state.js ***! 8195 \**********************************************************/ 8196/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8197 8198var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ "./node_modules/core-js/internals/native-weak-map.js"); 8199var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 8200var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 8201var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 8202var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 8203var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 8204var shared = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js"); 8205var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js"); 8206var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); 8207 8208var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; 8209var TypeError = global.TypeError; 8210var WeakMap = global.WeakMap; 8211var set, get, has; 8212 8213var enforce = function (it) { 8214 return has(it) ? get(it) : set(it, {}); 8215}; 8216 8217var getterFor = function (TYPE) { 8218 return function (it) { 8219 var state; 8220 if (!isObject(it) || (state = get(it)).type !== TYPE) { 8221 throw TypeError('Incompatible receiver, ' + TYPE + ' required'); 8222 } return state; 8223 }; 8224}; 8225 8226if (NATIVE_WEAK_MAP || shared.state) { 8227 var store = shared.state || (shared.state = new WeakMap()); 8228 var wmget = uncurryThis(store.get); 8229 var wmhas = uncurryThis(store.has); 8230 var wmset = uncurryThis(store.set); 8231 set = function (it, metadata) { 8232 if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); 8233 metadata.facade = it; 8234 wmset(store, it, metadata); 8235 return metadata; 8236 }; 8237 get = function (it) { 8238 return wmget(store, it) || {}; 8239 }; 8240 has = function (it) { 8241 return wmhas(store, it); 8242 }; 8243} else { 8244 var STATE = sharedKey('state'); 8245 hiddenKeys[STATE] = true; 8246 set = function (it, metadata) { 8247 if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); 8248 metadata.facade = it; 8249 createNonEnumerableProperty(it, STATE, metadata); 8250 return metadata; 8251 }; 8252 get = function (it) { 8253 return hasOwn(it, STATE) ? it[STATE] : {}; 8254 }; 8255 has = function (it) { 8256 return hasOwn(it, STATE); 8257 }; 8258} 8259 8260module.exports = { 8261 set: set, 8262 get: get, 8263 has: has, 8264 enforce: enforce, 8265 getterFor: getterFor 8266}; 8267 8268 8269/***/ }), 8270
vendor: 877 bytes, lines 8271-8290
8271/***/ "./node_modules/core-js/internals/is-array-iterator-method.js": 8272/*!********************************************************************!*\ 8273 !*** ./node_modules/core-js/internals/is-array-iterator-method.js ***! 8274 \********************************************************************/ 8275/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8276 8277var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 8278var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); 8279 8280var ITERATOR = wellKnownSymbol('iterator'); 8281var ArrayPrototype = Array.prototype; 8282 8283// check on default Array iterator 8284module.exports = function (it) { 8285 return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); 8286}; 8287 8288 8289/***/ }), 8290
vendor: 666 bytes, lines 8291-8308
8291/***/ "./node_modules/core-js/internals/is-array.js": 8292/*!****************************************************!*\ 8293 !*** ./node_modules/core-js/internals/is-array.js ***! 8294 \****************************************************/ 8295/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8296 8297var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); 8298 8299// `IsArray` abstract operation 8300// https://tc39.es/ecma262/#sec-isarray 8301// eslint-disable-next-line es/no-array-isarray -- safe 8302module.exports = Array.isArray || function isArray(argument) { 8303 return classof(argument) == 'Array'; 8304}; 8305 8306 8307/***/ }), 8308
vendor: 439 bytes, lines 8309-8323
8309/***/ "./node_modules/core-js/internals/is-callable.js": 8310/*!*******************************************************!*\ 8311 !*** ./node_modules/core-js/internals/is-callable.js ***! 8312 \*******************************************************/ 8313/***/ (function(module) { 8314 8315// `IsCallable` abstract operation 8316// https://tc39.es/ecma262/#sec-iscallable 8317module.exports = function (argument) { 8318 return typeof argument == 'function'; 8319}; 8320 8321 8322/***/ }), 8323
vendor: 2,545 bytes, lines 8324-8385
8324/***/ "./node_modules/core-js/internals/is-constructor.js": 8325/*!**********************************************************!*\ 8326 !*** ./node_modules/core-js/internals/is-constructor.js ***! 8327 \**********************************************************/ 8328/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8329 8330var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 8331var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 8332var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 8333var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js"); 8334var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 8335var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js"); 8336 8337var noop = function () { /* empty */ }; 8338var empty = []; 8339var construct = getBuiltIn('Reflect', 'construct'); 8340var constructorRegExp = /^\s*(?:class|function)\b/; 8341var exec = uncurryThis(constructorRegExp.exec); 8342var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); 8343 8344var isConstructorModern = function isConstructor(argument) { 8345 if (!isCallable(argument)) return false; 8346 try { 8347 construct(noop, empty, argument); 8348 return true; 8349 } catch (error) { 8350 return false; 8351 } 8352}; 8353 8354var isConstructorLegacy = function isConstructor(argument) { 8355 if (!isCallable(argument)) return false; 8356 switch (classof(argument)) { 8357 case 'AsyncFunction': 8358 case 'GeneratorFunction': 8359 case 'AsyncGeneratorFunction': return false; 8360 } 8361 try { 8362 // we can't check .prototype since constructors produced by .bind haven't it 8363 // `Function#toString` throws on some built-it function in some legacy engines 8364 // (for example, `DOMQuad` and similar in FF41-) 8365 return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); 8366 } catch (error) { 8367 return true; 8368 } 8369}; 8370 8371isConstructorLegacy.sham = true; 8372 8373// `IsConstructor` abstract operation 8374// https://tc39.es/ecma262/#sec-isconstructor 8375module.exports = !construct || fails(function () { 8376 var called; 8377 return isConstructorModern(isConstructorModern.call) 8378 || !isConstructorModern(Object) 8379 || !isConstructorModern(function () { called = true; }) 8380 || called; 8381}) ? isConstructorLegacy : isConstructorModern; 8382 8383 8384/***/ }), 8385
vendor: 1,064 bytes, lines 8386-8417
8386/***/ "./node_modules/core-js/internals/is-forced.js": 8387/*!*****************************************************!*\ 8388 !*** ./node_modules/core-js/internals/is-forced.js ***! 8389 \*****************************************************/ 8390/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8391 8392var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 8393var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 8394 8395var replacement = /#|\.prototype\./; 8396 8397var isForced = function (feature, detection) { 8398 var value = data[normalize(feature)]; 8399 return value == POLYFILL ? true 8400 : value == NATIVE ? false 8401 : isCallable(detection) ? fails(detection) 8402 : !!detection; 8403}; 8404 8405var normalize = isForced.normalize = function (string) { 8406 return String(string).replace(replacement, '.').toLowerCase(); 8407}; 8408 8409var data = isForced.data = {}; 8410var NATIVE = isForced.NATIVE = 'N'; 8411var POLYFILL = isForced.POLYFILL = 'P'; 8412 8413module.exports = isForced; 8414 8415 8416/***/ }), 8417
vendor: 539 bytes, lines 8418-8432
8418/***/ "./node_modules/core-js/internals/is-object.js": 8419/*!*****************************************************!*\ 8420 !*** ./node_modules/core-js/internals/is-object.js ***! 8421 \*****************************************************/ 8422/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8423 8424var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 8425 8426module.exports = function (it) { 8427 return typeof it == 'object' ? it !== null : isCallable(it); 8428}; 8429 8430 8431/***/ }), 8432
vendor: 287 bytes, lines 8433-8443
8433/***/ "./node_modules/core-js/internals/is-pure.js": 8434/*!***************************************************!*\ 8435 !*** ./node_modules/core-js/internals/is-pure.js ***! 8436 \***************************************************/ 8437/***/ (function(module) { 8438 8439module.exports = false; 8440 8441 8442/***/ }), 8443
vendor: 959 bytes, lines 8444-8465
8444/***/ "./node_modules/core-js/internals/is-regexp.js": 8445/*!*****************************************************!*\ 8446 !*** ./node_modules/core-js/internals/is-regexp.js ***! 8447 \*****************************************************/ 8448/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8449 8450var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 8451var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); 8452var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 8453 8454var MATCH = wellKnownSymbol('match'); 8455 8456// `IsRegExp` abstract operation 8457// https://tc39.es/ecma262/#sec-isregexp 8458module.exports = function (it) { 8459 var isRegExp; 8460 return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); 8461}; 8462 8463 8464/***/ }), 8465
vendor: 1,209 bytes, lines 8466-8489
8466/***/ "./node_modules/core-js/internals/is-symbol.js": 8467/*!*****************************************************!*\ 8468 !*** ./node_modules/core-js/internals/is-symbol.js ***! 8469 \*****************************************************/ 8470/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8471 8472var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 8473var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 8474var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 8475var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "./node_modules/core-js/internals/object-is-prototype-of.js"); 8476var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "./node_modules/core-js/internals/use-symbol-as-uid.js"); 8477 8478var Object = global.Object; 8479 8480module.exports = USE_SYMBOL_AS_UID ? function (it) { 8481 return typeof it == 'symbol'; 8482} : function (it) { 8483 var $Symbol = getBuiltIn('Symbol'); 8484 return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it)); 8485}; 8486 8487 8488/***/ }), 8489
vendor: 3,553 bytes, lines 8490-8565
8490/***/ "./node_modules/core-js/internals/iterate.js": 8491/*!***************************************************!*\ 8492 !*** ./node_modules/core-js/internals/iterate.js ***! 8493 \***************************************************/ 8494/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8495 8496var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 8497var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js"); 8498var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 8499var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 8500var tryToString = __webpack_require__(/*! ../internals/try-to-string */ "./node_modules/core-js/internals/try-to-string.js"); 8501var isArrayIteratorMethod = __webpack_require__(/*! ../internals/is-array-iterator-method */ "./node_modules/core-js/internals/is-array-iterator-method.js"); 8502var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "./node_modules/core-js/internals/length-of-array-like.js"); 8503var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "./node_modules/core-js/internals/object-is-prototype-of.js"); 8504var getIterator = __webpack_require__(/*! ../internals/get-iterator */ "./node_modules/core-js/internals/get-iterator.js"); 8505var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ "./node_modules/core-js/internals/get-iterator-method.js"); 8506var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "./node_modules/core-js/internals/iterator-close.js"); 8507 8508var TypeError = global.TypeError; 8509 8510var Result = function (stopped, result) { 8511 this.stopped = stopped; 8512 this.result = result; 8513}; 8514 8515var ResultPrototype = Result.prototype; 8516 8517module.exports = function (iterable, unboundFunction, options) { 8518 var that = options && options.that; 8519 var AS_ENTRIES = !!(options && options.AS_ENTRIES); 8520 var IS_ITERATOR = !!(options && options.IS_ITERATOR); 8521 var INTERRUPTED = !!(options && options.INTERRUPTED); 8522 var fn = bind(unboundFunction, that); 8523 var iterator, iterFn, index, length, result, next, step; 8524 8525 var stop = function (condition) { 8526 if (iterator) iteratorClose(iterator, 'normal', condition); 8527 return new Result(true, condition); 8528 }; 8529 8530 var callFn = function (value) { 8531 if (AS_ENTRIES) { 8532 anObject(value); 8533 return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); 8534 } return INTERRUPTED ? fn(value, stop) : fn(value); 8535 }; 8536 8537 if (IS_ITERATOR) { 8538 iterator = iterable; 8539 } else { 8540 iterFn = getIteratorMethod(iterable); 8541 if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable'); 8542 // optimisation for array iterators 8543 if (isArrayIteratorMethod(iterFn)) { 8544 for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { 8545 result = callFn(iterable[index]); 8546 if (result && isPrototypeOf(ResultPrototype, result)) return result; 8547 } return new Result(false); 8548 } 8549 iterator = getIterator(iterable, iterFn); 8550 } 8551 8552 next = iterator.next; 8553 while (!(step = call(next, iterator)).done) { 8554 try { 8555 result = callFn(step.value); 8556 } catch (error) { 8557 iteratorClose(iterator, 'throw', error); 8558 } 8559 if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; 8560 } return new Result(false); 8561}; 8562 8563 8564/***/ }), 8565
vendor: 1,181 bytes, lines 8566-8598
8566/***/ "./node_modules/core-js/internals/iterator-close.js": 8567/*!**********************************************************!*\ 8568 !*** ./node_modules/core-js/internals/iterator-close.js ***! 8569 \**********************************************************/ 8570/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8571 8572var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 8573var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 8574var getMethod = __webpack_require__(/*! ../internals/get-method */ "./node_modules/core-js/internals/get-method.js"); 8575 8576module.exports = function (iterator, kind, value) { 8577 var innerResult, innerError; 8578 anObject(iterator); 8579 try { 8580 innerResult = getMethod(iterator, 'return'); 8581 if (!innerResult) { 8582 if (kind === 'throw') throw value; 8583 return value; 8584 } 8585 innerResult = call(innerResult, iterator); 8586 } catch (error) { 8587 innerError = true; 8588 innerResult = error; 8589 } 8590 if (kind === 'throw') throw value; 8591 if (innerError) throw innerResult; 8592 anObject(innerResult); 8593 return value; 8594}; 8595 8596 8597/***/ }), 8598
vendor: 2,550 bytes, lines 8599-8657
8599/***/ "./node_modules/core-js/internals/iterators-core.js": 8600/*!**********************************************************!*\ 8601 !*** ./node_modules/core-js/internals/iterators-core.js ***! 8602 \**********************************************************/ 8603/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8604 8605"use strict"; 8606 8607var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 8608var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 8609var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js"); 8610var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js"); 8611var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 8612var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 8613var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 8614 8615var ITERATOR = wellKnownSymbol('iterator'); 8616var BUGGY_SAFARI_ITERATORS = false; 8617 8618// `%IteratorPrototype%` object 8619// https://tc39.es/ecma262/#sec-%iteratorprototype%-object 8620var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; 8621 8622/* eslint-disable es/no-array-prototype-keys -- safe */ 8623if ([].keys) { 8624 arrayIterator = [].keys(); 8625 // Safari 8 has buggy iterators w/o `next` 8626 if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; 8627 else { 8628 PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); 8629 if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; 8630 } 8631} 8632 8633var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () { 8634 var test = {}; 8635 // FF44- legacy iterators case 8636 return IteratorPrototype[ITERATOR].call(test) !== test; 8637}); 8638 8639if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; 8640else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); 8641 8642// `%IteratorPrototype%[@@iterator]()` method 8643// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator 8644if (!isCallable(IteratorPrototype[ITERATOR])) { 8645 redefine(IteratorPrototype, ITERATOR, function () { 8646 return this; 8647 }); 8648} 8649 8650module.exports = { 8651 IteratorPrototype: IteratorPrototype, 8652 BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS 8653}; 8654 8655 8656/***/ }), 8657
vendor: 292 bytes, lines 8658-8668
8658/***/ "./node_modules/core-js/internals/iterators.js": 8659/*!*****************************************************!*\ 8660 !*** ./node_modules/core-js/internals/iterators.js ***! 8661 \*****************************************************/ 8662/***/ (function(module) { 8663 8664module.exports = {}; 8665 8666 8667/***/ }), 8668
vendor: 638 bytes, lines 8669-8685
8669/***/ "./node_modules/core-js/internals/length-of-array-like.js": 8670/*!****************************************************************!*\ 8671 !*** ./node_modules/core-js/internals/length-of-array-like.js ***! 8672 \****************************************************************/ 8673/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8674 8675var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js"); 8676 8677// `LengthOfArrayLike` abstract operation 8678// https://tc39.es/ecma262/#sec-lengthofarraylike 8679module.exports = function (obj) { 8680 return toLength(obj.length); 8681}; 8682 8683 8684/***/ }), 8685
vendor: 3,829 bytes, lines 8686-8780
8686/***/ "./node_modules/core-js/internals/microtask.js": 8687/*!*****************************************************!*\ 8688 !*** ./node_modules/core-js/internals/microtask.js ***! 8689 \*****************************************************/ 8690/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8691 8692var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 8693var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js"); 8694var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f); 8695var macrotask = (__webpack_require__(/*! ../internals/task */ "./node_modules/core-js/internals/task.js").set); 8696var IS_IOS = __webpack_require__(/*! ../internals/engine-is-ios */ "./node_modules/core-js/internals/engine-is-ios.js"); 8697var IS_IOS_PEBBLE = __webpack_require__(/*! ../internals/engine-is-ios-pebble */ "./node_modules/core-js/internals/engine-is-ios-pebble.js"); 8698var IS_WEBOS_WEBKIT = __webpack_require__(/*! ../internals/engine-is-webos-webkit */ "./node_modules/core-js/internals/engine-is-webos-webkit.js"); 8699var IS_NODE = __webpack_require__(/*! ../internals/engine-is-node */ "./node_modules/core-js/internals/engine-is-node.js"); 8700 8701var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; 8702var document = global.document; 8703var process = global.process; 8704var Promise = global.Promise; 8705// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` 8706var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask'); 8707var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; 8708 8709var flush, head, last, notify, toggle, node, promise, then; 8710 8711// modern engines have queueMicrotask method 8712if (!queueMicrotask) { 8713 flush = function () { 8714 var parent, fn; 8715 if (IS_NODE && (parent = process.domain)) parent.exit(); 8716 while (head) { 8717 fn = head.fn; 8718 head = head.next; 8719 try { 8720 fn(); 8721 } catch (error) { 8722 if (head) notify(); 8723 else last = undefined; 8724 throw error; 8725 } 8726 } last = undefined; 8727 if (parent) parent.enter(); 8728 }; 8729 8730 // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 8731 // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 8732 if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) { 8733 toggle = true; 8734 node = document.createTextNode(''); 8735 new MutationObserver(flush).observe(node, { characterData: true }); 8736 notify = function () { 8737 node.data = toggle = !toggle; 8738 }; 8739 // environments with maybe non-completely correct, but existent Promise 8740 } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) { 8741 // Promise.resolve without an argument throws an error in LG WebOS 2 8742 promise = Promise.resolve(undefined); 8743 // workaround of WebKit ~ iOS Safari 10.1 bug 8744 promise.constructor = Promise; 8745 then = bind(promise.then, promise); 8746 notify = function () { 8747 then(flush); 8748 }; 8749 // Node.js without promises 8750 } else if (IS_NODE) { 8751 notify = function () { 8752 process.nextTick(flush); 8753 }; 8754 // for other environments - macrotask based on: 8755 // - setImmediate 8756 // - MessageChannel 8757 // - window.postMessag 8758 // - onreadystatechange 8759 // - setTimeout 8760 } else { 8761 // strange IE + webpack dev server bug - use .bind(global) 8762 macrotask = bind(macrotask, global); 8763 notify = function () { 8764 macrotask(flush); 8765 }; 8766 } 8767} 8768 8769module.exports = queueMicrotask || function (fn) { 8770 var task = { fn: fn, next: undefined }; 8771 if (last) last.next = task; 8772 if (!head) { 8773 head = task; 8774 notify(); 8775 } last = task; 8776}; 8777 8778 8779/***/ }), 8780
vendor: 527 bytes, lines 8781-8793
8781/***/ "./node_modules/core-js/internals/native-promise-constructor.js": 8782/*!**********************************************************************!*\ 8783 !*** ./node_modules/core-js/internals/native-promise-constructor.js ***! 8784 \**********************************************************************/ 8785/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8786 8787var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 8788 8789module.exports = global.Promise; 8790 8791 8792/***/ }), 8793
vendor: 1,177 bytes, lines 8794-8816
8794/***/ "./node_modules/core-js/internals/native-symbol.js": 8795/*!*********************************************************!*\ 8796 !*** ./node_modules/core-js/internals/native-symbol.js ***! 8797 \*********************************************************/ 8798/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8799 8800/* eslint-disable es/no-symbol -- required for testing */ 8801var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ "./node_modules/core-js/internals/engine-v8-version.js"); 8802var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 8803 8804// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing 8805module.exports = !!Object.getOwnPropertySymbols && !fails(function () { 8806 var symbol = Symbol(); 8807 // Chrome 38 Symbol has incorrect toString conversion 8808 // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances 8809 return !String(symbol) || !(Object(symbol) instanceof Symbol) || 8810 // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances 8811 !Symbol.sham && V8_VERSION && V8_VERSION < 41; 8812}); 8813 8814 8815/***/ }), 8816
vendor: 816 bytes, lines 8817-8833
8817/***/ "./node_modules/core-js/internals/native-weak-map.js": 8818/*!***********************************************************!*\ 8819 !*** ./node_modules/core-js/internals/native-weak-map.js ***! 8820 \***********************************************************/ 8821/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8822 8823var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 8824var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 8825var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js"); 8826 8827var WeakMap = global.WeakMap; 8828 8829module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap)); 8830 8831 8832/***/ }), 8833
vendor: 1,021 bytes, lines 8834-8863
8834/***/ "./node_modules/core-js/internals/new-promise-capability.js": 8835/*!******************************************************************!*\ 8836 !*** ./node_modules/core-js/internals/new-promise-capability.js ***! 8837 \******************************************************************/ 8838/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8839 8840"use strict"; 8841 8842var aCallable = __webpack_require__(/*! ../internals/a-callable */ "./node_modules/core-js/internals/a-callable.js"); 8843 8844var PromiseCapability = function (C) { 8845 var resolve, reject; 8846 this.promise = new C(function ($$resolve, $$reject) { 8847 if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); 8848 resolve = $$resolve; 8849 reject = $$reject; 8850 }); 8851 this.resolve = aCallable(resolve); 8852 this.reject = aCallable(reject); 8853}; 8854 8855// `NewPromiseCapability` abstract operation 8856// https://tc39.es/ecma262/#sec-newpromisecapability 8857module.exports.f = function (C) { 8858 return new PromiseCapability(C); 8859}; 8860 8861 8862/***/ }), 8863
vendor: 1,705 bytes, lines 8864-8895
8864/***/ "./node_modules/core-js/internals/number-parse-float.js": 8865/*!**************************************************************!*\ 8866 !*** ./node_modules/core-js/internals/number-parse-float.js ***! 8867 \**************************************************************/ 8868/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8869 8870var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 8871var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 8872var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 8873var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js"); 8874var trim = (__webpack_require__(/*! ../internals/string-trim */ "./node_modules/core-js/internals/string-trim.js").trim); 8875var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js"); 8876 8877var charAt = uncurryThis(''.charAt); 8878var n$ParseFloat = global.parseFloat; 8879var Symbol = global.Symbol; 8880var ITERATOR = Symbol && Symbol.iterator; 8881var FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity 8882 // MS Edge 18- broken with boxed symbols 8883 || (ITERATOR && !fails(function () { n$ParseFloat(Object(ITERATOR)); })); 8884 8885// `parseFloat` method 8886// https://tc39.es/ecma262/#sec-parsefloat-string 8887module.exports = FORCED ? function parseFloat(string) { 8888 var trimmedString = trim(toString(string)); 8889 var result = n$ParseFloat(trimmedString); 8890 return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result; 8891} : n$ParseFloat; 8892 8893 8894/***/ }), 8895
vendor: 1,678 bytes, lines 8896-8927
8896/***/ "./node_modules/core-js/internals/number-parse-int.js": 8897/*!************************************************************!*\ 8898 !*** ./node_modules/core-js/internals/number-parse-int.js ***! 8899 \************************************************************/ 8900/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8901 8902var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 8903var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 8904var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 8905var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js"); 8906var trim = (__webpack_require__(/*! ../internals/string-trim */ "./node_modules/core-js/internals/string-trim.js").trim); 8907var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js"); 8908 8909var $parseInt = global.parseInt; 8910var Symbol = global.Symbol; 8911var ITERATOR = Symbol && Symbol.iterator; 8912var hex = /^[+-]?0x/i; 8913var exec = uncurryThis(hex.exec); 8914var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22 8915 // MS Edge 18- broken with boxed symbols 8916 || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); })); 8917 8918// `parseInt` method 8919// https://tc39.es/ecma262/#sec-parseint-string-radix 8920module.exports = FORCED ? function parseInt(string, radix) { 8921 var S = trim(toString(string)); 8922 return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10)); 8923} : $parseInt; 8924 8925 8926/***/ }), 8927
vendor: 3,343 bytes, lines 8928-8995
8928/***/ "./node_modules/core-js/internals/object-assign.js": 8929/*!*********************************************************!*\ 8930 !*** ./node_modules/core-js/internals/object-assign.js ***! 8931 \*********************************************************/ 8932/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 8933 8934"use strict"; 8935 8936var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 8937var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 8938var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 8939var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 8940var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js"); 8941var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js"); 8942var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js"); 8943var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); 8944var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js"); 8945 8946// eslint-disable-next-line es/no-object-assign -- safe 8947var $assign = Object.assign; 8948// eslint-disable-next-line es/no-object-defineproperty -- required for testing 8949var defineProperty = Object.defineProperty; 8950var concat = uncurryThis([].concat); 8951 8952// `Object.assign` method 8953// https://tc39.es/ecma262/#sec-object.assign 8954module.exports = !$assign || fails(function () { 8955 // should have correct order of operations (Edge bug) 8956 if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { 8957 enumerable: true, 8958 get: function () { 8959 defineProperty(this, 'b', { 8960 value: 3, 8961 enumerable: false 8962 }); 8963 } 8964 }), { b: 2 })).b !== 1) return true; 8965 // should work with symbols and should have deterministic property order (V8 bug) 8966 var A = {}; 8967 var B = {}; 8968 // eslint-disable-next-line es/no-symbol -- safe 8969 var symbol = Symbol(); 8970 var alphabet = 'abcdefghijklmnopqrst'; 8971 A[symbol] = 7; 8972 alphabet.split('').forEach(function (chr) { B[chr] = chr; }); 8973 return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet; 8974}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` 8975 var T = toObject(target); 8976 var argumentsLength = arguments.length; 8977 var index = 1; 8978 var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; 8979 var propertyIsEnumerable = propertyIsEnumerableModule.f; 8980 while (argumentsLength > index) { 8981 var S = IndexedObject(arguments[index++]); 8982 var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); 8983 var length = keys.length; 8984 var j = 0; 8985 var key; 8986 while (length > j) { 8987 key = keys[j++]; 8988 if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key]; 8989 } 8990 } return T; 8991} : $assign; 8992 8993 8994/***/ }), 8995
vendor: 3,821 bytes, lines 8996-9087
8996/***/ "./node_modules/core-js/internals/object-create.js": 8997/*!*********************************************************!*\ 8998 !*** ./node_modules/core-js/internals/object-create.js ***! 8999 \*********************************************************/ 9000/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9001 9002/* global ActiveXObject -- old IE, WSH */ 9003var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 9004var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ "./node_modules/core-js/internals/object-define-properties.js"); 9005var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js"); 9006var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); 9007var html = __webpack_require__(/*! ../internals/html */ "./node_modules/core-js/internals/html.js"); 9008var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js"); 9009var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js"); 9010 9011var GT = '>'; 9012var LT = '<'; 9013var PROTOTYPE = 'prototype'; 9014var SCRIPT = 'script'; 9015var IE_PROTO = sharedKey('IE_PROTO'); 9016 9017var EmptyConstructor = function () { /* empty */ }; 9018 9019var scriptTag = function (content) { 9020 return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; 9021}; 9022 9023// Create object with fake `null` prototype: use ActiveX Object with cleared prototype 9024var NullProtoObjectViaActiveX = function (activeXDocument) { 9025 activeXDocument.write(scriptTag('')); 9026 activeXDocument.close(); 9027 var temp = activeXDocument.parentWindow.Object; 9028 activeXDocument = null; // avoid memory leak 9029 return temp; 9030}; 9031 9032// Create object with fake `null` prototype: use iframe Object with cleared prototype 9033var NullProtoObjectViaIFrame = function () { 9034 // Thrash, waste and sodomy: IE GC bug 9035 var iframe = documentCreateElement('iframe'); 9036 var JS = 'java' + SCRIPT + ':'; 9037 var iframeDocument; 9038 iframe.style.display = 'none'; 9039 html.appendChild(iframe); 9040 // https://github.com/zloirock/core-js/issues/475 9041 iframe.src = String(JS); 9042 iframeDocument = iframe.contentWindow.document; 9043 iframeDocument.open(); 9044 iframeDocument.write(scriptTag('document.F=Object')); 9045 iframeDocument.close(); 9046 return iframeDocument.F; 9047}; 9048 9049// Check for document.domain and active x support 9050// No need to use active x approach when document.domain is not set 9051// see https://github.com/es-shims/es5-shim/issues/150 9052// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 9053// avoid IE GC bug 9054var activeXDocument; 9055var NullProtoObject = function () { 9056 try { 9057 activeXDocument = new ActiveXObject('htmlfile'); 9058 } catch (error) { /* ignore */ } 9059 NullProtoObject = typeof document != 'undefined' 9060 ? document.domain && activeXDocument 9061 ? NullProtoObjectViaActiveX(activeXDocument) // old IE 9062 : NullProtoObjectViaIFrame() 9063 : NullProtoObjectViaActiveX(activeXDocument); // WSH 9064 var length = enumBugKeys.length; 9065 while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; 9066 return NullProtoObject(); 9067}; 9068 9069hiddenKeys[IE_PROTO] = true; 9070 9071// `Object.create` method 9072// https://tc39.es/ecma262/#sec-object.create 9073module.exports = Object.create || function create(O, Properties) { 9074 var result; 9075 if (O !== null) { 9076 EmptyConstructor[PROTOTYPE] = anObject(O); 9077 result = new EmptyConstructor(); 9078 EmptyConstructor[PROTOTYPE] = null; 9079 // add "__proto__" for Object.getPrototypeOf polyfill 9080 result[IE_PROTO] = O; 9081 } else result = NullProtoObject(); 9082 return Properties === undefined ? result : defineProperties(result, Properties); 9083}; 9084 9085 9086/***/ }), 9087
vendor: 1,537 bytes, lines 9088-9116
9088/***/ "./node_modules/core-js/internals/object-define-properties.js": 9089/*!********************************************************************!*\ 9090 !*** ./node_modules/core-js/internals/object-define-properties.js ***! 9091 \********************************************************************/ 9092/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9093 9094var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 9095var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 9096var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 9097var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 9098var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js"); 9099 9100// `Object.defineProperties` method 9101// https://tc39.es/ecma262/#sec-object.defineproperties 9102// eslint-disable-next-line es/no-object-defineproperties -- safe 9103module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { 9104 anObject(O); 9105 var props = toIndexedObject(Properties); 9106 var keys = objectKeys(Properties); 9107 var length = keys.length; 9108 var index = 0; 9109 var key; 9110 while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); 9111 return O; 9112}; 9113 9114 9115/***/ }), 9116
vendor: 1,632 bytes, lines 9117-9149
9117/***/ "./node_modules/core-js/internals/object-define-property.js": 9118/*!******************************************************************!*\ 9119 !*** ./node_modules/core-js/internals/object-define-property.js ***! 9120 \******************************************************************/ 9121/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 9122 9123var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 9124var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 9125var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js"); 9126var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 9127var toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ "./node_modules/core-js/internals/to-property-key.js"); 9128 9129var TypeError = global.TypeError; 9130// eslint-disable-next-line es/no-object-defineproperty -- safe 9131var $defineProperty = Object.defineProperty; 9132 9133// `Object.defineProperty` method 9134// https://tc39.es/ecma262/#sec-object.defineproperty 9135exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) { 9136 anObject(O); 9137 P = toPropertyKey(P); 9138 anObject(Attributes); 9139 if (IE8_DOM_DEFINE) try { 9140 return $defineProperty(O, P, Attributes); 9141 } catch (error) { /* empty */ } 9142 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); 9143 if ('value' in Attributes) O[P] = Attributes.value; 9144 return O; 9145}; 9146 9147 9148/***/ }), 9149
vendor: 2,131 bytes, lines 9150-9181
9150/***/ "./node_modules/core-js/internals/object-get-own-property-descriptor.js": 9151/*!******************************************************************************!*\ 9152 !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***! 9153 \******************************************************************************/ 9154/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 9155 9156var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 9157var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 9158var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js"); 9159var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); 9160var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 9161var toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ "./node_modules/core-js/internals/to-property-key.js"); 9162var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 9163var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js"); 9164 9165// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe 9166var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 9167 9168// `Object.getOwnPropertyDescriptor` method 9169// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor 9170exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { 9171 O = toIndexedObject(O); 9172 P = toPropertyKey(P); 9173 if (IE8_DOM_DEFINE) try { 9174 return $getOwnPropertyDescriptor(O, P); 9175 } catch (error) { /* empty */ } 9176 if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); 9177}; 9178 9179 9180/***/ }), 9181
vendor: 1,591 bytes, lines 9182-9214
9182/***/ "./node_modules/core-js/internals/object-get-own-property-names-external.js": 9183/*!**********************************************************************************!*\ 9184 !*** ./node_modules/core-js/internals/object-get-own-property-names-external.js ***! 9185 \**********************************************************************************/ 9186/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9187 9188/* eslint-disable es/no-object-getownpropertynames -- safe */ 9189var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); 9190var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 9191var $getOwnPropertyNames = (__webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js").f); 9192var arraySlice = __webpack_require__(/*! ../internals/array-slice-simple */ "./node_modules/core-js/internals/array-slice-simple.js"); 9193 9194var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames 9195 ? Object.getOwnPropertyNames(window) : []; 9196 9197var getWindowNames = function (it) { 9198 try { 9199 return $getOwnPropertyNames(it); 9200 } catch (error) { 9201 return arraySlice(windowNames); 9202 } 9203}; 9204 9205// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window 9206module.exports.f = function getOwnPropertyNames(it) { 9207 return windowNames && classof(it) == 'Window' 9208 ? getWindowNames(it) 9209 : $getOwnPropertyNames(toIndexedObject(it)); 9210}; 9211 9212 9213/***/ }), 9214
vendor: 1,023 bytes, lines 9215-9235
9215/***/ "./node_modules/core-js/internals/object-get-own-property-names.js": 9216/*!*************************************************************************!*\ 9217 !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***! 9218 \*************************************************************************/ 9219/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 9220 9221var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js"); 9222var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js"); 9223 9224var hiddenKeys = enumBugKeys.concat('length', 'prototype'); 9225 9226// `Object.getOwnPropertyNames` method 9227// https://tc39.es/ecma262/#sec-object.getownpropertynames 9228// eslint-disable-next-line es/no-object-getownpropertynames -- safe 9229exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 9230 return internalObjectKeys(O, hiddenKeys); 9231}; 9232 9233 9234/***/ }), 9235
vendor: 498 bytes, lines 9236-9247
9236/***/ "./node_modules/core-js/internals/object-get-own-property-symbols.js": 9237/*!***************************************************************************!*\ 9238 !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***! 9239 \***************************************************************************/ 9240/***/ (function(__unused_webpack_module, exports) { 9241 9242// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe 9243exports.f = Object.getOwnPropertySymbols; 9244 9245 9246/***/ }), 9247
vendor: 1,692 bytes, lines 9248-9278
9248/***/ "./node_modules/core-js/internals/object-get-prototype-of.js": 9249/*!*******************************************************************!*\ 9250 !*** ./node_modules/core-js/internals/object-get-prototype-of.js ***! 9251 \*******************************************************************/ 9252/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9253 9254var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 9255var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 9256var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 9257var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); 9258var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js"); 9259var CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ "./node_modules/core-js/internals/correct-prototype-getter.js"); 9260 9261var IE_PROTO = sharedKey('IE_PROTO'); 9262var Object = global.Object; 9263var ObjectPrototype = Object.prototype; 9264 9265// `Object.getPrototypeOf` method 9266// https://tc39.es/ecma262/#sec-object.getprototypeof 9267module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { 9268 var object = toObject(O); 9269 if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; 9270 var constructor = object.constructor; 9271 if (isCallable(constructor) && object instanceof constructor) { 9272 return constructor.prototype; 9273 } return object instanceof Object ? ObjectPrototype : null; 9274}; 9275 9276 9277/***/ }), 9278
vendor: 561 bytes, lines 9279-9291
9279/***/ "./node_modules/core-js/internals/object-is-prototype-of.js": 9280/*!******************************************************************!*\ 9281 !*** ./node_modules/core-js/internals/object-is-prototype-of.js ***! 9282 \******************************************************************/ 9283/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9284 9285var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 9286 9287module.exports = uncurryThis({}.isPrototypeOf); 9288 9289 9290/***/ }), 9291
vendor: 1,431 bytes, lines 9292-9321
9292/***/ "./node_modules/core-js/internals/object-keys-internal.js": 9293/*!****************************************************************!*\ 9294 !*** ./node_modules/core-js/internals/object-keys-internal.js ***! 9295 \****************************************************************/ 9296/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9297 9298var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 9299var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 9300var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 9301var indexOf = (__webpack_require__(/*! ../internals/array-includes */ "./node_modules/core-js/internals/array-includes.js").indexOf); 9302var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); 9303 9304var push = uncurryThis([].push); 9305 9306module.exports = function (object, names) { 9307 var O = toIndexedObject(object); 9308 var i = 0; 9309 var result = []; 9310 var key; 9311 for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); 9312 // Don't enum bug & hidden keys 9313 while (names.length > i) if (hasOwn(O, key = names[i++])) { 9314 ~indexOf(result, key) || push(result, key); 9315 } 9316 return result; 9317}; 9318 9319 9320/***/ }), 9321
vendor: 821 bytes, lines 9322-9340
9322/***/ "./node_modules/core-js/internals/object-keys.js": 9323/*!*******************************************************!*\ 9324 !*** ./node_modules/core-js/internals/object-keys.js ***! 9325 \*******************************************************/ 9326/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9327 9328var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js"); 9329var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js"); 9330 9331// `Object.keys` method 9332// https://tc39.es/ecma262/#sec-object.keys 9333// eslint-disable-next-line es/no-object-keys -- safe 9334module.exports = Object.keys || function keys(O) { 9335 return internalObjectKeys(O, enumBugKeys); 9336}; 9337 9338 9339/***/ }), 9340
vendor: 1,020 bytes, lines 9341-9365
9341/***/ "./node_modules/core-js/internals/object-property-is-enumerable.js": 9342/*!*************************************************************************!*\ 9343 !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***! 9344 \*************************************************************************/ 9345/***/ (function(__unused_webpack_module, exports) { 9346 9347"use strict"; 9348 9349var $propertyIsEnumerable = {}.propertyIsEnumerable; 9350// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe 9351var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 9352 9353// Nashorn ~ JDK8 bug 9354var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); 9355 9356// `Object.prototype.propertyIsEnumerable` method implementation 9357// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable 9358exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { 9359 var descriptor = getOwnPropertyDescriptor(this, V); 9360 return !!descriptor && descriptor.enumerable; 9361} : $propertyIsEnumerable; 9362 9363 9364/***/ }), 9365
vendor: 1,662 bytes, lines 9366-9402
9366/***/ "./node_modules/core-js/internals/object-set-prototype-of.js": 9367/*!*******************************************************************!*\ 9368 !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***! 9369 \*******************************************************************/ 9370/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9371 9372/* eslint-disable no-proto -- safe */ 9373var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 9374var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 9375var aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ "./node_modules/core-js/internals/a-possible-prototype.js"); 9376 9377// `Object.setPrototypeOf` method 9378// https://tc39.es/ecma262/#sec-object.setprototypeof 9379// Works with __proto__ only. Old v8 can't work with null proto objects. 9380// eslint-disable-next-line es/no-object-setprototypeof -- safe 9381module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { 9382 var CORRECT_SETTER = false; 9383 var test = {}; 9384 var setter; 9385 try { 9386 // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe 9387 setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set); 9388 setter(test, []); 9389 CORRECT_SETTER = test instanceof Array; 9390 } catch (error) { /* empty */ } 9391 return function setPrototypeOf(O, proto) { 9392 anObject(O); 9393 aPossiblePrototype(proto); 9394 if (CORRECT_SETTER) setter(O, proto); 9395 else O.__proto__ = proto; 9396 return O; 9397 }; 9398}() : undefined); 9399 9400 9401/***/ }), 9402
vendor: 858 bytes, lines 9403-9422
9403/***/ "./node_modules/core-js/internals/object-to-string.js": 9404/*!************************************************************!*\ 9405 !*** ./node_modules/core-js/internals/object-to-string.js ***! 9406 \************************************************************/ 9407/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9408 9409"use strict"; 9410 9411var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js"); 9412var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js"); 9413 9414// `Object.prototype.toString` method implementation 9415// https://tc39.es/ecma262/#sec-object.prototype.tostring 9416module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { 9417 return '[object ' + classof(this) + ']'; 9418}; 9419 9420 9421/***/ }), 9422
vendor: 1,384 bytes, lines 9423-9448
9423/***/ "./node_modules/core-js/internals/ordinary-to-primitive.js": 9424/*!*****************************************************************!*\ 9425 !*** ./node_modules/core-js/internals/ordinary-to-primitive.js ***! 9426 \*****************************************************************/ 9427/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9428 9429var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 9430var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 9431var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 9432var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 9433 9434var TypeError = global.TypeError; 9435 9436// `OrdinaryToPrimitive` abstract operation 9437// https://tc39.es/ecma262/#sec-ordinarytoprimitive 9438module.exports = function (input, pref) { 9439 var fn, val; 9440 if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; 9441 if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; 9442 if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; 9443 throw TypeError("Can't convert object to primitive value"); 9444}; 9445 9446 9447/***/ }), 9448
vendor: 1,416 bytes, lines 9449-9472
9449/***/ "./node_modules/core-js/internals/own-keys.js": 9450/*!****************************************************!*\ 9451 !*** ./node_modules/core-js/internals/own-keys.js ***! 9452 \****************************************************/ 9453/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9454 9455var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 9456var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 9457var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js"); 9458var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js"); 9459var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 9460 9461var concat = uncurryThis([].concat); 9462 9463// all object keys, includes non-enumerable and symbols 9464module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { 9465 var keys = getOwnPropertyNamesModule.f(anObject(it)); 9466 var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; 9467 return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; 9468}; 9469 9470 9471/***/ }), 9472
vendor: 431 bytes, lines 9473-9485
9473/***/ "./node_modules/core-js/internals/path.js": 9474/*!************************************************!*\ 9475 !*** ./node_modules/core-js/internals/path.js ***! 9476 \************************************************/ 9477/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9478 9479var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 9480 9481module.exports = global; 9482 9483 9484/***/ }), 9485
vendor: 419 bytes, lines 9486-9502
9486/***/ "./node_modules/core-js/internals/perform.js": 9487/*!***************************************************!*\ 9488 !*** ./node_modules/core-js/internals/perform.js ***! 9489 \***************************************************/ 9490/***/ (function(module) { 9491 9492module.exports = function (exec) { 9493 try { 9494 return { error: false, value: exec() }; 9495 } catch (error) { 9496 return { error: true, value: error }; 9497 } 9498}; 9499 9500 9501/***/ }), 9502
vendor: 977 bytes, lines 9503-9524
9503/***/ "./node_modules/core-js/internals/promise-resolve.js": 9504/*!***********************************************************!*\ 9505 !*** ./node_modules/core-js/internals/promise-resolve.js ***! 9506 \***********************************************************/ 9507/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9508 9509var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 9510var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 9511var newPromiseCapability = __webpack_require__(/*! ../internals/new-promise-capability */ "./node_modules/core-js/internals/new-promise-capability.js"); 9512 9513module.exports = function (C, x) { 9514 anObject(C); 9515 if (isObject(x) && x.constructor === C) return x; 9516 var promiseCapability = newPromiseCapability.f(C); 9517 var resolve = promiseCapability.resolve; 9518 resolve(x); 9519 return promiseCapability.promise; 9520}; 9521 9522 9523/***/ }), 9524
vendor: 720 bytes, lines 9525-9557
9525/***/ "./node_modules/core-js/internals/queue.js": 9526/*!*************************************************!*\ 9527 !*** ./node_modules/core-js/internals/queue.js ***! 9528 \*************************************************/ 9529/***/ (function(module) { 9530 9531var Queue = function () { 9532 this.head = null; 9533 this.tail = null; 9534}; 9535 9536Queue.prototype = { 9537 add: function (item) { 9538 var entry = { item: item, next: null }; 9539 if (this.head) this.tail.next = entry; 9540 else this.head = entry; 9541 this.tail = entry; 9542 }, 9543 get: function () { 9544 var entry = this.head; 9545 if (entry) { 9546 this.head = entry.next; 9547 if (this.tail === entry) this.tail = null; 9548 return entry.item; 9549 } 9550 } 9551}; 9552 9553module.exports = Queue; 9554 9555 9556/***/ }), 9557
vendor: 580 bytes, lines 9558-9573
9558/***/ "./node_modules/core-js/internals/redefine-all.js": 9559/*!********************************************************!*\ 9560 !*** ./node_modules/core-js/internals/redefine-all.js ***! 9561 \********************************************************/ 9562/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9563 9564var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 9565 9566module.exports = function (target, src, options) { 9567 for (var key in src) redefine(target, key, src[key], options); 9568 return target; 9569}; 9570 9571 9572/***/ }), 9573
vendor: 2,843 bytes, lines 9574-9629
9574/***/ "./node_modules/core-js/internals/redefine.js": 9575/*!****************************************************!*\ 9576 !*** ./node_modules/core-js/internals/redefine.js ***! 9577 \****************************************************/ 9578/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9579 9580var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 9581var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 9582var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 9583var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 9584var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js"); 9585var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js"); 9586var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); 9587var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(/*! ../internals/function-name */ "./node_modules/core-js/internals/function-name.js").CONFIGURABLE); 9588 9589var getInternalState = InternalStateModule.get; 9590var enforceInternalState = InternalStateModule.enforce; 9591var TEMPLATE = String(String).split('String'); 9592 9593(module.exports = function (O, key, value, options) { 9594 var unsafe = options ? !!options.unsafe : false; 9595 var simple = options ? !!options.enumerable : false; 9596 var noTargetGet = options ? !!options.noTargetGet : false; 9597 var name = options && options.name !== undefined ? options.name : key; 9598 var state; 9599 if (isCallable(value)) { 9600 if (String(name).slice(0, 7) === 'Symbol(') { 9601 name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']'; 9602 } 9603 if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { 9604 createNonEnumerableProperty(value, 'name', name); 9605 } 9606 state = enforceInternalState(value); 9607 if (!state.source) { 9608 state.source = TEMPLATE.join(typeof name == 'string' ? name : ''); 9609 } 9610 } 9611 if (O === global) { 9612 if (simple) O[key] = value; 9613 else setGlobal(key, value); 9614 return; 9615 } else if (!unsafe) { 9616 delete O[key]; 9617 } else if (!noTargetGet && O[key]) { 9618 simple = true; 9619 } 9620 if (simple) O[key] = value; 9621 else createNonEnumerableProperty(O, key, value); 9622// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative 9623})(Function.prototype, 'toString', function toString() { 9624 return isCallable(this) && getInternalState(this).source || inspectSource(this); 9625}); 9626 9627 9628/***/ }), 9629
vendor: 1,491 bytes, lines 9630-9660
9630/***/ "./node_modules/core-js/internals/regexp-exec-abstract.js": 9631/*!****************************************************************!*\ 9632 !*** ./node_modules/core-js/internals/regexp-exec-abstract.js ***! 9633 \****************************************************************/ 9634/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9635 9636var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 9637var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 9638var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 9639var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 9640var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); 9641var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js"); 9642 9643var TypeError = global.TypeError; 9644 9645// `RegExpExec` abstract operation 9646// https://tc39.es/ecma262/#sec-regexpexec 9647module.exports = function (R, S) { 9648 var exec = R.exec; 9649 if (isCallable(exec)) { 9650 var result = call(exec, R, S); 9651 if (result !== null) anObject(result); 9652 return result; 9653 } 9654 if (classof(R) === 'RegExp') return call(regexpExec, R, S); 9655 throw TypeError('RegExp#exec called on incompatible receiver'); 9656}; 9657 9658 9659/***/ }), 9660
vendor: 5,080 bytes, lines 9661-9788
9661/***/ "./node_modules/core-js/internals/regexp-exec.js": 9662/*!*******************************************************!*\ 9663 !*** ./node_modules/core-js/internals/regexp-exec.js ***! 9664 \*******************************************************/ 9665/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9666 9667"use strict"; 9668 9669/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ 9670/* eslint-disable regexp/no-useless-quantifier -- testing */ 9671var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 9672var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 9673var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js"); 9674var regexpFlags = __webpack_require__(/*! ../internals/regexp-flags */ "./node_modules/core-js/internals/regexp-flags.js"); 9675var stickyHelpers = __webpack_require__(/*! ../internals/regexp-sticky-helpers */ "./node_modules/core-js/internals/regexp-sticky-helpers.js"); 9676var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js"); 9677var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js"); 9678var getInternalState = (__webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js").get); 9679var UNSUPPORTED_DOT_ALL = __webpack_require__(/*! ../internals/regexp-unsupported-dot-all */ "./node_modules/core-js/internals/regexp-unsupported-dot-all.js"); 9680var UNSUPPORTED_NCG = __webpack_require__(/*! ../internals/regexp-unsupported-ncg */ "./node_modules/core-js/internals/regexp-unsupported-ncg.js"); 9681 9682var nativeReplace = shared('native-string-replace', String.prototype.replace); 9683var nativeExec = RegExp.prototype.exec; 9684var patchedExec = nativeExec; 9685var charAt = uncurryThis(''.charAt); 9686var indexOf = uncurryThis(''.indexOf); 9687var replace = uncurryThis(''.replace); 9688var stringSlice = uncurryThis(''.slice); 9689 9690var UPDATES_LAST_INDEX_WRONG = (function () { 9691 var re1 = /a/; 9692 var re2 = /b*/g; 9693 call(nativeExec, re1, 'a'); 9694 call(nativeExec, re2, 'a'); 9695 return re1.lastIndex !== 0 || re2.lastIndex !== 0; 9696})(); 9697 9698var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; 9699 9700// nonparticipating capturing group, copied from es5-shim's String#split patch. 9701var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; 9702 9703var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; 9704 9705if (PATCH) { 9706 patchedExec = function exec(string) { 9707 var re = this; 9708 var state = getInternalState(re); 9709 var str = toString(string); 9710 var raw = state.raw; 9711 var result, reCopy, lastIndex, match, i, object, group; 9712 9713 if (raw) { 9714 raw.lastIndex = re.lastIndex; 9715 result = call(patchedExec, raw, str); 9716 re.lastIndex = raw.lastIndex; 9717 return result; 9718 } 9719 9720 var groups = state.groups; 9721 var sticky = UNSUPPORTED_Y && re.sticky; 9722 var flags = call(regexpFlags, re); 9723 var source = re.source; 9724 var charsAdded = 0; 9725 var strCopy = str; 9726 9727 if (sticky) { 9728 flags = replace(flags, 'y', ''); 9729 if (indexOf(flags, 'g') === -1) { 9730 flags += 'g'; 9731 } 9732 9733 strCopy = stringSlice(str, re.lastIndex); 9734 // Support anchored sticky behavior. 9735 if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) { 9736 source = '(?: ' + source + ')'; 9737 strCopy = ' ' + strCopy; 9738 charsAdded++; 9739 } 9740 // ^(? + rx + ) is needed, in combination with some str slicing, to 9741 // simulate the 'y' flag. 9742 reCopy = new RegExp('^(?:' + source + ')', flags); 9743 } 9744 9745 if (NPCG_INCLUDED) { 9746 reCopy = new RegExp('^' + source + '$(?!\\s)', flags); 9747 } 9748 if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; 9749 9750 match = call(nativeExec, sticky ? reCopy : re, strCopy); 9751 9752 if (sticky) { 9753 if (match) { 9754 match.input = stringSlice(match.input, charsAdded); 9755 match[0] = stringSlice(match[0], charsAdded); 9756 match.index = re.lastIndex; 9757 re.lastIndex += match[0].length; 9758 } else re.lastIndex = 0; 9759 } else if (UPDATES_LAST_INDEX_WRONG && match) { 9760 re.lastIndex = re.global ? match.index + match[0].length : lastIndex; 9761 } 9762 if (NPCG_INCLUDED && match && match.length > 1) { 9763 // Fix browsers whose `exec` methods don't consistently return `undefined` 9764 // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ 9765 call(nativeReplace, match[0], reCopy, function () { 9766 for (i = 1; i < arguments.length - 2; i++) { 9767 if (arguments[i] === undefined) match[i] = undefined; 9768 } 9769 }); 9770 } 9771 9772 if (match && groups) { 9773 match.groups = object = create(null); 9774 for (i = 0; i < groups.length; i++) { 9775 group = groups[i]; 9776 object[group[0]] = match[group[1]]; 9777 } 9778 } 9779 9780 return match; 9781 }; 9782} 9783 9784module.exports = patchedExec; 9785 9786 9787/***/ }), 9788
vendor: 881 bytes, lines 9789-9815
9789/***/ "./node_modules/core-js/internals/regexp-flags.js": 9790/*!********************************************************!*\ 9791 !*** ./node_modules/core-js/internals/regexp-flags.js ***! 9792 \********************************************************/ 9793/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9794 9795"use strict"; 9796 9797var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 9798 9799// `RegExp.prototype.flags` getter implementation 9800// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags 9801module.exports = function () { 9802 var that = anObject(this); 9803 var result = ''; 9804 if (that.global) result += 'g'; 9805 if (that.ignoreCase) result += 'i'; 9806 if (that.multiline) result += 'm'; 9807 if (that.dotAll) result += 's'; 9808 if (that.unicode) result += 'u'; 9809 if (that.sticky) result += 'y'; 9810 return result; 9811}; 9812 9813 9814/***/ }), 9815
vendor: 1,321 bytes, lines 9816-9855
9816/***/ "./node_modules/core-js/internals/regexp-sticky-helpers.js": 9817/*!*****************************************************************!*\ 9818 !*** ./node_modules/core-js/internals/regexp-sticky-helpers.js ***! 9819 \*****************************************************************/ 9820/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9821 9822var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 9823var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 9824 9825// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError 9826var $RegExp = global.RegExp; 9827 9828var UNSUPPORTED_Y = fails(function () { 9829 var re = $RegExp('a', 'y'); 9830 re.lastIndex = 2; 9831 return re.exec('abcd') != null; 9832}); 9833 9834// UC Browser bug 9835// https://github.com/zloirock/core-js/issues/1008 9836var MISSED_STICKY = UNSUPPORTED_Y || fails(function () { 9837 return !$RegExp('a', 'y').sticky; 9838}); 9839 9840var BROKEN_CARET = UNSUPPORTED_Y || fails(function () { 9841 // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 9842 var re = $RegExp('^r', 'gy'); 9843 re.lastIndex = 2; 9844 return re.exec('str') != null; 9845}); 9846 9847module.exports = { 9848 BROKEN_CARET: BROKEN_CARET, 9849 MISSED_STICKY: MISSED_STICKY, 9850 UNSUPPORTED_Y: UNSUPPORTED_Y 9851}; 9852 9853 9854/***/ }), 9855
vendor: 858 bytes, lines 9856-9875
9856/***/ "./node_modules/core-js/internals/regexp-unsupported-dot-all.js": 9857/*!**********************************************************************!*\ 9858 !*** ./node_modules/core-js/internals/regexp-unsupported-dot-all.js ***! 9859 \**********************************************************************/ 9860/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9861 9862var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 9863var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 9864 9865// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError 9866var $RegExp = global.RegExp; 9867 9868module.exports = fails(function () { 9869 var re = $RegExp('.', 's'); 9870 return !(re.dotAll && re.exec('\n') && re.flags === 's'); 9871}); 9872 9873 9874/***/ }), 9875
vendor: 881 bytes, lines 9876-9896
9876/***/ "./node_modules/core-js/internals/regexp-unsupported-ncg.js": 9877/*!******************************************************************!*\ 9878 !*** ./node_modules/core-js/internals/regexp-unsupported-ncg.js ***! 9879 \******************************************************************/ 9880/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9881 9882var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 9883var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 9884 9885// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError 9886var $RegExp = global.RegExp; 9887 9888module.exports = fails(function () { 9889 var re = $RegExp('(?<a>b)', 'g'); 9890 return re.exec('b').groups.a !== 'b' || 9891 'b'.replace(re, '$<a>c') !== 'bc'; 9892}); 9893 9894 9895/***/ }), 9896
vendor: 742 bytes, lines 9897-9916
9897/***/ "./node_modules/core-js/internals/require-object-coercible.js": 9898/*!********************************************************************!*\ 9899 !*** ./node_modules/core-js/internals/require-object-coercible.js ***! 9900 \********************************************************************/ 9901/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9902 9903var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 9904 9905var TypeError = global.TypeError; 9906 9907// `RequireObjectCoercible` abstract operation 9908// https://tc39.es/ecma262/#sec-requireobjectcoercible 9909module.exports = function (it) { 9910 if (it == undefined) throw TypeError("Can't call method on " + it); 9911 return it; 9912}; 9913 9914 9915/***/ }), 9916
vendor: 741 bytes, lines 9917-9938
9917/***/ "./node_modules/core-js/internals/set-global.js": 9918/*!******************************************************!*\ 9919 !*** ./node_modules/core-js/internals/set-global.js ***! 9920 \******************************************************/ 9921/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9922 9923var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 9924 9925// eslint-disable-next-line es/no-object-defineproperty -- safe 9926var defineProperty = Object.defineProperty; 9927 9928module.exports = function (key, value) { 9929 try { 9930 defineProperty(global, key, { value: value, configurable: true, writable: true }); 9931 } catch (error) { 9932 global[key] = value; 9933 } return value; 9934}; 9935 9936 9937/***/ }), 9938
vendor: 1,251 bytes, lines 9939-9968
9939/***/ "./node_modules/core-js/internals/set-species.js": 9940/*!*******************************************************!*\ 9941 !*** ./node_modules/core-js/internals/set-species.js ***! 9942 \*******************************************************/ 9943/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9944 9945"use strict"; 9946 9947var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 9948var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 9949var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 9950var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 9951 9952var SPECIES = wellKnownSymbol('species'); 9953 9954module.exports = function (CONSTRUCTOR_NAME) { 9955 var Constructor = getBuiltIn(CONSTRUCTOR_NAME); 9956 var defineProperty = definePropertyModule.f; 9957 9958 if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { 9959 defineProperty(Constructor, SPECIES, { 9960 configurable: true, 9961 get: function () { return this; } 9962 }); 9963 } 9964}; 9965 9966 9967/***/ }), 9968
vendor: 1,058 bytes, lines 9969-9990
9969/***/ "./node_modules/core-js/internals/set-to-string-tag.js": 9970/*!*************************************************************!*\ 9971 !*** ./node_modules/core-js/internals/set-to-string-tag.js ***! 9972 \*************************************************************/ 9973/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9974 9975var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f); 9976var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 9977var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 9978 9979var TO_STRING_TAG = wellKnownSymbol('toStringTag'); 9980 9981module.exports = function (target, TAG, STATIC) { 9982 if (target && !STATIC) target = target.prototype; 9983 if (target && !hasOwn(target, TO_STRING_TAG)) { 9984 defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); 9985 } 9986}; 9987 9988 9989/***/ }), 9990
vendor: 639 bytes, lines 9991-10008
9991/***/ "./node_modules/core-js/internals/shared-key.js": 9992/*!******************************************************!*\ 9993 !*** ./node_modules/core-js/internals/shared-key.js ***! 9994 \******************************************************/ 9995/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 9996 9997var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js"); 9998var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js"); 9999 10000var keys = shared('keys'); 10001 10002module.exports = function (key) { 10003 return keys[key] || (keys[key] = uid(key)); 10004}; 10005 10006 10007/***/ }), 10008
vendor: 669 bytes, lines 10009-10025
10009/***/ "./node_modules/core-js/internals/shared-store.js": 10010/*!********************************************************!*\ 10011 !*** ./node_modules/core-js/internals/shared-store.js ***! 10012 \********************************************************/ 10013/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10014 10015var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 10016var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js"); 10017 10018var SHARED = '__core-js_shared__'; 10019var store = global[SHARED] || setGlobal(SHARED, {}); 10020 10021module.exports = store; 10022 10023 10024/***/ }), 10025
vendor: 790 bytes, lines 10026-10045
10026/***/ "./node_modules/core-js/internals/shared.js": 10027/*!**************************************************!*\ 10028 !*** ./node_modules/core-js/internals/shared.js ***! 10029 \**************************************************/ 10030/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10031 10032var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 10033var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js"); 10034 10035(module.exports = function (key, value) { 10036 return store[key] || (store[key] = value !== undefined ? value : {}); 10037})('versions', []).push({ 10038 version: '3.20.1', 10039 mode: IS_PURE ? 'pure' : 'global', 10040 copyright: '© 2021 Denis Pushkarev (zloirock.ru)' 10041}); 10042 10043 10044/***/ }), 10045
vendor: 1,083 bytes, lines 10046-10068
10046/***/ "./node_modules/core-js/internals/species-constructor.js": 10047/*!***************************************************************!*\ 10048 !*** ./node_modules/core-js/internals/species-constructor.js ***! 10049 \***************************************************************/ 10050/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10051 10052var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 10053var aConstructor = __webpack_require__(/*! ../internals/a-constructor */ "./node_modules/core-js/internals/a-constructor.js"); 10054var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 10055 10056var SPECIES = wellKnownSymbol('species'); 10057 10058// `SpeciesConstructor` abstract operation 10059// https://tc39.es/ecma262/#sec-speciesconstructor 10060module.exports = function (O, defaultConstructor) { 10061 var C = anObject(O).constructor; 10062 var S; 10063 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S); 10064}; 10065 10066 10067/***/ }), 10068
vendor: 2,047 bytes, lines 10069-10114
10069/***/ "./node_modules/core-js/internals/string-multibyte.js": 10070/*!************************************************************!*\ 10071 !*** ./node_modules/core-js/internals/string-multibyte.js ***! 10072 \************************************************************/ 10073/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10074 10075var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 10076var toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ "./node_modules/core-js/internals/to-integer-or-infinity.js"); 10077var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js"); 10078var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); 10079 10080var charAt = uncurryThis(''.charAt); 10081var charCodeAt = uncurryThis(''.charCodeAt); 10082var stringSlice = uncurryThis(''.slice); 10083 10084var createMethod = function (CONVERT_TO_STRING) { 10085 return function ($this, pos) { 10086 var S = toString(requireObjectCoercible($this)); 10087 var position = toIntegerOrInfinity(pos); 10088 var size = S.length; 10089 var first, second; 10090 if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; 10091 first = charCodeAt(S, position); 10092 return first < 0xD800 || first > 0xDBFF || position + 1 === size 10093 || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF 10094 ? CONVERT_TO_STRING 10095 ? charAt(S, position) 10096 : first 10097 : CONVERT_TO_STRING 10098 ? stringSlice(S, position, position + 2) 10099 : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; 10100 }; 10101}; 10102 10103module.exports = { 10104 // `String.prototype.codePointAt` method 10105 // https://tc39.es/ecma262/#sec-string.prototype.codepointat 10106 codeAt: createMethod(false), 10107 // `String.prototype.at` method 10108 // https://github.com/mathiasbynens/String.prototype.at 10109 charAt: createMethod(true) 10110}; 10111 10112 10113/***/ }), 10114
vendor: 1,831 bytes, lines 10115-10155
10115/***/ "./node_modules/core-js/internals/string-trim.js": 10116/*!*******************************************************!*\ 10117 !*** ./node_modules/core-js/internals/string-trim.js ***! 10118 \*******************************************************/ 10119/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10120 10121var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 10122var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); 10123var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js"); 10124var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js"); 10125 10126var replace = uncurryThis(''.replace); 10127var whitespace = '[' + whitespaces + ']'; 10128var ltrim = RegExp('^' + whitespace + whitespace + '*'); 10129var rtrim = RegExp(whitespace + whitespace + '*$'); 10130 10131// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation 10132var createMethod = function (TYPE) { 10133 return function ($this) { 10134 var string = toString(requireObjectCoercible($this)); 10135 if (TYPE & 1) string = replace(string, ltrim, ''); 10136 if (TYPE & 2) string = replace(string, rtrim, ''); 10137 return string; 10138 }; 10139}; 10140 10141module.exports = { 10142 // `String.prototype.{ trimLeft, trimStart }` methods 10143 // https://tc39.es/ecma262/#sec-string.prototype.trimstart 10144 start: createMethod(1), 10145 // `String.prototype.{ trimRight, trimEnd }` methods 10146 // https://tc39.es/ecma262/#sec-string.prototype.trimend 10147 end: createMethod(2), 10148 // `String.prototype.trim` method 10149 // https://tc39.es/ecma262/#sec-string.prototype.trim 10150 trim: createMethod(3) 10151}; 10152 10153 10154/***/ }), 10155
vendor: 4,253 bytes, lines 10156-10278
10156/***/ "./node_modules/core-js/internals/task.js": 10157/*!************************************************!*\ 10158 !*** ./node_modules/core-js/internals/task.js ***! 10159 \************************************************/ 10160/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10161 10162var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 10163var apply = __webpack_require__(/*! ../internals/function-apply */ "./node_modules/core-js/internals/function-apply.js"); 10164var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js"); 10165var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 10166var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 10167var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 10168var html = __webpack_require__(/*! ../internals/html */ "./node_modules/core-js/internals/html.js"); 10169var arraySlice = __webpack_require__(/*! ../internals/array-slice */ "./node_modules/core-js/internals/array-slice.js"); 10170var createElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js"); 10171var IS_IOS = __webpack_require__(/*! ../internals/engine-is-ios */ "./node_modules/core-js/internals/engine-is-ios.js"); 10172var IS_NODE = __webpack_require__(/*! ../internals/engine-is-node */ "./node_modules/core-js/internals/engine-is-node.js"); 10173 10174var set = global.setImmediate; 10175var clear = global.clearImmediate; 10176var process = global.process; 10177var Dispatch = global.Dispatch; 10178var Function = global.Function; 10179var MessageChannel = global.MessageChannel; 10180var String = global.String; 10181var counter = 0; 10182var queue = {}; 10183var ONREADYSTATECHANGE = 'onreadystatechange'; 10184var location, defer, channel, port; 10185 10186try { 10187 // Deno throws a ReferenceError on `location` access without `--location` flag 10188 location = global.location; 10189} catch (error) { /* empty */ } 10190 10191var run = function (id) { 10192 if (hasOwn(queue, id)) { 10193 var fn = queue[id]; 10194 delete queue[id]; 10195 fn(); 10196 } 10197}; 10198 10199var runner = function (id) { 10200 return function () { 10201 run(id); 10202 }; 10203}; 10204 10205var listener = function (event) { 10206 run(event.data); 10207}; 10208 10209var post = function (id) { 10210 // old engines have not location.origin 10211 global.postMessage(String(id), location.protocol + '//' + location.host); 10212}; 10213 10214// Node.js 0.9+ & IE10+ has setImmediate, otherwise: 10215if (!set || !clear) { 10216 set = function setImmediate(fn) { 10217 var args = arraySlice(arguments, 1); 10218 queue[++counter] = function () { 10219 apply(isCallable(fn) ? fn : Function(fn), undefined, args); 10220 }; 10221 defer(counter); 10222 return counter; 10223 }; 10224 clear = function clearImmediate(id) { 10225 delete queue[id]; 10226 }; 10227 // Node.js 0.8- 10228 if (IS_NODE) { 10229 defer = function (id) { 10230 process.nextTick(runner(id)); 10231 }; 10232 // Sphere (JS game engine) Dispatch API 10233 } else if (Dispatch && Dispatch.now) { 10234 defer = function (id) { 10235 Dispatch.now(runner(id)); 10236 }; 10237 // Browsers with MessageChannel, includes WebWorkers 10238 // except iOS - https://github.com/zloirock/core-js/issues/624 10239 } else if (MessageChannel && !IS_IOS) { 10240 channel = new MessageChannel(); 10241 port = channel.port2; 10242 channel.port1.onmessage = listener; 10243 defer = bind(port.postMessage, port); 10244 // Browsers with postMessage, skip WebWorkers 10245 // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' 10246 } else if ( 10247 global.addEventListener && 10248 isCallable(global.postMessage) && 10249 !global.importScripts && 10250 location && location.protocol !== 'file:' && 10251 !fails(post) 10252 ) { 10253 defer = post; 10254 global.addEventListener('message', listener, false); 10255 // IE8- 10256 } else if (ONREADYSTATECHANGE in createElement('script')) { 10257 defer = function (id) { 10258 html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { 10259 html.removeChild(this); 10260 run(id); 10261 }; 10262 }; 10263 // Rest old browsers 10264 } else { 10265 defer = function (id) { 10266 setTimeout(runner(id), 0); 10267 }; 10268 } 10269} 10270 10271module.exports = { 10272 set: set, 10273 clear: clear 10274}; 10275 10276 10277/***/ }), 10278
vendor: 624 bytes, lines 10279-10293
10279/***/ "./node_modules/core-js/internals/this-number-value.js": 10280/*!*************************************************************!*\ 10281 !*** ./node_modules/core-js/internals/this-number-value.js ***! 10282 \*************************************************************/ 10283/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10284 10285var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 10286 10287// `thisNumberValue` abstract operation 10288// https://tc39.es/ecma262/#sec-thisnumbervalue 10289module.exports = uncurryThis(1.0.valueOf); 10290 10291 10292/***/ }), 10293
vendor: 899 bytes, lines 10294-10315
10294/***/ "./node_modules/core-js/internals/to-absolute-index.js": 10295/*!*************************************************************!*\ 10296 !*** ./node_modules/core-js/internals/to-absolute-index.js ***! 10297 \*************************************************************/ 10298/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10299 10300var toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ "./node_modules/core-js/internals/to-integer-or-infinity.js"); 10301 10302var max = Math.max; 10303var min = Math.min; 10304 10305// Helper for a popular repeating case of the spec: 10306// Let integer be ? ToInteger(index). 10307// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). 10308module.exports = function (index, length) { 10309 var integer = toIntegerOrInfinity(index); 10310 return integer < 0 ? max(integer + length, 0) : min(integer, length); 10311}; 10312 10313 10314/***/ }), 10315
vendor: 785 bytes, lines 10316-10332
10316/***/ "./node_modules/core-js/internals/to-indexed-object.js": 10317/*!*************************************************************!*\ 10318 !*** ./node_modules/core-js/internals/to-indexed-object.js ***! 10319 \*************************************************************/ 10320/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10321 10322// toObject with fallback for non-array-like ES3 strings 10323var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js"); 10324var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); 10325 10326module.exports = function (it) { 10327 return IndexedObject(requireObjectCoercible(it)); 10328}; 10329 10330 10331/***/ }), 10332
vendor: 674 bytes, lines 10333-10352
10333/***/ "./node_modules/core-js/internals/to-integer-or-infinity.js": 10334/*!******************************************************************!*\ 10335 !*** ./node_modules/core-js/internals/to-integer-or-infinity.js ***! 10336 \******************************************************************/ 10337/***/ (function(module) { 10338 10339var ceil = Math.ceil; 10340var floor = Math.floor; 10341 10342// `ToIntegerOrInfinity` abstract operation 10343// https://tc39.es/ecma262/#sec-tointegerorinfinity 10344module.exports = function (argument) { 10345 var number = +argument; 10346 // eslint-disable-next-line no-self-compare -- safe 10347 return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number); 10348}; 10349 10350 10351/***/ }), 10352
vendor: 725 bytes, lines 10353-10371
10353/***/ "./node_modules/core-js/internals/to-length.js": 10354/*!*****************************************************!*\ 10355 !*** ./node_modules/core-js/internals/to-length.js ***! 10356 \*****************************************************/ 10357/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10358 10359var toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ "./node_modules/core-js/internals/to-integer-or-infinity.js"); 10360 10361var min = Math.min; 10362 10363// `ToLength` abstract operation 10364// https://tc39.es/ecma262/#sec-tolength 10365module.exports = function (argument) { 10366 return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 10367}; 10368 10369 10370/***/ }), 10371
vendor: 781 bytes, lines 10372-10391
10372/***/ "./node_modules/core-js/internals/to-object.js": 10373/*!*****************************************************!*\ 10374 !*** ./node_modules/core-js/internals/to-object.js ***! 10375 \*****************************************************/ 10376/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10377 10378var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 10379var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); 10380 10381var Object = global.Object; 10382 10383// `ToObject` abstract operation 10384// https://tc39.es/ecma262/#sec-toobject 10385module.exports = function (argument) { 10386 return Object(requireObjectCoercible(argument)); 10387}; 10388 10389 10390/***/ }), 10391
vendor: 1,858 bytes, lines 10392-10427
10392/***/ "./node_modules/core-js/internals/to-primitive.js": 10393/*!********************************************************!*\ 10394 !*** ./node_modules/core-js/internals/to-primitive.js ***! 10395 \********************************************************/ 10396/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10397 10398var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 10399var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 10400var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 10401var isSymbol = __webpack_require__(/*! ../internals/is-symbol */ "./node_modules/core-js/internals/is-symbol.js"); 10402var getMethod = __webpack_require__(/*! ../internals/get-method */ "./node_modules/core-js/internals/get-method.js"); 10403var ordinaryToPrimitive = __webpack_require__(/*! ../internals/ordinary-to-primitive */ "./node_modules/core-js/internals/ordinary-to-primitive.js"); 10404var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 10405 10406var TypeError = global.TypeError; 10407var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); 10408 10409// `ToPrimitive` abstract operation 10410// https://tc39.es/ecma262/#sec-toprimitive 10411module.exports = function (input, pref) { 10412 if (!isObject(input) || isSymbol(input)) return input; 10413 var exoticToPrim = getMethod(input, TO_PRIMITIVE); 10414 var result; 10415 if (exoticToPrim) { 10416 if (pref === undefined) pref = 'default'; 10417 result = call(exoticToPrim, input, pref); 10418 if (!isObject(result) || isSymbol(result)) return result; 10419 throw TypeError("Can't convert object to primitive value"); 10420 } 10421 if (pref === undefined) pref = 'number'; 10422 return ordinaryToPrimitive(input, pref); 10423}; 10424 10425 10426/***/ }), 10427
vendor: 794 bytes, lines 10428-10446
10428/***/ "./node_modules/core-js/internals/to-property-key.js": 10429/*!***********************************************************!*\ 10430 !*** ./node_modules/core-js/internals/to-property-key.js ***! 10431 \***********************************************************/ 10432/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10433 10434var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js"); 10435var isSymbol = __webpack_require__(/*! ../internals/is-symbol */ "./node_modules/core-js/internals/is-symbol.js"); 10436 10437// `ToPropertyKey` abstract operation 10438// https://tc39.es/ecma262/#sec-topropertykey 10439module.exports = function (argument) { 10440 var key = toPrimitive(argument, 'string'); 10441 return isSymbol(key) ? key : key + ''; 10442}; 10443 10444 10445/***/ }), 10446
vendor: 649 bytes, lines 10447-10464
10447/***/ "./node_modules/core-js/internals/to-string-tag-support.js": 10448/*!*****************************************************************!*\ 10449 !*** ./node_modules/core-js/internals/to-string-tag-support.js ***! 10450 \*****************************************************************/ 10451/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10452 10453var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 10454 10455var TO_STRING_TAG = wellKnownSymbol('toStringTag'); 10456var test = {}; 10457 10458test[TO_STRING_TAG] = 'z'; 10459 10460module.exports = String(test) === '[object z]'; 10461 10462 10463/***/ }), 10464
vendor: 734 bytes, lines 10465-10483
10465/***/ "./node_modules/core-js/internals/to-string.js": 10466/*!*****************************************************!*\ 10467 !*** ./node_modules/core-js/internals/to-string.js ***! 10468 \*****************************************************/ 10469/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10470 10471var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 10472var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js"); 10473 10474var String = global.String; 10475 10476module.exports = function (argument) { 10477 if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); 10478 return String(argument); 10479}; 10480 10481 10482/***/ }), 10483
vendor: 595 bytes, lines 10484-10504
10484/***/ "./node_modules/core-js/internals/try-to-string.js": 10485/*!*********************************************************!*\ 10486 !*** ./node_modules/core-js/internals/try-to-string.js ***! 10487 \*********************************************************/ 10488/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10489 10490var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 10491 10492var String = global.String; 10493 10494module.exports = function (argument) { 10495 try { 10496 return String(argument); 10497 } catch (error) { 10498 return 'Object'; 10499 } 10500}; 10501 10502 10503/***/ }), 10504
vendor: 649 bytes, lines 10505-10523
10505/***/ "./node_modules/core-js/internals/uid.js": 10506/*!***********************************************!*\ 10507 !*** ./node_modules/core-js/internals/uid.js ***! 10508 \***********************************************/ 10509/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10510 10511var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 10512 10513var id = 0; 10514var postfix = Math.random(); 10515var toString = uncurryThis(1.0.toString); 10516 10517module.exports = function (key) { 10518 return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); 10519}; 10520 10521 10522/***/ }), 10523
vendor: 627 bytes, lines 10524-10539
10524/***/ "./node_modules/core-js/internals/use-symbol-as-uid.js": 10525/*!*************************************************************!*\ 10526 !*** ./node_modules/core-js/internals/use-symbol-as-uid.js ***! 10527 \*************************************************************/ 10528/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10529 10530/* eslint-disable es/no-symbol -- required for testing */ 10531var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js"); 10532 10533module.exports = NATIVE_SYMBOL 10534 && !Symbol.sham 10535 && typeof Symbol.iterator == 'symbol'; 10536 10537 10538/***/ }), 10539
vendor: 550 bytes, lines 10540-10552
10540/***/ "./node_modules/core-js/internals/well-known-symbol-wrapped.js": 10541/*!*********************************************************************!*\ 10542 !*** ./node_modules/core-js/internals/well-known-symbol-wrapped.js ***! 10543 \*********************************************************************/ 10544/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 10545 10546var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 10547 10548exports.f = wellKnownSymbol; 10549 10550 10551/***/ }), 10552
vendor: 1,800 bytes, lines 10553-10586
10553/***/ "./node_modules/core-js/internals/well-known-symbol.js": 10554/*!*************************************************************!*\ 10555 !*** ./node_modules/core-js/internals/well-known-symbol.js ***! 10556 \*************************************************************/ 10557/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10558 10559var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 10560var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js"); 10561var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 10562var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js"); 10563var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js"); 10564var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "./node_modules/core-js/internals/use-symbol-as-uid.js"); 10565 10566var WellKnownSymbolsStore = shared('wks'); 10567var Symbol = global.Symbol; 10568var symbolFor = Symbol && Symbol['for']; 10569var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; 10570 10571module.exports = function (name) { 10572 if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) { 10573 var description = 'Symbol.' + name; 10574 if (NATIVE_SYMBOL && hasOwn(Symbol, name)) { 10575 WellKnownSymbolsStore[name] = Symbol[name]; 10576 } else if (USE_SYMBOL_AS_UID && symbolFor) { 10577 WellKnownSymbolsStore[name] = symbolFor(description); 10578 } else { 10579 WellKnownSymbolsStore[name] = createWellKnownSymbol(description); 10580 } 10581 } return WellKnownSymbolsStore[name]; 10582}; 10583 10584 10585/***/ }), 10586
vendor: 502 bytes, lines 10587-10599
10587/***/ "./node_modules/core-js/internals/whitespaces.js": 10588/*!*******************************************************!*\ 10589 !*** ./node_modules/core-js/internals/whitespaces.js ***! 10590 \*******************************************************/ 10591/***/ (function(module) { 10592 10593// a string of all valid unicode whitespaces 10594module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + 10595 '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; 10596 10597 10598/***/ }), 10599
vendor: 1,197 bytes, lines 10600-10625
10600/***/ "./node_modules/core-js/modules/es.array.filter.js": 10601/*!*********************************************************!*\ 10602 !*** ./node_modules/core-js/modules/es.array.filter.js ***! 10603 \*********************************************************/ 10604/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 10605 10606"use strict"; 10607 10608var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 10609var $filter = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").filter); 10610var arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ "./node_modules/core-js/internals/array-method-has-species-support.js"); 10611 10612var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); 10613 10614// `Array.prototype.filter` method 10615// https://tc39.es/ecma262/#sec-array.prototype.filter 10616// with adding support of @@species 10617$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { 10618 filter: function filter(callbackfn /* , thisArg */) { 10619 return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); 10620 } 10621}); 10622 10623 10624/***/ }), 10625
vendor: 1,258 bytes, lines 10626-10657
10626/***/ "./node_modules/core-js/modules/es.array.find.js": 10627/*!*******************************************************!*\ 10628 !*** ./node_modules/core-js/modules/es.array.find.js ***! 10629 \*******************************************************/ 10630/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 10631 10632"use strict"; 10633 10634var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 10635var $find = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").find); 10636var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ "./node_modules/core-js/internals/add-to-unscopables.js"); 10637 10638var FIND = 'find'; 10639var SKIPS_HOLES = true; 10640 10641// Shouldn't skip holes 10642if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); 10643 10644// `Array.prototype.find` method 10645// https://tc39.es/ecma262/#sec-array.prototype.find 10646$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { 10647 find: function find(callbackfn /* , that = undefined */) { 10648 return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); 10649 } 10650}); 10651 10652// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables 10653addToUnscopables(FIND); 10654 10655 10656/***/ }), 10657
vendor: 851 bytes, lines 10658-10678
10658/***/ "./node_modules/core-js/modules/es.array.for-each.js": 10659/*!***********************************************************!*\ 10660 !*** ./node_modules/core-js/modules/es.array.for-each.js ***! 10661 \***********************************************************/ 10662/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 10663 10664"use strict"; 10665 10666var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 10667var forEach = __webpack_require__(/*! ../internals/array-for-each */ "./node_modules/core-js/internals/array-for-each.js"); 10668 10669// `Array.prototype.forEach` method 10670// https://tc39.es/ecma262/#sec-array.prototype.foreach 10671// eslint-disable-next-line es/no-array-prototype-foreach -- safe 10672$({ target: 'Array', proto: true, forced: [].forEach != forEach }, { 10673 forEach: forEach 10674}); 10675 10676 10677/***/ }), 10678
vendor: 1,061 bytes, lines 10679-10702
10679/***/ "./node_modules/core-js/modules/es.array.from.js": 10680/*!*******************************************************!*\ 10681 !*** ./node_modules/core-js/modules/es.array.from.js ***! 10682 \*******************************************************/ 10683/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 10684 10685var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 10686var from = __webpack_require__(/*! ../internals/array-from */ "./node_modules/core-js/internals/array-from.js"); 10687var checkCorrectnessOfIteration = __webpack_require__(/*! ../internals/check-correctness-of-iteration */ "./node_modules/core-js/internals/check-correctness-of-iteration.js"); 10688 10689var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { 10690 // eslint-disable-next-line es/no-array-from -- required for testing 10691 Array.from(iterable); 10692}); 10693 10694// `Array.from` method 10695// https://tc39.es/ecma262/#sec-array.from 10696$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { 10697 from: from 10698}); 10699 10700 10701/***/ }), 10702
vendor: 1,617 bytes, lines 10703-10736
10703/***/ "./node_modules/core-js/modules/es.array.index-of.js": 10704/*!***********************************************************!*\ 10705 !*** ./node_modules/core-js/modules/es.array.index-of.js ***! 10706 \***********************************************************/ 10707/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 10708 10709"use strict"; 10710 10711/* eslint-disable es/no-array-prototype-indexof -- required for testing */ 10712var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 10713var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 10714var $IndexOf = (__webpack_require__(/*! ../internals/array-includes */ "./node_modules/core-js/internals/array-includes.js").indexOf); 10715var arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ "./node_modules/core-js/internals/array-method-is-strict.js"); 10716 10717var un$IndexOf = uncurryThis([].indexOf); 10718 10719var NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0; 10720var STRICT_METHOD = arrayMethodIsStrict('indexOf'); 10721 10722// `Array.prototype.indexOf` method 10723// https://tc39.es/ecma262/#sec-array.prototype.indexof 10724$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, { 10725 indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { 10726 var fromIndex = arguments.length > 1 ? arguments[1] : undefined; 10727 return NEGATIVE_ZERO 10728 // convert -0 to +0 10729 ? un$IndexOf(this, searchElement, fromIndex) || 0 10730 : $IndexOf(this, searchElement, fromIndex); 10731 } 10732}); 10733 10734 10735/***/ }), 10736
vendor: 706 bytes, lines 10737-10754
10737/***/ "./node_modules/core-js/modules/es.array.is-array.js": 10738/*!***********************************************************!*\ 10739 !*** ./node_modules/core-js/modules/es.array.is-array.js ***! 10740 \***********************************************************/ 10741/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 10742 10743var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 10744var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js"); 10745 10746// `Array.isArray` method 10747// https://tc39.es/ecma262/#sec-array.isarray 10748$({ target: 'Array', stat: true }, { 10749 isArray: isArray 10750}); 10751 10752 10753/***/ }), 10754
vendor: 3,419 bytes, lines 10755-10826
10755/***/ "./node_modules/core-js/modules/es.array.iterator.js": 10756/*!***********************************************************!*\ 10757 !*** ./node_modules/core-js/modules/es.array.iterator.js ***! 10758 \***********************************************************/ 10759/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 10760 10761"use strict"; 10762 10763var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 10764var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ "./node_modules/core-js/internals/add-to-unscopables.js"); 10765var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); 10766var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); 10767var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f); 10768var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ "./node_modules/core-js/internals/define-iterator.js"); 10769var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 10770var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 10771 10772var ARRAY_ITERATOR = 'Array Iterator'; 10773var setInternalState = InternalStateModule.set; 10774var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); 10775 10776// `Array.prototype.entries` method 10777// https://tc39.es/ecma262/#sec-array.prototype.entries 10778// `Array.prototype.keys` method 10779// https://tc39.es/ecma262/#sec-array.prototype.keys 10780// `Array.prototype.values` method 10781// https://tc39.es/ecma262/#sec-array.prototype.values 10782// `Array.prototype[@@iterator]` method 10783// https://tc39.es/ecma262/#sec-array.prototype-@@iterator 10784// `CreateArrayIterator` internal method 10785// https://tc39.es/ecma262/#sec-createarrayiterator 10786module.exports = defineIterator(Array, 'Array', function (iterated, kind) { 10787 setInternalState(this, { 10788 type: ARRAY_ITERATOR, 10789 target: toIndexedObject(iterated), // target 10790 index: 0, // next index 10791 kind: kind // kind 10792 }); 10793// `%ArrayIteratorPrototype%.next` method 10794// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next 10795}, function () { 10796 var state = getInternalState(this); 10797 var target = state.target; 10798 var kind = state.kind; 10799 var index = state.index++; 10800 if (!target || index >= target.length) { 10801 state.target = undefined; 10802 return { value: undefined, done: true }; 10803 } 10804 if (kind == 'keys') return { value: index, done: false }; 10805 if (kind == 'values') return { value: target[index], done: false }; 10806 return { value: [index, target[index]], done: false }; 10807}, 'values'); 10808 10809// argumentsList[@@iterator] is %ArrayProto_values% 10810// https://tc39.es/ecma262/#sec-createunmappedargumentsobject 10811// https://tc39.es/ecma262/#sec-createmappedargumentsobject 10812var values = Iterators.Arguments = Iterators.Array; 10813 10814// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables 10815addToUnscopables('keys'); 10816addToUnscopables('values'); 10817addToUnscopables('entries'); 10818 10819// V8 ~ Chrome 45- bug 10820if (!IS_PURE && DESCRIPTORS && values.name !== 'values') try { 10821 defineProperty(values, 'name', { value: 'values' }); 10822} catch (error) { /* empty */ } 10823 10824 10825/***/ }), 10826
vendor: 3,342 bytes, lines 10827-10887
10827/***/ "./node_modules/core-js/modules/es.array.slice.js": 10828/*!********************************************************!*\ 10829 !*** ./node_modules/core-js/modules/es.array.slice.js ***! 10830 \********************************************************/ 10831/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 10832 10833"use strict"; 10834 10835var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 10836var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 10837var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js"); 10838var isConstructor = __webpack_require__(/*! ../internals/is-constructor */ "./node_modules/core-js/internals/is-constructor.js"); 10839var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 10840var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/core-js/internals/to-absolute-index.js"); 10841var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "./node_modules/core-js/internals/length-of-array-like.js"); 10842var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 10843var createProperty = __webpack_require__(/*! ../internals/create-property */ "./node_modules/core-js/internals/create-property.js"); 10844var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 10845var arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ "./node_modules/core-js/internals/array-method-has-species-support.js"); 10846var un$Slice = __webpack_require__(/*! ../internals/array-slice */ "./node_modules/core-js/internals/array-slice.js"); 10847 10848var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); 10849 10850var SPECIES = wellKnownSymbol('species'); 10851var Array = global.Array; 10852var max = Math.max; 10853 10854// `Array.prototype.slice` method 10855// https://tc39.es/ecma262/#sec-array.prototype.slice 10856// fallback for not array-like ES3 strings and DOM objects 10857$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { 10858 slice: function slice(start, end) { 10859 var O = toIndexedObject(this); 10860 var length = lengthOfArrayLike(O); 10861 var k = toAbsoluteIndex(start, length); 10862 var fin = toAbsoluteIndex(end === undefined ? length : end, length); 10863 // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible 10864 var Constructor, result, n; 10865 if (isArray(O)) { 10866 Constructor = O.constructor; 10867 // cross-realm fallback 10868 if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) { 10869 Constructor = undefined; 10870 } else if (isObject(Constructor)) { 10871 Constructor = Constructor[SPECIES]; 10872 if (Constructor === null) Constructor = undefined; 10873 } 10874 if (Constructor === Array || Constructor === undefined) { 10875 return un$Slice(O, k, fin); 10876 } 10877 } 10878 result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0)); 10879 for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); 10880 result.length = n; 10881 return result; 10882 } 10883}); 10884 10885 10886/***/ }), 10887
vendor: 925 bytes, lines 10888-10911
10888/***/ "./node_modules/core-js/modules/es.date.now.js": 10889/*!*****************************************************!*\ 10890 !*** ./node_modules/core-js/modules/es.date.now.js ***! 10891 \*****************************************************/ 10892/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 10893 10894var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 10895var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 10896var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 10897 10898var Date = global.Date; 10899var getTime = uncurryThis(Date.prototype.getTime); 10900 10901// `Date.now` method 10902// https://tc39.es/ecma262/#sec-date.now 10903$({ target: 'Date', stat: true }, { 10904 now: function now() { 10905 return getTime(new Date()); 10906 } 10907}); 10908 10909 10910/***/ }), 10911
vendor: 1,189 bytes, lines 10912-10939
10912/***/ "./node_modules/core-js/modules/es.date.to-string.js": 10913/*!***********************************************************!*\ 10914 !*** ./node_modules/core-js/modules/es.date.to-string.js ***! 10915 \***********************************************************/ 10916/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 10917 10918var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 10919var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 10920 10921var DatePrototype = Date.prototype; 10922var INVALID_DATE = 'Invalid Date'; 10923var TO_STRING = 'toString'; 10924var un$DateToString = uncurryThis(DatePrototype[TO_STRING]); 10925var getTime = uncurryThis(DatePrototype.getTime); 10926 10927// `Date.prototype.toString` method 10928// https://tc39.es/ecma262/#sec-date.prototype.tostring 10929if (String(new Date(NaN)) != INVALID_DATE) { 10930 redefine(DatePrototype, TO_STRING, function toString() { 10931 var value = getTime(this); 10932 // eslint-disable-next-line no-self-compare -- NaN check 10933 return value === value ? un$DateToString(this) : INVALID_DATE; 10934 }); 10935} 10936 10937 10938/***/ }), 10939
vendor: 1,536 bytes, lines 10940-10974
10940/***/ "./node_modules/core-js/modules/es.function.name.js": 10941/*!**********************************************************!*\ 10942 !*** ./node_modules/core-js/modules/es.function.name.js ***! 10943 \**********************************************************/ 10944/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 10945 10946var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 10947var FUNCTION_NAME_EXISTS = (__webpack_require__(/*! ../internals/function-name */ "./node_modules/core-js/internals/function-name.js").EXISTS); 10948var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 10949var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f); 10950 10951var FunctionPrototype = Function.prototype; 10952var functionToString = uncurryThis(FunctionPrototype.toString); 10953var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; 10954var regExpExec = uncurryThis(nameRE.exec); 10955var NAME = 'name'; 10956 10957// Function instances `.name` property 10958// https://tc39.es/ecma262/#sec-function-instances-name 10959if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) { 10960 defineProperty(FunctionPrototype, NAME, { 10961 configurable: true, 10962 get: function () { 10963 try { 10964 return regExpExec(nameRE, functionToString(this))[1]; 10965 } catch (error) { 10966 return ''; 10967 } 10968 } 10969 }); 10970} 10971 10972 10973/***/ }), 10974
vendor: 5,511 bytes, lines 10975-11073
10975/***/ "./node_modules/core-js/modules/es.number.constructor.js": 10976/*!***************************************************************!*\ 10977 !*** ./node_modules/core-js/modules/es.number.constructor.js ***! 10978 \***************************************************************/ 10979/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 10980 10981"use strict"; 10982 10983var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 10984var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 10985var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 10986var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js"); 10987var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 10988var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 10989var inheritIfRequired = __webpack_require__(/*! ../internals/inherit-if-required */ "./node_modules/core-js/internals/inherit-if-required.js"); 10990var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "./node_modules/core-js/internals/object-is-prototype-of.js"); 10991var isSymbol = __webpack_require__(/*! ../internals/is-symbol */ "./node_modules/core-js/internals/is-symbol.js"); 10992var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js"); 10993var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 10994var getOwnPropertyNames = (__webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js").f); 10995var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f); 10996var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f); 10997var thisNumberValue = __webpack_require__(/*! ../internals/this-number-value */ "./node_modules/core-js/internals/this-number-value.js"); 10998var trim = (__webpack_require__(/*! ../internals/string-trim */ "./node_modules/core-js/internals/string-trim.js").trim); 10999 11000var NUMBER = 'Number'; 11001var NativeNumber = global[NUMBER]; 11002var NumberPrototype = NativeNumber.prototype; 11003var TypeError = global.TypeError; 11004var arraySlice = uncurryThis(''.slice); 11005var charCodeAt = uncurryThis(''.charCodeAt); 11006 11007// `ToNumeric` abstract operation 11008// https://tc39.es/ecma262/#sec-tonumeric 11009var toNumeric = function (value) { 11010 var primValue = toPrimitive(value, 'number'); 11011 return typeof primValue == 'bigint' ? primValue : toNumber(primValue); 11012}; 11013 11014// `ToNumber` abstract operation 11015// https://tc39.es/ecma262/#sec-tonumber 11016var toNumber = function (argument) { 11017 var it = toPrimitive(argument, 'number'); 11018 var first, third, radix, maxCode, digits, length, index, code; 11019 if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number'); 11020 if (typeof it == 'string' && it.length > 2) { 11021 it = trim(it); 11022 first = charCodeAt(it, 0); 11023 if (first === 43 || first === 45) { 11024 third = charCodeAt(it, 2); 11025 if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix 11026 } else if (first === 48) { 11027 switch (charCodeAt(it, 1)) { 11028 case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i 11029 case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i 11030 default: return +it; 11031 } 11032 digits = arraySlice(it, 2); 11033 length = digits.length; 11034 for (index = 0; index < length; index++) { 11035 code = charCodeAt(digits, index); 11036 // parseInt parses a string to a first unavailable symbol 11037 // but ToNumber should return NaN if a string contains unavailable symbols 11038 if (code < 48 || code > maxCode) return NaN; 11039 } return parseInt(digits, radix); 11040 } 11041 } return +it; 11042}; 11043 11044// `Number` constructor 11045// https://tc39.es/ecma262/#sec-number-constructor 11046if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) { 11047 var NumberWrapper = function Number(value) { 11048 var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value)); 11049 var dummy = this; 11050 // check on 1..constructor(foo) case 11051 return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); }) 11052 ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n; 11053 }; 11054 for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : ( 11055 // ES3: 11056 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + 11057 // ES2015 (in case, if modules with ES2015 Number statics required before): 11058 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' + 11059 // ESNext 11060 'fromString,range' 11061 ).split(','), j = 0, key; keys.length > j; j++) { 11062 if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) { 11063 defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key)); 11064 } 11065 } 11066 NumberWrapper.prototype = NumberPrototype; 11067 NumberPrototype.constructor = NumberWrapper; 11068 redefine(global, NUMBER, NumberWrapper); 11069} 11070 11071 11072/***/ }), 11073
vendor: 816 bytes, lines 11074-11092
11074/***/ "./node_modules/core-js/modules/es.object.assign.js": 11075/*!**********************************************************!*\ 11076 !*** ./node_modules/core-js/modules/es.object.assign.js ***! 11077 \**********************************************************/ 11078/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 11079 11080var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 11081var assign = __webpack_require__(/*! ../internals/object-assign */ "./node_modules/core-js/internals/object-assign.js"); 11082 11083// `Object.assign` method 11084// https://tc39.es/ecma262/#sec-object.assign 11085// eslint-disable-next-line es/no-object-assign -- required for testing 11086$({ target: 'Object', stat: true, forced: Object.assign !== assign }, { 11087 assign: assign 11088}); 11089 11090 11091/***/ }), 11092
vendor: 960 bytes, lines 11093-11111
11093/***/ "./node_modules/core-js/modules/es.object.to-string.js": 11094/*!*************************************************************!*\ 11095 !*** ./node_modules/core-js/modules/es.object.to-string.js ***! 11096 \*************************************************************/ 11097/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 11098 11099var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js"); 11100var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 11101var toString = __webpack_require__(/*! ../internals/object-to-string */ "./node_modules/core-js/internals/object-to-string.js"); 11102 11103// `Object.prototype.toString` method 11104// https://tc39.es/ecma262/#sec-object.prototype.tostring 11105if (!TO_STRING_TAG_SUPPORT) { 11106 redefine(Object.prototype, 'toString', toString, { unsafe: true }); 11107} 11108 11109 11110/***/ }), 11111
vendor: 746 bytes, lines 11112-11129
11112/***/ "./node_modules/core-js/modules/es.parse-float.js": 11113/*!********************************************************!*\ 11114 !*** ./node_modules/core-js/modules/es.parse-float.js ***! 11115 \********************************************************/ 11116/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 11117 11118var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 11119var $parseFloat = __webpack_require__(/*! ../internals/number-parse-float */ "./node_modules/core-js/internals/number-parse-float.js"); 11120 11121// `parseFloat` method 11122// https://tc39.es/ecma262/#sec-parsefloat-string 11123$({ global: true, forced: parseFloat != $parseFloat }, { 11124 parseFloat: $parseFloat 11125}); 11126 11127 11128/***/ }), 11129
vendor: 726 bytes, lines 11130-11147
11130/***/ "./node_modules/core-js/modules/es.parse-int.js": 11131/*!******************************************************!*\ 11132 !*** ./node_modules/core-js/modules/es.parse-int.js ***! 11133 \******************************************************/ 11134/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 11135 11136var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 11137var $parseInt = __webpack_require__(/*! ../internals/number-parse-int */ "./node_modules/core-js/internals/number-parse-int.js"); 11138 11139// `parseInt` method 11140// https://tc39.es/ecma262/#sec-parseint-string-radix 11141$({ global: true, forced: parseInt != $parseInt }, { 11142 parseInt: $parseInt 11143}); 11144 11145 11146/***/ }), 11147
vendor: 2,679 bytes, lines 11148-11198
11148/***/ "./node_modules/core-js/modules/es.promise.finally.js": 11149/*!************************************************************!*\ 11150 !*** ./node_modules/core-js/modules/es.promise.finally.js ***! 11151 \************************************************************/ 11152/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 11153 11154"use strict"; 11155 11156var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 11157var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 11158var NativePromise = __webpack_require__(/*! ../internals/native-promise-constructor */ "./node_modules/core-js/internals/native-promise-constructor.js"); 11159var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 11160var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 11161var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 11162var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ "./node_modules/core-js/internals/species-constructor.js"); 11163var promiseResolve = __webpack_require__(/*! ../internals/promise-resolve */ "./node_modules/core-js/internals/promise-resolve.js"); 11164var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 11165 11166// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829 11167var NON_GENERIC = !!NativePromise && fails(function () { 11168 NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ }); 11169}); 11170 11171// `Promise.prototype.finally` method 11172// https://tc39.es/ecma262/#sec-promise.prototype.finally 11173$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { 11174 'finally': function (onFinally) { 11175 var C = speciesConstructor(this, getBuiltIn('Promise')); 11176 var isFunction = isCallable(onFinally); 11177 return this.then( 11178 isFunction ? function (x) { 11179 return promiseResolve(C, onFinally()).then(function () { return x; }); 11180 } : onFinally, 11181 isFunction ? function (e) { 11182 return promiseResolve(C, onFinally()).then(function () { throw e; }); 11183 } : onFinally 11184 ); 11185 } 11186}); 11187 11188// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then` 11189if (!IS_PURE && isCallable(NativePromise)) { 11190 var method = getBuiltIn('Promise').prototype['finally']; 11191 if (NativePromise.prototype['finally'] !== method) { 11192 redefine(NativePromise.prototype, 'finally', method, { unsafe: true }); 11193 } 11194} 11195 11196 11197/***/ }), 11198
vendor: 16,828 bytes, lines 11199-11610
11199/***/ "./node_modules/core-js/modules/es.promise.js": 11200/*!****************************************************!*\ 11201 !*** ./node_modules/core-js/modules/es.promise.js ***! 11202 \****************************************************/ 11203/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 11204 11205"use strict"; 11206 11207var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 11208var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 11209var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 11210var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 11211var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 11212var NativePromise = __webpack_require__(/*! ../internals/native-promise-constructor */ "./node_modules/core-js/internals/native-promise-constructor.js"); 11213var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 11214var redefineAll = __webpack_require__(/*! ../internals/redefine-all */ "./node_modules/core-js/internals/redefine-all.js"); 11215var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "./node_modules/core-js/internals/object-set-prototype-of.js"); 11216var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js"); 11217var setSpecies = __webpack_require__(/*! ../internals/set-species */ "./node_modules/core-js/internals/set-species.js"); 11218var aCallable = __webpack_require__(/*! ../internals/a-callable */ "./node_modules/core-js/internals/a-callable.js"); 11219var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 11220var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 11221var anInstance = __webpack_require__(/*! ../internals/an-instance */ "./node_modules/core-js/internals/an-instance.js"); 11222var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js"); 11223var iterate = __webpack_require__(/*! ../internals/iterate */ "./node_modules/core-js/internals/iterate.js"); 11224var checkCorrectnessOfIteration = __webpack_require__(/*! ../internals/check-correctness-of-iteration */ "./node_modules/core-js/internals/check-correctness-of-iteration.js"); 11225var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ "./node_modules/core-js/internals/species-constructor.js"); 11226var task = (__webpack_require__(/*! ../internals/task */ "./node_modules/core-js/internals/task.js").set); 11227var microtask = __webpack_require__(/*! ../internals/microtask */ "./node_modules/core-js/internals/microtask.js"); 11228var promiseResolve = __webpack_require__(/*! ../internals/promise-resolve */ "./node_modules/core-js/internals/promise-resolve.js"); 11229var hostReportErrors = __webpack_require__(/*! ../internals/host-report-errors */ "./node_modules/core-js/internals/host-report-errors.js"); 11230var newPromiseCapabilityModule = __webpack_require__(/*! ../internals/new-promise-capability */ "./node_modules/core-js/internals/new-promise-capability.js"); 11231var perform = __webpack_require__(/*! ../internals/perform */ "./node_modules/core-js/internals/perform.js"); 11232var Queue = __webpack_require__(/*! ../internals/queue */ "./node_modules/core-js/internals/queue.js"); 11233var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); 11234var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js"); 11235var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 11236var IS_BROWSER = __webpack_require__(/*! ../internals/engine-is-browser */ "./node_modules/core-js/internals/engine-is-browser.js"); 11237var IS_NODE = __webpack_require__(/*! ../internals/engine-is-node */ "./node_modules/core-js/internals/engine-is-node.js"); 11238var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ "./node_modules/core-js/internals/engine-v8-version.js"); 11239 11240var SPECIES = wellKnownSymbol('species'); 11241var PROMISE = 'Promise'; 11242 11243var getInternalState = InternalStateModule.getterFor(PROMISE); 11244var setInternalState = InternalStateModule.set; 11245var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); 11246var NativePromisePrototype = NativePromise && NativePromise.prototype; 11247var PromiseConstructor = NativePromise; 11248var PromisePrototype = NativePromisePrototype; 11249var TypeError = global.TypeError; 11250var document = global.document; 11251var process = global.process; 11252var newPromiseCapability = newPromiseCapabilityModule.f; 11253var newGenericPromiseCapability = newPromiseCapability; 11254 11255var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); 11256var NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent); 11257var UNHANDLED_REJECTION = 'unhandledrejection'; 11258var REJECTION_HANDLED = 'rejectionhandled'; 11259var PENDING = 0; 11260var FULFILLED = 1; 11261var REJECTED = 2; 11262var HANDLED = 1; 11263var UNHANDLED = 2; 11264var SUBCLASSING = false; 11265 11266var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; 11267 11268var FORCED = isForced(PROMISE, function () { 11269 var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor); 11270 var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor); 11271 // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables 11272 // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 11273 // We can't detect it synchronously, so just check versions 11274 if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; 11275 // We need Promise#finally in the pure version for preventing prototype pollution 11276 if (IS_PURE && !PromisePrototype['finally']) return true; 11277 // We can't use @@species feature detection in V8 since it causes 11278 // deoptimization and performance degradation 11279 // https://github.com/zloirock/core-js/issues/679 11280 if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false; 11281 // Detect correctness of subclassing with @@species support 11282 var promise = new PromiseConstructor(function (resolve) { resolve(1); }); 11283 var FakePromise = function (exec) { 11284 exec(function () { /* empty */ }, function () { /* empty */ }); 11285 }; 11286 var constructor = promise.constructor = {}; 11287 constructor[SPECIES] = FakePromise; 11288 SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; 11289 if (!SUBCLASSING) return true; 11290 // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test 11291 return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT; 11292}); 11293 11294var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) { 11295 PromiseConstructor.all(iterable)['catch'](function () { /* empty */ }); 11296}); 11297 11298// helpers 11299var isThenable = function (it) { 11300 var then; 11301 return isObject(it) && isCallable(then = it.then) ? then : false; 11302}; 11303 11304var callReaction = function (reaction, state) { 11305 var value = state.value; 11306 var ok = state.state == FULFILLED; 11307 var handler = ok ? reaction.ok : reaction.fail; 11308 var resolve = reaction.resolve; 11309 var reject = reaction.reject; 11310 var domain = reaction.domain; 11311 var result, then, exited; 11312 try { 11313 if (handler) { 11314 if (!ok) { 11315 if (state.rejection === UNHANDLED) onHandleUnhandled(state); 11316 state.rejection = HANDLED; 11317 } 11318 if (handler === true) result = value; 11319 else { 11320 if (domain) domain.enter(); 11321 result = handler(value); // can throw 11322 if (domain) { 11323 domain.exit(); 11324 exited = true; 11325 } 11326 } 11327 if (result === reaction.promise) { 11328 reject(TypeError('Promise-chain cycle')); 11329 } else if (then = isThenable(result)) { 11330 call(then, result, resolve, reject); 11331 } else resolve(result); 11332 } else reject(value); 11333 } catch (error) { 11334 if (domain && !exited) domain.exit(); 11335 reject(error); 11336 } 11337}; 11338 11339var notify = function (state, isReject) { 11340 if (state.notified) return; 11341 state.notified = true; 11342 microtask(function () { 11343 var reactions = state.reactions; 11344 var reaction; 11345 while (reaction = reactions.get()) { 11346 callReaction(reaction, state); 11347 } 11348 state.notified = false; 11349 if (isReject && !state.rejection) onUnhandled(state); 11350 }); 11351}; 11352 11353var dispatchEvent = function (name, promise, reason) { 11354 var event, handler; 11355 if (DISPATCH_EVENT) { 11356 event = document.createEvent('Event'); 11357 event.promise = promise; 11358 event.reason = reason; 11359 event.initEvent(name, false, true); 11360 global.dispatchEvent(event); 11361 } else event = { promise: promise, reason: reason }; 11362 if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event); 11363 else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); 11364}; 11365 11366var onUnhandled = function (state) { 11367 call(task, global, function () { 11368 var promise = state.facade; 11369 var value = state.value; 11370 var IS_UNHANDLED = isUnhandled(state); 11371 var result; 11372 if (IS_UNHANDLED) { 11373 result = perform(function () { 11374 if (IS_NODE) { 11375 process.emit('unhandledRejection', value, promise); 11376 } else dispatchEvent(UNHANDLED_REJECTION, promise, value); 11377 }); 11378 // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should 11379 state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; 11380 if (result.error) throw result.value; 11381 } 11382 }); 11383}; 11384 11385var isUnhandled = function (state) { 11386 return state.rejection !== HANDLED && !state.parent; 11387}; 11388 11389var onHandleUnhandled = function (state) { 11390 call(task, global, function () { 11391 var promise = state.facade; 11392 if (IS_NODE) { 11393 process.emit('rejectionHandled', promise); 11394 } else dispatchEvent(REJECTION_HANDLED, promise, state.value); 11395 }); 11396}; 11397 11398var bind = function (fn, state, unwrap) { 11399 return function (value) { 11400 fn(state, value, unwrap); 11401 }; 11402}; 11403 11404var internalReject = function (state, value, unwrap) { 11405 if (state.done) return; 11406 state.done = true; 11407 if (unwrap) state = unwrap; 11408 state.value = value; 11409 state.state = REJECTED; 11410 notify(state, true); 11411}; 11412 11413var internalResolve = function (state, value, unwrap) { 11414 if (state.done) return; 11415 state.done = true; 11416 if (unwrap) state = unwrap; 11417 try { 11418 if (state.facade === value) throw TypeError("Promise can't be resolved itself"); 11419 var then = isThenable(value); 11420 if (then) { 11421 microtask(function () { 11422 var wrapper = { done: false }; 11423 try { 11424 call(then, value, 11425 bind(internalResolve, wrapper, state), 11426 bind(internalReject, wrapper, state) 11427 ); 11428 } catch (error) { 11429 internalReject(wrapper, error, state); 11430 } 11431 }); 11432 } else { 11433 state.value = value; 11434 state.state = FULFILLED; 11435 notify(state, false); 11436 } 11437 } catch (error) { 11438 internalReject({ done: false }, error, state); 11439 } 11440}; 11441 11442// constructor polyfill 11443if (FORCED) { 11444 // 25.4.3.1 Promise(executor) 11445 PromiseConstructor = function Promise(executor) { 11446 anInstance(this, PromisePrototype); 11447 aCallable(executor); 11448 call(Internal, this); 11449 var state = getInternalState(this); 11450 try { 11451 executor(bind(internalResolve, state), bind(internalReject, state)); 11452 } catch (error) { 11453 internalReject(state, error); 11454 } 11455 }; 11456 PromisePrototype = PromiseConstructor.prototype; 11457 // eslint-disable-next-line no-unused-vars -- required for `.length` 11458 Internal = function Promise(executor) { 11459 setInternalState(this, { 11460 type: PROMISE, 11461 done: false, 11462 notified: false, 11463 parent: false, 11464 reactions: new Queue(), 11465 rejection: false, 11466 state: PENDING, 11467 value: undefined 11468 }); 11469 }; 11470 Internal.prototype = redefineAll(PromisePrototype, { 11471 // `Promise.prototype.then` method 11472 // https://tc39.es/ecma262/#sec-promise.prototype.then 11473 then: function then(onFulfilled, onRejected) { 11474 var state = getInternalPromiseState(this); 11475 var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); 11476 state.parent = true; 11477 reaction.ok = isCallable(onFulfilled) ? onFulfilled : true; 11478 reaction.fail = isCallable(onRejected) && onRejected; 11479 reaction.domain = IS_NODE ? process.domain : undefined; 11480 if (state.state == PENDING) state.reactions.add(reaction); 11481 else microtask(function () { 11482 callReaction(reaction, state); 11483 }); 11484 return reaction.promise; 11485 }, 11486 // `Promise.prototype.catch` method 11487 // https://tc39.es/ecma262/#sec-promise.prototype.catch 11488 'catch': function (onRejected) { 11489 return this.then(undefined, onRejected); 11490 } 11491 }); 11492 OwnPromiseCapability = function () { 11493 var promise = new Internal(); 11494 var state = getInternalState(promise); 11495 this.promise = promise; 11496 this.resolve = bind(internalResolve, state); 11497 this.reject = bind(internalReject, state); 11498 }; 11499 newPromiseCapabilityModule.f = newPromiseCapability = function (C) { 11500 return C === PromiseConstructor || C === PromiseWrapper 11501 ? new OwnPromiseCapability(C) 11502 : newGenericPromiseCapability(C); 11503 }; 11504 11505 if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) { 11506 nativeThen = NativePromisePrototype.then; 11507 11508 if (!SUBCLASSING) { 11509 // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs 11510 redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) { 11511 var that = this; 11512 return new PromiseConstructor(function (resolve, reject) { 11513 call(nativeThen, that, resolve, reject); 11514 }).then(onFulfilled, onRejected); 11515 // https://github.com/zloirock/core-js/issues/640 11516 }, { unsafe: true }); 11517 11518 // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` 11519 redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { unsafe: true }); 11520 } 11521 11522 // make `.constructor === Promise` work for native promise-based APIs 11523 try { 11524 delete NativePromisePrototype.constructor; 11525 } catch (error) { /* empty */ } 11526 11527 // make `instanceof Promise` work for native promise-based APIs 11528 if (setPrototypeOf) { 11529 setPrototypeOf(NativePromisePrototype, PromisePrototype); 11530 } 11531 } 11532} 11533 11534$({ global: true, wrap: true, forced: FORCED }, { 11535 Promise: PromiseConstructor 11536}); 11537 11538setToStringTag(PromiseConstructor, PROMISE, false, true); 11539setSpecies(PROMISE); 11540 11541PromiseWrapper = getBuiltIn(PROMISE); 11542 11543// statics 11544$({ target: PROMISE, stat: true, forced: FORCED }, { 11545 // `Promise.reject` method 11546 // https://tc39.es/ecma262/#sec-promise.reject 11547 reject: function reject(r) { 11548 var capability = newPromiseCapability(this); 11549 call(capability.reject, undefined, r); 11550 return capability.promise; 11551 } 11552}); 11553 11554$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, { 11555 // `Promise.resolve` method 11556 // https://tc39.es/ecma262/#sec-promise.resolve 11557 resolve: function resolve(x) { 11558 return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x); 11559 } 11560}); 11561 11562$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, { 11563 // `Promise.all` method 11564 // https://tc39.es/ecma262/#sec-promise.all 11565 all: function all(iterable) { 11566 var C = this; 11567 var capability = newPromiseCapability(C); 11568 var resolve = capability.resolve; 11569 var reject = capability.reject; 11570 var result = perform(function () { 11571 var $promiseResolve = aCallable(C.resolve); 11572 var values = []; 11573 var counter = 0; 11574 var remaining = 1; 11575 iterate(iterable, function (promise) { 11576 var index = counter++; 11577 var alreadyCalled = false; 11578 remaining++; 11579 call($promiseResolve, C, promise).then(function (value) { 11580 if (alreadyCalled) return; 11581 alreadyCalled = true; 11582 values[index] = value; 11583 --remaining || resolve(values); 11584 }, reject); 11585 }); 11586 --remaining || resolve(values); 11587 }); 11588 if (result.error) reject(result.value); 11589 return capability.promise; 11590 }, 11591 // `Promise.race` method 11592 // https://tc39.es/ecma262/#sec-promise.race 11593 race: function race(iterable) { 11594 var C = this; 11595 var capability = newPromiseCapability(C); 11596 var reject = capability.reject; 11597 var result = perform(function () { 11598 var $promiseResolve = aCallable(C.resolve); 11599 iterate(iterable, function (promise) { 11600 call($promiseResolve, C, promise).then(capability.resolve, reject); 11601 }); 11602 }); 11603 if (result.error) reject(result.value); 11604 return capability.promise; 11605 } 11606}); 11607 11608 11609/***/ }), 11610
vendor: 751 bytes, lines 11611-11630
11611/***/ "./node_modules/core-js/modules/es.regexp.exec.js": 11612/*!********************************************************!*\ 11613 !*** ./node_modules/core-js/modules/es.regexp.exec.js ***! 11614 \********************************************************/ 11615/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 11616 11617"use strict"; 11618 11619var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 11620var exec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js"); 11621 11622// `RegExp.prototype.exec` method 11623// https://tc39.es/ecma262/#sec-regexp.prototype.exec 11624$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { 11625 exec: exec 11626}); 11627 11628 11629/***/ }), 11630
vendor: 1,734 bytes, lines 11631-11671
11631/***/ "./node_modules/core-js/modules/es.string.iterator.js": 11632/*!************************************************************!*\ 11633 !*** ./node_modules/core-js/modules/es.string.iterator.js ***! 11634 \************************************************************/ 11635/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 11636 11637"use strict"; 11638 11639var charAt = (__webpack_require__(/*! ../internals/string-multibyte */ "./node_modules/core-js/internals/string-multibyte.js").charAt); 11640var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js"); 11641var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); 11642var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ "./node_modules/core-js/internals/define-iterator.js"); 11643 11644var STRING_ITERATOR = 'String Iterator'; 11645var setInternalState = InternalStateModule.set; 11646var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); 11647 11648// `String.prototype[@@iterator]` method 11649// https://tc39.es/ecma262/#sec-string.prototype-@@iterator 11650defineIterator(String, 'String', function (iterated) { 11651 setInternalState(this, { 11652 type: STRING_ITERATOR, 11653 string: toString(iterated), 11654 index: 0 11655 }); 11656// `%StringIteratorPrototype%.next` method 11657// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next 11658}, function next() { 11659 var state = getInternalState(this); 11660 var string = state.string; 11661 var index = state.index; 11662 var point; 11663 if (index >= string.length) return { value: undefined, done: true }; 11664 point = charAt(string, index); 11665 state.index += point.length; 11666 return { value: point, done: false }; 11667}); 11668 11669 11670/***/ }), 11671
vendor: 4,417 bytes, lines 11672-11758
11672/***/ "./node_modules/core-js/modules/es.string.replace-all.js": 11673/*!***************************************************************!*\ 11674 !*** ./node_modules/core-js/modules/es.string.replace-all.js ***! 11675 \***************************************************************/ 11676/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 11677 11678"use strict"; 11679 11680var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 11681var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 11682var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 11683var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 11684var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); 11685var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 11686var isRegExp = __webpack_require__(/*! ../internals/is-regexp */ "./node_modules/core-js/internals/is-regexp.js"); 11687var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js"); 11688var getMethod = __webpack_require__(/*! ../internals/get-method */ "./node_modules/core-js/internals/get-method.js"); 11689var regExpFlags = __webpack_require__(/*! ../internals/regexp-flags */ "./node_modules/core-js/internals/regexp-flags.js"); 11690var getSubstitution = __webpack_require__(/*! ../internals/get-substitution */ "./node_modules/core-js/internals/get-substitution.js"); 11691var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 11692var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 11693 11694var REPLACE = wellKnownSymbol('replace'); 11695var RegExpPrototype = RegExp.prototype; 11696var TypeError = global.TypeError; 11697var getFlags = uncurryThis(regExpFlags); 11698var indexOf = uncurryThis(''.indexOf); 11699var replace = uncurryThis(''.replace); 11700var stringSlice = uncurryThis(''.slice); 11701var max = Math.max; 11702 11703var stringIndexOf = function (string, searchValue, fromIndex) { 11704 if (fromIndex > string.length) return -1; 11705 if (searchValue === '') return fromIndex; 11706 return indexOf(string, searchValue, fromIndex); 11707}; 11708 11709// `String.prototype.replaceAll` method 11710// https://tc39.es/ecma262/#sec-string.prototype.replaceall 11711$({ target: 'String', proto: true }, { 11712 replaceAll: function replaceAll(searchValue, replaceValue) { 11713 var O = requireObjectCoercible(this); 11714 var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement; 11715 var position = 0; 11716 var endOfLastMatch = 0; 11717 var result = ''; 11718 if (searchValue != null) { 11719 IS_REG_EXP = isRegExp(searchValue); 11720 if (IS_REG_EXP) { 11721 flags = toString(requireObjectCoercible('flags' in RegExpPrototype 11722 ? searchValue.flags 11723 : getFlags(searchValue) 11724 )); 11725 if (!~indexOf(flags, 'g')) throw TypeError('`.replaceAll` does not allow non-global regexes'); 11726 } 11727 replacer = getMethod(searchValue, REPLACE); 11728 if (replacer) { 11729 return call(replacer, searchValue, O, replaceValue); 11730 } else if (IS_PURE && IS_REG_EXP) { 11731 return replace(toString(O), searchValue, replaceValue); 11732 } 11733 } 11734 string = toString(O); 11735 searchString = toString(searchValue); 11736 functionalReplace = isCallable(replaceValue); 11737 if (!functionalReplace) replaceValue = toString(replaceValue); 11738 searchLength = searchString.length; 11739 advanceBy = max(1, searchLength); 11740 position = stringIndexOf(string, searchString, 0); 11741 while (position !== -1) { 11742 replacement = functionalReplace 11743 ? toString(replaceValue(searchString, position, string)) 11744 : getSubstitution(searchString, string, position, [], undefined, replaceValue); 11745 result += stringSlice(string, endOfLastMatch, position) + replacement; 11746 endOfLastMatch = position + searchLength; 11747 position = stringIndexOf(string, searchString, position + advanceBy); 11748 } 11749 if (endOfLastMatch < string.length) { 11750 result += stringSlice(string, endOfLastMatch); 11751 } 11752 return result; 11753 } 11754}); 11755 11756 11757/***/ }), 11758
vendor: 7,045 bytes, lines 11759-11905
11759/***/ "./node_modules/core-js/modules/es.string.replace.js": 11760/*!***********************************************************!*\ 11761 !*** ./node_modules/core-js/modules/es.string.replace.js ***! 11762 \***********************************************************/ 11763/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 11764 11765"use strict"; 11766 11767var apply = __webpack_require__(/*! ../internals/function-apply */ "./node_modules/core-js/internals/function-apply.js"); 11768var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 11769var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 11770var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js"); 11771var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 11772var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 11773var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 11774var toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ "./node_modules/core-js/internals/to-integer-or-infinity.js"); 11775var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js"); 11776var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js"); 11777var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); 11778var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ "./node_modules/core-js/internals/advance-string-index.js"); 11779var getMethod = __webpack_require__(/*! ../internals/get-method */ "./node_modules/core-js/internals/get-method.js"); 11780var getSubstitution = __webpack_require__(/*! ../internals/get-substitution */ "./node_modules/core-js/internals/get-substitution.js"); 11781var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ "./node_modules/core-js/internals/regexp-exec-abstract.js"); 11782var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 11783 11784var REPLACE = wellKnownSymbol('replace'); 11785var max = Math.max; 11786var min = Math.min; 11787var concat = uncurryThis([].concat); 11788var push = uncurryThis([].push); 11789var stringIndexOf = uncurryThis(''.indexOf); 11790var stringSlice = uncurryThis(''.slice); 11791 11792var maybeToString = function (it) { 11793 return it === undefined ? it : String(it); 11794}; 11795 11796// IE <= 11 replaces $0 with the whole match, as if it was $& 11797// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 11798var REPLACE_KEEPS_$0 = (function () { 11799 // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing 11800 return 'a'.replace(/./, '$0') === '$0'; 11801})(); 11802 11803// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string 11804var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { 11805 if (/./[REPLACE]) { 11806 return /./[REPLACE]('a', '$0') === ''; 11807 } 11808 return false; 11809})(); 11810 11811var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { 11812 var re = /./; 11813 re.exec = function () { 11814 var result = []; 11815 result.groups = { a: '7' }; 11816 return result; 11817 }; 11818 // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive 11819 return ''.replace(re, '$<a>') !== '7'; 11820}); 11821 11822// @@replace logic 11823fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) { 11824 var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; 11825 11826 return [ 11827 // `String.prototype.replace` method 11828 // https://tc39.es/ecma262/#sec-string.prototype.replace 11829 function replace(searchValue, replaceValue) { 11830 var O = requireObjectCoercible(this); 11831 var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE); 11832 return replacer 11833 ? call(replacer, searchValue, O, replaceValue) 11834 : call(nativeReplace, toString(O), searchValue, replaceValue); 11835 }, 11836 // `RegExp.prototype[@@replace]` method 11837 // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace 11838 function (string, replaceValue) { 11839 var rx = anObject(this); 11840 var S = toString(string); 11841 11842 if ( 11843 typeof replaceValue == 'string' && 11844 stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 && 11845 stringIndexOf(replaceValue, '$<') === -1 11846 ) { 11847 var res = maybeCallNative(nativeReplace, rx, S, replaceValue); 11848 if (res.done) return res.value; 11849 } 11850 11851 var functionalReplace = isCallable(replaceValue); 11852 if (!functionalReplace) replaceValue = toString(replaceValue); 11853 11854 var global = rx.global; 11855 if (global) { 11856 var fullUnicode = rx.unicode; 11857 rx.lastIndex = 0; 11858 } 11859 var results = []; 11860 while (true) { 11861 var result = regExpExec(rx, S); 11862 if (result === null) break; 11863 11864 push(results, result); 11865 if (!global) break; 11866 11867 var matchStr = toString(result[0]); 11868 if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); 11869 } 11870 11871 var accumulatedResult = ''; 11872 var nextSourcePosition = 0; 11873 for (var i = 0; i < results.length; i++) { 11874 result = results[i]; 11875 11876 var matched = toString(result[0]); 11877 var position = max(min(toIntegerOrInfinity(result.index), S.length), 0); 11878 var captures = []; 11879 // NOTE: This is equivalent to 11880 // captures = result.slice(1).map(maybeToString) 11881 // but for some reason `nativeSlice.call(result, 1, result.length)` (called in 11882 // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and 11883 // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. 11884 for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j])); 11885 var namedCaptures = result.groups; 11886 if (functionalReplace) { 11887 var replacerArgs = concat([matched], captures, position, S); 11888 if (namedCaptures !== undefined) push(replacerArgs, namedCaptures); 11889 var replacement = toString(apply(replaceValue, undefined, replacerArgs)); 11890 } else { 11891 replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); 11892 } 11893 if (position >= nextSourcePosition) { 11894 accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement; 11895 nextSourcePosition = position + matched.length; 11896 } 11897 } 11898 return accumulatedResult + stringSlice(S, nextSourcePosition); 11899 } 11900 ]; 11901}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); 11902 11903 11904/***/ }), 11905
vendor: 8,222 bytes, lines 11906-12072
11906/***/ "./node_modules/core-js/modules/es.string.split.js": 11907/*!*********************************************************!*\ 11908 !*** ./node_modules/core-js/modules/es.string.split.js ***! 11909 \*********************************************************/ 11910/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 11911 11912"use strict"; 11913 11914var apply = __webpack_require__(/*! ../internals/function-apply */ "./node_modules/core-js/internals/function-apply.js"); 11915var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 11916var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 11917var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js"); 11918var isRegExp = __webpack_require__(/*! ../internals/is-regexp */ "./node_modules/core-js/internals/is-regexp.js"); 11919var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 11920var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); 11921var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ "./node_modules/core-js/internals/species-constructor.js"); 11922var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ "./node_modules/core-js/internals/advance-string-index.js"); 11923var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js"); 11924var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js"); 11925var getMethod = __webpack_require__(/*! ../internals/get-method */ "./node_modules/core-js/internals/get-method.js"); 11926var arraySlice = __webpack_require__(/*! ../internals/array-slice-simple */ "./node_modules/core-js/internals/array-slice-simple.js"); 11927var callRegExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ "./node_modules/core-js/internals/regexp-exec-abstract.js"); 11928var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js"); 11929var stickyHelpers = __webpack_require__(/*! ../internals/regexp-sticky-helpers */ "./node_modules/core-js/internals/regexp-sticky-helpers.js"); 11930var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 11931 11932var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; 11933var MAX_UINT32 = 0xFFFFFFFF; 11934var min = Math.min; 11935var $push = [].push; 11936var exec = uncurryThis(/./.exec); 11937var push = uncurryThis($push); 11938var stringSlice = uncurryThis(''.slice); 11939 11940// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec 11941// Weex JS has frozen built-in prototypes, so use try / catch wrapper 11942var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { 11943 // eslint-disable-next-line regexp/no-empty-group -- required for testing 11944 var re = /(?:)/; 11945 var originalExec = re.exec; 11946 re.exec = function () { return originalExec.apply(this, arguments); }; 11947 var result = 'ab'.split(re); 11948 return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; 11949}); 11950 11951// @@split logic 11952fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) { 11953 var internalSplit; 11954 if ( 11955 'abbc'.split(/(b)*/)[1] == 'c' || 11956 // eslint-disable-next-line regexp/no-empty-group -- required for testing 11957 'test'.split(/(?:)/, -1).length != 4 || 11958 'ab'.split(/(?:ab)*/).length != 2 || 11959 '.'.split(/(.?)(.?)/).length != 4 || 11960 // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing 11961 '.'.split(/()()/).length > 1 || 11962 ''.split(/.?/).length 11963 ) { 11964 // based on es5-shim implementation, need to rework it 11965 internalSplit = function (separator, limit) { 11966 var string = toString(requireObjectCoercible(this)); 11967 var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; 11968 if (lim === 0) return []; 11969 if (separator === undefined) return [string]; 11970 // If `separator` is not a regex, use native split 11971 if (!isRegExp(separator)) { 11972 return call(nativeSplit, string, separator, lim); 11973 } 11974 var output = []; 11975 var flags = (separator.ignoreCase ? 'i' : '') + 11976 (separator.multiline ? 'm' : '') + 11977 (separator.unicode ? 'u' : '') + 11978 (separator.sticky ? 'y' : ''); 11979 var lastLastIndex = 0; 11980 // Make `global` and avoid `lastIndex` issues by working with a copy 11981 var separatorCopy = new RegExp(separator.source, flags + 'g'); 11982 var match, lastIndex, lastLength; 11983 while (match = call(regexpExec, separatorCopy, string)) { 11984 lastIndex = separatorCopy.lastIndex; 11985 if (lastIndex > lastLastIndex) { 11986 push(output, stringSlice(string, lastLastIndex, match.index)); 11987 if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1)); 11988 lastLength = match[0].length; 11989 lastLastIndex = lastIndex; 11990 if (output.length >= lim) break; 11991 } 11992 if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop 11993 } 11994 if (lastLastIndex === string.length) { 11995 if (lastLength || !exec(separatorCopy, '')) push(output, ''); 11996 } else push(output, stringSlice(string, lastLastIndex)); 11997 return output.length > lim ? arraySlice(output, 0, lim) : output; 11998 }; 11999 // Chakra, V8 12000 } else if ('0'.split(undefined, 0).length) { 12001 internalSplit = function (separator, limit) { 12002 return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit); 12003 }; 12004 } else internalSplit = nativeSplit; 12005 12006 return [ 12007 // `String.prototype.split` method 12008 // https://tc39.es/ecma262/#sec-string.prototype.split 12009 function split(separator, limit) { 12010 var O = requireObjectCoercible(this); 12011 var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT); 12012 return splitter 12013 ? call(splitter, separator, O, limit) 12014 : call(internalSplit, toString(O), separator, limit); 12015 }, 12016 // `RegExp.prototype[@@split]` method 12017 // https://tc39.es/ecma262/#sec-regexp.prototype-@@split 12018 // 12019 // NOTE: This cannot be properly polyfilled in engines that don't support 12020 // the 'y' flag. 12021 function (string, limit) { 12022 var rx = anObject(this); 12023 var S = toString(string); 12024 var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit); 12025 12026 if (res.done) return res.value; 12027 12028 var C = speciesConstructor(rx, RegExp); 12029 12030 var unicodeMatching = rx.unicode; 12031 var flags = (rx.ignoreCase ? 'i' : '') + 12032 (rx.multiline ? 'm' : '') + 12033 (rx.unicode ? 'u' : '') + 12034 (UNSUPPORTED_Y ? 'g' : 'y'); 12035 12036 // ^(? + rx + ) is needed, in combination with some S slicing, to 12037 // simulate the 'y' flag. 12038 var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags); 12039 var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; 12040 if (lim === 0) return []; 12041 if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; 12042 var p = 0; 12043 var q = 0; 12044 var A = []; 12045 while (q < S.length) { 12046 splitter.lastIndex = UNSUPPORTED_Y ? 0 : q; 12047 var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S); 12048 var e; 12049 if ( 12050 z === null || 12051 (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p 12052 ) { 12053 q = advanceStringIndex(S, q, unicodeMatching); 12054 } else { 12055 push(A, stringSlice(S, p, q)); 12056 if (A.length === lim) return A; 12057 for (var i = 1; i <= z.length - 1; i++) { 12058 push(A, z[i]); 12059 if (A.length === lim) return A; 12060 } 12061 q = p = e; 12062 } 12063 } 12064 push(A, stringSlice(S, p)); 12065 return A; 12066 } 12067 ]; 12068}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y); 12069 12070 12071/***/ }), 12072
vendor: 3,600 bytes, lines 12073-12142
12073/***/ "./node_modules/core-js/modules/es.symbol.description.js": 12074/*!***************************************************************!*\ 12075 !*** ./node_modules/core-js/modules/es.symbol.description.js ***! 12076 \***************************************************************/ 12077/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 12078 12079"use strict"; 12080// `Symbol.prototype.description` getter 12081// https://tc39.es/ecma262/#sec-symbol.prototype.description 12082 12083var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 12084var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 12085var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 12086var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 12087var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 12088var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 12089var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "./node_modules/core-js/internals/object-is-prototype-of.js"); 12090var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js"); 12091var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f); 12092var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "./node_modules/core-js/internals/copy-constructor-properties.js"); 12093 12094var NativeSymbol = global.Symbol; 12095var SymbolPrototype = NativeSymbol && NativeSymbol.prototype; 12096 12097if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) || 12098 // Safari 12 bug 12099 NativeSymbol().description !== undefined 12100)) { 12101 var EmptyStringDescriptionStore = {}; 12102 // wrap Symbol constructor for correct work with undefined description 12103 var SymbolWrapper = function Symbol() { 12104 var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]); 12105 var result = isPrototypeOf(SymbolPrototype, this) 12106 ? new NativeSymbol(description) 12107 // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)' 12108 : description === undefined ? NativeSymbol() : NativeSymbol(description); 12109 if (description === '') EmptyStringDescriptionStore[result] = true; 12110 return result; 12111 }; 12112 12113 copyConstructorProperties(SymbolWrapper, NativeSymbol); 12114 SymbolWrapper.prototype = SymbolPrototype; 12115 SymbolPrototype.constructor = SymbolWrapper; 12116 12117 var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)'; 12118 var symbolToString = uncurryThis(SymbolPrototype.toString); 12119 var symbolValueOf = uncurryThis(SymbolPrototype.valueOf); 12120 var regexp = /^Symbol\((.*)\)[^)]+$/; 12121 var replace = uncurryThis(''.replace); 12122 var stringSlice = uncurryThis(''.slice); 12123 12124 defineProperty(SymbolPrototype, 'description', { 12125 configurable: true, 12126 get: function description() { 12127 var symbol = symbolValueOf(this); 12128 var string = symbolToString(symbol); 12129 if (hasOwn(EmptyStringDescriptionStore, symbol)) return ''; 12130 var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1'); 12131 return desc === '' ? undefined : desc; 12132 } 12133 }); 12134 12135 $({ global: true, forced: true }, { 12136 Symbol: SymbolWrapper 12137 }); 12138} 12139 12140 12141/***/ }), 12142
vendor: 644 bytes, lines 12143-12157
12143/***/ "./node_modules/core-js/modules/es.symbol.iterator.js": 12144/*!************************************************************!*\ 12145 !*** ./node_modules/core-js/modules/es.symbol.iterator.js ***! 12146 \************************************************************/ 12147/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 12148 12149var defineWellKnownSymbol = __webpack_require__(/*! ../internals/define-well-known-symbol */ "./node_modules/core-js/internals/define-well-known-symbol.js"); 12150 12151// `Symbol.iterator` well-known symbol 12152// https://tc39.es/ecma262/#sec-symbol.iterator 12153defineWellKnownSymbol('iterator'); 12154 12155 12156/***/ }), 12157
vendor: 16,815 bytes, lines 12158-12491
12158/***/ "./node_modules/core-js/modules/es.symbol.js": 12159/*!***************************************************!*\ 12160 !*** ./node_modules/core-js/modules/es.symbol.js ***! 12161 \***************************************************/ 12162/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 12163 12164"use strict"; 12165 12166var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 12167var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 12168var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 12169var apply = __webpack_require__(/*! ../internals/function-apply */ "./node_modules/core-js/internals/function-apply.js"); 12170var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js"); 12171var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js"); 12172var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 12173var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 12174var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js"); 12175var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 12176var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js"); 12177var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js"); 12178var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 12179var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 12180var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "./node_modules/core-js/internals/object-is-prototype-of.js"); 12181var isSymbol = __webpack_require__(/*! ../internals/is-symbol */ "./node_modules/core-js/internals/is-symbol.js"); 12182var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 12183var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); 12184var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 12185var toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ "./node_modules/core-js/internals/to-property-key.js"); 12186var $toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js"); 12187var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); 12188var nativeObjectCreate = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js"); 12189var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js"); 12190var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js"); 12191var getOwnPropertyNamesExternal = __webpack_require__(/*! ../internals/object-get-own-property-names-external */ "./node_modules/core-js/internals/object-get-own-property-names-external.js"); 12192var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js"); 12193var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js"); 12194var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 12195var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js"); 12196var arraySlice = __webpack_require__(/*! ../internals/array-slice */ "./node_modules/core-js/internals/array-slice.js"); 12197var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 12198var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js"); 12199var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js"); 12200var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); 12201var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js"); 12202var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 12203var wrappedWellKnownSymbolModule = __webpack_require__(/*! ../internals/well-known-symbol-wrapped */ "./node_modules/core-js/internals/well-known-symbol-wrapped.js"); 12204var defineWellKnownSymbol = __webpack_require__(/*! ../internals/define-well-known-symbol */ "./node_modules/core-js/internals/define-well-known-symbol.js"); 12205var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js"); 12206var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); 12207var $forEach = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").forEach); 12208 12209var HIDDEN = sharedKey('hidden'); 12210var SYMBOL = 'Symbol'; 12211var PROTOTYPE = 'prototype'; 12212var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); 12213 12214var setInternalState = InternalStateModule.set; 12215var getInternalState = InternalStateModule.getterFor(SYMBOL); 12216 12217var ObjectPrototype = Object[PROTOTYPE]; 12218var $Symbol = global.Symbol; 12219var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE]; 12220var TypeError = global.TypeError; 12221var QObject = global.QObject; 12222var $stringify = getBuiltIn('JSON', 'stringify'); 12223var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; 12224var nativeDefineProperty = definePropertyModule.f; 12225var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; 12226var nativePropertyIsEnumerable = propertyIsEnumerableModule.f; 12227var push = uncurryThis([].push); 12228 12229var AllSymbols = shared('symbols'); 12230var ObjectPrototypeSymbols = shared('op-symbols'); 12231var StringToSymbolRegistry = shared('string-to-symbol-registry'); 12232var SymbolToStringRegistry = shared('symbol-to-string-registry'); 12233var WellKnownSymbolsStore = shared('wks'); 12234 12235// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 12236var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; 12237 12238// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 12239var setSymbolDescriptor = DESCRIPTORS && fails(function () { 12240 return nativeObjectCreate(nativeDefineProperty({}, 'a', { 12241 get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } 12242 })).a != 7; 12243}) ? function (O, P, Attributes) { 12244 var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P); 12245 if (ObjectPrototypeDescriptor) delete ObjectPrototype[P]; 12246 nativeDefineProperty(O, P, Attributes); 12247 if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { 12248 nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor); 12249 } 12250} : nativeDefineProperty; 12251 12252var wrap = function (tag, description) { 12253 var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype); 12254 setInternalState(symbol, { 12255 type: SYMBOL, 12256 tag: tag, 12257 description: description 12258 }); 12259 if (!DESCRIPTORS) symbol.description = description; 12260 return symbol; 12261}; 12262 12263var $defineProperty = function defineProperty(O, P, Attributes) { 12264 if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes); 12265 anObject(O); 12266 var key = toPropertyKey(P); 12267 anObject(Attributes); 12268 if (hasOwn(AllSymbols, key)) { 12269 if (!Attributes.enumerable) { 12270 if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {})); 12271 O[HIDDEN][key] = true; 12272 } else { 12273 if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false; 12274 Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) }); 12275 } return setSymbolDescriptor(O, key, Attributes); 12276 } return nativeDefineProperty(O, key, Attributes); 12277}; 12278 12279var $defineProperties = function defineProperties(O, Properties) { 12280 anObject(O); 12281 var properties = toIndexedObject(Properties); 12282 var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); 12283 $forEach(keys, function (key) { 12284 if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]); 12285 }); 12286 return O; 12287}; 12288 12289var $create = function create(O, Properties) { 12290 return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties); 12291}; 12292 12293var $propertyIsEnumerable = function propertyIsEnumerable(V) { 12294 var P = toPropertyKey(V); 12295 var enumerable = call(nativePropertyIsEnumerable, this, P); 12296 if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false; 12297 return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P] 12298 ? enumerable : true; 12299}; 12300 12301var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { 12302 var it = toIndexedObject(O); 12303 var key = toPropertyKey(P); 12304 if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return; 12305 var descriptor = nativeGetOwnPropertyDescriptor(it, key); 12306 if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) { 12307 descriptor.enumerable = true; 12308 } 12309 return descriptor; 12310}; 12311 12312var $getOwnPropertyNames = function getOwnPropertyNames(O) { 12313 var names = nativeGetOwnPropertyNames(toIndexedObject(O)); 12314 var result = []; 12315 $forEach(names, function (key) { 12316 if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key); 12317 }); 12318 return result; 12319}; 12320 12321var $getOwnPropertySymbols = function getOwnPropertySymbols(O) { 12322 var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; 12323 var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); 12324 var result = []; 12325 $forEach(names, function (key) { 12326 if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) { 12327 push(result, AllSymbols[key]); 12328 } 12329 }); 12330 return result; 12331}; 12332 12333// `Symbol` constructor 12334// https://tc39.es/ecma262/#sec-symbol-constructor 12335if (!NATIVE_SYMBOL) { 12336 $Symbol = function Symbol() { 12337 if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor'); 12338 var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]); 12339 var tag = uid(description); 12340 var setter = function (value) { 12341 if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value); 12342 if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false; 12343 setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value)); 12344 }; 12345 if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter }); 12346 return wrap(tag, description); 12347 }; 12348 12349 SymbolPrototype = $Symbol[PROTOTYPE]; 12350 12351 redefine(SymbolPrototype, 'toString', function toString() { 12352 return getInternalState(this).tag; 12353 }); 12354 12355 redefine($Symbol, 'withoutSetter', function (description) { 12356 return wrap(uid(description), description); 12357 }); 12358 12359 propertyIsEnumerableModule.f = $propertyIsEnumerable; 12360 definePropertyModule.f = $defineProperty; 12361 getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor; 12362 getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames; 12363 getOwnPropertySymbolsModule.f = $getOwnPropertySymbols; 12364 12365 wrappedWellKnownSymbolModule.f = function (name) { 12366 return wrap(wellKnownSymbol(name), name); 12367 }; 12368 12369 if (DESCRIPTORS) { 12370 // https://github.com/tc39/proposal-Symbol-description 12371 nativeDefineProperty(SymbolPrototype, 'description', { 12372 configurable: true, 12373 get: function description() { 12374 return getInternalState(this).description; 12375 } 12376 }); 12377 if (!IS_PURE) { 12378 redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); 12379 } 12380 } 12381} 12382 12383$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, { 12384 Symbol: $Symbol 12385}); 12386 12387$forEach(objectKeys(WellKnownSymbolsStore), function (name) { 12388 defineWellKnownSymbol(name); 12389}); 12390 12391$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, { 12392 // `Symbol.for` method 12393 // https://tc39.es/ecma262/#sec-symbol.for 12394 'for': function (key) { 12395 var string = $toString(key); 12396 if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; 12397 var symbol = $Symbol(string); 12398 StringToSymbolRegistry[string] = symbol; 12399 SymbolToStringRegistry[symbol] = string; 12400 return symbol; 12401 }, 12402 // `Symbol.keyFor` method 12403 // https://tc39.es/ecma262/#sec-symbol.keyfor 12404 keyFor: function keyFor(sym) { 12405 if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol'); 12406 if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; 12407 }, 12408 useSetter: function () { USE_SETTER = true; }, 12409 useSimple: function () { USE_SETTER = false; } 12410}); 12411 12412$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, { 12413 // `Object.create` method 12414 // https://tc39.es/ecma262/#sec-object.create 12415 create: $create, 12416 // `Object.defineProperty` method 12417 // https://tc39.es/ecma262/#sec-object.defineproperty 12418 defineProperty: $defineProperty, 12419 // `Object.defineProperties` method 12420 // https://tc39.es/ecma262/#sec-object.defineproperties 12421 defineProperties: $defineProperties, 12422 // `Object.getOwnPropertyDescriptor` method 12423 // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors 12424 getOwnPropertyDescriptor: $getOwnPropertyDescriptor 12425}); 12426 12427$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { 12428 // `Object.getOwnPropertyNames` method 12429 // https://tc39.es/ecma262/#sec-object.getownpropertynames 12430 getOwnPropertyNames: $getOwnPropertyNames, 12431 // `Object.getOwnPropertySymbols` method 12432 // https://tc39.es/ecma262/#sec-object.getownpropertysymbols 12433 getOwnPropertySymbols: $getOwnPropertySymbols 12434}); 12435 12436// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives 12437// https://bugs.chromium.org/p/v8/issues/detail?id=3443 12438$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, { 12439 getOwnPropertySymbols: function getOwnPropertySymbols(it) { 12440 return getOwnPropertySymbolsModule.f(toObject(it)); 12441 } 12442}); 12443 12444// `JSON.stringify` method behavior with symbols 12445// https://tc39.es/ecma262/#sec-json.stringify 12446if ($stringify) { 12447 var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () { 12448 var symbol = $Symbol(); 12449 // MS Edge converts symbol values to JSON as {} 12450 return $stringify([symbol]) != '[null]' 12451 // WebKit converts symbol values to JSON as null 12452 || $stringify({ a: symbol }) != '{}' 12453 // V8 throws on boxed symbols 12454 || $stringify(Object(symbol)) != '{}'; 12455 }); 12456 12457 $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, { 12458 // eslint-disable-next-line no-unused-vars -- required for `.length` 12459 stringify: function stringify(it, replacer, space) { 12460 var args = arraySlice(arguments); 12461 var $replacer = replacer; 12462 if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined 12463 if (!isArray(replacer)) replacer = function (key, value) { 12464 if (isCallable($replacer)) value = call($replacer, this, key, value); 12465 if (!isSymbol(value)) return value; 12466 }; 12467 args[1] = replacer; 12468 return apply($stringify, null, args); 12469 } 12470 }); 12471} 12472 12473// `Symbol.prototype[@@toPrimitive]` method 12474// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive 12475if (!SymbolPrototype[TO_PRIMITIVE]) { 12476 var valueOf = SymbolPrototype.valueOf; 12477 // eslint-disable-next-line no-unused-vars -- required for .length 12478 redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) { 12479 // TODO: improve hint logic 12480 return call(valueOf, this); 12481 }); 12482} 12483// `Symbol.prototype[@@toStringTag]` property 12484// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag 12485setToStringTag($Symbol, SYMBOL); 12486 12487hiddenKeys[HIDDEN] = true; 12488 12489 12490/***/ }), 12491
vendor: 544 bytes, lines 12492-12503
12492/***/ "./node_modules/core-js/modules/esnext.string.replace-all.js": 12493/*!*******************************************************************!*\ 12494 !*** ./node_modules/core-js/modules/esnext.string.replace-all.js ***! 12495 \*******************************************************************/ 12496/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 12497 12498// TODO: Remove from `core-js@4` 12499__webpack_require__(/*! ../modules/es.string.replace-all */ "./node_modules/core-js/modules/es.string.replace-all.js"); 12500 12501 12502/***/ }), 12503
vendor: 1,657 bytes, lines 12504-12535
12504/***/ "./node_modules/core-js/modules/web.dom-collections.for-each.js": 12505/*!**********************************************************************!*\ 12506 !*** ./node_modules/core-js/modules/web.dom-collections.for-each.js ***! 12507 \**********************************************************************/ 12508/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 12509 12510var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 12511var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ "./node_modules/core-js/internals/dom-iterables.js"); 12512var DOMTokenListPrototype = __webpack_require__(/*! ../internals/dom-token-list-prototype */ "./node_modules/core-js/internals/dom-token-list-prototype.js"); 12513var forEach = __webpack_require__(/*! ../internals/array-for-each */ "./node_modules/core-js/internals/array-for-each.js"); 12514var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 12515 12516var handlePrototype = function (CollectionPrototype) { 12517 // some Chrome versions have non-configurable methods on DOMTokenList 12518 if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { 12519 createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); 12520 } catch (error) { 12521 CollectionPrototype.forEach = forEach; 12522 } 12523}; 12524 12525for (var COLLECTION_NAME in DOMIterables) { 12526 if (DOMIterables[COLLECTION_NAME]) { 12527 handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype); 12528 } 12529} 12530 12531handlePrototype(DOMTokenListPrototype); 12532 12533 12534/***/ }), 12535
vendor: 2,610 bytes, lines 12536-12583
12536/***/ "./node_modules/core-js/modules/web.dom-collections.iterator.js": 12537/*!**********************************************************************!*\ 12538 !*** ./node_modules/core-js/modules/web.dom-collections.iterator.js ***! 12539 \**********************************************************************/ 12540/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 12541 12542var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 12543var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ "./node_modules/core-js/internals/dom-iterables.js"); 12544var DOMTokenListPrototype = __webpack_require__(/*! ../internals/dom-token-list-prototype */ "./node_modules/core-js/internals/dom-token-list-prototype.js"); 12545var ArrayIteratorMethods = __webpack_require__(/*! ../modules/es.array.iterator */ "./node_modules/core-js/modules/es.array.iterator.js"); 12546var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 12547var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 12548 12549var ITERATOR = wellKnownSymbol('iterator'); 12550var TO_STRING_TAG = wellKnownSymbol('toStringTag'); 12551var ArrayValues = ArrayIteratorMethods.values; 12552 12553var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) { 12554 if (CollectionPrototype) { 12555 // some Chrome versions have non-configurable methods on DOMTokenList 12556 if (CollectionPrototype[ITERATOR] !== ArrayValues) try { 12557 createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); 12558 } catch (error) { 12559 CollectionPrototype[ITERATOR] = ArrayValues; 12560 } 12561 if (!CollectionPrototype[TO_STRING_TAG]) { 12562 createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); 12563 } 12564 if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { 12565 // some Chrome versions have non-configurable methods on DOMTokenList 12566 if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { 12567 createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); 12568 } catch (error) { 12569 CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; 12570 } 12571 } 12572 } 12573}; 12574 12575for (var COLLECTION_NAME in DOMIterables) { 12576 handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME); 12577} 12578 12579handlePrototype(DOMTokenListPrototype, 'DOMTokenList'); 12580 12581 12582/***/ }), 12583
vendor: 1,988 bytes, lines 12584-12623
12584/***/ "./node_modules/core-js/modules/web.timers.js": 12585/*!****************************************************!*\ 12586 !*** ./node_modules/core-js/modules/web.timers.js ***! 12587 \****************************************************/ 12588/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 12589 12590var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 12591var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 12592var apply = __webpack_require__(/*! ../internals/function-apply */ "./node_modules/core-js/internals/function-apply.js"); 12593var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); 12594var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js"); 12595var arraySlice = __webpack_require__(/*! ../internals/array-slice */ "./node_modules/core-js/internals/array-slice.js"); 12596 12597var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check 12598var Function = global.Function; 12599 12600var wrap = function (scheduler) { 12601 return function (handler, timeout /* , ...arguments */) { 12602 var boundArgs = arguments.length > 2; 12603 var args = boundArgs ? arraySlice(arguments, 2) : undefined; 12604 return scheduler(boundArgs ? function () { 12605 apply(isCallable(handler) ? handler : Function(handler), this, args); 12606 } : handler, timeout); 12607 }; 12608}; 12609 12610// ie9- setTimeout & setInterval additional parameters fix 12611// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers 12612$({ global: true, bind: true, forced: MSIE }, { 12613 // `setTimeout` method 12614 // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout 12615 setTimeout: wrap(global.setTimeout), 12616 // `setInterval` method 12617 // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval 12618 setInterval: wrap(global.setInterval) 12619}); 12620 12621 12622/***/ }), 12623
vendor: 1,036 bytes, lines 12624-12652
12624/***/ "./node_modules/jquery-ui/ui/version.js": 12625/*!**********************************************!*\ 12626 !*** ./node_modules/jquery-ui/ui/version.js ***! 12627 \**********************************************/ 12628/***/ (function(module, exports, __webpack_require__) { 12629 12630var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;( function( factory ) { 12631 "use strict"; 12632 12633 if ( true ) { 12634 12635 // AMD. Register as an anonymous module. 12636 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js") ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 12637 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 12638 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 12639 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 12640 } else {} 12641} )( function( $ ) { 12642"use strict"; 12643 12644$.ui = $.ui || {}; 12645 12646return $.ui.version = "1.13.0"; 12647 12648} ); 12649 12650 12651/***/ }), 12652
vendor: 20,992 bytes, lines 12653-13413
12653/***/ "./node_modules/jquery-ui/ui/widget.js": 12654/*!*********************************************!*\ 12655 !*** ./node_modules/jquery-ui/ui/widget.js ***! 12656 \*********************************************/ 12657/***/ (function(module, exports, __webpack_require__) { 12658 12659var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 12660 * jQuery UI Widget 1.13.0 12661 * http://jqueryui.com 12662 * 12663 * Copyright jQuery Foundation and other contributors 12664 * Released under the MIT license. 12665 * http://jquery.org/license 12666 */ 12667 12668//>>label: Widget 12669//>>group: Core 12670//>>description: Provides a factory for creating stateful widgets with a common API. 12671//>>docs: http://api.jqueryui.com/jQuery.widget/ 12672//>>demos: http://jqueryui.com/widget/ 12673 12674( function( factory ) { 12675 "use strict"; 12676 12677 if ( true ) { 12678 12679 // AMD. Register as an anonymous module. 12680 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! ./version */ "./node_modules/jquery-ui/ui/version.js") ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 12681 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 12682 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 12683 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 12684 } else {} 12685} )( function( $ ) { 12686"use strict"; 12687 12688var widgetUuid = 0; 12689var widgetHasOwnProperty = Array.prototype.hasOwnProperty; 12690var widgetSlice = Array.prototype.slice; 12691 12692$.cleanData = ( function( orig ) { 12693 return function( elems ) { 12694 var events, elem, i; 12695 for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) { 12696 12697 // Only trigger remove when necessary to save time 12698 events = $._data( elem, "events" ); 12699 if ( events && events.remove ) { 12700 $( elem ).triggerHandler( "remove" ); 12701 } 12702 } 12703 orig( elems ); 12704 }; 12705} )( $.cleanData ); 12706 12707$.widget = function( name, base, prototype ) { 12708 var existingConstructor, constructor, basePrototype; 12709 12710 // ProxiedPrototype allows the provided prototype to remain unmodified 12711 // so that it can be used as a mixin for multiple widgets (#8876) 12712 var proxiedPrototype = {}; 12713 12714 var namespace = name.split( "." )[ 0 ]; 12715 name = name.split( "." )[ 1 ]; 12716 var fullName = namespace + "-" + name; 12717 12718 if ( !prototype ) { 12719 prototype = base; 12720 base = $.Widget; 12721 } 12722 12723 if ( Array.isArray( prototype ) ) { 12724 prototype = $.extend.apply( null, [ {} ].concat( prototype ) ); 12725 } 12726 12727 // Create selector for plugin 12728 $.expr.pseudos[ fullName.toLowerCase() ] = function( elem ) { 12729 return !!$.data( elem, fullName ); 12730 }; 12731 12732 $[ namespace ] = $[ namespace ] || {}; 12733 existingConstructor = $[ namespace ][ name ]; 12734 constructor = $[ namespace ][ name ] = function( options, element ) { 12735 12736 // Allow instantiation without "new" keyword 12737 if ( !this._createWidget ) { 12738 return new constructor( options, element ); 12739 } 12740 12741 // Allow instantiation without initializing for simple inheritance 12742 // must use "new" keyword (the code above always passes args) 12743 if ( arguments.length ) { 12744 this._createWidget( options, element ); 12745 } 12746 }; 12747 12748 // Extend with the existing constructor to carry over any static properties 12749 $.extend( constructor, existingConstructor, { 12750 version: prototype.version, 12751 12752 // Copy the object used to create the prototype in case we need to 12753 // redefine the widget later 12754 _proto: $.extend( {}, prototype ), 12755 12756 // Track widgets that inherit from this widget in case this widget is 12757 // redefined after a widget inherits from it 12758 _childConstructors: [] 12759 } ); 12760 12761 basePrototype = new base(); 12762 12763 // We need to make the options hash a property directly on the new instance 12764 // otherwise we'll modify the options hash on the prototype that we're 12765 // inheriting from 12766 basePrototype.options = $.widget.extend( {}, basePrototype.options ); 12767 $.each( prototype, function( prop, value ) { 12768 if ( typeof value !== "function" ) { 12769 proxiedPrototype[ prop ] = value; 12770 return; 12771 } 12772 proxiedPrototype[ prop ] = ( function() { 12773 function _super() { 12774 return base.prototype[ prop ].apply( this, arguments ); 12775 } 12776 12777 function _superApply( args ) { 12778 return base.prototype[ prop ].apply( this, args ); 12779 } 12780 12781 return function() { 12782 var __super = this._super; 12783 var __superApply = this._superApply; 12784 var returnValue; 12785 12786 this._super = _super; 12787 this._superApply = _superApply; 12788 12789 returnValue = value.apply( this, arguments ); 12790 12791 this._super = __super; 12792 this._superApply = __superApply; 12793 12794 return returnValue; 12795 }; 12796 } )(); 12797 } ); 12798 constructor.prototype = $.widget.extend( basePrototype, { 12799 12800 // TODO: remove support for widgetEventPrefix 12801 // always use the name + a colon as the prefix, e.g., draggable:start 12802 // don't prefix for widgets that aren't DOM-based 12803 widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name 12804 }, proxiedPrototype, { 12805 constructor: constructor, 12806 namespace: namespace, 12807 widgetName: name, 12808 widgetFullName: fullName 12809 } ); 12810 12811 // If this widget is being redefined then we need to find all widgets that 12812 // are inheriting from it and redefine all of them so that they inherit from 12813 // the new version of this widget. We're essentially trying to replace one 12814 // level in the prototype chain. 12815 if ( existingConstructor ) { 12816 $.each( existingConstructor._childConstructors, function( i, child ) { 12817 var childPrototype = child.prototype; 12818 12819 // Redefine the child widget using the same prototype that was 12820 // originally used, but inherit from the new version of the base 12821 $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, 12822 child._proto ); 12823 } ); 12824 12825 // Remove the list of existing child constructors from the old constructor 12826 // so the old child constructors can be garbage collected 12827 delete existingConstructor._childConstructors; 12828 } else { 12829 base._childConstructors.push( constructor ); 12830 } 12831 12832 $.widget.bridge( name, constructor ); 12833 12834 return constructor; 12835}; 12836 12837$.widget.extend = function( target ) { 12838 var input = widgetSlice.call( arguments, 1 ); 12839 var inputIndex = 0; 12840 var inputLength = input.length; 12841 var key; 12842 var value; 12843 12844 for ( ; inputIndex < inputLength; inputIndex++ ) { 12845 for ( key in input[ inputIndex ] ) { 12846 value = input[ inputIndex ][ key ]; 12847 if ( widgetHasOwnProperty.call( input[ inputIndex ], key ) && value !== undefined ) { 12848 12849 // Clone objects 12850 if ( $.isPlainObject( value ) ) { 12851 target[ key ] = $.isPlainObject( target[ key ] ) ? 12852 $.widget.extend( {}, target[ key ], value ) : 12853 12854 // Don't extend strings, arrays, etc. with objects 12855 $.widget.extend( {}, value ); 12856 12857 // Copy everything else by reference 12858 } else { 12859 target[ key ] = value; 12860 } 12861 } 12862 } 12863 } 12864 return target; 12865}; 12866 12867$.widget.bridge = function( name, object ) { 12868 var fullName = object.prototype.widgetFullName || name; 12869 $.fn[ name ] = function( options ) { 12870 var isMethodCall = typeof options === "string"; 12871 var args = widgetSlice.call( arguments, 1 ); 12872 var returnValue = this; 12873 12874 if ( isMethodCall ) { 12875 12876 // If this is an empty collection, we need to have the instance method 12877 // return undefined instead of the jQuery instance 12878 if ( !this.length && options === "instance" ) { 12879 returnValue = undefined; 12880 } else { 12881 this.each( function() { 12882 var methodValue; 12883 var instance = $.data( this, fullName ); 12884 12885 if ( options === "instance" ) { 12886 returnValue = instance; 12887 return false; 12888 } 12889 12890 if ( !instance ) { 12891 return $.error( "cannot call methods on " + name + 12892 " prior to initialization; " + 12893 "attempted to call method '" + options + "'" ); 12894 } 12895 12896 if ( typeof instance[ options ] !== "function" || 12897 options.charAt( 0 ) === "_" ) { 12898 return $.error( "no such method '" + options + "' for " + name + 12899 " widget instance" ); 12900 } 12901 12902 methodValue = instance[ options ].apply( instance, args ); 12903 12904 if ( methodValue !== instance && methodValue !== undefined ) { 12905 returnValue = methodValue && methodValue.jquery ? 12906 returnValue.pushStack( methodValue.get() ) : 12907 methodValue; 12908 return false; 12909 } 12910 } ); 12911 } 12912 } else { 12913 12914 // Allow multiple hashes to be passed on init 12915 if ( args.length ) { 12916 options = $.widget.extend.apply( null, [ options ].concat( args ) ); 12917 } 12918 12919 this.each( function() { 12920 var instance = $.data( this, fullName ); 12921 if ( instance ) { 12922 instance.option( options || {} ); 12923 if ( instance._init ) { 12924 instance._init(); 12925 } 12926 } else { 12927 $.data( this, fullName, new object( options, this ) ); 12928 } 12929 } ); 12930 } 12931 12932 return returnValue; 12933 }; 12934}; 12935 12936$.Widget = function( /* options, element */ ) {}; 12937$.Widget._childConstructors = []; 12938 12939$.Widget.prototype = { 12940 widgetName: "widget", 12941 widgetEventPrefix: "", 12942 defaultElement: "<div>", 12943 12944 options: { 12945 classes: {}, 12946 disabled: false, 12947 12948 // Callbacks 12949 create: null 12950 }, 12951 12952 _createWidget: function( options, element ) { 12953 element = $( element || this.defaultElement || this )[ 0 ]; 12954 this.element = $( element ); 12955 this.uuid = widgetUuid++; 12956 this.eventNamespace = "." + this.widgetName + this.uuid; 12957 12958 this.bindings = $(); 12959 this.hoverable = $(); 12960 this.focusable = $(); 12961 this.classesElementLookup = {}; 12962 12963 if ( element !== this ) { 12964 $.data( element, this.widgetFullName, this ); 12965 this._on( true, this.element, { 12966 remove: function( event ) { 12967 if ( event.target === element ) { 12968 this.destroy(); 12969 } 12970 } 12971 } ); 12972 this.document = $( element.style ? 12973 12974 // Element within the document 12975 element.ownerDocument : 12976 12977 // Element is window or document 12978 element.document || element ); 12979 this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow ); 12980 } 12981 12982 this.options = $.widget.extend( {}, 12983 this.options, 12984 this._getCreateOptions(), 12985 options ); 12986 12987 this._create(); 12988 12989 if ( this.options.disabled ) { 12990 this._setOptionDisabled( this.options.disabled ); 12991 } 12992 12993 this._trigger( "create", null, this._getCreateEventData() ); 12994 this._init(); 12995 }, 12996 12997 _getCreateOptions: function() { 12998 return {}; 12999 }, 13000 13001 _getCreateEventData: $.noop, 13002 13003 _create: $.noop, 13004 13005 _init: $.noop, 13006 13007 destroy: function() { 13008 var that = this; 13009 13010 this._destroy(); 13011 $.each( this.classesElementLookup, function( key, value ) { 13012 that._removeClass( value, key ); 13013 } ); 13014 13015 // We can probably remove the unbind calls in 2.0 13016 // all event bindings should go through this._on() 13017 this.element 13018 .off( this.eventNamespace ) 13019 .removeData( this.widgetFullName ); 13020 this.widget() 13021 .off( this.eventNamespace ) 13022 .removeAttr( "aria-disabled" ); 13023 13024 // Clean up events and states 13025 this.bindings.off( this.eventNamespace ); 13026 }, 13027 13028 _destroy: $.noop, 13029 13030 widget: function() { 13031 return this.element; 13032 }, 13033 13034 option: function( key, value ) { 13035 var options = key; 13036 var parts; 13037 var curOption; 13038 var i; 13039 13040 if ( arguments.length === 0 ) { 13041 13042 // Don't return a reference to the internal hash 13043 return $.widget.extend( {}, this.options ); 13044 } 13045 13046 if ( typeof key === "string" ) { 13047 13048 // Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } 13049 options = {}; 13050 parts = key.split( "." ); 13051 key = parts.shift(); 13052 if ( parts.length ) { 13053 curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); 13054 for ( i = 0; i < parts.length - 1; i++ ) { 13055 curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; 13056 curOption = curOption[ parts[ i ] ]; 13057 } 13058 key = parts.pop(); 13059 if ( arguments.length === 1 ) { 13060 return curOption[ key ] === undefined ? null : curOption[ key ]; 13061 } 13062 curOption[ key ] = value; 13063 } else { 13064 if ( arguments.length === 1 ) { 13065 return this.options[ key ] === undefined ? null : this.options[ key ]; 13066 } 13067 options[ key ] = value; 13068 } 13069 } 13070 13071 this._setOptions( options ); 13072 13073 return this; 13074 }, 13075 13076 _setOptions: function( options ) { 13077 var key; 13078 13079 for ( key in options ) { 13080 this._setOption( key, options[ key ] ); 13081 } 13082 13083 return this; 13084 }, 13085 13086 _setOption: function( key, value ) { 13087 if ( key === "classes" ) { 13088 this._setOptionClasses( value ); 13089 } 13090 13091 this.options[ key ] = value; 13092 13093 if ( key === "disabled" ) { 13094 this._setOptionDisabled( value ); 13095 } 13096 13097 return this; 13098 }, 13099 13100 _setOptionClasses: function( value ) { 13101 var classKey, elements, currentElements; 13102 13103 for ( classKey in value ) { 13104 currentElements = this.classesElementLookup[ classKey ]; 13105 if ( value[ classKey ] === this.options.classes[ classKey ] || 13106 !currentElements || 13107 !currentElements.length ) { 13108 continue; 13109 } 13110 13111 // We are doing this to create a new jQuery object because the _removeClass() call 13112 // on the next line is going to destroy the reference to the current elements being 13113 // tracked. We need to save a copy of this collection so that we can add the new classes 13114 // below. 13115 elements = $( currentElements.get() ); 13116 this._removeClass( currentElements, classKey ); 13117 13118 // We don't use _addClass() here, because that uses this.options.classes 13119 // for generating the string of classes. We want to use the value passed in from 13120 // _setOption(), this is the new value of the classes option which was passed to 13121 // _setOption(). We pass this value directly to _classes(). 13122 elements.addClass( this._classes( { 13123 element: elements, 13124 keys: classKey, 13125 classes: value, 13126 add: true 13127 } ) ); 13128 } 13129 }, 13130 13131 _setOptionDisabled: function( value ) { 13132 this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value ); 13133 13134 // If the widget is becoming disabled, then nothing is interactive 13135 if ( value ) { 13136 this._removeClass( this.hoverable, null, "ui-state-hover" ); 13137 this._removeClass( this.focusable, null, "ui-state-focus" ); 13138 } 13139 }, 13140 13141 enable: function() { 13142 return this._setOptions( { disabled: false } ); 13143 }, 13144 13145 disable: function() { 13146 return this._setOptions( { disabled: true } ); 13147 }, 13148 13149 _classes: function( options ) { 13150 var full = []; 13151 var that = this; 13152 13153 options = $.extend( { 13154 element: this.element, 13155 classes: this.options.classes || {} 13156 }, options ); 13157 13158 function bindRemoveEvent() { 13159 options.element.each( function( _, element ) { 13160 var isTracked = $.map( that.classesElementLookup, function( elements ) { 13161 return elements; 13162 } ) 13163 .some( function( elements ) { 13164 return elements.is( element ); 13165 } ); 13166 13167 if ( !isTracked ) { 13168 that._on( $( element ), { 13169 remove: "_untrackClassesElement" 13170 } ); 13171 } 13172 } ); 13173 } 13174 13175 function processClassString( classes, checkOption ) { 13176 var current, i; 13177 for ( i = 0; i < classes.length; i++ ) { 13178 current = that.classesElementLookup[ classes[ i ] ] || $(); 13179 if ( options.add ) { 13180 bindRemoveEvent(); 13181 current = $( $.uniqueSort( current.get().concat( options.element.get() ) ) ); 13182 } else { 13183 current = $( current.not( options.element ).get() ); 13184 } 13185 that.classesElementLookup[ classes[ i ] ] = current; 13186 full.push( classes[ i ] ); 13187 if ( checkOption && options.classes[ classes[ i ] ] ) { 13188 full.push( options.classes[ classes[ i ] ] ); 13189 } 13190 } 13191 } 13192 13193 if ( options.keys ) { 13194 processClassString( options.keys.match( /\S+/g ) || [], true ); 13195 } 13196 if ( options.extra ) { 13197 processClassString( options.extra.match( /\S+/g ) || [] ); 13198 } 13199 13200 return full.join( " " ); 13201 }, 13202 13203 _untrackClassesElement: function( event ) { 13204 var that = this; 13205 $.each( that.classesElementLookup, function( key, value ) { 13206 if ( $.inArray( event.target, value ) !== -1 ) { 13207 that.classesElementLookup[ key ] = $( value.not( event.target ).get() ); 13208 } 13209 } ); 13210 13211 this._off( $( event.target ) ); 13212 }, 13213 13214 _removeClass: function( element, keys, extra ) { 13215 return this._toggleClass( element, keys, extra, false ); 13216 }, 13217 13218 _addClass: function( element, keys, extra ) { 13219 return this._toggleClass( element, keys, extra, true ); 13220 }, 13221 13222 _toggleClass: function( element, keys, extra, add ) { 13223 add = ( typeof add === "boolean" ) ? add : extra; 13224 var shift = ( typeof element === "string" || element === null ), 13225 options = { 13226 extra: shift ? keys : extra, 13227 keys: shift ? element : keys, 13228 element: shift ? this.element : element, 13229 add: add 13230 }; 13231 options.element.toggleClass( this._classes( options ), add ); 13232 return this; 13233 }, 13234 13235 _on: function( suppressDisabledCheck, element, handlers ) { 13236 var delegateElement; 13237 var instance = this; 13238 13239 // No suppressDisabledCheck flag, shuffle arguments 13240 if ( typeof suppressDisabledCheck !== "boolean" ) { 13241 handlers = element; 13242 element = suppressDisabledCheck; 13243 suppressDisabledCheck = false; 13244 } 13245 13246 // No element argument, shuffle and use this.element 13247 if ( !handlers ) { 13248 handlers = element; 13249 element = this.element; 13250 delegateElement = this.widget(); 13251 } else { 13252 element = delegateElement = $( element ); 13253 this.bindings = this.bindings.add( element ); 13254 } 13255 13256 $.each( handlers, function( event, handler ) { 13257 function handlerProxy() { 13258 13259 // Allow widgets to customize the disabled handling 13260 // - disabled as an array instead of boolean 13261 // - disabled class as method for disabling individual parts 13262 if ( !suppressDisabledCheck && 13263 ( instance.options.disabled === true || 13264 $( this ).hasClass( "ui-state-disabled" ) ) ) { 13265 return; 13266 } 13267 return ( typeof handler === "string" ? instance[ handler ] : handler ) 13268 .apply( instance, arguments ); 13269 } 13270 13271 // Copy the guid so direct unbinding works 13272 if ( typeof handler !== "string" ) { 13273 handlerProxy.guid = handler.guid = 13274 handler.guid || handlerProxy.guid || $.guid++; 13275 } 13276 13277 var match = event.match( /^([\w:-]*)\s*(.*)$/ ); 13278 var eventName = match[ 1 ] + instance.eventNamespace; 13279 var selector = match[ 2 ]; 13280 13281 if ( selector ) { 13282 delegateElement.on( eventName, selector, handlerProxy ); 13283 } else { 13284 element.on( eventName, handlerProxy ); 13285 } 13286 } ); 13287 }, 13288 13289 _off: function( element, eventName ) { 13290 eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) + 13291 this.eventNamespace; 13292 element.off( eventName ); 13293 13294 // Clear the stack to avoid memory leaks (#10056) 13295 this.bindings = $( this.bindings.not( element ).get() ); 13296 this.focusable = $( this.focusable.not( element ).get() ); 13297 this.hoverable = $( this.hoverable.not( element ).get() ); 13298 }, 13299 13300 _delay: function( handler, delay ) { 13301 function handlerProxy() { 13302 return ( typeof handler === "string" ? instance[ handler ] : handler ) 13303 .apply( instance, arguments ); 13304 } 13305 var instance = this; 13306 return setTimeout( handlerProxy, delay || 0 ); 13307 }, 13308 13309 _hoverable: function( element ) { 13310 this.hoverable = this.hoverable.add( element ); 13311 this._on( element, { 13312 mouseenter: function( event ) { 13313 this._addClass( $( event.currentTarget ), null, "ui-state-hover" ); 13314 }, 13315 mouseleave: function( event ) { 13316 this._removeClass( $( event.currentTarget ), null, "ui-state-hover" ); 13317 } 13318 } ); 13319 }, 13320 13321 _focusable: function( element ) { 13322 this.focusable = this.focusable.add( element ); 13323 this._on( element, { 13324 focusin: function( event ) { 13325 this._addClass( $( event.currentTarget ), null, "ui-state-focus" ); 13326 }, 13327 focusout: function( event ) { 13328 this._removeClass( $( event.currentTarget ), null, "ui-state-focus" ); 13329 } 13330 } ); 13331 }, 13332 13333 _trigger: function( type, event, data ) { 13334 var prop, orig; 13335 var callback = this.options[ type ]; 13336 13337 data = data || {}; 13338 event = $.Event( event ); 13339 event.type = ( type === this.widgetEventPrefix ? 13340 type : 13341 this.widgetEventPrefix + type ).toLowerCase(); 13342 13343 // The original event may come from any element 13344 // so we need to reset the target on the new event 13345 event.target = this.element[ 0 ]; 13346 13347 // Copy original event properties over to the new event 13348 orig = event.originalEvent; 13349 if ( orig ) { 13350 for ( prop in orig ) { 13351 if ( !( prop in event ) ) { 13352 event[ prop ] = orig[ prop ]; 13353 } 13354 } 13355 } 13356 13357 this.element.trigger( event, data ); 13358 return !( typeof callback === "function" && 13359 callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false || 13360 event.isDefaultPrevented() ); 13361 } 13362}; 13363 13364$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { 13365 $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { 13366 if ( typeof options === "string" ) { 13367 options = { effect: options }; 13368 } 13369 13370 var hasOptions; 13371 var effectName = !options ? 13372 method : 13373 options === true || typeof options === "number" ? 13374 defaultEffect : 13375 options.effect || defaultEffect; 13376 13377 options = options || {}; 13378 if ( typeof options === "number" ) { 13379 options = { duration: options }; 13380 } else if ( options === true ) { 13381 options = {}; 13382 } 13383 13384 hasOptions = !$.isEmptyObject( options ); 13385 options.complete = callback; 13386 13387 if ( options.delay ) { 13388 element.delay( options.delay ); 13389 } 13390 13391 if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { 13392 element[ method ]( options ); 13393 } else if ( effectName !== method && element[ effectName ] ) { 13394 element[ effectName ]( options.duration, options.easing, callback ); 13395 } else { 13396 element.queue( function( next ) { 13397 $( this )[ method ](); 13398 if ( callback ) { 13399 callback.call( element[ 0 ] ); 13400 } 13401 next(); 13402 } ); 13403 } 13404 }; 13405} ); 13406 13407return $.widget; 13408 13409} ); 13410 13411 13412/***/ }), 13413
vendor: 289,021 bytes, lines 13414-24305
13414/***/ "./node_modules/jquery/dist/jquery.js": 13415/*!********************************************!*\ 13416 !*** ./node_modules/jquery/dist/jquery.js ***! 13417 \********************************************/ 13418/***/ (function(module, exports) { 13419 13420var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 13421 * jQuery JavaScript Library v3.6.0 13422 * https://jquery.com/ 13423 * 13424 * Includes Sizzle.js 13425 * https://sizzlejs.com/ 13426 * 13427 * Copyright OpenJS Foundation and other contributors 13428 * Released under the MIT license 13429 * https://jquery.org/license 13430 * 13431 * Date: 2021-03-02T17:08Z 13432 */ 13433( function( global, factory ) { 13434 13435 "use strict"; 13436 13437 if ( true && typeof module.exports === "object" ) { 13438 13439 // For CommonJS and CommonJS-like environments where a proper `window` 13440 // is present, execute the factory and get jQuery. 13441 // For environments that do not have a `window` with a `document` 13442 // (such as Node.js), expose a factory as module.exports. 13443 // This accentuates the need for the creation of a real `window`. 13444 // e.g. var jQuery = require("jquery")(window); 13445 // See ticket #14549 for more info. 13446 module.exports = global.document ? 13447 factory( global, true ) : 13448 function( w ) { 13449 if ( !w.document ) { 13450 throw new Error( "jQuery requires a window with a document" ); 13451 } 13452 return factory( w ); 13453 }; 13454 } else { 13455 factory( global ); 13456 } 13457 13458// Pass this if window is not defined yet 13459} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { 13460 13461// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 13462// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode 13463// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common 13464// enough that all such attempts are guarded in a try block. 13465"use strict"; 13466 13467var arr = []; 13468 13469var getProto = Object.getPrototypeOf; 13470 13471var slice = arr.slice; 13472 13473var flat = arr.flat ? function( array ) { 13474 return arr.flat.call( array ); 13475} : function( array ) { 13476 return arr.concat.apply( [], array ); 13477}; 13478 13479 13480var push = arr.push; 13481 13482var indexOf = arr.indexOf; 13483 13484var class2type = {}; 13485 13486var toString = class2type.toString; 13487 13488var hasOwn = class2type.hasOwnProperty; 13489 13490var fnToString = hasOwn.toString; 13491 13492var ObjectFunctionString = fnToString.call( Object ); 13493 13494var support = {}; 13495 13496var isFunction = function isFunction( obj ) { 13497 13498 // Support: Chrome <=57, Firefox <=52 13499 // In some browsers, typeof returns "function" for HTML <object> elements 13500 // (i.e., `typeof document.createElement( "object" ) === "function"`). 13501 // We don't want to classify *any* DOM node as a function. 13502 // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 13503 // Plus for old WebKit, typeof returns "function" for HTML collections 13504 // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) 13505 return typeof obj === "function" && typeof obj.nodeType !== "number" && 13506 typeof obj.item !== "function"; 13507 }; 13508 13509 13510var isWindow = function isWindow( obj ) { 13511 return obj != null && obj === obj.window; 13512 }; 13513 13514 13515var document = window.document; 13516 13517 13518 13519 var preservedScriptAttributes = { 13520 type: true, 13521 src: true, 13522 nonce: true, 13523 noModule: true 13524 }; 13525 13526 function DOMEval( code, node, doc ) { 13527 doc = doc || document; 13528 13529 var i, val, 13530 script = doc.createElement( "script" ); 13531 13532 script.text = code; 13533 if ( node ) { 13534 for ( i in preservedScriptAttributes ) { 13535 13536 // Support: Firefox 64+, Edge 18+ 13537 // Some browsers don't support the "nonce" property on scripts. 13538 // On the other hand, just using `getAttribute` is not enough as 13539 // the `nonce` attribute is reset to an empty string whenever it 13540 // becomes browsing-context connected. 13541 // See https://github.com/whatwg/html/issues/2369 13542 // See https://html.spec.whatwg.org/#nonce-attributes 13543 // The `node.getAttribute` check was added for the sake of 13544 // `jQuery.globalEval` so that it can fake a nonce-containing node 13545 // via an object. 13546 val = node[ i ] || node.getAttribute && node.getAttribute( i ); 13547 if ( val ) { 13548 script.setAttribute( i, val ); 13549 } 13550 } 13551 } 13552 doc.head.appendChild( script ).parentNode.removeChild( script ); 13553 } 13554 13555 13556function toType( obj ) { 13557 if ( obj == null ) { 13558 return obj + ""; 13559 } 13560 13561 // Support: Android <=2.3 only (functionish RegExp) 13562 return typeof obj === "object" || typeof obj === "function" ? 13563 class2type[ toString.call( obj ) ] || "object" : 13564 typeof obj; 13565} 13566/* global Symbol */ 13567// Defining this global in .eslintrc.json would create a danger of using the global 13568// unguarded in another place, it seems safer to define global only for this module 13569 13570 13571 13572var 13573 version = "3.6.0", 13574 13575 // Define a local copy of jQuery 13576 jQuery = function( selector, context ) { 13577 13578 // The jQuery object is actually just the init constructor 'enhanced' 13579 // Need init if jQuery is called (just allow error to be thrown if not included) 13580 return new jQuery.fn.init( selector, context ); 13581 }; 13582 13583jQuery.fn = jQuery.prototype = { 13584 13585 // The current version of jQuery being used 13586 jquery: version, 13587 13588 constructor: jQuery, 13589 13590 // The default length of a jQuery object is 0 13591 length: 0, 13592 13593 toArray: function() { 13594 return slice.call( this ); 13595 }, 13596 13597 // Get the Nth element in the matched element set OR 13598 // Get the whole matched element set as a clean array 13599 get: function( num ) { 13600 13601 // Return all the elements in a clean array 13602 if ( num == null ) { 13603 return slice.call( this ); 13604 } 13605 13606 // Return just the one element from the set 13607 return num < 0 ? this[ num + this.length ] : this[ num ]; 13608 }, 13609 13610 // Take an array of elements and push it onto the stack 13611 // (returning the new matched element set) 13612 pushStack: function( elems ) { 13613 13614 // Build a new jQuery matched element set 13615 var ret = jQuery.merge( this.constructor(), elems ); 13616 13617 // Add the old object onto the stack (as a reference) 13618 ret.prevObject = this; 13619 13620 // Return the newly-formed element set 13621 return ret; 13622 }, 13623 13624 // Execute a callback for every element in the matched set. 13625 each: function( callback ) { 13626 return jQuery.each( this, callback ); 13627 }, 13628 13629 map: function( callback ) { 13630 return this.pushStack( jQuery.map( this, function( elem, i ) { 13631 return callback.call( elem, i, elem ); 13632 } ) ); 13633 }, 13634 13635 slice: function() { 13636 return this.pushStack( slice.apply( this, arguments ) ); 13637 }, 13638 13639 first: function() { 13640 return this.eq( 0 ); 13641 }, 13642 13643 last: function() { 13644 return this.eq( -1 ); 13645 }, 13646 13647 even: function() { 13648 return this.pushStack( jQuery.grep( this, function( _elem, i ) { 13649 return ( i + 1 ) % 2; 13650 } ) ); 13651 }, 13652 13653 odd: function() { 13654 return this.pushStack( jQuery.grep( this, function( _elem, i ) { 13655 return i % 2; 13656 } ) ); 13657 }, 13658 13659 eq: function( i ) { 13660 var len = this.length, 13661 j = +i + ( i < 0 ? len : 0 ); 13662 return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); 13663 }, 13664 13665 end: function() { 13666 return this.prevObject || this.constructor(); 13667 }, 13668 13669 // For internal use only. 13670 // Behaves like an Array's method, not like a jQuery method. 13671 push: push, 13672 sort: arr.sort, 13673 splice: arr.splice 13674}; 13675 13676jQuery.extend = jQuery.fn.extend = function() { 13677 var options, name, src, copy, copyIsArray, clone, 13678 target = arguments[ 0 ] || {}, 13679 i = 1, 13680 length = arguments.length, 13681 deep = false; 13682 13683 // Handle a deep copy situation 13684 if ( typeof target === "boolean" ) { 13685 deep = target; 13686 13687 // Skip the boolean and the target 13688 target = arguments[ i ] || {}; 13689 i++; 13690 } 13691 13692 // Handle case when target is a string or something (possible in deep copy) 13693 if ( typeof target !== "object" && !isFunction( target ) ) { 13694 target = {}; 13695 } 13696 13697 // Extend jQuery itself if only one argument is passed 13698 if ( i === length ) { 13699 target = this; 13700 i--; 13701 } 13702 13703 for ( ; i < length; i++ ) { 13704 13705 // Only deal with non-null/undefined values 13706 if ( ( options = arguments[ i ] ) != null ) { 13707 13708 // Extend the base object 13709 for ( name in options ) { 13710 copy = options[ name ]; 13711 13712 // Prevent Object.prototype pollution 13713 // Prevent never-ending loop 13714 if ( name === "__proto__" || target === copy ) { 13715 continue; 13716 } 13717 13718 // Recurse if we're merging plain objects or arrays 13719 if ( deep && copy && ( jQuery.isPlainObject( copy ) || 13720 ( copyIsArray = Array.isArray( copy ) ) ) ) { 13721 src = target[ name ]; 13722 13723 // Ensure proper type for the source value 13724 if ( copyIsArray && !Array.isArray( src ) ) { 13725 clone = []; 13726 } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { 13727 clone = {}; 13728 } else { 13729 clone = src; 13730 } 13731 copyIsArray = false; 13732 13733 // Never move original objects, clone them 13734 target[ name ] = jQuery.extend( deep, clone, copy ); 13735 13736 // Don't bring in undefined values 13737 } else if ( copy !== undefined ) { 13738 target[ name ] = copy; 13739 } 13740 } 13741 } 13742 } 13743 13744 // Return the modified object 13745 return target; 13746}; 13747 13748jQuery.extend( { 13749 13750 // Unique for each copy of jQuery on the page 13751 expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), 13752 13753 // Assume jQuery is ready without the ready module 13754 isReady: true, 13755 13756 error: function( msg ) { 13757 throw new Error( msg ); 13758 }, 13759 13760 noop: function() {}, 13761 13762 isPlainObject: function( obj ) { 13763 var proto, Ctor; 13764 13765 // Detect obvious negatives 13766 // Use toString instead of jQuery.type to catch host objects 13767 if ( !obj || toString.call( obj ) !== "[object Object]" ) { 13768 return false; 13769 } 13770 13771 proto = getProto( obj ); 13772 13773 // Objects with no prototype (e.g., `Object.create( null )`) are plain 13774 if ( !proto ) { 13775 return true; 13776 } 13777 13778 // Objects with prototype are plain iff they were constructed by a global Object function 13779 Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; 13780 return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; 13781 }, 13782 13783 isEmptyObject: function( obj ) { 13784 var name; 13785 13786 for ( name in obj ) { 13787 return false; 13788 } 13789 return true; 13790 }, 13791 13792 // Evaluates a script in a provided context; falls back to the global one 13793 // if not specified. 13794 globalEval: function( code, options, doc ) { 13795 DOMEval( code, { nonce: options && options.nonce }, doc ); 13796 }, 13797 13798 each: function( obj, callback ) { 13799 var length, i = 0; 13800 13801 if ( isArrayLike( obj ) ) { 13802 length = obj.length; 13803 for ( ; i < length; i++ ) { 13804 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { 13805 break; 13806 } 13807 } 13808 } else { 13809 for ( i in obj ) { 13810 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { 13811 break; 13812 } 13813 } 13814 } 13815 13816 return obj; 13817 }, 13818 13819 // results is for internal usage only 13820 makeArray: function( arr, results ) { 13821 var ret = results || []; 13822 13823 if ( arr != null ) { 13824 if ( isArrayLike( Object( arr ) ) ) { 13825 jQuery.merge( ret, 13826 typeof arr === "string" ? 13827 [ arr ] : arr 13828 ); 13829 } else { 13830 push.call( ret, arr ); 13831 } 13832 } 13833 13834 return ret; 13835 }, 13836 13837 inArray: function( elem, arr, i ) { 13838 return arr == null ? -1 : indexOf.call( arr, elem, i ); 13839 }, 13840 13841 // Support: Android <=4.0 only, PhantomJS 1 only 13842 // push.apply(_, arraylike) throws on ancient WebKit 13843 merge: function( first, second ) { 13844 var len = +second.length, 13845 j = 0, 13846 i = first.length; 13847 13848 for ( ; j < len; j++ ) { 13849 first[ i++ ] = second[ j ]; 13850 } 13851 13852 first.length = i; 13853 13854 return first; 13855 }, 13856 13857 grep: function( elems, callback, invert ) { 13858 var callbackInverse, 13859 matches = [], 13860 i = 0, 13861 length = elems.length, 13862 callbackExpect = !invert; 13863 13864 // Go through the array, only saving the items 13865 // that pass the validator function 13866 for ( ; i < length; i++ ) { 13867 callbackInverse = !callback( elems[ i ], i ); 13868 if ( callbackInverse !== callbackExpect ) { 13869 matches.push( elems[ i ] ); 13870 } 13871 } 13872 13873 return matches; 13874 }, 13875 13876 // arg is for internal usage only 13877 map: function( elems, callback, arg ) { 13878 var length, value, 13879 i = 0, 13880 ret = []; 13881 13882 // Go through the array, translating each of the items to their new values 13883 if ( isArrayLike( elems ) ) { 13884 length = elems.length; 13885 for ( ; i < length; i++ ) { 13886 value = callback( elems[ i ], i, arg ); 13887 13888 if ( value != null ) { 13889 ret.push( value ); 13890 } 13891 } 13892 13893 // Go through every key on the object, 13894 } else { 13895 for ( i in elems ) { 13896 value = callback( elems[ i ], i, arg ); 13897 13898 if ( value != null ) { 13899 ret.push( value ); 13900 } 13901 } 13902 } 13903 13904 // Flatten any nested arrays 13905 return flat( ret ); 13906 }, 13907 13908 // A global GUID counter for objects 13909 guid: 1, 13910 13911 // jQuery.support is not used in Core but other projects attach their 13912 // properties to it so it needs to exist. 13913 support: support 13914} ); 13915 13916if ( typeof Symbol === "function" ) { 13917 jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; 13918} 13919 13920// Populate the class2type map 13921jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), 13922 function( _i, name ) { 13923 class2type[ "[object " + name + "]" ] = name.toLowerCase(); 13924 } ); 13925 13926function isArrayLike( obj ) { 13927 13928 // Support: real iOS 8.2 only (not reproducible in simulator) 13929 // `in` check used to prevent JIT error (gh-2145) 13930 // hasOwn isn't used here due to false negatives 13931 // regarding Nodelist length in IE 13932 var length = !!obj && "length" in obj && obj.length, 13933 type = toType( obj ); 13934 13935 if ( isFunction( obj ) || isWindow( obj ) ) { 13936 return false; 13937 } 13938 13939 return type === "array" || length === 0 || 13940 typeof length === "number" && length > 0 && ( length - 1 ) in obj; 13941} 13942var Sizzle = 13943/*! 13944 * Sizzle CSS Selector Engine v2.3.6 13945 * https://sizzlejs.com/ 13946 * 13947 * Copyright JS Foundation and other contributors 13948 * Released under the MIT license 13949 * https://js.foundation/ 13950 * 13951 * Date: 2021-02-16 13952 */ 13953( function( window ) { 13954var i, 13955 support, 13956 Expr, 13957 getText, 13958 isXML, 13959 tokenize, 13960 compile, 13961 select, 13962 outermostContext, 13963 sortInput, 13964 hasDuplicate, 13965 13966 // Local document vars 13967 setDocument, 13968 document, 13969 docElem, 13970 documentIsHTML, 13971 rbuggyQSA, 13972 rbuggyMatches, 13973 matches, 13974 contains, 13975 13976 // Instance-specific data 13977 expando = "sizzle" + 1 * new Date(), 13978 preferredDoc = window.document, 13979 dirruns = 0, 13980 done = 0, 13981 classCache = createCache(), 13982 tokenCache = createCache(), 13983 compilerCache = createCache(), 13984 nonnativeSelectorCache = createCache(), 13985 sortOrder = function( a, b ) { 13986 if ( a === b ) { 13987 hasDuplicate = true; 13988 } 13989 return 0; 13990 }, 13991 13992 // Instance methods 13993 hasOwn = ( {} ).hasOwnProperty, 13994 arr = [], 13995 pop = arr.pop, 13996 pushNative = arr.push, 13997 push = arr.push, 13998 slice = arr.slice, 13999 14000 // Use a stripped-down indexOf as it's faster than native 14001 // https://jsperf.com/thor-indexof-vs-for/5 14002 indexOf = function( list, elem ) { 14003 var i = 0, 14004 len = list.length; 14005 for ( ; i < len; i++ ) { 14006 if ( list[ i ] === elem ) { 14007 return i; 14008 } 14009 } 14010 return -1; 14011 }, 14012 14013 booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + 14014 "ismap|loop|multiple|open|readonly|required|scoped", 14015 14016 // Regular expressions 14017 14018 // http://www.w3.org/TR/css3-selectors/#whitespace 14019 whitespace = "[\\x20\\t\\r\\n\\f]", 14020 14021 // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram 14022 identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + 14023 "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", 14024 14025 // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors 14026 attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + 14027 14028 // Operator (capture 2) 14029 "*([*^$|!~]?=)" + whitespace + 14030 14031 // "Attribute values must be CSS identifiers [capture 5] 14032 // or strings [capture 3 or capture 4]" 14033 "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + 14034 whitespace + "*\\]", 14035 14036 pseudos = ":(" + identifier + ")(?:\\((" + 14037 14038 // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: 14039 // 1. quoted (capture 3; capture 4 or capture 5) 14040 "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + 14041 14042 // 2. simple (capture 6) 14043 "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + 14044 14045 // 3. anything else (capture 2) 14046 ".*" + 14047 ")\\)|)", 14048 14049 // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter 14050 rwhitespace = new RegExp( whitespace + "+", "g" ), 14051 rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + 14052 whitespace + "+$", "g" ), 14053 14054 rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), 14055 rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + 14056 "*" ), 14057 rdescend = new RegExp( whitespace + "|>" ), 14058 14059 rpseudo = new RegExp( pseudos ), 14060 ridentifier = new RegExp( "^" + identifier + "$" ), 14061 14062 matchExpr = { 14063 "ID": new RegExp( "^#(" + identifier + ")" ), 14064 "CLASS": new RegExp( "^\\.(" + identifier + ")" ), 14065 "TAG": new RegExp( "^(" + identifier + "|[*])" ), 14066 "ATTR": new RegExp( "^" + attributes ), 14067 "PSEUDO": new RegExp( "^" + pseudos ), 14068 "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + 14069 whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + 14070 whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), 14071 "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), 14072 14073 // For use in libraries implementing .is() 14074 // We use this for POS matching in `select` 14075 "needsContext": new RegExp( "^" + whitespace + 14076 "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + 14077 "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) 14078 }, 14079 14080 rhtml = /HTML$/i, 14081 rinputs = /^(?:input|select|textarea|button)$/i, 14082 rheader = /^h\d$/i, 14083 14084 rnative = /^[^{]+\{\s*\[native \w/, 14085 14086 // Easily-parseable/retrievable ID or TAG or CLASS selectors 14087 rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, 14088 14089 rsibling = /[+~]/, 14090 14091 // CSS escapes 14092 // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters 14093 runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), 14094 funescape = function( escape, nonHex ) { 14095 var high = "0x" + escape.slice( 1 ) - 0x10000; 14096 14097 return nonHex ? 14098 14099 // Strip the backslash prefix from a non-hex escape sequence 14100 nonHex : 14101 14102 // Replace a hexadecimal escape sequence with the encoded Unicode code point 14103 // Support: IE <=11+ 14104 // For values outside the Basic Multilingual Plane (BMP), manually construct a 14105 // surrogate pair 14106 high < 0 ? 14107 String.fromCharCode( high + 0x10000 ) : 14108 String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); 14109 }, 14110 14111 // CSS string/identifier serialization 14112 // https://drafts.csswg.org/cssom/#common-serializing-idioms 14113 rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, 14114 fcssescape = function( ch, asCodePoint ) { 14115 if ( asCodePoint ) { 14116 14117 // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER 14118 if ( ch === "\0" ) { 14119 return "\uFFFD"; 14120 } 14121 14122 // Control characters and (dependent upon position) numbers get escaped as code points 14123 return ch.slice( 0, -1 ) + "\\" + 14124 ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; 14125 } 14126 14127 // Other potentially-special ASCII characters get backslash-escaped 14128 return "\\" + ch; 14129 }, 14130 14131 // Used for iframes 14132 // See setDocument() 14133 // Removing the function wrapper causes a "Permission Denied" 14134 // error in IE 14135 unloadHandler = function() { 14136 setDocument(); 14137 }, 14138 14139 inDisabledFieldset = addCombinator( 14140 function( elem ) { 14141 return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; 14142 }, 14143 { dir: "parentNode", next: "legend" } 14144 ); 14145 14146// Optimize for push.apply( _, NodeList ) 14147try { 14148 push.apply( 14149 ( arr = slice.call( preferredDoc.childNodes ) ), 14150 preferredDoc.childNodes 14151 ); 14152 14153 // Support: Android<4.0 14154 // Detect silently failing push.apply 14155 // eslint-disable-next-line no-unused-expressions 14156 arr[ preferredDoc.childNodes.length ].nodeType; 14157} catch ( e ) { 14158 push = { apply: arr.length ? 14159 14160 // Leverage slice if possible 14161 function( target, els ) { 14162 pushNative.apply( target, slice.call( els ) ); 14163 } : 14164 14165 // Support: IE<9 14166 // Otherwise append directly 14167 function( target, els ) { 14168 var j = target.length, 14169 i = 0; 14170 14171 // Can't trust NodeList.length 14172 while ( ( target[ j++ ] = els[ i++ ] ) ) {} 14173 target.length = j - 1; 14174 } 14175 }; 14176} 14177 14178function Sizzle( selector, context, results, seed ) { 14179 var m, i, elem, nid, match, groups, newSelector, 14180 newContext = context && context.ownerDocument, 14181 14182 // nodeType defaults to 9, since context defaults to document 14183 nodeType = context ? context.nodeType : 9; 14184 14185 results = results || []; 14186 14187 // Return early from calls with invalid selector or context 14188 if ( typeof selector !== "string" || !selector || 14189 nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { 14190 14191 return results; 14192 } 14193 14194 // Try to shortcut find operations (as opposed to filters) in HTML documents 14195 if ( !seed ) { 14196 setDocument( context ); 14197 context = context || document; 14198 14199 if ( documentIsHTML ) { 14200 14201 // If the selector is sufficiently simple, try using a "get*By*" DOM method 14202 // (excepting DocumentFragment context, where the methods don't exist) 14203 if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { 14204 14205 // ID selector 14206 if ( ( m = match[ 1 ] ) ) { 14207 14208 // Document context 14209 if ( nodeType === 9 ) { 14210 if ( ( elem = context.getElementById( m ) ) ) { 14211 14212 // Support: IE, Opera, Webkit 14213 // TODO: identify versions 14214 // getElementById can match elements by name instead of ID 14215 if ( elem.id === m ) { 14216 results.push( elem ); 14217 return results; 14218 } 14219 } else { 14220 return results; 14221 } 14222 14223 // Element context 14224 } else { 14225 14226 // Support: IE, Opera, Webkit 14227 // TODO: identify versions 14228 // getElementById can match elements by name instead of ID 14229 if ( newContext && ( elem = newContext.getElementById( m ) ) && 14230 contains( context, elem ) && 14231 elem.id === m ) { 14232 14233 results.push( elem ); 14234 return results; 14235 } 14236 } 14237 14238 // Type selector 14239 } else if ( match[ 2 ] ) { 14240 push.apply( results, context.getElementsByTagName( selector ) ); 14241 return results; 14242 14243 // Class selector 14244 } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && 14245 context.getElementsByClassName ) { 14246 14247 push.apply( results, context.getElementsByClassName( m ) ); 14248 return results; 14249 } 14250 } 14251 14252 // Take advantage of querySelectorAll 14253 if ( support.qsa && 14254 !nonnativeSelectorCache[ selector + " " ] && 14255 ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && 14256 14257 // Support: IE 8 only 14258 // Exclude object elements 14259 ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { 14260 14261 newSelector = selector; 14262 newContext = context; 14263 14264 // qSA considers elements outside a scoping root when evaluating child or 14265 // descendant combinators, which is not what we want. 14266 // In such cases, we work around the behavior by prefixing every selector in the 14267 // list with an ID selector referencing the scope context. 14268 // The technique has to be used as well when a leading combinator is used 14269 // as such selectors are not recognized by querySelectorAll. 14270 // Thanks to Andrew Dupont for this technique. 14271 if ( nodeType === 1 && 14272 ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { 14273 14274 // Expand context for sibling selectors 14275 newContext = rsibling.test( selector ) && testContext( context.parentNode ) || 14276 context; 14277 14278 // We can use :scope instead of the ID hack if the browser 14279 // supports it & if we're not changing the context. 14280 if ( newContext !== context || !support.scope ) { 14281 14282 // Capture the context ID, setting it first if necessary 14283 if ( ( nid = context.getAttribute( "id" ) ) ) { 14284 nid = nid.replace( rcssescape, fcssescape ); 14285 } else { 14286 context.setAttribute( "id", ( nid = expando ) ); 14287 } 14288 } 14289 14290 // Prefix every selector in the list 14291 groups = tokenize( selector ); 14292 i = groups.length; 14293 while ( i-- ) { 14294 groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + 14295 toSelector( groups[ i ] ); 14296 } 14297 newSelector = groups.join( "," ); 14298 } 14299 14300 try { 14301 push.apply( results, 14302 newContext.querySelectorAll( newSelector ) 14303 ); 14304 return results; 14305 } catch ( qsaError ) { 14306 nonnativeSelectorCache( selector, true ); 14307 } finally { 14308 if ( nid === expando ) { 14309 context.removeAttribute( "id" ); 14310 } 14311 } 14312 } 14313 } 14314 } 14315 14316 // All others 14317 return select( selector.replace( rtrim, "$1" ), context, results, seed ); 14318} 14319 14320/** 14321 * Create key-value caches of limited size 14322 * @returns {function(string, object)} Returns the Object data after storing it on itself with 14323 * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) 14324 * deleting the oldest entry 14325 */ 14326function createCache() { 14327 var keys = []; 14328 14329 function cache( key, value ) { 14330 14331 // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) 14332 if ( keys.push( key + " " ) > Expr.cacheLength ) { 14333 14334 // Only keep the most recent entries 14335 delete cache[ keys.shift() ]; 14336 } 14337 return ( cache[ key + " " ] = value ); 14338 } 14339 return cache; 14340} 14341 14342/** 14343 * Mark a function for special use by Sizzle 14344 * @param {Function} fn The function to mark 14345 */ 14346function markFunction( fn ) { 14347 fn[ expando ] = true; 14348 return fn; 14349} 14350 14351/** 14352 * Support testing using an element 14353 * @param {Function} fn Passed the created element and returns a boolean result 14354 */ 14355function assert( fn ) { 14356 var el = document.createElement( "fieldset" ); 14357 14358 try { 14359 return !!fn( el ); 14360 } catch ( e ) { 14361 return false; 14362 } finally { 14363 14364 // Remove from its parent by default 14365 if ( el.parentNode ) { 14366 el.parentNode.removeChild( el ); 14367 } 14368 14369 // release memory in IE 14370 el = null; 14371 } 14372} 14373 14374/** 14375 * Adds the same handler for all of the specified attrs 14376 * @param {String} attrs Pipe-separated list of attributes 14377 * @param {Function} handler The method that will be applied 14378 */ 14379function addHandle( attrs, handler ) { 14380 var arr = attrs.split( "|" ), 14381 i = arr.length; 14382 14383 while ( i-- ) { 14384 Expr.attrHandle[ arr[ i ] ] = handler; 14385 } 14386} 14387 14388/** 14389 * Checks document order of two siblings 14390 * @param {Element} a 14391 * @param {Element} b 14392 * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b 14393 */ 14394function siblingCheck( a, b ) { 14395 var cur = b && a, 14396 diff = cur && a.nodeType === 1 && b.nodeType === 1 && 14397 a.sourceIndex - b.sourceIndex; 14398 14399 // Use IE sourceIndex if available on both nodes 14400 if ( diff ) { 14401 return diff; 14402 } 14403 14404 // Check if b follows a 14405 if ( cur ) { 14406 while ( ( cur = cur.nextSibling ) ) { 14407 if ( cur === b ) { 14408 return -1; 14409 } 14410 } 14411 } 14412 14413 return a ? 1 : -1; 14414} 14415 14416/** 14417 * Returns a function to use in pseudos for input types 14418 * @param {String} type 14419 */ 14420function createInputPseudo( type ) { 14421 return function( elem ) { 14422 var name = elem.nodeName.toLowerCase(); 14423 return name === "input" && elem.type === type; 14424 }; 14425} 14426 14427/** 14428 * Returns a function to use in pseudos for buttons 14429 * @param {String} type 14430 */ 14431function createButtonPseudo( type ) { 14432 return function( elem ) { 14433 var name = elem.nodeName.toLowerCase(); 14434 return ( name === "input" || name === "button" ) && elem.type === type; 14435 }; 14436} 14437 14438/** 14439 * Returns a function to use in pseudos for :enabled/:disabled 14440 * @param {Boolean} disabled true for :disabled; false for :enabled 14441 */ 14442function createDisabledPseudo( disabled ) { 14443 14444 // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable 14445 return function( elem ) { 14446 14447 // Only certain elements can match :enabled or :disabled 14448 // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled 14449 // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled 14450 if ( "form" in elem ) { 14451 14452 // Check for inherited disabledness on relevant non-disabled elements: 14453 // * listed form-associated elements in a disabled fieldset 14454 // https://html.spec.whatwg.org/multipage/forms.html#category-listed 14455 // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled 14456 // * option elements in a disabled optgroup 14457 // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled 14458 // All such elements have a "form" property. 14459 if ( elem.parentNode && elem.disabled === false ) { 14460 14461 // Option elements defer to a parent optgroup if present 14462 if ( "label" in elem ) { 14463 if ( "label" in elem.parentNode ) { 14464 return elem.parentNode.disabled === disabled; 14465 } else { 14466 return elem.disabled === disabled; 14467 } 14468 } 14469 14470 // Support: IE 6 - 11 14471 // Use the isDisabled shortcut property to check for disabled fieldset ancestors 14472 return elem.isDisabled === disabled || 14473 14474 // Where there is no isDisabled, check manually 14475 /* jshint -W018 */ 14476 elem.isDisabled !== !disabled && 14477 inDisabledFieldset( elem ) === disabled; 14478 } 14479 14480 return elem.disabled === disabled; 14481 14482 // Try to winnow out elements that can't be disabled before trusting the disabled property. 14483 // Some victims get caught in our net (label, legend, menu, track), but it shouldn't 14484 // even exist on them, let alone have a boolean value. 14485 } else if ( "label" in elem ) { 14486 return elem.disabled === disabled; 14487 } 14488 14489 // Remaining elements are neither :enabled nor :disabled 14490 return false; 14491 }; 14492} 14493 14494/** 14495 * Returns a function to use in pseudos for positionals 14496 * @param {Function} fn 14497 */ 14498function createPositionalPseudo( fn ) { 14499 return markFunction( function( argument ) { 14500 argument = +argument; 14501 return markFunction( function( seed, matches ) { 14502 var j, 14503 matchIndexes = fn( [], seed.length, argument ), 14504 i = matchIndexes.length; 14505 14506 // Match elements found at the specified indexes 14507 while ( i-- ) { 14508 if ( seed[ ( j = matchIndexes[ i ] ) ] ) { 14509 seed[ j ] = !( matches[ j ] = seed[ j ] ); 14510 } 14511 } 14512 } ); 14513 } ); 14514} 14515 14516/** 14517 * Checks a node for validity as a Sizzle context 14518 * @param {Element|Object=} context 14519 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value 14520 */ 14521function testContext( context ) { 14522 return context && typeof context.getElementsByTagName !== "undefined" && context; 14523} 14524 14525// Expose support vars for convenience 14526support = Sizzle.support = {}; 14527 14528/** 14529 * Detects XML nodes 14530 * @param {Element|Object} elem An element or a document 14531 * @returns {Boolean} True iff elem is a non-HTML XML node 14532 */ 14533isXML = Sizzle.isXML = function( elem ) { 14534 var namespace = elem && elem.namespaceURI, 14535 docElem = elem && ( elem.ownerDocument || elem ).documentElement; 14536 14537 // Support: IE <=8 14538 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes 14539 // https://bugs.jquery.com/ticket/4833 14540 return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); 14541}; 14542 14543/** 14544 * Sets document-related variables once based on the current document 14545 * @param {Element|Object} [doc] An element or document object to use to set the document 14546 * @returns {Object} Returns the current document 14547 */ 14548setDocument = Sizzle.setDocument = function( node ) { 14549 var hasCompare, subWindow, 14550 doc = node ? node.ownerDocument || node : preferredDoc; 14551 14552 // Return early if doc is invalid or already selected 14553 // Support: IE 11+, Edge 17 - 18+ 14554 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 14555 // two documents; shallow comparisons work. 14556 // eslint-disable-next-line eqeqeq 14557 if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { 14558 return document; 14559 } 14560 14561 // Update global variables 14562 document = doc; 14563 docElem = document.documentElement; 14564 documentIsHTML = !isXML( document ); 14565 14566 // Support: IE 9 - 11+, Edge 12 - 18+ 14567 // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) 14568 // Support: IE 11+, Edge 17 - 18+ 14569 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 14570 // two documents; shallow comparisons work. 14571 // eslint-disable-next-line eqeqeq 14572 if ( preferredDoc != document && 14573 ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { 14574 14575 // Support: IE 11, Edge 14576 if ( subWindow.addEventListener ) { 14577 subWindow.addEventListener( "unload", unloadHandler, false ); 14578 14579 // Support: IE 9 - 10 only 14580 } else if ( subWindow.attachEvent ) { 14581 subWindow.attachEvent( "onunload", unloadHandler ); 14582 } 14583 } 14584 14585 // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, 14586 // Safari 4 - 5 only, Opera <=11.6 - 12.x only 14587 // IE/Edge & older browsers don't support the :scope pseudo-class. 14588 // Support: Safari 6.0 only 14589 // Safari 6.0 supports :scope but it's an alias of :root there. 14590 support.scope = assert( function( el ) { 14591 docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); 14592 return typeof el.querySelectorAll !== "undefined" && 14593 !el.querySelectorAll( ":scope fieldset div" ).length; 14594 } ); 14595 14596 /* Attributes 14597 ---------------------------------------------------------------------- */ 14598 14599 // Support: IE<8 14600 // Verify that getAttribute really returns attributes and not properties 14601 // (excepting IE8 booleans) 14602 support.attributes = assert( function( el ) { 14603 el.className = "i"; 14604 return !el.getAttribute( "className" ); 14605 } ); 14606 14607 /* getElement(s)By* 14608 ---------------------------------------------------------------------- */ 14609 14610 // Check if getElementsByTagName("*") returns only elements 14611 support.getElementsByTagName = assert( function( el ) { 14612 el.appendChild( document.createComment( "" ) ); 14613 return !el.getElementsByTagName( "*" ).length; 14614 } ); 14615 14616 // Support: IE<9 14617 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); 14618 14619 // Support: IE<10 14620 // Check if getElementById returns elements by name 14621 // The broken getElementById methods don't pick up programmatically-set names, 14622 // so use a roundabout getElementsByName test 14623 support.getById = assert( function( el ) { 14624 docElem.appendChild( el ).id = expando; 14625 return !document.getElementsByName || !document.getElementsByName( expando ).length; 14626 } ); 14627 14628 // ID filter and find 14629 if ( support.getById ) { 14630 Expr.filter[ "ID" ] = function( id ) { 14631 var attrId = id.replace( runescape, funescape ); 14632 return function( elem ) { 14633 return elem.getAttribute( "id" ) === attrId; 14634 }; 14635 }; 14636 Expr.find[ "ID" ] = function( id, context ) { 14637 if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { 14638 var elem = context.getElementById( id ); 14639 return elem ? [ elem ] : []; 14640 } 14641 }; 14642 } else { 14643 Expr.filter[ "ID" ] = function( id ) { 14644 var attrId = id.replace( runescape, funescape ); 14645 return function( elem ) { 14646 var node = typeof elem.getAttributeNode !== "undefined" && 14647 elem.getAttributeNode( "id" ); 14648 return node && node.value === attrId; 14649 }; 14650 }; 14651 14652 // Support: IE 6 - 7 only 14653 // getElementById is not reliable as a find shortcut 14654 Expr.find[ "ID" ] = function( id, context ) { 14655 if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { 14656 var node, i, elems, 14657 elem = context.getElementById( id ); 14658 14659 if ( elem ) { 14660 14661 // Verify the id attribute 14662 node = elem.getAttributeNode( "id" ); 14663 if ( node && node.value === id ) { 14664 return [ elem ]; 14665 } 14666 14667 // Fall back on getElementsByName 14668 elems = context.getElementsByName( id ); 14669 i = 0; 14670 while ( ( elem = elems[ i++ ] ) ) { 14671 node = elem.getAttributeNode( "id" ); 14672 if ( node && node.value === id ) { 14673 return [ elem ]; 14674 } 14675 } 14676 } 14677 14678 return []; 14679 } 14680 }; 14681 } 14682 14683 // Tag 14684 Expr.find[ "TAG" ] = support.getElementsByTagName ? 14685 function( tag, context ) { 14686 if ( typeof context.getElementsByTagName !== "undefined" ) { 14687 return context.getElementsByTagName( tag ); 14688 14689 // DocumentFragment nodes don't have gEBTN 14690 } else if ( support.qsa ) { 14691 return context.querySelectorAll( tag ); 14692 } 14693 } : 14694 14695 function( tag, context ) { 14696 var elem, 14697 tmp = [], 14698 i = 0, 14699 14700 // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too 14701 results = context.getElementsByTagName( tag ); 14702 14703 // Filter out possible comments 14704 if ( tag === "*" ) { 14705 while ( ( elem = results[ i++ ] ) ) { 14706 if ( elem.nodeType === 1 ) { 14707 tmp.push( elem ); 14708 } 14709 } 14710 14711 return tmp; 14712 } 14713 return results; 14714 }; 14715 14716 // Class 14717 Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { 14718 if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { 14719 return context.getElementsByClassName( className ); 14720 } 14721 }; 14722 14723 /* QSA/matchesSelector 14724 ---------------------------------------------------------------------- */ 14725 14726 // QSA and matchesSelector support 14727 14728 // matchesSelector(:active) reports false when true (IE9/Opera 11.5) 14729 rbuggyMatches = []; 14730 14731 // qSa(:focus) reports false when true (Chrome 21) 14732 // We allow this because of a bug in IE8/9 that throws an error 14733 // whenever `document.activeElement` is accessed on an iframe 14734 // So, we allow :focus to pass through QSA all the time to avoid the IE error 14735 // See https://bugs.jquery.com/ticket/13378 14736 rbuggyQSA = []; 14737 14738 if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { 14739 14740 // Build QSA regex 14741 // Regex strategy adopted from Diego Perini 14742 assert( function( el ) { 14743 14744 var input; 14745 14746 // Select is set to empty string on purpose 14747 // This is to test IE's treatment of not explicitly 14748 // setting a boolean content attribute, 14749 // since its presence should be enough 14750 // https://bugs.jquery.com/ticket/12359 14751 docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" + 14752 "<select id='" + expando + "-\r\\' msallowcapture=''>" + 14753 "<option selected=''></option></select>"; 14754 14755 // Support: IE8, Opera 11-12.16 14756 // Nothing should be selected when empty strings follow ^= or $= or *= 14757 // The test attribute must be unknown in Opera but "safe" for WinRT 14758 // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section 14759 if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { 14760 rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); 14761 } 14762 14763 // Support: IE8 14764 // Boolean attributes and "value" are not treated correctly 14765 if ( !el.querySelectorAll( "[selected]" ).length ) { 14766 rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); 14767 } 14768 14769 // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ 14770 if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { 14771 rbuggyQSA.push( "~=" ); 14772 } 14773 14774 // Support: IE 11+, Edge 15 - 18+ 14775 // IE 11/Edge don't find elements on a `[name='']` query in some cases. 14776 // Adding a temporary attribute to the document before the selection works 14777 // around the issue. 14778 // Interestingly, IE 10 & older don't seem to have the issue. 14779 input = document.createElement( "input" ); 14780 input.setAttribute( "name", "" ); 14781 el.appendChild( input ); 14782 if ( !el.querySelectorAll( "[name='']" ).length ) { 14783 rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + 14784 whitespace + "*(?:''|\"\")" ); 14785 } 14786 14787 // Webkit/Opera - :checked should return selected option elements 14788 // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked 14789 // IE8 throws error here and will not see later tests 14790 if ( !el.querySelectorAll( ":checked" ).length ) { 14791 rbuggyQSA.push( ":checked" ); 14792 } 14793 14794 // Support: Safari 8+, iOS 8+ 14795 // https://bugs.webkit.org/show_bug.cgi?id=136851 14796 // In-page `selector#id sibling-combinator selector` fails 14797 if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { 14798 rbuggyQSA.push( ".#.+[+~]" ); 14799 } 14800 14801 // Support: Firefox <=3.6 - 5 only 14802 // Old Firefox doesn't throw on a badly-escaped identifier. 14803 el.querySelectorAll( "\\\f" ); 14804 rbuggyQSA.push( "[\\r\\n\\f]" ); 14805 } ); 14806 14807 assert( function( el ) { 14808 el.innerHTML = "<a href='' disabled='disabled'></a>" + 14809 "<select disabled='disabled'><option/></select>"; 14810 14811 // Support: Windows 8 Native Apps 14812 // The type and name attributes are restricted during .innerHTML assignment 14813 var input = document.createElement( "input" ); 14814 input.setAttribute( "type", "hidden" ); 14815 el.appendChild( input ).setAttribute( "name", "D" ); 14816 14817 // Support: IE8 14818 // Enforce case-sensitivity of name attribute 14819 if ( el.querySelectorAll( "[name=d]" ).length ) { 14820 rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); 14821 } 14822 14823 // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) 14824 // IE8 throws error here and will not see later tests 14825 if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { 14826 rbuggyQSA.push( ":enabled", ":disabled" ); 14827 } 14828 14829 // Support: IE9-11+ 14830 // IE's :disabled selector does not pick up the children of disabled fieldsets 14831 docElem.appendChild( el ).disabled = true; 14832 if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { 14833 rbuggyQSA.push( ":enabled", ":disabled" ); 14834 } 14835 14836 // Support: Opera 10 - 11 only 14837 // Opera 10-11 does not throw on post-comma invalid pseudos 14838 el.querySelectorAll( "*,:x" ); 14839 rbuggyQSA.push( ",.*:" ); 14840 } ); 14841 } 14842 14843 if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || 14844 docElem.webkitMatchesSelector || 14845 docElem.mozMatchesSelector || 14846 docElem.oMatchesSelector || 14847 docElem.msMatchesSelector ) ) ) ) { 14848 14849 assert( function( el ) { 14850 14851 // Check to see if it's possible to do matchesSelector 14852 // on a disconnected node (IE 9) 14853 support.disconnectedMatch = matches.call( el, "*" ); 14854 14855 // This should fail with an exception 14856 // Gecko does not error, returns false instead 14857 matches.call( el, "[s!='']:x" ); 14858 rbuggyMatches.push( "!=", pseudos ); 14859 } ); 14860 } 14861 14862 rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); 14863 rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); 14864 14865 /* Contains 14866 ---------------------------------------------------------------------- */ 14867 hasCompare = rnative.test( docElem.compareDocumentPosition ); 14868 14869 // Element contains another 14870 // Purposefully self-exclusive 14871 // As in, an element does not contain itself 14872 contains = hasCompare || rnative.test( docElem.contains ) ? 14873 function( a, b ) { 14874 var adown = a.nodeType === 9 ? a.documentElement : a, 14875 bup = b && b.parentNode; 14876 return a === bup || !!( bup && bup.nodeType === 1 && ( 14877 adown.contains ? 14878 adown.contains( bup ) : 14879 a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 14880 ) ); 14881 } : 14882 function( a, b ) { 14883 if ( b ) { 14884 while ( ( b = b.parentNode ) ) { 14885 if ( b === a ) { 14886 return true; 14887 } 14888 } 14889 } 14890 return false; 14891 }; 14892 14893 /* Sorting 14894 ---------------------------------------------------------------------- */ 14895 14896 // Document order sorting 14897 sortOrder = hasCompare ? 14898 function( a, b ) { 14899 14900 // Flag for duplicate removal 14901 if ( a === b ) { 14902 hasDuplicate = true; 14903 return 0; 14904 } 14905 14906 // Sort on method existence if only one input has compareDocumentPosition 14907 var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; 14908 if ( compare ) { 14909 return compare; 14910 } 14911 14912 // Calculate position if both inputs belong to the same document 14913 // Support: IE 11+, Edge 17 - 18+ 14914 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 14915 // two documents; shallow comparisons work. 14916 // eslint-disable-next-line eqeqeq 14917 compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? 14918 a.compareDocumentPosition( b ) : 14919 14920 // Otherwise we know they are disconnected 14921 1; 14922 14923 // Disconnected nodes 14924 if ( compare & 1 || 14925 ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { 14926 14927 // Choose the first element that is related to our preferred document 14928 // Support: IE 11+, Edge 17 - 18+ 14929 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 14930 // two documents; shallow comparisons work. 14931 // eslint-disable-next-line eqeqeq 14932 if ( a == document || a.ownerDocument == preferredDoc && 14933 contains( preferredDoc, a ) ) { 14934 return -1; 14935 } 14936 14937 // Support: IE 11+, Edge 17 - 18+ 14938 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 14939 // two documents; shallow comparisons work. 14940 // eslint-disable-next-line eqeqeq 14941 if ( b == document || b.ownerDocument == preferredDoc && 14942 contains( preferredDoc, b ) ) { 14943 return 1; 14944 } 14945 14946 // Maintain original order 14947 return sortInput ? 14948 ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 14949 0; 14950 } 14951 14952 return compare & 4 ? -1 : 1; 14953 } : 14954 function( a, b ) { 14955 14956 // Exit early if the nodes are identical 14957 if ( a === b ) { 14958 hasDuplicate = true; 14959 return 0; 14960 } 14961 14962 var cur, 14963 i = 0, 14964 aup = a.parentNode, 14965 bup = b.parentNode, 14966 ap = [ a ], 14967 bp = [ b ]; 14968 14969 // Parentless nodes are either documents or disconnected 14970 if ( !aup || !bup ) { 14971 14972 // Support: IE 11+, Edge 17 - 18+ 14973 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 14974 // two documents; shallow comparisons work. 14975 /* eslint-disable eqeqeq */ 14976 return a == document ? -1 : 14977 b == document ? 1 : 14978 /* eslint-enable eqeqeq */ 14979 aup ? -1 : 14980 bup ? 1 : 14981 sortInput ? 14982 ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 14983 0; 14984 14985 // If the nodes are siblings, we can do a quick check 14986 } else if ( aup === bup ) { 14987 return siblingCheck( a, b ); 14988 } 14989 14990 // Otherwise we need full lists of their ancestors for comparison 14991 cur = a; 14992 while ( ( cur = cur.parentNode ) ) { 14993 ap.unshift( cur ); 14994 } 14995 cur = b; 14996 while ( ( cur = cur.parentNode ) ) { 14997 bp.unshift( cur ); 14998 } 14999 15000 // Walk down the tree looking for a discrepancy 15001 while ( ap[ i ] === bp[ i ] ) { 15002 i++; 15003 } 15004 15005 return i ? 15006 15007 // Do a sibling check if the nodes have a common ancestor 15008 siblingCheck( ap[ i ], bp[ i ] ) : 15009 15010 // Otherwise nodes in our document sort first 15011 // Support: IE 11+, Edge 17 - 18+ 15012 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 15013 // two documents; shallow comparisons work. 15014 /* eslint-disable eqeqeq */ 15015 ap[ i ] == preferredDoc ? -1 : 15016 bp[ i ] == preferredDoc ? 1 : 15017 /* eslint-enable eqeqeq */ 15018 0; 15019 }; 15020 15021 return document; 15022}; 15023 15024Sizzle.matches = function( expr, elements ) { 15025 return Sizzle( expr, null, null, elements ); 15026}; 15027 15028Sizzle.matchesSelector = function( elem, expr ) { 15029 setDocument( elem ); 15030 15031 if ( support.matchesSelector && documentIsHTML && 15032 !nonnativeSelectorCache[ expr + " " ] && 15033 ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && 15034 ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { 15035 15036 try { 15037 var ret = matches.call( elem, expr ); 15038 15039 // IE 9's matchesSelector returns false on disconnected nodes 15040 if ( ret || support.disconnectedMatch || 15041 15042 // As well, disconnected nodes are said to be in a document 15043 // fragment in IE 9 15044 elem.document && elem.document.nodeType !== 11 ) { 15045 return ret; 15046 } 15047 } catch ( e ) { 15048 nonnativeSelectorCache( expr, true ); 15049 } 15050 } 15051 15052 return Sizzle( expr, document, null, [ elem ] ).length > 0; 15053}; 15054 15055Sizzle.contains = function( context, elem ) { 15056 15057 // Set document vars if needed 15058 // Support: IE 11+, Edge 17 - 18+ 15059 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 15060 // two documents; shallow comparisons work. 15061 // eslint-disable-next-line eqeqeq 15062 if ( ( context.ownerDocument || context ) != document ) { 15063 setDocument( context ); 15064 } 15065 return contains( context, elem ); 15066}; 15067 15068Sizzle.attr = function( elem, name ) { 15069 15070 // Set document vars if needed 15071 // Support: IE 11+, Edge 17 - 18+ 15072 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 15073 // two documents; shallow comparisons work. 15074 // eslint-disable-next-line eqeqeq 15075 if ( ( elem.ownerDocument || elem ) != document ) { 15076 setDocument( elem ); 15077 } 15078 15079 var fn = Expr.attrHandle[ name.toLowerCase() ], 15080 15081 // Don't get fooled by Object.prototype properties (jQuery #13807) 15082 val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? 15083 fn( elem, name, !documentIsHTML ) : 15084 undefined; 15085 15086 return val !== undefined ? 15087 val : 15088 support.attributes || !documentIsHTML ? 15089 elem.getAttribute( name ) : 15090 ( val = elem.getAttributeNode( name ) ) && val.specified ? 15091 val.value : 15092 null; 15093}; 15094 15095Sizzle.escape = function( sel ) { 15096 return ( sel + "" ).replace( rcssescape, fcssescape ); 15097}; 15098 15099Sizzle.error = function( msg ) { 15100 throw new Error( "Syntax error, unrecognized expression: " + msg ); 15101}; 15102 15103/** 15104 * Document sorting and removing duplicates 15105 * @param {ArrayLike} results 15106 */ 15107Sizzle.uniqueSort = function( results ) { 15108 var elem, 15109 duplicates = [], 15110 j = 0, 15111 i = 0; 15112 15113 // Unless we *know* we can detect duplicates, assume their presence 15114 hasDuplicate = !support.detectDuplicates; 15115 sortInput = !support.sortStable && results.slice( 0 ); 15116 results.sort( sortOrder ); 15117 15118 if ( hasDuplicate ) { 15119 while ( ( elem = results[ i++ ] ) ) { 15120 if ( elem === results[ i ] ) { 15121 j = duplicates.push( i ); 15122 } 15123 } 15124 while ( j-- ) { 15125 results.splice( duplicates[ j ], 1 ); 15126 } 15127 } 15128 15129 // Clear input after sorting to release objects 15130 // See https://github.com/jquery/sizzle/pull/225 15131 sortInput = null; 15132 15133 return results; 15134}; 15135 15136/** 15137 * Utility function for retrieving the text value of an array of DOM nodes 15138 * @param {Array|Element} elem 15139 */ 15140getText = Sizzle.getText = function( elem ) { 15141 var node, 15142 ret = "", 15143 i = 0, 15144 nodeType = elem.nodeType; 15145 15146 if ( !nodeType ) { 15147 15148 // If no nodeType, this is expected to be an array 15149 while ( ( node = elem[ i++ ] ) ) { 15150 15151 // Do not traverse comment nodes 15152 ret += getText( node ); 15153 } 15154 } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { 15155 15156 // Use textContent for elements 15157 // innerText usage removed for consistency of new lines (jQuery #11153) 15158 if ( typeof elem.textContent === "string" ) { 15159 return elem.textContent; 15160 } else { 15161 15162 // Traverse its children 15163 for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { 15164 ret += getText( elem ); 15165 } 15166 } 15167 } else if ( nodeType === 3 || nodeType === 4 ) { 15168 return elem.nodeValue; 15169 } 15170 15171 // Do not include comment or processing instruction nodes 15172 15173 return ret; 15174}; 15175 15176Expr = Sizzle.selectors = { 15177 15178 // Can be adjusted by the user 15179 cacheLength: 50, 15180 15181 createPseudo: markFunction, 15182 15183 match: matchExpr, 15184 15185 attrHandle: {}, 15186 15187 find: {}, 15188 15189 relative: { 15190 ">": { dir: "parentNode", first: true }, 15191 " ": { dir: "parentNode" }, 15192 "+": { dir: "previousSibling", first: true }, 15193 "~": { dir: "previousSibling" } 15194 }, 15195 15196 preFilter: { 15197 "ATTR": function( match ) { 15198 match[ 1 ] = match[ 1 ].replace( runescape, funescape ); 15199 15200 // Move the given value to match[3] whether quoted or unquoted 15201 match[ 3 ] = ( match[ 3 ] || match[ 4 ] || 15202 match[ 5 ] || "" ).replace( runescape, funescape ); 15203 15204 if ( match[ 2 ] === "~=" ) { 15205 match[ 3 ] = " " + match[ 3 ] + " "; 15206 } 15207 15208 return match.slice( 0, 4 ); 15209 }, 15210 15211 "CHILD": function( match ) { 15212 15213 /* matches from matchExpr["CHILD"] 15214 1 type (only|nth|...) 15215 2 what (child|of-type) 15216 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) 15217 4 xn-component of xn+y argument ([+-]?\d*n|) 15218 5 sign of xn-component 15219 6 x of xn-component 15220 7 sign of y-component 15221 8 y of y-component 15222 */ 15223 match[ 1 ] = match[ 1 ].toLowerCase(); 15224 15225 if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { 15226 15227 // nth-* requires argument 15228 if ( !match[ 3 ] ) { 15229 Sizzle.error( match[ 0 ] ); 15230 } 15231 15232 // numeric x and y parameters for Expr.filter.CHILD 15233 // remember that false/true cast respectively to 0/1 15234 match[ 4 ] = +( match[ 4 ] ? 15235 match[ 5 ] + ( match[ 6 ] || 1 ) : 15236 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); 15237 match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); 15238 15239 // other types prohibit arguments 15240 } else if ( match[ 3 ] ) { 15241 Sizzle.error( match[ 0 ] ); 15242 } 15243 15244 return match; 15245 }, 15246 15247 "PSEUDO": function( match ) { 15248 var excess, 15249 unquoted = !match[ 6 ] && match[ 2 ]; 15250 15251 if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { 15252 return null; 15253 } 15254 15255 // Accept quoted arguments as-is 15256 if ( match[ 3 ] ) { 15257 match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; 15258 15259 // Strip excess characters from unquoted arguments 15260 } else if ( unquoted && rpseudo.test( unquoted ) && 15261 15262 // Get excess from tokenize (recursively) 15263 ( excess = tokenize( unquoted, true ) ) && 15264 15265 // advance to the next closing parenthesis 15266 ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { 15267 15268 // excess is a negative index 15269 match[ 0 ] = match[ 0 ].slice( 0, excess ); 15270 match[ 2 ] = unquoted.slice( 0, excess ); 15271 } 15272 15273 // Return only captures needed by the pseudo filter method (type and argument) 15274 return match.slice( 0, 3 ); 15275 } 15276 }, 15277 15278 filter: { 15279 15280 "TAG": function( nodeNameSelector ) { 15281 var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); 15282 return nodeNameSelector === "*" ? 15283 function() { 15284 return true; 15285 } : 15286 function( elem ) { 15287 return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; 15288 }; 15289 }, 15290 15291 "CLASS": function( className ) { 15292 var pattern = classCache[ className + " " ]; 15293 15294 return pattern || 15295 ( pattern = new RegExp( "(^|" + whitespace + 15296 ")" + className + "(" + whitespace + "|$)" ) ) && classCache( 15297 className, function( elem ) { 15298 return pattern.test( 15299 typeof elem.className === "string" && elem.className || 15300 typeof elem.getAttribute !== "undefined" && 15301 elem.getAttribute( "class" ) || 15302 "" 15303 ); 15304 } ); 15305 }, 15306 15307 "ATTR": function( name, operator, check ) { 15308 return function( elem ) { 15309 var result = Sizzle.attr( elem, name ); 15310 15311 if ( result == null ) { 15312 return operator === "!="; 15313 } 15314 if ( !operator ) { 15315 return true; 15316 } 15317 15318 result += ""; 15319 15320 /* eslint-disable max-len */ 15321 15322 return operator === "=" ? result === check : 15323 operator === "!=" ? result !== check : 15324 operator === "^=" ? check && result.indexOf( check ) === 0 : 15325 operator === "*=" ? check && result.indexOf( check ) > -1 : 15326 operator === "$=" ? check && result.slice( -check.length ) === check : 15327 operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : 15328 operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : 15329 false; 15330 /* eslint-enable max-len */ 15331 15332 }; 15333 }, 15334 15335 "CHILD": function( type, what, _argument, first, last ) { 15336 var simple = type.slice( 0, 3 ) !== "nth", 15337 forward = type.slice( -4 ) !== "last", 15338 ofType = what === "of-type"; 15339 15340 return first === 1 && last === 0 ? 15341 15342 // Shortcut for :nth-*(n) 15343 function( elem ) { 15344 return !!elem.parentNode; 15345 } : 15346 15347 function( elem, _context, xml ) { 15348 var cache, uniqueCache, outerCache, node, nodeIndex, start, 15349 dir = simple !== forward ? "nextSibling" : "previousSibling", 15350 parent = elem.parentNode, 15351 name = ofType && elem.nodeName.toLowerCase(), 15352 useCache = !xml && !ofType, 15353 diff = false; 15354 15355 if ( parent ) { 15356 15357 // :(first|last|only)-(child|of-type) 15358 if ( simple ) { 15359 while ( dir ) { 15360 node = elem; 15361 while ( ( node = node[ dir ] ) ) { 15362 if ( ofType ? 15363 node.nodeName.toLowerCase() === name : 15364 node.nodeType === 1 ) { 15365 15366 return false; 15367 } 15368 } 15369 15370 // Reverse direction for :only-* (if we haven't yet done so) 15371 start = dir = type === "only" && !start && "nextSibling"; 15372 } 15373 return true; 15374 } 15375 15376 start = [ forward ? parent.firstChild : parent.lastChild ]; 15377 15378 // non-xml :nth-child(...) stores cache data on `parent` 15379 if ( forward && useCache ) { 15380 15381 // Seek `elem` from a previously-cached index 15382 15383 // ...in a gzip-friendly way 15384 node = parent; 15385 outerCache = node[ expando ] || ( node[ expando ] = {} ); 15386 15387 // Support: IE <9 only 15388 // Defend against cloned attroperties (jQuery gh-1709) 15389 uniqueCache = outerCache[ node.uniqueID ] || 15390 ( outerCache[ node.uniqueID ] = {} ); 15391 15392 cache = uniqueCache[ type ] || []; 15393 nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; 15394 diff = nodeIndex && cache[ 2 ]; 15395 node = nodeIndex && parent.childNodes[ nodeIndex ]; 15396 15397 while ( ( node = ++nodeIndex && node && node[ dir ] || 15398 15399 // Fallback to seeking `elem` from the start 15400 ( diff = nodeIndex = 0 ) || start.pop() ) ) { 15401 15402 // When found, cache indexes on `parent` and break 15403 if ( node.nodeType === 1 && ++diff && node === elem ) { 15404 uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; 15405 break; 15406 } 15407 } 15408 15409 } else { 15410 15411 // Use previously-cached element index if available 15412 if ( useCache ) { 15413 15414 // ...in a gzip-friendly way 15415 node = elem; 15416 outerCache = node[ expando ] || ( node[ expando ] = {} ); 15417 15418 // Support: IE <9 only 15419 // Defend against cloned attroperties (jQuery gh-1709) 15420 uniqueCache = outerCache[ node.uniqueID ] || 15421 ( outerCache[ node.uniqueID ] = {} ); 15422 15423 cache = uniqueCache[ type ] || []; 15424 nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; 15425 diff = nodeIndex; 15426 } 15427 15428 // xml :nth-child(...) 15429 // or :nth-last-child(...) or :nth(-last)?-of-type(...) 15430 if ( diff === false ) { 15431 15432 // Use the same loop as above to seek `elem` from the start 15433 while ( ( node = ++nodeIndex && node && node[ dir ] || 15434 ( diff = nodeIndex = 0 ) || start.pop() ) ) { 15435 15436 if ( ( ofType ? 15437 node.nodeName.toLowerCase() === name : 15438 node.nodeType === 1 ) && 15439 ++diff ) { 15440 15441 // Cache the index of each encountered element 15442 if ( useCache ) { 15443 outerCache = node[ expando ] || 15444 ( node[ expando ] = {} ); 15445 15446 // Support: IE <9 only 15447 // Defend against cloned attroperties (jQuery gh-1709) 15448 uniqueCache = outerCache[ node.uniqueID ] || 15449 ( outerCache[ node.uniqueID ] = {} ); 15450 15451 uniqueCache[ type ] = [ dirruns, diff ]; 15452 } 15453 15454 if ( node === elem ) { 15455 break; 15456 } 15457 } 15458 } 15459 } 15460 } 15461 15462 // Incorporate the offset, then check against cycle size 15463 diff -= last; 15464 return diff === first || ( diff % first === 0 && diff / first >= 0 ); 15465 } 15466 }; 15467 }, 15468 15469 "PSEUDO": function( pseudo, argument ) { 15470 15471 // pseudo-class names are case-insensitive 15472 // http://www.w3.org/TR/selectors/#pseudo-classes 15473 // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters 15474 // Remember that setFilters inherits from pseudos 15475 var args, 15476 fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || 15477 Sizzle.error( "unsupported pseudo: " + pseudo ); 15478 15479 // The user may use createPseudo to indicate that 15480 // arguments are needed to create the filter function 15481 // just as Sizzle does 15482 if ( fn[ expando ] ) { 15483 return fn( argument ); 15484 } 15485 15486 // But maintain support for old signatures 15487 if ( fn.length > 1 ) { 15488 args = [ pseudo, pseudo, "", argument ]; 15489 return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? 15490 markFunction( function( seed, matches ) { 15491 var idx, 15492 matched = fn( seed, argument ), 15493 i = matched.length; 15494 while ( i-- ) { 15495 idx = indexOf( seed, matched[ i ] ); 15496 seed[ idx ] = !( matches[ idx ] = matched[ i ] ); 15497 } 15498 } ) : 15499 function( elem ) { 15500 return fn( elem, 0, args ); 15501 }; 15502 } 15503 15504 return fn; 15505 } 15506 }, 15507 15508 pseudos: { 15509 15510 // Potentially complex pseudos 15511 "not": markFunction( function( selector ) { 15512 15513 // Trim the selector passed to compile 15514 // to avoid treating leading and trailing 15515 // spaces as combinators 15516 var input = [], 15517 results = [], 15518 matcher = compile( selector.replace( rtrim, "$1" ) ); 15519 15520 return matcher[ expando ] ? 15521 markFunction( function( seed, matches, _context, xml ) { 15522 var elem, 15523 unmatched = matcher( seed, null, xml, [] ), 15524 i = seed.length; 15525 15526 // Match elements unmatched by `matcher` 15527 while ( i-- ) { 15528 if ( ( elem = unmatched[ i ] ) ) { 15529 seed[ i ] = !( matches[ i ] = elem ); 15530 } 15531 } 15532 } ) : 15533 function( elem, _context, xml ) { 15534 input[ 0 ] = elem; 15535 matcher( input, null, xml, results ); 15536 15537 // Don't keep the element (issue #299) 15538 input[ 0 ] = null; 15539 return !results.pop(); 15540 }; 15541 } ), 15542 15543 "has": markFunction( function( selector ) { 15544 return function( elem ) { 15545 return Sizzle( selector, elem ).length > 0; 15546 }; 15547 } ), 15548 15549 "contains": markFunction( function( text ) { 15550 text = text.replace( runescape, funescape ); 15551 return function( elem ) { 15552 return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; 15553 }; 15554 } ), 15555 15556 // "Whether an element is represented by a :lang() selector 15557 // is based solely on the element's language value 15558 // being equal to the identifier C, 15559 // or beginning with the identifier C immediately followed by "-". 15560 // The matching of C against the element's language value is performed case-insensitively. 15561 // The identifier C does not have to be a valid language name." 15562 // http://www.w3.org/TR/selectors/#lang-pseudo 15563 "lang": markFunction( function( lang ) { 15564 15565 // lang value must be a valid identifier 15566 if ( !ridentifier.test( lang || "" ) ) { 15567 Sizzle.error( "unsupported lang: " + lang ); 15568 } 15569 lang = lang.replace( runescape, funescape ).toLowerCase(); 15570 return function( elem ) { 15571 var elemLang; 15572 do { 15573 if ( ( elemLang = documentIsHTML ? 15574 elem.lang : 15575 elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { 15576 15577 elemLang = elemLang.toLowerCase(); 15578 return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; 15579 } 15580 } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); 15581 return false; 15582 }; 15583 } ), 15584 15585 // Miscellaneous 15586 "target": function( elem ) { 15587 var hash = window.location && window.location.hash; 15588 return hash && hash.slice( 1 ) === elem.id; 15589 }, 15590 15591 "root": function( elem ) { 15592 return elem === docElem; 15593 }, 15594 15595 "focus": function( elem ) { 15596 return elem === document.activeElement && 15597 ( !document.hasFocus || document.hasFocus() ) && 15598 !!( elem.type || elem.href || ~elem.tabIndex ); 15599 }, 15600 15601 // Boolean properties 15602 "enabled": createDisabledPseudo( false ), 15603 "disabled": createDisabledPseudo( true ), 15604 15605 "checked": function( elem ) { 15606 15607 // In CSS3, :checked should return both checked and selected elements 15608 // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked 15609 var nodeName = elem.nodeName.toLowerCase(); 15610 return ( nodeName === "input" && !!elem.checked ) || 15611 ( nodeName === "option" && !!elem.selected ); 15612 }, 15613 15614 "selected": function( elem ) { 15615 15616 // Accessing this property makes selected-by-default 15617 // options in Safari work properly 15618 if ( elem.parentNode ) { 15619 // eslint-disable-next-line no-unused-expressions 15620 elem.parentNode.selectedIndex; 15621 } 15622 15623 return elem.selected === true; 15624 }, 15625 15626 // Contents 15627 "empty": function( elem ) { 15628 15629 // http://www.w3.org/TR/selectors/#empty-pseudo 15630 // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), 15631 // but not by others (comment: 8; processing instruction: 7; etc.) 15632 // nodeType < 6 works because attributes (2) do not appear as children 15633 for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { 15634 if ( elem.nodeType < 6 ) { 15635 return false; 15636 } 15637 } 15638 return true; 15639 }, 15640 15641 "parent": function( elem ) { 15642 return !Expr.pseudos[ "empty" ]( elem ); 15643 }, 15644 15645 // Element/input types 15646 "header": function( elem ) { 15647 return rheader.test( elem.nodeName ); 15648 }, 15649 15650 "input": function( elem ) { 15651 return rinputs.test( elem.nodeName ); 15652 }, 15653 15654 "button": function( elem ) { 15655 var name = elem.nodeName.toLowerCase(); 15656 return name === "input" && elem.type === "button" || name === "button"; 15657 }, 15658 15659 "text": function( elem ) { 15660 var attr; 15661 return elem.nodeName.toLowerCase() === "input" && 15662 elem.type === "text" && 15663 15664 // Support: IE<8 15665 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" 15666 ( ( attr = elem.getAttribute( "type" ) ) == null || 15667 attr.toLowerCase() === "text" ); 15668 }, 15669 15670 // Position-in-collection 15671 "first": createPositionalPseudo( function() { 15672 return [ 0 ]; 15673 } ), 15674 15675 "last": createPositionalPseudo( function( _matchIndexes, length ) { 15676 return [ length - 1 ]; 15677 } ), 15678 15679 "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { 15680 return [ argument < 0 ? argument + length : argument ]; 15681 } ), 15682 15683 "even": createPositionalPseudo( function( matchIndexes, length ) { 15684 var i = 0; 15685 for ( ; i < length; i += 2 ) { 15686 matchIndexes.push( i ); 15687 } 15688 return matchIndexes; 15689 } ), 15690 15691 "odd": createPositionalPseudo( function( matchIndexes, length ) { 15692 var i = 1; 15693 for ( ; i < length; i += 2 ) { 15694 matchIndexes.push( i ); 15695 } 15696 return matchIndexes; 15697 } ), 15698 15699 "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { 15700 var i = argument < 0 ? 15701 argument + length : 15702 argument > length ? 15703 length : 15704 argument; 15705 for ( ; --i >= 0; ) { 15706 matchIndexes.push( i ); 15707 } 15708 return matchIndexes; 15709 } ), 15710 15711 "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { 15712 var i = argument < 0 ? argument + length : argument; 15713 for ( ; ++i < length; ) { 15714 matchIndexes.push( i ); 15715 } 15716 return matchIndexes; 15717 } ) 15718 } 15719}; 15720 15721Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; 15722 15723// Add button/input type pseudos 15724for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { 15725 Expr.pseudos[ i ] = createInputPseudo( i ); 15726} 15727for ( i in { submit: true, reset: true } ) { 15728 Expr.pseudos[ i ] = createButtonPseudo( i ); 15729} 15730 15731// Easy API for creating new setFilters 15732function setFilters() {} 15733setFilters.prototype = Expr.filters = Expr.pseudos; 15734Expr.setFilters = new setFilters(); 15735 15736tokenize = Sizzle.tokenize = function( selector, parseOnly ) { 15737 var matched, match, tokens, type, 15738 soFar, groups, preFilters, 15739 cached = tokenCache[ selector + " " ]; 15740 15741 if ( cached ) { 15742 return parseOnly ? 0 : cached.slice( 0 ); 15743 } 15744 15745 soFar = selector; 15746 groups = []; 15747 preFilters = Expr.preFilter; 15748 15749 while ( soFar ) { 15750 15751 // Comma and first run 15752 if ( !matched || ( match = rcomma.exec( soFar ) ) ) { 15753 if ( match ) { 15754 15755 // Don't consume trailing commas as valid 15756 soFar = soFar.slice( match[ 0 ].length ) || soFar; 15757 } 15758 groups.push( ( tokens = [] ) ); 15759 } 15760 15761 matched = false; 15762 15763 // Combinators 15764 if ( ( match = rcombinators.exec( soFar ) ) ) { 15765 matched = match.shift(); 15766 tokens.push( { 15767 value: matched, 15768 15769 // Cast descendant combinators to space 15770 type: match[ 0 ].replace( rtrim, " " ) 15771 } ); 15772 soFar = soFar.slice( matched.length ); 15773 } 15774 15775 // Filters 15776 for ( type in Expr.filter ) { 15777 if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || 15778 ( match = preFilters[ type ]( match ) ) ) ) { 15779 matched = match.shift(); 15780 tokens.push( { 15781 value: matched, 15782 type: type, 15783 matches: match 15784 } ); 15785 soFar = soFar.slice( matched.length ); 15786 } 15787 } 15788 15789 if ( !matched ) { 15790 break; 15791 } 15792 } 15793 15794 // Return the length of the invalid excess 15795 // if we're just parsing 15796 // Otherwise, throw an error or return tokens 15797 return parseOnly ? 15798 soFar.length : 15799 soFar ? 15800 Sizzle.error( selector ) : 15801 15802 // Cache the tokens 15803 tokenCache( selector, groups ).slice( 0 ); 15804}; 15805 15806function toSelector( tokens ) { 15807 var i = 0, 15808 len = tokens.length, 15809 selector = ""; 15810 for ( ; i < len; i++ ) { 15811 selector += tokens[ i ].value; 15812 } 15813 return selector; 15814} 15815 15816function addCombinator( matcher, combinator, base ) { 15817 var dir = combinator.dir, 15818 skip = combinator.next, 15819 key = skip || dir, 15820 checkNonElements = base && key === "parentNode", 15821 doneName = done++; 15822 15823 return combinator.first ? 15824 15825 // Check against closest ancestor/preceding element 15826 function( elem, context, xml ) { 15827 while ( ( elem = elem[ dir ] ) ) { 15828 if ( elem.nodeType === 1 || checkNonElements ) { 15829 return matcher( elem, context, xml ); 15830 } 15831 } 15832 return false; 15833 } : 15834 15835 // Check against all ancestor/preceding elements 15836 function( elem, context, xml ) { 15837 var oldCache, uniqueCache, outerCache, 15838 newCache = [ dirruns, doneName ]; 15839 15840 // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching 15841 if ( xml ) { 15842 while ( ( elem = elem[ dir ] ) ) { 15843 if ( elem.nodeType === 1 || checkNonElements ) { 15844 if ( matcher( elem, context, xml ) ) { 15845 return true; 15846 } 15847 } 15848 } 15849 } else { 15850 while ( ( elem = elem[ dir ] ) ) { 15851 if ( elem.nodeType === 1 || checkNonElements ) { 15852 outerCache = elem[ expando ] || ( elem[ expando ] = {} ); 15853 15854 // Support: IE <9 only 15855 // Defend against cloned attroperties (jQuery gh-1709) 15856 uniqueCache = outerCache[ elem.uniqueID ] || 15857 ( outerCache[ elem.uniqueID ] = {} ); 15858 15859 if ( skip && skip === elem.nodeName.toLowerCase() ) { 15860 elem = elem[ dir ] || elem; 15861 } else if ( ( oldCache = uniqueCache[ key ] ) && 15862 oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { 15863 15864 // Assign to newCache so results back-propagate to previous elements 15865 return ( newCache[ 2 ] = oldCache[ 2 ] ); 15866 } else { 15867 15868 // Reuse newcache so results back-propagate to previous elements 15869 uniqueCache[ key ] = newCache; 15870 15871 // A match means we're done; a fail means we have to keep checking 15872 if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { 15873 return true; 15874 } 15875 } 15876 } 15877 } 15878 } 15879 return false; 15880 }; 15881} 15882 15883function elementMatcher( matchers ) { 15884 return matchers.length > 1 ? 15885 function( elem, context, xml ) { 15886 var i = matchers.length; 15887 while ( i-- ) { 15888 if ( !matchers[ i ]( elem, context, xml ) ) { 15889 return false; 15890 } 15891 } 15892 return true; 15893 } : 15894 matchers[ 0 ]; 15895} 15896 15897function multipleContexts( selector, contexts, results ) { 15898 var i = 0, 15899 len = contexts.length; 15900 for ( ; i < len; i++ ) { 15901 Sizzle( selector, contexts[ i ], results ); 15902 } 15903 return results; 15904} 15905 15906function condense( unmatched, map, filter, context, xml ) { 15907 var elem, 15908 newUnmatched = [], 15909 i = 0, 15910 len = unmatched.length, 15911 mapped = map != null; 15912 15913 for ( ; i < len; i++ ) { 15914 if ( ( elem = unmatched[ i ] ) ) { 15915 if ( !filter || filter( elem, context, xml ) ) { 15916 newUnmatched.push( elem ); 15917 if ( mapped ) { 15918 map.push( i ); 15919 } 15920 } 15921 } 15922 } 15923 15924 return newUnmatched; 15925} 15926 15927function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { 15928 if ( postFilter && !postFilter[ expando ] ) { 15929 postFilter = setMatcher( postFilter ); 15930 } 15931 if ( postFinder && !postFinder[ expando ] ) { 15932 postFinder = setMatcher( postFinder, postSelector ); 15933 } 15934 return markFunction( function( seed, results, context, xml ) { 15935 var temp, i, elem, 15936 preMap = [], 15937 postMap = [], 15938 preexisting = results.length, 15939 15940 // Get initial elements from seed or context 15941 elems = seed || multipleContexts( 15942 selector || "*", 15943 context.nodeType ? [ context ] : context, 15944 [] 15945 ), 15946 15947 // Prefilter to get matcher input, preserving a map for seed-results synchronization 15948 matcherIn = preFilter && ( seed || !selector ) ? 15949 condense( elems, preMap, preFilter, context, xml ) : 15950 elems, 15951 15952 matcherOut = matcher ? 15953 15954 // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, 15955 postFinder || ( seed ? preFilter : preexisting || postFilter ) ? 15956 15957 // ...intermediate processing is necessary 15958 [] : 15959 15960 // ...otherwise use results directly 15961 results : 15962 matcherIn; 15963 15964 // Find primary matches 15965 if ( matcher ) { 15966 matcher( matcherIn, matcherOut, context, xml ); 15967 } 15968 15969 // Apply postFilter 15970 if ( postFilter ) { 15971 temp = condense( matcherOut, postMap ); 15972 postFilter( temp, [], context, xml ); 15973 15974 // Un-match failing elements by moving them back to matcherIn 15975 i = temp.length; 15976 while ( i-- ) { 15977 if ( ( elem = temp[ i ] ) ) { 15978 matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); 15979 } 15980 } 15981 } 15982 15983 if ( seed ) { 15984 if ( postFinder || preFilter ) { 15985 if ( postFinder ) { 15986 15987 // Get the final matcherOut by condensing this intermediate into postFinder contexts 15988 temp = []; 15989 i = matcherOut.length; 15990 while ( i-- ) { 15991 if ( ( elem = matcherOut[ i ] ) ) { 15992 15993 // Restore matcherIn since elem is not yet a final match 15994 temp.push( ( matcherIn[ i ] = elem ) ); 15995 } 15996 } 15997 postFinder( null, ( matcherOut = [] ), temp, xml ); 15998 } 15999 16000 // Move matched elements from seed to results to keep them synchronized 16001 i = matcherOut.length; 16002 while ( i-- ) { 16003 if ( ( elem = matcherOut[ i ] ) && 16004 ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { 16005 16006 seed[ temp ] = !( results[ temp ] = elem ); 16007 } 16008 } 16009 } 16010 16011 // Add elements to results, through postFinder if defined 16012 } else { 16013 matcherOut = condense( 16014 matcherOut === results ? 16015 matcherOut.splice( preexisting, matcherOut.length ) : 16016 matcherOut 16017 ); 16018 if ( postFinder ) { 16019 postFinder( null, results, matcherOut, xml ); 16020 } else { 16021 push.apply( results, matcherOut ); 16022 } 16023 } 16024 } ); 16025} 16026 16027function matcherFromTokens( tokens ) { 16028 var checkContext, matcher, j, 16029 len = tokens.length, 16030 leadingRelative = Expr.relative[ tokens[ 0 ].type ], 16031 implicitRelative = leadingRelative || Expr.relative[ " " ], 16032 i = leadingRelative ? 1 : 0, 16033 16034 // The foundational matcher ensures that elements are reachable from top-level context(s) 16035 matchContext = addCombinator( function( elem ) { 16036 return elem === checkContext; 16037 }, implicitRelative, true ), 16038 matchAnyContext = addCombinator( function( elem ) { 16039 return indexOf( checkContext, elem ) > -1; 16040 }, implicitRelative, true ), 16041 matchers = [ function( elem, context, xml ) { 16042 var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( 16043 ( checkContext = context ).nodeType ? 16044 matchContext( elem, context, xml ) : 16045 matchAnyContext( elem, context, xml ) ); 16046 16047 // Avoid hanging onto element (issue #299) 16048 checkContext = null; 16049 return ret; 16050 } ]; 16051 16052 for ( ; i < len; i++ ) { 16053 if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { 16054 matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; 16055 } else { 16056 matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); 16057 16058 // Return special upon seeing a positional matcher 16059 if ( matcher[ expando ] ) { 16060 16061 // Find the next relative operator (if any) for proper handling 16062 j = ++i; 16063 for ( ; j < len; j++ ) { 16064 if ( Expr.relative[ tokens[ j ].type ] ) { 16065 break; 16066 } 16067 } 16068 return setMatcher( 16069 i > 1 && elementMatcher( matchers ), 16070 i > 1 && toSelector( 16071 16072 // If the preceding token was a descendant combinator, insert an implicit any-element `*` 16073 tokens 16074 .slice( 0, i - 1 ) 16075 .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) 16076 ).replace( rtrim, "$1" ), 16077 matcher, 16078 i < j && matcherFromTokens( tokens.slice( i, j ) ), 16079 j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), 16080 j < len && toSelector( tokens ) 16081 ); 16082 } 16083 matchers.push( matcher ); 16084 } 16085 } 16086 16087 return elementMatcher( matchers ); 16088} 16089 16090function matcherFromGroupMatchers( elementMatchers, setMatchers ) { 16091 var bySet = setMatchers.length > 0, 16092 byElement = elementMatchers.length > 0, 16093 superMatcher = function( seed, context, xml, results, outermost ) { 16094 var elem, j, matcher, 16095 matchedCount = 0, 16096 i = "0", 16097 unmatched = seed && [], 16098 setMatched = [], 16099 contextBackup = outermostContext, 16100 16101 // We must always have either seed elements or outermost context 16102 elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), 16103 16104 // Use integer dirruns iff this is the outermost matcher 16105 dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), 16106 len = elems.length; 16107 16108 if ( outermost ) { 16109 16110 // Support: IE 11+, Edge 17 - 18+ 16111 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 16112 // two documents; shallow comparisons work. 16113 // eslint-disable-next-line eqeqeq 16114 outermostContext = context == document || context || outermost; 16115 } 16116 16117 // Add elements passing elementMatchers directly to results 16118 // Support: IE<9, Safari 16119 // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id 16120 for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { 16121 if ( byElement && elem ) { 16122 j = 0; 16123 16124 // Support: IE 11+, Edge 17 - 18+ 16125 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 16126 // two documents; shallow comparisons work. 16127 // eslint-disable-next-line eqeqeq 16128 if ( !context && elem.ownerDocument != document ) { 16129 setDocument( elem ); 16130 xml = !documentIsHTML; 16131 } 16132 while ( ( matcher = elementMatchers[ j++ ] ) ) { 16133 if ( matcher( elem, context || document, xml ) ) { 16134 results.push( elem ); 16135 break; 16136 } 16137 } 16138 if ( outermost ) { 16139 dirruns = dirrunsUnique; 16140 } 16141 } 16142 16143 // Track unmatched elements for set filters 16144 if ( bySet ) { 16145 16146 // They will have gone through all possible matchers 16147 if ( ( elem = !matcher && elem ) ) { 16148 matchedCount--; 16149 } 16150 16151 // Lengthen the array for every element, matched or not 16152 if ( seed ) { 16153 unmatched.push( elem ); 16154 } 16155 } 16156 } 16157 16158 // `i` is now the count of elements visited above, and adding it to `matchedCount` 16159 // makes the latter nonnegative. 16160 matchedCount += i; 16161 16162 // Apply set filters to unmatched elements 16163 // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` 16164 // equals `i`), unless we didn't visit _any_ elements in the above loop because we have 16165 // no element matchers and no seed. 16166 // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that 16167 // case, which will result in a "00" `matchedCount` that differs from `i` but is also 16168 // numerically zero. 16169 if ( bySet && i !== matchedCount ) { 16170 j = 0; 16171 while ( ( matcher = setMatchers[ j++ ] ) ) { 16172 matcher( unmatched, setMatched, context, xml ); 16173 } 16174 16175 if ( seed ) { 16176 16177 // Reintegrate element matches to eliminate the need for sorting 16178 if ( matchedCount > 0 ) { 16179 while ( i-- ) { 16180 if ( !( unmatched[ i ] || setMatched[ i ] ) ) { 16181 setMatched[ i ] = pop.call( results ); 16182 } 16183 } 16184 } 16185 16186 // Discard index placeholder values to get only actual matches 16187 setMatched = condense( setMatched ); 16188 } 16189 16190 // Add matches to results 16191 push.apply( results, setMatched ); 16192 16193 // Seedless set matches succeeding multiple successful matchers stipulate sorting 16194 if ( outermost && !seed && setMatched.length > 0 && 16195 ( matchedCount + setMatchers.length ) > 1 ) { 16196 16197 Sizzle.uniqueSort( results ); 16198 } 16199 } 16200 16201 // Override manipulation of globals by nested matchers 16202 if ( outermost ) { 16203 dirruns = dirrunsUnique; 16204 outermostContext = contextBackup; 16205 } 16206 16207 return unmatched; 16208 }; 16209 16210 return bySet ? 16211 markFunction( superMatcher ) : 16212 superMatcher; 16213} 16214 16215compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { 16216 var i, 16217 setMatchers = [], 16218 elementMatchers = [], 16219 cached = compilerCache[ selector + " " ]; 16220 16221 if ( !cached ) { 16222 16223 // Generate a function of recursive functions that can be used to check each element 16224 if ( !match ) { 16225 match = tokenize( selector ); 16226 } 16227 i = match.length; 16228 while ( i-- ) { 16229 cached = matcherFromTokens( match[ i ] ); 16230 if ( cached[ expando ] ) { 16231 setMatchers.push( cached ); 16232 } else { 16233 elementMatchers.push( cached ); 16234 } 16235 } 16236 16237 // Cache the compiled function 16238 cached = compilerCache( 16239 selector, 16240 matcherFromGroupMatchers( elementMatchers, setMatchers ) 16241 ); 16242 16243 // Save selector and tokenization 16244 cached.selector = selector; 16245 } 16246 return cached; 16247}; 16248 16249/** 16250 * A low-level selection function that works with Sizzle's compiled 16251 * selector functions 16252 * @param {String|Function} selector A selector or a pre-compiled 16253 * selector function built with Sizzle.compile 16254 * @param {Element} context 16255 * @param {Array} [results] 16256 * @param {Array} [seed] A set of elements to match against 16257 */ 16258select = Sizzle.select = function( selector, context, results, seed ) { 16259 var i, tokens, token, type, find, 16260 compiled = typeof selector === "function" && selector, 16261 match = !seed && tokenize( ( selector = compiled.selector || selector ) ); 16262 16263 results = results || []; 16264 16265 // Try to minimize operations if there is only one selector in the list and no seed 16266 // (the latter of which guarantees us context) 16267 if ( match.length === 1 ) { 16268 16269 // Reduce context if the leading compound selector is an ID 16270 tokens = match[ 0 ] = match[ 0 ].slice( 0 ); 16271 if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && 16272 context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { 16273 16274 context = ( Expr.find[ "ID" ]( token.matches[ 0 ] 16275 .replace( runescape, funescape ), context ) || [] )[ 0 ]; 16276 if ( !context ) { 16277 return results; 16278 16279 // Precompiled matchers will still verify ancestry, so step up a level 16280 } else if ( compiled ) { 16281 context = context.parentNode; 16282 } 16283 16284 selector = selector.slice( tokens.shift().value.length ); 16285 } 16286 16287 // Fetch a seed set for right-to-left matching 16288 i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; 16289 while ( i-- ) { 16290 token = tokens[ i ]; 16291 16292 // Abort if we hit a combinator 16293 if ( Expr.relative[ ( type = token.type ) ] ) { 16294 break; 16295 } 16296 if ( ( find = Expr.find[ type ] ) ) { 16297 16298 // Search, expanding context for leading sibling combinators 16299 if ( ( seed = find( 16300 token.matches[ 0 ].replace( runescape, funescape ), 16301 rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || 16302 context 16303 ) ) ) { 16304 16305 // If seed is empty or no tokens remain, we can return early 16306 tokens.splice( i, 1 ); 16307 selector = seed.length && toSelector( tokens ); 16308 if ( !selector ) { 16309 push.apply( results, seed ); 16310 return results; 16311 } 16312 16313 break; 16314 } 16315 } 16316 } 16317 } 16318 16319 // Compile and execute a filtering function if one is not provided 16320 // Provide `match` to avoid retokenization if we modified the selector above 16321 ( compiled || compile( selector, match ) )( 16322 seed, 16323 context, 16324 !documentIsHTML, 16325 results, 16326 !context || rsibling.test( selector ) && testContext( context.parentNode ) || context 16327 ); 16328 return results; 16329}; 16330 16331// One-time assignments 16332 16333// Sort stability 16334support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; 16335 16336// Support: Chrome 14-35+ 16337// Always assume duplicates if they aren't passed to the comparison function 16338support.detectDuplicates = !!hasDuplicate; 16339 16340// Initialize against the default document 16341setDocument(); 16342 16343// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) 16344// Detached nodes confoundingly follow *each other* 16345support.sortDetached = assert( function( el ) { 16346 16347 // Should return 1, but returns 4 (following) 16348 return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; 16349} ); 16350 16351// Support: IE<8 16352// Prevent attribute/property "interpolation" 16353// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx 16354if ( !assert( function( el ) { 16355 el.innerHTML = "<a href='#'></a>"; 16356 return el.firstChild.getAttribute( "href" ) === "#"; 16357} ) ) { 16358 addHandle( "type|href|height|width", function( elem, name, isXML ) { 16359 if ( !isXML ) { 16360 return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); 16361 } 16362 } ); 16363} 16364 16365// Support: IE<9 16366// Use defaultValue in place of getAttribute("value") 16367if ( !support.attributes || !assert( function( el ) { 16368 el.innerHTML = "<input/>"; 16369 el.firstChild.setAttribute( "value", "" ); 16370 return el.firstChild.getAttribute( "value" ) === ""; 16371} ) ) { 16372 addHandle( "value", function( elem, _name, isXML ) { 16373 if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { 16374 return elem.defaultValue; 16375 } 16376 } ); 16377} 16378 16379// Support: IE<9 16380// Use getAttributeNode to fetch booleans when getAttribute lies 16381if ( !assert( function( el ) { 16382 return el.getAttribute( "disabled" ) == null; 16383} ) ) { 16384 addHandle( booleans, function( elem, name, isXML ) { 16385 var val; 16386 if ( !isXML ) { 16387 return elem[ name ] === true ? name.toLowerCase() : 16388 ( val = elem.getAttributeNode( name ) ) && val.specified ? 16389 val.value : 16390 null; 16391 } 16392 } ); 16393} 16394 16395return Sizzle; 16396 16397} )( window ); 16398 16399 16400 16401jQuery.find = Sizzle; 16402jQuery.expr = Sizzle.selectors; 16403 16404// Deprecated 16405jQuery.expr[ ":" ] = jQuery.expr.pseudos; 16406jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; 16407jQuery.text = Sizzle.getText; 16408jQuery.isXMLDoc = Sizzle.isXML; 16409jQuery.contains = Sizzle.contains; 16410jQuery.escapeSelector = Sizzle.escape; 16411 16412 16413 16414 16415var dir = function( elem, dir, until ) { 16416 var matched = [], 16417 truncate = until !== undefined; 16418 16419 while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { 16420 if ( elem.nodeType === 1 ) { 16421 if ( truncate && jQuery( elem ).is( until ) ) { 16422 break; 16423 } 16424 matched.push( elem ); 16425 } 16426 } 16427 return matched; 16428}; 16429 16430 16431var siblings = function( n, elem ) { 16432 var matched = []; 16433 16434 for ( ; n; n = n.nextSibling ) { 16435 if ( n.nodeType === 1 && n !== elem ) { 16436 matched.push( n ); 16437 } 16438 } 16439 16440 return matched; 16441}; 16442 16443 16444var rneedsContext = jQuery.expr.match.needsContext; 16445 16446 16447 16448function nodeName( elem, name ) { 16449 16450 return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); 16451 16452} 16453var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); 16454 16455 16456 16457// Implement the identical functionality for filter and not 16458function winnow( elements, qualifier, not ) { 16459 if ( isFunction( qualifier ) ) { 16460 return jQuery.grep( elements, function( elem, i ) { 16461 return !!qualifier.call( elem, i, elem ) !== not; 16462 } ); 16463 } 16464 16465 // Single element 16466 if ( qualifier.nodeType ) { 16467 return jQuery.grep( elements, function( elem ) { 16468 return ( elem === qualifier ) !== not; 16469 } ); 16470 } 16471 16472 // Arraylike of elements (jQuery, arguments, Array) 16473 if ( typeof qualifier !== "string" ) { 16474 return jQuery.grep( elements, function( elem ) { 16475 return ( indexOf.call( qualifier, elem ) > -1 ) !== not; 16476 } ); 16477 } 16478 16479 // Filtered directly for both simple and complex selectors 16480 return jQuery.filter( qualifier, elements, not ); 16481} 16482 16483jQuery.filter = function( expr, elems, not ) { 16484 var elem = elems[ 0 ]; 16485 16486 if ( not ) { 16487 expr = ":not(" + expr + ")"; 16488 } 16489 16490 if ( elems.length === 1 && elem.nodeType === 1 ) { 16491 return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; 16492 } 16493 16494 return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { 16495 return elem.nodeType === 1; 16496 } ) ); 16497}; 16498 16499jQuery.fn.extend( { 16500 find: function( selector ) { 16501 var i, ret, 16502 len = this.length, 16503 self = this; 16504 16505 if ( typeof selector !== "string" ) { 16506 return this.pushStack( jQuery( selector ).filter( function() { 16507 for ( i = 0; i < len; i++ ) { 16508 if ( jQuery.contains( self[ i ], this ) ) { 16509 return true; 16510 } 16511 } 16512 } ) ); 16513 } 16514 16515 ret = this.pushStack( [] ); 16516 16517 for ( i = 0; i < len; i++ ) { 16518 jQuery.find( selector, self[ i ], ret ); 16519 } 16520 16521 return len > 1 ? jQuery.uniqueSort( ret ) : ret; 16522 }, 16523 filter: function( selector ) { 16524 return this.pushStack( winnow( this, selector || [], false ) ); 16525 }, 16526 not: function( selector ) { 16527 return this.pushStack( winnow( this, selector || [], true ) ); 16528 }, 16529 is: function( selector ) { 16530 return !!winnow( 16531 this, 16532 16533 // If this is a positional/relative selector, check membership in the returned set 16534 // so $("p:first").is("p:last") won't return true for a doc with two "p". 16535 typeof selector === "string" && rneedsContext.test( selector ) ? 16536 jQuery( selector ) : 16537 selector || [], 16538 false 16539 ).length; 16540 } 16541} ); 16542 16543 16544// Initialize a jQuery object 16545 16546 16547// A central reference to the root jQuery(document) 16548var rootjQuery, 16549 16550 // A simple way to check for HTML strings 16551 // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) 16552 // Strict HTML recognition (#11290: must start with <) 16553 // Shortcut simple #id case for speed 16554 rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, 16555 16556 init = jQuery.fn.init = function( selector, context, root ) { 16557 var match, elem; 16558 16559 // HANDLE: $(""), $(null), $(undefined), $(false) 16560 if ( !selector ) { 16561 return this; 16562 } 16563 16564 // Method init() accepts an alternate rootjQuery 16565 // so migrate can support jQuery.sub (gh-2101) 16566 root = root || rootjQuery; 16567 16568 // Handle HTML strings 16569 if ( typeof selector === "string" ) { 16570 if ( selector[ 0 ] === "<" && 16571 selector[ selector.length - 1 ] === ">" && 16572 selector.length >= 3 ) { 16573 16574 // Assume that strings that start and end with <> are HTML and skip the regex check 16575 match = [ null, selector, null ]; 16576 16577 } else { 16578 match = rquickExpr.exec( selector ); 16579 } 16580 16581 // Match html or make sure no context is specified for #id 16582 if ( match && ( match[ 1 ] || !context ) ) { 16583 16584 // HANDLE: $(html) -> $(array) 16585 if ( match[ 1 ] ) { 16586 context = context instanceof jQuery ? context[ 0 ] : context; 16587 16588 // Option to run scripts is true for back-compat 16589 // Intentionally let the error be thrown if parseHTML is not present 16590 jQuery.merge( this, jQuery.parseHTML( 16591 match[ 1 ], 16592 context && context.nodeType ? context.ownerDocument || context : document, 16593 true 16594 ) ); 16595 16596 // HANDLE: $(html, props) 16597 if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { 16598 for ( match in context ) { 16599 16600 // Properties of context are called as methods if possible 16601 if ( isFunction( this[ match ] ) ) { 16602 this[ match ]( context[ match ] ); 16603 16604 // ...and otherwise set as attributes 16605 } else { 16606 this.attr( match, context[ match ] ); 16607 } 16608 } 16609 } 16610 16611 return this; 16612 16613 // HANDLE: $(#id) 16614 } else { 16615 elem = document.getElementById( match[ 2 ] ); 16616 16617 if ( elem ) { 16618 16619 // Inject the element directly into the jQuery object 16620 this[ 0 ] = elem; 16621 this.length = 1; 16622 } 16623 return this; 16624 } 16625 16626 // HANDLE: $(expr, $(...)) 16627 } else if ( !context || context.jquery ) { 16628 return ( context || root ).find( selector ); 16629 16630 // HANDLE: $(expr, context) 16631 // (which is just equivalent to: $(context).find(expr) 16632 } else { 16633 return this.constructor( context ).find( selector ); 16634 } 16635 16636 // HANDLE: $(DOMElement) 16637 } else if ( selector.nodeType ) { 16638 this[ 0 ] = selector; 16639 this.length = 1; 16640 return this; 16641 16642 // HANDLE: $(function) 16643 // Shortcut for document ready 16644 } else if ( isFunction( selector ) ) { 16645 return root.ready !== undefined ? 16646 root.ready( selector ) : 16647 16648 // Execute immediately if ready is not present 16649 selector( jQuery ); 16650 } 16651 16652 return jQuery.makeArray( selector, this ); 16653 }; 16654 16655// Give the init function the jQuery prototype for later instantiation 16656init.prototype = jQuery.fn; 16657 16658// Initialize central reference 16659rootjQuery = jQuery( document ); 16660 16661 16662var rparentsprev = /^(?:parents|prev(?:Until|All))/, 16663 16664 // Methods guaranteed to produce a unique set when starting from a unique set 16665 guaranteedUnique = { 16666 children: true, 16667 contents: true, 16668 next: true, 16669 prev: true 16670 }; 16671 16672jQuery.fn.extend( { 16673 has: function( target ) { 16674 var targets = jQuery( target, this ), 16675 l = targets.length; 16676 16677 return this.filter( function() { 16678 var i = 0; 16679 for ( ; i < l; i++ ) { 16680 if ( jQuery.contains( this, targets[ i ] ) ) { 16681 return true; 16682 } 16683 } 16684 } ); 16685 }, 16686 16687 closest: function( selectors, context ) { 16688 var cur, 16689 i = 0, 16690 l = this.length, 16691 matched = [], 16692 targets = typeof selectors !== "string" && jQuery( selectors ); 16693 16694 // Positional selectors never match, since there's no _selection_ context 16695 if ( !rneedsContext.test( selectors ) ) { 16696 for ( ; i < l; i++ ) { 16697 for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { 16698 16699 // Always skip document fragments 16700 if ( cur.nodeType < 11 && ( targets ? 16701 targets.index( cur ) > -1 : 16702 16703 // Don't pass non-elements to Sizzle 16704 cur.nodeType === 1 && 16705 jQuery.find.matchesSelector( cur, selectors ) ) ) { 16706 16707 matched.push( cur ); 16708 break; 16709 } 16710 } 16711 } 16712 } 16713 16714 return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); 16715 }, 16716 16717 // Determine the position of an element within the set 16718 index: function( elem ) { 16719 16720 // No argument, return index in parent 16721 if ( !elem ) { 16722 return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; 16723 } 16724 16725 // Index in selector 16726 if ( typeof elem === "string" ) { 16727 return indexOf.call( jQuery( elem ), this[ 0 ] ); 16728 } 16729 16730 // Locate the position of the desired element 16731 return indexOf.call( this, 16732 16733 // If it receives a jQuery object, the first element is used 16734 elem.jquery ? elem[ 0 ] : elem 16735 ); 16736 }, 16737 16738 add: function( selector, context ) { 16739 return this.pushStack( 16740 jQuery.uniqueSort( 16741 jQuery.merge( this.get(), jQuery( selector, context ) ) 16742 ) 16743 ); 16744 }, 16745 16746 addBack: function( selector ) { 16747 return this.add( selector == null ? 16748 this.prevObject : this.prevObject.filter( selector ) 16749 ); 16750 } 16751} ); 16752 16753function sibling( cur, dir ) { 16754 while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} 16755 return cur; 16756} 16757 16758jQuery.each( { 16759 parent: function( elem ) { 16760 var parent = elem.parentNode; 16761 return parent && parent.nodeType !== 11 ? parent : null; 16762 }, 16763 parents: function( elem ) { 16764 return dir( elem, "parentNode" ); 16765 }, 16766 parentsUntil: function( elem, _i, until ) { 16767 return dir( elem, "parentNode", until ); 16768 }, 16769 next: function( elem ) { 16770 return sibling( elem, "nextSibling" ); 16771 }, 16772 prev: function( elem ) { 16773 return sibling( elem, "previousSibling" ); 16774 }, 16775 nextAll: function( elem ) { 16776 return dir( elem, "nextSibling" ); 16777 }, 16778 prevAll: function( elem ) { 16779 return dir( elem, "previousSibling" ); 16780 }, 16781 nextUntil: function( elem, _i, until ) { 16782 return dir( elem, "nextSibling", until ); 16783 }, 16784 prevUntil: function( elem, _i, until ) { 16785 return dir( elem, "previousSibling", until ); 16786 }, 16787 siblings: function( elem ) { 16788 return siblings( ( elem.parentNode || {} ).firstChild, elem ); 16789 }, 16790 children: function( elem ) { 16791 return siblings( elem.firstChild ); 16792 }, 16793 contents: function( elem ) { 16794 if ( elem.contentDocument != null && 16795 16796 // Support: IE 11+ 16797 // <object> elements with no `data` attribute has an object 16798 // `contentDocument` with a `null` prototype. 16799 getProto( elem.contentDocument ) ) { 16800 16801 return elem.contentDocument; 16802 } 16803 16804 // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only 16805 // Treat the template element as a regular one in browsers that 16806 // don't support it. 16807 if ( nodeName( elem, "template" ) ) { 16808 elem = elem.content || elem; 16809 } 16810 16811 return jQuery.merge( [], elem.childNodes ); 16812 } 16813}, function( name, fn ) { 16814 jQuery.fn[ name ] = function( until, selector ) { 16815 var matched = jQuery.map( this, fn, until ); 16816 16817 if ( name.slice( -5 ) !== "Until" ) { 16818 selector = until; 16819 } 16820 16821 if ( selector && typeof selector === "string" ) { 16822 matched = jQuery.filter( selector, matched ); 16823 } 16824 16825 if ( this.length > 1 ) { 16826 16827 // Remove duplicates 16828 if ( !guaranteedUnique[ name ] ) { 16829 jQuery.uniqueSort( matched ); 16830 } 16831 16832 // Reverse order for parents* and prev-derivatives 16833 if ( rparentsprev.test( name ) ) { 16834 matched.reverse(); 16835 } 16836 } 16837 16838 return this.pushStack( matched ); 16839 }; 16840} ); 16841var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); 16842 16843 16844 16845// Convert String-formatted options into Object-formatted ones 16846function createOptions( options ) { 16847 var object = {}; 16848 jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { 16849 object[ flag ] = true; 16850 } ); 16851 return object; 16852} 16853 16854/* 16855 * Create a callback list using the following parameters: 16856 * 16857 * options: an optional list of space-separated options that will change how 16858 * the callback list behaves or a more traditional option object 16859 * 16860 * By default a callback list will act like an event callback list and can be 16861 * "fired" multiple times. 16862 * 16863 * Possible options: 16864 * 16865 * once: will ensure the callback list can only be fired once (like a Deferred) 16866 * 16867 * memory: will keep track of previous values and will call any callback added 16868 * after the list has been fired right away with the latest "memorized" 16869 * values (like a Deferred) 16870 * 16871 * unique: will ensure a callback can only be added once (no duplicate in the list) 16872 * 16873 * stopOnFalse: interrupt callings when a callback returns false 16874 * 16875 */ 16876jQuery.Callbacks = function( options ) { 16877 16878 // Convert options from String-formatted to Object-formatted if needed 16879 // (we check in cache first) 16880 options = typeof options === "string" ? 16881 createOptions( options ) : 16882 jQuery.extend( {}, options ); 16883 16884 var // Flag to know if list is currently firing 16885 firing, 16886 16887 // Last fire value for non-forgettable lists 16888 memory, 16889 16890 // Flag to know if list was already fired 16891 fired, 16892 16893 // Flag to prevent firing 16894 locked, 16895 16896 // Actual callback list 16897 list = [], 16898 16899 // Queue of execution data for repeatable lists 16900 queue = [], 16901 16902 // Index of currently firing callback (modified by add/remove as needed) 16903 firingIndex = -1, 16904 16905 // Fire callbacks 16906 fire = function() { 16907 16908 // Enforce single-firing 16909 locked = locked || options.once; 16910 16911 // Execute callbacks for all pending executions, 16912 // respecting firingIndex overrides and runtime changes 16913 fired = firing = true; 16914 for ( ; queue.length; firingIndex = -1 ) { 16915 memory = queue.shift(); 16916 while ( ++firingIndex < list.length ) { 16917 16918 // Run callback and check for early termination 16919 if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && 16920 options.stopOnFalse ) { 16921 16922 // Jump to end and forget the data so .add doesn't re-fire 16923 firingIndex = list.length; 16924 memory = false; 16925 } 16926 } 16927 } 16928 16929 // Forget the data if we're done with it 16930 if ( !options.memory ) { 16931 memory = false; 16932 } 16933 16934 firing = false; 16935 16936 // Clean up if we're done firing for good 16937 if ( locked ) { 16938 16939 // Keep an empty list if we have data for future add calls 16940 if ( memory ) { 16941 list = []; 16942 16943 // Otherwise, this object is spent 16944 } else { 16945 list = ""; 16946 } 16947 } 16948 }, 16949 16950 // Actual Callbacks object 16951 self = { 16952 16953 // Add a callback or a collection of callbacks to the list 16954 add: function() { 16955 if ( list ) { 16956 16957 // If we have memory from a past run, we should fire after adding 16958 if ( memory && !firing ) { 16959 firingIndex = list.length - 1; 16960 queue.push( memory ); 16961 } 16962 16963 ( function add( args ) { 16964 jQuery.each( args, function( _, arg ) { 16965 if ( isFunction( arg ) ) { 16966 if ( !options.unique || !self.has( arg ) ) { 16967 list.push( arg ); 16968 } 16969 } else if ( arg && arg.length && toType( arg ) !== "string" ) { 16970 16971 // Inspect recursively 16972 add( arg ); 16973 } 16974 } ); 16975 } )( arguments ); 16976 16977 if ( memory && !firing ) { 16978 fire(); 16979 } 16980 } 16981 return this; 16982 }, 16983 16984 // Remove a callback from the list 16985 remove: function() { 16986 jQuery.each( arguments, function( _, arg ) { 16987 var index; 16988 while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { 16989 list.splice( index, 1 ); 16990 16991 // Handle firing indexes 16992 if ( index <= firingIndex ) { 16993 firingIndex--; 16994 } 16995 } 16996 } ); 16997 return this; 16998 }, 16999 17000 // Check if a given callback is in the list. 17001 // If no argument is given, return whether or not list has callbacks attached. 17002 has: function( fn ) { 17003 return fn ? 17004 jQuery.inArray( fn, list ) > -1 : 17005 list.length > 0; 17006 }, 17007 17008 // Remove all callbacks from the list 17009 empty: function() { 17010 if ( list ) { 17011 list = []; 17012 } 17013 return this; 17014 }, 17015 17016 // Disable .fire and .add 17017 // Abort any current/pending executions 17018 // Clear all callbacks and values 17019 disable: function() { 17020 locked = queue = []; 17021 list = memory = ""; 17022 return this; 17023 }, 17024 disabled: function() { 17025 return !list; 17026 }, 17027 17028 // Disable .fire 17029 // Also disable .add unless we have memory (since it would have no effect) 17030 // Abort any pending executions 17031 lock: function() { 17032 locked = queue = []; 17033 if ( !memory && !firing ) { 17034 list = memory = ""; 17035 } 17036 return this; 17037 }, 17038 locked: function() { 17039 return !!locked; 17040 }, 17041 17042 // Call all callbacks with the given context and arguments 17043 fireWith: function( context, args ) { 17044 if ( !locked ) { 17045 args = args || []; 17046 args = [ context, args.slice ? args.slice() : args ]; 17047 queue.push( args ); 17048 if ( !firing ) { 17049 fire(); 17050 } 17051 } 17052 return this; 17053 }, 17054 17055 // Call all the callbacks with the given arguments 17056 fire: function() { 17057 self.fireWith( this, arguments ); 17058 return this; 17059 }, 17060 17061 // To know if the callbacks have already been called at least once 17062 fired: function() { 17063 return !!fired; 17064 } 17065 }; 17066 17067 return self; 17068}; 17069 17070 17071function Identity( v ) { 17072 return v; 17073} 17074function Thrower( ex ) { 17075 throw ex; 17076} 17077 17078function adoptValue( value, resolve, reject, noValue ) { 17079 var method; 17080 17081 try { 17082 17083 // Check for promise aspect first to privilege synchronous behavior 17084 if ( value && isFunction( ( method = value.promise ) ) ) { 17085 method.call( value ).done( resolve ).fail( reject ); 17086 17087 // Other thenables 17088 } else if ( value && isFunction( ( method = value.then ) ) ) { 17089 method.call( value, resolve, reject ); 17090 17091 // Other non-thenables 17092 } else { 17093 17094 // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: 17095 // * false: [ value ].slice( 0 ) => resolve( value ) 17096 // * true: [ value ].slice( 1 ) => resolve() 17097 resolve.apply( undefined, [ value ].slice( noValue ) ); 17098 } 17099 17100 // For Promises/A+, convert exceptions into rejections 17101 // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in 17102 // Deferred#then to conditionally suppress rejection. 17103 } catch ( value ) { 17104 17105 // Support: Android 4.0 only 17106 // Strict mode functions invoked without .call/.apply get global-object context 17107 reject.apply( undefined, [ value ] ); 17108 } 17109} 17110 17111jQuery.extend( { 17112 17113 Deferred: function( func ) { 17114 var tuples = [ 17115 17116 // action, add listener, callbacks, 17117 // ... .then handlers, argument index, [final state] 17118 [ "notify", "progress", jQuery.Callbacks( "memory" ), 17119 jQuery.Callbacks( "memory" ), 2 ], 17120 [ "resolve", "done", jQuery.Callbacks( "once memory" ), 17121 jQuery.Callbacks( "once memory" ), 0, "resolved" ], 17122 [ "reject", "fail", jQuery.Callbacks( "once memory" ), 17123 jQuery.Callbacks( "once memory" ), 1, "rejected" ] 17124 ], 17125 state = "pending", 17126 promise = { 17127 state: function() { 17128 return state; 17129 }, 17130 always: function() { 17131 deferred.done( arguments ).fail( arguments ); 17132 return this; 17133 }, 17134 "catch": function( fn ) { 17135 return promise.then( null, fn ); 17136 }, 17137 17138 // Keep pipe for back-compat 17139 pipe: function( /* fnDone, fnFail, fnProgress */ ) { 17140 var fns = arguments; 17141 17142 return jQuery.Deferred( function( newDefer ) { 17143 jQuery.each( tuples, function( _i, tuple ) { 17144 17145 // Map tuples (progress, done, fail) to arguments (done, fail, progress) 17146 var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; 17147 17148 // deferred.progress(function() { bind to newDefer or newDefer.notify }) 17149 // deferred.done(function() { bind to newDefer or newDefer.resolve }) 17150 // deferred.fail(function() { bind to newDefer or newDefer.reject }) 17151 deferred[ tuple[ 1 ] ]( function() { 17152 var returned = fn && fn.apply( this, arguments ); 17153 if ( returned && isFunction( returned.promise ) ) { 17154 returned.promise() 17155 .progress( newDefer.notify ) 17156 .done( newDefer.resolve ) 17157 .fail( newDefer.reject ); 17158 } else { 17159 newDefer[ tuple[ 0 ] + "With" ]( 17160 this, 17161 fn ? [ returned ] : arguments 17162 ); 17163 } 17164 } ); 17165 } ); 17166 fns = null; 17167 } ).promise(); 17168 }, 17169 then: function( onFulfilled, onRejected, onProgress ) { 17170 var maxDepth = 0; 17171 function resolve( depth, deferred, handler, special ) { 17172 return function() { 17173 var that = this, 17174 args = arguments, 17175 mightThrow = function() { 17176 var returned, then; 17177 17178 // Support: Promises/A+ section 2.3.3.3.3 17179 // https://promisesaplus.com/#point-59 17180 // Ignore double-resolution attempts 17181 if ( depth < maxDepth ) { 17182 return; 17183 } 17184 17185 returned = handler.apply( that, args ); 17186 17187 // Support: Promises/A+ section 2.3.1 17188 // https://promisesaplus.com/#point-48 17189 if ( returned === deferred.promise() ) { 17190 throw new TypeError( "Thenable self-resolution" ); 17191 } 17192 17193 // Support: Promises/A+ sections 2.3.3.1, 3.5 17194 // https://promisesaplus.com/#point-54 17195 // https://promisesaplus.com/#point-75 17196 // Retrieve `then` only once 17197 then = returned && 17198 17199 // Support: Promises/A+ section 2.3.4 17200 // https://promisesaplus.com/#point-64 17201 // Only check objects and functions for thenability 17202 ( typeof returned === "object" || 17203 typeof returned === "function" ) && 17204 returned.then; 17205 17206 // Handle a returned thenable 17207 if ( isFunction( then ) ) { 17208 17209 // Special processors (notify) just wait for resolution 17210 if ( special ) { 17211 then.call( 17212 returned, 17213 resolve( maxDepth, deferred, Identity, special ), 17214 resolve( maxDepth, deferred, Thrower, special ) 17215 ); 17216 17217 // Normal processors (resolve) also hook into progress 17218 } else { 17219 17220 // ...and disregard older resolution values 17221 maxDepth++; 17222 17223 then.call( 17224 returned, 17225 resolve( maxDepth, deferred, Identity, special ), 17226 resolve( maxDepth, deferred, Thrower, special ), 17227 resolve( maxDepth, deferred, Identity, 17228 deferred.notifyWith ) 17229 ); 17230 } 17231 17232 // Handle all other returned values 17233 } else { 17234 17235 // Only substitute handlers pass on context 17236 // and multiple values (non-spec behavior) 17237 if ( handler !== Identity ) { 17238 that = undefined; 17239 args = [ returned ]; 17240 } 17241 17242 // Process the value(s) 17243 // Default process is resolve 17244 ( special || deferred.resolveWith )( that, args ); 17245 } 17246 }, 17247 17248 // Only normal processors (resolve) catch and reject exceptions 17249 process = special ? 17250 mightThrow : 17251 function() { 17252 try { 17253 mightThrow(); 17254 } catch ( e ) { 17255 17256 if ( jQuery.Deferred.exceptionHook ) { 17257 jQuery.Deferred.exceptionHook( e, 17258 process.stackTrace ); 17259 } 17260 17261 // Support: Promises/A+ section 2.3.3.3.4.1 17262 // https://promisesaplus.com/#point-61 17263 // Ignore post-resolution exceptions 17264 if ( depth + 1 >= maxDepth ) { 17265 17266 // Only substitute handlers pass on context 17267 // and multiple values (non-spec behavior) 17268 if ( handler !== Thrower ) { 17269 that = undefined; 17270 args = [ e ]; 17271 } 17272 17273 deferred.rejectWith( that, args ); 17274 } 17275 } 17276 }; 17277 17278 // Support: Promises/A+ section 2.3.3.3.1 17279 // https://promisesaplus.com/#point-57 17280 // Re-resolve promises immediately to dodge false rejection from 17281 // subsequent errors 17282 if ( depth ) { 17283 process(); 17284 } else { 17285 17286 // Call an optional hook to record the stack, in case of exception 17287 // since it's otherwise lost when execution goes async 17288 if ( jQuery.Deferred.getStackHook ) { 17289 process.stackTrace = jQuery.Deferred.getStackHook(); 17290 } 17291 window.setTimeout( process ); 17292 } 17293 }; 17294 } 17295 17296 return jQuery.Deferred( function( newDefer ) { 17297 17298 // progress_handlers.add( ... ) 17299 tuples[ 0 ][ 3 ].add( 17300 resolve( 17301 0, 17302 newDefer, 17303 isFunction( onProgress ) ? 17304 onProgress : 17305 Identity, 17306 newDefer.notifyWith 17307 ) 17308 ); 17309 17310 // fulfilled_handlers.add( ... ) 17311 tuples[ 1 ][ 3 ].add( 17312 resolve( 17313 0, 17314 newDefer, 17315 isFunction( onFulfilled ) ? 17316 onFulfilled : 17317 Identity 17318 ) 17319 ); 17320 17321 // rejected_handlers.add( ... ) 17322 tuples[ 2 ][ 3 ].add( 17323 resolve( 17324 0, 17325 newDefer, 17326 isFunction( onRejected ) ? 17327 onRejected : 17328 Thrower 17329 ) 17330 ); 17331 } ).promise(); 17332 }, 17333 17334 // Get a promise for this deferred 17335 // If obj is provided, the promise aspect is added to the object 17336 promise: function( obj ) { 17337 return obj != null ? jQuery.extend( obj, promise ) : promise; 17338 } 17339 }, 17340 deferred = {}; 17341 17342 // Add list-specific methods 17343 jQuery.each( tuples, function( i, tuple ) { 17344 var list = tuple[ 2 ], 17345 stateString = tuple[ 5 ]; 17346 17347 // promise.progress = list.add 17348 // promise.done = list.add 17349 // promise.fail = list.add 17350 promise[ tuple[ 1 ] ] = list.add; 17351 17352 // Handle state 17353 if ( stateString ) { 17354 list.add( 17355 function() { 17356 17357 // state = "resolved" (i.e., fulfilled) 17358 // state = "rejected" 17359 state = stateString; 17360 }, 17361 17362 // rejected_callbacks.disable 17363 // fulfilled_callbacks.disable 17364 tuples[ 3 - i ][ 2 ].disable, 17365 17366 // rejected_handlers.disable 17367 // fulfilled_handlers.disable 17368 tuples[ 3 - i ][ 3 ].disable, 17369 17370 // progress_callbacks.lock 17371 tuples[ 0 ][ 2 ].lock, 17372 17373 // progress_handlers.lock 17374 tuples[ 0 ][ 3 ].lock 17375 ); 17376 } 17377 17378 // progress_handlers.fire 17379 // fulfilled_handlers.fire 17380 // rejected_handlers.fire 17381 list.add( tuple[ 3 ].fire ); 17382 17383 // deferred.notify = function() { deferred.notifyWith(...) } 17384 // deferred.resolve = function() { deferred.resolveWith(...) } 17385 // deferred.reject = function() { deferred.rejectWith(...) } 17386 deferred[ tuple[ 0 ] ] = function() { 17387 deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); 17388 return this; 17389 }; 17390 17391 // deferred.notifyWith = list.fireWith 17392 // deferred.resolveWith = list.fireWith 17393 // deferred.rejectWith = list.fireWith 17394 deferred[ tuple[ 0 ] + "With" ] = list.fireWith; 17395 } ); 17396 17397 // Make the deferred a promise 17398 promise.promise( deferred ); 17399 17400 // Call given func if any 17401 if ( func ) { 17402 func.call( deferred, deferred ); 17403 } 17404 17405 // All done! 17406 return deferred; 17407 }, 17408 17409 // Deferred helper 17410 when: function( singleValue ) { 17411 var 17412 17413 // count of uncompleted subordinates 17414 remaining = arguments.length, 17415 17416 // count of unprocessed arguments 17417 i = remaining, 17418 17419 // subordinate fulfillment data 17420 resolveContexts = Array( i ), 17421 resolveValues = slice.call( arguments ), 17422 17423 // the primary Deferred 17424 primary = jQuery.Deferred(), 17425 17426 // subordinate callback factory 17427 updateFunc = function( i ) { 17428 return function( value ) { 17429 resolveContexts[ i ] = this; 17430 resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; 17431 if ( !( --remaining ) ) { 17432 primary.resolveWith( resolveContexts, resolveValues ); 17433 } 17434 }; 17435 }; 17436 17437 // Single- and empty arguments are adopted like Promise.resolve 17438 if ( remaining <= 1 ) { 17439 adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, 17440 !remaining ); 17441 17442 // Use .then() to unwrap secondary thenables (cf. gh-3000) 17443 if ( primary.state() === "pending" || 17444 isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { 17445 17446 return primary.then(); 17447 } 17448 } 17449 17450 // Multiple arguments are aggregated like Promise.all array elements 17451 while ( i-- ) { 17452 adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); 17453 } 17454 17455 return primary.promise(); 17456 } 17457} ); 17458 17459 17460// These usually indicate a programmer mistake during development, 17461// warn about them ASAP rather than swallowing them by default. 17462var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 17463 17464jQuery.Deferred.exceptionHook = function( error, stack ) { 17465 17466 // Support: IE 8 - 9 only 17467 // Console exists when dev tools are open, which can happen at any time 17468 if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { 17469 window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); 17470 } 17471}; 17472 17473 17474 17475 17476jQuery.readyException = function( error ) { 17477 window.setTimeout( function() { 17478 throw error; 17479 } ); 17480}; 17481 17482 17483 17484 17485// The deferred used on DOM ready 17486var readyList = jQuery.Deferred(); 17487 17488jQuery.fn.ready = function( fn ) { 17489 17490 readyList 17491 .then( fn ) 17492 17493 // Wrap jQuery.readyException in a function so that the lookup 17494 // happens at the time of error handling instead of callback 17495 // registration. 17496 .catch( function( error ) { 17497 jQuery.readyException( error ); 17498 } ); 17499 17500 return this; 17501}; 17502 17503jQuery.extend( { 17504 17505 // Is the DOM ready to be used? Set to true once it occurs. 17506 isReady: false, 17507 17508 // A counter to track how many items to wait for before 17509 // the ready event fires. See #6781 17510 readyWait: 1, 17511 17512 // Handle when the DOM is ready 17513 ready: function( wait ) { 17514 17515 // Abort if there are pending holds or we're already ready 17516 if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { 17517 return; 17518 } 17519 17520 // Remember that the DOM is ready 17521 jQuery.isReady = true; 17522 17523 // If a normal DOM Ready event fired, decrement, and wait if need be 17524 if ( wait !== true && --jQuery.readyWait > 0 ) { 17525 return; 17526 } 17527 17528 // If there are functions bound, to execute 17529 readyList.resolveWith( document, [ jQuery ] ); 17530 } 17531} ); 17532 17533jQuery.ready.then = readyList.then; 17534 17535// The ready event handler and self cleanup method 17536function completed() { 17537 document.removeEventListener( "DOMContentLoaded", completed ); 17538 window.removeEventListener( "load", completed ); 17539 jQuery.ready(); 17540} 17541 17542// Catch cases where $(document).ready() is called 17543// after the browser event has already occurred. 17544// Support: IE <=9 - 10 only 17545// Older IE sometimes signals "interactive" too soon 17546if ( document.readyState === "complete" || 17547 ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { 17548 17549 // Handle it asynchronously to allow scripts the opportunity to delay ready 17550 window.setTimeout( jQuery.ready ); 17551 17552} else { 17553 17554 // Use the handy event callback 17555 document.addEventListener( "DOMContentLoaded", completed ); 17556 17557 // A fallback to window.onload, that will always work 17558 window.addEventListener( "load", completed ); 17559} 17560 17561 17562 17563 17564// Multifunctional method to get and set values of a collection 17565// The value/s can optionally be executed if it's a function 17566var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { 17567 var i = 0, 17568 len = elems.length, 17569 bulk = key == null; 17570 17571 // Sets many values 17572 if ( toType( key ) === "object" ) { 17573 chainable = true; 17574 for ( i in key ) { 17575 access( elems, fn, i, key[ i ], true, emptyGet, raw ); 17576 } 17577 17578 // Sets one value 17579 } else if ( value !== undefined ) { 17580 chainable = true; 17581 17582 if ( !isFunction( value ) ) { 17583 raw = true; 17584 } 17585 17586 if ( bulk ) { 17587 17588 // Bulk operations run against the entire set 17589 if ( raw ) { 17590 fn.call( elems, value ); 17591 fn = null; 17592 17593 // ...except when executing function values 17594 } else { 17595 bulk = fn; 17596 fn = function( elem, _key, value ) { 17597 return bulk.call( jQuery( elem ), value ); 17598 }; 17599 } 17600 } 17601 17602 if ( fn ) { 17603 for ( ; i < len; i++ ) { 17604 fn( 17605 elems[ i ], key, raw ? 17606 value : 17607 value.call( elems[ i ], i, fn( elems[ i ], key ) ) 17608 ); 17609 } 17610 } 17611 } 17612 17613 if ( chainable ) { 17614 return elems; 17615 } 17616 17617 // Gets 17618 if ( bulk ) { 17619 return fn.call( elems ); 17620 } 17621 17622 return len ? fn( elems[ 0 ], key ) : emptyGet; 17623}; 17624 17625 17626// Matches dashed string for camelizing 17627var rmsPrefix = /^-ms-/, 17628 rdashAlpha = /-([a-z])/g; 17629 17630// Used by camelCase as callback to replace() 17631function fcamelCase( _all, letter ) { 17632 return letter.toUpperCase(); 17633} 17634 17635// Convert dashed to camelCase; used by the css and data modules 17636// Support: IE <=9 - 11, Edge 12 - 15 17637// Microsoft forgot to hump their vendor prefix (#9572) 17638function camelCase( string ) { 17639 return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); 17640} 17641var acceptData = function( owner ) { 17642 17643 // Accepts only: 17644 // - Node 17645 // - Node.ELEMENT_NODE 17646 // - Node.DOCUMENT_NODE 17647 // - Object 17648 // - Any 17649 return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 17650}; 17651 17652 17653 17654 17655function Data() { 17656 this.expando = jQuery.expando + Data.uid++; 17657} 17658 17659Data.uid = 1; 17660 17661Data.prototype = { 17662 17663 cache: function( owner ) { 17664 17665 // Check if the owner object already has a cache 17666 var value = owner[ this.expando ]; 17667 17668 // If not, create one 17669 if ( !value ) { 17670 value = {}; 17671 17672 // We can accept data for non-element nodes in modern browsers, 17673 // but we should not, see #8335. 17674 // Always return an empty object. 17675 if ( acceptData( owner ) ) { 17676 17677 // If it is a node unlikely to be stringify-ed or looped over 17678 // use plain assignment 17679 if ( owner.nodeType ) { 17680 owner[ this.expando ] = value; 17681 17682 // Otherwise secure it in a non-enumerable property 17683 // configurable must be true to allow the property to be 17684 // deleted when data is removed 17685 } else { 17686 Object.defineProperty( owner, this.expando, { 17687 value: value, 17688 configurable: true 17689 } ); 17690 } 17691 } 17692 } 17693 17694 return value; 17695 }, 17696 set: function( owner, data, value ) { 17697 var prop, 17698 cache = this.cache( owner ); 17699 17700 // Handle: [ owner, key, value ] args 17701 // Always use camelCase key (gh-2257) 17702 if ( typeof data === "string" ) { 17703 cache[ camelCase( data ) ] = value; 17704 17705 // Handle: [ owner, { properties } ] args 17706 } else { 17707 17708 // Copy the properties one-by-one to the cache object 17709 for ( prop in data ) { 17710 cache[ camelCase( prop ) ] = data[ prop ]; 17711 } 17712 } 17713 return cache; 17714 }, 17715 get: function( owner, key ) { 17716 return key === undefined ? 17717 this.cache( owner ) : 17718 17719 // Always use camelCase key (gh-2257) 17720 owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; 17721 }, 17722 access: function( owner, key, value ) { 17723 17724 // In cases where either: 17725 // 17726 // 1. No key was specified 17727 // 2. A string key was specified, but no value provided 17728 // 17729 // Take the "read" path and allow the get method to determine 17730 // which value to return, respectively either: 17731 // 17732 // 1. The entire cache object 17733 // 2. The data stored at the key 17734 // 17735 if ( key === undefined || 17736 ( ( key && typeof key === "string" ) && value === undefined ) ) { 17737 17738 return this.get( owner, key ); 17739 } 17740 17741 // When the key is not a string, or both a key and value 17742 // are specified, set or extend (existing objects) with either: 17743 // 17744 // 1. An object of properties 17745 // 2. A key and value 17746 // 17747 this.set( owner, key, value ); 17748 17749 // Since the "set" path can have two possible entry points 17750 // return the expected data based on which path was taken[*] 17751 return value !== undefined ? value : key; 17752 }, 17753 remove: function( owner, key ) { 17754 var i, 17755 cache = owner[ this.expando ]; 17756 17757 if ( cache === undefined ) { 17758 return; 17759 } 17760 17761 if ( key !== undefined ) { 17762 17763 // Support array or space separated string of keys 17764 if ( Array.isArray( key ) ) { 17765 17766 // If key is an array of keys... 17767 // We always set camelCase keys, so remove that. 17768 key = key.map( camelCase ); 17769 } else { 17770 key = camelCase( key ); 17771 17772 // If a key with the spaces exists, use it. 17773 // Otherwise, create an array by matching non-whitespace 17774 key = key in cache ? 17775 [ key ] : 17776 ( key.match( rnothtmlwhite ) || [] ); 17777 } 17778 17779 i = key.length; 17780 17781 while ( i-- ) { 17782 delete cache[ key[ i ] ]; 17783 } 17784 } 17785 17786 // Remove the expando if there's no more data 17787 if ( key === undefined || jQuery.isEmptyObject( cache ) ) { 17788 17789 // Support: Chrome <=35 - 45 17790 // Webkit & Blink performance suffers when deleting properties 17791 // from DOM nodes, so set to undefined instead 17792 // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) 17793 if ( owner.nodeType ) { 17794 owner[ this.expando ] = undefined; 17795 } else { 17796 delete owner[ this.expando ]; 17797 } 17798 } 17799 }, 17800 hasData: function( owner ) { 17801 var cache = owner[ this.expando ]; 17802 return cache !== undefined && !jQuery.isEmptyObject( cache ); 17803 } 17804}; 17805var dataPriv = new Data(); 17806 17807var dataUser = new Data(); 17808 17809 17810 17811// Implementation Summary 17812// 17813// 1. Enforce API surface and semantic compatibility with 1.9.x branch 17814// 2. Improve the module's maintainability by reducing the storage 17815// paths to a single mechanism. 17816// 3. Use the same single mechanism to support "private" and "user" data. 17817// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) 17818// 5. Avoid exposing implementation details on user objects (eg. expando properties) 17819// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 17820 17821var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, 17822 rmultiDash = /[A-Z]/g; 17823 17824function getData( data ) { 17825 if ( data === "true" ) { 17826 return true; 17827 } 17828 17829 if ( data === "false" ) { 17830 return false; 17831 } 17832 17833 if ( data === "null" ) { 17834 return null; 17835 } 17836 17837 // Only convert to a number if it doesn't change the string 17838 if ( data === +data + "" ) { 17839 return +data; 17840 } 17841 17842 if ( rbrace.test( data ) ) { 17843 return JSON.parse( data ); 17844 } 17845 17846 return data; 17847} 17848 17849function dataAttr( elem, key, data ) { 17850 var name; 17851 17852 // If nothing was found internally, try to fetch any 17853 // data from the HTML5 data-* attribute 17854 if ( data === undefined && elem.nodeType === 1 ) { 17855 name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); 17856 data = elem.getAttribute( name ); 17857 17858 if ( typeof data === "string" ) { 17859 try { 17860 data = getData( data ); 17861 } catch ( e ) {} 17862 17863 // Make sure we set the data so it isn't changed later 17864 dataUser.set( elem, key, data ); 17865 } else { 17866 data = undefined; 17867 } 17868 } 17869 return data; 17870} 17871 17872jQuery.extend( { 17873 hasData: function( elem ) { 17874 return dataUser.hasData( elem ) || dataPriv.hasData( elem ); 17875 }, 17876 17877 data: function( elem, name, data ) { 17878 return dataUser.access( elem, name, data ); 17879 }, 17880 17881 removeData: function( elem, name ) { 17882 dataUser.remove( elem, name ); 17883 }, 17884 17885 // TODO: Now that all calls to _data and _removeData have been replaced 17886 // with direct calls to dataPriv methods, these can be deprecated. 17887 _data: function( elem, name, data ) { 17888 return dataPriv.access( elem, name, data ); 17889 }, 17890 17891 _removeData: function( elem, name ) { 17892 dataPriv.remove( elem, name ); 17893 } 17894} ); 17895 17896jQuery.fn.extend( { 17897 data: function( key, value ) { 17898 var i, name, data, 17899 elem = this[ 0 ], 17900 attrs = elem && elem.attributes; 17901 17902 // Gets all values 17903 if ( key === undefined ) { 17904 if ( this.length ) { 17905 data = dataUser.get( elem ); 17906 17907 if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { 17908 i = attrs.length; 17909 while ( i-- ) { 17910 17911 // Support: IE 11 only 17912 // The attrs elements can be null (#14894) 17913 if ( attrs[ i ] ) { 17914 name = attrs[ i ].name; 17915 if ( name.indexOf( "data-" ) === 0 ) { 17916 name = camelCase( name.slice( 5 ) ); 17917 dataAttr( elem, name, data[ name ] ); 17918 } 17919 } 17920 } 17921 dataPriv.set( elem, "hasDataAttrs", true ); 17922 } 17923 } 17924 17925 return data; 17926 } 17927 17928 // Sets multiple values 17929 if ( typeof key === "object" ) { 17930 return this.each( function() { 17931 dataUser.set( this, key ); 17932 } ); 17933 } 17934 17935 return access( this, function( value ) { 17936 var data; 17937 17938 // The calling jQuery object (element matches) is not empty 17939 // (and therefore has an element appears at this[ 0 ]) and the 17940 // `value` parameter was not undefined. An empty jQuery object 17941 // will result in `undefined` for elem = this[ 0 ] which will 17942 // throw an exception if an attempt to read a data cache is made. 17943 if ( elem && value === undefined ) { 17944 17945 // Attempt to get data from the cache 17946 // The key will always be camelCased in Data 17947 data = dataUser.get( elem, key ); 17948 if ( data !== undefined ) { 17949 return data; 17950 } 17951 17952 // Attempt to "discover" the data in 17953 // HTML5 custom data-* attrs 17954 data = dataAttr( elem, key ); 17955 if ( data !== undefined ) { 17956 return data; 17957 } 17958 17959 // We tried really hard, but the data doesn't exist. 17960 return; 17961 } 17962 17963 // Set the data... 17964 this.each( function() { 17965 17966 // We always store the camelCased key 17967 dataUser.set( this, key, value ); 17968 } ); 17969 }, null, value, arguments.length > 1, null, true ); 17970 }, 17971 17972 removeData: function( key ) { 17973 return this.each( function() { 17974 dataUser.remove( this, key ); 17975 } ); 17976 } 17977} ); 17978 17979 17980jQuery.extend( { 17981 queue: function( elem, type, data ) { 17982 var queue; 17983 17984 if ( elem ) { 17985 type = ( type || "fx" ) + "queue"; 17986 queue = dataPriv.get( elem, type ); 17987 17988 // Speed up dequeue by getting out quickly if this is just a lookup 17989 if ( data ) { 17990 if ( !queue || Array.isArray( data ) ) { 17991 queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); 17992 } else { 17993 queue.push( data ); 17994 } 17995 } 17996 return queue || []; 17997 } 17998 }, 17999 18000 dequeue: function( elem, type ) { 18001 type = type || "fx"; 18002 18003 var queue = jQuery.queue( elem, type ), 18004 startLength = queue.length, 18005 fn = queue.shift(), 18006 hooks = jQuery._queueHooks( elem, type ), 18007 next = function() { 18008 jQuery.dequeue( elem, type ); 18009 }; 18010 18011 // If the fx queue is dequeued, always remove the progress sentinel 18012 if ( fn === "inprogress" ) { 18013 fn = queue.shift(); 18014 startLength--; 18015 } 18016 18017 if ( fn ) { 18018 18019 // Add a progress sentinel to prevent the fx queue from being 18020 // automatically dequeued 18021 if ( type === "fx" ) { 18022 queue.unshift( "inprogress" ); 18023 } 18024 18025 // Clear up the last queue stop function 18026 delete hooks.stop; 18027 fn.call( elem, next, hooks ); 18028 } 18029 18030 if ( !startLength && hooks ) { 18031 hooks.empty.fire(); 18032 } 18033 }, 18034 18035 // Not public - generate a queueHooks object, or return the current one 18036 _queueHooks: function( elem, type ) { 18037 var key = type + "queueHooks"; 18038 return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { 18039 empty: jQuery.Callbacks( "once memory" ).add( function() { 18040 dataPriv.remove( elem, [ type + "queue", key ] ); 18041 } ) 18042 } ); 18043 } 18044} ); 18045 18046jQuery.fn.extend( { 18047 queue: function( type, data ) { 18048 var setter = 2; 18049 18050 if ( typeof type !== "string" ) { 18051 data = type; 18052 type = "fx"; 18053 setter--; 18054 } 18055 18056 if ( arguments.length < setter ) { 18057 return jQuery.queue( this[ 0 ], type ); 18058 } 18059 18060 return data === undefined ? 18061 this : 18062 this.each( function() { 18063 var queue = jQuery.queue( this, type, data ); 18064 18065 // Ensure a hooks for this queue 18066 jQuery._queueHooks( this, type ); 18067 18068 if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { 18069 jQuery.dequeue( this, type ); 18070 } 18071 } ); 18072 }, 18073 dequeue: function( type ) { 18074 return this.each( function() { 18075 jQuery.dequeue( this, type ); 18076 } ); 18077 }, 18078 clearQueue: function( type ) { 18079 return this.queue( type || "fx", [] ); 18080 }, 18081 18082 // Get a promise resolved when queues of a certain type 18083 // are emptied (fx is the type by default) 18084 promise: function( type, obj ) { 18085 var tmp, 18086 count = 1, 18087 defer = jQuery.Deferred(), 18088 elements = this, 18089 i = this.length, 18090 resolve = function() { 18091 if ( !( --count ) ) { 18092 defer.resolveWith( elements, [ elements ] ); 18093 } 18094 }; 18095 18096 if ( typeof type !== "string" ) { 18097 obj = type; 18098 type = undefined; 18099 } 18100 type = type || "fx"; 18101 18102 while ( i-- ) { 18103 tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); 18104 if ( tmp && tmp.empty ) { 18105 count++; 18106 tmp.empty.add( resolve ); 18107 } 18108 } 18109 resolve(); 18110 return defer.promise( obj ); 18111 } 18112} ); 18113var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; 18114 18115var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); 18116 18117 18118var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; 18119 18120var documentElement = document.documentElement; 18121 18122 18123 18124 var isAttached = function( elem ) { 18125 return jQuery.contains( elem.ownerDocument, elem ); 18126 }, 18127 composed = { composed: true }; 18128 18129 // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only 18130 // Check attachment across shadow DOM boundaries when possible (gh-3504) 18131 // Support: iOS 10.0-10.2 only 18132 // Early iOS 10 versions support `attachShadow` but not `getRootNode`, 18133 // leading to errors. We need to check for `getRootNode`. 18134 if ( documentElement.getRootNode ) { 18135 isAttached = function( elem ) { 18136 return jQuery.contains( elem.ownerDocument, elem ) || 18137 elem.getRootNode( composed ) === elem.ownerDocument; 18138 }; 18139 } 18140var isHiddenWithinTree = function( elem, el ) { 18141 18142 // isHiddenWithinTree might be called from jQuery#filter function; 18143 // in that case, element will be second argument 18144 elem = el || elem; 18145 18146 // Inline style trumps all 18147 return elem.style.display === "none" || 18148 elem.style.display === "" && 18149 18150 // Otherwise, check computed style 18151 // Support: Firefox <=43 - 45 18152 // Disconnected elements can have computed display: none, so first confirm that elem is 18153 // in the document. 18154 isAttached( elem ) && 18155 18156 jQuery.css( elem, "display" ) === "none"; 18157 }; 18158 18159 18160 18161function adjustCSS( elem, prop, valueParts, tween ) { 18162 var adjusted, scale, 18163 maxIterations = 20, 18164 currentValue = tween ? 18165 function() { 18166 return tween.cur(); 18167 } : 18168 function() { 18169 return jQuery.css( elem, prop, "" ); 18170 }, 18171 initial = currentValue(), 18172 unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), 18173 18174 // Starting value computation is required for potential unit mismatches 18175 initialInUnit = elem.nodeType && 18176 ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && 18177 rcssNum.exec( jQuery.css( elem, prop ) ); 18178 18179 if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { 18180 18181 // Support: Firefox <=54 18182 // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) 18183 initial = initial / 2; 18184 18185 // Trust units reported by jQuery.css 18186 unit = unit || initialInUnit[ 3 ]; 18187 18188 // Iteratively approximate from a nonzero starting point 18189 initialInUnit = +initial || 1; 18190 18191 while ( maxIterations-- ) { 18192 18193 // Evaluate and update our best guess (doubling guesses that zero out). 18194 // Finish if the scale equals or crosses 1 (making the old*new product non-positive). 18195 jQuery.style( elem, prop, initialInUnit + unit ); 18196 if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { 18197 maxIterations = 0; 18198 } 18199 initialInUnit = initialInUnit / scale; 18200 18201 } 18202 18203 initialInUnit = initialInUnit * 2; 18204 jQuery.style( elem, prop, initialInUnit + unit ); 18205 18206 // Make sure we update the tween properties later on 18207 valueParts = valueParts || []; 18208 } 18209 18210 if ( valueParts ) { 18211 initialInUnit = +initialInUnit || +initial || 0; 18212 18213 // Apply relative offset (+=/-=) if specified 18214 adjusted = valueParts[ 1 ] ? 18215 initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : 18216 +valueParts[ 2 ]; 18217 if ( tween ) { 18218 tween.unit = unit; 18219 tween.start = initialInUnit; 18220 tween.end = adjusted; 18221 } 18222 } 18223 return adjusted; 18224} 18225 18226 18227var defaultDisplayMap = {}; 18228 18229function getDefaultDisplay( elem ) { 18230 var temp, 18231 doc = elem.ownerDocument, 18232 nodeName = elem.nodeName, 18233 display = defaultDisplayMap[ nodeName ]; 18234 18235 if ( display ) { 18236 return display; 18237 } 18238 18239 temp = doc.body.appendChild( doc.createElement( nodeName ) ); 18240 display = jQuery.css( temp, "display" ); 18241 18242 temp.parentNode.removeChild( temp ); 18243 18244 if ( display === "none" ) { 18245 display = "block"; 18246 } 18247 defaultDisplayMap[ nodeName ] = display; 18248 18249 return display; 18250} 18251 18252function showHide( elements, show ) { 18253 var display, elem, 18254 values = [], 18255 index = 0, 18256 length = elements.length; 18257 18258 // Determine new display value for elements that need to change 18259 for ( ; index < length; index++ ) { 18260 elem = elements[ index ]; 18261 if ( !elem.style ) { 18262 continue; 18263 } 18264 18265 display = elem.style.display; 18266 if ( show ) { 18267 18268 // Since we force visibility upon cascade-hidden elements, an immediate (and slow) 18269 // check is required in this first loop unless we have a nonempty display value (either 18270 // inline or about-to-be-restored) 18271 if ( display === "none" ) { 18272 values[ index ] = dataPriv.get( elem, "display" ) || null; 18273 if ( !values[ index ] ) { 18274 elem.style.display = ""; 18275 } 18276 } 18277 if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { 18278 values[ index ] = getDefaultDisplay( elem ); 18279 } 18280 } else { 18281 if ( display !== "none" ) { 18282 values[ index ] = "none"; 18283 18284 // Remember what we're overwriting 18285 dataPriv.set( elem, "display", display ); 18286 } 18287 } 18288 } 18289 18290 // Set the display of the elements in a second loop to avoid constant reflow 18291 for ( index = 0; index < length; index++ ) { 18292 if ( values[ index ] != null ) { 18293 elements[ index ].style.display = values[ index ]; 18294 } 18295 } 18296 18297 return elements; 18298} 18299 18300jQuery.fn.extend( { 18301 show: function() { 18302 return showHide( this, true ); 18303 }, 18304 hide: function() { 18305 return showHide( this ); 18306 }, 18307 toggle: function( state ) { 18308 if ( typeof state === "boolean" ) { 18309 return state ? this.show() : this.hide(); 18310 } 18311 18312 return this.each( function() { 18313 if ( isHiddenWithinTree( this ) ) { 18314 jQuery( this ).show(); 18315 } else { 18316 jQuery( this ).hide(); 18317 } 18318 } ); 18319 } 18320} ); 18321var rcheckableType = ( /^(?:checkbox|radio)$/i ); 18322 18323var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); 18324 18325var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); 18326 18327 18328 18329( function() { 18330 var fragment = document.createDocumentFragment(), 18331 div = fragment.appendChild( document.createElement( "div" ) ), 18332 input = document.createElement( "input" ); 18333 18334 // Support: Android 4.0 - 4.3 only 18335 // Check state lost if the name is set (#11217) 18336 // Support: Windows Web Apps (WWA) 18337 // `name` and `type` must use .setAttribute for WWA (#14901) 18338 input.setAttribute( "type", "radio" ); 18339 input.setAttribute( "checked", "checked" ); 18340 input.setAttribute( "name", "t" ); 18341 18342 div.appendChild( input ); 18343 18344 // Support: Android <=4.1 only 18345 // Older WebKit doesn't clone checked state correctly in fragments 18346 support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; 18347 18348 // Support: IE <=11 only 18349 // Make sure textarea (and checkbox) defaultValue is properly cloned 18350 div.innerHTML = "<textarea>x</textarea>"; 18351 support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; 18352 18353 // Support: IE <=9 only 18354 // IE <=9 replaces <option> tags with their contents when inserted outside of 18355 // the select element. 18356 div.innerHTML = "<option></option>"; 18357 support.option = !!div.lastChild; 18358} )(); 18359 18360 18361// We have to close these tags to support XHTML (#13200) 18362var wrapMap = { 18363 18364 // XHTML parsers do not magically insert elements in the 18365 // same way that tag soup parsers do. So we cannot shorten 18366 // this by omitting <tbody> or other required elements. 18367 thead: [ 1, "<table>", "</table>" ], 18368 col: [ 2, "<table><colgroup>", "</colgroup></table>" ], 18369 tr: [ 2, "<table><tbody>", "</tbody></table>" ], 18370 td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], 18371 18372 _default: [ 0, "", "" ] 18373}; 18374 18375wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 18376wrapMap.th = wrapMap.td; 18377 18378// Support: IE <=9 only 18379if ( !support.option ) { 18380 wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ]; 18381} 18382 18383 18384function getAll( context, tag ) { 18385 18386 // Support: IE <=9 - 11 only 18387 // Use typeof to avoid zero-argument method invocation on host objects (#15151) 18388 var ret; 18389 18390 if ( typeof context.getElementsByTagName !== "undefined" ) { 18391 ret = context.getElementsByTagName( tag || "*" ); 18392 18393 } else if ( typeof context.querySelectorAll !== "undefined" ) { 18394 ret = context.querySelectorAll( tag || "*" ); 18395 18396 } else { 18397 ret = []; 18398 } 18399 18400 if ( tag === undefined || tag && nodeName( context, tag ) ) { 18401 return jQuery.merge( [ context ], ret ); 18402 } 18403 18404 return ret; 18405} 18406 18407 18408// Mark scripts as having already been evaluated 18409function setGlobalEval( elems, refElements ) { 18410 var i = 0, 18411 l = elems.length; 18412 18413 for ( ; i < l; i++ ) { 18414 dataPriv.set( 18415 elems[ i ], 18416 "globalEval", 18417 !refElements || dataPriv.get( refElements[ i ], "globalEval" ) 18418 ); 18419 } 18420} 18421 18422 18423var rhtml = /<|&#?\w+;/; 18424 18425function buildFragment( elems, context, scripts, selection, ignored ) { 18426 var elem, tmp, tag, wrap, attached, j, 18427 fragment = context.createDocumentFragment(), 18428 nodes = [], 18429 i = 0, 18430 l = elems.length; 18431 18432 for ( ; i < l; i++ ) { 18433 elem = elems[ i ]; 18434 18435 if ( elem || elem === 0 ) { 18436 18437 // Add nodes directly 18438 if ( toType( elem ) === "object" ) { 18439 18440 // Support: Android <=4.0 only, PhantomJS 1 only 18441 // push.apply(_, arraylike) throws on ancient WebKit 18442 jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); 18443 18444 // Convert non-html into a text node 18445 } else if ( !rhtml.test( elem ) ) { 18446 nodes.push( context.createTextNode( elem ) ); 18447 18448 // Convert html into DOM nodes 18449 } else { 18450 tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); 18451 18452 // Deserialize a standard representation 18453 tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); 18454 wrap = wrapMap[ tag ] || wrapMap._default; 18455 tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; 18456 18457 // Descend through wrappers to the right content 18458 j = wrap[ 0 ]; 18459 while ( j-- ) { 18460 tmp = tmp.lastChild; 18461 } 18462 18463 // Support: Android <=4.0 only, PhantomJS 1 only 18464 // push.apply(_, arraylike) throws on ancient WebKit 18465 jQuery.merge( nodes, tmp.childNodes ); 18466 18467 // Remember the top-level container 18468 tmp = fragment.firstChild; 18469 18470 // Ensure the created nodes are orphaned (#12392) 18471 tmp.textContent = ""; 18472 } 18473 } 18474 } 18475 18476 // Remove wrapper from fragment 18477 fragment.textContent = ""; 18478 18479 i = 0; 18480 while ( ( elem = nodes[ i++ ] ) ) { 18481 18482 // Skip elements already in the context collection (trac-4087) 18483 if ( selection && jQuery.inArray( elem, selection ) > -1 ) { 18484 if ( ignored ) { 18485 ignored.push( elem ); 18486 } 18487 continue; 18488 } 18489 18490 attached = isAttached( elem ); 18491 18492 // Append to fragment 18493 tmp = getAll( fragment.appendChild( elem ), "script" ); 18494 18495 // Preserve script evaluation history 18496 if ( attached ) { 18497 setGlobalEval( tmp ); 18498 } 18499 18500 // Capture executables 18501 if ( scripts ) { 18502 j = 0; 18503 while ( ( elem = tmp[ j++ ] ) ) { 18504 if ( rscriptType.test( elem.type || "" ) ) { 18505 scripts.push( elem ); 18506 } 18507 } 18508 } 18509 } 18510 18511 return fragment; 18512} 18513 18514 18515var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; 18516 18517function returnTrue() { 18518 return true; 18519} 18520 18521function returnFalse() { 18522 return false; 18523} 18524 18525// Support: IE <=9 - 11+ 18526// focus() and blur() are asynchronous, except when they are no-op. 18527// So expect focus to be synchronous when the element is already active, 18528// and blur to be synchronous when the element is not already active. 18529// (focus and blur are always synchronous in other supported browsers, 18530// this just defines when we can count on it). 18531function expectSync( elem, type ) { 18532 return ( elem === safeActiveElement() ) === ( type === "focus" ); 18533} 18534 18535// Support: IE <=9 only 18536// Accessing document.activeElement can throw unexpectedly 18537// https://bugs.jquery.com/ticket/13393 18538function safeActiveElement() { 18539 try { 18540 return document.activeElement; 18541 } catch ( err ) { } 18542} 18543 18544function on( elem, types, selector, data, fn, one ) { 18545 var origFn, type; 18546 18547 // Types can be a map of types/handlers 18548 if ( typeof types === "object" ) { 18549 18550 // ( types-Object, selector, data ) 18551 if ( typeof selector !== "string" ) { 18552 18553 // ( types-Object, data ) 18554 data = data || selector; 18555 selector = undefined; 18556 } 18557 for ( type in types ) { 18558 on( elem, type, selector, data, types[ type ], one ); 18559 } 18560 return elem; 18561 } 18562 18563 if ( data == null && fn == null ) { 18564 18565 // ( types, fn ) 18566 fn = selector; 18567 data = selector = undefined; 18568 } else if ( fn == null ) { 18569 if ( typeof selector === "string" ) { 18570 18571 // ( types, selector, fn ) 18572 fn = data; 18573 data = undefined; 18574 } else { 18575 18576 // ( types, data, fn ) 18577 fn = data; 18578 data = selector; 18579 selector = undefined; 18580 } 18581 } 18582 if ( fn === false ) { 18583 fn = returnFalse; 18584 } else if ( !fn ) { 18585 return elem; 18586 } 18587 18588 if ( one === 1 ) { 18589 origFn = fn; 18590 fn = function( event ) { 18591 18592 // Can use an empty set, since event contains the info 18593 jQuery().off( event ); 18594 return origFn.apply( this, arguments ); 18595 }; 18596 18597 // Use same guid so caller can remove using origFn 18598 fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); 18599 } 18600 return elem.each( function() { 18601 jQuery.event.add( this, types, fn, data, selector ); 18602 } ); 18603} 18604 18605/* 18606 * Helper functions for managing events -- not part of the public interface. 18607 * Props to Dean Edwards' addEvent library for many of the ideas. 18608 */ 18609jQuery.event = { 18610 18611 global: {}, 18612 18613 add: function( elem, types, handler, data, selector ) { 18614 18615 var handleObjIn, eventHandle, tmp, 18616 events, t, handleObj, 18617 special, handlers, type, namespaces, origType, 18618 elemData = dataPriv.get( elem ); 18619 18620 // Only attach events to objects that accept data 18621 if ( !acceptData( elem ) ) { 18622 return; 18623 } 18624 18625 // Caller can pass in an object of custom data in lieu of the handler 18626 if ( handler.handler ) { 18627 handleObjIn = handler; 18628 handler = handleObjIn.handler; 18629 selector = handleObjIn.selector; 18630 } 18631 18632 // Ensure that invalid selectors throw exceptions at attach time 18633 // Evaluate against documentElement in case elem is a non-element node (e.g., document) 18634 if ( selector ) { 18635 jQuery.find.matchesSelector( documentElement, selector ); 18636 } 18637 18638 // Make sure that the handler has a unique ID, used to find/remove it later 18639 if ( !handler.guid ) { 18640 handler.guid = jQuery.guid++; 18641 } 18642 18643 // Init the element's event structure and main handler, if this is the first 18644 if ( !( events = elemData.events ) ) { 18645 events = elemData.events = Object.create( null ); 18646 } 18647 if ( !( eventHandle = elemData.handle ) ) { 18648 eventHandle = elemData.handle = function( e ) { 18649 18650 // Discard the second event of a jQuery.event.trigger() and 18651 // when an event is called after a page has unloaded 18652 return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? 18653 jQuery.event.dispatch.apply( elem, arguments ) : undefined; 18654 }; 18655 } 18656 18657 // Handle multiple events separated by a space 18658 types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; 18659 t = types.length; 18660 while ( t-- ) { 18661 tmp = rtypenamespace.exec( types[ t ] ) || []; 18662 type = origType = tmp[ 1 ]; 18663 namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); 18664 18665 // There *must* be a type, no attaching namespace-only handlers 18666 if ( !type ) { 18667 continue; 18668 } 18669 18670 // If event changes its type, use the special event handlers for the changed type 18671 special = jQuery.event.special[ type ] || {}; 18672 18673 // If selector defined, determine special event api type, otherwise given type 18674 type = ( selector ? special.delegateType : special.bindType ) || type; 18675 18676 // Update special based on newly reset type 18677 special = jQuery.event.special[ type ] || {}; 18678 18679 // handleObj is passed to all event handlers 18680 handleObj = jQuery.extend( { 18681 type: type, 18682 origType: origType, 18683 data: data, 18684 handler: handler, 18685 guid: handler.guid, 18686 selector: selector, 18687 needsContext: selector && jQuery.expr.match.needsContext.test( selector ), 18688 namespace: namespaces.join( "." ) 18689 }, handleObjIn ); 18690 18691 // Init the event handler queue if we're the first 18692 if ( !( handlers = events[ type ] ) ) { 18693 handlers = events[ type ] = []; 18694 handlers.delegateCount = 0; 18695 18696 // Only use addEventListener if the special events handler returns false 18697 if ( !special.setup || 18698 special.setup.call( elem, data, namespaces, eventHandle ) === false ) { 18699 18700 if ( elem.addEventListener ) { 18701 elem.addEventListener( type, eventHandle ); 18702 } 18703 } 18704 } 18705 18706 if ( special.add ) { 18707 special.add.call( elem, handleObj ); 18708 18709 if ( !handleObj.handler.guid ) { 18710 handleObj.handler.guid = handler.guid; 18711 } 18712 } 18713 18714 // Add to the element's handler list, delegates in front 18715 if ( selector ) { 18716 handlers.splice( handlers.delegateCount++, 0, handleObj ); 18717 } else { 18718 handlers.push( handleObj ); 18719 } 18720 18721 // Keep track of which events have ever been used, for event optimization 18722 jQuery.event.global[ type ] = true; 18723 } 18724 18725 }, 18726 18727 // Detach an event or set of events from an element 18728 remove: function( elem, types, handler, selector, mappedTypes ) { 18729 18730 var j, origCount, tmp, 18731 events, t, handleObj, 18732 special, handlers, type, namespaces, origType, 18733 elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); 18734 18735 if ( !elemData || !( events = elemData.events ) ) { 18736 return; 18737 } 18738 18739 // Once for each type.namespace in types; type may be omitted 18740 types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; 18741 t = types.length; 18742 while ( t-- ) { 18743 tmp = rtypenamespace.exec( types[ t ] ) || []; 18744 type = origType = tmp[ 1 ]; 18745 namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); 18746 18747 // Unbind all events (on this namespace, if provided) for the element 18748 if ( !type ) { 18749 for ( type in events ) { 18750 jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); 18751 } 18752 continue; 18753 } 18754 18755 special = jQuery.event.special[ type ] || {}; 18756 type = ( selector ? special.delegateType : special.bindType ) || type; 18757 handlers = events[ type ] || []; 18758 tmp = tmp[ 2 ] && 18759 new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); 18760 18761 // Remove matching events 18762 origCount = j = handlers.length; 18763 while ( j-- ) { 18764 handleObj = handlers[ j ]; 18765 18766 if ( ( mappedTypes || origType === handleObj.origType ) && 18767 ( !handler || handler.guid === handleObj.guid ) && 18768 ( !tmp || tmp.test( handleObj.namespace ) ) && 18769 ( !selector || selector === handleObj.selector || 18770 selector === "**" && handleObj.selector ) ) { 18771 handlers.splice( j, 1 ); 18772 18773 if ( handleObj.selector ) { 18774 handlers.delegateCount--; 18775 } 18776 if ( special.remove ) { 18777 special.remove.call( elem, handleObj ); 18778 } 18779 } 18780 } 18781 18782 // Remove generic event handler if we removed something and no more handlers exist 18783 // (avoids potential for endless recursion during removal of special event handlers) 18784 if ( origCount && !handlers.length ) { 18785 if ( !special.teardown || 18786 special.teardown.call( elem, namespaces, elemData.handle ) === false ) { 18787 18788 jQuery.removeEvent( elem, type, elemData.handle ); 18789 } 18790 18791 delete events[ type ]; 18792 } 18793 } 18794 18795 // Remove data and the expando if it's no longer used 18796 if ( jQuery.isEmptyObject( events ) ) { 18797 dataPriv.remove( elem, "handle events" ); 18798 } 18799 }, 18800 18801 dispatch: function( nativeEvent ) { 18802 18803 var i, j, ret, matched, handleObj, handlerQueue, 18804 args = new Array( arguments.length ), 18805 18806 // Make a writable jQuery.Event from the native event object 18807 event = jQuery.event.fix( nativeEvent ), 18808 18809 handlers = ( 18810 dataPriv.get( this, "events" ) || Object.create( null ) 18811 )[ event.type ] || [], 18812 special = jQuery.event.special[ event.type ] || {}; 18813 18814 // Use the fix-ed jQuery.Event rather than the (read-only) native event 18815 args[ 0 ] = event; 18816 18817 for ( i = 1; i < arguments.length; i++ ) { 18818 args[ i ] = arguments[ i ]; 18819 } 18820 18821 event.delegateTarget = this; 18822 18823 // Call the preDispatch hook for the mapped type, and let it bail if desired 18824 if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { 18825 return; 18826 } 18827 18828 // Determine handlers 18829 handlerQueue = jQuery.event.handlers.call( this, event, handlers ); 18830 18831 // Run delegates first; they may want to stop propagation beneath us 18832 i = 0; 18833 while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { 18834 event.currentTarget = matched.elem; 18835 18836 j = 0; 18837 while ( ( handleObj = matched.handlers[ j++ ] ) && 18838 !event.isImmediatePropagationStopped() ) { 18839 18840 // If the event is namespaced, then each handler is only invoked if it is 18841 // specially universal or its namespaces are a superset of the event's. 18842 if ( !event.rnamespace || handleObj.namespace === false || 18843 event.rnamespace.test( handleObj.namespace ) ) { 18844 18845 event.handleObj = handleObj; 18846 event.data = handleObj.data; 18847 18848 ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || 18849 handleObj.handler ).apply( matched.elem, args ); 18850 18851 if ( ret !== undefined ) { 18852 if ( ( event.result = ret ) === false ) { 18853 event.preventDefault(); 18854 event.stopPropagation(); 18855 } 18856 } 18857 } 18858 } 18859 } 18860 18861 // Call the postDispatch hook for the mapped type 18862 if ( special.postDispatch ) { 18863 special.postDispatch.call( this, event ); 18864 } 18865 18866 return event.result; 18867 }, 18868 18869 handlers: function( event, handlers ) { 18870 var i, handleObj, sel, matchedHandlers, matchedSelectors, 18871 handlerQueue = [], 18872 delegateCount = handlers.delegateCount, 18873 cur = event.target; 18874 18875 // Find delegate handlers 18876 if ( delegateCount && 18877 18878 // Support: IE <=9 18879 // Black-hole SVG <use> instance trees (trac-13180) 18880 cur.nodeType && 18881 18882 // Support: Firefox <=42 18883 // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) 18884 // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click 18885 // Support: IE 11 only 18886 // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) 18887 !( event.type === "click" && event.button >= 1 ) ) { 18888 18889 for ( ; cur !== this; cur = cur.parentNode || this ) { 18890 18891 // Don't check non-elements (#13208) 18892 // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) 18893 if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { 18894 matchedHandlers = []; 18895 matchedSelectors = {}; 18896 for ( i = 0; i < delegateCount; i++ ) { 18897 handleObj = handlers[ i ]; 18898 18899 // Don't conflict with Object.prototype properties (#13203) 18900 sel = handleObj.selector + " "; 18901 18902 if ( matchedSelectors[ sel ] === undefined ) { 18903 matchedSelectors[ sel ] = handleObj.needsContext ? 18904 jQuery( sel, this ).index( cur ) > -1 : 18905 jQuery.find( sel, this, null, [ cur ] ).length; 18906 } 18907 if ( matchedSelectors[ sel ] ) { 18908 matchedHandlers.push( handleObj ); 18909 } 18910 } 18911 if ( matchedHandlers.length ) { 18912 handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); 18913 } 18914 } 18915 } 18916 } 18917 18918 // Add the remaining (directly-bound) handlers 18919 cur = this; 18920 if ( delegateCount < handlers.length ) { 18921 handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); 18922 } 18923 18924 return handlerQueue; 18925 }, 18926 18927 addProp: function( name, hook ) { 18928 Object.defineProperty( jQuery.Event.prototype, name, { 18929 enumerable: true, 18930 configurable: true, 18931 18932 get: isFunction( hook ) ? 18933 function() { 18934 if ( this.originalEvent ) { 18935 return hook( this.originalEvent ); 18936 } 18937 } : 18938 function() { 18939 if ( this.originalEvent ) { 18940 return this.originalEvent[ name ]; 18941 } 18942 }, 18943 18944 set: function( value ) { 18945 Object.defineProperty( this, name, { 18946 enumerable: true, 18947 configurable: true, 18948 writable: true, 18949 value: value 18950 } ); 18951 } 18952 } ); 18953 }, 18954 18955 fix: function( originalEvent ) { 18956 return originalEvent[ jQuery.expando ] ? 18957 originalEvent : 18958 new jQuery.Event( originalEvent ); 18959 }, 18960 18961 special: { 18962 load: { 18963 18964 // Prevent triggered image.load events from bubbling to window.load 18965 noBubble: true 18966 }, 18967 click: { 18968 18969 // Utilize native event to ensure correct state for checkable inputs 18970 setup: function( data ) { 18971 18972 // For mutual compressibility with _default, replace `this` access with a local var. 18973 // `|| data` is dead code meant only to preserve the variable through minification. 18974 var el = this || data; 18975 18976 // Claim the first handler 18977 if ( rcheckableType.test( el.type ) && 18978 el.click && nodeName( el, "input" ) ) { 18979 18980 // dataPriv.set( el, "click", ... ) 18981 leverageNative( el, "click", returnTrue ); 18982 } 18983 18984 // Return false to allow normal processing in the caller 18985 return false; 18986 }, 18987 trigger: function( data ) { 18988 18989 // For mutual compressibility with _default, replace `this` access with a local var. 18990 // `|| data` is dead code meant only to preserve the variable through minification. 18991 var el = this || data; 18992 18993 // Force setup before triggering a click 18994 if ( rcheckableType.test( el.type ) && 18995 el.click && nodeName( el, "input" ) ) { 18996 18997 leverageNative( el, "click" ); 18998 } 18999 19000 // Return non-false to allow normal event-path propagation 19001 return true; 19002 }, 19003 19004 // For cross-browser consistency, suppress native .click() on links 19005 // Also prevent it if we're currently inside a leveraged native-event stack 19006 _default: function( event ) { 19007 var target = event.target; 19008 return rcheckableType.test( target.type ) && 19009 target.click && nodeName( target, "input" ) && 19010 dataPriv.get( target, "click" ) || 19011 nodeName( target, "a" ); 19012 } 19013 }, 19014 19015 beforeunload: { 19016 postDispatch: function( event ) { 19017 19018 // Support: Firefox 20+ 19019 // Firefox doesn't alert if the returnValue field is not set. 19020 if ( event.result !== undefined && event.originalEvent ) { 19021 event.originalEvent.returnValue = event.result; 19022 } 19023 } 19024 } 19025 } 19026}; 19027 19028// Ensure the presence of an event listener that handles manually-triggered 19029// synthetic events by interrupting progress until reinvoked in response to 19030// *native* events that it fires directly, ensuring that state changes have 19031// already occurred before other listeners are invoked. 19032function leverageNative( el, type, expectSync ) { 19033 19034 // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add 19035 if ( !expectSync ) { 19036 if ( dataPriv.get( el, type ) === undefined ) { 19037 jQuery.event.add( el, type, returnTrue ); 19038 } 19039 return; 19040 } 19041 19042 // Register the controller as a special universal handler for all event namespaces 19043 dataPriv.set( el, type, false ); 19044 jQuery.event.add( el, type, { 19045 namespace: false, 19046 handler: function( event ) { 19047 var notAsync, result, 19048 saved = dataPriv.get( this, type ); 19049 19050 if ( ( event.isTrigger & 1 ) && this[ type ] ) { 19051 19052 // Interrupt processing of the outer synthetic .trigger()ed event 19053 // Saved data should be false in such cases, but might be a leftover capture object 19054 // from an async native handler (gh-4350) 19055 if ( !saved.length ) { 19056 19057 // Store arguments for use when handling the inner native event 19058 // There will always be at least one argument (an event object), so this array 19059 // will not be confused with a leftover capture object. 19060 saved = slice.call( arguments ); 19061 dataPriv.set( this, type, saved ); 19062 19063 // Trigger the native event and capture its result 19064 // Support: IE <=9 - 11+ 19065 // focus() and blur() are asynchronous 19066 notAsync = expectSync( this, type ); 19067 this[ type ](); 19068 result = dataPriv.get( this, type ); 19069 if ( saved !== result || notAsync ) { 19070 dataPriv.set( this, type, false ); 19071 } else { 19072 result = {}; 19073 } 19074 if ( saved !== result ) { 19075 19076 // Cancel the outer synthetic event 19077 event.stopImmediatePropagation(); 19078 event.preventDefault(); 19079 19080 // Support: Chrome 86+ 19081 // In Chrome, if an element having a focusout handler is blurred by 19082 // clicking outside of it, it invokes the handler synchronously. If 19083 // that handler calls `.remove()` on the element, the data is cleared, 19084 // leaving `result` undefined. We need to guard against this. 19085 return result && result.value; 19086 } 19087 19088 // If this is an inner synthetic event for an event with a bubbling surrogate 19089 // (focus or blur), assume that the surrogate already propagated from triggering the 19090 // native event and prevent that from happening again here. 19091 // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the 19092 // bubbling surrogate propagates *after* the non-bubbling base), but that seems 19093 // less bad than duplication. 19094 } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { 19095 event.stopPropagation(); 19096 } 19097 19098 // If this is a native event triggered above, everything is now in order 19099 // Fire an inner synthetic event with the original arguments 19100 } else if ( saved.length ) { 19101 19102 // ...and capture the result 19103 dataPriv.set( this, type, { 19104 value: jQuery.event.trigger( 19105 19106 // Support: IE <=9 - 11+ 19107 // Extend with the prototype to reset the above stopImmediatePropagation() 19108 jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), 19109 saved.slice( 1 ), 19110 this 19111 ) 19112 } ); 19113 19114 // Abort handling of the native event 19115 event.stopImmediatePropagation(); 19116 } 19117 } 19118 } ); 19119} 19120 19121jQuery.removeEvent = function( elem, type, handle ) { 19122 19123 // This "if" is needed for plain objects 19124 if ( elem.removeEventListener ) { 19125 elem.removeEventListener( type, handle ); 19126 } 19127}; 19128 19129jQuery.Event = function( src, props ) { 19130 19131 // Allow instantiation without the 'new' keyword 19132 if ( !( this instanceof jQuery.Event ) ) { 19133 return new jQuery.Event( src, props ); 19134 } 19135 19136 // Event object 19137 if ( src && src.type ) { 19138 this.originalEvent = src; 19139 this.type = src.type; 19140 19141 // Events bubbling up the document may have been marked as prevented 19142 // by a handler lower down the tree; reflect the correct value. 19143 this.isDefaultPrevented = src.defaultPrevented || 19144 src.defaultPrevented === undefined && 19145 19146 // Support: Android <=2.3 only 19147 src.returnValue === false ? 19148 returnTrue : 19149 returnFalse; 19150 19151 // Create target properties 19152 // Support: Safari <=6 - 7 only 19153 // Target should not be a text node (#504, #13143) 19154 this.target = ( src.target && src.target.nodeType === 3 ) ? 19155 src.target.parentNode : 19156 src.target; 19157 19158 this.currentTarget = src.currentTarget; 19159 this.relatedTarget = src.relatedTarget; 19160 19161 // Event type 19162 } else { 19163 this.type = src; 19164 } 19165 19166 // Put explicitly provided properties onto the event object 19167 if ( props ) { 19168 jQuery.extend( this, props ); 19169 } 19170 19171 // Create a timestamp if incoming event doesn't have one 19172 this.timeStamp = src && src.timeStamp || Date.now(); 19173 19174 // Mark it as fixed 19175 this[ jQuery.expando ] = true; 19176}; 19177 19178// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding 19179// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html 19180jQuery.Event.prototype = { 19181 constructor: jQuery.Event, 19182 isDefaultPrevented: returnFalse, 19183 isPropagationStopped: returnFalse, 19184 isImmediatePropagationStopped: returnFalse, 19185 isSimulated: false, 19186 19187 preventDefault: function() { 19188 var e = this.originalEvent; 19189 19190 this.isDefaultPrevented = returnTrue; 19191 19192 if ( e && !this.isSimulated ) { 19193 e.preventDefault(); 19194 } 19195 }, 19196 stopPropagation: function() { 19197 var e = this.originalEvent; 19198 19199 this.isPropagationStopped = returnTrue; 19200 19201 if ( e && !this.isSimulated ) { 19202 e.stopPropagation(); 19203 } 19204 }, 19205 stopImmediatePropagation: function() { 19206 var e = this.originalEvent; 19207 19208 this.isImmediatePropagationStopped = returnTrue; 19209 19210 if ( e && !this.isSimulated ) { 19211 e.stopImmediatePropagation(); 19212 } 19213 19214 this.stopPropagation(); 19215 } 19216}; 19217 19218// Includes all common event props including KeyEvent and MouseEvent specific props 19219jQuery.each( { 19220 altKey: true, 19221 bubbles: true, 19222 cancelable: true, 19223 changedTouches: true, 19224 ctrlKey: true, 19225 detail: true, 19226 eventPhase: true, 19227 metaKey: true, 19228 pageX: true, 19229 pageY: true, 19230 shiftKey: true, 19231 view: true, 19232 "char": true, 19233 code: true, 19234 charCode: true, 19235 key: true, 19236 keyCode: true, 19237 button: true, 19238 buttons: true, 19239 clientX: true, 19240 clientY: true, 19241 offsetX: true, 19242 offsetY: true, 19243 pointerId: true, 19244 pointerType: true, 19245 screenX: true, 19246 screenY: true, 19247 targetTouches: true, 19248 toElement: true, 19249 touches: true, 19250 which: true 19251}, jQuery.event.addProp ); 19252 19253jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { 19254 jQuery.event.special[ type ] = { 19255 19256 // Utilize native event if possible so blur/focus sequence is correct 19257 setup: function() { 19258 19259 // Claim the first handler 19260 // dataPriv.set( this, "focus", ... ) 19261 // dataPriv.set( this, "blur", ... ) 19262 leverageNative( this, type, expectSync ); 19263 19264 // Return false to allow normal processing in the caller 19265 return false; 19266 }, 19267 trigger: function() { 19268 19269 // Force setup before trigger 19270 leverageNative( this, type ); 19271 19272 // Return non-false to allow normal event-path propagation 19273 return true; 19274 }, 19275 19276 // Suppress native focus or blur as it's already being fired 19277 // in leverageNative. 19278 _default: function() { 19279 return true; 19280 }, 19281 19282 delegateType: delegateType 19283 }; 19284} ); 19285 19286// Create mouseenter/leave events using mouseover/out and event-time checks 19287// so that event delegation works in jQuery. 19288// Do the same for pointerenter/pointerleave and pointerover/pointerout 19289// 19290// Support: Safari 7 only 19291// Safari sends mouseenter too often; see: 19292// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 19293// for the description of the bug (it existed in older Chrome versions as well). 19294jQuery.each( { 19295 mouseenter: "mouseover", 19296 mouseleave: "mouseout", 19297 pointerenter: "pointerover", 19298 pointerleave: "pointerout" 19299}, function( orig, fix ) { 19300 jQuery.event.special[ orig ] = { 19301 delegateType: fix, 19302 bindType: fix, 19303 19304 handle: function( event ) { 19305 var ret, 19306 target = this, 19307 related = event.relatedTarget, 19308 handleObj = event.handleObj; 19309 19310 // For mouseenter/leave call the handler if related is outside the target. 19311 // NB: No relatedTarget if the mouse left/entered the browser window 19312 if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { 19313 event.type = handleObj.origType; 19314 ret = handleObj.handler.apply( this, arguments ); 19315 event.type = fix; 19316 } 19317 return ret; 19318 } 19319 }; 19320} ); 19321 19322jQuery.fn.extend( { 19323 19324 on: function( types, selector, data, fn ) { 19325 return on( this, types, selector, data, fn ); 19326 }, 19327 one: function( types, selector, data, fn ) { 19328 return on( this, types, selector, data, fn, 1 ); 19329 }, 19330 off: function( types, selector, fn ) { 19331 var handleObj, type; 19332 if ( types && types.preventDefault && types.handleObj ) { 19333 19334 // ( event ) dispatched jQuery.Event 19335 handleObj = types.handleObj; 19336 jQuery( types.delegateTarget ).off( 19337 handleObj.namespace ? 19338 handleObj.origType + "." + handleObj.namespace : 19339 handleObj.origType, 19340 handleObj.selector, 19341 handleObj.handler 19342 ); 19343 return this; 19344 } 19345 if ( typeof types === "object" ) { 19346 19347 // ( types-object [, selector] ) 19348 for ( type in types ) { 19349 this.off( type, selector, types[ type ] ); 19350 } 19351 return this; 19352 } 19353 if ( selector === false || typeof selector === "function" ) { 19354 19355 // ( types [, fn] ) 19356 fn = selector; 19357 selector = undefined; 19358 } 19359 if ( fn === false ) { 19360 fn = returnFalse; 19361 } 19362 return this.each( function() { 19363 jQuery.event.remove( this, types, fn, selector ); 19364 } ); 19365 } 19366} ); 19367 19368 19369var 19370 19371 // Support: IE <=10 - 11, Edge 12 - 13 only 19372 // In IE/Edge using regex groups here causes severe slowdowns. 19373 // See https://connect.microsoft.com/IE/feedback/details/1736512/ 19374 rnoInnerhtml = /<script|<style|<link/i, 19375 19376 // checked="checked" or checked 19377 rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, 19378 rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; 19379 19380// Prefer a tbody over its parent table for containing new rows 19381function manipulationTarget( elem, content ) { 19382 if ( nodeName( elem, "table" ) && 19383 nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { 19384 19385 return jQuery( elem ).children( "tbody" )[ 0 ] || elem; 19386 } 19387 19388 return elem; 19389} 19390 19391// Replace/restore the type attribute of script elements for safe DOM manipulation 19392function disableScript( elem ) { 19393 elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; 19394 return elem; 19395} 19396function restoreScript( elem ) { 19397 if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { 19398 elem.type = elem.type.slice( 5 ); 19399 } else { 19400 elem.removeAttribute( "type" ); 19401 } 19402 19403 return elem; 19404} 19405 19406function cloneCopyEvent( src, dest ) { 19407 var i, l, type, pdataOld, udataOld, udataCur, events; 19408 19409 if ( dest.nodeType !== 1 ) { 19410 return; 19411 } 19412 19413 // 1. Copy private data: events, handlers, etc. 19414 if ( dataPriv.hasData( src ) ) { 19415 pdataOld = dataPriv.get( src ); 19416 events = pdataOld.events; 19417 19418 if ( events ) { 19419 dataPriv.remove( dest, "handle events" ); 19420 19421 for ( type in events ) { 19422 for ( i = 0, l = events[ type ].length; i < l; i++ ) { 19423 jQuery.event.add( dest, type, events[ type ][ i ] ); 19424 } 19425 } 19426 } 19427 } 19428 19429 // 2. Copy user data 19430 if ( dataUser.hasData( src ) ) { 19431 udataOld = dataUser.access( src ); 19432 udataCur = jQuery.extend( {}, udataOld ); 19433 19434 dataUser.set( dest, udataCur ); 19435 } 19436} 19437 19438// Fix IE bugs, see support tests 19439function fixInput( src, dest ) { 19440 var nodeName = dest.nodeName.toLowerCase(); 19441 19442 // Fails to persist the checked state of a cloned checkbox or radio button. 19443 if ( nodeName === "input" && rcheckableType.test( src.type ) ) { 19444 dest.checked = src.checked; 19445 19446 // Fails to return the selected option to the default selected state when cloning options 19447 } else if ( nodeName === "input" || nodeName === "textarea" ) { 19448 dest.defaultValue = src.defaultValue; 19449 } 19450} 19451 19452function domManip( collection, args, callback, ignored ) { 19453 19454 // Flatten any nested arrays 19455 args = flat( args ); 19456 19457 var fragment, first, scripts, hasScripts, node, doc, 19458 i = 0, 19459 l = collection.length, 19460 iNoClone = l - 1, 19461 value = args[ 0 ], 19462 valueIsFunction = isFunction( value ); 19463 19464 // We can't cloneNode fragments that contain checked, in WebKit 19465 if ( valueIsFunction || 19466 ( l > 1 && typeof value === "string" && 19467 !support.checkClone && rchecked.test( value ) ) ) { 19468 return collection.each( function( index ) { 19469 var self = collection.eq( index ); 19470 if ( valueIsFunction ) { 19471 args[ 0 ] = value.call( this, index, self.html() ); 19472 } 19473 domManip( self, args, callback, ignored ); 19474 } ); 19475 } 19476 19477 if ( l ) { 19478 fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); 19479 first = fragment.firstChild; 19480 19481 if ( fragment.childNodes.length === 1 ) { 19482 fragment = first; 19483 } 19484 19485 // Require either new content or an interest in ignored elements to invoke the callback 19486 if ( first || ignored ) { 19487 scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); 19488 hasScripts = scripts.length; 19489 19490 // Use the original fragment for the last item 19491 // instead of the first because it can end up 19492 // being emptied incorrectly in certain situations (#8070). 19493 for ( ; i < l; i++ ) { 19494 node = fragment; 19495 19496 if ( i !== iNoClone ) { 19497 node = jQuery.clone( node, true, true ); 19498 19499 // Keep references to cloned scripts for later restoration 19500 if ( hasScripts ) { 19501 19502 // Support: Android <=4.0 only, PhantomJS 1 only 19503 // push.apply(_, arraylike) throws on ancient WebKit 19504 jQuery.merge( scripts, getAll( node, "script" ) ); 19505 } 19506 } 19507 19508 callback.call( collection[ i ], node, i ); 19509 } 19510 19511 if ( hasScripts ) { 19512 doc = scripts[ scripts.length - 1 ].ownerDocument; 19513 19514 // Reenable scripts 19515 jQuery.map( scripts, restoreScript ); 19516 19517 // Evaluate executable scripts on first document insertion 19518 for ( i = 0; i < hasScripts; i++ ) { 19519 node = scripts[ i ]; 19520 if ( rscriptType.test( node.type || "" ) && 19521 !dataPriv.access( node, "globalEval" ) && 19522 jQuery.contains( doc, node ) ) { 19523 19524 if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { 19525 19526 // Optional AJAX dependency, but won't run scripts if not present 19527 if ( jQuery._evalUrl && !node.noModule ) { 19528 jQuery._evalUrl( node.src, { 19529 nonce: node.nonce || node.getAttribute( "nonce" ) 19530 }, doc ); 19531 } 19532 } else { 19533 DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); 19534 } 19535 } 19536 } 19537 } 19538 } 19539 } 19540 19541 return collection; 19542} 19543 19544function remove( elem, selector, keepData ) { 19545 var node, 19546 nodes = selector ? jQuery.filter( selector, elem ) : elem, 19547 i = 0; 19548 19549 for ( ; ( node = nodes[ i ] ) != null; i++ ) { 19550 if ( !keepData && node.nodeType === 1 ) { 19551 jQuery.cleanData( getAll( node ) ); 19552 } 19553 19554 if ( node.parentNode ) { 19555 if ( keepData && isAttached( node ) ) { 19556 setGlobalEval( getAll( node, "script" ) ); 19557 } 19558 node.parentNode.removeChild( node ); 19559 } 19560 } 19561 19562 return elem; 19563} 19564 19565jQuery.extend( { 19566 htmlPrefilter: function( html ) { 19567 return html; 19568 }, 19569 19570 clone: function( elem, dataAndEvents, deepDataAndEvents ) { 19571 var i, l, srcElements, destElements, 19572 clone = elem.cloneNode( true ), 19573 inPage = isAttached( elem ); 19574 19575 // Fix IE cloning issues 19576 if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && 19577 !jQuery.isXMLDoc( elem ) ) { 19578 19579 // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 19580 destElements = getAll( clone ); 19581 srcElements = getAll( elem ); 19582 19583 for ( i = 0, l = srcElements.length; i < l; i++ ) { 19584 fixInput( srcElements[ i ], destElements[ i ] ); 19585 } 19586 } 19587 19588 // Copy the events from the original to the clone 19589 if ( dataAndEvents ) { 19590 if ( deepDataAndEvents ) { 19591 srcElements = srcElements || getAll( elem ); 19592 destElements = destElements || getAll( clone ); 19593 19594 for ( i = 0, l = srcElements.length; i < l; i++ ) { 19595 cloneCopyEvent( srcElements[ i ], destElements[ i ] ); 19596 } 19597 } else { 19598 cloneCopyEvent( elem, clone ); 19599 } 19600 } 19601 19602 // Preserve script evaluation history 19603 destElements = getAll( clone, "script" ); 19604 if ( destElements.length > 0 ) { 19605 setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); 19606 } 19607 19608 // Return the cloned set 19609 return clone; 19610 }, 19611 19612 cleanData: function( elems ) { 19613 var data, elem, type, 19614 special = jQuery.event.special, 19615 i = 0; 19616 19617 for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { 19618 if ( acceptData( elem ) ) { 19619 if ( ( data = elem[ dataPriv.expando ] ) ) { 19620 if ( data.events ) { 19621 for ( type in data.events ) { 19622 if ( special[ type ] ) { 19623 jQuery.event.remove( elem, type ); 19624 19625 // This is a shortcut to avoid jQuery.event.remove's overhead 19626 } else { 19627 jQuery.removeEvent( elem, type, data.handle ); 19628 } 19629 } 19630 } 19631 19632 // Support: Chrome <=35 - 45+ 19633 // Assign undefined instead of using delete, see Data#remove 19634 elem[ dataPriv.expando ] = undefined; 19635 } 19636 if ( elem[ dataUser.expando ] ) { 19637 19638 // Support: Chrome <=35 - 45+ 19639 // Assign undefined instead of using delete, see Data#remove 19640 elem[ dataUser.expando ] = undefined; 19641 } 19642 } 19643 } 19644 } 19645} ); 19646 19647jQuery.fn.extend( { 19648 detach: function( selector ) { 19649 return remove( this, selector, true ); 19650 }, 19651 19652 remove: function( selector ) { 19653 return remove( this, selector ); 19654 }, 19655 19656 text: function( value ) { 19657 return access( this, function( value ) { 19658 return value === undefined ? 19659 jQuery.text( this ) : 19660 this.empty().each( function() { 19661 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 19662 this.textContent = value; 19663 } 19664 } ); 19665 }, null, value, arguments.length ); 19666 }, 19667 19668 append: function() { 19669 return domManip( this, arguments, function( elem ) { 19670 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 19671 var target = manipulationTarget( this, elem ); 19672 target.appendChild( elem ); 19673 } 19674 } ); 19675 }, 19676 19677 prepend: function() { 19678 return domManip( this, arguments, function( elem ) { 19679 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 19680 var target = manipulationTarget( this, elem ); 19681 target.insertBefore( elem, target.firstChild ); 19682 } 19683 } ); 19684 }, 19685 19686 before: function() { 19687 return domManip( this, arguments, function( elem ) { 19688 if ( this.parentNode ) { 19689 this.parentNode.insertBefore( elem, this ); 19690 } 19691 } ); 19692 }, 19693 19694 after: function() { 19695 return domManip( this, arguments, function( elem ) { 19696 if ( this.parentNode ) { 19697 this.parentNode.insertBefore( elem, this.nextSibling ); 19698 } 19699 } ); 19700 }, 19701 19702 empty: function() { 19703 var elem, 19704 i = 0; 19705 19706 for ( ; ( elem = this[ i ] ) != null; i++ ) { 19707 if ( elem.nodeType === 1 ) { 19708 19709 // Prevent memory leaks 19710 jQuery.cleanData( getAll( elem, false ) ); 19711 19712 // Remove any remaining nodes 19713 elem.textContent = ""; 19714 } 19715 } 19716 19717 return this; 19718 }, 19719 19720 clone: function( dataAndEvents, deepDataAndEvents ) { 19721 dataAndEvents = dataAndEvents == null ? false : dataAndEvents; 19722 deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; 19723 19724 return this.map( function() { 19725 return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); 19726 } ); 19727 }, 19728 19729 html: function( value ) { 19730 return access( this, function( value ) { 19731 var elem = this[ 0 ] || {}, 19732 i = 0, 19733 l = this.length; 19734 19735 if ( value === undefined && elem.nodeType === 1 ) { 19736 return elem.innerHTML; 19737 } 19738 19739 // See if we can take a shortcut and just use innerHTML 19740 if ( typeof value === "string" && !rnoInnerhtml.test( value ) && 19741 !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { 19742 19743 value = jQuery.htmlPrefilter( value ); 19744 19745 try { 19746 for ( ; i < l; i++ ) { 19747 elem = this[ i ] || {}; 19748 19749 // Remove element nodes and prevent memory leaks 19750 if ( elem.nodeType === 1 ) { 19751 jQuery.cleanData( getAll( elem, false ) ); 19752 elem.innerHTML = value; 19753 } 19754 } 19755 19756 elem = 0; 19757 19758 // If using innerHTML throws an exception, use the fallback method 19759 } catch ( e ) {} 19760 } 19761 19762 if ( elem ) { 19763 this.empty().append( value ); 19764 } 19765 }, null, value, arguments.length ); 19766 }, 19767 19768 replaceWith: function() { 19769 var ignored = []; 19770 19771 // Make the changes, replacing each non-ignored context element with the new content 19772 return domManip( this, arguments, function( elem ) { 19773 var parent = this.parentNode; 19774 19775 if ( jQuery.inArray( this, ignored ) < 0 ) { 19776 jQuery.cleanData( getAll( this ) ); 19777 if ( parent ) { 19778 parent.replaceChild( elem, this ); 19779 } 19780 } 19781 19782 // Force callback invocation 19783 }, ignored ); 19784 } 19785} ); 19786 19787jQuery.each( { 19788 appendTo: "append", 19789 prependTo: "prepend", 19790 insertBefore: "before", 19791 insertAfter: "after", 19792 replaceAll: "replaceWith" 19793}, function( name, original ) { 19794 jQuery.fn[ name ] = function( selector ) { 19795 var elems, 19796 ret = [], 19797 insert = jQuery( selector ), 19798 last = insert.length - 1, 19799 i = 0; 19800 19801 for ( ; i <= last; i++ ) { 19802 elems = i === last ? this : this.clone( true ); 19803 jQuery( insert[ i ] )[ original ]( elems ); 19804 19805 // Support: Android <=4.0 only, PhantomJS 1 only 19806 // .get() because push.apply(_, arraylike) throws on ancient WebKit 19807 push.apply( ret, elems.get() ); 19808 } 19809 19810 return this.pushStack( ret ); 19811 }; 19812} ); 19813var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 19814 19815var getStyles = function( elem ) { 19816 19817 // Support: IE <=11 only, Firefox <=30 (#15098, #14150) 19818 // IE throws on elements created in popups 19819 // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 19820 var view = elem.ownerDocument.defaultView; 19821 19822 if ( !view || !view.opener ) { 19823 view = window; 19824 } 19825 19826 return view.getComputedStyle( elem ); 19827 }; 19828 19829var swap = function( elem, options, callback ) { 19830 var ret, name, 19831 old = {}; 19832 19833 // Remember the old values, and insert the new ones 19834 for ( name in options ) { 19835 old[ name ] = elem.style[ name ]; 19836 elem.style[ name ] = options[ name ]; 19837 } 19838 19839 ret = callback.call( elem ); 19840 19841 // Revert the old values 19842 for ( name in options ) { 19843 elem.style[ name ] = old[ name ]; 19844 } 19845 19846 return ret; 19847}; 19848 19849 19850var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); 19851 19852 19853 19854( function() { 19855 19856 // Executing both pixelPosition & boxSizingReliable tests require only one layout 19857 // so they're executed at the same time to save the second computation. 19858 function computeStyleTests() { 19859 19860 // This is a singleton, we need to execute it only once 19861 if ( !div ) { 19862 return; 19863 } 19864 19865 container.style.cssText = "position:absolute;left:-11111px;width:60px;" + 19866 "margin-top:1px;padding:0;border:0"; 19867 div.style.cssText = 19868 "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + 19869 "margin:auto;border:1px;padding:1px;" + 19870 "width:60%;top:1%"; 19871 documentElement.appendChild( container ).appendChild( div ); 19872 19873 var divStyle = window.getComputedStyle( div ); 19874 pixelPositionVal = divStyle.top !== "1%"; 19875 19876 // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 19877 reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; 19878 19879 // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 19880 // Some styles come back with percentage values, even though they shouldn't 19881 div.style.right = "60%"; 19882 pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; 19883 19884 // Support: IE 9 - 11 only 19885 // Detect misreporting of content dimensions for box-sizing:border-box elements 19886 boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; 19887 19888 // Support: IE 9 only 19889 // Detect overflow:scroll screwiness (gh-3699) 19890 // Support: Chrome <=64 19891 // Don't get tricked when zoom affects offsetWidth (gh-4029) 19892 div.style.position = "absolute"; 19893 scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; 19894 19895 documentElement.removeChild( container ); 19896 19897 // Nullify the div so it wouldn't be stored in the memory and 19898 // it will also be a sign that checks already performed 19899 div = null; 19900 } 19901 19902 function roundPixelMeasures( measure ) { 19903 return Math.round( parseFloat( measure ) ); 19904 } 19905 19906 var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, 19907 reliableTrDimensionsVal, reliableMarginLeftVal, 19908 container = document.createElement( "div" ), 19909 div = document.createElement( "div" ); 19910 19911 // Finish early in limited (non-browser) environments 19912 if ( !div.style ) { 19913 return; 19914 } 19915 19916 // Support: IE <=9 - 11 only 19917 // Style of cloned element affects source element cloned (#8908) 19918 div.style.backgroundClip = "content-box"; 19919 div.cloneNode( true ).style.backgroundClip = ""; 19920 support.clearCloneStyle = div.style.backgroundClip === "content-box"; 19921 19922 jQuery.extend( support, { 19923 boxSizingReliable: function() { 19924 computeStyleTests(); 19925 return boxSizingReliableVal; 19926 }, 19927 pixelBoxStyles: function() { 19928 computeStyleTests(); 19929 return pixelBoxStylesVal; 19930 }, 19931 pixelPosition: function() { 19932 computeStyleTests(); 19933 return pixelPositionVal; 19934 }, 19935 reliableMarginLeft: function() { 19936 computeStyleTests(); 19937 return reliableMarginLeftVal; 19938 }, 19939 scrollboxSize: function() { 19940 computeStyleTests(); 19941 return scrollboxSizeVal; 19942 }, 19943 19944 // Support: IE 9 - 11+, Edge 15 - 18+ 19945 // IE/Edge misreport `getComputedStyle` of table rows with width/height 19946 // set in CSS while `offset*` properties report correct values. 19947 // Behavior in IE 9 is more subtle than in newer versions & it passes 19948 // some versions of this test; make sure not to make it pass there! 19949 // 19950 // Support: Firefox 70+ 19951 // Only Firefox includes border widths 19952 // in computed dimensions. (gh-4529) 19953 reliableTrDimensions: function() { 19954 var table, tr, trChild, trStyle; 19955 if ( reliableTrDimensionsVal == null ) { 19956 table = document.createElement( "table" ); 19957 tr = document.createElement( "tr" ); 19958 trChild = document.createElement( "div" ); 19959 19960 table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; 19961 tr.style.cssText = "border:1px solid"; 19962 19963 // Support: Chrome 86+ 19964 // Height set through cssText does not get applied. 19965 // Computed height then comes back as 0. 19966 tr.style.height = "1px"; 19967 trChild.style.height = "9px"; 19968 19969 // Support: Android 8 Chrome 86+ 19970 // In our bodyBackground.html iframe, 19971 // display for all div elements is set to "inline", 19972 // which causes a problem only in Android 8 Chrome 86. 19973 // Ensuring the div is display: block 19974 // gets around this issue. 19975 trChild.style.display = "block"; 19976 19977 documentElement 19978 .appendChild( table ) 19979 .appendChild( tr ) 19980 .appendChild( trChild ); 19981 19982 trStyle = window.getComputedStyle( tr ); 19983 reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + 19984 parseInt( trStyle.borderTopWidth, 10 ) + 19985 parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; 19986 19987 documentElement.removeChild( table ); 19988 } 19989 return reliableTrDimensionsVal; 19990 } 19991 } ); 19992} )(); 19993 19994 19995function curCSS( elem, name, computed ) { 19996 var width, minWidth, maxWidth, ret, 19997 19998 // Support: Firefox 51+ 19999 // Retrieving style before computed somehow 20000 // fixes an issue with getting wrong values 20001 // on detached elements 20002 style = elem.style; 20003 20004 computed = computed || getStyles( elem ); 20005 20006 // getPropertyValue is needed for: 20007 // .css('filter') (IE 9 only, #12537) 20008 // .css('--customProperty) (#3144) 20009 if ( computed ) { 20010 ret = computed.getPropertyValue( name ) || computed[ name ]; 20011 20012 if ( ret === "" && !isAttached( elem ) ) { 20013 ret = jQuery.style( elem, name ); 20014 } 20015 20016 // A tribute to the "awesome hack by Dean Edwards" 20017 // Android Browser returns percentage for some values, 20018 // but width seems to be reliably pixels. 20019 // This is against the CSSOM draft spec: 20020 // https://drafts.csswg.org/cssom/#resolved-values 20021 if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { 20022 20023 // Remember the original values 20024 width = style.width; 20025 minWidth = style.minWidth; 20026 maxWidth = style.maxWidth; 20027 20028 // Put in the new values to get a computed value out 20029 style.minWidth = style.maxWidth = style.width = ret; 20030 ret = computed.width; 20031 20032 // Revert the changed values 20033 style.width = width; 20034 style.minWidth = minWidth; 20035 style.maxWidth = maxWidth; 20036 } 20037 } 20038 20039 return ret !== undefined ? 20040 20041 // Support: IE <=9 - 11 only 20042 // IE returns zIndex value as an integer. 20043 ret + "" : 20044 ret; 20045} 20046 20047 20048function addGetHookIf( conditionFn, hookFn ) { 20049 20050 // Define the hook, we'll check on the first run if it's really needed. 20051 return { 20052 get: function() { 20053 if ( conditionFn() ) { 20054 20055 // Hook not needed (or it's not possible to use it due 20056 // to missing dependency), remove it. 20057 delete this.get; 20058 return; 20059 } 20060 20061 // Hook needed; redefine it so that the support test is not executed again. 20062 return ( this.get = hookFn ).apply( this, arguments ); 20063 } 20064 }; 20065} 20066 20067 20068var cssPrefixes = [ "Webkit", "Moz", "ms" ], 20069 emptyStyle = document.createElement( "div" ).style, 20070 vendorProps = {}; 20071 20072// Return a vendor-prefixed property or undefined 20073function vendorPropName( name ) { 20074 20075 // Check for vendor prefixed names 20076 var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), 20077 i = cssPrefixes.length; 20078 20079 while ( i-- ) { 20080 name = cssPrefixes[ i ] + capName; 20081 if ( name in emptyStyle ) { 20082 return name; 20083 } 20084 } 20085} 20086 20087// Return a potentially-mapped jQuery.cssProps or vendor prefixed property 20088function finalPropName( name ) { 20089 var final = jQuery.cssProps[ name ] || vendorProps[ name ]; 20090 20091 if ( final ) { 20092 return final; 20093 } 20094 if ( name in emptyStyle ) { 20095 return name; 20096 } 20097 return vendorProps[ name ] = vendorPropName( name ) || name; 20098} 20099 20100 20101var 20102 20103 // Swappable if display is none or starts with table 20104 // except "table", "table-cell", or "table-caption" 20105 // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display 20106 rdisplayswap = /^(none|table(?!-c[ea]).+)/, 20107 rcustomProp = /^--/, 20108 cssShow = { position: "absolute", visibility: "hidden", display: "block" }, 20109 cssNormalTransform = { 20110 letterSpacing: "0", 20111 fontWeight: "400" 20112 }; 20113 20114function setPositiveNumber( _elem, value, subtract ) { 20115 20116 // Any relative (+/-) values have already been 20117 // normalized at this point 20118 var matches = rcssNum.exec( value ); 20119 return matches ? 20120 20121 // Guard against undefined "subtract", e.g., when used as in cssHooks 20122 Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : 20123 value; 20124} 20125 20126function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { 20127 var i = dimension === "width" ? 1 : 0, 20128 extra = 0, 20129 delta = 0; 20130 20131 // Adjustment may not be necessary 20132 if ( box === ( isBorderBox ? "border" : "content" ) ) { 20133 return 0; 20134 } 20135 20136 for ( ; i < 4; i += 2 ) { 20137 20138 // Both box models exclude margin 20139 if ( box === "margin" ) { 20140 delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); 20141 } 20142 20143 // If we get here with a content-box, we're seeking "padding" or "border" or "margin" 20144 if ( !isBorderBox ) { 20145 20146 // Add padding 20147 delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); 20148 20149 // For "border" or "margin", add border 20150 if ( box !== "padding" ) { 20151 delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 20152 20153 // But still keep track of it otherwise 20154 } else { 20155 extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 20156 } 20157 20158 // If we get here with a border-box (content + padding + border), we're seeking "content" or 20159 // "padding" or "margin" 20160 } else { 20161 20162 // For "content", subtract padding 20163 if ( box === "content" ) { 20164 delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); 20165 } 20166 20167 // For "content" or "padding", subtract border 20168 if ( box !== "margin" ) { 20169 delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 20170 } 20171 } 20172 } 20173 20174 // Account for positive content-box scroll gutter when requested by providing computedVal 20175 if ( !isBorderBox && computedVal >= 0 ) { 20176 20177 // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border 20178 // Assuming integer scroll gutter, subtract the rest and round down 20179 delta += Math.max( 0, Math.ceil( 20180 elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - 20181 computedVal - 20182 delta - 20183 extra - 20184 0.5 20185 20186 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter 20187 // Use an explicit zero to avoid NaN (gh-3964) 20188 ) ) || 0; 20189 } 20190 20191 return delta; 20192} 20193 20194function getWidthOrHeight( elem, dimension, extra ) { 20195 20196 // Start with computed style 20197 var styles = getStyles( elem ), 20198 20199 // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). 20200 // Fake content-box until we know it's needed to know the true value. 20201 boxSizingNeeded = !support.boxSizingReliable() || extra, 20202 isBorderBox = boxSizingNeeded && 20203 jQuery.css( elem, "boxSizing", false, styles ) === "border-box", 20204 valueIsBorderBox = isBorderBox, 20205 20206 val = curCSS( elem, dimension, styles ), 20207 offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); 20208 20209 // Support: Firefox <=54 20210 // Return a confounding non-pixel value or feign ignorance, as appropriate. 20211 if ( rnumnonpx.test( val ) ) { 20212 if ( !extra ) { 20213 return val; 20214 } 20215 val = "auto"; 20216 } 20217 20218 20219 // Support: IE 9 - 11 only 20220 // Use offsetWidth/offsetHeight for when box sizing is unreliable. 20221 // In those cases, the computed value can be trusted to be border-box. 20222 if ( ( !support.boxSizingReliable() && isBorderBox || 20223 20224 // Support: IE 10 - 11+, Edge 15 - 18+ 20225 // IE/Edge misreport `getComputedStyle` of table rows with width/height 20226 // set in CSS while `offset*` properties report correct values. 20227 // Interestingly, in some cases IE 9 doesn't suffer from this issue. 20228 !support.reliableTrDimensions() && nodeName( elem, "tr" ) || 20229 20230 // Fall back to offsetWidth/offsetHeight when value is "auto" 20231 // This happens for inline elements with no explicit setting (gh-3571) 20232 val === "auto" || 20233 20234 // Support: Android <=4.1 - 4.3 only 20235 // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) 20236 !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && 20237 20238 // Make sure the element is visible & connected 20239 elem.getClientRects().length ) { 20240 20241 isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; 20242 20243 // Where available, offsetWidth/offsetHeight approximate border box dimensions. 20244 // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the 20245 // retrieved value as a content box dimension. 20246 valueIsBorderBox = offsetProp in elem; 20247 if ( valueIsBorderBox ) { 20248 val = elem[ offsetProp ]; 20249 } 20250 } 20251 20252 // Normalize "" and auto 20253 val = parseFloat( val ) || 0; 20254 20255 // Adjust for the element's box model 20256 return ( val + 20257 boxModelAdjustment( 20258 elem, 20259 dimension, 20260 extra || ( isBorderBox ? "border" : "content" ), 20261 valueIsBorderBox, 20262 styles, 20263 20264 // Provide the current computed size to request scroll gutter calculation (gh-3589) 20265 val 20266 ) 20267 ) + "px"; 20268} 20269 20270jQuery.extend( { 20271 20272 // Add in style property hooks for overriding the default 20273 // behavior of getting and setting a style property 20274 cssHooks: { 20275 opacity: { 20276 get: function( elem, computed ) { 20277 if ( computed ) { 20278 20279 // We should always get a number back from opacity 20280 var ret = curCSS( elem, "opacity" ); 20281 return ret === "" ? "1" : ret; 20282 } 20283 } 20284 } 20285 }, 20286 20287 // Don't automatically add "px" to these possibly-unitless properties 20288 cssNumber: { 20289 "animationIterationCount": true, 20290 "columnCount": true, 20291 "fillOpacity": true, 20292 "flexGrow": true, 20293 "flexShrink": true, 20294 "fontWeight": true, 20295 "gridArea": true, 20296 "gridColumn": true, 20297 "gridColumnEnd": true, 20298 "gridColumnStart": true, 20299 "gridRow": true, 20300 "gridRowEnd": true, 20301 "gridRowStart": true, 20302 "lineHeight": true, 20303 "opacity": true, 20304 "order": true, 20305 "orphans": true, 20306 "widows": true, 20307 "zIndex": true, 20308 "zoom": true 20309 }, 20310 20311 // Add in properties whose names you wish to fix before 20312 // setting or getting the value 20313 cssProps: {}, 20314 20315 // Get and set the style property on a DOM Node 20316 style: function( elem, name, value, extra ) { 20317 20318 // Don't set styles on text and comment nodes 20319 if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { 20320 return; 20321 } 20322 20323 // Make sure that we're working with the right name 20324 var ret, type, hooks, 20325 origName = camelCase( name ), 20326 isCustomProp = rcustomProp.test( name ), 20327 style = elem.style; 20328 20329 // Make sure that we're working with the right name. We don't 20330 // want to query the value if it is a CSS custom property 20331 // since they are user-defined. 20332 if ( !isCustomProp ) { 20333 name = finalPropName( origName ); 20334 } 20335 20336 // Gets hook for the prefixed version, then unprefixed version 20337 hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; 20338 20339 // Check if we're setting a value 20340 if ( value !== undefined ) { 20341 type = typeof value; 20342 20343 // Convert "+=" or "-=" to relative numbers (#7345) 20344 if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { 20345 value = adjustCSS( elem, name, ret ); 20346 20347 // Fixes bug #9237 20348 type = "number"; 20349 } 20350 20351 // Make sure that null and NaN values aren't set (#7116) 20352 if ( value == null || value !== value ) { 20353 return; 20354 } 20355 20356 // If a number was passed in, add the unit (except for certain CSS properties) 20357 // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append 20358 // "px" to a few hardcoded values. 20359 if ( type === "number" && !isCustomProp ) { 20360 value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); 20361 } 20362 20363 // background-* props affect original clone's values 20364 if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { 20365 style[ name ] = "inherit"; 20366 } 20367 20368 // If a hook was provided, use that value, otherwise just set the specified value 20369 if ( !hooks || !( "set" in hooks ) || 20370 ( value = hooks.set( elem, value, extra ) ) !== undefined ) { 20371 20372 if ( isCustomProp ) { 20373 style.setProperty( name, value ); 20374 } else { 20375 style[ name ] = value; 20376 } 20377 } 20378 20379 } else { 20380 20381 // If a hook was provided get the non-computed value from there 20382 if ( hooks && "get" in hooks && 20383 ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { 20384 20385 return ret; 20386 } 20387 20388 // Otherwise just get the value from the style object 20389 return style[ name ]; 20390 } 20391 }, 20392 20393 css: function( elem, name, extra, styles ) { 20394 var val, num, hooks, 20395 origName = camelCase( name ), 20396 isCustomProp = rcustomProp.test( name ); 20397 20398 // Make sure that we're working with the right name. We don't 20399 // want to modify the value if it is a CSS custom property 20400 // since they are user-defined. 20401 if ( !isCustomProp ) { 20402 name = finalPropName( origName ); 20403 } 20404 20405 // Try prefixed name followed by the unprefixed name 20406 hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; 20407 20408 // If a hook was provided get the computed value from there 20409 if ( hooks && "get" in hooks ) { 20410 val = hooks.get( elem, true, extra ); 20411 } 20412 20413 // Otherwise, if a way to get the computed value exists, use that 20414 if ( val === undefined ) { 20415 val = curCSS( elem, name, styles ); 20416 } 20417 20418 // Convert "normal" to computed value 20419 if ( val === "normal" && name in cssNormalTransform ) { 20420 val = cssNormalTransform[ name ]; 20421 } 20422 20423 // Make numeric if forced or a qualifier was provided and val looks numeric 20424 if ( extra === "" || extra ) { 20425 num = parseFloat( val ); 20426 return extra === true || isFinite( num ) ? num || 0 : val; 20427 } 20428 20429 return val; 20430 } 20431} ); 20432 20433jQuery.each( [ "height", "width" ], function( _i, dimension ) { 20434 jQuery.cssHooks[ dimension ] = { 20435 get: function( elem, computed, extra ) { 20436 if ( computed ) { 20437 20438 // Certain elements can have dimension info if we invisibly show them 20439 // but it must have a current display style that would benefit 20440 return rdisplayswap.test( jQuery.css( elem, "display" ) ) && 20441 20442 // Support: Safari 8+ 20443 // Table columns in Safari have non-zero offsetWidth & zero 20444 // getBoundingClientRect().width unless display is changed. 20445 // Support: IE <=11 only 20446 // Running getBoundingClientRect on a disconnected node 20447 // in IE throws an error. 20448 ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? 20449 swap( elem, cssShow, function() { 20450 return getWidthOrHeight( elem, dimension, extra ); 20451 } ) : 20452 getWidthOrHeight( elem, dimension, extra ); 20453 } 20454 }, 20455 20456 set: function( elem, value, extra ) { 20457 var matches, 20458 styles = getStyles( elem ), 20459 20460 // Only read styles.position if the test has a chance to fail 20461 // to avoid forcing a reflow. 20462 scrollboxSizeBuggy = !support.scrollboxSize() && 20463 styles.position === "absolute", 20464 20465 // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) 20466 boxSizingNeeded = scrollboxSizeBuggy || extra, 20467 isBorderBox = boxSizingNeeded && 20468 jQuery.css( elem, "boxSizing", false, styles ) === "border-box", 20469 subtract = extra ? 20470 boxModelAdjustment( 20471 elem, 20472 dimension, 20473 extra, 20474 isBorderBox, 20475 styles 20476 ) : 20477 0; 20478 20479 // Account for unreliable border-box dimensions by comparing offset* to computed and 20480 // faking a content-box to get border and padding (gh-3699) 20481 if ( isBorderBox && scrollboxSizeBuggy ) { 20482 subtract -= Math.ceil( 20483 elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - 20484 parseFloat( styles[ dimension ] ) - 20485 boxModelAdjustment( elem, dimension, "border", false, styles ) - 20486 0.5 20487 ); 20488 } 20489 20490 // Convert to pixels if value adjustment is needed 20491 if ( subtract && ( matches = rcssNum.exec( value ) ) && 20492 ( matches[ 3 ] || "px" ) !== "px" ) { 20493 20494 elem.style[ dimension ] = value; 20495 value = jQuery.css( elem, dimension ); 20496 } 20497 20498 return setPositiveNumber( elem, value, subtract ); 20499 } 20500 }; 20501} ); 20502 20503jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, 20504 function( elem, computed ) { 20505 if ( computed ) { 20506 return ( parseFloat( curCSS( elem, "marginLeft" ) ) || 20507 elem.getBoundingClientRect().left - 20508 swap( elem, { marginLeft: 0 }, function() { 20509 return elem.getBoundingClientRect().left; 20510 } ) 20511 ) + "px"; 20512 } 20513 } 20514); 20515 20516// These hooks are used by animate to expand properties 20517jQuery.each( { 20518 margin: "", 20519 padding: "", 20520 border: "Width" 20521}, function( prefix, suffix ) { 20522 jQuery.cssHooks[ prefix + suffix ] = { 20523 expand: function( value ) { 20524 var i = 0, 20525 expanded = {}, 20526 20527 // Assumes a single number if not a string 20528 parts = typeof value === "string" ? value.split( " " ) : [ value ]; 20529 20530 for ( ; i < 4; i++ ) { 20531 expanded[ prefix + cssExpand[ i ] + suffix ] = 20532 parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; 20533 } 20534 20535 return expanded; 20536 } 20537 }; 20538 20539 if ( prefix !== "margin" ) { 20540 jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; 20541 } 20542} ); 20543 20544jQuery.fn.extend( { 20545 css: function( name, value ) { 20546 return access( this, function( elem, name, value ) { 20547 var styles, len, 20548 map = {}, 20549 i = 0; 20550 20551 if ( Array.isArray( name ) ) { 20552 styles = getStyles( elem ); 20553 len = name.length; 20554 20555 for ( ; i < len; i++ ) { 20556 map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); 20557 } 20558 20559 return map; 20560 } 20561 20562 return value !== undefined ? 20563 jQuery.style( elem, name, value ) : 20564 jQuery.css( elem, name ); 20565 }, name, value, arguments.length > 1 ); 20566 } 20567} ); 20568 20569 20570function Tween( elem, options, prop, end, easing ) { 20571 return new Tween.prototype.init( elem, options, prop, end, easing ); 20572} 20573jQuery.Tween = Tween; 20574 20575Tween.prototype = { 20576 constructor: Tween, 20577 init: function( elem, options, prop, end, easing, unit ) { 20578 this.elem = elem; 20579 this.prop = prop; 20580 this.easing = easing || jQuery.easing._default; 20581 this.options = options; 20582 this.start = this.now = this.cur(); 20583 this.end = end; 20584 this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); 20585 }, 20586 cur: function() { 20587 var hooks = Tween.propHooks[ this.prop ]; 20588 20589 return hooks && hooks.get ? 20590 hooks.get( this ) : 20591 Tween.propHooks._default.get( this ); 20592 }, 20593 run: function( percent ) { 20594 var eased, 20595 hooks = Tween.propHooks[ this.prop ]; 20596 20597 if ( this.options.duration ) { 20598 this.pos = eased = jQuery.easing[ this.easing ]( 20599 percent, this.options.duration * percent, 0, 1, this.options.duration 20600 ); 20601 } else { 20602 this.pos = eased = percent; 20603 } 20604 this.now = ( this.end - this.start ) * eased + this.start; 20605 20606 if ( this.options.step ) { 20607 this.options.step.call( this.elem, this.now, this ); 20608 } 20609 20610 if ( hooks && hooks.set ) { 20611 hooks.set( this ); 20612 } else { 20613 Tween.propHooks._default.set( this ); 20614 } 20615 return this; 20616 } 20617}; 20618 20619Tween.prototype.init.prototype = Tween.prototype; 20620 20621Tween.propHooks = { 20622 _default: { 20623 get: function( tween ) { 20624 var result; 20625 20626 // Use a property on the element directly when it is not a DOM element, 20627 // or when there is no matching style property that exists. 20628 if ( tween.elem.nodeType !== 1 || 20629 tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { 20630 return tween.elem[ tween.prop ]; 20631 } 20632 20633 // Passing an empty string as a 3rd parameter to .css will automatically 20634 // attempt a parseFloat and fallback to a string if the parse fails. 20635 // Simple values such as "10px" are parsed to Float; 20636 // complex values such as "rotate(1rad)" are returned as-is. 20637 result = jQuery.css( tween.elem, tween.prop, "" ); 20638 20639 // Empty strings, null, undefined and "auto" are converted to 0. 20640 return !result || result === "auto" ? 0 : result; 20641 }, 20642 set: function( tween ) { 20643 20644 // Use step hook for back compat. 20645 // Use cssHook if its there. 20646 // Use .style if available and use plain properties where available. 20647 if ( jQuery.fx.step[ tween.prop ] ) { 20648 jQuery.fx.step[ tween.prop ]( tween ); 20649 } else if ( tween.elem.nodeType === 1 && ( 20650 jQuery.cssHooks[ tween.prop ] || 20651 tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { 20652 jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); 20653 } else { 20654 tween.elem[ tween.prop ] = tween.now; 20655 } 20656 } 20657 } 20658}; 20659 20660// Support: IE <=9 only 20661// Panic based approach to setting things on disconnected nodes 20662Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { 20663 set: function( tween ) { 20664 if ( tween.elem.nodeType && tween.elem.parentNode ) { 20665 tween.elem[ tween.prop ] = tween.now; 20666 } 20667 } 20668}; 20669 20670jQuery.easing = { 20671 linear: function( p ) { 20672 return p; 20673 }, 20674 swing: function( p ) { 20675 return 0.5 - Math.cos( p * Math.PI ) / 2; 20676 }, 20677 _default: "swing" 20678}; 20679 20680jQuery.fx = Tween.prototype.init; 20681 20682// Back compat <1.8 extension point 20683jQuery.fx.step = {}; 20684 20685 20686 20687 20688var 20689 fxNow, inProgress, 20690 rfxtypes = /^(?:toggle|show|hide)$/, 20691 rrun = /queueHooks$/; 20692 20693function schedule() { 20694 if ( inProgress ) { 20695 if ( document.hidden === false && window.requestAnimationFrame ) { 20696 window.requestAnimationFrame( schedule ); 20697 } else { 20698 window.setTimeout( schedule, jQuery.fx.interval ); 20699 } 20700 20701 jQuery.fx.tick(); 20702 } 20703} 20704 20705// Animations created synchronously will run synchronously 20706function createFxNow() { 20707 window.setTimeout( function() { 20708 fxNow = undefined; 20709 } ); 20710 return ( fxNow = Date.now() ); 20711} 20712 20713// Generate parameters to create a standard animation 20714function genFx( type, includeWidth ) { 20715 var which, 20716 i = 0, 20717 attrs = { height: type }; 20718 20719 // If we include width, step value is 1 to do all cssExpand values, 20720 // otherwise step value is 2 to skip over Left and Right 20721 includeWidth = includeWidth ? 1 : 0; 20722 for ( ; i < 4; i += 2 - includeWidth ) { 20723 which = cssExpand[ i ]; 20724 attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; 20725 } 20726 20727 if ( includeWidth ) { 20728 attrs.opacity = attrs.width = type; 20729 } 20730 20731 return attrs; 20732} 20733 20734function createTween( value, prop, animation ) { 20735 var tween, 20736 collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), 20737 index = 0, 20738 length = collection.length; 20739 for ( ; index < length; index++ ) { 20740 if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { 20741 20742 // We're done with this property 20743 return tween; 20744 } 20745 } 20746} 20747 20748function defaultPrefilter( elem, props, opts ) { 20749 var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, 20750 isBox = "width" in props || "height" in props, 20751 anim = this, 20752 orig = {}, 20753 style = elem.style, 20754 hidden = elem.nodeType && isHiddenWithinTree( elem ), 20755 dataShow = dataPriv.get( elem, "fxshow" ); 20756 20757 // Queue-skipping animations hijack the fx hooks 20758 if ( !opts.queue ) { 20759 hooks = jQuery._queueHooks( elem, "fx" ); 20760 if ( hooks.unqueued == null ) { 20761 hooks.unqueued = 0; 20762 oldfire = hooks.empty.fire; 20763 hooks.empty.fire = function() { 20764 if ( !hooks.unqueued ) { 20765 oldfire(); 20766 } 20767 }; 20768 } 20769 hooks.unqueued++; 20770 20771 anim.always( function() { 20772 20773 // Ensure the complete handler is called before this completes 20774 anim.always( function() { 20775 hooks.unqueued--; 20776 if ( !jQuery.queue( elem, "fx" ).length ) { 20777 hooks.empty.fire(); 20778 } 20779 } ); 20780 } ); 20781 } 20782 20783 // Detect show/hide animations 20784 for ( prop in props ) { 20785 value = props[ prop ]; 20786 if ( rfxtypes.test( value ) ) { 20787 delete props[ prop ]; 20788 toggle = toggle || value === "toggle"; 20789 if ( value === ( hidden ? "hide" : "show" ) ) { 20790 20791 // Pretend to be hidden if this is a "show" and 20792 // there is still data from a stopped show/hide 20793 if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { 20794 hidden = true; 20795 20796 // Ignore all other no-op show/hide data 20797 } else { 20798 continue; 20799 } 20800 } 20801 orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); 20802 } 20803 } 20804 20805 // Bail out if this is a no-op like .hide().hide() 20806 propTween = !jQuery.isEmptyObject( props ); 20807 if ( !propTween && jQuery.isEmptyObject( orig ) ) { 20808 return; 20809 } 20810 20811 // Restrict "overflow" and "display" styles during box animations 20812 if ( isBox && elem.nodeType === 1 ) { 20813 20814 // Support: IE <=9 - 11, Edge 12 - 15 20815 // Record all 3 overflow attributes because IE does not infer the shorthand 20816 // from identically-valued overflowX and overflowY and Edge just mirrors 20817 // the overflowX value there. 20818 opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; 20819 20820 // Identify a display type, preferring old show/hide data over the CSS cascade 20821 restoreDisplay = dataShow && dataShow.display; 20822 if ( restoreDisplay == null ) { 20823 restoreDisplay = dataPriv.get( elem, "display" ); 20824 } 20825 display = jQuery.css( elem, "display" ); 20826 if ( display === "none" ) { 20827 if ( restoreDisplay ) { 20828 display = restoreDisplay; 20829 } else { 20830 20831 // Get nonempty value(s) by temporarily forcing visibility 20832 showHide( [ elem ], true ); 20833 restoreDisplay = elem.style.display || restoreDisplay; 20834 display = jQuery.css( elem, "display" ); 20835 showHide( [ elem ] ); 20836 } 20837 } 20838 20839 // Animate inline elements as inline-block 20840 if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { 20841 if ( jQuery.css( elem, "float" ) === "none" ) { 20842 20843 // Restore the original display value at the end of pure show/hide animations 20844 if ( !propTween ) { 20845 anim.done( function() { 20846 style.display = restoreDisplay; 20847 } ); 20848 if ( restoreDisplay == null ) { 20849 display = style.display; 20850 restoreDisplay = display === "none" ? "" : display; 20851 } 20852 } 20853 style.display = "inline-block"; 20854 } 20855 } 20856 } 20857 20858 if ( opts.overflow ) { 20859 style.overflow = "hidden"; 20860 anim.always( function() { 20861 style.overflow = opts.overflow[ 0 ]; 20862 style.overflowX = opts.overflow[ 1 ]; 20863 style.overflowY = opts.overflow[ 2 ]; 20864 } ); 20865 } 20866 20867 // Implement show/hide animations 20868 propTween = false; 20869 for ( prop in orig ) { 20870 20871 // General show/hide setup for this element animation 20872 if ( !propTween ) { 20873 if ( dataShow ) { 20874 if ( "hidden" in dataShow ) { 20875 hidden = dataShow.hidden; 20876 } 20877 } else { 20878 dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); 20879 } 20880 20881 // Store hidden/visible for toggle so `.stop().toggle()` "reverses" 20882 if ( toggle ) { 20883 dataShow.hidden = !hidden; 20884 } 20885 20886 // Show elements before animating them 20887 if ( hidden ) { 20888 showHide( [ elem ], true ); 20889 } 20890 20891 /* eslint-disable no-loop-func */ 20892 20893 anim.done( function() { 20894 20895 /* eslint-enable no-loop-func */ 20896 20897 // The final step of a "hide" animation is actually hiding the element 20898 if ( !hidden ) { 20899 showHide( [ elem ] ); 20900 } 20901 dataPriv.remove( elem, "fxshow" ); 20902 for ( prop in orig ) { 20903 jQuery.style( elem, prop, orig[ prop ] ); 20904 } 20905 } ); 20906 } 20907 20908 // Per-property setup 20909 propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); 20910 if ( !( prop in dataShow ) ) { 20911 dataShow[ prop ] = propTween.start; 20912 if ( hidden ) { 20913 propTween.end = propTween.start; 20914 propTween.start = 0; 20915 } 20916 } 20917 } 20918} 20919 20920function propFilter( props, specialEasing ) { 20921 var index, name, easing, value, hooks; 20922 20923 // camelCase, specialEasing and expand cssHook pass 20924 for ( index in props ) { 20925 name = camelCase( index ); 20926 easing = specialEasing[ name ]; 20927 value = props[ index ]; 20928 if ( Array.isArray( value ) ) { 20929 easing = value[ 1 ]; 20930 value = props[ index ] = value[ 0 ]; 20931 } 20932 20933 if ( index !== name ) { 20934 props[ name ] = value; 20935 delete props[ index ]; 20936 } 20937 20938 hooks = jQuery.cssHooks[ name ]; 20939 if ( hooks && "expand" in hooks ) { 20940 value = hooks.expand( value ); 20941 delete props[ name ]; 20942 20943 // Not quite $.extend, this won't overwrite existing keys. 20944 // Reusing 'index' because we have the correct "name" 20945 for ( index in value ) { 20946 if ( !( index in props ) ) { 20947 props[ index ] = value[ index ]; 20948 specialEasing[ index ] = easing; 20949 } 20950 } 20951 } else { 20952 specialEasing[ name ] = easing; 20953 } 20954 } 20955} 20956 20957function Animation( elem, properties, options ) { 20958 var result, 20959 stopped, 20960 index = 0, 20961 length = Animation.prefilters.length, 20962 deferred = jQuery.Deferred().always( function() { 20963 20964 // Don't match elem in the :animated selector 20965 delete tick.elem; 20966 } ), 20967 tick = function() { 20968 if ( stopped ) { 20969 return false; 20970 } 20971 var currentTime = fxNow || createFxNow(), 20972 remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), 20973 20974 // Support: Android 2.3 only 20975 // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) 20976 temp = remaining / animation.duration || 0, 20977 percent = 1 - temp, 20978 index = 0, 20979 length = animation.tweens.length; 20980 20981 for ( ; index < length; index++ ) { 20982 animation.tweens[ index ].run( percent ); 20983 } 20984 20985 deferred.notifyWith( elem, [ animation, percent, remaining ] ); 20986 20987 // If there's more to do, yield 20988 if ( percent < 1 && length ) { 20989 return remaining; 20990 } 20991 20992 // If this was an empty animation, synthesize a final progress notification 20993 if ( !length ) { 20994 deferred.notifyWith( elem, [ animation, 1, 0 ] ); 20995 } 20996 20997 // Resolve the animation and report its conclusion 20998 deferred.resolveWith( elem, [ animation ] ); 20999 return false; 21000 }, 21001 animation = deferred.promise( { 21002 elem: elem, 21003 props: jQuery.extend( {}, properties ), 21004 opts: jQuery.extend( true, { 21005 specialEasing: {}, 21006 easing: jQuery.easing._default 21007 }, options ), 21008 originalProperties: properties, 21009 originalOptions: options, 21010 startTime: fxNow || createFxNow(), 21011 duration: options.duration, 21012 tweens: [], 21013 createTween: function( prop, end ) { 21014 var tween = jQuery.Tween( elem, animation.opts, prop, end, 21015 animation.opts.specialEasing[ prop ] || animation.opts.easing ); 21016 animation.tweens.push( tween ); 21017 return tween; 21018 }, 21019 stop: function( gotoEnd ) { 21020 var index = 0, 21021 21022 // If we are going to the end, we want to run all the tweens 21023 // otherwise we skip this part 21024 length = gotoEnd ? animation.tweens.length : 0; 21025 if ( stopped ) { 21026 return this; 21027 } 21028 stopped = true; 21029 for ( ; index < length; index++ ) { 21030 animation.tweens[ index ].run( 1 ); 21031 } 21032 21033 // Resolve when we played the last frame; otherwise, reject 21034 if ( gotoEnd ) { 21035 deferred.notifyWith( elem, [ animation, 1, 0 ] ); 21036 deferred.resolveWith( elem, [ animation, gotoEnd ] ); 21037 } else { 21038 deferred.rejectWith( elem, [ animation, gotoEnd ] ); 21039 } 21040 return this; 21041 } 21042 } ), 21043 props = animation.props; 21044 21045 propFilter( props, animation.opts.specialEasing ); 21046 21047 for ( ; index < length; index++ ) { 21048 result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); 21049 if ( result ) { 21050 if ( isFunction( result.stop ) ) { 21051 jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = 21052 result.stop.bind( result ); 21053 } 21054 return result; 21055 } 21056 } 21057 21058 jQuery.map( props, createTween, animation ); 21059 21060 if ( isFunction( animation.opts.start ) ) { 21061 animation.opts.start.call( elem, animation ); 21062 } 21063 21064 // Attach callbacks from options 21065 animation 21066 .progress( animation.opts.progress ) 21067 .done( animation.opts.done, animation.opts.complete ) 21068 .fail( animation.opts.fail ) 21069 .always( animation.opts.always ); 21070 21071 jQuery.fx.timer( 21072 jQuery.extend( tick, { 21073 elem: elem, 21074 anim: animation, 21075 queue: animation.opts.queue 21076 } ) 21077 ); 21078 21079 return animation; 21080} 21081 21082jQuery.Animation = jQuery.extend( Animation, { 21083 21084 tweeners: { 21085 "*": [ function( prop, value ) { 21086 var tween = this.createTween( prop, value ); 21087 adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); 21088 return tween; 21089 } ] 21090 }, 21091 21092 tweener: function( props, callback ) { 21093 if ( isFunction( props ) ) { 21094 callback = props; 21095 props = [ "*" ]; 21096 } else { 21097 props = props.match( rnothtmlwhite ); 21098 } 21099 21100 var prop, 21101 index = 0, 21102 length = props.length; 21103 21104 for ( ; index < length; index++ ) { 21105 prop = props[ index ]; 21106 Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; 21107 Animation.tweeners[ prop ].unshift( callback ); 21108 } 21109 }, 21110 21111 prefilters: [ defaultPrefilter ], 21112 21113 prefilter: function( callback, prepend ) { 21114 if ( prepend ) { 21115 Animation.prefilters.unshift( callback ); 21116 } else { 21117 Animation.prefilters.push( callback ); 21118 } 21119 } 21120} ); 21121 21122jQuery.speed = function( speed, easing, fn ) { 21123 var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { 21124 complete: fn || !fn && easing || 21125 isFunction( speed ) && speed, 21126 duration: speed, 21127 easing: fn && easing || easing && !isFunction( easing ) && easing 21128 }; 21129 21130 // Go to the end state if fx are off 21131 if ( jQuery.fx.off ) { 21132 opt.duration = 0; 21133 21134 } else { 21135 if ( typeof opt.duration !== "number" ) { 21136 if ( opt.duration in jQuery.fx.speeds ) { 21137 opt.duration = jQuery.fx.speeds[ opt.duration ]; 21138 21139 } else { 21140 opt.duration = jQuery.fx.speeds._default; 21141 } 21142 } 21143 } 21144 21145 // Normalize opt.queue - true/undefined/null -> "fx" 21146 if ( opt.queue == null || opt.queue === true ) { 21147 opt.queue = "fx"; 21148 } 21149 21150 // Queueing 21151 opt.old = opt.complete; 21152 21153 opt.complete = function() { 21154 if ( isFunction( opt.old ) ) { 21155 opt.old.call( this ); 21156 } 21157 21158 if ( opt.queue ) { 21159 jQuery.dequeue( this, opt.queue ); 21160 } 21161 }; 21162 21163 return opt; 21164}; 21165 21166jQuery.fn.extend( { 21167 fadeTo: function( speed, to, easing, callback ) { 21168 21169 // Show any hidden elements after setting opacity to 0 21170 return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() 21171 21172 // Animate to the value specified 21173 .end().animate( { opacity: to }, speed, easing, callback ); 21174 }, 21175 animate: function( prop, speed, easing, callback ) { 21176 var empty = jQuery.isEmptyObject( prop ), 21177 optall = jQuery.speed( speed, easing, callback ), 21178 doAnimation = function() { 21179 21180 // Operate on a copy of prop so per-property easing won't be lost 21181 var anim = Animation( this, jQuery.extend( {}, prop ), optall ); 21182 21183 // Empty animations, or finishing resolves immediately 21184 if ( empty || dataPriv.get( this, "finish" ) ) { 21185 anim.stop( true ); 21186 } 21187 }; 21188 21189 doAnimation.finish = doAnimation; 21190 21191 return empty || optall.queue === false ? 21192 this.each( doAnimation ) : 21193 this.queue( optall.queue, doAnimation ); 21194 }, 21195 stop: function( type, clearQueue, gotoEnd ) { 21196 var stopQueue = function( hooks ) { 21197 var stop = hooks.stop; 21198 delete hooks.stop; 21199 stop( gotoEnd ); 21200 }; 21201 21202 if ( typeof type !== "string" ) { 21203 gotoEnd = clearQueue; 21204 clearQueue = type; 21205 type = undefined; 21206 } 21207 if ( clearQueue ) { 21208 this.queue( type || "fx", [] ); 21209 } 21210 21211 return this.each( function() { 21212 var dequeue = true, 21213 index = type != null && type + "queueHooks", 21214 timers = jQuery.timers, 21215 data = dataPriv.get( this ); 21216 21217 if ( index ) { 21218 if ( data[ index ] && data[ index ].stop ) { 21219 stopQueue( data[ index ] ); 21220 } 21221 } else { 21222 for ( index in data ) { 21223 if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { 21224 stopQueue( data[ index ] ); 21225 } 21226 } 21227 } 21228 21229 for ( index = timers.length; index--; ) { 21230 if ( timers[ index ].elem === this && 21231 ( type == null || timers[ index ].queue === type ) ) { 21232 21233 timers[ index ].anim.stop( gotoEnd ); 21234 dequeue = false; 21235 timers.splice( index, 1 ); 21236 } 21237 } 21238 21239 // Start the next in the queue if the last step wasn't forced. 21240 // Timers currently will call their complete callbacks, which 21241 // will dequeue but only if they were gotoEnd. 21242 if ( dequeue || !gotoEnd ) { 21243 jQuery.dequeue( this, type ); 21244 } 21245 } ); 21246 }, 21247 finish: function( type ) { 21248 if ( type !== false ) { 21249 type = type || "fx"; 21250 } 21251 return this.each( function() { 21252 var index, 21253 data = dataPriv.get( this ), 21254 queue = data[ type + "queue" ], 21255 hooks = data[ type + "queueHooks" ], 21256 timers = jQuery.timers, 21257 length = queue ? queue.length : 0; 21258 21259 // Enable finishing flag on private data 21260 data.finish = true; 21261 21262 // Empty the queue first 21263 jQuery.queue( this, type, [] ); 21264 21265 if ( hooks && hooks.stop ) { 21266 hooks.stop.call( this, true ); 21267 } 21268 21269 // Look for any active animations, and finish them 21270 for ( index = timers.length; index--; ) { 21271 if ( timers[ index ].elem === this && timers[ index ].queue === type ) { 21272 timers[ index ].anim.stop( true ); 21273 timers.splice( index, 1 ); 21274 } 21275 } 21276 21277 // Look for any animations in the old queue and finish them 21278 for ( index = 0; index < length; index++ ) { 21279 if ( queue[ index ] && queue[ index ].finish ) { 21280 queue[ index ].finish.call( this ); 21281 } 21282 } 21283 21284 // Turn off finishing flag 21285 delete data.finish; 21286 } ); 21287 } 21288} ); 21289 21290jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { 21291 var cssFn = jQuery.fn[ name ]; 21292 jQuery.fn[ name ] = function( speed, easing, callback ) { 21293 return speed == null || typeof speed === "boolean" ? 21294 cssFn.apply( this, arguments ) : 21295 this.animate( genFx( name, true ), speed, easing, callback ); 21296 }; 21297} ); 21298 21299// Generate shortcuts for custom animations 21300jQuery.each( { 21301 slideDown: genFx( "show" ), 21302 slideUp: genFx( "hide" ), 21303 slideToggle: genFx( "toggle" ), 21304 fadeIn: { opacity: "show" }, 21305 fadeOut: { opacity: "hide" }, 21306 fadeToggle: { opacity: "toggle" } 21307}, function( name, props ) { 21308 jQuery.fn[ name ] = function( speed, easing, callback ) { 21309 return this.animate( props, speed, easing, callback ); 21310 }; 21311} ); 21312 21313jQuery.timers = []; 21314jQuery.fx.tick = function() { 21315 var timer, 21316 i = 0, 21317 timers = jQuery.timers; 21318 21319 fxNow = Date.now(); 21320 21321 for ( ; i < timers.length; i++ ) { 21322 timer = timers[ i ]; 21323 21324 // Run the timer and safely remove it when done (allowing for external removal) 21325 if ( !timer() && timers[ i ] === timer ) { 21326 timers.splice( i--, 1 ); 21327 } 21328 } 21329 21330 if ( !timers.length ) { 21331 jQuery.fx.stop(); 21332 } 21333 fxNow = undefined; 21334}; 21335 21336jQuery.fx.timer = function( timer ) { 21337 jQuery.timers.push( timer ); 21338 jQuery.fx.start(); 21339}; 21340 21341jQuery.fx.interval = 13; 21342jQuery.fx.start = function() { 21343 if ( inProgress ) { 21344 return; 21345 } 21346 21347 inProgress = true; 21348 schedule(); 21349}; 21350 21351jQuery.fx.stop = function() { 21352 inProgress = null; 21353}; 21354 21355jQuery.fx.speeds = { 21356 slow: 600, 21357 fast: 200, 21358 21359 // Default speed 21360 _default: 400 21361}; 21362 21363 21364// Based off of the plugin by Clint Helfers, with permission. 21365// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ 21366jQuery.fn.delay = function( time, type ) { 21367 time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 21368 type = type || "fx"; 21369 21370 return this.queue( type, function( next, hooks ) { 21371 var timeout = window.setTimeout( next, time ); 21372 hooks.stop = function() { 21373 window.clearTimeout( timeout ); 21374 }; 21375 } ); 21376}; 21377 21378 21379( function() { 21380 var input = document.createElement( "input" ), 21381 select = document.createElement( "select" ), 21382 opt = select.appendChild( document.createElement( "option" ) ); 21383 21384 input.type = "checkbox"; 21385 21386 // Support: Android <=4.3 only 21387 // Default value for a checkbox should be "on" 21388 support.checkOn = input.value !== ""; 21389 21390 // Support: IE <=11 only 21391 // Must access selectedIndex to make default options select 21392 support.optSelected = opt.selected; 21393 21394 // Support: IE <=11 only 21395 // An input loses its value after becoming a radio 21396 input = document.createElement( "input" ); 21397 input.value = "t"; 21398 input.type = "radio"; 21399 support.radioValue = input.value === "t"; 21400} )(); 21401 21402 21403var boolHook, 21404 attrHandle = jQuery.expr.attrHandle; 21405 21406jQuery.fn.extend( { 21407 attr: function( name, value ) { 21408 return access( this, jQuery.attr, name, value, arguments.length > 1 ); 21409 }, 21410 21411 removeAttr: function( name ) { 21412 return this.each( function() { 21413 jQuery.removeAttr( this, name ); 21414 } ); 21415 } 21416} ); 21417 21418jQuery.extend( { 21419 attr: function( elem, name, value ) { 21420 var ret, hooks, 21421 nType = elem.nodeType; 21422 21423 // Don't get/set attributes on text, comment and attribute nodes 21424 if ( nType === 3 || nType === 8 || nType === 2 ) { 21425 return; 21426 } 21427 21428 // Fallback to prop when attributes are not supported 21429 if ( typeof elem.getAttribute === "undefined" ) { 21430 return jQuery.prop( elem, name, value ); 21431 } 21432 21433 // Attribute hooks are determined by the lowercase version 21434 // Grab necessary hook if one is defined 21435 if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { 21436 hooks = jQuery.attrHooks[ name.toLowerCase() ] || 21437 ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); 21438 } 21439 21440 if ( value !== undefined ) { 21441 if ( value === null ) { 21442 jQuery.removeAttr( elem, name ); 21443 return; 21444 } 21445 21446 if ( hooks && "set" in hooks && 21447 ( ret = hooks.set( elem, value, name ) ) !== undefined ) { 21448 return ret; 21449 } 21450 21451 elem.setAttribute( name, value + "" ); 21452 return value; 21453 } 21454 21455 if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { 21456 return ret; 21457 } 21458 21459 ret = jQuery.find.attr( elem, name ); 21460 21461 // Non-existent attributes return null, we normalize to undefined 21462 return ret == null ? undefined : ret; 21463 }, 21464 21465 attrHooks: { 21466 type: { 21467 set: function( elem, value ) { 21468 if ( !support.radioValue && value === "radio" && 21469 nodeName( elem, "input" ) ) { 21470 var val = elem.value; 21471 elem.setAttribute( "type", value ); 21472 if ( val ) { 21473 elem.value = val; 21474 } 21475 return value; 21476 } 21477 } 21478 } 21479 }, 21480 21481 removeAttr: function( elem, value ) { 21482 var name, 21483 i = 0, 21484 21485 // Attribute names can contain non-HTML whitespace characters 21486 // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 21487 attrNames = value && value.match( rnothtmlwhite ); 21488 21489 if ( attrNames && elem.nodeType === 1 ) { 21490 while ( ( name = attrNames[ i++ ] ) ) { 21491 elem.removeAttribute( name ); 21492 } 21493 } 21494 } 21495} ); 21496 21497// Hooks for boolean attributes 21498boolHook = { 21499 set: function( elem, value, name ) { 21500 if ( value === false ) { 21501 21502 // Remove boolean attributes when set to false 21503 jQuery.removeAttr( elem, name ); 21504 } else { 21505 elem.setAttribute( name, name ); 21506 } 21507 return name; 21508 } 21509}; 21510 21511jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { 21512 var getter = attrHandle[ name ] || jQuery.find.attr; 21513 21514 attrHandle[ name ] = function( elem, name, isXML ) { 21515 var ret, handle, 21516 lowercaseName = name.toLowerCase(); 21517 21518 if ( !isXML ) { 21519 21520 // Avoid an infinite loop by temporarily removing this function from the getter 21521 handle = attrHandle[ lowercaseName ]; 21522 attrHandle[ lowercaseName ] = ret; 21523 ret = getter( elem, name, isXML ) != null ? 21524 lowercaseName : 21525 null; 21526 attrHandle[ lowercaseName ] = handle; 21527 } 21528 return ret; 21529 }; 21530} ); 21531 21532 21533 21534 21535var rfocusable = /^(?:input|select|textarea|button)$/i, 21536 rclickable = /^(?:a|area)$/i; 21537 21538jQuery.fn.extend( { 21539 prop: function( name, value ) { 21540 return access( this, jQuery.prop, name, value, arguments.length > 1 ); 21541 }, 21542 21543 removeProp: function( name ) { 21544 return this.each( function() { 21545 delete this[ jQuery.propFix[ name ] || name ]; 21546 } ); 21547 } 21548} ); 21549 21550jQuery.extend( { 21551 prop: function( elem, name, value ) { 21552 var ret, hooks, 21553 nType = elem.nodeType; 21554 21555 // Don't get/set properties on text, comment and attribute nodes 21556 if ( nType === 3 || nType === 8 || nType === 2 ) { 21557 return; 21558 } 21559 21560 if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { 21561 21562 // Fix name and attach hooks 21563 name = jQuery.propFix[ name ] || name; 21564 hooks = jQuery.propHooks[ name ]; 21565 } 21566 21567 if ( value !== undefined ) { 21568 if ( hooks && "set" in hooks && 21569 ( ret = hooks.set( elem, value, name ) ) !== undefined ) { 21570 return ret; 21571 } 21572 21573 return ( elem[ name ] = value ); 21574 } 21575 21576 if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { 21577 return ret; 21578 } 21579 21580 return elem[ name ]; 21581 }, 21582 21583 propHooks: { 21584 tabIndex: { 21585 get: function( elem ) { 21586 21587 // Support: IE <=9 - 11 only 21588 // elem.tabIndex doesn't always return the 21589 // correct value when it hasn't been explicitly set 21590 // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ 21591 // Use proper attribute retrieval(#12072) 21592 var tabindex = jQuery.find.attr( elem, "tabindex" ); 21593 21594 if ( tabindex ) { 21595 return parseInt( tabindex, 10 ); 21596 } 21597 21598 if ( 21599 rfocusable.test( elem.nodeName ) || 21600 rclickable.test( elem.nodeName ) && 21601 elem.href 21602 ) { 21603 return 0; 21604 } 21605 21606 return -1; 21607 } 21608 } 21609 }, 21610 21611 propFix: { 21612 "for": "htmlFor", 21613 "class": "className" 21614 } 21615} ); 21616 21617// Support: IE <=11 only 21618// Accessing the selectedIndex property 21619// forces the browser to respect setting selected 21620// on the option 21621// The getter ensures a default option is selected 21622// when in an optgroup 21623// eslint rule "no-unused-expressions" is disabled for this code 21624// since it considers such accessions noop 21625if ( !support.optSelected ) { 21626 jQuery.propHooks.selected = { 21627 get: function( elem ) { 21628 21629 /* eslint no-unused-expressions: "off" */ 21630 21631 var parent = elem.parentNode; 21632 if ( parent && parent.parentNode ) { 21633 parent.parentNode.selectedIndex; 21634 } 21635 return null; 21636 }, 21637 set: function( elem ) { 21638 21639 /* eslint no-unused-expressions: "off" */ 21640 21641 var parent = elem.parentNode; 21642 if ( parent ) { 21643 parent.selectedIndex; 21644 21645 if ( parent.parentNode ) { 21646 parent.parentNode.selectedIndex; 21647 } 21648 } 21649 } 21650 }; 21651} 21652 21653jQuery.each( [ 21654 "tabIndex", 21655 "readOnly", 21656 "maxLength", 21657 "cellSpacing", 21658 "cellPadding", 21659 "rowSpan", 21660 "colSpan", 21661 "useMap", 21662 "frameBorder", 21663 "contentEditable" 21664], function() { 21665 jQuery.propFix[ this.toLowerCase() ] = this; 21666} ); 21667 21668 21669 21670 21671 // Strip and collapse whitespace according to HTML spec 21672 // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace 21673 function stripAndCollapse( value ) { 21674 var tokens = value.match( rnothtmlwhite ) || []; 21675 return tokens.join( " " ); 21676 } 21677 21678 21679function getClass( elem ) { 21680 return elem.getAttribute && elem.getAttribute( "class" ) || ""; 21681} 21682 21683function classesToArray( value ) { 21684 if ( Array.isArray( value ) ) { 21685 return value; 21686 } 21687 if ( typeof value === "string" ) { 21688 return value.match( rnothtmlwhite ) || []; 21689 } 21690 return []; 21691} 21692 21693jQuery.fn.extend( { 21694 addClass: function( value ) { 21695 var classes, elem, cur, curValue, clazz, j, finalValue, 21696 i = 0; 21697 21698 if ( isFunction( value ) ) { 21699 return this.each( function( j ) { 21700 jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); 21701 } ); 21702 } 21703 21704 classes = classesToArray( value ); 21705 21706 if ( classes.length ) { 21707 while ( ( elem = this[ i++ ] ) ) { 21708 curValue = getClass( elem ); 21709 cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); 21710 21711 if ( cur ) { 21712 j = 0; 21713 while ( ( clazz = classes[ j++ ] ) ) { 21714 if ( cur.indexOf( " " + clazz + " " ) < 0 ) { 21715 cur += clazz + " "; 21716 } 21717 } 21718 21719 // Only assign if different to avoid unneeded rendering. 21720 finalValue = stripAndCollapse( cur ); 21721 if ( curValue !== finalValue ) { 21722 elem.setAttribute( "class", finalValue ); 21723 } 21724 } 21725 } 21726 } 21727 21728 return this; 21729 }, 21730 21731 removeClass: function( value ) { 21732 var classes, elem, cur, curValue, clazz, j, finalValue, 21733 i = 0; 21734 21735 if ( isFunction( value ) ) { 21736 return this.each( function( j ) { 21737 jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); 21738 } ); 21739 } 21740 21741 if ( !arguments.length ) { 21742 return this.attr( "class", "" ); 21743 } 21744 21745 classes = classesToArray( value ); 21746 21747 if ( classes.length ) { 21748 while ( ( elem = this[ i++ ] ) ) { 21749 curValue = getClass( elem ); 21750 21751 // This expression is here for better compressibility (see addClass) 21752 cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); 21753 21754 if ( cur ) { 21755 j = 0; 21756 while ( ( clazz = classes[ j++ ] ) ) { 21757 21758 // Remove *all* instances 21759 while ( cur.indexOf( " " + clazz + " " ) > -1 ) { 21760 cur = cur.replace( " " + clazz + " ", " " ); 21761 } 21762 } 21763 21764 // Only assign if different to avoid unneeded rendering. 21765 finalValue = stripAndCollapse( cur ); 21766 if ( curValue !== finalValue ) { 21767 elem.setAttribute( "class", finalValue ); 21768 } 21769 } 21770 } 21771 } 21772 21773 return this; 21774 }, 21775 21776 toggleClass: function( value, stateVal ) { 21777 var type = typeof value, 21778 isValidValue = type === "string" || Array.isArray( value ); 21779 21780 if ( typeof stateVal === "boolean" && isValidValue ) { 21781 return stateVal ? this.addClass( value ) : this.removeClass( value ); 21782 } 21783 21784 if ( isFunction( value ) ) { 21785 return this.each( function( i ) { 21786 jQuery( this ).toggleClass( 21787 value.call( this, i, getClass( this ), stateVal ), 21788 stateVal 21789 ); 21790 } ); 21791 } 21792 21793 return this.each( function() { 21794 var className, i, self, classNames; 21795 21796 if ( isValidValue ) { 21797 21798 // Toggle individual class names 21799 i = 0; 21800 self = jQuery( this ); 21801 classNames = classesToArray( value ); 21802 21803 while ( ( className = classNames[ i++ ] ) ) { 21804 21805 // Check each className given, space separated list 21806 if ( self.hasClass( className ) ) { 21807 self.removeClass( className ); 21808 } else { 21809 self.addClass( className ); 21810 } 21811 } 21812 21813 // Toggle whole class name 21814 } else if ( value === undefined || type === "boolean" ) { 21815 className = getClass( this ); 21816 if ( className ) { 21817 21818 // Store className if set 21819 dataPriv.set( this, "__className__", className ); 21820 } 21821 21822 // If the element has a class name or if we're passed `false`, 21823 // then remove the whole classname (if there was one, the above saved it). 21824 // Otherwise bring back whatever was previously saved (if anything), 21825 // falling back to the empty string if nothing was stored. 21826 if ( this.setAttribute ) { 21827 this.setAttribute( "class", 21828 className || value === false ? 21829 "" : 21830 dataPriv.get( this, "__className__" ) || "" 21831 ); 21832 } 21833 } 21834 } ); 21835 }, 21836 21837 hasClass: function( selector ) { 21838 var className, elem, 21839 i = 0; 21840 21841 className = " " + selector + " "; 21842 while ( ( elem = this[ i++ ] ) ) { 21843 if ( elem.nodeType === 1 && 21844 ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { 21845 return true; 21846 } 21847 } 21848 21849 return false; 21850 } 21851} ); 21852 21853 21854 21855 21856var rreturn = /\r/g; 21857 21858jQuery.fn.extend( { 21859 val: function( value ) { 21860 var hooks, ret, valueIsFunction, 21861 elem = this[ 0 ]; 21862 21863 if ( !arguments.length ) { 21864 if ( elem ) { 21865 hooks = jQuery.valHooks[ elem.type ] || 21866 jQuery.valHooks[ elem.nodeName.toLowerCase() ]; 21867 21868 if ( hooks && 21869 "get" in hooks && 21870 ( ret = hooks.get( elem, "value" ) ) !== undefined 21871 ) { 21872 return ret; 21873 } 21874 21875 ret = elem.value; 21876 21877 // Handle most common string cases 21878 if ( typeof ret === "string" ) { 21879 return ret.replace( rreturn, "" ); 21880 } 21881 21882 // Handle cases where value is null/undef or number 21883 return ret == null ? "" : ret; 21884 } 21885 21886 return; 21887 } 21888 21889 valueIsFunction = isFunction( value ); 21890 21891 return this.each( function( i ) { 21892 var val; 21893 21894 if ( this.nodeType !== 1 ) { 21895 return; 21896 } 21897 21898 if ( valueIsFunction ) { 21899 val = value.call( this, i, jQuery( this ).val() ); 21900 } else { 21901 val = value; 21902 } 21903 21904 // Treat null/undefined as ""; convert numbers to string 21905 if ( val == null ) { 21906 val = ""; 21907 21908 } else if ( typeof val === "number" ) { 21909 val += ""; 21910 21911 } else if ( Array.isArray( val ) ) { 21912 val = jQuery.map( val, function( value ) { 21913 return value == null ? "" : value + ""; 21914 } ); 21915 } 21916 21917 hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; 21918 21919 // If set returns undefined, fall back to normal setting 21920 if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { 21921 this.value = val; 21922 } 21923 } ); 21924 } 21925} ); 21926 21927jQuery.extend( { 21928 valHooks: { 21929 option: { 21930 get: function( elem ) { 21931 21932 var val = jQuery.find.attr( elem, "value" ); 21933 return val != null ? 21934 val : 21935 21936 // Support: IE <=10 - 11 only 21937 // option.text throws exceptions (#14686, #14858) 21938 // Strip and collapse whitespace 21939 // https://html.spec.whatwg.org/#strip-and-collapse-whitespace 21940 stripAndCollapse( jQuery.text( elem ) ); 21941 } 21942 }, 21943 select: { 21944 get: function( elem ) { 21945 var value, option, i, 21946 options = elem.options, 21947 index = elem.selectedIndex, 21948 one = elem.type === "select-one", 21949 values = one ? null : [], 21950 max = one ? index + 1 : options.length; 21951 21952 if ( index < 0 ) { 21953 i = max; 21954 21955 } else { 21956 i = one ? index : 0; 21957 } 21958 21959 // Loop through all the selected options 21960 for ( ; i < max; i++ ) { 21961 option = options[ i ]; 21962 21963 // Support: IE <=9 only 21964 // IE8-9 doesn't update selected after form reset (#2551) 21965 if ( ( option.selected || i === index ) && 21966 21967 // Don't return options that are disabled or in a disabled optgroup 21968 !option.disabled && 21969 ( !option.parentNode.disabled || 21970 !nodeName( option.parentNode, "optgroup" ) ) ) { 21971 21972 // Get the specific value for the option 21973 value = jQuery( option ).val(); 21974 21975 // We don't need an array for one selects 21976 if ( one ) { 21977 return value; 21978 } 21979 21980 // Multi-Selects return an array 21981 values.push( value ); 21982 } 21983 } 21984 21985 return values; 21986 }, 21987 21988 set: function( elem, value ) { 21989 var optionSet, option, 21990 options = elem.options, 21991 values = jQuery.makeArray( value ), 21992 i = options.length; 21993 21994 while ( i-- ) { 21995 option = options[ i ]; 21996 21997 /* eslint-disable no-cond-assign */ 21998 21999 if ( option.selected = 22000 jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 22001 ) { 22002 optionSet = true; 22003 } 22004 22005 /* eslint-enable no-cond-assign */ 22006 } 22007 22008 // Force browsers to behave consistently when non-matching value is set 22009 if ( !optionSet ) { 22010 elem.selectedIndex = -1; 22011 } 22012 return values; 22013 } 22014 } 22015 } 22016} ); 22017 22018// Radios and checkboxes getter/setter 22019jQuery.each( [ "radio", "checkbox" ], function() { 22020 jQuery.valHooks[ this ] = { 22021 set: function( elem, value ) { 22022 if ( Array.isArray( value ) ) { 22023 return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); 22024 } 22025 } 22026 }; 22027 if ( !support.checkOn ) { 22028 jQuery.valHooks[ this ].get = function( elem ) { 22029 return elem.getAttribute( "value" ) === null ? "on" : elem.value; 22030 }; 22031 } 22032} ); 22033 22034 22035 22036 22037// Return jQuery for attributes-only inclusion 22038 22039 22040support.focusin = "onfocusin" in window; 22041 22042 22043var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, 22044 stopPropagationCallback = function( e ) { 22045 e.stopPropagation(); 22046 }; 22047 22048jQuery.extend( jQuery.event, { 22049 22050 trigger: function( event, data, elem, onlyHandlers ) { 22051 22052 var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, 22053 eventPath = [ elem || document ], 22054 type = hasOwn.call( event, "type" ) ? event.type : event, 22055 namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; 22056 22057 cur = lastElement = tmp = elem = elem || document; 22058 22059 // Don't do events on text and comment nodes 22060 if ( elem.nodeType === 3 || elem.nodeType === 8 ) { 22061 return; 22062 } 22063 22064 // focus/blur morphs to focusin/out; ensure we're not firing them right now 22065 if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { 22066 return; 22067 } 22068 22069 if ( type.indexOf( "." ) > -1 ) { 22070 22071 // Namespaced trigger; create a regexp to match event type in handle() 22072 namespaces = type.split( "." ); 22073 type = namespaces.shift(); 22074 namespaces.sort(); 22075 } 22076 ontype = type.indexOf( ":" ) < 0 && "on" + type; 22077 22078 // Caller can pass in a jQuery.Event object, Object, or just an event type string 22079 event = event[ jQuery.expando ] ? 22080 event : 22081 new jQuery.Event( type, typeof event === "object" && event ); 22082 22083 // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) 22084 event.isTrigger = onlyHandlers ? 2 : 3; 22085 event.namespace = namespaces.join( "." ); 22086 event.rnamespace = event.namespace ? 22087 new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : 22088 null; 22089 22090 // Clean up the event in case it is being reused 22091 event.result = undefined; 22092 if ( !event.target ) { 22093 event.target = elem; 22094 } 22095 22096 // Clone any incoming data and prepend the event, creating the handler arg list 22097 data = data == null ? 22098 [ event ] : 22099 jQuery.makeArray( data, [ event ] ); 22100 22101 // Allow special events to draw outside the lines 22102 special = jQuery.event.special[ type ] || {}; 22103 if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { 22104 return; 22105 } 22106 22107 // Determine event propagation path in advance, per W3C events spec (#9951) 22108 // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) 22109 if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { 22110 22111 bubbleType = special.delegateType || type; 22112 if ( !rfocusMorph.test( bubbleType + type ) ) { 22113 cur = cur.parentNode; 22114 } 22115 for ( ; cur; cur = cur.parentNode ) { 22116 eventPath.push( cur ); 22117 tmp = cur; 22118 } 22119 22120 // Only add window if we got to document (e.g., not plain obj or detached DOM) 22121 if ( tmp === ( elem.ownerDocument || document ) ) { 22122 eventPath.push( tmp.defaultView || tmp.parentWindow || window ); 22123 } 22124 } 22125 22126 // Fire handlers on the event path 22127 i = 0; 22128 while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { 22129 lastElement = cur; 22130 event.type = i > 1 ? 22131 bubbleType : 22132 special.bindType || type; 22133 22134 // jQuery handler 22135 handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && 22136 dataPriv.get( cur, "handle" ); 22137 if ( handle ) { 22138 handle.apply( cur, data ); 22139 } 22140 22141 // Native handler 22142 handle = ontype && cur[ ontype ]; 22143 if ( handle && handle.apply && acceptData( cur ) ) { 22144 event.result = handle.apply( cur, data ); 22145 if ( event.result === false ) { 22146 event.preventDefault(); 22147 } 22148 } 22149 } 22150 event.type = type; 22151 22152 // If nobody prevented the default action, do it now 22153 if ( !onlyHandlers && !event.isDefaultPrevented() ) { 22154 22155 if ( ( !special._default || 22156 special._default.apply( eventPath.pop(), data ) === false ) && 22157 acceptData( elem ) ) { 22158 22159 // Call a native DOM method on the target with the same name as the event. 22160 // Don't do default actions on window, that's where global variables be (#6170) 22161 if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { 22162 22163 // Don't re-trigger an onFOO event when we call its FOO() method 22164 tmp = elem[ ontype ]; 22165 22166 if ( tmp ) { 22167 elem[ ontype ] = null; 22168 } 22169 22170 // Prevent re-triggering of the same event, since we already bubbled it above 22171 jQuery.event.triggered = type; 22172 22173 if ( event.isPropagationStopped() ) { 22174 lastElement.addEventListener( type, stopPropagationCallback ); 22175 } 22176 22177 elem[ type ](); 22178 22179 if ( event.isPropagationStopped() ) { 22180 lastElement.removeEventListener( type, stopPropagationCallback ); 22181 } 22182 22183 jQuery.event.triggered = undefined; 22184 22185 if ( tmp ) { 22186 elem[ ontype ] = tmp; 22187 } 22188 } 22189 } 22190 } 22191 22192 return event.result; 22193 }, 22194 22195 // Piggyback on a donor event to simulate a different one 22196 // Used only for `focus(in | out)` events 22197 simulate: function( type, elem, event ) { 22198 var e = jQuery.extend( 22199 new jQuery.Event(), 22200 event, 22201 { 22202 type: type, 22203 isSimulated: true 22204 } 22205 ); 22206 22207 jQuery.event.trigger( e, null, elem ); 22208 } 22209 22210} ); 22211 22212jQuery.fn.extend( { 22213 22214 trigger: function( type, data ) { 22215 return this.each( function() { 22216 jQuery.event.trigger( type, data, this ); 22217 } ); 22218 }, 22219 triggerHandler: function( type, data ) { 22220 var elem = this[ 0 ]; 22221 if ( elem ) { 22222 return jQuery.event.trigger( type, data, elem, true ); 22223 } 22224 } 22225} ); 22226 22227 22228// Support: Firefox <=44 22229// Firefox doesn't have focus(in | out) events 22230// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 22231// 22232// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 22233// focus(in | out) events fire after focus & blur events, 22234// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order 22235// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 22236if ( !support.focusin ) { 22237 jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { 22238 22239 // Attach a single capturing handler on the document while someone wants focusin/focusout 22240 var handler = function( event ) { 22241 jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); 22242 }; 22243 22244 jQuery.event.special[ fix ] = { 22245 setup: function() { 22246 22247 // Handle: regular nodes (via `this.ownerDocument`), window 22248 // (via `this.document`) & document (via `this`). 22249 var doc = this.ownerDocument || this.document || this, 22250 attaches = dataPriv.access( doc, fix ); 22251 22252 if ( !attaches ) { 22253 doc.addEventListener( orig, handler, true ); 22254 } 22255 dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); 22256 }, 22257 teardown: function() { 22258 var doc = this.ownerDocument || this.document || this, 22259 attaches = dataPriv.access( doc, fix ) - 1; 22260 22261 if ( !attaches ) { 22262 doc.removeEventListener( orig, handler, true ); 22263 dataPriv.remove( doc, fix ); 22264 22265 } else { 22266 dataPriv.access( doc, fix, attaches ); 22267 } 22268 } 22269 }; 22270 } ); 22271} 22272var location = window.location; 22273 22274var nonce = { guid: Date.now() }; 22275 22276var rquery = ( /\?/ ); 22277 22278 22279 22280// Cross-browser xml parsing 22281jQuery.parseXML = function( data ) { 22282 var xml, parserErrorElem; 22283 if ( !data || typeof data !== "string" ) { 22284 return null; 22285 } 22286 22287 // Support: IE 9 - 11 only 22288 // IE throws on parseFromString with invalid input. 22289 try { 22290 xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); 22291 } catch ( e ) {} 22292 22293 parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; 22294 if ( !xml || parserErrorElem ) { 22295 jQuery.error( "Invalid XML: " + ( 22296 parserErrorElem ? 22297 jQuery.map( parserErrorElem.childNodes, function( el ) { 22298 return el.textContent; 22299 } ).join( "\n" ) : 22300 data 22301 ) ); 22302 } 22303 return xml; 22304}; 22305 22306 22307var 22308 rbracket = /\[\]$/, 22309 rCRLF = /\r?\n/g, 22310 rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, 22311 rsubmittable = /^(?:input|select|textarea|keygen)/i; 22312 22313function buildParams( prefix, obj, traditional, add ) { 22314 var name; 22315 22316 if ( Array.isArray( obj ) ) { 22317 22318 // Serialize array item. 22319 jQuery.each( obj, function( i, v ) { 22320 if ( traditional || rbracket.test( prefix ) ) { 22321 22322 // Treat each array item as a scalar. 22323 add( prefix, v ); 22324 22325 } else { 22326 22327 // Item is non-scalar (array or object), encode its numeric index. 22328 buildParams( 22329 prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", 22330 v, 22331 traditional, 22332 add 22333 ); 22334 } 22335 } ); 22336 22337 } else if ( !traditional && toType( obj ) === "object" ) { 22338 22339 // Serialize object item. 22340 for ( name in obj ) { 22341 buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); 22342 } 22343 22344 } else { 22345 22346 // Serialize scalar item. 22347 add( prefix, obj ); 22348 } 22349} 22350 22351// Serialize an array of form elements or a set of 22352// key/values into a query string 22353jQuery.param = function( a, traditional ) { 22354 var prefix, 22355 s = [], 22356 add = function( key, valueOrFunction ) { 22357 22358 // If value is a function, invoke it and use its return value 22359 var value = isFunction( valueOrFunction ) ? 22360 valueOrFunction() : 22361 valueOrFunction; 22362 22363 s[ s.length ] = encodeURIComponent( key ) + "=" + 22364 encodeURIComponent( value == null ? "" : value ); 22365 }; 22366 22367 if ( a == null ) { 22368 return ""; 22369 } 22370 22371 // If an array was passed in, assume that it is an array of form elements. 22372 if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { 22373 22374 // Serialize the form elements 22375 jQuery.each( a, function() { 22376 add( this.name, this.value ); 22377 } ); 22378 22379 } else { 22380 22381 // If traditional, encode the "old" way (the way 1.3.2 or older 22382 // did it), otherwise encode params recursively. 22383 for ( prefix in a ) { 22384 buildParams( prefix, a[ prefix ], traditional, add ); 22385 } 22386 } 22387 22388 // Return the resulting serialization 22389 return s.join( "&" ); 22390}; 22391 22392jQuery.fn.extend( { 22393 serialize: function() { 22394 return jQuery.param( this.serializeArray() ); 22395 }, 22396 serializeArray: function() { 22397 return this.map( function() { 22398 22399 // Can add propHook for "elements" to filter or add form elements 22400 var elements = jQuery.prop( this, "elements" ); 22401 return elements ? jQuery.makeArray( elements ) : this; 22402 } ).filter( function() { 22403 var type = this.type; 22404 22405 // Use .is( ":disabled" ) so that fieldset[disabled] works 22406 return this.name && !jQuery( this ).is( ":disabled" ) && 22407 rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && 22408 ( this.checked || !rcheckableType.test( type ) ); 22409 } ).map( function( _i, elem ) { 22410 var val = jQuery( this ).val(); 22411 22412 if ( val == null ) { 22413 return null; 22414 } 22415 22416 if ( Array.isArray( val ) ) { 22417 return jQuery.map( val, function( val ) { 22418 return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; 22419 } ); 22420 } 22421 22422 return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; 22423 } ).get(); 22424 } 22425} ); 22426 22427 22428var 22429 r20 = /%20/g, 22430 rhash = /#.*$/, 22431 rantiCache = /([?&])_=[^&]*/, 22432 rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, 22433 22434 // #7653, #8125, #8152: local protocol detection 22435 rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, 22436 rnoContent = /^(?:GET|HEAD)$/, 22437 rprotocol = /^\/\//, 22438 22439 /* Prefilters 22440 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) 22441 * 2) These are called: 22442 * - BEFORE asking for a transport 22443 * - AFTER param serialization (s.data is a string if s.processData is true) 22444 * 3) key is the dataType 22445 * 4) the catchall symbol "*" can be used 22446 * 5) execution will start with transport dataType and THEN continue down to "*" if needed 22447 */ 22448 prefilters = {}, 22449 22450 /* Transports bindings 22451 * 1) key is the dataType 22452 * 2) the catchall symbol "*" can be used 22453 * 3) selection will start with transport dataType and THEN go to "*" if needed 22454 */ 22455 transports = {}, 22456 22457 // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression 22458 allTypes = "*/".concat( "*" ), 22459 22460 // Anchor tag for parsing the document origin 22461 originAnchor = document.createElement( "a" ); 22462 22463originAnchor.href = location.href; 22464 22465// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport 22466function addToPrefiltersOrTransports( structure ) { 22467 22468 // dataTypeExpression is optional and defaults to "*" 22469 return function( dataTypeExpression, func ) { 22470 22471 if ( typeof dataTypeExpression !== "string" ) { 22472 func = dataTypeExpression; 22473 dataTypeExpression = "*"; 22474 } 22475 22476 var dataType, 22477 i = 0, 22478 dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; 22479 22480 if ( isFunction( func ) ) { 22481 22482 // For each dataType in the dataTypeExpression 22483 while ( ( dataType = dataTypes[ i++ ] ) ) { 22484 22485 // Prepend if requested 22486 if ( dataType[ 0 ] === "+" ) { 22487 dataType = dataType.slice( 1 ) || "*"; 22488 ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); 22489 22490 // Otherwise append 22491 } else { 22492 ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); 22493 } 22494 } 22495 } 22496 }; 22497} 22498 22499// Base inspection function for prefilters and transports 22500function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { 22501 22502 var inspected = {}, 22503 seekingTransport = ( structure === transports ); 22504 22505 function inspect( dataType ) { 22506 var selected; 22507 inspected[ dataType ] = true; 22508 jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { 22509 var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); 22510 if ( typeof dataTypeOrTransport === "string" && 22511 !seekingTransport && !inspected[ dataTypeOrTransport ] ) { 22512 22513 options.dataTypes.unshift( dataTypeOrTransport ); 22514 inspect( dataTypeOrTransport ); 22515 return false; 22516 } else if ( seekingTransport ) { 22517 return !( selected = dataTypeOrTransport ); 22518 } 22519 } ); 22520 return selected; 22521 } 22522 22523 return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); 22524} 22525 22526// A special extend for ajax options 22527// that takes "flat" options (not to be deep extended) 22528// Fixes #9887 22529function ajaxExtend( target, src ) { 22530 var key, deep, 22531 flatOptions = jQuery.ajaxSettings.flatOptions || {}; 22532 22533 for ( key in src ) { 22534 if ( src[ key ] !== undefined ) { 22535 ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; 22536 } 22537 } 22538 if ( deep ) { 22539 jQuery.extend( true, target, deep ); 22540 } 22541 22542 return target; 22543} 22544 22545/* Handles responses to an ajax request: 22546 * - finds the right dataType (mediates between content-type and expected dataType) 22547 * - returns the corresponding response 22548 */ 22549function ajaxHandleResponses( s, jqXHR, responses ) { 22550 22551 var ct, type, finalDataType, firstDataType, 22552 contents = s.contents, 22553 dataTypes = s.dataTypes; 22554 22555 // Remove auto dataType and get content-type in the process 22556 while ( dataTypes[ 0 ] === "*" ) { 22557 dataTypes.shift(); 22558 if ( ct === undefined ) { 22559 ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); 22560 } 22561 } 22562 22563 // Check if we're dealing with a known content-type 22564 if ( ct ) { 22565 for ( type in contents ) { 22566 if ( contents[ type ] && contents[ type ].test( ct ) ) { 22567 dataTypes.unshift( type ); 22568 break; 22569 } 22570 } 22571 } 22572 22573 // Check to see if we have a response for the expected dataType 22574 if ( dataTypes[ 0 ] in responses ) { 22575 finalDataType = dataTypes[ 0 ]; 22576 } else { 22577 22578 // Try convertible dataTypes 22579 for ( type in responses ) { 22580 if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { 22581 finalDataType = type; 22582 break; 22583 } 22584 if ( !firstDataType ) { 22585 firstDataType = type; 22586 } 22587 } 22588 22589 // Or just use first one 22590 finalDataType = finalDataType || firstDataType; 22591 } 22592 22593 // If we found a dataType 22594 // We add the dataType to the list if needed 22595 // and return the corresponding response 22596 if ( finalDataType ) { 22597 if ( finalDataType !== dataTypes[ 0 ] ) { 22598 dataTypes.unshift( finalDataType ); 22599 } 22600 return responses[ finalDataType ]; 22601 } 22602} 22603 22604/* Chain conversions given the request and the original response 22605 * Also sets the responseXXX fields on the jqXHR instance 22606 */ 22607function ajaxConvert( s, response, jqXHR, isSuccess ) { 22608 var conv2, current, conv, tmp, prev, 22609 converters = {}, 22610 22611 // Work with a copy of dataTypes in case we need to modify it for conversion 22612 dataTypes = s.dataTypes.slice(); 22613 22614 // Create converters map with lowercased keys 22615 if ( dataTypes[ 1 ] ) { 22616 for ( conv in s.converters ) { 22617 converters[ conv.toLowerCase() ] = s.converters[ conv ]; 22618 } 22619 } 22620 22621 current = dataTypes.shift(); 22622 22623 // Convert to each sequential dataType 22624 while ( current ) { 22625 22626 if ( s.responseFields[ current ] ) { 22627 jqXHR[ s.responseFields[ current ] ] = response; 22628 } 22629 22630 // Apply the dataFilter if provided 22631 if ( !prev && isSuccess && s.dataFilter ) { 22632 response = s.dataFilter( response, s.dataType ); 22633 } 22634 22635 prev = current; 22636 current = dataTypes.shift(); 22637 22638 if ( current ) { 22639 22640 // There's only work to do if current dataType is non-auto 22641 if ( current === "*" ) { 22642 22643 current = prev; 22644 22645 // Convert response if prev dataType is non-auto and differs from current 22646 } else if ( prev !== "*" && prev !== current ) { 22647 22648 // Seek a direct converter 22649 conv = converters[ prev + " " + current ] || converters[ "* " + current ]; 22650 22651 // If none found, seek a pair 22652 if ( !conv ) { 22653 for ( conv2 in converters ) { 22654 22655 // If conv2 outputs current 22656 tmp = conv2.split( " " ); 22657 if ( tmp[ 1 ] === current ) { 22658 22659 // If prev can be converted to accepted input 22660 conv = converters[ prev + " " + tmp[ 0 ] ] || 22661 converters[ "* " + tmp[ 0 ] ]; 22662 if ( conv ) { 22663 22664 // Condense equivalence converters 22665 if ( conv === true ) { 22666 conv = converters[ conv2 ]; 22667 22668 // Otherwise, insert the intermediate dataType 22669 } else if ( converters[ conv2 ] !== true ) { 22670 current = tmp[ 0 ]; 22671 dataTypes.unshift( tmp[ 1 ] ); 22672 } 22673 break; 22674 } 22675 } 22676 } 22677 } 22678 22679 // Apply converter (if not an equivalence) 22680 if ( conv !== true ) { 22681 22682 // Unless errors are allowed to bubble, catch and return them 22683 if ( conv && s.throws ) { 22684 response = conv( response ); 22685 } else { 22686 try { 22687 response = conv( response ); 22688 } catch ( e ) { 22689 return { 22690 state: "parsererror", 22691 error: conv ? e : "No conversion from " + prev + " to " + current 22692 }; 22693 } 22694 } 22695 } 22696 } 22697 } 22698 } 22699 22700 return { state: "success", data: response }; 22701} 22702 22703jQuery.extend( { 22704 22705 // Counter for holding the number of active queries 22706 active: 0, 22707 22708 // Last-Modified header cache for next request 22709 lastModified: {}, 22710 etag: {}, 22711 22712 ajaxSettings: { 22713 url: location.href, 22714 type: "GET", 22715 isLocal: rlocalProtocol.test( location.protocol ), 22716 global: true, 22717 processData: true, 22718 async: true, 22719 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 22720 22721 /* 22722 timeout: 0, 22723 data: null, 22724 dataType: null, 22725 username: null, 22726 password: null, 22727 cache: null, 22728 throws: false, 22729 traditional: false, 22730 headers: {}, 22731 */ 22732 22733 accepts: { 22734 "*": allTypes, 22735 text: "text/plain", 22736 html: "text/html", 22737 xml: "application/xml, text/xml", 22738 json: "application/json, text/javascript" 22739 }, 22740 22741 contents: { 22742 xml: /\bxml\b/, 22743 html: /\bhtml/, 22744 json: /\bjson\b/ 22745 }, 22746 22747 responseFields: { 22748 xml: "responseXML", 22749 text: "responseText", 22750 json: "responseJSON" 22751 }, 22752 22753 // Data converters 22754 // Keys separate source (or catchall "*") and destination types with a single space 22755 converters: { 22756 22757 // Convert anything to text 22758 "* text": String, 22759 22760 // Text to html (true = no transformation) 22761 "text html": true, 22762 22763 // Evaluate text as a json expression 22764 "text json": JSON.parse, 22765 22766 // Parse text as xml 22767 "text xml": jQuery.parseXML 22768 }, 22769 22770 // For options that shouldn't be deep extended: 22771 // you can add your own custom options here if 22772 // and when you create one that shouldn't be 22773 // deep extended (see ajaxExtend) 22774 flatOptions: { 22775 url: true, 22776 context: true 22777 } 22778 }, 22779 22780 // Creates a full fledged settings object into target 22781 // with both ajaxSettings and settings fields. 22782 // If target is omitted, writes into ajaxSettings. 22783 ajaxSetup: function( target, settings ) { 22784 return settings ? 22785 22786 // Building a settings object 22787 ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : 22788 22789 // Extending ajaxSettings 22790 ajaxExtend( jQuery.ajaxSettings, target ); 22791 }, 22792 22793 ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), 22794 ajaxTransport: addToPrefiltersOrTransports( transports ), 22795 22796 // Main method 22797 ajax: function( url, options ) { 22798 22799 // If url is an object, simulate pre-1.5 signature 22800 if ( typeof url === "object" ) { 22801 options = url; 22802 url = undefined; 22803 } 22804 22805 // Force options to be an object 22806 options = options || {}; 22807 22808 var transport, 22809 22810 // URL without anti-cache param 22811 cacheURL, 22812 22813 // Response headers 22814 responseHeadersString, 22815 responseHeaders, 22816 22817 // timeout handle 22818 timeoutTimer, 22819 22820 // Url cleanup var 22821 urlAnchor, 22822 22823 // Request state (becomes false upon send and true upon completion) 22824 completed, 22825 22826 // To know if global events are to be dispatched 22827 fireGlobals, 22828 22829 // Loop variable 22830 i, 22831 22832 // uncached part of the url 22833 uncached, 22834 22835 // Create the final options object 22836 s = jQuery.ajaxSetup( {}, options ), 22837 22838 // Callbacks context 22839 callbackContext = s.context || s, 22840 22841 // Context for global events is callbackContext if it is a DOM node or jQuery collection 22842 globalEventContext = s.context && 22843 ( callbackContext.nodeType || callbackContext.jquery ) ? 22844 jQuery( callbackContext ) : 22845 jQuery.event, 22846 22847 // Deferreds 22848 deferred = jQuery.Deferred(), 22849 completeDeferred = jQuery.Callbacks( "once memory" ), 22850 22851 // Status-dependent callbacks 22852 statusCode = s.statusCode || {}, 22853 22854 // Headers (they are sent all at once) 22855 requestHeaders = {}, 22856 requestHeadersNames = {}, 22857 22858 // Default abort message 22859 strAbort = "canceled", 22860 22861 // Fake xhr 22862 jqXHR = { 22863 readyState: 0, 22864 22865 // Builds headers hashtable if needed 22866 getResponseHeader: function( key ) { 22867 var match; 22868 if ( completed ) { 22869 if ( !responseHeaders ) { 22870 responseHeaders = {}; 22871 while ( ( match = rheaders.exec( responseHeadersString ) ) ) { 22872 responseHeaders[ match[ 1 ].toLowerCase() + " " ] = 22873 ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) 22874 .concat( match[ 2 ] ); 22875 } 22876 } 22877 match = responseHeaders[ key.toLowerCase() + " " ]; 22878 } 22879 return match == null ? null : match.join( ", " ); 22880 }, 22881 22882 // Raw string 22883 getAllResponseHeaders: function() { 22884 return completed ? responseHeadersString : null; 22885 }, 22886 22887 // Caches the header 22888 setRequestHeader: function( name, value ) { 22889 if ( completed == null ) { 22890 name = requestHeadersNames[ name.toLowerCase() ] = 22891 requestHeadersNames[ name.toLowerCase() ] || name; 22892 requestHeaders[ name ] = value; 22893 } 22894 return this; 22895 }, 22896 22897 // Overrides response content-type header 22898 overrideMimeType: function( type ) { 22899 if ( completed == null ) { 22900 s.mimeType = type; 22901 } 22902 return this; 22903 }, 22904 22905 // Status-dependent callbacks 22906 statusCode: function( map ) { 22907 var code; 22908 if ( map ) { 22909 if ( completed ) { 22910 22911 // Execute the appropriate callbacks 22912 jqXHR.always( map[ jqXHR.status ] ); 22913 } else { 22914 22915 // Lazy-add the new callbacks in a way that preserves old ones 22916 for ( code in map ) { 22917 statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; 22918 } 22919 } 22920 } 22921 return this; 22922 }, 22923 22924 // Cancel the request 22925 abort: function( statusText ) { 22926 var finalText = statusText || strAbort; 22927 if ( transport ) { 22928 transport.abort( finalText ); 22929 } 22930 done( 0, finalText ); 22931 return this; 22932 } 22933 }; 22934 22935 // Attach deferreds 22936 deferred.promise( jqXHR ); 22937 22938 // Add protocol if not provided (prefilters might expect it) 22939 // Handle falsy url in the settings object (#10093: consistency with old signature) 22940 // We also use the url parameter if available 22941 s.url = ( ( url || s.url || location.href ) + "" ) 22942 .replace( rprotocol, location.protocol + "//" ); 22943 22944 // Alias method option to type as per ticket #12004 22945 s.type = options.method || options.type || s.method || s.type; 22946 22947 // Extract dataTypes list 22948 s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; 22949 22950 // A cross-domain request is in order when the origin doesn't match the current origin. 22951 if ( s.crossDomain == null ) { 22952 urlAnchor = document.createElement( "a" ); 22953 22954 // Support: IE <=8 - 11, Edge 12 - 15 22955 // IE throws exception on accessing the href property if url is malformed, 22956 // e.g. http://example.com:80x/ 22957 try { 22958 urlAnchor.href = s.url; 22959 22960 // Support: IE <=8 - 11 only 22961 // Anchor's host property isn't correctly set when s.url is relative 22962 urlAnchor.href = urlAnchor.href; 22963 s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== 22964 urlAnchor.protocol + "//" + urlAnchor.host; 22965 } catch ( e ) { 22966 22967 // If there is an error parsing the URL, assume it is crossDomain, 22968 // it can be rejected by the transport if it is invalid 22969 s.crossDomain = true; 22970 } 22971 } 22972 22973 // Convert data if not already a string 22974 if ( s.data && s.processData && typeof s.data !== "string" ) { 22975 s.data = jQuery.param( s.data, s.traditional ); 22976 } 22977 22978 // Apply prefilters 22979 inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); 22980 22981 // If request was aborted inside a prefilter, stop there 22982 if ( completed ) { 22983 return jqXHR; 22984 } 22985 22986 // We can fire global events as of now if asked to 22987 // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) 22988 fireGlobals = jQuery.event && s.global; 22989 22990 // Watch for a new set of requests 22991 if ( fireGlobals && jQuery.active++ === 0 ) { 22992 jQuery.event.trigger( "ajaxStart" ); 22993 } 22994 22995 // Uppercase the type 22996 s.type = s.type.toUpperCase(); 22997 22998 // Determine if request has content 22999 s.hasContent = !rnoContent.test( s.type ); 23000 23001 // Save the URL in case we're toying with the If-Modified-Since 23002 // and/or If-None-Match header later on 23003 // Remove hash to simplify url manipulation 23004 cacheURL = s.url.replace( rhash, "" ); 23005 23006 // More options handling for requests with no content 23007 if ( !s.hasContent ) { 23008 23009 // Remember the hash so we can put it back 23010 uncached = s.url.slice( cacheURL.length ); 23011 23012 // If data is available and should be processed, append data to url 23013 if ( s.data && ( s.processData || typeof s.data === "string" ) ) { 23014 cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; 23015 23016 // #9682: remove data so that it's not used in an eventual retry 23017 delete s.data; 23018 } 23019 23020 // Add or update anti-cache param if needed 23021 if ( s.cache === false ) { 23022 cacheURL = cacheURL.replace( rantiCache, "$1" ); 23023 uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + 23024 uncached; 23025 } 23026 23027 // Put hash and anti-cache on the URL that will be requested (gh-1732) 23028 s.url = cacheURL + uncached; 23029 23030 // Change '%20' to '+' if this is encoded form body content (gh-2658) 23031 } else if ( s.data && s.processData && 23032 ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { 23033 s.data = s.data.replace( r20, "+" ); 23034 } 23035 23036 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 23037 if ( s.ifModified ) { 23038 if ( jQuery.lastModified[ cacheURL ] ) { 23039 jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); 23040 } 23041 if ( jQuery.etag[ cacheURL ] ) { 23042 jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); 23043 } 23044 } 23045 23046 // Set the correct header, if data is being sent 23047 if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { 23048 jqXHR.setRequestHeader( "Content-Type", s.contentType ); 23049 } 23050 23051 // Set the Accepts header for the server, depending on the dataType 23052 jqXHR.setRequestHeader( 23053 "Accept", 23054 s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? 23055 s.accepts[ s.dataTypes[ 0 ] ] + 23056 ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : 23057 s.accepts[ "*" ] 23058 ); 23059 23060 // Check for headers option 23061 for ( i in s.headers ) { 23062 jqXHR.setRequestHeader( i, s.headers[ i ] ); 23063 } 23064 23065 // Allow custom headers/mimetypes and early abort 23066 if ( s.beforeSend && 23067 ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { 23068 23069 // Abort if not done already and return 23070 return jqXHR.abort(); 23071 } 23072 23073 // Aborting is no longer a cancellation 23074 strAbort = "abort"; 23075 23076 // Install callbacks on deferreds 23077 completeDeferred.add( s.complete ); 23078 jqXHR.done( s.success ); 23079 jqXHR.fail( s.error ); 23080 23081 // Get transport 23082 transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); 23083 23084 // If no transport, we auto-abort 23085 if ( !transport ) { 23086 done( -1, "No Transport" ); 23087 } else { 23088 jqXHR.readyState = 1; 23089 23090 // Send global event 23091 if ( fireGlobals ) { 23092 globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); 23093 } 23094 23095 // If request was aborted inside ajaxSend, stop there 23096 if ( completed ) { 23097 return jqXHR; 23098 } 23099 23100 // Timeout 23101 if ( s.async && s.timeout > 0 ) { 23102 timeoutTimer = window.setTimeout( function() { 23103 jqXHR.abort( "timeout" ); 23104 }, s.timeout ); 23105 } 23106 23107 try { 23108 completed = false; 23109 transport.send( requestHeaders, done ); 23110 } catch ( e ) { 23111 23112 // Rethrow post-completion exceptions 23113 if ( completed ) { 23114 throw e; 23115 } 23116 23117 // Propagate others as results 23118 done( -1, e ); 23119 } 23120 } 23121 23122 // Callback for when everything is done 23123 function done( status, nativeStatusText, responses, headers ) { 23124 var isSuccess, success, error, response, modified, 23125 statusText = nativeStatusText; 23126 23127 // Ignore repeat invocations 23128 if ( completed ) { 23129 return; 23130 } 23131 23132 completed = true; 23133 23134 // Clear timeout if it exists 23135 if ( timeoutTimer ) { 23136 window.clearTimeout( timeoutTimer ); 23137 } 23138 23139 // Dereference transport for early garbage collection 23140 // (no matter how long the jqXHR object will be used) 23141 transport = undefined; 23142 23143 // Cache response headers 23144 responseHeadersString = headers || ""; 23145 23146 // Set readyState 23147 jqXHR.readyState = status > 0 ? 4 : 0; 23148 23149 // Determine if successful 23150 isSuccess = status >= 200 && status < 300 || status === 304; 23151 23152 // Get response data 23153 if ( responses ) { 23154 response = ajaxHandleResponses( s, jqXHR, responses ); 23155 } 23156 23157 // Use a noop converter for missing script but not if jsonp 23158 if ( !isSuccess && 23159 jQuery.inArray( "script", s.dataTypes ) > -1 && 23160 jQuery.inArray( "json", s.dataTypes ) < 0 ) { 23161 s.converters[ "text script" ] = function() {}; 23162 } 23163 23164 // Convert no matter what (that way responseXXX fields are always set) 23165 response = ajaxConvert( s, response, jqXHR, isSuccess ); 23166 23167 // If successful, handle type chaining 23168 if ( isSuccess ) { 23169 23170 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 23171 if ( s.ifModified ) { 23172 modified = jqXHR.getResponseHeader( "Last-Modified" ); 23173 if ( modified ) { 23174 jQuery.lastModified[ cacheURL ] = modified; 23175 } 23176 modified = jqXHR.getResponseHeader( "etag" ); 23177 if ( modified ) { 23178 jQuery.etag[ cacheURL ] = modified; 23179 } 23180 } 23181 23182 // if no content 23183 if ( status === 204 || s.type === "HEAD" ) { 23184 statusText = "nocontent"; 23185 23186 // if not modified 23187 } else if ( status === 304 ) { 23188 statusText = "notmodified"; 23189 23190 // If we have data, let's convert it 23191 } else { 23192 statusText = response.state; 23193 success = response.data; 23194 error = response.error; 23195 isSuccess = !error; 23196 } 23197 } else { 23198 23199 // Extract error from statusText and normalize for non-aborts 23200 error = statusText; 23201 if ( status || !statusText ) { 23202 statusText = "error"; 23203 if ( status < 0 ) { 23204 status = 0; 23205 } 23206 } 23207 } 23208 23209 // Set data for the fake xhr object 23210 jqXHR.status = status; 23211 jqXHR.statusText = ( nativeStatusText || statusText ) + ""; 23212 23213 // Success/Error 23214 if ( isSuccess ) { 23215 deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); 23216 } else { 23217 deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); 23218 } 23219 23220 // Status-dependent callbacks 23221 jqXHR.statusCode( statusCode ); 23222 statusCode = undefined; 23223 23224 if ( fireGlobals ) { 23225 globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", 23226 [ jqXHR, s, isSuccess ? success : error ] ); 23227 } 23228 23229 // Complete 23230 completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); 23231 23232 if ( fireGlobals ) { 23233 globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); 23234 23235 // Handle the global AJAX counter 23236 if ( !( --jQuery.active ) ) { 23237 jQuery.event.trigger( "ajaxStop" ); 23238 } 23239 } 23240 } 23241 23242 return jqXHR; 23243 }, 23244 23245 getJSON: function( url, data, callback ) { 23246 return jQuery.get( url, data, callback, "json" ); 23247 }, 23248 23249 getScript: function( url, callback ) { 23250 return jQuery.get( url, undefined, callback, "script" ); 23251 } 23252} ); 23253 23254jQuery.each( [ "get", "post" ], function( _i, method ) { 23255 jQuery[ method ] = function( url, data, callback, type ) { 23256 23257 // Shift arguments if data argument was omitted 23258 if ( isFunction( data ) ) { 23259 type = type || callback; 23260 callback = data; 23261 data = undefined; 23262 } 23263 23264 // The url can be an options object (which then must have .url) 23265 return jQuery.ajax( jQuery.extend( { 23266 url: url, 23267 type: method, 23268 dataType: type, 23269 data: data, 23270 success: callback 23271 }, jQuery.isPlainObject( url ) && url ) ); 23272 }; 23273} ); 23274 23275jQuery.ajaxPrefilter( function( s ) { 23276 var i; 23277 for ( i in s.headers ) { 23278 if ( i.toLowerCase() === "content-type" ) { 23279 s.contentType = s.headers[ i ] || ""; 23280 } 23281 } 23282} ); 23283 23284 23285jQuery._evalUrl = function( url, options, doc ) { 23286 return jQuery.ajax( { 23287 url: url, 23288 23289 // Make this explicit, since user can override this through ajaxSetup (#11264) 23290 type: "GET", 23291 dataType: "script", 23292 cache: true, 23293 async: false, 23294 global: false, 23295 23296 // Only evaluate the response if it is successful (gh-4126) 23297 // dataFilter is not invoked for failure responses, so using it instead 23298 // of the default converter is kludgy but it works. 23299 converters: { 23300 "text script": function() {} 23301 }, 23302 dataFilter: function( response ) { 23303 jQuery.globalEval( response, options, doc ); 23304 } 23305 } ); 23306}; 23307 23308 23309jQuery.fn.extend( { 23310 wrapAll: function( html ) { 23311 var wrap; 23312 23313 if ( this[ 0 ] ) { 23314 if ( isFunction( html ) ) { 23315 html = html.call( this[ 0 ] ); 23316 } 23317 23318 // The elements to wrap the target around 23319 wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); 23320 23321 if ( this[ 0 ].parentNode ) { 23322 wrap.insertBefore( this[ 0 ] ); 23323 } 23324 23325 wrap.map( function() { 23326 var elem = this; 23327 23328 while ( elem.firstElementChild ) { 23329 elem = elem.firstElementChild; 23330 } 23331 23332 return elem; 23333 } ).append( this ); 23334 } 23335 23336 return this; 23337 }, 23338 23339 wrapInner: function( html ) { 23340 if ( isFunction( html ) ) { 23341 return this.each( function( i ) { 23342 jQuery( this ).wrapInner( html.call( this, i ) ); 23343 } ); 23344 } 23345 23346 return this.each( function() { 23347 var self = jQuery( this ), 23348 contents = self.contents(); 23349 23350 if ( contents.length ) { 23351 contents.wrapAll( html ); 23352 23353 } else { 23354 self.append( html ); 23355 } 23356 } ); 23357 }, 23358 23359 wrap: function( html ) { 23360 var htmlIsFunction = isFunction( html ); 23361 23362 return this.each( function( i ) { 23363 jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); 23364 } ); 23365 }, 23366 23367 unwrap: function( selector ) { 23368 this.parent( selector ).not( "body" ).each( function() { 23369 jQuery( this ).replaceWith( this.childNodes ); 23370 } ); 23371 return this; 23372 } 23373} ); 23374 23375 23376jQuery.expr.pseudos.hidden = function( elem ) { 23377 return !jQuery.expr.pseudos.visible( elem ); 23378}; 23379jQuery.expr.pseudos.visible = function( elem ) { 23380 return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); 23381}; 23382 23383 23384 23385 23386jQuery.ajaxSettings.xhr = function() { 23387 try { 23388 return new window.XMLHttpRequest(); 23389 } catch ( e ) {} 23390}; 23391 23392var xhrSuccessStatus = { 23393 23394 // File protocol always yields status code 0, assume 200 23395 0: 200, 23396 23397 // Support: IE <=9 only 23398 // #1450: sometimes IE returns 1223 when it should be 204 23399 1223: 204 23400 }, 23401 xhrSupported = jQuery.ajaxSettings.xhr(); 23402 23403support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); 23404support.ajax = xhrSupported = !!xhrSupported; 23405 23406jQuery.ajaxTransport( function( options ) { 23407 var callback, errorCallback; 23408 23409 // Cross domain only allowed if supported through XMLHttpRequest 23410 if ( support.cors || xhrSupported && !options.crossDomain ) { 23411 return { 23412 send: function( headers, complete ) { 23413 var i, 23414 xhr = options.xhr(); 23415 23416 xhr.open( 23417 options.type, 23418 options.url, 23419 options.async, 23420 options.username, 23421 options.password 23422 ); 23423 23424 // Apply custom fields if provided 23425 if ( options.xhrFields ) { 23426 for ( i in options.xhrFields ) { 23427 xhr[ i ] = options.xhrFields[ i ]; 23428 } 23429 } 23430 23431 // Override mime type if needed 23432 if ( options.mimeType && xhr.overrideMimeType ) { 23433 xhr.overrideMimeType( options.mimeType ); 23434 } 23435 23436 // X-Requested-With header 23437 // For cross-domain requests, seeing as conditions for a preflight are 23438 // akin to a jigsaw puzzle, we simply never set it to be sure. 23439 // (it can always be set on a per-request basis or even using ajaxSetup) 23440 // For same-domain requests, won't change header if already provided. 23441 if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { 23442 headers[ "X-Requested-With" ] = "XMLHttpRequest"; 23443 } 23444 23445 // Set headers 23446 for ( i in headers ) { 23447 xhr.setRequestHeader( i, headers[ i ] ); 23448 } 23449 23450 // Callback 23451 callback = function( type ) { 23452 return function() { 23453 if ( callback ) { 23454 callback = errorCallback = xhr.onload = 23455 xhr.onerror = xhr.onabort = xhr.ontimeout = 23456 xhr.onreadystatechange = null; 23457 23458 if ( type === "abort" ) { 23459 xhr.abort(); 23460 } else if ( type === "error" ) { 23461 23462 // Support: IE <=9 only 23463 // On a manual native abort, IE9 throws 23464 // errors on any property access that is not readyState 23465 if ( typeof xhr.status !== "number" ) { 23466 complete( 0, "error" ); 23467 } else { 23468 complete( 23469 23470 // File: protocol always yields status 0; see #8605, #14207 23471 xhr.status, 23472 xhr.statusText 23473 ); 23474 } 23475 } else { 23476 complete( 23477 xhrSuccessStatus[ xhr.status ] || xhr.status, 23478 xhr.statusText, 23479 23480 // Support: IE <=9 only 23481 // IE9 has no XHR2 but throws on binary (trac-11426) 23482 // For XHR2 non-text, let the caller handle it (gh-2498) 23483 ( xhr.responseType || "text" ) !== "text" || 23484 typeof xhr.responseText !== "string" ? 23485 { binary: xhr.response } : 23486 { text: xhr.responseText }, 23487 xhr.getAllResponseHeaders() 23488 ); 23489 } 23490 } 23491 }; 23492 }; 23493 23494 // Listen to events 23495 xhr.onload = callback(); 23496 errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); 23497 23498 // Support: IE 9 only 23499 // Use onreadystatechange to replace onabort 23500 // to handle uncaught aborts 23501 if ( xhr.onabort !== undefined ) { 23502 xhr.onabort = errorCallback; 23503 } else { 23504 xhr.onreadystatechange = function() { 23505 23506 // Check readyState before timeout as it changes 23507 if ( xhr.readyState === 4 ) { 23508 23509 // Allow onerror to be called first, 23510 // but that will not handle a native abort 23511 // Also, save errorCallback to a variable 23512 // as xhr.onerror cannot be accessed 23513 window.setTimeout( function() { 23514 if ( callback ) { 23515 errorCallback(); 23516 } 23517 } ); 23518 } 23519 }; 23520 } 23521 23522 // Create the abort callback 23523 callback = callback( "abort" ); 23524 23525 try { 23526 23527 // Do send the request (this may raise an exception) 23528 xhr.send( options.hasContent && options.data || null ); 23529 } catch ( e ) { 23530 23531 // #14683: Only rethrow if this hasn't been notified as an error yet 23532 if ( callback ) { 23533 throw e; 23534 } 23535 } 23536 }, 23537 23538 abort: function() { 23539 if ( callback ) { 23540 callback(); 23541 } 23542 } 23543 }; 23544 } 23545} ); 23546 23547 23548 23549 23550// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) 23551jQuery.ajaxPrefilter( function( s ) { 23552 if ( s.crossDomain ) { 23553 s.contents.script = false; 23554 } 23555} ); 23556 23557// Install script dataType 23558jQuery.ajaxSetup( { 23559 accepts: { 23560 script: "text/javascript, application/javascript, " + 23561 "application/ecmascript, application/x-ecmascript" 23562 }, 23563 contents: { 23564 script: /\b(?:java|ecma)script\b/ 23565 }, 23566 converters: { 23567 "text script": function( text ) { 23568 jQuery.globalEval( text ); 23569 return text; 23570 } 23571 } 23572} ); 23573 23574// Handle cache's special case and crossDomain 23575jQuery.ajaxPrefilter( "script", function( s ) { 23576 if ( s.cache === undefined ) { 23577 s.cache = false; 23578 } 23579 if ( s.crossDomain ) { 23580 s.type = "GET"; 23581 } 23582} ); 23583 23584// Bind script tag hack transport 23585jQuery.ajaxTransport( "script", function( s ) { 23586 23587 // This transport only deals with cross domain or forced-by-attrs requests 23588 if ( s.crossDomain || s.scriptAttrs ) { 23589 var script, callback; 23590 return { 23591 send: function( _, complete ) { 23592 script = jQuery( "<script>" ) 23593 .attr( s.scriptAttrs || {} ) 23594 .prop( { charset: s.scriptCharset, src: s.url } ) 23595 .on( "load error", callback = function( evt ) { 23596 script.remove(); 23597 callback = null; 23598 if ( evt ) { 23599 complete( evt.type === "error" ? 404 : 200, evt.type ); 23600 } 23601 } ); 23602 23603 // Use native DOM manipulation to avoid our domManip AJAX trickery 23604 document.head.appendChild( script[ 0 ] ); 23605 }, 23606 abort: function() { 23607 if ( callback ) { 23608 callback(); 23609 } 23610 } 23611 }; 23612 } 23613} ); 23614 23615 23616 23617 23618var oldCallbacks = [], 23619 rjsonp = /(=)\?(?=&|$)|\?\?/; 23620 23621// Default jsonp settings 23622jQuery.ajaxSetup( { 23623 jsonp: "callback", 23624 jsonpCallback: function() { 23625 var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) ); 23626 this[ callback ] = true; 23627 return callback; 23628 } 23629} ); 23630 23631// Detect, normalize options and install callbacks for jsonp requests 23632jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { 23633 23634 var callbackName, overwritten, responseContainer, 23635 jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? 23636 "url" : 23637 typeof s.data === "string" && 23638 ( s.contentType || "" ) 23639 .indexOf( "application/x-www-form-urlencoded" ) === 0 && 23640 rjsonp.test( s.data ) && "data" 23641 ); 23642 23643 // Handle iff the expected data type is "jsonp" or we have a parameter to set 23644 if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { 23645 23646 // Get callback name, remembering preexisting value associated with it 23647 callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ? 23648 s.jsonpCallback() : 23649 s.jsonpCallback; 23650 23651 // Insert callback into url or form data 23652 if ( jsonProp ) { 23653 s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); 23654 } else if ( s.jsonp !== false ) { 23655 s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; 23656 } 23657 23658 // Use data converter to retrieve json after script execution 23659 s.converters[ "script json" ] = function() { 23660 if ( !responseContainer ) { 23661 jQuery.error( callbackName + " was not called" ); 23662 } 23663 return responseContainer[ 0 ]; 23664 }; 23665 23666 // Force json dataType 23667 s.dataTypes[ 0 ] = "json"; 23668 23669 // Install callback 23670 overwritten = window[ callbackName ]; 23671 window[ callbackName ] = function() { 23672 responseContainer = arguments; 23673 }; 23674 23675 // Clean-up function (fires after converters) 23676 jqXHR.always( function() { 23677 23678 // If previous value didn't exist - remove it 23679 if ( overwritten === undefined ) { 23680 jQuery( window ).removeProp( callbackName ); 23681 23682 // Otherwise restore preexisting value 23683 } else { 23684 window[ callbackName ] = overwritten; 23685 } 23686 23687 // Save back as free 23688 if ( s[ callbackName ] ) { 23689 23690 // Make sure that re-using the options doesn't screw things around 23691 s.jsonpCallback = originalSettings.jsonpCallback; 23692 23693 // Save the callback name for future use 23694 oldCallbacks.push( callbackName ); 23695 } 23696 23697 // Call if it was a function and we have a response 23698 if ( responseContainer && isFunction( overwritten ) ) { 23699 overwritten( responseContainer[ 0 ] ); 23700 } 23701 23702 responseContainer = overwritten = undefined; 23703 } ); 23704 23705 // Delegate to script 23706 return "script"; 23707 } 23708} ); 23709 23710 23711 23712 23713// Support: Safari 8 only 23714// In Safari 8 documents created via document.implementation.createHTMLDocument 23715// collapse sibling forms: the second one becomes a child of the first one. 23716// Because of that, this security measure has to be disabled in Safari 8. 23717// https://bugs.webkit.org/show_bug.cgi?id=137337 23718support.createHTMLDocument = ( function() { 23719 var body = document.implementation.createHTMLDocument( "" ).body; 23720 body.innerHTML = "<form></form><form></form>"; 23721 return body.childNodes.length === 2; 23722} )(); 23723 23724 23725// Argument "data" should be string of html 23726// context (optional): If specified, the fragment will be created in this context, 23727// defaults to document 23728// keepScripts (optional): If true, will include scripts passed in the html string 23729jQuery.parseHTML = function( data, context, keepScripts ) { 23730 if ( typeof data !== "string" ) { 23731 return []; 23732 } 23733 if ( typeof context === "boolean" ) { 23734 keepScripts = context; 23735 context = false; 23736 } 23737 23738 var base, parsed, scripts; 23739 23740 if ( !context ) { 23741 23742 // Stop scripts or inline event handlers from being executed immediately 23743 // by using document.implementation 23744 if ( support.createHTMLDocument ) { 23745 context = document.implementation.createHTMLDocument( "" ); 23746 23747 // Set the base href for the created document 23748 // so any parsed elements with URLs 23749 // are based on the document's URL (gh-2965) 23750 base = context.createElement( "base" ); 23751 base.href = document.location.href; 23752 context.head.appendChild( base ); 23753 } else { 23754 context = document; 23755 } 23756 } 23757 23758 parsed = rsingleTag.exec( data ); 23759 scripts = !keepScripts && []; 23760 23761 // Single tag 23762 if ( parsed ) { 23763 return [ context.createElement( parsed[ 1 ] ) ]; 23764 } 23765 23766 parsed = buildFragment( [ data ], context, scripts ); 23767 23768 if ( scripts && scripts.length ) { 23769 jQuery( scripts ).remove(); 23770 } 23771 23772 return jQuery.merge( [], parsed.childNodes ); 23773}; 23774 23775 23776/** 23777 * Load a url into a page 23778 */ 23779jQuery.fn.load = function( url, params, callback ) { 23780 var selector, type, response, 23781 self = this, 23782 off = url.indexOf( " " ); 23783 23784 if ( off > -1 ) { 23785 selector = stripAndCollapse( url.slice( off ) ); 23786 url = url.slice( 0, off ); 23787 } 23788 23789 // If it's a function 23790 if ( isFunction( params ) ) { 23791 23792 // We assume that it's the callback 23793 callback = params; 23794 params = undefined; 23795 23796 // Otherwise, build a param string 23797 } else if ( params && typeof params === "object" ) { 23798 type = "POST"; 23799 } 23800 23801 // If we have elements to modify, make the request 23802 if ( self.length > 0 ) { 23803 jQuery.ajax( { 23804 url: url, 23805 23806 // If "type" variable is undefined, then "GET" method will be used. 23807 // Make value of this field explicit since 23808 // user can override it through ajaxSetup method 23809 type: type || "GET", 23810 dataType: "html", 23811 data: params 23812 } ).done( function( responseText ) { 23813 23814 // Save response for use in complete callback 23815 response = arguments; 23816 23817 self.html( selector ? 23818 23819 // If a selector was specified, locate the right elements in a dummy div 23820 // Exclude scripts to avoid IE 'Permission Denied' errors 23821 jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) : 23822 23823 // Otherwise use the full result 23824 responseText ); 23825 23826 // If the request succeeds, this function gets "data", "status", "jqXHR" 23827 // but they are ignored because response was set above. 23828 // If it fails, this function gets "jqXHR", "status", "error" 23829 } ).always( callback && function( jqXHR, status ) { 23830 self.each( function() { 23831 callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); 23832 } ); 23833 } ); 23834 } 23835 23836 return this; 23837}; 23838 23839 23840 23841 23842jQuery.expr.pseudos.animated = function( elem ) { 23843 return jQuery.grep( jQuery.timers, function( fn ) { 23844 return elem === fn.elem; 23845 } ).length; 23846}; 23847 23848 23849 23850 23851jQuery.offset = { 23852 setOffset: function( elem, options, i ) { 23853 var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, 23854 position = jQuery.css( elem, "position" ), 23855 curElem = jQuery( elem ), 23856 props = {}; 23857 23858 // Set position first, in-case top/left are set even on static elem 23859 if ( position === "static" ) { 23860 elem.style.position = "relative"; 23861 } 23862 23863 curOffset = curElem.offset(); 23864 curCSSTop = jQuery.css( elem, "top" ); 23865 curCSSLeft = jQuery.css( elem, "left" ); 23866 calculatePosition = ( position === "absolute" || position === "fixed" ) && 23867 ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1; 23868 23869 // Need to be able to calculate position if either 23870 // top or left is auto and position is either absolute or fixed 23871 if ( calculatePosition ) { 23872 curPosition = curElem.position(); 23873 curTop = curPosition.top; 23874 curLeft = curPosition.left; 23875 23876 } else { 23877 curTop = parseFloat( curCSSTop ) || 0; 23878 curLeft = parseFloat( curCSSLeft ) || 0; 23879 } 23880 23881 if ( isFunction( options ) ) { 23882 23883 // Use jQuery.extend here to allow modification of coordinates argument (gh-1848) 23884 options = options.call( elem, i, jQuery.extend( {}, curOffset ) ); 23885 } 23886 23887 if ( options.top != null ) { 23888 props.top = ( options.top - curOffset.top ) + curTop; 23889 } 23890 if ( options.left != null ) { 23891 props.left = ( options.left - curOffset.left ) + curLeft; 23892 } 23893 23894 if ( "using" in options ) { 23895 options.using.call( elem, props ); 23896 23897 } else { 23898 curElem.css( props ); 23899 } 23900 } 23901}; 23902 23903jQuery.fn.extend( { 23904 23905 // offset() relates an element's border box to the document origin 23906 offset: function( options ) { 23907 23908 // Preserve chaining for setter 23909 if ( arguments.length ) { 23910 return options === undefined ? 23911 this : 23912 this.each( function( i ) { 23913 jQuery.offset.setOffset( this, options, i ); 23914 } ); 23915 } 23916 23917 var rect, win, 23918 elem = this[ 0 ]; 23919 23920 if ( !elem ) { 23921 return; 23922 } 23923 23924 // Return zeros for disconnected and hidden (display: none) elements (gh-2310) 23925 // Support: IE <=11 only 23926 // Running getBoundingClientRect on a 23927 // disconnected node in IE throws an error 23928 if ( !elem.getClientRects().length ) { 23929 return { top: 0, left: 0 }; 23930 } 23931 23932 // Get document-relative position by adding viewport scroll to viewport-relative gBCR 23933 rect = elem.getBoundingClientRect(); 23934 win = elem.ownerDocument.defaultView; 23935 return { 23936 top: rect.top + win.pageYOffset, 23937 left: rect.left + win.pageXOffset 23938 }; 23939 }, 23940 23941 // position() relates an element's margin box to its offset parent's padding box 23942 // This corresponds to the behavior of CSS absolute positioning 23943 position: function() { 23944 if ( !this[ 0 ] ) { 23945 return; 23946 } 23947 23948 var offsetParent, offset, doc, 23949 elem = this[ 0 ], 23950 parentOffset = { top: 0, left: 0 }; 23951 23952 // position:fixed elements are offset from the viewport, which itself always has zero offset 23953 if ( jQuery.css( elem, "position" ) === "fixed" ) { 23954 23955 // Assume position:fixed implies availability of getBoundingClientRect 23956 offset = elem.getBoundingClientRect(); 23957 23958 } else { 23959 offset = this.offset(); 23960 23961 // Account for the *real* offset parent, which can be the document or its root element 23962 // when a statically positioned element is identified 23963 doc = elem.ownerDocument; 23964 offsetParent = elem.offsetParent || doc.documentElement; 23965 while ( offsetParent && 23966 ( offsetParent === doc.body || offsetParent === doc.documentElement ) && 23967 jQuery.css( offsetParent, "position" ) === "static" ) { 23968 23969 offsetParent = offsetParent.parentNode; 23970 } 23971 if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) { 23972 23973 // Incorporate borders into its offset, since they are outside its content origin 23974 parentOffset = jQuery( offsetParent ).offset(); 23975 parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true ); 23976 parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true ); 23977 } 23978 } 23979 23980 // Subtract parent offsets and element margins 23981 return { 23982 top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), 23983 left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) 23984 }; 23985 }, 23986 23987 // This method will return documentElement in the following cases: 23988 // 1) For the element inside the iframe without offsetParent, this method will return 23989 // documentElement of the parent window 23990 // 2) For the hidden or detached element 23991 // 3) For body or html element, i.e. in case of the html node - it will return itself 23992 // 23993 // but those exceptions were never presented as a real life use-cases 23994 // and might be considered as more preferable results. 23995 // 23996 // This logic, however, is not guaranteed and can change at any point in the future 23997 offsetParent: function() { 23998 return this.map( function() { 23999 var offsetParent = this.offsetParent; 24000 24001 while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) { 24002 offsetParent = offsetParent.offsetParent; 24003 } 24004 24005 return offsetParent || documentElement; 24006 } ); 24007 } 24008} ); 24009 24010// Create scrollLeft and scrollTop methods 24011jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { 24012 var top = "pageYOffset" === prop; 24013 24014 jQuery.fn[ method ] = function( val ) { 24015 return access( this, function( elem, method, val ) { 24016 24017 // Coalesce documents and windows 24018 var win; 24019 if ( isWindow( elem ) ) { 24020 win = elem; 24021 } else if ( elem.nodeType === 9 ) { 24022 win = elem.defaultView; 24023 } 24024 24025 if ( val === undefined ) { 24026 return win ? win[ prop ] : elem[ method ]; 24027 } 24028 24029 if ( win ) { 24030 win.scrollTo( 24031 !top ? val : win.pageXOffset, 24032 top ? val : win.pageYOffset 24033 ); 24034 24035 } else { 24036 elem[ method ] = val; 24037 } 24038 }, method, val, arguments.length ); 24039 }; 24040} ); 24041 24042// Support: Safari <=7 - 9.1, Chrome <=37 - 49 24043// Add the top/left cssHooks using jQuery.fn.position 24044// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 24045// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 24046// getComputedStyle returns percent when specified for top/left/bottom/right; 24047// rather than make the css module depend on the offset module, just check for it here 24048jQuery.each( [ "top", "left" ], function( _i, prop ) { 24049 jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, 24050 function( elem, computed ) { 24051 if ( computed ) { 24052 computed = curCSS( elem, prop ); 24053 24054 // If curCSS returns percentage, fallback to offset 24055 return rnumnonpx.test( computed ) ? 24056 jQuery( elem ).position()[ prop ] + "px" : 24057 computed; 24058 } 24059 } 24060 ); 24061} ); 24062 24063 24064// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods 24065jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { 24066 jQuery.each( { 24067 padding: "inner" + name, 24068 content: type, 24069 "": "outer" + name 24070 }, function( defaultExtra, funcName ) { 24071 24072 // Margin is only for outerHeight, outerWidth 24073 jQuery.fn[ funcName ] = function( margin, value ) { 24074 var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), 24075 extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); 24076 24077 return access( this, function( elem, type, value ) { 24078 var doc; 24079 24080 if ( isWindow( elem ) ) { 24081 24082 // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729) 24083 return funcName.indexOf( "outer" ) === 0 ? 24084 elem[ "inner" + name ] : 24085 elem.document.documentElement[ "client" + name ]; 24086 } 24087 24088 // Get document width or height 24089 if ( elem.nodeType === 9 ) { 24090 doc = elem.documentElement; 24091 24092 // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], 24093 // whichever is greatest 24094 return Math.max( 24095 elem.body[ "scroll" + name ], doc[ "scroll" + name ], 24096 elem.body[ "offset" + name ], doc[ "offset" + name ], 24097 doc[ "client" + name ] 24098 ); 24099 } 24100 24101 return value === undefined ? 24102 24103 // Get width or height on the element, requesting but not forcing parseFloat 24104 jQuery.css( elem, type, extra ) : 24105 24106 // Set width or height on the element 24107 jQuery.style( elem, type, value, extra ); 24108 }, type, chainable ? margin : undefined, chainable ); 24109 }; 24110 } ); 24111} ); 24112 24113 24114jQuery.each( [ 24115 "ajaxStart", 24116 "ajaxStop", 24117 "ajaxComplete", 24118 "ajaxError", 24119 "ajaxSuccess", 24120 "ajaxSend" 24121], function( _i, type ) { 24122 jQuery.fn[ type ] = function( fn ) { 24123 return this.on( type, fn ); 24124 }; 24125} ); 24126 24127 24128 24129 24130jQuery.fn.extend( { 24131 24132 bind: function( types, data, fn ) { 24133 return this.on( types, null, data, fn ); 24134 }, 24135 unbind: function( types, fn ) { 24136 return this.off( types, null, fn ); 24137 }, 24138 24139 delegate: function( selector, types, data, fn ) { 24140 return this.on( types, selector, data, fn ); 24141 }, 24142 undelegate: function( selector, types, fn ) { 24143 24144 // ( namespace ) or ( selector, types [, fn] ) 24145 return arguments.length === 1 ? 24146 this.off( selector, "**" ) : 24147 this.off( types, selector || "**", fn ); 24148 }, 24149 24150 hover: function( fnOver, fnOut ) { 24151 return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); 24152 } 24153} ); 24154 24155jQuery.each( 24156 ( "blur focus focusin focusout resize scroll click dblclick " + 24157 "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + 24158 "change select submit keydown keypress keyup contextmenu" ).split( " " ), 24159 function( _i, name ) { 24160 24161 // Handle event binding 24162 jQuery.fn[ name ] = function( data, fn ) { 24163 return arguments.length > 0 ? 24164 this.on( name, null, data, fn ) : 24165 this.trigger( name ); 24166 }; 24167 } 24168); 24169 24170 24171 24172 24173// Support: Android <=4.0 only 24174// Make sure we trim BOM and NBSP 24175var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; 24176 24177// Bind a function to a context, optionally partially applying any 24178// arguments. 24179// jQuery.proxy is deprecated to promote standards (specifically Function#bind) 24180// However, it is not slated for removal any time soon 24181jQuery.proxy = function( fn, context ) { 24182 var tmp, args, proxy; 24183 24184 if ( typeof context === "string" ) { 24185 tmp = fn[ context ]; 24186 context = fn; 24187 fn = tmp; 24188 } 24189 24190 // Quick check to determine if target is callable, in the spec 24191 // this throws a TypeError, but we will just return undefined. 24192 if ( !isFunction( fn ) ) { 24193 return undefined; 24194 } 24195 24196 // Simulated bind 24197 args = slice.call( arguments, 2 ); 24198 proxy = function() { 24199 return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); 24200 }; 24201 24202 // Set the guid of unique handler to the same of original handler, so it can be removed 24203 proxy.guid = fn.guid = fn.guid || jQuery.guid++; 24204 24205 return proxy; 24206}; 24207 24208jQuery.holdReady = function( hold ) { 24209 if ( hold ) { 24210 jQuery.readyWait++; 24211 } else { 24212 jQuery.ready( true ); 24213 } 24214}; 24215jQuery.isArray = Array.isArray; 24216jQuery.parseJSON = JSON.parse; 24217jQuery.nodeName = nodeName; 24218jQuery.isFunction = isFunction; 24219jQuery.isWindow = isWindow; 24220jQuery.camelCase = camelCase; 24221jQuery.type = toType; 24222 24223jQuery.now = Date.now; 24224 24225jQuery.isNumeric = function( obj ) { 24226 24227 // As of jQuery 3.0, isNumeric is limited to 24228 // strings and numbers (primitives or objects) 24229 // that can be coerced to finite numbers (gh-2662) 24230 var type = jQuery.type( obj ); 24231 return ( type === "number" || type === "string" ) && 24232 24233 // parseFloat NaNs numeric-cast false positives ("") 24234 // ...but misinterprets leading-number strings, particularly hex literals ("0x...") 24235 // subtraction forces infinities to NaN 24236 !isNaN( obj - parseFloat( obj ) ); 24237}; 24238 24239jQuery.trim = function( text ) { 24240 return text == null ? 24241 "" : 24242 ( text + "" ).replace( rtrim, "" ); 24243}; 24244 24245 24246 24247// Register as a named AMD module, since jQuery can be concatenated with other 24248// files that may use define, but not via a proper concatenation script that 24249// understands anonymous AMD modules. A named AMD is safest and most robust 24250// way to register. Lowercase jquery is used because AMD module names are 24251// derived from file names, and jQuery is normally delivered in a lowercase 24252// file name. Do this after creating the global so that if an AMD module wants 24253// to call noConflict to hide this version of jQuery, it will work. 24254 24255// Note that for maximum portability, libraries that are not jQuery should 24256// declare themselves as anonymous modules, and avoid setting a global if an 24257// AMD loader is present. jQuery is a special case. For more information, see 24258// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 24259 24260if ( true ) { 24261 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() { 24262 return jQuery; 24263 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 24264 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 24265} 24266 24267 24268 24269 24270var 24271 24272 // Map over jQuery in case of overwrite 24273 _jQuery = window.jQuery, 24274 24275 // Map over the $ in case of overwrite 24276 _$ = window.$; 24277 24278jQuery.noConflict = function( deep ) { 24279 if ( window.$ === jQuery ) { 24280 window.$ = _$; 24281 } 24282 24283 if ( deep && window.jQuery === jQuery ) { 24284 window.jQuery = _jQuery; 24285 } 24286 24287 return jQuery; 24288}; 24289 24290// Expose jQuery and $ identifiers, even in AMD 24291// (#7102#comment:10, https://github.com/jquery/jquery/pull/557) 24292// and CommonJS for browser emulators (#13566) 24293if ( typeof noGlobal === "undefined" ) { 24294 window.jQuery = window.$ = jQuery; 24295} 24296 24297 24298 24299 24300return jQuery; 24301} ); 24302 24303 24304/***/ }), 24305
vendor: 392 bytes, lines 24306-24318
24306/***/ "./node_modules/swiper/swiper.min.css": 24307/*!********************************************!*\ 24308 !*** ./node_modules/swiper/swiper.min.css ***! 24309 \********************************************/ 24310/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 24311 24312"use strict"; 24313__webpack_require__.r(__webpack_exports__); 24314// extracted by mini-css-extract-plugin 24315 24316 24317/***/ }), 24318
24319/***/ "./assets/child/WaveElektroWandelt/build/styles/main/main.scss": 24320/*!*********************************************************************!*\ 24321 !*** ./assets/child/WaveElektroWandelt/build/styles/main/main.scss ***! 24322 \*********************************************************************/ 24323/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 24324 24325"use strict"; 24326__webpack_require__.r(__webpack_exports__); 24327// extracted by mini-css-extract-plugin 24328 24329 24330/***/ }), 24331
vendor: 88,926 bytes, lines 24332-26959
24332/***/ "./node_modules/popper.js/dist/esm/popper.js": 24333/*!***************************************************!*\ 24334 !*** ./node_modules/popper.js/dist/esm/popper.js ***! 24335 \***************************************************/ 24336/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 24337 24338"use strict"; 24339__webpack_require__.r(__webpack_exports__); 24340/**! 24341 * @fileOverview Kickass library to create and place poppers near their reference elements. 24342 * @version 1.16.1 24343 * @license 24344 * Copyright (c) 2016 Federico Zivolo and contributors 24345 * 24346 * Permission is hereby granted, free of charge, to any person obtaining a copy 24347 * of this software and associated documentation files (the "Software"), to deal 24348 * in the Software without restriction, including without limitation the rights 24349 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 24350 * copies of the Software, and to permit persons to whom the Software is 24351 * furnished to do so, subject to the following conditions: 24352 * 24353 * The above copyright notice and this permission notice shall be included in all 24354 * copies or substantial portions of the Software. 24355 * 24356 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24357 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 24358 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24359 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24360 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24361 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24362 * SOFTWARE. 24363 */ 24364var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined'; 24365 24366var timeoutDuration = function () { 24367 var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; 24368 for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { 24369 if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { 24370 return 1; 24371 } 24372 } 24373 return 0; 24374}(); 24375 24376function microtaskDebounce(fn) { 24377 var called = false; 24378 return function () { 24379 if (called) { 24380 return; 24381 } 24382 called = true; 24383 window.Promise.resolve().then(function () { 24384 called = false; 24385 fn(); 24386 }); 24387 }; 24388} 24389 24390function taskDebounce(fn) { 24391 var scheduled = false; 24392 return function () { 24393 if (!scheduled) { 24394 scheduled = true; 24395 setTimeout(function () { 24396 scheduled = false; 24397 fn(); 24398 }, timeoutDuration); 24399 } 24400 }; 24401} 24402 24403var supportsMicroTasks = isBrowser && window.Promise; 24404 24405/** 24406* Create a debounced version of a method, that's asynchronously deferred 24407* but called in the minimum time possible. 24408* 24409* @method 24410* @memberof Popper.Utils 24411* @argument {Function} fn 24412* @returns {Function} 24413*/ 24414var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce; 24415 24416/** 24417 * Check if the given variable is a function 24418 * @method 24419 * @memberof Popper.Utils 24420 * @argument {Any} functionToCheck - variable to check 24421 * @returns {Boolean} answer to: is a function? 24422 */ 24423function isFunction(functionToCheck) { 24424 var getType = {}; 24425 return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; 24426} 24427 24428/** 24429 * Get CSS computed property of the given element 24430 * @method 24431 * @memberof Popper.Utils 24432 * @argument {Eement} element 24433 * @argument {String} property 24434 */ 24435function getStyleComputedProperty(element, property) { 24436 if (element.nodeType !== 1) { 24437 return []; 24438 } 24439 // NOTE: 1 DOM access here 24440 var window = element.ownerDocument.defaultView; 24441 var css = window.getComputedStyle(element, null); 24442 return property ? css[property] : css; 24443} 24444 24445/** 24446 * Returns the parentNode or the host of the element 24447 * @method 24448 * @memberof Popper.Utils 24449 * @argument {Element} element 24450 * @returns {Element} parent 24451 */ 24452function getParentNode(element) { 24453 if (element.nodeName === 'HTML') { 24454 return element; 24455 } 24456 return element.parentNode || element.host; 24457} 24458 24459/** 24460 * Returns the scrolling parent of the given element 24461 * @method 24462 * @memberof Popper.Utils 24463 * @argument {Element} element 24464 * @returns {Element} scroll parent 24465 */ 24466function getScrollParent(element) { 24467 // Return body, `getScroll` will take care to get the correct `scrollTop` from it 24468 if (!element) { 24469 return document.body; 24470 } 24471 24472 switch (element.nodeName) { 24473 case 'HTML': 24474 case 'BODY': 24475 return element.ownerDocument.body; 24476 case '#document': 24477 return element.body; 24478 } 24479 24480 // Firefox want us to check `-x` and `-y` variations as well 24481 24482 var _getStyleComputedProp = getStyleComputedProperty(element), 24483 overflow = _getStyleComputedProp.overflow, 24484 overflowX = _getStyleComputedProp.overflowX, 24485 overflowY = _getStyleComputedProp.overflowY; 24486 24487 if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { 24488 return element; 24489 } 24490 24491 return getScrollParent(getParentNode(element)); 24492} 24493 24494/** 24495 * Returns the reference node of the reference object, or the reference object itself. 24496 * @method 24497 * @memberof Popper.Utils 24498 * @param {Element|Object} reference - the reference element (the popper will be relative to this) 24499 * @returns {Element} parent 24500 */ 24501function getReferenceNode(reference) { 24502 return reference && reference.referenceNode ? reference.referenceNode : reference; 24503} 24504 24505var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode); 24506var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent); 24507 24508/** 24509 * Determines if the browser is Internet Explorer 24510 * @method 24511 * @memberof Popper.Utils 24512 * @param {Number} version to check 24513 * @returns {Boolean} isIE 24514 */ 24515function isIE(version) { 24516 if (version === 11) { 24517 return isIE11; 24518 } 24519 if (version === 10) { 24520 return isIE10; 24521 } 24522 return isIE11 || isIE10; 24523} 24524 24525/** 24526 * Returns the offset parent of the given element 24527 * @method 24528 * @memberof Popper.Utils 24529 * @argument {Element} element 24530 * @returns {Element} offset parent 24531 */ 24532function getOffsetParent(element) { 24533 if (!element) { 24534 return document.documentElement; 24535 } 24536 24537 var noOffsetParent = isIE(10) ? document.body : null; 24538 24539 // NOTE: 1 DOM access here 24540 var offsetParent = element.offsetParent || null; 24541 // Skip hidden elements which don't have an offsetParent 24542 while (offsetParent === noOffsetParent && element.nextElementSibling) { 24543 offsetParent = (element = element.nextElementSibling).offsetParent; 24544 } 24545 24546 var nodeName = offsetParent && offsetParent.nodeName; 24547 24548 if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { 24549 return element ? element.ownerDocument.documentElement : document.documentElement; 24550 } 24551 24552 // .offsetParent will return the closest TH, TD or TABLE in case 24553 // no offsetParent is present, I hate this job... 24554 if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') { 24555 return getOffsetParent(offsetParent); 24556 } 24557 24558 return offsetParent; 24559} 24560 24561function isOffsetContainer(element) { 24562 var nodeName = element.nodeName; 24563 24564 if (nodeName === 'BODY') { 24565 return false; 24566 } 24567 return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element; 24568} 24569 24570/** 24571 * Finds the root node (document, shadowDOM root) of the given element 24572 * @method 24573 * @memberof Popper.Utils 24574 * @argument {Element} node 24575 * @returns {Element} root node 24576 */ 24577function getRoot(node) { 24578 if (node.parentNode !== null) { 24579 return getRoot(node.parentNode); 24580 } 24581 24582 return node; 24583} 24584 24585/** 24586 * Finds the offset parent common to the two provided nodes 24587 * @method 24588 * @memberof Popper.Utils 24589 * @argument {Element} element1 24590 * @argument {Element} element2 24591 * @returns {Element} common offset parent 24592 */ 24593function findCommonOffsetParent(element1, element2) { 24594 // This check is needed to avoid errors in case one of the elements isn't defined for any reason 24595 if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { 24596 return document.documentElement; 24597 } 24598 24599 // Here we make sure to give as "start" the element that comes first in the DOM 24600 var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; 24601 var start = order ? element1 : element2; 24602 var end = order ? element2 : element1; 24603 24604 // Get common ancestor container 24605 var range = document.createRange(); 24606 range.setStart(start, 0); 24607 range.setEnd(end, 0); 24608 var commonAncestorContainer = range.commonAncestorContainer; 24609 24610 // Both nodes are inside #document 24611 24612 if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { 24613 if (isOffsetContainer(commonAncestorContainer)) { 24614 return commonAncestorContainer; 24615 } 24616 24617 return getOffsetParent(commonAncestorContainer); 24618 } 24619 24620 // one of the nodes is inside shadowDOM, find which one 24621 var element1root = getRoot(element1); 24622 if (element1root.host) { 24623 return findCommonOffsetParent(element1root.host, element2); 24624 } else { 24625 return findCommonOffsetParent(element1, getRoot(element2).host); 24626 } 24627} 24628 24629/** 24630 * Gets the scroll value of the given element in the given side (top and left) 24631 * @method 24632 * @memberof Popper.Utils 24633 * @argument {Element} element 24634 * @argument {String} side `top` or `left` 24635 * @returns {number} amount of scrolled pixels 24636 */ 24637function getScroll(element) { 24638 var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top'; 24639 24640 var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; 24641 var nodeName = element.nodeName; 24642 24643 if (nodeName === 'BODY' || nodeName === 'HTML') { 24644 var html = element.ownerDocument.documentElement; 24645 var scrollingElement = element.ownerDocument.scrollingElement || html; 24646 return scrollingElement[upperSide]; 24647 } 24648 24649 return element[upperSide]; 24650} 24651 24652/* 24653 * Sum or subtract the element scroll values (left and top) from a given rect object 24654 * @method 24655 * @memberof Popper.Utils 24656 * @param {Object} rect - Rect object you want to change 24657 * @param {HTMLElement} element - The element from the function reads the scroll values 24658 * @param {Boolean} subtract - set to true if you want to subtract the scroll values 24659 * @return {Object} rect - The modifier rect object 24660 */ 24661function includeScroll(rect, element) { 24662 var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 24663 24664 var scrollTop = getScroll(element, 'top'); 24665 var scrollLeft = getScroll(element, 'left'); 24666 var modifier = subtract ? -1 : 1; 24667 rect.top += scrollTop * modifier; 24668 rect.bottom += scrollTop * modifier; 24669 rect.left += scrollLeft * modifier; 24670 rect.right += scrollLeft * modifier; 24671 return rect; 24672} 24673 24674/* 24675 * Helper to detect borders of a given element 24676 * @method 24677 * @memberof Popper.Utils 24678 * @param {CSSStyleDeclaration} styles 24679 * Result of `getStyleComputedProperty` on the given element 24680 * @param {String} axis - `x` or `y` 24681 * @return {number} borders - The borders size of the given axis 24682 */ 24683 24684function getBordersSize(styles, axis) { 24685 var sideA = axis === 'x' ? 'Left' : 'Top'; 24686 var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; 24687 24688 return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']); 24689} 24690 24691function getSize(axis, body, html, computedStyle) { 24692 return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0); 24693} 24694 24695function getWindowSizes(document) { 24696 var body = document.body; 24697 var html = document.documentElement; 24698 var computedStyle = isIE(10) && getComputedStyle(html); 24699 24700 return { 24701 height: getSize('Height', body, html, computedStyle), 24702 width: getSize('Width', body, html, computedStyle) 24703 }; 24704} 24705 24706var classCallCheck = function (instance, Constructor) { 24707 if (!(instance instanceof Constructor)) { 24708 throw new TypeError("Cannot call a class as a function"); 24709 } 24710}; 24711 24712var createClass = function () { 24713 function defineProperties(target, props) { 24714 for (var i = 0; i < props.length; i++) { 24715 var descriptor = props[i]; 24716 descriptor.enumerable = descriptor.enumerable || false; 24717 descriptor.configurable = true; 24718 if ("value" in descriptor) descriptor.writable = true; 24719 Object.defineProperty(target, descriptor.key, descriptor); 24720 } 24721 } 24722 24723 return function (Constructor, protoProps, staticProps) { 24724 if (protoProps) defineProperties(Constructor.prototype, protoProps); 24725 if (staticProps) defineProperties(Constructor, staticProps); 24726 return Constructor; 24727 }; 24728}(); 24729 24730 24731 24732 24733 24734var defineProperty = function (obj, key, value) { 24735 if (key in obj) { 24736 Object.defineProperty(obj, key, { 24737 value: value, 24738 enumerable: true, 24739 configurable: true, 24740 writable: true 24741 }); 24742 } else { 24743 obj[key] = value; 24744 } 24745 24746 return obj; 24747}; 24748 24749var _extends = Object.assign || function (target) { 24750 for (var i = 1; i < arguments.length; i++) { 24751 var source = arguments[i]; 24752 24753 for (var key in source) { 24754 if (Object.prototype.hasOwnProperty.call(source, key)) { 24755 target[key] = source[key]; 24756 } 24757 } 24758 } 24759 24760 return target; 24761}; 24762 24763/** 24764 * Given element offsets, generate an output similar to getBoundingClientRect 24765 * @method 24766 * @memberof Popper.Utils 24767 * @argument {Object} offsets 24768 * @returns {Object} ClientRect like output 24769 */ 24770function getClientRect(offsets) { 24771 return _extends({}, offsets, { 24772 right: offsets.left + offsets.width, 24773 bottom: offsets.top + offsets.height 24774 }); 24775} 24776 24777/** 24778 * Get bounding client rect of given element 24779 * @method 24780 * @memberof Popper.Utils 24781 * @param {HTMLElement} element 24782 * @return {Object} client rect 24783 */ 24784function getBoundingClientRect(element) { 24785 var rect = {}; 24786 24787 // IE10 10 FIX: Please, don't ask, the element isn't 24788 // considered in DOM in some circumstances... 24789 // This isn't reproducible in IE10 compatibility mode of IE11 24790 try { 24791 if (isIE(10)) { 24792 rect = element.getBoundingClientRect(); 24793 var scrollTop = getScroll(element, 'top'); 24794 var scrollLeft = getScroll(element, 'left'); 24795 rect.top += scrollTop; 24796 rect.left += scrollLeft; 24797 rect.bottom += scrollTop; 24798 rect.right += scrollLeft; 24799 } else { 24800 rect = element.getBoundingClientRect(); 24801 } 24802 } catch (e) {} 24803 24804 var result = { 24805 left: rect.left, 24806 top: rect.top, 24807 width: rect.right - rect.left, 24808 height: rect.bottom - rect.top 24809 }; 24810 24811 // subtract scrollbar size from sizes 24812 var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {}; 24813 var width = sizes.width || element.clientWidth || result.width; 24814 var height = sizes.height || element.clientHeight || result.height; 24815 24816 var horizScrollbar = element.offsetWidth - width; 24817 var vertScrollbar = element.offsetHeight - height; 24818 24819 // if an hypothetical scrollbar is detected, we must be sure it's not a `border` 24820 // we make this check conditional for performance reasons 24821 if (horizScrollbar || vertScrollbar) { 24822 var styles = getStyleComputedProperty(element); 24823 horizScrollbar -= getBordersSize(styles, 'x'); 24824 vertScrollbar -= getBordersSize(styles, 'y'); 24825 24826 result.width -= horizScrollbar; 24827 result.height -= vertScrollbar; 24828 } 24829 24830 return getClientRect(result); 24831} 24832 24833function getOffsetRectRelativeToArbitraryNode(children, parent) { 24834 var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 24835 24836 var isIE10 = isIE(10); 24837 var isHTML = parent.nodeName === 'HTML'; 24838 var childrenRect = getBoundingClientRect(children); 24839 var parentRect = getBoundingClientRect(parent); 24840 var scrollParent = getScrollParent(children); 24841 24842 var styles = getStyleComputedProperty(parent); 24843 var borderTopWidth = parseFloat(styles.borderTopWidth); 24844 var borderLeftWidth = parseFloat(styles.borderLeftWidth); 24845 24846 // In cases where the parent is fixed, we must ignore negative scroll in offset calc 24847 if (fixedPosition && isHTML) { 24848 parentRect.top = Math.max(parentRect.top, 0); 24849 parentRect.left = Math.max(parentRect.left, 0); 24850 } 24851 var offsets = getClientRect({ 24852 top: childrenRect.top - parentRect.top - borderTopWidth, 24853 left: childrenRect.left - parentRect.left - borderLeftWidth, 24854 width: childrenRect.width, 24855 height: childrenRect.height 24856 }); 24857 offsets.marginTop = 0; 24858 offsets.marginLeft = 0; 24859 24860 // Subtract margins of documentElement in case it's being used as parent 24861 // we do this only on HTML because it's the only element that behaves 24862 // differently when margins are applied to it. The margins are included in 24863 // the box of the documentElement, in the other cases not. 24864 if (!isIE10 && isHTML) { 24865 var marginTop = parseFloat(styles.marginTop); 24866 var marginLeft = parseFloat(styles.marginLeft); 24867 24868 offsets.top -= borderTopWidth - marginTop; 24869 offsets.bottom -= borderTopWidth - marginTop; 24870 offsets.left -= borderLeftWidth - marginLeft; 24871 offsets.right -= borderLeftWidth - marginLeft; 24872 24873 // Attach marginTop and marginLeft because in some circumstances we may need them 24874 offsets.marginTop = marginTop; 24875 offsets.marginLeft = marginLeft; 24876 } 24877 24878 if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') { 24879 offsets = includeScroll(offsets, parent); 24880 } 24881 24882 return offsets; 24883} 24884 24885function getViewportOffsetRectRelativeToArtbitraryNode(element) { 24886 var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 24887 24888 var html = element.ownerDocument.documentElement; 24889 var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); 24890 var width = Math.max(html.clientWidth, window.innerWidth || 0); 24891 var height = Math.max(html.clientHeight, window.innerHeight || 0); 24892 24893 var scrollTop = !excludeScroll ? getScroll(html) : 0; 24894 var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0; 24895 24896 var offset = { 24897 top: scrollTop - relativeOffset.top + relativeOffset.marginTop, 24898 left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, 24899 width: width, 24900 height: height 24901 }; 24902 24903 return getClientRect(offset); 24904} 24905 24906/** 24907 * Check if the given element is fixed or is inside a fixed parent 24908 * @method 24909 * @memberof Popper.Utils 24910 * @argument {Element} element 24911 * @argument {Element} customContainer 24912 * @returns {Boolean} answer to "isFixed?" 24913 */ 24914function isFixed(element) { 24915 var nodeName = element.nodeName; 24916 if (nodeName === 'BODY' || nodeName === 'HTML') { 24917 return false; 24918 } 24919 if (getStyleComputedProperty(element, 'position') === 'fixed') { 24920 return true; 24921 } 24922 var parentNode = getParentNode(element); 24923 if (!parentNode) { 24924 return false; 24925 } 24926 return isFixed(parentNode); 24927} 24928 24929/** 24930 * Finds the first parent of an element that has a transformed property defined 24931 * @method 24932 * @memberof Popper.Utils 24933 * @argument {Element} element 24934 * @returns {Element} first transformed parent or documentElement 24935 */ 24936 24937function getFixedPositionOffsetParent(element) { 24938 // This check is needed to avoid errors in case one of the elements isn't defined for any reason 24939 if (!element || !element.parentElement || isIE()) { 24940 return document.documentElement; 24941 } 24942 var el = element.parentElement; 24943 while (el && getStyleComputedProperty(el, 'transform') === 'none') { 24944 el = el.parentElement; 24945 } 24946 return el || document.documentElement; 24947} 24948 24949/** 24950 * Computed the boundaries limits and return them 24951 * @method 24952 * @memberof Popper.Utils 24953 * @param {HTMLElement} popper 24954 * @param {HTMLElement} reference 24955 * @param {number} padding 24956 * @param {HTMLElement} boundariesElement - Element used to define the boundaries 24957 * @param {Boolean} fixedPosition - Is in fixed position mode 24958 * @returns {Object} Coordinates of the boundaries 24959 */ 24960function getBoundaries(popper, reference, padding, boundariesElement) { 24961 var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; 24962 24963 // NOTE: 1 DOM access here 24964 24965 var boundaries = { top: 0, left: 0 }; 24966 var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); 24967 24968 // Handle viewport case 24969 if (boundariesElement === 'viewport') { 24970 boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition); 24971 } else { 24972 // Handle other cases based on DOM element used as boundaries 24973 var boundariesNode = void 0; 24974 if (boundariesElement === 'scrollParent') { 24975 boundariesNode = getScrollParent(getParentNode(reference)); 24976 if (boundariesNode.nodeName === 'BODY') { 24977 boundariesNode = popper.ownerDocument.documentElement; 24978 } 24979 } else if (boundariesElement === 'window') { 24980 boundariesNode = popper.ownerDocument.documentElement; 24981 } else { 24982 boundariesNode = boundariesElement; 24983 } 24984 24985 var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); 24986 24987 // In case of HTML, we need a different computation 24988 if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) { 24989 var _getWindowSizes = getWindowSizes(popper.ownerDocument), 24990 height = _getWindowSizes.height, 24991 width = _getWindowSizes.width; 24992 24993 boundaries.top += offsets.top - offsets.marginTop; 24994 boundaries.bottom = height + offsets.top; 24995 boundaries.left += offsets.left - offsets.marginLeft; 24996 boundaries.right = width + offsets.left; 24997 } else { 24998 // for all the other DOM elements, this one is good 24999 boundaries = offsets; 25000 } 25001 } 25002 25003 // Add paddings 25004 padding = padding || 0; 25005 var isPaddingNumber = typeof padding === 'number'; 25006 boundaries.left += isPaddingNumber ? padding : padding.left || 0; 25007 boundaries.top += isPaddingNumber ? padding : padding.top || 0; 25008 boundaries.right -= isPaddingNumber ? padding : padding.right || 0; 25009 boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; 25010 25011 return boundaries; 25012} 25013 25014function getArea(_ref) { 25015 var width = _ref.width, 25016 height = _ref.height; 25017 25018 return width * height; 25019} 25020 25021/** 25022 * Utility used to transform the `auto` placement to the placement with more 25023 * available space. 25024 * @method 25025 * @memberof Popper.Utils 25026 * @argument {Object} data - The data object generated by update method 25027 * @argument {Object} options - Modifiers configuration and options 25028 * @returns {Object} The data object, properly modified 25029 */ 25030function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) { 25031 var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; 25032 25033 if (placement.indexOf('auto') === -1) { 25034 return placement; 25035 } 25036 25037 var boundaries = getBoundaries(popper, reference, padding, boundariesElement); 25038 25039 var rects = { 25040 top: { 25041 width: boundaries.width, 25042 height: refRect.top - boundaries.top 25043 }, 25044 right: { 25045 width: boundaries.right - refRect.right, 25046 height: boundaries.height 25047 }, 25048 bottom: { 25049 width: boundaries.width, 25050 height: boundaries.bottom - refRect.bottom 25051 }, 25052 left: { 25053 width: refRect.left - boundaries.left, 25054 height: boundaries.height 25055 } 25056 }; 25057 25058 var sortedAreas = Object.keys(rects).map(function (key) { 25059 return _extends({ 25060 key: key 25061 }, rects[key], { 25062 area: getArea(rects[key]) 25063 }); 25064 }).sort(function (a, b) { 25065 return b.area - a.area; 25066 }); 25067 25068 var filteredAreas = sortedAreas.filter(function (_ref2) { 25069 var width = _ref2.width, 25070 height = _ref2.height; 25071 return width >= popper.clientWidth && height >= popper.clientHeight; 25072 }); 25073 25074 var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; 25075 25076 var variation = placement.split('-')[1]; 25077 25078 return computedPlacement + (variation ? '-' + variation : ''); 25079} 25080 25081/** 25082 * Get offsets to the reference element 25083 * @method 25084 * @memberof Popper.Utils 25085 * @param {Object} state 25086 * @param {Element} popper - the popper element 25087 * @param {Element} reference - the reference element (the popper will be relative to this) 25088 * @param {Element} fixedPosition - is in fixed position mode 25089 * @returns {Object} An object containing the offsets which will be applied to the popper 25090 */ 25091function getReferenceOffsets(state, popper, reference) { 25092 var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; 25093 25094 var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); 25095 return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); 25096} 25097 25098/** 25099 * Get the outer sizes of the given element (offset size + margins) 25100 * @method 25101 * @memberof Popper.Utils 25102 * @argument {Element} element 25103 * @returns {Object} object containing width and height properties 25104 */ 25105function getOuterSizes(element) { 25106 var window = element.ownerDocument.defaultView; 25107 var styles = window.getComputedStyle(element); 25108 var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0); 25109 var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0); 25110 var result = { 25111 width: element.offsetWidth + y, 25112 height: element.offsetHeight + x 25113 }; 25114 return result; 25115} 25116 25117/** 25118 * Get the opposite placement of the given one 25119 * @method 25120 * @memberof Popper.Utils 25121 * @argument {String} placement 25122 * @returns {String} flipped placement 25123 */ 25124function getOppositePlacement(placement) { 25125 var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; 25126 return placement.replace(/left|right|bottom|top/g, function (matched) { 25127 return hash[matched]; 25128 }); 25129} 25130 25131/** 25132 * Get offsets to the popper 25133 * @method 25134 * @memberof Popper.Utils 25135 * @param {Object} position - CSS position the Popper will get applied 25136 * @param {HTMLElement} popper - the popper element 25137 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this) 25138 * @param {String} placement - one of the valid placement options 25139 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper 25140 */ 25141function getPopperOffsets(popper, referenceOffsets, placement) { 25142 placement = placement.split('-')[0]; 25143 25144 // Get popper node sizes 25145 var popperRect = getOuterSizes(popper); 25146 25147 // Add position, width and height to our offsets object 25148 var popperOffsets = { 25149 width: popperRect.width, 25150 height: popperRect.height 25151 }; 25152 25153 // depending by the popper placement we have to compute its offsets slightly differently 25154 var isHoriz = ['right', 'left'].indexOf(placement) !== -1; 25155 var mainSide = isHoriz ? 'top' : 'left'; 25156 var secondarySide = isHoriz ? 'left' : 'top'; 25157 var measurement = isHoriz ? 'height' : 'width'; 25158 var secondaryMeasurement = !isHoriz ? 'height' : 'width'; 25159 25160 popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; 25161 if (placement === secondarySide) { 25162 popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; 25163 } else { 25164 popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; 25165 } 25166 25167 return popperOffsets; 25168} 25169 25170/** 25171 * Mimics the `find` method of Array 25172 * @method 25173 * @memberof Popper.Utils 25174 * @argument {Array} arr 25175 * @argument prop 25176 * @argument value 25177 * @returns index or -1 25178 */ 25179function find(arr, check) { 25180 // use native find if supported 25181 if (Array.prototype.find) { 25182 return arr.find(check); 25183 } 25184 25185 // use `filter` to obtain the same behavior of `find` 25186 return arr.filter(check)[0]; 25187} 25188 25189/** 25190 * Return the index of the matching object 25191 * @method 25192 * @memberof Popper.Utils 25193 * @argument {Array} arr 25194 * @argument prop 25195 * @argument value 25196 * @returns index or -1 25197 */ 25198function findIndex(arr, prop, value) { 25199 // use native findIndex if supported 25200 if (Array.prototype.findIndex) { 25201 return arr.findIndex(function (cur) { 25202 return cur[prop] === value; 25203 }); 25204 } 25205 25206 // use `find` + `indexOf` if `findIndex` isn't supported 25207 var match = find(arr, function (obj) { 25208 return obj[prop] === value; 25209 }); 25210 return arr.indexOf(match); 25211} 25212 25213/** 25214 * Loop trough the list of modifiers and run them in order, 25215 * each of them will then edit the data object. 25216 * @method 25217 * @memberof Popper.Utils 25218 * @param {dataObject} data 25219 * @param {Array} modifiers 25220 * @param {String} ends - Optional modifier name used as stopper 25221 * @returns {dataObject} 25222 */ 25223function runModifiers(modifiers, data, ends) { 25224 var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends)); 25225 25226 modifiersToRun.forEach(function (modifier) { 25227 if (modifier['function']) { 25228 // eslint-disable-line dot-notation 25229 console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); 25230 } 25231 var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation 25232 if (modifier.enabled && isFunction(fn)) { 25233 // Add properties to offsets to make them a complete clientRect object 25234 // we do this before each modifier to make sure the previous one doesn't 25235 // mess with these values 25236 data.offsets.popper = getClientRect(data.offsets.popper); 25237 data.offsets.reference = getClientRect(data.offsets.reference); 25238 25239 data = fn(data, modifier); 25240 } 25241 }); 25242 25243 return data; 25244} 25245 25246/** 25247 * Updates the position of the popper, computing the new offsets and applying 25248 * the new style.<br /> 25249 * Prefer `scheduleUpdate` over `update` because of performance reasons. 25250 * @method 25251 * @memberof Popper 25252 */ 25253function update() { 25254 // if popper is destroyed, don't perform any further update 25255 if (this.state.isDestroyed) { 25256 return; 25257 } 25258 25259 var data = { 25260 instance: this, 25261 styles: {}, 25262 arrowStyles: {}, 25263 attributes: {}, 25264 flipped: false, 25265 offsets: {} 25266 }; 25267 25268 // compute reference element offsets 25269 data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); 25270 25271 // compute auto placement, store placement inside the data object, 25272 // modifiers will be able to edit `placement` if needed 25273 // and refer to originalPlacement to know the original value 25274 data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); 25275 25276 // store the computed placement inside `originalPlacement` 25277 data.originalPlacement = data.placement; 25278 25279 data.positionFixed = this.options.positionFixed; 25280 25281 // compute the popper offsets 25282 data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); 25283 25284 data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; 25285 25286 // run the modifiers 25287 data = runModifiers(this.modifiers, data); 25288 25289 // the first `update` will call `onCreate` callback 25290 // the other ones will call `onUpdate` callback 25291 if (!this.state.isCreated) { 25292 this.state.isCreated = true; 25293 this.options.onCreate(data); 25294 } else { 25295 this.options.onUpdate(data); 25296 } 25297} 25298 25299/** 25300 * Helper used to know if the given modifier is enabled. 25301 * @method 25302 * @memberof Popper.Utils 25303 * @returns {Boolean} 25304 */ 25305function isModifierEnabled(modifiers, modifierName) { 25306 return modifiers.some(function (_ref) { 25307 var name = _ref.name, 25308 enabled = _ref.enabled; 25309 return enabled && name === modifierName; 25310 }); 25311} 25312 25313/** 25314 * Get the prefixed supported property name 25315 * @method 25316 * @memberof Popper.Utils 25317 * @argument {String} property (camelCase) 25318 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) 25319 */ 25320function getSupportedPropertyName(property) { 25321 var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; 25322 var upperProp = property.charAt(0).toUpperCase() + property.slice(1); 25323 25324 for (var i = 0; i < prefixes.length; i++) { 25325 var prefix = prefixes[i]; 25326 var toCheck = prefix ? '' + prefix + upperProp : property; 25327 if (typeof document.body.style[toCheck] !== 'undefined') { 25328 return toCheck; 25329 } 25330 } 25331 return null; 25332} 25333 25334/** 25335 * Destroys the popper. 25336 * @method 25337 * @memberof Popper 25338 */ 25339function destroy() { 25340 this.state.isDestroyed = true; 25341 25342 // touch DOM only if `applyStyle` modifier is enabled 25343 if (isModifierEnabled(this.modifiers, 'applyStyle')) { 25344 this.popper.removeAttribute('x-placement'); 25345 this.popper.style.position = ''; 25346 this.popper.style.top = ''; 25347 this.popper.style.left = ''; 25348 this.popper.style.right = ''; 25349 this.popper.style.bottom = ''; 25350 this.popper.style.willChange = ''; 25351 this.popper.style[getSupportedPropertyName('transform')] = ''; 25352 } 25353 25354 this.disableEventListeners(); 25355 25356 // remove the popper if user explicitly asked for the deletion on destroy 25357 // do not use `remove` because IE11 doesn't support it 25358 if (this.options.removeOnDestroy) { 25359 this.popper.parentNode.removeChild(this.popper); 25360 } 25361 return this; 25362} 25363 25364/** 25365 * Get the window associated with the element 25366 * @argument {Element} element 25367 * @returns {Window} 25368 */ 25369function getWindow(element) { 25370 var ownerDocument = element.ownerDocument; 25371 return ownerDocument ? ownerDocument.defaultView : window; 25372} 25373 25374function attachToScrollParents(scrollParent, event, callback, scrollParents) { 25375 var isBody = scrollParent.nodeName === 'BODY'; 25376 var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; 25377 target.addEventListener(event, callback, { passive: true }); 25378 25379 if (!isBody) { 25380 attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); 25381 } 25382 scrollParents.push(target); 25383} 25384 25385/** 25386 * Setup needed event listeners used to update the popper position 25387 * @method 25388 * @memberof Popper.Utils 25389 * @private 25390 */ 25391function setupEventListeners(reference, options, state, updateBound) { 25392 // Resize event listener on window 25393 state.updateBound = updateBound; 25394 getWindow(reference).addEventListener('resize', state.updateBound, { passive: true }); 25395 25396 // Scroll event listener on scroll parents 25397 var scrollElement = getScrollParent(reference); 25398 attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents); 25399 state.scrollElement = scrollElement; 25400 state.eventsEnabled = true; 25401 25402 return state; 25403} 25404 25405/** 25406 * It will add resize/scroll events and start recalculating 25407 * position of the popper element when they are triggered. 25408 * @method 25409 * @memberof Popper 25410 */ 25411function enableEventListeners() { 25412 if (!this.state.eventsEnabled) { 25413 this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); 25414 } 25415} 25416 25417/** 25418 * Remove event listeners used to update the popper position 25419 * @method 25420 * @memberof Popper.Utils 25421 * @private 25422 */ 25423function removeEventListeners(reference, state) { 25424 // Remove resize event listener on window 25425 getWindow(reference).removeEventListener('resize', state.updateBound); 25426 25427 // Remove scroll event listener on scroll parents 25428 state.scrollParents.forEach(function (target) { 25429 target.removeEventListener('scroll', state.updateBound); 25430 }); 25431 25432 // Reset state 25433 state.updateBound = null; 25434 state.scrollParents = []; 25435 state.scrollElement = null; 25436 state.eventsEnabled = false; 25437 return state; 25438} 25439 25440/** 25441 * It will remove resize/scroll events and won't recalculate popper position 25442 * when they are triggered. It also won't trigger `onUpdate` callback anymore, 25443 * unless you call `update` method manually. 25444 * @method 25445 * @memberof Popper 25446 */ 25447function disableEventListeners() { 25448 if (this.state.eventsEnabled) { 25449 cancelAnimationFrame(this.scheduleUpdate); 25450 this.state = removeEventListeners(this.reference, this.state); 25451 } 25452} 25453 25454/** 25455 * Tells if a given input is a number 25456 * @method 25457 * @memberof Popper.Utils 25458 * @param {*} input to check 25459 * @return {Boolean} 25460 */ 25461function isNumeric(n) { 25462 return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); 25463} 25464 25465/** 25466 * Set the style to the given popper 25467 * @method 25468 * @memberof Popper.Utils 25469 * @argument {Element} element - Element to apply the style to 25470 * @argument {Object} styles 25471 * Object with a list of properties and values which will be applied to the element 25472 */ 25473function setStyles(element, styles) { 25474 Object.keys(styles).forEach(function (prop) { 25475 var unit = ''; 25476 // add unit if the value is numeric and is one of the following 25477 if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) { 25478 unit = 'px'; 25479 } 25480 element.style[prop] = styles[prop] + unit; 25481 }); 25482} 25483 25484/** 25485 * Set the attributes to the given popper 25486 * @method 25487 * @memberof Popper.Utils 25488 * @argument {Element} element - Element to apply the attributes to 25489 * @argument {Object} styles 25490 * Object with a list of properties and values which will be applied to the element 25491 */ 25492function setAttributes(element, attributes) { 25493 Object.keys(attributes).forEach(function (prop) { 25494 var value = attributes[prop]; 25495 if (value !== false) { 25496 element.setAttribute(prop, attributes[prop]); 25497 } else { 25498 element.removeAttribute(prop); 25499 } 25500 }); 25501} 25502 25503/** 25504 * @function 25505 * @memberof Modifiers 25506 * @argument {Object} data - The data object generated by `update` method 25507 * @argument {Object} data.styles - List of style properties - values to apply to popper element 25508 * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element 25509 * @argument {Object} options - Modifiers configuration and options 25510 * @returns {Object} The same data object 25511 */ 25512function applyStyle(data) { 25513 // any property present in `data.styles` will be applied to the popper, 25514 // in this way we can make the 3rd party modifiers add custom styles to it 25515 // Be aware, modifiers could override the properties defined in the previous 25516 // lines of this modifier! 25517 setStyles(data.instance.popper, data.styles); 25518 25519 // any property present in `data.attributes` will be applied to the popper, 25520 // they will be set as HTML attributes of the element 25521 setAttributes(data.instance.popper, data.attributes); 25522 25523 // if arrowElement is defined and arrowStyles has some properties 25524 if (data.arrowElement && Object.keys(data.arrowStyles).length) { 25525 setStyles(data.arrowElement, data.arrowStyles); 25526 } 25527 25528 return data; 25529} 25530 25531/** 25532 * Set the x-placement attribute before everything else because it could be used 25533 * to add margins to the popper margins needs to be calculated to get the 25534 * correct popper offsets. 25535 * @method 25536 * @memberof Popper.modifiers 25537 * @param {HTMLElement} reference - The reference element used to position the popper 25538 * @param {HTMLElement} popper - The HTML element used as popper 25539 * @param {Object} options - Popper.js options 25540 */ 25541function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { 25542 // compute reference element offsets 25543 var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); 25544 25545 // compute auto placement, store placement inside the data object, 25546 // modifiers will be able to edit `placement` if needed 25547 // and refer to originalPlacement to know the original value 25548 var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); 25549 25550 popper.setAttribute('x-placement', placement); 25551 25552 // Apply `position` to popper before anything else because 25553 // without the position applied we can't guarantee correct computations 25554 setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' }); 25555 25556 return options; 25557} 25558 25559/** 25560 * @function 25561 * @memberof Popper.Utils 25562 * @argument {Object} data - The data object generated by `update` method 25563 * @argument {Boolean} shouldRound - If the offsets should be rounded at all 25564 * @returns {Object} The popper's position offsets rounded 25565 * 25566 * The tale of pixel-perfect positioning. It's still not 100% perfect, but as 25567 * good as it can be within reason. 25568 * Discussion here: https://github.com/FezVrasta/popper.js/pull/715 25569 * 25570 * Low DPI screens cause a popper to be blurry if not using full pixels (Safari 25571 * as well on High DPI screens). 25572 * 25573 * Firefox prefers no rounding for positioning and does not have blurriness on 25574 * high DPI screens. 25575 * 25576 * Only horizontal placement and left/right values need to be considered. 25577 */ 25578function getRoundedOffsets(data, shouldRound) { 25579 var _data$offsets = data.offsets, 25580 popper = _data$offsets.popper, 25581 reference = _data$offsets.reference; 25582 var round = Math.round, 25583 floor = Math.floor; 25584 25585 var noRound = function noRound(v) { 25586 return v; 25587 }; 25588 25589 var referenceWidth = round(reference.width); 25590 var popperWidth = round(popper.width); 25591 25592 var isVertical = ['left', 'right'].indexOf(data.placement) !== -1; 25593 var isVariation = data.placement.indexOf('-') !== -1; 25594 var sameWidthParity = referenceWidth % 2 === popperWidth % 2; 25595 var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1; 25596 25597 var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor; 25598 var verticalToInteger = !shouldRound ? noRound : round; 25599 25600 return { 25601 left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left), 25602 top: verticalToInteger(popper.top), 25603 bottom: verticalToInteger(popper.bottom), 25604 right: horizontalToInteger(popper.right) 25605 }; 25606} 25607 25608var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent); 25609 25610/** 25611 * @function 25612 * @memberof Modifiers 25613 * @argument {Object} data - The data object generated by `update` method 25614 * @argument {Object} options - Modifiers configuration and options 25615 * @returns {Object} The data object, properly modified 25616 */ 25617function computeStyle(data, options) { 25618 var x = options.x, 25619 y = options.y; 25620 var popper = data.offsets.popper; 25621 25622 // Remove this legacy support in Popper.js v2 25623 25624 var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) { 25625 return modifier.name === 'applyStyle'; 25626 }).gpuAcceleration; 25627 if (legacyGpuAccelerationOption !== undefined) { 25628 console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); 25629 } 25630 var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration; 25631 25632 var offsetParent = getOffsetParent(data.instance.popper); 25633 var offsetParentRect = getBoundingClientRect(offsetParent); 25634 25635 // Styles 25636 var styles = { 25637 position: popper.position 25638 }; 25639 25640 var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox); 25641 25642 var sideA = x === 'bottom' ? 'top' : 'bottom'; 25643 var sideB = y === 'right' ? 'left' : 'right'; 25644 25645 // if gpuAcceleration is set to `true` and transform is supported, 25646 // we use `translate3d` to apply the position to the popper we 25647 // automatically use the supported prefixed version if needed 25648 var prefixedProperty = getSupportedPropertyName('transform'); 25649 25650 // now, let's make a step back and look at this code closely (wtf?) 25651 // If the content of the popper grows once it's been positioned, it 25652 // may happen that the popper gets misplaced because of the new content 25653 // overflowing its reference element 25654 // To avoid this problem, we provide two options (x and y), which allow 25655 // the consumer to define the offset origin. 25656 // If we position a popper on top of a reference element, we can set 25657 // `x` to `top` to make the popper grow towards its top instead of 25658 // its bottom. 25659 var left = void 0, 25660 top = void 0; 25661 if (sideA === 'bottom') { 25662 // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar) 25663 // and not the bottom of the html element 25664 if (offsetParent.nodeName === 'HTML') { 25665 top = -offsetParent.clientHeight + offsets.bottom; 25666 } else { 25667 top = -offsetParentRect.height + offsets.bottom; 25668 } 25669 } else { 25670 top = offsets.top; 25671 } 25672 if (sideB === 'right') { 25673 if (offsetParent.nodeName === 'HTML') { 25674 left = -offsetParent.clientWidth + offsets.right; 25675 } else { 25676 left = -offsetParentRect.width + offsets.right; 25677 } 25678 } else { 25679 left = offsets.left; 25680 } 25681 if (gpuAcceleration && prefixedProperty) { 25682 styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)'; 25683 styles[sideA] = 0; 25684 styles[sideB] = 0; 25685 styles.willChange = 'transform'; 25686 } else { 25687 // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties 25688 var invertTop = sideA === 'bottom' ? -1 : 1; 25689 var invertLeft = sideB === 'right' ? -1 : 1; 25690 styles[sideA] = top * invertTop; 25691 styles[sideB] = left * invertLeft; 25692 styles.willChange = sideA + ', ' + sideB; 25693 } 25694 25695 // Attributes 25696 var attributes = { 25697 'x-placement': data.placement 25698 }; 25699 25700 // Update `data` attributes, styles and arrowStyles 25701 data.attributes = _extends({}, attributes, data.attributes); 25702 data.styles = _extends({}, styles, data.styles); 25703 data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles); 25704 25705 return data; 25706} 25707 25708/** 25709 * Helper used to know if the given modifier depends from another one.<br /> 25710 * It checks if the needed modifier is listed and enabled. 25711 * @method 25712 * @memberof Popper.Utils 25713 * @param {Array} modifiers - list of modifiers 25714 * @param {String} requestingName - name of requesting modifier 25715 * @param {String} requestedName - name of requested modifier 25716 * @returns {Boolean} 25717 */ 25718function isModifierRequired(modifiers, requestingName, requestedName) { 25719 var requesting = find(modifiers, function (_ref) { 25720 var name = _ref.name; 25721 return name === requestingName; 25722 }); 25723 25724 var isRequired = !!requesting && modifiers.some(function (modifier) { 25725 return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; 25726 }); 25727 25728 if (!isRequired) { 25729 var _requesting = '`' + requestingName + '`'; 25730 var requested = '`' + requestedName + '`'; 25731 console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!'); 25732 } 25733 return isRequired; 25734} 25735 25736/** 25737 * @function 25738 * @memberof Modifiers 25739 * @argument {Object} data - The data object generated by update method 25740 * @argument {Object} options - Modifiers configuration and options 25741 * @returns {Object} The data object, properly modified 25742 */ 25743function arrow(data, options) { 25744 var _data$offsets$arrow; 25745 25746 // arrow depends on keepTogether in order to work 25747 if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) { 25748 return data; 25749 } 25750 25751 var arrowElement = options.element; 25752 25753 // if arrowElement is a string, suppose it's a CSS selector 25754 if (typeof arrowElement === 'string') { 25755 arrowElement = data.instance.popper.querySelector(arrowElement); 25756 25757 // if arrowElement is not found, don't run the modifier 25758 if (!arrowElement) { 25759 return data; 25760 } 25761 } else { 25762 // if the arrowElement isn't a query selector we must check that the 25763 // provided DOM node is child of its popper node 25764 if (!data.instance.popper.contains(arrowElement)) { 25765 console.warn('WARNING: `arrow.element` must be child of its popper element!'); 25766 return data; 25767 } 25768 } 25769 25770 var placement = data.placement.split('-')[0]; 25771 var _data$offsets = data.offsets, 25772 popper = _data$offsets.popper, 25773 reference = _data$offsets.reference; 25774 25775 var isVertical = ['left', 'right'].indexOf(placement) !== -1; 25776 25777 var len = isVertical ? 'height' : 'width'; 25778 var sideCapitalized = isVertical ? 'Top' : 'Left'; 25779 var side = sideCapitalized.toLowerCase(); 25780 var altSide = isVertical ? 'left' : 'top'; 25781 var opSide = isVertical ? 'bottom' : 'right'; 25782 var arrowElementSize = getOuterSizes(arrowElement)[len]; 25783 25784 // 25785 // extends keepTogether behavior making sure the popper and its 25786 // reference have enough pixels in conjunction 25787 // 25788 25789 // top/left side 25790 if (reference[opSide] - arrowElementSize < popper[side]) { 25791 data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize); 25792 } 25793 // bottom/right side 25794 if (reference[side] + arrowElementSize > popper[opSide]) { 25795 data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide]; 25796 } 25797 data.offsets.popper = getClientRect(data.offsets.popper); 25798 25799 // compute center of the popper 25800 var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; 25801 25802 // Compute the sideValue using the updated popper offsets 25803 // take popper margin in account because we don't have this info available 25804 var css = getStyleComputedProperty(data.instance.popper); 25805 var popperMarginSide = parseFloat(css['margin' + sideCapitalized]); 25806 var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']); 25807 var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; 25808 25809 // prevent arrowElement from being placed not contiguously to its popper 25810 sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0); 25811 25812 data.arrowElement = arrowElement; 25813 data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow); 25814 25815 return data; 25816} 25817 25818/** 25819 * Get the opposite placement variation of the given one 25820 * @method 25821 * @memberof Popper.Utils 25822 * @argument {String} placement variation 25823 * @returns {String} flipped placement variation 25824 */ 25825function getOppositeVariation(variation) { 25826 if (variation === 'end') { 25827 return 'start'; 25828 } else if (variation === 'start') { 25829 return 'end'; 25830 } 25831 return variation; 25832} 25833 25834/** 25835 * List of accepted placements to use as values of the `placement` option.<br /> 25836 * Valid placements are: 25837 * - `auto` 25838 * - `top` 25839 * - `right` 25840 * - `bottom` 25841 * - `left` 25842 * 25843 * Each placement can have a variation from this list: 25844 * - `-start` 25845 * - `-end` 25846 * 25847 * Variations are interpreted easily if you think of them as the left to right 25848 * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` 25849 * is right.<br /> 25850 * Vertically (`left` and `right`), `start` is top and `end` is bottom. 25851 * 25852 * Some valid examples are: 25853 * - `top-end` (on top of reference, right aligned) 25854 * - `right-start` (on right of reference, top aligned) 25855 * - `bottom` (on bottom, centered) 25856 * - `auto-end` (on the side with more space available, alignment depends by placement) 25857 * 25858 * @static 25859 * @type {Array} 25860 * @enum {String} 25861 * @readonly 25862 * @method placements 25863 * @memberof Popper 25864 */ 25865var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; 25866 25867// Get rid of `auto` `auto-start` and `auto-end` 25868var validPlacements = placements.slice(3); 25869 25870/** 25871 * Given an initial placement, returns all the subsequent placements 25872 * clockwise (or counter-clockwise). 25873 * 25874 * @method 25875 * @memberof Popper.Utils 25876 * @argument {String} placement - A valid placement (it accepts variations) 25877 * @argument {Boolean} counter - Set to true to walk the placements counterclockwise 25878 * @returns {Array} placements including their variations 25879 */ 25880function clockwise(placement) { 25881 var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 25882 25883 var index = validPlacements.indexOf(placement); 25884 var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index)); 25885 return counter ? arr.reverse() : arr; 25886} 25887 25888var BEHAVIORS = { 25889 FLIP: 'flip', 25890 CLOCKWISE: 'clockwise', 25891 COUNTERCLOCKWISE: 'counterclockwise' 25892}; 25893 25894/** 25895 * @function 25896 * @memberof Modifiers 25897 * @argument {Object} data - The data object generated by update method 25898 * @argument {Object} options - Modifiers configuration and options 25899 * @returns {Object} The data object, properly modified 25900 */ 25901function flip(data, options) { 25902 // if `inner` modifier is enabled, we can't use the `flip` modifier 25903 if (isModifierEnabled(data.instance.modifiers, 'inner')) { 25904 return data; 25905 } 25906 25907 if (data.flipped && data.placement === data.originalPlacement) { 25908 // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides 25909 return data; 25910 } 25911 25912 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed); 25913 25914 var placement = data.placement.split('-')[0]; 25915 var placementOpposite = getOppositePlacement(placement); 25916 var variation = data.placement.split('-')[1] || ''; 25917 25918 var flipOrder = []; 25919 25920 switch (options.behavior) { 25921 case BEHAVIORS.FLIP: 25922 flipOrder = [placement, placementOpposite]; 25923 break; 25924 case BEHAVIORS.CLOCKWISE: 25925 flipOrder = clockwise(placement); 25926 break; 25927 case BEHAVIORS.COUNTERCLOCKWISE: 25928 flipOrder = clockwise(placement, true); 25929 break; 25930 default: 25931 flipOrder = options.behavior; 25932 } 25933 25934 flipOrder.forEach(function (step, index) { 25935 if (placement !== step || flipOrder.length === index + 1) { 25936 return data; 25937 } 25938 25939 placement = data.placement.split('-')[0]; 25940 placementOpposite = getOppositePlacement(placement); 25941 25942 var popperOffsets = data.offsets.popper; 25943 var refOffsets = data.offsets.reference; 25944 25945 // using floor because the reference offsets may contain decimals we are not going to consider here 25946 var floor = Math.floor; 25947 var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom); 25948 25949 var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); 25950 var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); 25951 var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); 25952 var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); 25953 25954 var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; 25955 25956 // flip the variation if required 25957 var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; 25958 25959 // flips variation if reference element overflows boundaries 25960 var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); 25961 25962 // flips variation if popper content overflows boundaries 25963 var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop); 25964 25965 var flippedVariation = flippedVariationByRef || flippedVariationByContent; 25966 25967 if (overlapsRef || overflowsBoundaries || flippedVariation) { 25968 // this boolean to detect any flip loop 25969 data.flipped = true; 25970 25971 if (overlapsRef || overflowsBoundaries) { 25972 placement = flipOrder[index + 1]; 25973 } 25974 25975 if (flippedVariation) { 25976 variation = getOppositeVariation(variation); 25977 } 25978 25979 data.placement = placement + (variation ? '-' + variation : ''); 25980 25981 // this object contains `position`, we want to preserve it along with 25982 // any additional property we may add in the future 25983 data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); 25984 25985 data = runModifiers(data.instance.modifiers, data, 'flip'); 25986 } 25987 }); 25988 return data; 25989} 25990 25991/** 25992 * @function 25993 * @memberof Modifiers 25994 * @argument {Object} data - The data object generated by update method 25995 * @argument {Object} options - Modifiers configuration and options 25996 * @returns {Object} The data object, properly modified 25997 */ 25998function keepTogether(data) { 25999 var _data$offsets = data.offsets, 26000 popper = _data$offsets.popper, 26001 reference = _data$offsets.reference; 26002 26003 var placement = data.placement.split('-')[0]; 26004 var floor = Math.floor; 26005 var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; 26006 var side = isVertical ? 'right' : 'bottom'; 26007 var opSide = isVertical ? 'left' : 'top'; 26008 var measurement = isVertical ? 'width' : 'height'; 26009 26010 if (popper[side] < floor(reference[opSide])) { 26011 data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; 26012 } 26013 if (popper[opSide] > floor(reference[side])) { 26014 data.offsets.popper[opSide] = floor(reference[side]); 26015 } 26016 26017 return data; 26018} 26019 26020/** 26021 * Converts a string containing value + unit into a px value number 26022 * @function 26023 * @memberof {modifiers~offset} 26024 * @private 26025 * @argument {String} str - Value + unit string 26026 * @argument {String} measurement - `height` or `width` 26027 * @argument {Object} popperOffsets 26028 * @argument {Object} referenceOffsets 26029 * @returns {Number|String} 26030 * Value in pixels, or original string if no values were extracted 26031 */ 26032function toValue(str, measurement, popperOffsets, referenceOffsets) { 26033 // separate value from unit 26034 var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); 26035 var value = +split[1]; 26036 var unit = split[2]; 26037 26038 // If it's not a number it's an operator, I guess 26039 if (!value) { 26040 return str; 26041 } 26042 26043 if (unit.indexOf('%') === 0) { 26044 var element = void 0; 26045 switch (unit) { 26046 case '%p': 26047 element = popperOffsets; 26048 break; 26049 case '%': 26050 case '%r': 26051 default: 26052 element = referenceOffsets; 26053 } 26054 26055 var rect = getClientRect(element); 26056 return rect[measurement] / 100 * value; 26057 } else if (unit === 'vh' || unit === 'vw') { 26058 // if is a vh or vw, we calculate the size based on the viewport 26059 var size = void 0; 26060 if (unit === 'vh') { 26061 size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); 26062 } else { 26063 size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); 26064 } 26065 return size / 100 * value; 26066 } else { 26067 // if is an explicit pixel unit, we get rid of the unit and keep the value 26068 // if is an implicit unit, it's px, and we return just the value 26069 return value; 26070 } 26071} 26072 26073/** 26074 * Parse an `offset` string to extrapolate `x` and `y` numeric offsets. 26075 * @function 26076 * @memberof {modifiers~offset} 26077 * @private 26078 * @argument {String} offset 26079 * @argument {Object} popperOffsets 26080 * @argument {Object} referenceOffsets 26081 * @argument {String} basePlacement 26082 * @returns {Array} a two cells array with x and y offsets in numbers 26083 */ 26084function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) { 26085 var offsets = [0, 0]; 26086 26087 // Use height if placement is left or right and index is 0 otherwise use width 26088 // in this way the first offset will use an axis and the second one 26089 // will use the other one 26090 var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; 26091 26092 // Split the offset string to obtain a list of values and operands 26093 // The regex addresses values with the plus or minus sign in front (+10, -20, etc) 26094 var fragments = offset.split(/(\+|\-)/).map(function (frag) { 26095 return frag.trim(); 26096 }); 26097 26098 // Detect if the offset string contains a pair of values or a single one 26099 // they could be separated by comma or space 26100 var divider = fragments.indexOf(find(fragments, function (frag) { 26101 return frag.search(/,|\s/) !== -1; 26102 })); 26103 26104 if (fragments[divider] && fragments[divider].indexOf(',') === -1) { 26105 console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); 26106 } 26107 26108 // If divider is found, we divide the list of values and operands to divide 26109 // them by ofset X and Y. 26110 var splitRegex = /\s*,\s*|\s+/; 26111 var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; 26112 26113 // Convert the values with units to absolute pixels to allow our computations 26114 ops = ops.map(function (op, index) { 26115 // Most of the units rely on the orientation of the popper 26116 var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width'; 26117 var mergeWithPrevious = false; 26118 return op 26119 // This aggregates any `+` or `-` sign that aren't considered operators 26120 // e.g.: 10 + +5 => [10, +, +5] 26121 .reduce(function (a, b) { 26122 if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) { 26123 a[a.length - 1] = b; 26124 mergeWithPrevious = true; 26125 return a; 26126 } else if (mergeWithPrevious) { 26127 a[a.length - 1] += b; 26128 mergeWithPrevious = false; 26129 return a; 26130 } else { 26131 return a.concat(b); 26132 } 26133 }, []) 26134 // Here we convert the string values into number values (in px) 26135 .map(function (str) { 26136 return toValue(str, measurement, popperOffsets, referenceOffsets); 26137 }); 26138 }); 26139 26140 // Loop trough the offsets arrays and execute the operations 26141 ops.forEach(function (op, index) { 26142 op.forEach(function (frag, index2) { 26143 if (isNumeric(frag)) { 26144 offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1); 26145 } 26146 }); 26147 }); 26148 return offsets; 26149} 26150 26151/** 26152 * @function 26153 * @memberof Modifiers 26154 * @argument {Object} data - The data object generated by update method 26155 * @argument {Object} options - Modifiers configuration and options 26156 * @argument {Number|String} options.offset=0 26157 * The offset value as described in the modifier description 26158 * @returns {Object} The data object, properly modified 26159 */ 26160function offset(data, _ref) { 26161 var offset = _ref.offset; 26162 var placement = data.placement, 26163 _data$offsets = data.offsets, 26164 popper = _data$offsets.popper, 26165 reference = _data$offsets.reference; 26166 26167 var basePlacement = placement.split('-')[0]; 26168 26169 var offsets = void 0; 26170 if (isNumeric(+offset)) { 26171 offsets = [+offset, 0]; 26172 } else { 26173 offsets = parseOffset(offset, popper, reference, basePlacement); 26174 } 26175 26176 if (basePlacement === 'left') { 26177 popper.top += offsets[0]; 26178 popper.left -= offsets[1]; 26179 } else if (basePlacement === 'right') { 26180 popper.top += offsets[0]; 26181 popper.left += offsets[1]; 26182 } else if (basePlacement === 'top') { 26183 popper.left += offsets[0]; 26184 popper.top -= offsets[1]; 26185 } else if (basePlacement === 'bottom') { 26186 popper.left += offsets[0]; 26187 popper.top += offsets[1]; 26188 } 26189 26190 data.popper = popper; 26191 return data; 26192} 26193 26194/** 26195 * @function 26196 * @memberof Modifiers 26197 * @argument {Object} data - The data object generated by `update` method 26198 * @argument {Object} options - Modifiers configuration and options 26199 * @returns {Object} The data object, properly modified 26200 */ 26201function preventOverflow(data, options) { 26202 var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); 26203 26204 // If offsetParent is the reference element, we really want to 26205 // go one step up and use the next offsetParent as reference to 26206 // avoid to make this modifier completely useless and look like broken 26207 if (data.instance.reference === boundariesElement) { 26208 boundariesElement = getOffsetParent(boundariesElement); 26209 } 26210 26211 // NOTE: DOM access here 26212 // resets the popper's position so that the document size can be calculated excluding 26213 // the size of the popper element itself 26214 var transformProp = getSupportedPropertyName('transform'); 26215 var popperStyles = data.instance.popper.style; // assignment to help minification 26216 var top = popperStyles.top, 26217 left = popperStyles.left, 26218 transform = popperStyles[transformProp]; 26219 26220 popperStyles.top = ''; 26221 popperStyles.left = ''; 26222 popperStyles[transformProp] = ''; 26223 26224 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); 26225 26226 // NOTE: DOM access here 26227 // restores the original style properties after the offsets have been computed 26228 popperStyles.top = top; 26229 popperStyles.left = left; 26230 popperStyles[transformProp] = transform; 26231 26232 options.boundaries = boundaries; 26233 26234 var order = options.priority; 26235 var popper = data.offsets.popper; 26236 26237 var check = { 26238 primary: function primary(placement) { 26239 var value = popper[placement]; 26240 if (popper[placement] < boundaries[placement] && !options.escapeWithReference) { 26241 value = Math.max(popper[placement], boundaries[placement]); 26242 } 26243 return defineProperty({}, placement, value); 26244 }, 26245 secondary: function secondary(placement) { 26246 var mainSide = placement === 'right' ? 'left' : 'top'; 26247 var value = popper[mainSide]; 26248 if (popper[placement] > boundaries[placement] && !options.escapeWithReference) { 26249 value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height)); 26250 } 26251 return defineProperty({}, mainSide, value); 26252 } 26253 }; 26254 26255 order.forEach(function (placement) { 26256 var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary'; 26257 popper = _extends({}, popper, check[side](placement)); 26258 }); 26259 26260 data.offsets.popper = popper; 26261 26262 return data; 26263} 26264 26265/** 26266 * @function 26267 * @memberof Modifiers 26268 * @argument {Object} data - The data object generated by `update` method 26269 * @argument {Object} options - Modifiers configuration and options 26270 * @returns {Object} The data object, properly modified 26271 */ 26272function shift(data) { 26273 var placement = data.placement; 26274 var basePlacement = placement.split('-')[0]; 26275 var shiftvariation = placement.split('-')[1]; 26276 26277 // if shift shiftvariation is specified, run the modifier 26278 if (shiftvariation) { 26279 var _data$offsets = data.offsets, 26280 reference = _data$offsets.reference, 26281 popper = _data$offsets.popper; 26282 26283 var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; 26284 var side = isVertical ? 'left' : 'top'; 26285 var measurement = isVertical ? 'width' : 'height'; 26286 26287 var shiftOffsets = { 26288 start: defineProperty({}, side, reference[side]), 26289 end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) 26290 }; 26291 26292 data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]); 26293 } 26294 26295 return data; 26296} 26297 26298/** 26299 * @function 26300 * @memberof Modifiers 26301 * @argument {Object} data - The data object generated by update method 26302 * @argument {Object} options - Modifiers configuration and options 26303 * @returns {Object} The data object, properly modified 26304 */ 26305function hide(data) { 26306 if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { 26307 return data; 26308 } 26309 26310 var refRect = data.offsets.reference; 26311 var bound = find(data.instance.modifiers, function (modifier) { 26312 return modifier.name === 'preventOverflow'; 26313 }).boundaries; 26314 26315 if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { 26316 // Avoid unnecessary DOM access if visibility hasn't changed 26317 if (data.hide === true) { 26318 return data; 26319 } 26320 26321 data.hide = true; 26322 data.attributes['x-out-of-boundaries'] = ''; 26323 } else { 26324 // Avoid unnecessary DOM access if visibility hasn't changed 26325 if (data.hide === false) { 26326 return data; 26327 } 26328 26329 data.hide = false; 26330 data.attributes['x-out-of-boundaries'] = false; 26331 } 26332 26333 return data; 26334} 26335 26336/** 26337 * @function 26338 * @memberof Modifiers 26339 * @argument {Object} data - The data object generated by `update` method 26340 * @argument {Object} options - Modifiers configuration and options 26341 * @returns {Object} The data object, properly modified 26342 */ 26343function inner(data) { 26344 var placement = data.placement; 26345 var basePlacement = placement.split('-')[0]; 26346 var _data$offsets = data.offsets, 26347 popper = _data$offsets.popper, 26348 reference = _data$offsets.reference; 26349 26350 var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; 26351 26352 var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; 26353 26354 popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); 26355 26356 data.placement = getOppositePlacement(placement); 26357 data.offsets.popper = getClientRect(popper); 26358 26359 return data; 26360} 26361 26362/** 26363 * Modifier function, each modifier can have a function of this type assigned 26364 * to its `fn` property.<br /> 26365 * These functions will be called on each update, this means that you must 26366 * make sure they are performant enough to avoid performance bottlenecks. 26367 * 26368 * @function ModifierFn 26369 * @argument {dataObject} data - The data object generated by `update` method 26370 * @argument {Object} options - Modifiers configuration and options 26371 * @returns {dataObject} The data object, properly modified 26372 */ 26373 26374/** 26375 * Modifiers are plugins used to alter the behavior of your poppers.<br /> 26376 * Popper.js uses a set of 9 modifiers to provide all the basic functionalities 26377 * needed by the library. 26378 * 26379 * Usually you don't want to override the `order`, `fn` and `onLoad` props. 26380 * All the other properties are configurations that could be tweaked. 26381 * @namespace modifiers 26382 */ 26383var modifiers = { 26384 /** 26385 * Modifier used to shift the popper on the start or end of its reference 26386 * element.<br /> 26387 * It will read the variation of the `placement` property.<br /> 26388 * It can be one either `-end` or `-start`. 26389 * @memberof modifiers 26390 * @inner 26391 */ 26392 shift: { 26393 /** @prop {number} order=100 - Index used to define the order of execution */ 26394 order: 100, 26395 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 26396 enabled: true, 26397 /** @prop {ModifierFn} */ 26398 fn: shift 26399 }, 26400 26401 /** 26402 * The `offset` modifier can shift your popper on both its axis. 26403 * 26404 * It accepts the following units: 26405 * - `px` or unit-less, interpreted as pixels 26406 * - `%` or `%r`, percentage relative to the length of the reference element 26407 * - `%p`, percentage relative to the length of the popper element 26408 * - `vw`, CSS viewport width unit 26409 * - `vh`, CSS viewport height unit 26410 * 26411 * For length is intended the main axis relative to the placement of the popper.<br /> 26412 * This means that if the placement is `top` or `bottom`, the length will be the 26413 * `width`. In case of `left` or `right`, it will be the `height`. 26414 * 26415 * You can provide a single value (as `Number` or `String`), or a pair of values 26416 * as `String` divided by a comma or one (or more) white spaces.<br /> 26417 * The latter is a deprecated method because it leads to confusion and will be 26418 * removed in v2.<br /> 26419 * Additionally, it accepts additions and subtractions between different units. 26420 * Note that multiplications and divisions aren't supported. 26421 * 26422 * Valid examples are: 26423 * ``` 26424 * 10 26425 * '10%' 26426 * '10, 10' 26427 * '10%, 10' 26428 * '10 + 10%' 26429 * '10 - 5vh + 3%' 26430 * '-10px + 5vh, 5px - 6%' 26431 * ``` 26432 * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap 26433 * > with their reference element, unfortunately, you will have to disable the `flip` modifier. 26434 * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373). 26435 * 26436 * @memberof modifiers 26437 * @inner 26438 */ 26439 offset: { 26440 /** @prop {number} order=200 - Index used to define the order of execution */ 26441 order: 200, 26442 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 26443 enabled: true, 26444 /** @prop {ModifierFn} */ 26445 fn: offset, 26446 /** @prop {Number|String} offset=0 26447 * The offset value as described in the modifier description 26448 */ 26449 offset: 0 26450 }, 26451 26452 /** 26453 * Modifier used to prevent the popper from being positioned outside the boundary. 26454 * 26455 * A scenario exists where the reference itself is not within the boundaries.<br /> 26456 * We can say it has "escaped the boundaries" — or just "escaped".<br /> 26457 * In this case we need to decide whether the popper should either: 26458 * 26459 * - detach from the reference and remain "trapped" in the boundaries, or 26460 * - if it should ignore the boundary and "escape with its reference" 26461 * 26462 * When `escapeWithReference` is set to`true` and reference is completely 26463 * outside its boundaries, the popper will overflow (or completely leave) 26464 * the boundaries in order to remain attached to the edge of the reference. 26465 * 26466 * @memberof modifiers 26467 * @inner 26468 */ 26469 preventOverflow: { 26470 /** @prop {number} order=300 - Index used to define the order of execution */ 26471 order: 300, 26472 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 26473 enabled: true, 26474 /** @prop {ModifierFn} */ 26475 fn: preventOverflow, 26476 /** 26477 * @prop {Array} [priority=['left','right','top','bottom']] 26478 * Popper will try to prevent overflow following these priorities by default, 26479 * then, it could overflow on the left and on top of the `boundariesElement` 26480 */ 26481 priority: ['left', 'right', 'top', 'bottom'], 26482 /** 26483 * @prop {number} padding=5 26484 * Amount of pixel used to define a minimum distance between the boundaries 26485 * and the popper. This makes sure the popper always has a little padding 26486 * between the edges of its container 26487 */ 26488 padding: 5, 26489 /** 26490 * @prop {String|HTMLElement} boundariesElement='scrollParent' 26491 * Boundaries used by the modifier. Can be `scrollParent`, `window`, 26492 * `viewport` or any DOM element. 26493 */ 26494 boundariesElement: 'scrollParent' 26495 }, 26496 26497 /** 26498 * Modifier used to make sure the reference and its popper stay near each other 26499 * without leaving any gap between the two. Especially useful when the arrow is 26500 * enabled and you want to ensure that it points to its reference element. 26501 * It cares only about the first axis. You can still have poppers with margin 26502 * between the popper and its reference element. 26503 * @memberof modifiers 26504 * @inner 26505 */ 26506 keepTogether: { 26507 /** @prop {number} order=400 - Index used to define the order of execution */ 26508 order: 400, 26509 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 26510 enabled: true, 26511 /** @prop {ModifierFn} */ 26512 fn: keepTogether 26513 }, 26514 26515 /** 26516 * This modifier is used to move the `arrowElement` of the popper to make 26517 * sure it is positioned between the reference element and its popper element. 26518 * It will read the outer size of the `arrowElement` node to detect how many 26519 * pixels of conjunction are needed. 26520 * 26521 * It has no effect if no `arrowElement` is provided. 26522 * @memberof modifiers 26523 * @inner 26524 */ 26525 arrow: { 26526 /** @prop {number} order=500 - Index used to define the order of execution */ 26527 order: 500, 26528 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 26529 enabled: true, 26530 /** @prop {ModifierFn} */ 26531 fn: arrow, 26532 /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */ 26533 element: '[x-arrow]' 26534 }, 26535 26536 /** 26537 * Modifier used to flip the popper's placement when it starts to overlap its 26538 * reference element. 26539 * 26540 * Requires the `preventOverflow` modifier before it in order to work. 26541 * 26542 * **NOTE:** this modifier will interrupt the current update cycle and will 26543 * restart it if it detects the need to flip the placement. 26544 * @memberof modifiers 26545 * @inner 26546 */ 26547 flip: { 26548 /** @prop {number} order=600 - Index used to define the order of execution */ 26549 order: 600, 26550 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 26551 enabled: true, 26552 /** @prop {ModifierFn} */ 26553 fn: flip, 26554 /** 26555 * @prop {String|Array} behavior='flip' 26556 * The behavior used to change the popper's placement. It can be one of 26557 * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid 26558 * placements (with optional variations) 26559 */ 26560 behavior: 'flip', 26561 /** 26562 * @prop {number} padding=5 26563 * The popper will flip if it hits the edges of the `boundariesElement` 26564 */ 26565 padding: 5, 26566 /** 26567 * @prop {String|HTMLElement} boundariesElement='viewport' 26568 * The element which will define the boundaries of the popper position. 26569 * The popper will never be placed outside of the defined boundaries 26570 * (except if `keepTogether` is enabled) 26571 */ 26572 boundariesElement: 'viewport', 26573 /** 26574 * @prop {Boolean} flipVariations=false 26575 * The popper will switch placement variation between `-start` and `-end` when 26576 * the reference element overlaps its boundaries. 26577 * 26578 * The original placement should have a set variation. 26579 */ 26580 flipVariations: false, 26581 /** 26582 * @prop {Boolean} flipVariationsByContent=false 26583 * The popper will switch placement variation between `-start` and `-end` when 26584 * the popper element overlaps its reference boundaries. 26585 * 26586 * The original placement should have a set variation. 26587 */ 26588 flipVariationsByContent: false 26589 }, 26590 26591 /** 26592 * Modifier used to make the popper flow toward the inner of the reference element. 26593 * By default, when this modifier is disabled, the popper will be placed outside 26594 * the reference element. 26595 * @memberof modifiers 26596 * @inner 26597 */ 26598 inner: { 26599 /** @prop {number} order=700 - Index used to define the order of execution */ 26600 order: 700, 26601 /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */ 26602 enabled: false, 26603 /** @prop {ModifierFn} */ 26604 fn: inner 26605 }, 26606 26607 /** 26608 * Modifier used to hide the popper when its reference element is outside of the 26609 * popper boundaries. It will set a `x-out-of-boundaries` attribute which can 26610 * be used to hide with a CSS selector the popper when its reference is 26611 * out of boundaries. 26612 * 26613 * Requires the `preventOverflow` modifier before it in order to work. 26614 * @memberof modifiers 26615 * @inner 26616 */ 26617 hide: { 26618 /** @prop {number} order=800 - Index used to define the order of execution */ 26619 order: 800, 26620 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 26621 enabled: true, 26622 /** @prop {ModifierFn} */ 26623 fn: hide 26624 }, 26625 26626 /** 26627 * Computes the style that will be applied to the popper element to gets 26628 * properly positioned. 26629 * 26630 * Note that this modifier will not touch the DOM, it just prepares the styles 26631 * so that `applyStyle` modifier can apply it. This separation is useful 26632 * in case you need to replace `applyStyle` with a custom implementation. 26633 * 26634 * This modifier has `850` as `order` value to maintain backward compatibility 26635 * with previous versions of Popper.js. Expect the modifiers ordering method 26636 * to change in future major versions of the library. 26637 * 26638 * @memberof modifiers 26639 * @inner 26640 */ 26641 computeStyle: { 26642 /** @prop {number} order=850 - Index used to define the order of execution */ 26643 order: 850, 26644 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 26645 enabled: true, 26646 /** @prop {ModifierFn} */ 26647 fn: computeStyle, 26648 /** 26649 * @prop {Boolean} gpuAcceleration=true 26650 * If true, it uses the CSS 3D transformation to position the popper. 26651 * Otherwise, it will use the `top` and `left` properties 26652 */ 26653 gpuAcceleration: true, 26654 /** 26655 * @prop {string} [x='bottom'] 26656 * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin. 26657 * Change this if your popper should grow in a direction different from `bottom` 26658 */ 26659 x: 'bottom', 26660 /** 26661 * @prop {string} [x='left'] 26662 * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin. 26663 * Change this if your popper should grow in a direction different from `right` 26664 */ 26665 y: 'right' 26666 }, 26667 26668 /** 26669 * Applies the computed styles to the popper element. 26670 * 26671 * All the DOM manipulations are limited to this modifier. This is useful in case 26672 * you want to integrate Popper.js inside a framework or view library and you 26673 * want to delegate all the DOM manipulations to it. 26674 * 26675 * Note that if you disable this modifier, you must make sure the popper element 26676 * has its position set to `absolute` before Popper.js can do its work! 26677 * 26678 * Just disable this modifier and define your own to achieve the desired effect. 26679 * 26680 * @memberof modifiers 26681 * @inner 26682 */ 26683 applyStyle: { 26684 /** @prop {number} order=900 - Index used to define the order of execution */ 26685 order: 900, 26686 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 26687 enabled: true, 26688 /** @prop {ModifierFn} */ 26689 fn: applyStyle, 26690 /** @prop {Function} */ 26691 onLoad: applyStyleOnLoad, 26692 /** 26693 * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier 26694 * @prop {Boolean} gpuAcceleration=true 26695 * If true, it uses the CSS 3D transformation to position the popper. 26696 * Otherwise, it will use the `top` and `left` properties 26697 */ 26698 gpuAcceleration: undefined 26699 } 26700}; 26701 26702/** 26703 * The `dataObject` is an object containing all the information used by Popper.js. 26704 * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks. 26705 * @name dataObject 26706 * @property {Object} data.instance The Popper.js instance 26707 * @property {String} data.placement Placement applied to popper 26708 * @property {String} data.originalPlacement Placement originally defined on init 26709 * @property {Boolean} data.flipped True if popper has been flipped by flip modifier 26710 * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper 26711 * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier 26712 * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`) 26713 * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`) 26714 * @property {Object} data.boundaries Offsets of the popper boundaries 26715 * @property {Object} data.offsets The measurements of popper, reference and arrow elements 26716 * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values 26717 * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values 26718 * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0 26719 */ 26720 26721/** 26722 * Default options provided to Popper.js constructor.<br /> 26723 * These can be overridden using the `options` argument of Popper.js.<br /> 26724 * To override an option, simply pass an object with the same 26725 * structure of the `options` object, as the 3rd argument. For example: 26726 * ``` 26727 * new Popper(ref, pop, { 26728 * modifiers: { 26729 * preventOverflow: { enabled: false } 26730 * } 26731 * }) 26732 * ``` 26733 * @type {Object} 26734 * @static 26735 * @memberof Popper 26736 */ 26737var Defaults = { 26738 /** 26739 * Popper's placement. 26740 * @prop {Popper.placements} placement='bottom' 26741 */ 26742 placement: 'bottom', 26743 26744 /** 26745 * Set this to true if you want popper to position it self in 'fixed' mode 26746 * @prop {Boolean} positionFixed=false 26747 */ 26748 positionFixed: false, 26749 26750 /** 26751 * Whether events (resize, scroll) are initially enabled. 26752 * @prop {Boolean} eventsEnabled=true 26753 */ 26754 eventsEnabled: true, 26755 26756 /** 26757 * Set to true if you want to automatically remove the popper when 26758 * you call the `destroy` method. 26759 * @prop {Boolean} removeOnDestroy=false 26760 */ 26761 removeOnDestroy: false, 26762 26763 /** 26764 * Callback called when the popper is created.<br /> 26765 * By default, it is set to no-op.<br /> 26766 * Access Popper.js instance with `data.instance`. 26767 * @prop {onCreate} 26768 */ 26769 onCreate: function onCreate() {}, 26770 26771 /** 26772 * Callback called when the popper is updated. This callback is not called 26773 * on the initialization/creation of the popper, but only on subsequent 26774 * updates.<br /> 26775 * By default, it is set to no-op.<br /> 26776 * Access Popper.js instance with `data.instance`. 26777 * @prop {onUpdate} 26778 */ 26779 onUpdate: function onUpdate() {}, 26780 26781 /** 26782 * List of modifiers used to modify the offsets before they are applied to the popper. 26783 * They provide most of the functionalities of Popper.js. 26784 * @prop {modifiers} 26785 */ 26786 modifiers: modifiers 26787}; 26788 26789/** 26790 * @callback onCreate 26791 * @param {dataObject} data 26792 */ 26793 26794/** 26795 * @callback onUpdate 26796 * @param {dataObject} data 26797 */ 26798 26799// Utils 26800// Methods 26801var Popper = function () { 26802 /** 26803 * Creates a new Popper.js instance. 26804 * @class Popper 26805 * @param {Element|referenceObject} reference - The reference element used to position the popper 26806 * @param {Element} popper - The HTML / XML element used as the popper 26807 * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults) 26808 * @return {Object} instance - The generated Popper.js instance 26809 */ 26810 function Popper(reference, popper) { 26811 var _this = this; 26812 26813 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; 26814 classCallCheck(this, Popper); 26815 26816 this.scheduleUpdate = function () { 26817 return requestAnimationFrame(_this.update); 26818 }; 26819 26820 // make update() debounced, so that it only runs at most once-per-tick 26821 this.update = debounce(this.update.bind(this)); 26822 26823 // with {} we create a new object with the options inside it 26824 this.options = _extends({}, Popper.Defaults, options); 26825 26826 // init state 26827 this.state = { 26828 isDestroyed: false, 26829 isCreated: false, 26830 scrollParents: [] 26831 }; 26832 26833 // get reference and popper elements (allow jQuery wrappers) 26834 this.reference = reference && reference.jquery ? reference[0] : reference; 26835 this.popper = popper && popper.jquery ? popper[0] : popper; 26836 26837 // Deep merge modifiers options 26838 this.options.modifiers = {}; 26839 Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) { 26840 _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {}); 26841 }); 26842 26843 // Refactoring modifiers' list (Object => Array) 26844 this.modifiers = Object.keys(this.options.modifiers).map(function (name) { 26845 return _extends({ 26846 name: name 26847 }, _this.options.modifiers[name]); 26848 }) 26849 // sort the modifiers by order 26850 .sort(function (a, b) { 26851 return a.order - b.order; 26852 }); 26853 26854 // modifiers have the ability to execute arbitrary code when Popper.js get inited 26855 // such code is executed in the same order of its modifier 26856 // they could add new properties to their options configuration 26857 // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`! 26858 this.modifiers.forEach(function (modifierOptions) { 26859 if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) { 26860 modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); 26861 } 26862 }); 26863 26864 // fire the first update to position the popper in the right place 26865 this.update(); 26866 26867 var eventsEnabled = this.options.eventsEnabled; 26868 if (eventsEnabled) { 26869 // setup event listeners, they will take care of update the position in specific situations 26870 this.enableEventListeners(); 26871 } 26872 26873 this.state.eventsEnabled = eventsEnabled; 26874 } 26875 26876 // We can't use class properties because they don't get listed in the 26877 // class prototype and break stuff like Sinon stubs 26878 26879 26880 createClass(Popper, [{ 26881 key: 'update', 26882 value: function update$$1() { 26883 return update.call(this); 26884 } 26885 }, { 26886 key: 'destroy', 26887 value: function destroy$$1() { 26888 return destroy.call(this); 26889 } 26890 }, { 26891 key: 'enableEventListeners', 26892 value: function enableEventListeners$$1() { 26893 return enableEventListeners.call(this); 26894 } 26895 }, { 26896 key: 'disableEventListeners', 26897 value: function disableEventListeners$$1() { 26898 return disableEventListeners.call(this); 26899 } 26900 26901 /** 26902 * Schedules an update. It will run on the next UI update available. 26903 * @method scheduleUpdate 26904 * @memberof Popper 26905 */ 26906 26907 26908 /** 26909 * Collection of utilities useful when writing custom modifiers. 26910 * Starting from version 1.7, this method is available only if you 26911 * include `popper-utils.js` before `popper.js`. 26912 * 26913 * **DEPRECATION**: This way to access PopperUtils is deprecated 26914 * and will be removed in v2! Use the PopperUtils module directly instead. 26915 * Due to the high instability of the methods contained in Utils, we can't 26916 * guarantee them to follow semver. Use them at your own risk! 26917 * @static 26918 * @private 26919 * @type {Object} 26920 * @deprecated since version 1.8 26921 * @member Utils 26922 * @memberof Popper 26923 */ 26924 26925 }]); 26926 return Popper; 26927}(); 26928 26929/** 26930 * The `referenceObject` is an object that provides an interface compatible with Popper.js 26931 * and lets you use it as replacement of a real DOM node.<br /> 26932 * You can use this method to position a popper relatively to a set of coordinates 26933 * in case you don't have a DOM node to use as reference. 26934 * 26935 * ``` 26936 * new Popper(referenceObject, popperNode); 26937 * ``` 26938 * 26939 * NB: This feature isn't supported in Internet Explorer 10. 26940 * @name referenceObject 26941 * @property {Function} data.getBoundingClientRect 26942 * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method. 26943 * @property {number} data.clientWidth 26944 * An ES6 getter that will return the width of the virtual reference element. 26945 * @property {number} data.clientHeight 26946 * An ES6 getter that will return the height of the virtual reference element. 26947 */ 26948 26949 26950Popper.Utils = (typeof window !== 'undefined' ? window : __webpack_require__.g).PopperUtils; 26951Popper.placements = placements; 26952Popper.Defaults = Defaults; 26953 26954/* harmony default export */ __webpack_exports__["default"] = (Popper); 26955//# sourceMappingURL=popper.js.map 26956 26957 26958/***/ }), 26959
vendor: 42,431 bytes, lines 26960-28540
26960/***/ "./node_modules/dom7/dom7.esm.js": 26961/*!***************************************!*\ 26962 !*** ./node_modules/dom7/dom7.esm.js ***! 26963 \***************************************/ 26964/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 26965 26966"use strict"; 26967__webpack_require__.r(__webpack_exports__); 26968/* harmony export */ __webpack_require__.d(__webpack_exports__, { 26969/* harmony export */ "$": function() { return /* binding */ $; }, 26970/* harmony export */ "add": function() { return /* binding */ add; }, 26971/* harmony export */ "addClass": function() { return /* binding */ addClass; }, 26972/* harmony export */ "animate": function() { return /* binding */ animate; }, 26973/* harmony export */ "animationEnd": function() { return /* binding */ animationEnd; }, 26974/* harmony export */ "append": function() { return /* binding */ append; }, 26975/* harmony export */ "appendTo": function() { return /* binding */ appendTo; }, 26976/* harmony export */ "attr": function() { return /* binding */ attr; }, 26977/* harmony export */ "blur": function() { return /* binding */ blur; }, 26978/* harmony export */ "change": function() { return /* binding */ change; }, 26979/* harmony export */ "children": function() { return /* binding */ children; }, 26980/* harmony export */ "click": function() { return /* binding */ click; }, 26981/* harmony export */ "closest": function() { return /* binding */ closest; }, 26982/* harmony export */ "css": function() { return /* binding */ css; }, 26983/* harmony export */ "data": function() { return /* binding */ data; }, 26984/* harmony export */ "dataset": function() { return /* binding */ dataset; }, 26985/* harmony export */ "detach": function() { return /* binding */ detach; }, 26986/* harmony export */ "each": function() { return /* binding */ each; }, 26987/* harmony export */ "empty": function() { return /* binding */ empty; }, 26988/* harmony export */ "eq": function() { return /* binding */ eq; }, 26989/* harmony export */ "filter": function() { return /* binding */ filter; }, 26990/* harmony export */ "find": function() { return /* binding */ find; }, 26991/* harmony export */ "focus": function() { return /* binding */ focus; }, 26992/* harmony export */ "focusin": function() { return /* binding */ focusin; }, 26993/* harmony export */ "focusout": function() { return /* binding */ focusout; }, 26994/* harmony export */ "hasClass": function() { return /* binding */ hasClass; }, 26995/* harmony export */ "height": function() { return /* binding */ height; }, 26996/* harmony export */ "hide": function() { return /* binding */ hide; }, 26997/* harmony export */ "html": function() { return /* binding */ html; }, 26998/* harmony export */ "index": function() { return /* binding */ index; }, 26999/* harmony export */ "insertAfter": function() { return /* binding */ insertAfter; }, 27000/* harmony export */ "insertBefore": function() { return /* binding */ insertBefore; }, 27001/* harmony export */ "is": function() { return /* binding */ is; }, 27002/* harmony export */ "keydown": function() { return /* binding */ keydown; }, 27003/* harmony export */ "keypress": function() { return /* binding */ keypress; }, 27004/* harmony export */ "keyup": function() { return /* binding */ keyup; }, 27005/* harmony export */ "mousedown": function() { return /* binding */ mousedown; }, 27006/* harmony export */ "mouseenter": function() { return /* binding */ mouseenter; }, 27007/* harmony export */ "mouseleave": function() { return /* binding */ mouseleave; }, 27008/* harmony export */ "mousemove": function() { return /* binding */ mousemove; }, 27009/* harmony export */ "mouseout": function() { return /* binding */ mouseout; }, 27010/* harmony export */ "mouseover": function() { return /* binding */ mouseover; }, 27011/* harmony export */ "mouseup": function() { return /* binding */ mouseup; }, 27012/* harmony export */ "next": function() { return /* binding */ next; }, 27013/* harmony export */ "nextAll": function() { return /* binding */ nextAll; }, 27014/* harmony export */ "off": function() { return /* binding */ off; }, 27015/* harmony export */ "offset": function() { return /* binding */ offset; }, 27016/* harmony export */ "on": function() { return /* binding */ on; }, 27017/* harmony export */ "once": function() { return /* binding */ once; }, 27018/* harmony export */ "outerHeight": function() { return /* binding */ outerHeight; }, 27019/* harmony export */ "outerWidth": function() { return /* binding */ outerWidth; }, 27020/* harmony export */ "parent": function() { return /* binding */ parent; }, 27021/* harmony export */ "parents": function() { return /* binding */ parents; }, 27022/* harmony export */ "prepend": function() { return /* binding */ prepend; }, 27023/* harmony export */ "prependTo": function() { return /* binding */ prependTo; }, 27024/* harmony export */ "prev": function() { return /* binding */ prev; }, 27025/* harmony export */ "prevAll": function() { return /* binding */ prevAll; }, 27026/* harmony export */ "prop": function() { return /* binding */ prop; }, 27027/* harmony export */ "remove": function() { return /* binding */ remove; }, 27028/* harmony export */ "removeAttr": function() { return /* binding */ removeAttr; }, 27029/* harmony export */ "removeClass": function() { return /* binding */ removeClass; }, 27030/* harmony export */ "removeData": function() { return /* binding */ removeData; }, 27031/* harmony export */ "resize": function() { return /* binding */ resize; }, 27032/* harmony export */ "scroll": function() { return /* binding */ scroll; }, 27033/* harmony export */ "scrollLeft": function() { return /* binding */ scrollLeft; }, 27034/* harmony export */ "scrollTo": function() { return /* binding */ scrollTo; }, 27035/* harmony export */ "scrollTop": function() { return /* binding */ scrollTop; }, 27036/* harmony export */ "show": function() { return /* binding */ show; }, 27037/* harmony export */ "siblings": function() { return /* binding */ siblings; }, 27038/* harmony export */ "stop": function() { return /* binding */ stop; }, 27039/* harmony export */ "styles": function() { return /* binding */ styles; }, 27040/* harmony export */ "submit": function() { return /* binding */ submit; }, 27041/* harmony export */ "text": function() { return /* binding */ text; }, 27042/* harmony export */ "toggleClass": function() { return /* binding */ toggleClass; }, 27043/* harmony export */ "touchend": function() { return /* binding */ touchend; }, 27044/* harmony export */ "touchmove": function() { return /* binding */ touchmove; }, 27045/* harmony export */ "touchstart": function() { return /* binding */ touchstart; }, 27046/* harmony export */ "transform": function() { return /* binding */ transform; }, 27047/* harmony export */ "transition": function() { return /* binding */ transition; }, 27048/* harmony export */ "transitionEnd": function() { return /* binding */ transitionEnd; }, 27049/* harmony export */ "trigger": function() { return /* binding */ trigger; }, 27050/* harmony export */ "val": function() { return /* binding */ val; }, 27051/* harmony export */ "value": function() { return /* binding */ value; }, 27052/* harmony export */ "width": function() { return /* binding */ width; } 27053/* harmony export */ }); 27054/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 27055/** 27056 * Dom7 4.0.4 27057 * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API 27058 * https://framework7.io/docs/dom7.html 27059 * 27060 * Copyright 2022, Vladimir Kharlampidi 27061 * 27062 * Licensed under MIT 27063 * 27064 * Released on: January 11, 2022 27065 */ 27066 27067 27068/* eslint-disable no-proto */ 27069function makeReactive(obj) { 27070 const proto = obj.__proto__; 27071 Object.defineProperty(obj, '__proto__', { 27072 get() { 27073 return proto; 27074 }, 27075 27076 set(value) { 27077 proto.__proto__ = value; 27078 } 27079 27080 }); 27081} 27082 27083class Dom7 extends Array { 27084 constructor(items) { 27085 if (typeof items === 'number') { 27086 super(items); 27087 } else { 27088 super(...(items || [])); 27089 makeReactive(this); 27090 } 27091 } 27092 27093} 27094 27095function arrayFlat(arr = []) { 27096 const res = []; 27097 arr.forEach(el => { 27098 if (Array.isArray(el)) { 27099 res.push(...arrayFlat(el)); 27100 } else { 27101 res.push(el); 27102 } 27103 }); 27104 return res; 27105} 27106function arrayFilter(arr, callback) { 27107 return Array.prototype.filter.call(arr, callback); 27108} 27109function arrayUnique(arr) { 27110 const uniqueArray = []; 27111 27112 for (let i = 0; i < arr.length; i += 1) { 27113 if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]); 27114 } 27115 27116 return uniqueArray; 27117} 27118function toCamelCase(string) { 27119 return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase()); 27120} 27121 27122// eslint-disable-next-line 27123 27124function qsa(selector, context) { 27125 if (typeof selector !== 'string') { 27126 return [selector]; 27127 } 27128 27129 const a = []; 27130 const res = context.querySelectorAll(selector); 27131 27132 for (let i = 0; i < res.length; i += 1) { 27133 a.push(res[i]); 27134 } 27135 27136 return a; 27137} 27138 27139function $(selector, context) { 27140 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 27141 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 27142 let arr = []; 27143 27144 if (!context && selector instanceof Dom7) { 27145 return selector; 27146 } 27147 27148 if (!selector) { 27149 return new Dom7(arr); 27150 } 27151 27152 if (typeof selector === 'string') { 27153 const html = selector.trim(); 27154 27155 if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) { 27156 let toCreate = 'div'; 27157 if (html.indexOf('<li') === 0) toCreate = 'ul'; 27158 if (html.indexOf('<tr') === 0) toCreate = 'tbody'; 27159 if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr'; 27160 if (html.indexOf('<tbody') === 0) toCreate = 'table'; 27161 if (html.indexOf('<option') === 0) toCreate = 'select'; 27162 const tempParent = document.createElement(toCreate); 27163 tempParent.innerHTML = html; 27164 27165 for (let i = 0; i < tempParent.childNodes.length; i += 1) { 27166 arr.push(tempParent.childNodes[i]); 27167 } 27168 } else { 27169 arr = qsa(selector.trim(), context || document); 27170 } // arr = qsa(selector, document); 27171 27172 } else if (selector.nodeType || selector === window || selector === document) { 27173 arr.push(selector); 27174 } else if (Array.isArray(selector)) { 27175 if (selector instanceof Dom7) return selector; 27176 arr = selector; 27177 } 27178 27179 return new Dom7(arrayUnique(arr)); 27180} 27181 27182$.fn = Dom7.prototype; 27183 27184// eslint-disable-next-line 27185 27186function addClass(...classes) { 27187 const classNames = arrayFlat(classes.map(c => c.split(' '))); 27188 this.forEach(el => { 27189 el.classList.add(...classNames); 27190 }); 27191 return this; 27192} 27193 27194function removeClass(...classes) { 27195 const classNames = arrayFlat(classes.map(c => c.split(' '))); 27196 this.forEach(el => { 27197 el.classList.remove(...classNames); 27198 }); 27199 return this; 27200} 27201 27202function toggleClass(...classes) { 27203 const classNames = arrayFlat(classes.map(c => c.split(' '))); 27204 this.forEach(el => { 27205 classNames.forEach(className => { 27206 el.classList.toggle(className); 27207 }); 27208 }); 27209} 27210 27211function hasClass(...classes) { 27212 const classNames = arrayFlat(classes.map(c => c.split(' '))); 27213 return arrayFilter(this, el => { 27214 return classNames.filter(className => el.classList.contains(className)).length > 0; 27215 }).length > 0; 27216} 27217 27218function attr(attrs, value) { 27219 if (arguments.length === 1 && typeof attrs === 'string') { 27220 // Get attr 27221 if (this[0]) return this[0].getAttribute(attrs); 27222 return undefined; 27223 } // Set attrs 27224 27225 27226 for (let i = 0; i < this.length; i += 1) { 27227 if (arguments.length === 2) { 27228 // String 27229 this[i].setAttribute(attrs, value); 27230 } else { 27231 // Object 27232 for (const attrName in attrs) { 27233 this[i][attrName] = attrs[attrName]; 27234 this[i].setAttribute(attrName, attrs[attrName]); 27235 } 27236 } 27237 } 27238 27239 return this; 27240} 27241 27242function removeAttr(attr) { 27243 for (let i = 0; i < this.length; i += 1) { 27244 this[i].removeAttribute(attr); 27245 } 27246 27247 return this; 27248} 27249 27250function prop(props, value) { 27251 if (arguments.length === 1 && typeof props === 'string') { 27252 // Get prop 27253 if (this[0]) return this[0][props]; 27254 } else { 27255 // Set props 27256 for (let i = 0; i < this.length; i += 1) { 27257 if (arguments.length === 2) { 27258 // String 27259 this[i][props] = value; 27260 } else { 27261 // Object 27262 for (const propName in props) { 27263 this[i][propName] = props[propName]; 27264 } 27265 } 27266 } 27267 27268 return this; 27269 } 27270 27271 return this; 27272} 27273 27274function data(key, value) { 27275 let el; 27276 27277 if (typeof value === 'undefined') { 27278 el = this[0]; 27279 if (!el) return undefined; // Get value 27280 27281 if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) { 27282 return el.dom7ElementDataStorage[key]; 27283 } 27284 27285 const dataKey = el.getAttribute(`data-${key}`); 27286 27287 if (dataKey) { 27288 return dataKey; 27289 } 27290 27291 return undefined; 27292 } // Set value 27293 27294 27295 for (let i = 0; i < this.length; i += 1) { 27296 el = this[i]; 27297 if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {}; 27298 el.dom7ElementDataStorage[key] = value; 27299 } 27300 27301 return this; 27302} 27303 27304function removeData(key) { 27305 for (let i = 0; i < this.length; i += 1) { 27306 const el = this[i]; 27307 27308 if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) { 27309 el.dom7ElementDataStorage[key] = null; 27310 delete el.dom7ElementDataStorage[key]; 27311 } 27312 } 27313} 27314 27315function dataset() { 27316 const el = this[0]; 27317 if (!el) return undefined; 27318 const dataset = {}; // eslint-disable-line 27319 27320 if (el.dataset) { 27321 for (const dataKey in el.dataset) { 27322 dataset[dataKey] = el.dataset[dataKey]; 27323 } 27324 } else { 27325 for (let i = 0; i < el.attributes.length; i += 1) { 27326 const attr = el.attributes[i]; 27327 27328 if (attr.name.indexOf('data-') >= 0) { 27329 dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value; 27330 } 27331 } 27332 } 27333 27334 for (const key in dataset) { 27335 if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1; 27336 } 27337 27338 return dataset; 27339} 27340 27341function val(value) { 27342 if (typeof value === 'undefined') { 27343 // get value 27344 const el = this[0]; 27345 if (!el) return undefined; 27346 27347 if (el.multiple && el.nodeName.toLowerCase() === 'select') { 27348 const values = []; 27349 27350 for (let i = 0; i < el.selectedOptions.length; i += 1) { 27351 values.push(el.selectedOptions[i].value); 27352 } 27353 27354 return values; 27355 } 27356 27357 return el.value; 27358 } // set value 27359 27360 27361 for (let i = 0; i < this.length; i += 1) { 27362 const el = this[i]; 27363 27364 if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') { 27365 for (let j = 0; j < el.options.length; j += 1) { 27366 el.options[j].selected = value.indexOf(el.options[j].value) >= 0; 27367 } 27368 } else { 27369 el.value = value; 27370 } 27371 } 27372 27373 return this; 27374} 27375 27376function value(value) { 27377 return this.val(value); 27378} 27379 27380function transform(transform) { 27381 for (let i = 0; i < this.length; i += 1) { 27382 this[i].style.transform = transform; 27383 } 27384 27385 return this; 27386} 27387 27388function transition(duration) { 27389 for (let i = 0; i < this.length; i += 1) { 27390 this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration; 27391 } 27392 27393 return this; 27394} 27395 27396function on(...args) { 27397 let [eventType, targetSelector, listener, capture] = args; 27398 27399 if (typeof args[1] === 'function') { 27400 [eventType, listener, capture] = args; 27401 targetSelector = undefined; 27402 } 27403 27404 if (!capture) capture = false; 27405 27406 function handleLiveEvent(e) { 27407 const target = e.target; 27408 if (!target) return; 27409 const eventData = e.target.dom7EventData || []; 27410 27411 if (eventData.indexOf(e) < 0) { 27412 eventData.unshift(e); 27413 } 27414 27415 if ($(target).is(targetSelector)) listener.apply(target, eventData);else { 27416 const parents = $(target).parents(); // eslint-disable-line 27417 27418 for (let k = 0; k < parents.length; k += 1) { 27419 if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData); 27420 } 27421 } 27422 } 27423 27424 function handleEvent(e) { 27425 const eventData = e && e.target ? e.target.dom7EventData || [] : []; 27426 27427 if (eventData.indexOf(e) < 0) { 27428 eventData.unshift(e); 27429 } 27430 27431 listener.apply(this, eventData); 27432 } 27433 27434 const events = eventType.split(' '); 27435 let j; 27436 27437 for (let i = 0; i < this.length; i += 1) { 27438 const el = this[i]; 27439 27440 if (!targetSelector) { 27441 for (j = 0; j < events.length; j += 1) { 27442 const event = events[j]; 27443 if (!el.dom7Listeners) el.dom7Listeners = {}; 27444 if (!el.dom7Listeners[event]) el.dom7Listeners[event] = []; 27445 el.dom7Listeners[event].push({ 27446 listener, 27447 proxyListener: handleEvent 27448 }); 27449 el.addEventListener(event, handleEvent, capture); 27450 } 27451 } else { 27452 // Live events 27453 for (j = 0; j < events.length; j += 1) { 27454 const event = events[j]; 27455 if (!el.dom7LiveListeners) el.dom7LiveListeners = {}; 27456 if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = []; 27457 el.dom7LiveListeners[event].push({ 27458 listener, 27459 proxyListener: handleLiveEvent 27460 }); 27461 el.addEventListener(event, handleLiveEvent, capture); 27462 } 27463 } 27464 } 27465 27466 return this; 27467} 27468 27469function off(...args) { 27470 let [eventType, targetSelector, listener, capture] = args; 27471 27472 if (typeof args[1] === 'function') { 27473 [eventType, listener, capture] = args; 27474 targetSelector = undefined; 27475 } 27476 27477 if (!capture) capture = false; 27478 const events = eventType.split(' '); 27479 27480 for (let i = 0; i < events.length; i += 1) { 27481 const event = events[i]; 27482 27483 for (let j = 0; j < this.length; j += 1) { 27484 const el = this[j]; 27485 let handlers; 27486 27487 if (!targetSelector && el.dom7Listeners) { 27488 handlers = el.dom7Listeners[event]; 27489 } else if (targetSelector && el.dom7LiveListeners) { 27490 handlers = el.dom7LiveListeners[event]; 27491 } 27492 27493 if (handlers && handlers.length) { 27494 for (let k = handlers.length - 1; k >= 0; k -= 1) { 27495 const handler = handlers[k]; 27496 27497 if (listener && handler.listener === listener) { 27498 el.removeEventListener(event, handler.proxyListener, capture); 27499 handlers.splice(k, 1); 27500 } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) { 27501 el.removeEventListener(event, handler.proxyListener, capture); 27502 handlers.splice(k, 1); 27503 } else if (!listener) { 27504 el.removeEventListener(event, handler.proxyListener, capture); 27505 handlers.splice(k, 1); 27506 } 27507 } 27508 } 27509 } 27510 } 27511 27512 return this; 27513} 27514 27515function once(...args) { 27516 const dom = this; 27517 let [eventName, targetSelector, listener, capture] = args; 27518 27519 if (typeof args[1] === 'function') { 27520 [eventName, listener, capture] = args; 27521 targetSelector = undefined; 27522 } 27523 27524 function onceHandler(...eventArgs) { 27525 listener.apply(this, eventArgs); 27526 dom.off(eventName, targetSelector, onceHandler, capture); 27527 27528 if (onceHandler.dom7proxy) { 27529 delete onceHandler.dom7proxy; 27530 } 27531 } 27532 27533 onceHandler.dom7proxy = listener; 27534 return dom.on(eventName, targetSelector, onceHandler, capture); 27535} 27536 27537function trigger(...args) { 27538 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 27539 const events = args[0].split(' '); 27540 const eventData = args[1]; 27541 27542 for (let i = 0; i < events.length; i += 1) { 27543 const event = events[i]; 27544 27545 for (let j = 0; j < this.length; j += 1) { 27546 const el = this[j]; 27547 27548 if (window.CustomEvent) { 27549 const evt = new window.CustomEvent(event, { 27550 detail: eventData, 27551 bubbles: true, 27552 cancelable: true 27553 }); 27554 el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0); 27555 el.dispatchEvent(evt); 27556 el.dom7EventData = []; 27557 delete el.dom7EventData; 27558 } 27559 } 27560 } 27561 27562 return this; 27563} 27564 27565function transitionEnd(callback) { 27566 const dom = this; 27567 27568 function fireCallBack(e) { 27569 if (e.target !== this) return; 27570 callback.call(this, e); 27571 dom.off('transitionend', fireCallBack); 27572 } 27573 27574 if (callback) { 27575 dom.on('transitionend', fireCallBack); 27576 } 27577 27578 return this; 27579} 27580 27581function animationEnd(callback) { 27582 const dom = this; 27583 27584 function fireCallBack(e) { 27585 if (e.target !== this) return; 27586 callback.call(this, e); 27587 dom.off('animationend', fireCallBack); 27588 } 27589 27590 if (callback) { 27591 dom.on('animationend', fireCallBack); 27592 } 27593 27594 return this; 27595} 27596 27597function width() { 27598 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 27599 27600 if (this[0] === window) { 27601 return window.innerWidth; 27602 } 27603 27604 if (this.length > 0) { 27605 return parseFloat(this.css('width')); 27606 } 27607 27608 return null; 27609} 27610 27611function outerWidth(includeMargins) { 27612 if (this.length > 0) { 27613 if (includeMargins) { 27614 const styles = this.styles(); 27615 return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left')); 27616 } 27617 27618 return this[0].offsetWidth; 27619 } 27620 27621 return null; 27622} 27623 27624function height() { 27625 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 27626 27627 if (this[0] === window) { 27628 return window.innerHeight; 27629 } 27630 27631 if (this.length > 0) { 27632 return parseFloat(this.css('height')); 27633 } 27634 27635 return null; 27636} 27637 27638function outerHeight(includeMargins) { 27639 if (this.length > 0) { 27640 if (includeMargins) { 27641 const styles = this.styles(); 27642 return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom')); 27643 } 27644 27645 return this[0].offsetHeight; 27646 } 27647 27648 return null; 27649} 27650 27651function offset() { 27652 if (this.length > 0) { 27653 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 27654 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 27655 const el = this[0]; 27656 const box = el.getBoundingClientRect(); 27657 const body = document.body; 27658 const clientTop = el.clientTop || body.clientTop || 0; 27659 const clientLeft = el.clientLeft || body.clientLeft || 0; 27660 const scrollTop = el === window ? window.scrollY : el.scrollTop; 27661 const scrollLeft = el === window ? window.scrollX : el.scrollLeft; 27662 return { 27663 top: box.top + scrollTop - clientTop, 27664 left: box.left + scrollLeft - clientLeft 27665 }; 27666 } 27667 27668 return null; 27669} 27670 27671function hide() { 27672 for (let i = 0; i < this.length; i += 1) { 27673 this[i].style.display = 'none'; 27674 } 27675 27676 return this; 27677} 27678 27679function show() { 27680 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 27681 27682 for (let i = 0; i < this.length; i += 1) { 27683 const el = this[i]; 27684 27685 if (el.style.display === 'none') { 27686 el.style.display = ''; 27687 } 27688 27689 if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') { 27690 // Still not visible 27691 el.style.display = 'block'; 27692 } 27693 } 27694 27695 return this; 27696} 27697 27698function styles() { 27699 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 27700 if (this[0]) return window.getComputedStyle(this[0], null); 27701 return {}; 27702} 27703 27704function css(props, value) { 27705 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 27706 let i; 27707 27708 if (arguments.length === 1) { 27709 if (typeof props === 'string') { 27710 // .css('width') 27711 if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props); 27712 } else { 27713 // .css({ width: '100px' }) 27714 for (i = 0; i < this.length; i += 1) { 27715 for (const prop in props) { 27716 this[i].style[prop] = props[prop]; 27717 } 27718 } 27719 27720 return this; 27721 } 27722 } 27723 27724 if (arguments.length === 2 && typeof props === 'string') { 27725 // .css('width', '100px') 27726 for (i = 0; i < this.length; i += 1) { 27727 this[i].style[props] = value; 27728 } 27729 27730 return this; 27731 } 27732 27733 return this; 27734} 27735 27736function each(callback) { 27737 if (!callback) return this; 27738 this.forEach((el, index) => { 27739 callback.apply(el, [el, index]); 27740 }); 27741 return this; 27742} 27743 27744function filter(callback) { 27745 const result = arrayFilter(this, callback); 27746 return $(result); 27747} 27748 27749function html(html) { 27750 if (typeof html === 'undefined') { 27751 return this[0] ? this[0].innerHTML : null; 27752 } 27753 27754 for (let i = 0; i < this.length; i += 1) { 27755 this[i].innerHTML = html; 27756 } 27757 27758 return this; 27759} 27760 27761function text(text) { 27762 if (typeof text === 'undefined') { 27763 return this[0] ? this[0].textContent.trim() : null; 27764 } 27765 27766 for (let i = 0; i < this.length; i += 1) { 27767 this[i].textContent = text; 27768 } 27769 27770 return this; 27771} 27772 27773function is(selector) { 27774 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 27775 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 27776 const el = this[0]; 27777 let compareWith; 27778 let i; 27779 if (!el || typeof selector === 'undefined') return false; 27780 27781 if (typeof selector === 'string') { 27782 if (el.matches) return el.matches(selector); 27783 if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector); 27784 if (el.msMatchesSelector) return el.msMatchesSelector(selector); 27785 compareWith = $(selector); 27786 27787 for (i = 0; i < compareWith.length; i += 1) { 27788 if (compareWith[i] === el) return true; 27789 } 27790 27791 return false; 27792 } 27793 27794 if (selector === document) { 27795 return el === document; 27796 } 27797 27798 if (selector === window) { 27799 return el === window; 27800 } 27801 27802 if (selector.nodeType || selector instanceof Dom7) { 27803 compareWith = selector.nodeType ? [selector] : selector; 27804 27805 for (i = 0; i < compareWith.length; i += 1) { 27806 if (compareWith[i] === el) return true; 27807 } 27808 27809 return false; 27810 } 27811 27812 return false; 27813} 27814 27815function index() { 27816 let child = this[0]; 27817 let i; 27818 27819 if (child) { 27820 i = 0; // eslint-disable-next-line 27821 27822 while ((child = child.previousSibling) !== null) { 27823 if (child.nodeType === 1) i += 1; 27824 } 27825 27826 return i; 27827 } 27828 27829 return undefined; 27830} 27831 27832function eq(index) { 27833 if (typeof index === 'undefined') return this; 27834 const length = this.length; 27835 27836 if (index > length - 1) { 27837 return $([]); 27838 } 27839 27840 if (index < 0) { 27841 const returnIndex = length + index; 27842 if (returnIndex < 0) return $([]); 27843 return $([this[returnIndex]]); 27844 } 27845 27846 return $([this[index]]); 27847} 27848 27849function append(...els) { 27850 let newChild; 27851 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 27852 27853 for (let k = 0; k < els.length; k += 1) { 27854 newChild = els[k]; 27855 27856 for (let i = 0; i < this.length; i += 1) { 27857 if (typeof newChild === 'string') { 27858 const tempDiv = document.createElement('div'); 27859 tempDiv.innerHTML = newChild; 27860 27861 while (tempDiv.firstChild) { 27862 this[i].appendChild(tempDiv.firstChild); 27863 } 27864 } else if (newChild instanceof Dom7) { 27865 for (let j = 0; j < newChild.length; j += 1) { 27866 this[i].appendChild(newChild[j]); 27867 } 27868 } else { 27869 this[i].appendChild(newChild); 27870 } 27871 } 27872 } 27873 27874 return this; 27875} 27876 27877function appendTo(parent) { 27878 $(parent).append(this); 27879 return this; 27880} 27881 27882function prepend(newChild) { 27883 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 27884 let i; 27885 let j; 27886 27887 for (i = 0; i < this.length; i += 1) { 27888 if (typeof newChild === 'string') { 27889 const tempDiv = document.createElement('div'); 27890 tempDiv.innerHTML = newChild; 27891 27892 for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) { 27893 this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]); 27894 } 27895 } else if (newChild instanceof Dom7) { 27896 for (j = 0; j < newChild.length; j += 1) { 27897 this[i].insertBefore(newChild[j], this[i].childNodes[0]); 27898 } 27899 } else { 27900 this[i].insertBefore(newChild, this[i].childNodes[0]); 27901 } 27902 } 27903 27904 return this; 27905} 27906 27907function prependTo(parent) { 27908 $(parent).prepend(this); 27909 return this; 27910} 27911 27912function insertBefore(selector) { 27913 const before = $(selector); 27914 27915 for (let i = 0; i < this.length; i += 1) { 27916 if (before.length === 1) { 27917 before[0].parentNode.insertBefore(this[i], before[0]); 27918 } else if (before.length > 1) { 27919 for (let j = 0; j < before.length; j += 1) { 27920 before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]); 27921 } 27922 } 27923 } 27924} 27925 27926function insertAfter(selector) { 27927 const after = $(selector); 27928 27929 for (let i = 0; i < this.length; i += 1) { 27930 if (after.length === 1) { 27931 after[0].parentNode.insertBefore(this[i], after[0].nextSibling); 27932 } else if (after.length > 1) { 27933 for (let j = 0; j < after.length; j += 1) { 27934 after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling); 27935 } 27936 } 27937 } 27938} 27939 27940function next(selector) { 27941 if (this.length > 0) { 27942 if (selector) { 27943 if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) { 27944 return $([this[0].nextElementSibling]); 27945 } 27946 27947 return $([]); 27948 } 27949 27950 if (this[0].nextElementSibling) return $([this[0].nextElementSibling]); 27951 return $([]); 27952 } 27953 27954 return $([]); 27955} 27956 27957function nextAll(selector) { 27958 const nextEls = []; 27959 let el = this[0]; 27960 if (!el) return $([]); 27961 27962 while (el.nextElementSibling) { 27963 const next = el.nextElementSibling; // eslint-disable-line 27964 27965 if (selector) { 27966 if ($(next).is(selector)) nextEls.push(next); 27967 } else nextEls.push(next); 27968 27969 el = next; 27970 } 27971 27972 return $(nextEls); 27973} 27974 27975function prev(selector) { 27976 if (this.length > 0) { 27977 const el = this[0]; 27978 27979 if (selector) { 27980 if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) { 27981 return $([el.previousElementSibling]); 27982 } 27983 27984 return $([]); 27985 } 27986 27987 if (el.previousElementSibling) return $([el.previousElementSibling]); 27988 return $([]); 27989 } 27990 27991 return $([]); 27992} 27993 27994function prevAll(selector) { 27995 const prevEls = []; 27996 let el = this[0]; 27997 if (!el) return $([]); 27998 27999 while (el.previousElementSibling) { 28000 const prev = el.previousElementSibling; // eslint-disable-line 28001 28002 if (selector) { 28003 if ($(prev).is(selector)) prevEls.push(prev); 28004 } else prevEls.push(prev); 28005 28006 el = prev; 28007 } 28008 28009 return $(prevEls); 28010} 28011 28012function siblings(selector) { 28013 return this.nextAll(selector).add(this.prevAll(selector)); 28014} 28015 28016function parent(selector) { 28017 const parents = []; // eslint-disable-line 28018 28019 for (let i = 0; i < this.length; i += 1) { 28020 if (this[i].parentNode !== null) { 28021 if (selector) { 28022 if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode); 28023 } else { 28024 parents.push(this[i].parentNode); 28025 } 28026 } 28027 } 28028 28029 return $(parents); 28030} 28031 28032function parents(selector) { 28033 const parents = []; // eslint-disable-line 28034 28035 for (let i = 0; i < this.length; i += 1) { 28036 let parent = this[i].parentNode; // eslint-disable-line 28037 28038 while (parent) { 28039 if (selector) { 28040 if ($(parent).is(selector)) parents.push(parent); 28041 } else { 28042 parents.push(parent); 28043 } 28044 28045 parent = parent.parentNode; 28046 } 28047 } 28048 28049 return $(parents); 28050} 28051 28052function closest(selector) { 28053 let closest = this; // eslint-disable-line 28054 28055 if (typeof selector === 'undefined') { 28056 return $([]); 28057 } 28058 28059 if (!closest.is(selector)) { 28060 closest = closest.parents(selector).eq(0); 28061 } 28062 28063 return closest; 28064} 28065 28066function find(selector) { 28067 const foundElements = []; 28068 28069 for (let i = 0; i < this.length; i += 1) { 28070 const found = this[i].querySelectorAll(selector); 28071 28072 for (let j = 0; j < found.length; j += 1) { 28073 foundElements.push(found[j]); 28074 } 28075 } 28076 28077 return $(foundElements); 28078} 28079 28080function children(selector) { 28081 const children = []; // eslint-disable-line 28082 28083 for (let i = 0; i < this.length; i += 1) { 28084 const childNodes = this[i].children; 28085 28086 for (let j = 0; j < childNodes.length; j += 1) { 28087 if (!selector || $(childNodes[j]).is(selector)) { 28088 children.push(childNodes[j]); 28089 } 28090 } 28091 } 28092 28093 return $(children); 28094} 28095 28096function remove() { 28097 for (let i = 0; i < this.length; i += 1) { 28098 if (this[i].parentNode) this[i].parentNode.removeChild(this[i]); 28099 } 28100 28101 return this; 28102} 28103 28104function detach() { 28105 return this.remove(); 28106} 28107 28108function add(...els) { 28109 const dom = this; 28110 let i; 28111 let j; 28112 28113 for (i = 0; i < els.length; i += 1) { 28114 const toAdd = $(els[i]); 28115 28116 for (j = 0; j < toAdd.length; j += 1) { 28117 dom.push(toAdd[j]); 28118 } 28119 } 28120 28121 return dom; 28122} 28123 28124function empty() { 28125 for (let i = 0; i < this.length; i += 1) { 28126 const el = this[i]; 28127 28128 if (el.nodeType === 1) { 28129 for (let j = 0; j < el.childNodes.length; j += 1) { 28130 if (el.childNodes[j].parentNode) { 28131 el.childNodes[j].parentNode.removeChild(el.childNodes[j]); 28132 } 28133 } 28134 28135 el.textContent = ''; 28136 } 28137 } 28138 28139 return this; 28140} 28141 28142// eslint-disable-next-line 28143 28144function scrollTo(...args) { 28145 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 28146 let [left, top, duration, easing, callback] = args; 28147 28148 if (args.length === 4 && typeof easing === 'function') { 28149 callback = easing; 28150 [left, top, duration, callback, easing] = args; 28151 } 28152 28153 if (typeof easing === 'undefined') easing = 'swing'; 28154 return this.each(function animate() { 28155 const el = this; 28156 let currentTop; 28157 let currentLeft; 28158 let maxTop; 28159 let maxLeft; 28160 let newTop; 28161 let newLeft; 28162 let scrollTop; // eslint-disable-line 28163 28164 let scrollLeft; // eslint-disable-line 28165 28166 let animateTop = top > 0 || top === 0; 28167 let animateLeft = left > 0 || left === 0; 28168 28169 if (typeof easing === 'undefined') { 28170 easing = 'swing'; 28171 } 28172 28173 if (animateTop) { 28174 currentTop = el.scrollTop; 28175 28176 if (!duration) { 28177 el.scrollTop = top; 28178 } 28179 } 28180 28181 if (animateLeft) { 28182 currentLeft = el.scrollLeft; 28183 28184 if (!duration) { 28185 el.scrollLeft = left; 28186 } 28187 } 28188 28189 if (!duration) return; 28190 28191 if (animateTop) { 28192 maxTop = el.scrollHeight - el.offsetHeight; 28193 newTop = Math.max(Math.min(top, maxTop), 0); 28194 } 28195 28196 if (animateLeft) { 28197 maxLeft = el.scrollWidth - el.offsetWidth; 28198 newLeft = Math.max(Math.min(left, maxLeft), 0); 28199 } 28200 28201 let startTime = null; 28202 if (animateTop && newTop === currentTop) animateTop = false; 28203 if (animateLeft && newLeft === currentLeft) animateLeft = false; 28204 28205 function render(time = new Date().getTime()) { 28206 if (startTime === null) { 28207 startTime = time; 28208 } 28209 28210 const progress = Math.max(Math.min((time - startTime) / duration, 1), 0); 28211 const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2; 28212 let done; 28213 if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop); 28214 if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft); 28215 28216 if (animateTop && newTop > currentTop && scrollTop >= newTop) { 28217 el.scrollTop = newTop; 28218 done = true; 28219 } 28220 28221 if (animateTop && newTop < currentTop && scrollTop <= newTop) { 28222 el.scrollTop = newTop; 28223 done = true; 28224 } 28225 28226 if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) { 28227 el.scrollLeft = newLeft; 28228 done = true; 28229 } 28230 28231 if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) { 28232 el.scrollLeft = newLeft; 28233 done = true; 28234 } 28235 28236 if (done) { 28237 if (callback) callback(); 28238 return; 28239 } 28240 28241 if (animateTop) el.scrollTop = scrollTop; 28242 if (animateLeft) el.scrollLeft = scrollLeft; 28243 window.requestAnimationFrame(render); 28244 } 28245 28246 window.requestAnimationFrame(render); 28247 }); 28248} // scrollTop(top, duration, easing, callback) { 28249 28250 28251function scrollTop(...args) { 28252 let [top, duration, easing, callback] = args; 28253 28254 if (args.length === 3 && typeof easing === 'function') { 28255 [top, duration, callback, easing] = args; 28256 } 28257 28258 const dom = this; 28259 28260 if (typeof top === 'undefined') { 28261 if (dom.length > 0) return dom[0].scrollTop; 28262 return null; 28263 } 28264 28265 return dom.scrollTo(undefined, top, duration, easing, callback); 28266} 28267 28268function scrollLeft(...args) { 28269 let [left, duration, easing, callback] = args; 28270 28271 if (args.length === 3 && typeof easing === 'function') { 28272 [left, duration, callback, easing] = args; 28273 } 28274 28275 const dom = this; 28276 28277 if (typeof left === 'undefined') { 28278 if (dom.length > 0) return dom[0].scrollLeft; 28279 return null; 28280 } 28281 28282 return dom.scrollTo(left, undefined, duration, easing, callback); 28283} 28284 28285// eslint-disable-next-line 28286 28287function animate(initialProps, initialParams) { 28288 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 28289 const els = this; 28290 const a = { 28291 props: Object.assign({}, initialProps), 28292 params: Object.assign({ 28293 duration: 300, 28294 easing: 'swing' // or 'linear' 28295 28296 /* Callbacks 28297 begin(elements) 28298 complete(elements) 28299 progress(elements, complete, remaining, start, tweenValue) 28300 */ 28301 28302 }, initialParams), 28303 elements: els, 28304 animating: false, 28305 que: [], 28306 28307 easingProgress(easing, progress) { 28308 if (easing === 'swing') { 28309 return 0.5 - Math.cos(progress * Math.PI) / 2; 28310 } 28311 28312 if (typeof easing === 'function') { 28313 return easing(progress); 28314 } 28315 28316 return progress; 28317 }, 28318 28319 stop() { 28320 if (a.frameId) { 28321 window.cancelAnimationFrame(a.frameId); 28322 } 28323 28324 a.animating = false; 28325 a.elements.each(el => { 28326 const element = el; 28327 delete element.dom7AnimateInstance; 28328 }); 28329 a.que = []; 28330 }, 28331 28332 done(complete) { 28333 a.animating = false; 28334 a.elements.each(el => { 28335 const element = el; 28336 delete element.dom7AnimateInstance; 28337 }); 28338 if (complete) complete(els); 28339 28340 if (a.que.length > 0) { 28341 const que = a.que.shift(); 28342 a.animate(que[0], que[1]); 28343 } 28344 }, 28345 28346 animate(props, params) { 28347 if (a.animating) { 28348 a.que.push([props, params]); 28349 return a; 28350 } 28351 28352 const elements = []; // Define & Cache Initials & Units 28353 28354 a.elements.each((el, index) => { 28355 let initialFullValue; 28356 let initialValue; 28357 let unit; 28358 let finalValue; 28359 let finalFullValue; 28360 if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a; 28361 elements[index] = { 28362 container: el 28363 }; 28364 Object.keys(props).forEach(prop => { 28365 initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.'); 28366 initialValue = parseFloat(initialFullValue); 28367 unit = initialFullValue.replace(initialValue, ''); 28368 finalValue = parseFloat(props[prop]); 28369 finalFullValue = props[prop] + unit; 28370 elements[index][prop] = { 28371 initialFullValue, 28372 initialValue, 28373 unit, 28374 finalValue, 28375 finalFullValue, 28376 currentValue: initialValue 28377 }; 28378 }); 28379 }); 28380 let startTime = null; 28381 let time; 28382 let elementsDone = 0; 28383 let propsDone = 0; 28384 let done; 28385 let began = false; 28386 a.animating = true; 28387 28388 function render() { 28389 time = new Date().getTime(); 28390 let progress; 28391 let easeProgress; // let el; 28392 28393 if (!began) { 28394 began = true; 28395 if (params.begin) params.begin(els); 28396 } 28397 28398 if (startTime === null) { 28399 startTime = time; 28400 } 28401 28402 if (params.progress) { 28403 // eslint-disable-next-line 28404 params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime); 28405 } 28406 28407 elements.forEach(element => { 28408 const el = element; 28409 if (done || el.done) return; 28410 Object.keys(props).forEach(prop => { 28411 if (done || el.done) return; 28412 progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0); 28413 easeProgress = a.easingProgress(params.easing, progress); 28414 const { 28415 initialValue, 28416 finalValue, 28417 unit 28418 } = el[prop]; 28419 el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue); 28420 const currentValue = el[prop].currentValue; 28421 28422 if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) { 28423 el.container.style[prop] = finalValue + unit; 28424 propsDone += 1; 28425 28426 if (propsDone === Object.keys(props).length) { 28427 el.done = true; 28428 elementsDone += 1; 28429 } 28430 28431 if (elementsDone === elements.length) { 28432 done = true; 28433 } 28434 } 28435 28436 if (done) { 28437 a.done(params.complete); 28438 return; 28439 } 28440 28441 el.container.style[prop] = currentValue + unit; 28442 }); 28443 }); 28444 if (done) return; // Then call 28445 28446 a.frameId = window.requestAnimationFrame(render); 28447 } 28448 28449 a.frameId = window.requestAnimationFrame(render); 28450 return a; 28451 } 28452 28453 }; 28454 28455 if (a.elements.length === 0) { 28456 return els; 28457 } 28458 28459 let animateInstance; 28460 28461 for (let i = 0; i < a.elements.length; i += 1) { 28462 if (a.elements[i].dom7AnimateInstance) { 28463 animateInstance = a.elements[i].dom7AnimateInstance; 28464 } else a.elements[i].dom7AnimateInstance = a; 28465 } 28466 28467 if (!animateInstance) { 28468 animateInstance = a; 28469 } 28470 28471 if (initialProps === 'stop') { 28472 animateInstance.stop(); 28473 } else { 28474 animateInstance.animate(a.props, a.params); 28475 } 28476 28477 return els; 28478} 28479 28480function stop() { 28481 const els = this; 28482 28483 for (let i = 0; i < els.length; i += 1) { 28484 if (els[i].dom7AnimateInstance) { 28485 els[i].dom7AnimateInstance.stop(); 28486 } 28487 } 28488} 28489 28490const noTrigger = 'resize scroll'.split(' '); 28491 28492function shortcut(name) { 28493 function eventHandler(...args) { 28494 if (typeof args[0] === 'undefined') { 28495 for (let i = 0; i < this.length; i += 1) { 28496 if (noTrigger.indexOf(name) < 0) { 28497 if (name in this[i]) this[i][name]();else { 28498 $(this[i]).trigger(name); 28499 } 28500 } 28501 } 28502 28503 return this; 28504 } 28505 28506 return this.on(name, ...args); 28507 } 28508 28509 return eventHandler; 28510} 28511 28512const click = shortcut('click'); 28513const blur = shortcut('blur'); 28514const focus = shortcut('focus'); 28515const focusin = shortcut('focusin'); 28516const focusout = shortcut('focusout'); 28517const keyup = shortcut('keyup'); 28518const keydown = shortcut('keydown'); 28519const keypress = shortcut('keypress'); 28520const submit = shortcut('submit'); 28521const change = shortcut('change'); 28522const mousedown = shortcut('mousedown'); 28523const mousemove = shortcut('mousemove'); 28524const mouseup = shortcut('mouseup'); 28525const mouseenter = shortcut('mouseenter'); 28526const mouseleave = shortcut('mouseleave'); 28527const mouseout = shortcut('mouseout'); 28528const mouseover = shortcut('mouseover'); 28529const touchstart = shortcut('touchstart'); 28530const touchend = shortcut('touchend'); 28531const touchmove = shortcut('touchmove'); 28532const resize = shortcut('resize'); 28533const scroll = shortcut('scroll'); 28534 28535/* harmony default export */ __webpack_exports__["default"] = ($); 28536 28537 28538 28539/***/ }), 28540
vendor: 4,023 bytes, lines 28541-28707
28541/***/ "./node_modules/ssr-window/ssr-window.esm.js": 28542/*!***************************************************!*\ 28543 !*** ./node_modules/ssr-window/ssr-window.esm.js ***! 28544 \***************************************************/ 28545/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 28546 28547"use strict"; 28548__webpack_require__.r(__webpack_exports__); 28549/* harmony export */ __webpack_require__.d(__webpack_exports__, { 28550/* harmony export */ "extend": function() { return /* binding */ extend; }, 28551/* harmony export */ "getDocument": function() { return /* binding */ getDocument; }, 28552/* harmony export */ "getWindow": function() { return /* binding */ getWindow; }, 28553/* harmony export */ "ssrDocument": function() { return /* binding */ ssrDocument; }, 28554/* harmony export */ "ssrWindow": function() { return /* binding */ ssrWindow; } 28555/* harmony export */ }); 28556/** 28557 * SSR Window 4.0.2 28558 * Better handling for window object in SSR environment 28559 * https://github.com/nolimits4web/ssr-window 28560 * 28561 * Copyright 2021, Vladimir Kharlampidi 28562 * 28563 * Licensed under MIT 28564 * 28565 * Released on: December 13, 2021 28566 */ 28567/* eslint-disable no-param-reassign */ 28568function isObject(obj) { 28569 return (obj !== null && 28570 typeof obj === 'object' && 28571 'constructor' in obj && 28572 obj.constructor === Object); 28573} 28574function extend(target = {}, src = {}) { 28575 Object.keys(src).forEach((key) => { 28576 if (typeof target[key] === 'undefined') 28577 target[key] = src[key]; 28578 else if (isObject(src[key]) && 28579 isObject(target[key]) && 28580 Object.keys(src[key]).length > 0) { 28581 extend(target[key], src[key]); 28582 } 28583 }); 28584} 28585 28586const ssrDocument = { 28587 body: {}, 28588 addEventListener() { }, 28589 removeEventListener() { }, 28590 activeElement: { 28591 blur() { }, 28592 nodeName: '', 28593 }, 28594 querySelector() { 28595 return null; 28596 }, 28597 querySelectorAll() { 28598 return []; 28599 }, 28600 getElementById() { 28601 return null; 28602 }, 28603 createEvent() { 28604 return { 28605 initEvent() { }, 28606 }; 28607 }, 28608 createElement() { 28609 return { 28610 children: [], 28611 childNodes: [], 28612 style: {}, 28613 setAttribute() { }, 28614 getElementsByTagName() { 28615 return []; 28616 }, 28617 }; 28618 }, 28619 createElementNS() { 28620 return {}; 28621 }, 28622 importNode() { 28623 return null; 28624 }, 28625 location: { 28626 hash: '', 28627 host: '', 28628 hostname: '', 28629 href: '', 28630 origin: '', 28631 pathname: '', 28632 protocol: '', 28633 search: '', 28634 }, 28635}; 28636function getDocument() { 28637 const doc = typeof document !== 'undefined' ? document : {}; 28638 extend(doc, ssrDocument); 28639 return doc; 28640} 28641 28642const ssrWindow = { 28643 document: ssrDocument, 28644 navigator: { 28645 userAgent: '', 28646 }, 28647 location: { 28648 hash: '', 28649 host: '', 28650 hostname: '', 28651 href: '', 28652 origin: '', 28653 pathname: '', 28654 protocol: '', 28655 search: '', 28656 }, 28657 history: { 28658 replaceState() { }, 28659 pushState() { }, 28660 go() { }, 28661 back() { }, 28662 }, 28663 CustomEvent: function CustomEvent() { 28664 return this; 28665 }, 28666 addEventListener() { }, 28667 removeEventListener() { }, 28668 getComputedStyle() { 28669 return { 28670 getPropertyValue() { 28671 return ''; 28672 }, 28673 }; 28674 }, 28675 Image() { }, 28676 Date() { }, 28677 screen: {}, 28678 setTimeout() { }, 28679 clearTimeout() { }, 28680 matchMedia() { 28681 return {}; 28682 }, 28683 requestAnimationFrame(callback) { 28684 if (typeof setTimeout === 'undefined') { 28685 callback(); 28686 return null; 28687 } 28688 return setTimeout(callback, 0); 28689 }, 28690 cancelAnimationFrame(id) { 28691 if (typeof setTimeout === 'undefined') { 28692 return; 28693 } 28694 clearTimeout(id); 28695 }, 28696}; 28697function getWindow() { 28698 const win = typeof window !== 'undefined' ? window : {}; 28699 extend(win, ssrWindow); 28700 return win; 28701} 28702 28703 28704 28705 28706/***/ }), 28707
vendor: 1,912 bytes, lines 28708-28766
28708/***/ "./node_modules/swiper/core/breakpoints/getBreakpoint.js": 28709/*!***************************************************************!*\ 28710 !*** ./node_modules/swiper/core/breakpoints/getBreakpoint.js ***! 28711 \***************************************************************/ 28712/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 28713 28714"use strict"; 28715__webpack_require__.r(__webpack_exports__); 28716/* harmony export */ __webpack_require__.d(__webpack_exports__, { 28717/* harmony export */ "default": function() { return /* binding */ getBreakpoint; } 28718/* harmony export */ }); 28719/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 28720 28721function getBreakpoint(breakpoints, base, containerEl) { 28722 if (base === void 0) { 28723 base = 'window'; 28724 } 28725 28726 if (!breakpoints || base === 'container' && !containerEl) return undefined; 28727 let breakpoint = false; 28728 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 28729 const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight; 28730 const points = Object.keys(breakpoints).map(point => { 28731 if (typeof point === 'string' && point.indexOf('@') === 0) { 28732 const minRatio = parseFloat(point.substr(1)); 28733 const value = currentHeight * minRatio; 28734 return { 28735 value, 28736 point 28737 }; 28738 } 28739 28740 return { 28741 value: point, 28742 point 28743 }; 28744 }); 28745 points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10)); 28746 28747 for (let i = 0; i < points.length; i += 1) { 28748 const { 28749 point, 28750 value 28751 } = points[i]; 28752 28753 if (base === 'window') { 28754 if (window.matchMedia(`(min-width: ${value}px)`).matches) { 28755 breakpoint = point; 28756 } 28757 } else if (value <= containerEl.clientWidth) { 28758 breakpoint = point; 28759 } 28760 } 28761 28762 return breakpoint || 'max'; 28763} 28764 28765/***/ }), 28766
vendor: 989 bytes, lines 28767-28785
28767/***/ "./node_modules/swiper/core/breakpoints/index.js": 28768/*!*******************************************************!*\ 28769 !*** ./node_modules/swiper/core/breakpoints/index.js ***! 28770 \*******************************************************/ 28771/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 28772 28773"use strict"; 28774__webpack_require__.r(__webpack_exports__); 28775/* harmony import */ var _setBreakpoint_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setBreakpoint.js */ "./node_modules/swiper/core/breakpoints/setBreakpoint.js"); 28776/* harmony import */ var _getBreakpoint_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getBreakpoint.js */ "./node_modules/swiper/core/breakpoints/getBreakpoint.js"); 28777 28778 28779/* harmony default export */ __webpack_exports__["default"] = ({ 28780 setBreakpoint: _setBreakpoint_js__WEBPACK_IMPORTED_MODULE_0__["default"], 28781 getBreakpoint: _getBreakpoint_js__WEBPACK_IMPORTED_MODULE_1__["default"] 28782}); 28783 28784/***/ }), 28785
vendor: 3,336 bytes, lines 28786-28872
28786/***/ "./node_modules/swiper/core/breakpoints/setBreakpoint.js": 28787/*!***************************************************************!*\ 28788 !*** ./node_modules/swiper/core/breakpoints/setBreakpoint.js ***! 28789 \***************************************************************/ 28790/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 28791 28792"use strict"; 28793__webpack_require__.r(__webpack_exports__); 28794/* harmony export */ __webpack_require__.d(__webpack_exports__, { 28795/* harmony export */ "default": function() { return /* binding */ setBreakpoint; } 28796/* harmony export */ }); 28797/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 28798 28799 28800const isGridEnabled = (swiper, params) => { 28801 return swiper.grid && params.grid && params.grid.rows > 1; 28802}; 28803 28804function setBreakpoint() { 28805 const swiper = this; 28806 const { 28807 activeIndex, 28808 initialized, 28809 loopedSlides = 0, 28810 params, 28811 $el 28812 } = swiper; 28813 const breakpoints = params.breakpoints; 28814 if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters 28815 28816 const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el); 28817 if (!breakpoint || swiper.currentBreakpoint === breakpoint) return; 28818 const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; 28819 const breakpointParams = breakpointOnlyParams || swiper.originalParams; 28820 const wasMultiRow = isGridEnabled(swiper, params); 28821 const isMultiRow = isGridEnabled(swiper, breakpointParams); 28822 const wasEnabled = params.enabled; 28823 28824 if (wasMultiRow && !isMultiRow) { 28825 $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`); 28826 swiper.emitContainerClasses(); 28827 } else if (!wasMultiRow && isMultiRow) { 28828 $el.addClass(`${params.containerModifierClass}grid`); 28829 28830 if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') { 28831 $el.addClass(`${params.containerModifierClass}grid-column`); 28832 } 28833 28834 swiper.emitContainerClasses(); 28835 } 28836 28837 const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; 28838 const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); 28839 28840 if (directionChanged && initialized) { 28841 swiper.changeDirection(); 28842 } 28843 28844 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(swiper.params, breakpointParams); 28845 const isEnabled = swiper.params.enabled; 28846 Object.assign(swiper, { 28847 allowTouchMove: swiper.params.allowTouchMove, 28848 allowSlideNext: swiper.params.allowSlideNext, 28849 allowSlidePrev: swiper.params.allowSlidePrev 28850 }); 28851 28852 if (wasEnabled && !isEnabled) { 28853 swiper.disable(); 28854 } else if (!wasEnabled && isEnabled) { 28855 swiper.enable(); 28856 } 28857 28858 swiper.currentBreakpoint = breakpoint; 28859 swiper.emit('_beforeBreakpoint', breakpointParams); 28860 28861 if (needsReLoop && initialized) { 28862 swiper.loopDestroy(); 28863 swiper.loopCreate(); 28864 swiper.updateSlides(); 28865 swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false); 28866 } 28867 28868 swiper.emit('breakpoint', breakpointParams); 28869} 28870 28871/***/ }), 28872
vendor: 1,364 bytes, lines 28873-28921
28873/***/ "./node_modules/swiper/core/check-overflow/index.js": 28874/*!**********************************************************!*\ 28875 !*** ./node_modules/swiper/core/check-overflow/index.js ***! 28876 \**********************************************************/ 28877/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 28878 28879"use strict"; 28880__webpack_require__.r(__webpack_exports__); 28881function checkOverflow() { 28882 const swiper = this; 28883 const { 28884 isLocked: wasLocked, 28885 params 28886 } = swiper; 28887 const { 28888 slidesOffsetBefore 28889 } = params; 28890 28891 if (slidesOffsetBefore) { 28892 const lastSlideIndex = swiper.slides.length - 1; 28893 const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2; 28894 swiper.isLocked = swiper.size > lastSlideRightEdge; 28895 } else { 28896 swiper.isLocked = swiper.snapGrid.length === 1; 28897 } 28898 28899 if (params.allowSlideNext === true) { 28900 swiper.allowSlideNext = !swiper.isLocked; 28901 } 28902 28903 if (params.allowSlidePrev === true) { 28904 swiper.allowSlidePrev = !swiper.isLocked; 28905 } 28906 28907 if (wasLocked && wasLocked !== swiper.isLocked) { 28908 swiper.isEnd = false; 28909 } 28910 28911 if (wasLocked !== swiper.isLocked) { 28912 swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); 28913 } 28914} 28915 28916/* harmony default export */ __webpack_exports__["default"] = ({ 28917 checkOverflow 28918}); 28919 28920/***/ }), 28921
vendor: 1,921 bytes, lines 28922-28989
28922/***/ "./node_modules/swiper/core/classes/addClasses.js": 28923/*!********************************************************!*\ 28924 !*** ./node_modules/swiper/core/classes/addClasses.js ***! 28925 \********************************************************/ 28926/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 28927 28928"use strict"; 28929__webpack_require__.r(__webpack_exports__); 28930/* harmony export */ __webpack_require__.d(__webpack_exports__, { 28931/* harmony export */ "default": function() { return /* binding */ addClasses; } 28932/* harmony export */ }); 28933function prepareClasses(entries, prefix) { 28934 const resultClasses = []; 28935 entries.forEach(item => { 28936 if (typeof item === 'object') { 28937 Object.keys(item).forEach(classNames => { 28938 if (item[classNames]) { 28939 resultClasses.push(prefix + classNames); 28940 } 28941 }); 28942 } else if (typeof item === 'string') { 28943 resultClasses.push(prefix + item); 28944 } 28945 }); 28946 return resultClasses; 28947} 28948 28949function addClasses() { 28950 const swiper = this; 28951 const { 28952 classNames, 28953 params, 28954 rtl, 28955 $el, 28956 device, 28957 support 28958 } = swiper; // prettier-ignore 28959 28960 const suffixes = prepareClasses(['initialized', params.direction, { 28961 'pointer-events': !support.touch 28962 }, { 28963 'free-mode': swiper.params.freeMode && params.freeMode.enabled 28964 }, { 28965 'autoheight': params.autoHeight 28966 }, { 28967 'rtl': rtl 28968 }, { 28969 'grid': params.grid && params.grid.rows > 1 28970 }, { 28971 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' 28972 }, { 28973 'android': device.android 28974 }, { 28975 'ios': device.ios 28976 }, { 28977 'css-mode': params.cssMode 28978 }, { 28979 'centered': params.cssMode && params.centeredSlides 28980 }, { 28981 'watch-progress': params.watchSlidesProgress 28982 }], params.containerModifierClass); 28983 classNames.push(...suffixes); 28984 $el.addClass([...classNames].join(' ')); 28985 swiper.emitContainerClasses(); 28986} 28987 28988/***/ }), 28989
vendor: 950 bytes, lines 28990-29008
28990/***/ "./node_modules/swiper/core/classes/index.js": 28991/*!***************************************************!*\ 28992 !*** ./node_modules/swiper/core/classes/index.js ***! 28993 \***************************************************/ 28994/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 28995 28996"use strict"; 28997__webpack_require__.r(__webpack_exports__); 28998/* harmony import */ var _addClasses_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addClasses.js */ "./node_modules/swiper/core/classes/addClasses.js"); 28999/* harmony import */ var _removeClasses_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./removeClasses.js */ "./node_modules/swiper/core/classes/removeClasses.js"); 29000 29001 29002/* harmony default export */ __webpack_exports__["default"] = ({ 29003 addClasses: _addClasses_js__WEBPACK_IMPORTED_MODULE_0__["default"], 29004 removeClasses: _removeClasses_js__WEBPACK_IMPORTED_MODULE_1__["default"] 29005}); 29006 29007/***/ }), 29008
vendor: 773 bytes, lines 29009-29031
29009/***/ "./node_modules/swiper/core/classes/removeClasses.js": 29010/*!***********************************************************!*\ 29011 !*** ./node_modules/swiper/core/classes/removeClasses.js ***! 29012 \***********************************************************/ 29013/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 29014 29015"use strict"; 29016__webpack_require__.r(__webpack_exports__); 29017/* harmony export */ __webpack_require__.d(__webpack_exports__, { 29018/* harmony export */ "default": function() { return /* binding */ removeClasses; } 29019/* harmony export */ }); 29020function removeClasses() { 29021 const swiper = this; 29022 const { 29023 $el, 29024 classNames 29025 } = swiper; 29026 $el.removeClass(classNames.join(' ')); 29027 swiper.emitContainerClasses(); 29028} 29029 29030/***/ }), 29031
vendor: 22,245 bytes, lines 29032-29703
29032/***/ "./node_modules/swiper/core/core.js": 29033/*!******************************************!*\ 29034 !*** ./node_modules/swiper/core/core.js ***! 29035 \******************************************/ 29036/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 29037 29038"use strict"; 29039__webpack_require__.r(__webpack_exports__); 29040/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 29041/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 29042/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 29043/* harmony import */ var _shared_get_support_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/get-support.js */ "./node_modules/swiper/shared/get-support.js"); 29044/* harmony import */ var _shared_get_device_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/get-device.js */ "./node_modules/swiper/shared/get-device.js"); 29045/* harmony import */ var _shared_get_browser_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../shared/get-browser.js */ "./node_modules/swiper/shared/get-browser.js"); 29046/* harmony import */ var _modules_resize_resize_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/resize/resize.js */ "./node_modules/swiper/core/modules/resize/resize.js"); 29047/* harmony import */ var _modules_observer_observer_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/observer/observer.js */ "./node_modules/swiper/core/modules/observer/observer.js"); 29048/* harmony import */ var _events_emitter_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./events-emitter.js */ "./node_modules/swiper/core/events-emitter.js"); 29049/* harmony import */ var _update_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./update/index.js */ "./node_modules/swiper/core/update/index.js"); 29050/* harmony import */ var _translate_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./translate/index.js */ "./node_modules/swiper/core/translate/index.js"); 29051/* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./transition/index.js */ "./node_modules/swiper/core/transition/index.js"); 29052/* harmony import */ var _slide_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./slide/index.js */ "./node_modules/swiper/core/slide/index.js"); 29053/* harmony import */ var _loop_index_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./loop/index.js */ "./node_modules/swiper/core/loop/index.js"); 29054/* harmony import */ var _grab_cursor_index_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./grab-cursor/index.js */ "./node_modules/swiper/core/grab-cursor/index.js"); 29055/* harmony import */ var _events_index_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./events/index.js */ "./node_modules/swiper/core/events/index.js"); 29056/* harmony import */ var _breakpoints_index_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./breakpoints/index.js */ "./node_modules/swiper/core/breakpoints/index.js"); 29057/* harmony import */ var _classes_index_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./classes/index.js */ "./node_modules/swiper/core/classes/index.js"); 29058/* harmony import */ var _images_index_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./images/index.js */ "./node_modules/swiper/core/images/index.js"); 29059/* harmony import */ var _check_overflow_index_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./check-overflow/index.js */ "./node_modules/swiper/core/check-overflow/index.js"); 29060/* harmony import */ var _defaults_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./defaults.js */ "./node_modules/swiper/core/defaults.js"); 29061/* harmony import */ var _moduleExtendParams_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./moduleExtendParams.js */ "./node_modules/swiper/core/moduleExtendParams.js"); 29062/* eslint no-param-reassign: "off" */ 29063 29064 29065 29066 29067 29068 29069 29070 29071 29072 29073 29074 29075 29076 29077 29078 29079 29080 29081 29082 29083 29084 29085const prototypes = { 29086 eventsEmitter: _events_emitter_js__WEBPACK_IMPORTED_MODULE_8__["default"], 29087 update: _update_index_js__WEBPACK_IMPORTED_MODULE_9__["default"], 29088 translate: _translate_index_js__WEBPACK_IMPORTED_MODULE_10__["default"], 29089 transition: _transition_index_js__WEBPACK_IMPORTED_MODULE_11__["default"], 29090 slide: _slide_index_js__WEBPACK_IMPORTED_MODULE_12__["default"], 29091 loop: _loop_index_js__WEBPACK_IMPORTED_MODULE_13__["default"], 29092 grabCursor: _grab_cursor_index_js__WEBPACK_IMPORTED_MODULE_14__["default"], 29093 events: _events_index_js__WEBPACK_IMPORTED_MODULE_15__["default"], 29094 breakpoints: _breakpoints_index_js__WEBPACK_IMPORTED_MODULE_16__["default"], 29095 checkOverflow: _check_overflow_index_js__WEBPACK_IMPORTED_MODULE_19__["default"], 29096 classes: _classes_index_js__WEBPACK_IMPORTED_MODULE_17__["default"], 29097 images: _images_index_js__WEBPACK_IMPORTED_MODULE_18__["default"] 29098}; 29099const extendedDefaults = {}; 29100 29101class Swiper { 29102 constructor() { 29103 let el; 29104 let params; 29105 29106 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 29107 args[_key] = arguments[_key]; 29108 } 29109 29110 if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') { 29111 params = args[0]; 29112 } else { 29113 [el, params] = args; 29114 } 29115 29116 if (!params) params = {}; 29117 params = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, params); 29118 if (el && !params.el) params.el = el; 29119 29120 if (params.el && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.el).length > 1) { 29121 const swipers = []; 29122 (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.el).each(containerEl => { 29123 const newParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, params, { 29124 el: containerEl 29125 }); 29126 swipers.push(new Swiper(newParams)); 29127 }); 29128 return swipers; 29129 } // Swiper Instance 29130 29131 29132 const swiper = this; 29133 swiper.__swiper__ = true; 29134 swiper.support = (0,_shared_get_support_js__WEBPACK_IMPORTED_MODULE_3__.getSupport)(); 29135 swiper.device = (0,_shared_get_device_js__WEBPACK_IMPORTED_MODULE_4__.getDevice)({ 29136 userAgent: params.userAgent 29137 }); 29138 swiper.browser = (0,_shared_get_browser_js__WEBPACK_IMPORTED_MODULE_5__.getBrowser)(); 29139 swiper.eventsListeners = {}; 29140 swiper.eventsAnyListeners = []; 29141 swiper.modules = [...swiper.__modules__]; 29142 29143 if (params.modules && Array.isArray(params.modules)) { 29144 swiper.modules.push(...params.modules); 29145 } 29146 29147 const allModulesParams = {}; 29148 swiper.modules.forEach(mod => { 29149 mod({ 29150 swiper, 29151 extendParams: (0,_moduleExtendParams_js__WEBPACK_IMPORTED_MODULE_21__["default"])(params, allModulesParams), 29152 on: swiper.on.bind(swiper), 29153 once: swiper.once.bind(swiper), 29154 off: swiper.off.bind(swiper), 29155 emit: swiper.emit.bind(swiper) 29156 }); 29157 }); // Extend defaults with modules params 29158 29159 const swiperParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, _defaults_js__WEBPACK_IMPORTED_MODULE_20__["default"], allModulesParams); // Extend defaults with passed params 29160 29161 swiper.params = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, swiperParams, extendedDefaults, params); 29162 swiper.originalParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, swiper.params); 29163 swiper.passedParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, params); // add event listeners 29164 29165 if (swiper.params && swiper.params.on) { 29166 Object.keys(swiper.params.on).forEach(eventName => { 29167 swiper.on(eventName, swiper.params.on[eventName]); 29168 }); 29169 } 29170 29171 if (swiper.params && swiper.params.onAny) { 29172 swiper.onAny(swiper.params.onAny); 29173 } // Save Dom lib 29174 29175 29176 swiper.$ = _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"]; // Extend Swiper 29177 29178 Object.assign(swiper, { 29179 enabled: swiper.params.enabled, 29180 el, 29181 // Classes 29182 classNames: [], 29183 // Slides 29184 slides: (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(), 29185 slidesGrid: [], 29186 snapGrid: [], 29187 slidesSizesGrid: [], 29188 29189 // isDirection 29190 isHorizontal() { 29191 return swiper.params.direction === 'horizontal'; 29192 }, 29193 29194 isVertical() { 29195 return swiper.params.direction === 'vertical'; 29196 }, 29197 29198 // Indexes 29199 activeIndex: 0, 29200 realIndex: 0, 29201 // 29202 isBeginning: true, 29203 isEnd: false, 29204 // Props 29205 translate: 0, 29206 previousTranslate: 0, 29207 progress: 0, 29208 velocity: 0, 29209 animating: false, 29210 // Locks 29211 allowSlideNext: swiper.params.allowSlideNext, 29212 allowSlidePrev: swiper.params.allowSlidePrev, 29213 // Touch Events 29214 touchEvents: function touchEvents() { 29215 const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel']; 29216 const desktop = ['pointerdown', 'pointermove', 'pointerup']; 29217 swiper.touchEventsTouch = { 29218 start: touch[0], 29219 move: touch[1], 29220 end: touch[2], 29221 cancel: touch[3] 29222 }; 29223 swiper.touchEventsDesktop = { 29224 start: desktop[0], 29225 move: desktop[1], 29226 end: desktop[2] 29227 }; 29228 return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop; 29229 }(), 29230 touchEventsData: { 29231 isTouched: undefined, 29232 isMoved: undefined, 29233 allowTouchCallbacks: undefined, 29234 touchStartTime: undefined, 29235 isScrolling: undefined, 29236 currentTranslate: undefined, 29237 startTranslate: undefined, 29238 allowThresholdMove: undefined, 29239 // Form elements to match 29240 focusableElements: swiper.params.focusableElements, 29241 // Last click time 29242 lastClickTime: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(), 29243 clickTimeout: undefined, 29244 // Velocities 29245 velocities: [], 29246 allowMomentumBounce: undefined, 29247 isTouchEvent: undefined, 29248 startMoving: undefined 29249 }, 29250 // Clicks 29251 allowClick: true, 29252 // Touches 29253 allowTouchMove: swiper.params.allowTouchMove, 29254 touches: { 29255 startX: 0, 29256 startY: 0, 29257 currentX: 0, 29258 currentY: 0, 29259 diff: 0 29260 }, 29261 // Images 29262 imagesToLoad: [], 29263 imagesLoaded: 0 29264 }); 29265 swiper.emit('_swiper'); // Init 29266 29267 if (swiper.params.init) { 29268 swiper.init(); 29269 } // Return app instance 29270 29271 29272 return swiper; 29273 } 29274 29275 enable() { 29276 const swiper = this; 29277 if (swiper.enabled) return; 29278 swiper.enabled = true; 29279 29280 if (swiper.params.grabCursor) { 29281 swiper.setGrabCursor(); 29282 } 29283 29284 swiper.emit('enable'); 29285 } 29286 29287 disable() { 29288 const swiper = this; 29289 if (!swiper.enabled) return; 29290 swiper.enabled = false; 29291 29292 if (swiper.params.grabCursor) { 29293 swiper.unsetGrabCursor(); 29294 } 29295 29296 swiper.emit('disable'); 29297 } 29298 29299 setProgress(progress, speed) { 29300 const swiper = this; 29301 progress = Math.min(Math.max(progress, 0), 1); 29302 const min = swiper.minTranslate(); 29303 const max = swiper.maxTranslate(); 29304 const current = (max - min) * progress + min; 29305 swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed); 29306 swiper.updateActiveIndex(); 29307 swiper.updateSlidesClasses(); 29308 } 29309 29310 emitContainerClasses() { 29311 const swiper = this; 29312 if (!swiper.params._emitClasses || !swiper.el) return; 29313 const cls = swiper.el.className.split(' ').filter(className => { 29314 return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0; 29315 }); 29316 swiper.emit('_containerClasses', cls.join(' ')); 29317 } 29318 29319 getSlideClasses(slideEl) { 29320 const swiper = this; 29321 if (swiper.destroyed) return ''; 29322 return slideEl.className.split(' ').filter(className => { 29323 return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0; 29324 }).join(' '); 29325 } 29326 29327 emitSlidesClasses() { 29328 const swiper = this; 29329 if (!swiper.params._emitClasses || !swiper.el) return; 29330 const updates = []; 29331 swiper.slides.each(slideEl => { 29332 const classNames = swiper.getSlideClasses(slideEl); 29333 updates.push({ 29334 slideEl, 29335 classNames 29336 }); 29337 swiper.emit('_slideClass', slideEl, classNames); 29338 }); 29339 swiper.emit('_slideClasses', updates); 29340 } 29341 29342 slidesPerViewDynamic(view, exact) { 29343 if (view === void 0) { 29344 view = 'current'; 29345 } 29346 29347 if (exact === void 0) { 29348 exact = false; 29349 } 29350 29351 const swiper = this; 29352 const { 29353 params, 29354 slides, 29355 slidesGrid, 29356 slidesSizesGrid, 29357 size: swiperSize, 29358 activeIndex 29359 } = swiper; 29360 let spv = 1; 29361 29362 if (params.centeredSlides) { 29363 let slideSize = slides[activeIndex].swiperSlideSize; 29364 let breakLoop; 29365 29366 for (let i = activeIndex + 1; i < slides.length; i += 1) { 29367 if (slides[i] && !breakLoop) { 29368 slideSize += slides[i].swiperSlideSize; 29369 spv += 1; 29370 if (slideSize > swiperSize) breakLoop = true; 29371 } 29372 } 29373 29374 for (let i = activeIndex - 1; i >= 0; i -= 1) { 29375 if (slides[i] && !breakLoop) { 29376 slideSize += slides[i].swiperSlideSize; 29377 spv += 1; 29378 if (slideSize > swiperSize) breakLoop = true; 29379 } 29380 } 29381 } else { 29382 // eslint-disable-next-line 29383 if (view === 'current') { 29384 for (let i = activeIndex + 1; i < slides.length; i += 1) { 29385 const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize; 29386 29387 if (slideInView) { 29388 spv += 1; 29389 } 29390 } 29391 } else { 29392 // previous 29393 for (let i = activeIndex - 1; i >= 0; i -= 1) { 29394 const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize; 29395 29396 if (slideInView) { 29397 spv += 1; 29398 } 29399 } 29400 } 29401 } 29402 29403 return spv; 29404 } 29405 29406 update() { 29407 const swiper = this; 29408 if (!swiper || swiper.destroyed) return; 29409 const { 29410 snapGrid, 29411 params 29412 } = swiper; // Breakpoints 29413 29414 if (params.breakpoints) { 29415 swiper.setBreakpoint(); 29416 } 29417 29418 swiper.updateSize(); 29419 swiper.updateSlides(); 29420 swiper.updateProgress(); 29421 swiper.updateSlidesClasses(); 29422 29423 function setTranslate() { 29424 const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; 29425 const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); 29426 swiper.setTranslate(newTranslate); 29427 swiper.updateActiveIndex(); 29428 swiper.updateSlidesClasses(); 29429 } 29430 29431 let translated; 29432 29433 if (swiper.params.freeMode && swiper.params.freeMode.enabled) { 29434 setTranslate(); 29435 29436 if (swiper.params.autoHeight) { 29437 swiper.updateAutoHeight(); 29438 } 29439 } else { 29440 if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { 29441 translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true); 29442 } else { 29443 translated = swiper.slideTo(swiper.activeIndex, 0, false, true); 29444 } 29445 29446 if (!translated) { 29447 setTranslate(); 29448 } 29449 } 29450 29451 if (params.watchOverflow && snapGrid !== swiper.snapGrid) { 29452 swiper.checkOverflow(); 29453 } 29454 29455 swiper.emit('update'); 29456 } 29457 29458 changeDirection(newDirection, needUpdate) { 29459 if (needUpdate === void 0) { 29460 needUpdate = true; 29461 } 29462 29463 const swiper = this; 29464 const currentDirection = swiper.params.direction; 29465 29466 if (!newDirection) { 29467 // eslint-disable-next-line 29468 newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal'; 29469 } 29470 29471 if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') { 29472 return swiper; 29473 } 29474 29475 swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`); 29476 swiper.emitContainerClasses(); 29477 swiper.params.direction = newDirection; 29478 swiper.slides.each(slideEl => { 29479 if (newDirection === 'vertical') { 29480 slideEl.style.width = ''; 29481 } else { 29482 slideEl.style.height = ''; 29483 } 29484 }); 29485 swiper.emit('changeDirection'); 29486 if (needUpdate) swiper.update(); 29487 return swiper; 29488 } 29489 29490 mount(el) { 29491 const swiper = this; 29492 if (swiper.mounted) return true; // Find el 29493 29494 const $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(el || swiper.params.el); 29495 el = $el[0]; 29496 29497 if (!el) { 29498 return false; 29499 } 29500 29501 el.swiper = swiper; 29502 29503 const getWrapperSelector = () => { 29504 return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`; 29505 }; 29506 29507 const getWrapper = () => { 29508 if (el && el.shadowRoot && el.shadowRoot.querySelector) { 29509 const res = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items 29510 29511 res.children = options => $el.children(options); 29512 29513 return res; 29514 } 29515 29516 if (!$el.children) { 29517 return (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])($el).children(getWrapperSelector()); 29518 } 29519 29520 return $el.children(getWrapperSelector()); 29521 }; // Find Wrapper 29522 29523 29524 let $wrapperEl = getWrapper(); 29525 29526 if ($wrapperEl.length === 0 && swiper.params.createElements) { 29527 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 29528 const wrapper = document.createElement('div'); 29529 $wrapperEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(wrapper); 29530 wrapper.className = swiper.params.wrapperClass; 29531 $el.append(wrapper); 29532 $el.children(`.${swiper.params.slideClass}`).each(slideEl => { 29533 $wrapperEl.append(slideEl); 29534 }); 29535 } 29536 29537 Object.assign(swiper, { 29538 $el, 29539 el, 29540 $wrapperEl, 29541 wrapperEl: $wrapperEl[0], 29542 mounted: true, 29543 // RTL 29544 rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl', 29545 rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'), 29546 wrongRTL: $wrapperEl.css('display') === '-webkit-box' 29547 }); 29548 return true; 29549 } 29550 29551 init(el) { 29552 const swiper = this; 29553 if (swiper.initialized) return swiper; 29554 const mounted = swiper.mount(el); 29555 if (mounted === false) return swiper; 29556 swiper.emit('beforeInit'); // Set breakpoint 29557 29558 if (swiper.params.breakpoints) { 29559 swiper.setBreakpoint(); 29560 } // Add Classes 29561 29562 29563 swiper.addClasses(); // Create loop 29564 29565 if (swiper.params.loop) { 29566 swiper.loopCreate(); 29567 } // Update size 29568 29569 29570 swiper.updateSize(); // Update slides 29571 29572 swiper.updateSlides(); 29573 29574 if (swiper.params.watchOverflow) { 29575 swiper.checkOverflow(); 29576 } // Set Grab Cursor 29577 29578 29579 if (swiper.params.grabCursor && swiper.enabled) { 29580 swiper.setGrabCursor(); 29581 } 29582 29583 if (swiper.params.preloadImages) { 29584 swiper.preloadImages(); 29585 } // Slide To Initial Slide 29586 29587 29588 if (swiper.params.loop) { 29589 swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true); 29590 } else { 29591 swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true); 29592 } // Attach events 29593 29594 29595 swiper.attachEvents(); // Init Flag 29596 29597 swiper.initialized = true; // Emit 29598 29599 swiper.emit('init'); 29600 swiper.emit('afterInit'); 29601 return swiper; 29602 } 29603 29604 destroy(deleteInstance, cleanStyles) { 29605 if (deleteInstance === void 0) { 29606 deleteInstance = true; 29607 } 29608 29609 if (cleanStyles === void 0) { 29610 cleanStyles = true; 29611 } 29612 29613 const swiper = this; 29614 const { 29615 params, 29616 $el, 29617 $wrapperEl, 29618 slides 29619 } = swiper; 29620 29621 if (typeof swiper.params === 'undefined' || swiper.destroyed) { 29622 return null; 29623 } 29624 29625 swiper.emit('beforeDestroy'); // Init Flag 29626 29627 swiper.initialized = false; // Detach events 29628 29629 swiper.detachEvents(); // Destroy loop 29630 29631 if (params.loop) { 29632 swiper.loopDestroy(); 29633 } // Cleanup styles 29634 29635 29636 if (cleanStyles) { 29637 swiper.removeClasses(); 29638 $el.removeAttr('style'); 29639 $wrapperEl.removeAttr('style'); 29640 29641 if (slides && slides.length) { 29642 slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index'); 29643 } 29644 } 29645 29646 swiper.emit('destroy'); // Detach emitter events 29647 29648 Object.keys(swiper.eventsListeners).forEach(eventName => { 29649 swiper.off(eventName); 29650 }); 29651 29652 if (deleteInstance !== false) { 29653 swiper.$el[0].swiper = null; 29654 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.deleteProps)(swiper); 29655 } 29656 29657 swiper.destroyed = true; 29658 return null; 29659 } 29660 29661 static extendDefaults(newDefaults) { 29662 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)(extendedDefaults, newDefaults); 29663 } 29664 29665 static get extendedDefaults() { 29666 return extendedDefaults; 29667 } 29668 29669 static get defaults() { 29670 return _defaults_js__WEBPACK_IMPORTED_MODULE_20__["default"]; 29671 } 29672 29673 static installModule(mod) { 29674 if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = []; 29675 const modules = Swiper.prototype.__modules__; 29676 29677 if (typeof mod === 'function' && modules.indexOf(mod) < 0) { 29678 modules.push(mod); 29679 } 29680 } 29681 29682 static use(module) { 29683 if (Array.isArray(module)) { 29684 module.forEach(m => Swiper.installModule(m)); 29685 return Swiper; 29686 } 29687 29688 Swiper.installModule(module); 29689 return Swiper; 29690 } 29691 29692} 29693 29694Object.keys(prototypes).forEach(prototypeGroup => { 29695 Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => { 29696 Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; 29697 }); 29698}); 29699Swiper.use([_modules_resize_resize_js__WEBPACK_IMPORTED_MODULE_6__["default"], _modules_observer_observer_js__WEBPACK_IMPORTED_MODULE_7__["default"]]); 29700/* harmony default export */ __webpack_exports__["default"] = (Swiper); 29701 29702/***/ }), 29703
vendor: 3,572 bytes, lines 29704-29837
29704/***/ "./node_modules/swiper/core/defaults.js": 29705/*!**********************************************!*\ 29706 !*** ./node_modules/swiper/core/defaults.js ***! 29707 \**********************************************/ 29708/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 29709 29710"use strict"; 29711__webpack_require__.r(__webpack_exports__); 29712/* harmony default export */ __webpack_exports__["default"] = ({ 29713 init: true, 29714 direction: 'horizontal', 29715 touchEventsTarget: 'wrapper', 29716 initialSlide: 0, 29717 speed: 300, 29718 cssMode: false, 29719 updateOnWindowResize: true, 29720 resizeObserver: true, 29721 nested: false, 29722 createElements: false, 29723 enabled: true, 29724 focusableElements: 'input, select, option, textarea, button, video, label', 29725 // Overrides 29726 width: null, 29727 height: null, 29728 // 29729 preventInteractionOnTransition: false, 29730 // ssr 29731 userAgent: null, 29732 url: null, 29733 // To support iOS's swipe-to-go-back gesture (when being used in-app). 29734 edgeSwipeDetection: false, 29735 edgeSwipeThreshold: 20, 29736 // Autoheight 29737 autoHeight: false, 29738 // Set wrapper width 29739 setWrapperSize: false, 29740 // Virtual Translate 29741 virtualTranslate: false, 29742 // Effects 29743 effect: 'slide', 29744 // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' 29745 // Breakpoints 29746 breakpoints: undefined, 29747 breakpointsBase: 'window', 29748 // Slides grid 29749 spaceBetween: 0, 29750 slidesPerView: 1, 29751 slidesPerGroup: 1, 29752 slidesPerGroupSkip: 0, 29753 slidesPerGroupAuto: false, 29754 centeredSlides: false, 29755 centeredSlidesBounds: false, 29756 slidesOffsetBefore: 0, 29757 // in px 29758 slidesOffsetAfter: 0, 29759 // in px 29760 normalizeSlideIndex: true, 29761 centerInsufficientSlides: false, 29762 // Disable swiper and hide navigation when container not overflow 29763 watchOverflow: true, 29764 // Round length 29765 roundLengths: false, 29766 // Touches 29767 touchRatio: 1, 29768 touchAngle: 45, 29769 simulateTouch: true, 29770 shortSwipes: true, 29771 longSwipes: true, 29772 longSwipesRatio: 0.5, 29773 longSwipesMs: 300, 29774 followFinger: true, 29775 allowTouchMove: true, 29776 threshold: 0, 29777 touchMoveStopPropagation: false, 29778 touchStartPreventDefault: true, 29779 touchStartForcePreventDefault: false, 29780 touchReleaseOnEdges: false, 29781 // Unique Navigation Elements 29782 uniqueNavElements: true, 29783 // Resistance 29784 resistance: true, 29785 resistanceRatio: 0.85, 29786 // Progress 29787 watchSlidesProgress: false, 29788 // Cursor 29789 grabCursor: false, 29790 // Clicks 29791 preventClicks: true, 29792 preventClicksPropagation: true, 29793 slideToClickedSlide: false, 29794 // Images 29795 preloadImages: true, 29796 updateOnImagesReady: true, 29797 // loop 29798 loop: false, 29799 loopAdditionalSlides: 0, 29800 loopedSlides: null, 29801 loopFillGroupWithBlank: false, 29802 loopPreventsSlide: true, 29803 // rewind 29804 rewind: false, 29805 // Swiping/no swiping 29806 allowSlidePrev: true, 29807 allowSlideNext: true, 29808 swipeHandler: null, 29809 // '.swipe-handler', 29810 noSwiping: true, 29811 noSwipingClass: 'swiper-no-swiping', 29812 noSwipingSelector: null, 29813 // Passive Listeners 29814 passiveListeners: true, 29815 maxBackfaceHiddenSlides: 10, 29816 // NS 29817 containerModifierClass: 'swiper-', 29818 // NEW 29819 slideClass: 'swiper-slide', 29820 slideBlankClass: 'swiper-slide-invisible-blank', 29821 slideActiveClass: 'swiper-slide-active', 29822 slideDuplicateActiveClass: 'swiper-slide-duplicate-active', 29823 slideVisibleClass: 'swiper-slide-visible', 29824 slideDuplicateClass: 'swiper-slide-duplicate', 29825 slideNextClass: 'swiper-slide-next', 29826 slideDuplicateNextClass: 'swiper-slide-duplicate-next', 29827 slidePrevClass: 'swiper-slide-prev', 29828 slideDuplicatePrevClass: 'swiper-slide-duplicate-prev', 29829 wrapperClass: 'swiper-wrapper', 29830 // Callbacks 29831 runCallbacksOnInit: true, 29832 // Internals 29833 _emitClasses: false 29834}); 29835 29836/***/ }), 29837
vendor: 4,014 bytes, lines 29838-29970
29838/***/ "./node_modules/swiper/core/events-emitter.js": 29839/*!****************************************************!*\ 29840 !*** ./node_modules/swiper/core/events-emitter.js ***! 29841 \****************************************************/ 29842/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 29843 29844"use strict"; 29845__webpack_require__.r(__webpack_exports__); 29846/* eslint-disable no-underscore-dangle */ 29847/* harmony default export */ __webpack_exports__["default"] = ({ 29848 on(events, handler, priority) { 29849 const self = this; 29850 if (!self.eventsListeners || self.destroyed) return self; 29851 if (typeof handler !== 'function') return self; 29852 const method = priority ? 'unshift' : 'push'; 29853 events.split(' ').forEach(event => { 29854 if (!self.eventsListeners[event]) self.eventsListeners[event] = []; 29855 self.eventsListeners[event][method](handler); 29856 }); 29857 return self; 29858 }, 29859 29860 once(events, handler, priority) { 29861 const self = this; 29862 if (!self.eventsListeners || self.destroyed) return self; 29863 if (typeof handler !== 'function') return self; 29864 29865 function onceHandler() { 29866 self.off(events, onceHandler); 29867 29868 if (onceHandler.__emitterProxy) { 29869 delete onceHandler.__emitterProxy; 29870 } 29871 29872 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 29873 args[_key] = arguments[_key]; 29874 } 29875 29876 handler.apply(self, args); 29877 } 29878 29879 onceHandler.__emitterProxy = handler; 29880 return self.on(events, onceHandler, priority); 29881 }, 29882 29883 onAny(handler, priority) { 29884 const self = this; 29885 if (!self.eventsListeners || self.destroyed) return self; 29886 if (typeof handler !== 'function') return self; 29887 const method = priority ? 'unshift' : 'push'; 29888 29889 if (self.eventsAnyListeners.indexOf(handler) < 0) { 29890 self.eventsAnyListeners[method](handler); 29891 } 29892 29893 return self; 29894 }, 29895 29896 offAny(handler) { 29897 const self = this; 29898 if (!self.eventsListeners || self.destroyed) return self; 29899 if (!self.eventsAnyListeners) return self; 29900 const index = self.eventsAnyListeners.indexOf(handler); 29901 29902 if (index >= 0) { 29903 self.eventsAnyListeners.splice(index, 1); 29904 } 29905 29906 return self; 29907 }, 29908 29909 off(events, handler) { 29910 const self = this; 29911 if (!self.eventsListeners || self.destroyed) return self; 29912 if (!self.eventsListeners) return self; 29913 events.split(' ').forEach(event => { 29914 if (typeof handler === 'undefined') { 29915 self.eventsListeners[event] = []; 29916 } else if (self.eventsListeners[event]) { 29917 self.eventsListeners[event].forEach((eventHandler, index) => { 29918 if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) { 29919 self.eventsListeners[event].splice(index, 1); 29920 } 29921 }); 29922 } 29923 }); 29924 return self; 29925 }, 29926 29927 emit() { 29928 const self = this; 29929 if (!self.eventsListeners || self.destroyed) return self; 29930 if (!self.eventsListeners) return self; 29931 let events; 29932 let data; 29933 let context; 29934 29935 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 29936 args[_key2] = arguments[_key2]; 29937 } 29938 29939 if (typeof args[0] === 'string' || Array.isArray(args[0])) { 29940 events = args[0]; 29941 data = args.slice(1, args.length); 29942 context = self; 29943 } else { 29944 events = args[0].events; 29945 data = args[0].data; 29946 context = args[0].context || self; 29947 } 29948 29949 data.unshift(context); 29950 const eventsArray = Array.isArray(events) ? events : events.split(' '); 29951 eventsArray.forEach(event => { 29952 if (self.eventsAnyListeners && self.eventsAnyListeners.length) { 29953 self.eventsAnyListeners.forEach(eventHandler => { 29954 eventHandler.apply(context, [event, ...data]); 29955 }); 29956 } 29957 29958 if (self.eventsListeners && self.eventsListeners[event]) { 29959 self.eventsListeners[event].forEach(eventHandler => { 29960 eventHandler.apply(context, data); 29961 }); 29962 } 29963 }); 29964 return self; 29965 } 29966 29967}); 29968 29969/***/ }), 29970
vendor: 4,404 bytes, lines 29971-30085
29971/***/ "./node_modules/swiper/core/events/index.js": 29972/*!**************************************************!*\ 29973 !*** ./node_modules/swiper/core/events/index.js ***! 29974 \**************************************************/ 29975/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 29976 29977"use strict"; 29978__webpack_require__.r(__webpack_exports__); 29979/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 29980/* harmony import */ var _onTouchStart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./onTouchStart.js */ "./node_modules/swiper/core/events/onTouchStart.js"); 29981/* harmony import */ var _onTouchMove_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./onTouchMove.js */ "./node_modules/swiper/core/events/onTouchMove.js"); 29982/* harmony import */ var _onTouchEnd_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./onTouchEnd.js */ "./node_modules/swiper/core/events/onTouchEnd.js"); 29983/* harmony import */ var _onResize_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./onResize.js */ "./node_modules/swiper/core/events/onResize.js"); 29984/* harmony import */ var _onClick_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./onClick.js */ "./node_modules/swiper/core/events/onClick.js"); 29985/* harmony import */ var _onScroll_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./onScroll.js */ "./node_modules/swiper/core/events/onScroll.js"); 29986 29987 29988 29989 29990 29991 29992 29993let dummyEventAttached = false; 29994 29995function dummyEventListener() {} 29996 29997const events = (swiper, method) => { 29998 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 29999 const { 30000 params, 30001 touchEvents, 30002 el, 30003 wrapperEl, 30004 device, 30005 support 30006 } = swiper; 30007 const capture = !!params.nested; 30008 const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; 30009 const swiperMethod = method; // Touch Events 30010 30011 if (!support.touch) { 30012 el[domMethod](touchEvents.start, swiper.onTouchStart, false); 30013 document[domMethod](touchEvents.move, swiper.onTouchMove, capture); 30014 document[domMethod](touchEvents.end, swiper.onTouchEnd, false); 30015 } else { 30016 const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? { 30017 passive: true, 30018 capture: false 30019 } : false; 30020 el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener); 30021 el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? { 30022 passive: false, 30023 capture 30024 } : capture); 30025 el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener); 30026 30027 if (touchEvents.cancel) { 30028 el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener); 30029 } 30030 } // Prevent Links Clicks 30031 30032 30033 if (params.preventClicks || params.preventClicksPropagation) { 30034 el[domMethod]('click', swiper.onClick, true); 30035 } 30036 30037 if (params.cssMode) { 30038 wrapperEl[domMethod]('scroll', swiper.onScroll); 30039 } // Resize handler 30040 30041 30042 if (params.updateOnWindowResize) { 30043 swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', _onResize_js__WEBPACK_IMPORTED_MODULE_4__["default"], true); 30044 } else { 30045 swiper[swiperMethod]('observerUpdate', _onResize_js__WEBPACK_IMPORTED_MODULE_4__["default"], true); 30046 } 30047}; 30048 30049function attachEvents() { 30050 const swiper = this; 30051 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 30052 const { 30053 params, 30054 support 30055 } = swiper; 30056 swiper.onTouchStart = _onTouchStart_js__WEBPACK_IMPORTED_MODULE_1__["default"].bind(swiper); 30057 swiper.onTouchMove = _onTouchMove_js__WEBPACK_IMPORTED_MODULE_2__["default"].bind(swiper); 30058 swiper.onTouchEnd = _onTouchEnd_js__WEBPACK_IMPORTED_MODULE_3__["default"].bind(swiper); 30059 30060 if (params.cssMode) { 30061 swiper.onScroll = _onScroll_js__WEBPACK_IMPORTED_MODULE_6__["default"].bind(swiper); 30062 } 30063 30064 swiper.onClick = _onClick_js__WEBPACK_IMPORTED_MODULE_5__["default"].bind(swiper); 30065 30066 if (support.touch && !dummyEventAttached) { 30067 document.addEventListener('touchstart', dummyEventListener); 30068 dummyEventAttached = true; 30069 } 30070 30071 events(swiper, 'on'); 30072} 30073 30074function detachEvents() { 30075 const swiper = this; 30076 events(swiper, 'off'); 30077} 30078 30079/* harmony default export */ __webpack_exports__["default"] = ({ 30080 attachEvents, 30081 detachEvents 30082}); 30083 30084/***/ }), 30085
vendor: 873 bytes, lines 30086-30112
30086/***/ "./node_modules/swiper/core/events/onClick.js": 30087/*!****************************************************!*\ 30088 !*** ./node_modules/swiper/core/events/onClick.js ***! 30089 \****************************************************/ 30090/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30091 30092"use strict"; 30093__webpack_require__.r(__webpack_exports__); 30094/* harmony export */ __webpack_require__.d(__webpack_exports__, { 30095/* harmony export */ "default": function() { return /* binding */ onClick; } 30096/* harmony export */ }); 30097function onClick(e) { 30098 const swiper = this; 30099 if (!swiper.enabled) return; 30100 30101 if (!swiper.allowClick) { 30102 if (swiper.params.preventClicks) e.preventDefault(); 30103 30104 if (swiper.params.preventClicksPropagation && swiper.animating) { 30105 e.stopPropagation(); 30106 e.stopImmediatePropagation(); 30107 } 30108 } 30109} 30110 30111/***/ }), 30112
vendor: 1,647 bytes, lines 30113-30169
30113/***/ "./node_modules/swiper/core/events/onResize.js": 30114/*!*****************************************************!*\ 30115 !*** ./node_modules/swiper/core/events/onResize.js ***! 30116 \*****************************************************/ 30117/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30118 30119"use strict"; 30120__webpack_require__.r(__webpack_exports__); 30121/* harmony export */ __webpack_require__.d(__webpack_exports__, { 30122/* harmony export */ "default": function() { return /* binding */ onResize; } 30123/* harmony export */ }); 30124function onResize() { 30125 const swiper = this; 30126 const { 30127 params, 30128 el 30129 } = swiper; 30130 if (el && el.offsetWidth === 0) return; // Breakpoints 30131 30132 if (params.breakpoints) { 30133 swiper.setBreakpoint(); 30134 } // Save locks 30135 30136 30137 const { 30138 allowSlideNext, 30139 allowSlidePrev, 30140 snapGrid 30141 } = swiper; // Disable locks on resize 30142 30143 swiper.allowSlideNext = true; 30144 swiper.allowSlidePrev = true; 30145 swiper.updateSize(); 30146 swiper.updateSlides(); 30147 swiper.updateSlidesClasses(); 30148 30149 if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) { 30150 swiper.slideTo(swiper.slides.length - 1, 0, false, true); 30151 } else { 30152 swiper.slideTo(swiper.activeIndex, 0, false, true); 30153 } 30154 30155 if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { 30156 swiper.autoplay.run(); 30157 } // Return locks after resize 30158 30159 30160 swiper.allowSlidePrev = allowSlidePrev; 30161 swiper.allowSlideNext = allowSlideNext; 30162 30163 if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { 30164 swiper.checkOverflow(); 30165 } 30166} 30167 30168/***/ }), 30169
vendor: 1,459 bytes, lines 30170-30218
30170/***/ "./node_modules/swiper/core/events/onScroll.js": 30171/*!*****************************************************!*\ 30172 !*** ./node_modules/swiper/core/events/onScroll.js ***! 30173 \*****************************************************/ 30174/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30175 30176"use strict"; 30177__webpack_require__.r(__webpack_exports__); 30178/* harmony export */ __webpack_require__.d(__webpack_exports__, { 30179/* harmony export */ "default": function() { return /* binding */ onScroll; } 30180/* harmony export */ }); 30181function onScroll() { 30182 const swiper = this; 30183 const { 30184 wrapperEl, 30185 rtlTranslate, 30186 enabled 30187 } = swiper; 30188 if (!enabled) return; 30189 swiper.previousTranslate = swiper.translate; 30190 30191 if (swiper.isHorizontal()) { 30192 swiper.translate = -wrapperEl.scrollLeft; 30193 } else { 30194 swiper.translate = -wrapperEl.scrollTop; 30195 } // eslint-disable-next-line 30196 30197 30198 if (swiper.translate === 0) swiper.translate = 0; 30199 swiper.updateActiveIndex(); 30200 swiper.updateSlidesClasses(); 30201 let newProgress; 30202 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 30203 30204 if (translatesDiff === 0) { 30205 newProgress = 0; 30206 } else { 30207 newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff; 30208 } 30209 30210 if (newProgress !== swiper.progress) { 30211 swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); 30212 } 30213 30214 swiper.emit('setTranslate', swiper.translate, false); 30215} 30216 30217/***/ }), 30218
vendor: 5,536 bytes, lines 30219-30394
30219/***/ "./node_modules/swiper/core/events/onTouchEnd.js": 30220/*!*******************************************************!*\ 30221 !*** ./node_modules/swiper/core/events/onTouchEnd.js ***! 30222 \*******************************************************/ 30223/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30224 30225"use strict"; 30226__webpack_require__.r(__webpack_exports__); 30227/* harmony export */ __webpack_require__.d(__webpack_exports__, { 30228/* harmony export */ "default": function() { return /* binding */ onTouchEnd; } 30229/* harmony export */ }); 30230/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 30231 30232function onTouchEnd(event) { 30233 const swiper = this; 30234 const data = swiper.touchEventsData; 30235 const { 30236 params, 30237 touches, 30238 rtlTranslate: rtl, 30239 slidesGrid, 30240 enabled 30241 } = swiper; 30242 if (!enabled) return; 30243 let e = event; 30244 if (e.originalEvent) e = e.originalEvent; 30245 30246 if (data.allowTouchCallbacks) { 30247 swiper.emit('touchEnd', e); 30248 } 30249 30250 data.allowTouchCallbacks = false; 30251 30252 if (!data.isTouched) { 30253 if (data.isMoved && params.grabCursor) { 30254 swiper.setGrabCursor(false); 30255 } 30256 30257 data.isMoved = false; 30258 data.startMoving = false; 30259 return; 30260 } // Return Grab Cursor 30261 30262 30263 if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 30264 swiper.setGrabCursor(false); 30265 } // Time diff 30266 30267 30268 const touchEndTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)(); 30269 const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click 30270 30271 if (swiper.allowClick) { 30272 const pathTree = e.path || e.composedPath && e.composedPath(); 30273 swiper.updateClickedSlide(pathTree && pathTree[0] || e.target); 30274 swiper.emit('tap click', e); 30275 30276 if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) { 30277 swiper.emit('doubleTap doubleClick', e); 30278 } 30279 } 30280 30281 data.lastClickTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)(); 30282 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => { 30283 if (!swiper.destroyed) swiper.allowClick = true; 30284 }); 30285 30286 if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) { 30287 data.isTouched = false; 30288 data.isMoved = false; 30289 data.startMoving = false; 30290 return; 30291 } 30292 30293 data.isTouched = false; 30294 data.isMoved = false; 30295 data.startMoving = false; 30296 let currentPos; 30297 30298 if (params.followFinger) { 30299 currentPos = rtl ? swiper.translate : -swiper.translate; 30300 } else { 30301 currentPos = -data.currentTranslate; 30302 } 30303 30304 if (params.cssMode) { 30305 return; 30306 } 30307 30308 if (swiper.params.freeMode && params.freeMode.enabled) { 30309 swiper.freeMode.onTouchEnd({ 30310 currentPos 30311 }); 30312 return; 30313 } // Find current slide 30314 30315 30316 let stopIndex = 0; 30317 let groupSize = swiper.slidesSizesGrid[0]; 30318 30319 for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) { 30320 const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 30321 30322 if (typeof slidesGrid[i + increment] !== 'undefined') { 30323 if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) { 30324 stopIndex = i; 30325 groupSize = slidesGrid[i + increment] - slidesGrid[i]; 30326 } 30327 } else if (currentPos >= slidesGrid[i]) { 30328 stopIndex = i; 30329 groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; 30330 } 30331 } 30332 30333 let rewindFirstIndex = null; 30334 let rewindLastIndex = null; 30335 30336 if (params.rewind) { 30337 if (swiper.isBeginning) { 30338 rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; 30339 } else if (swiper.isEnd) { 30340 rewindFirstIndex = 0; 30341 } 30342 } // Find current slide size 30343 30344 30345 const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; 30346 const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 30347 30348 if (timeDiff > params.longSwipesMs) { 30349 // Long touches 30350 if (!params.longSwipes) { 30351 swiper.slideTo(swiper.activeIndex); 30352 return; 30353 } 30354 30355 if (swiper.swipeDirection === 'next') { 30356 if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex); 30357 } 30358 30359 if (swiper.swipeDirection === 'prev') { 30360 if (ratio > 1 - params.longSwipesRatio) { 30361 swiper.slideTo(stopIndex + increment); 30362 } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) { 30363 swiper.slideTo(rewindLastIndex); 30364 } else { 30365 swiper.slideTo(stopIndex); 30366 } 30367 } 30368 } else { 30369 // Short swipes 30370 if (!params.shortSwipes) { 30371 swiper.slideTo(swiper.activeIndex); 30372 return; 30373 } 30374 30375 const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl); 30376 30377 if (!isNavButtonTarget) { 30378 if (swiper.swipeDirection === 'next') { 30379 swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment); 30380 } 30381 30382 if (swiper.swipeDirection === 'prev') { 30383 swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex); 30384 } 30385 } else if (e.target === swiper.navigation.nextEl) { 30386 swiper.slideTo(stopIndex + increment); 30387 } else { 30388 swiper.slideTo(stopIndex); 30389 } 30390 } 30391} 30392 30393/***/ }), 30394
vendor: 7,844 bytes, lines 30395-30634
30395/***/ "./node_modules/swiper/core/events/onTouchMove.js": 30396/*!********************************************************!*\ 30397 !*** ./node_modules/swiper/core/events/onTouchMove.js ***! 30398 \********************************************************/ 30399/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30400 30401"use strict"; 30402__webpack_require__.r(__webpack_exports__); 30403/* harmony export */ __webpack_require__.d(__webpack_exports__, { 30404/* harmony export */ "default": function() { return /* binding */ onTouchMove; } 30405/* harmony export */ }); 30406/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 30407/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 30408/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 30409 30410 30411 30412function onTouchMove(event) { 30413 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 30414 const swiper = this; 30415 const data = swiper.touchEventsData; 30416 const { 30417 params, 30418 touches, 30419 rtlTranslate: rtl, 30420 enabled 30421 } = swiper; 30422 if (!enabled) return; 30423 let e = event; 30424 if (e.originalEvent) e = e.originalEvent; 30425 30426 if (!data.isTouched) { 30427 if (data.startMoving && data.isScrolling) { 30428 swiper.emit('touchMoveOpposite', e); 30429 } 30430 30431 return; 30432 } 30433 30434 if (data.isTouchEvent && e.type !== 'touchmove') return; 30435 const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]); 30436 const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX; 30437 const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY; 30438 30439 if (e.preventedByNestedSwiper) { 30440 touches.startX = pageX; 30441 touches.startY = pageY; 30442 return; 30443 } 30444 30445 if (!swiper.allowTouchMove) { 30446 if (!(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target).is(data.focusableElements)) { 30447 swiper.allowClick = false; 30448 } 30449 30450 if (data.isTouched) { 30451 Object.assign(touches, { 30452 startX: pageX, 30453 startY: pageY, 30454 currentX: pageX, 30455 currentY: pageY 30456 }); 30457 data.touchStartTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(); 30458 } 30459 30460 return; 30461 } 30462 30463 if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) { 30464 if (swiper.isVertical()) { 30465 // Vertical 30466 if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) { 30467 data.isTouched = false; 30468 data.isMoved = false; 30469 return; 30470 } 30471 } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) { 30472 return; 30473 } 30474 } 30475 30476 if (data.isTouchEvent && document.activeElement) { 30477 if (e.target === document.activeElement && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target).is(data.focusableElements)) { 30478 data.isMoved = true; 30479 swiper.allowClick = false; 30480 return; 30481 } 30482 } 30483 30484 if (data.allowTouchCallbacks) { 30485 swiper.emit('touchMove', e); 30486 } 30487 30488 if (e.targetTouches && e.targetTouches.length > 1) return; 30489 touches.currentX = pageX; 30490 touches.currentY = pageY; 30491 const diffX = touches.currentX - touches.startX; 30492 const diffY = touches.currentY - touches.startY; 30493 if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return; 30494 30495 if (typeof data.isScrolling === 'undefined') { 30496 let touchAngle; 30497 30498 if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) { 30499 data.isScrolling = false; 30500 } else { 30501 // eslint-disable-next-line 30502 if (diffX * diffX + diffY * diffY >= 25) { 30503 touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI; 30504 data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle; 30505 } 30506 } 30507 } 30508 30509 if (data.isScrolling) { 30510 swiper.emit('touchMoveOpposite', e); 30511 } 30512 30513 if (typeof data.startMoving === 'undefined') { 30514 if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { 30515 data.startMoving = true; 30516 } 30517 } 30518 30519 if (data.isScrolling) { 30520 data.isTouched = false; 30521 return; 30522 } 30523 30524 if (!data.startMoving) { 30525 return; 30526 } 30527 30528 swiper.allowClick = false; 30529 30530 if (!params.cssMode && e.cancelable) { 30531 e.preventDefault(); 30532 } 30533 30534 if (params.touchMoveStopPropagation && !params.nested) { 30535 e.stopPropagation(); 30536 } 30537 30538 if (!data.isMoved) { 30539 if (params.loop && !params.cssMode) { 30540 swiper.loopFix(); 30541 } 30542 30543 data.startTranslate = swiper.getTranslate(); 30544 swiper.setTransition(0); 30545 30546 if (swiper.animating) { 30547 swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend'); 30548 } 30549 30550 data.allowMomentumBounce = false; // Grab Cursor 30551 30552 if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 30553 swiper.setGrabCursor(true); 30554 } 30555 30556 swiper.emit('sliderFirstMove', e); 30557 } 30558 30559 swiper.emit('sliderMove', e); 30560 data.isMoved = true; 30561 let diff = swiper.isHorizontal() ? diffX : diffY; 30562 touches.diff = diff; 30563 diff *= params.touchRatio; 30564 if (rtl) diff = -diff; 30565 swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; 30566 data.currentTranslate = diff + data.startTranslate; 30567 let disableParentSwiper = true; 30568 let resistanceRatio = params.resistanceRatio; 30569 30570 if (params.touchReleaseOnEdges) { 30571 resistanceRatio = 0; 30572 } 30573 30574 if (diff > 0 && data.currentTranslate > swiper.minTranslate()) { 30575 disableParentSwiper = false; 30576 if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio; 30577 } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) { 30578 disableParentSwiper = false; 30579 if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio; 30580 } 30581 30582 if (disableParentSwiper) { 30583 e.preventedByNestedSwiper = true; 30584 } // Directions locks 30585 30586 30587 if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { 30588 data.currentTranslate = data.startTranslate; 30589 } 30590 30591 if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { 30592 data.currentTranslate = data.startTranslate; 30593 } 30594 30595 if (!swiper.allowSlidePrev && !swiper.allowSlideNext) { 30596 data.currentTranslate = data.startTranslate; 30597 } // Threshold 30598 30599 30600 if (params.threshold > 0) { 30601 if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { 30602 if (!data.allowThresholdMove) { 30603 data.allowThresholdMove = true; 30604 touches.startX = touches.currentX; 30605 touches.startY = touches.currentY; 30606 data.currentTranslate = data.startTranslate; 30607 touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; 30608 return; 30609 } 30610 } else { 30611 data.currentTranslate = data.startTranslate; 30612 return; 30613 } 30614 } 30615 30616 if (!params.followFinger || params.cssMode) return; // Update active index in free mode 30617 30618 if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) { 30619 swiper.updateActiveIndex(); 30620 swiper.updateSlidesClasses(); 30621 } 30622 30623 if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) { 30624 swiper.freeMode.onTouchMove(); 30625 } // Update progress 30626 30627 30628 swiper.updateProgress(data.currentTranslate); // Update translate 30629 30630 swiper.setTranslate(data.currentTranslate); 30631} 30632 30633/***/ }), 30634
vendor: 5,719 bytes, lines 30635-30785
30635/***/ "./node_modules/swiper/core/events/onTouchStart.js": 30636/*!*********************************************************!*\ 30637 !*** ./node_modules/swiper/core/events/onTouchStart.js ***! 30638 \*********************************************************/ 30639/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30640 30641"use strict"; 30642__webpack_require__.r(__webpack_exports__); 30643/* harmony export */ __webpack_require__.d(__webpack_exports__, { 30644/* harmony export */ "default": function() { return /* binding */ onTouchStart; } 30645/* harmony export */ }); 30646/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 30647/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 30648/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 30649 30650 30651 // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd 30652 30653function closestElement(selector, base) { 30654 if (base === void 0) { 30655 base = this; 30656 } 30657 30658 function __closestFrom(el) { 30659 if (!el || el === (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)() || el === (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)()) return null; 30660 if (el.assignedSlot) el = el.assignedSlot; 30661 const found = el.closest(selector); 30662 30663 if (!found && !el.getRootNode) { 30664 return null; 30665 } 30666 30667 return found || __closestFrom(el.getRootNode().host); 30668 } 30669 30670 return __closestFrom(base); 30671} 30672 30673function onTouchStart(event) { 30674 const swiper = this; 30675 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 30676 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 30677 const data = swiper.touchEventsData; 30678 const { 30679 params, 30680 touches, 30681 enabled 30682 } = swiper; 30683 if (!enabled) return; 30684 30685 if (swiper.animating && params.preventInteractionOnTransition) { 30686 return; 30687 } 30688 30689 if (!swiper.animating && params.cssMode && params.loop) { 30690 swiper.loopFix(); 30691 } 30692 30693 let e = event; 30694 if (e.originalEvent) e = e.originalEvent; 30695 let $targetEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target); 30696 30697 if (params.touchEventsTarget === 'wrapper') { 30698 if (!$targetEl.closest(swiper.wrapperEl).length) return; 30699 } 30700 30701 data.isTouchEvent = e.type === 'touchstart'; 30702 if (!data.isTouchEvent && 'which' in e && e.which === 3) return; 30703 if (!data.isTouchEvent && 'button' in e && e.button > 0) return; 30704 if (data.isTouched && data.isMoved) return; // change target el for shadow root component 30705 30706 const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; 30707 30708 if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) { 30709 $targetEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(event.path[0]); 30710 } 30711 30712 const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`; 30713 const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element 30714 30715 if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) { 30716 swiper.allowClick = true; 30717 return; 30718 } 30719 30720 if (params.swipeHandler) { 30721 if (!$targetEl.closest(params.swipeHandler)[0]) return; 30722 } 30723 30724 touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; 30725 touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; 30726 const startX = touches.currentX; 30727 const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore 30728 30729 const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection; 30730 const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold; 30731 30732 if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) { 30733 if (edgeSwipeDetection === 'prevent') { 30734 event.preventDefault(); 30735 } else { 30736 return; 30737 } 30738 } 30739 30740 Object.assign(data, { 30741 isTouched: true, 30742 isMoved: false, 30743 allowTouchCallbacks: true, 30744 isScrolling: undefined, 30745 startMoving: undefined 30746 }); 30747 touches.startX = startX; 30748 touches.startY = startY; 30749 data.touchStartTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(); 30750 swiper.allowClick = true; 30751 swiper.updateSize(); 30752 swiper.swipeDirection = undefined; 30753 if (params.threshold > 0) data.allowThresholdMove = false; 30754 30755 if (e.type !== 'touchstart') { 30756 let preventDefault = true; 30757 30758 if ($targetEl.is(data.focusableElements)) { 30759 preventDefault = false; 30760 30761 if ($targetEl[0].nodeName === 'SELECT') { 30762 data.isTouched = false; 30763 } 30764 } 30765 30766 if (document.activeElement && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) { 30767 document.activeElement.blur(); 30768 } 30769 30770 const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; 30771 30772 if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) { 30773 e.preventDefault(); 30774 } 30775 } 30776 30777 if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) { 30778 swiper.freeMode.onTouchStart(); 30779 } 30780 30781 swiper.emit('touchStart', e); 30782} 30783 30784/***/ }), 30785
vendor: 999 bytes, lines 30786-30804
30786/***/ "./node_modules/swiper/core/grab-cursor/index.js": 30787/*!*******************************************************!*\ 30788 !*** ./node_modules/swiper/core/grab-cursor/index.js ***! 30789 \*******************************************************/ 30790/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30791 30792"use strict"; 30793__webpack_require__.r(__webpack_exports__); 30794/* harmony import */ var _setGrabCursor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setGrabCursor.js */ "./node_modules/swiper/core/grab-cursor/setGrabCursor.js"); 30795/* harmony import */ var _unsetGrabCursor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./unsetGrabCursor.js */ "./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js"); 30796 30797 30798/* harmony default export */ __webpack_exports__["default"] = ({ 30799 setGrabCursor: _setGrabCursor_js__WEBPACK_IMPORTED_MODULE_0__["default"], 30800 unsetGrabCursor: _unsetGrabCursor_js__WEBPACK_IMPORTED_MODULE_1__["default"] 30801}); 30802 30803/***/ }), 30804
vendor: 987 bytes, lines 30805-30825
30805/***/ "./node_modules/swiper/core/grab-cursor/setGrabCursor.js": 30806/*!***************************************************************!*\ 30807 !*** ./node_modules/swiper/core/grab-cursor/setGrabCursor.js ***! 30808 \***************************************************************/ 30809/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30810 30811"use strict"; 30812__webpack_require__.r(__webpack_exports__); 30813/* harmony export */ __webpack_require__.d(__webpack_exports__, { 30814/* harmony export */ "default": function() { return /* binding */ setGrabCursor; } 30815/* harmony export */ }); 30816function setGrabCursor(moving) { 30817 const swiper = this; 30818 if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return; 30819 const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl; 30820 el.style.cursor = 'move'; 30821 el.style.cursor = moving ? 'grabbing' : 'grab'; 30822} 30823 30824/***/ }), 30825
vendor: 900 bytes, lines 30826-30848
30826/***/ "./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js": 30827/*!*****************************************************************!*\ 30828 !*** ./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js ***! 30829 \*****************************************************************/ 30830/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30831 30832"use strict"; 30833__webpack_require__.r(__webpack_exports__); 30834/* harmony export */ __webpack_require__.d(__webpack_exports__, { 30835/* harmony export */ "default": function() { return /* binding */ unsetGrabCursor; } 30836/* harmony export */ }); 30837function unsetGrabCursor() { 30838 const swiper = this; 30839 30840 if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) { 30841 return; 30842 } 30843 30844 swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = ''; 30845} 30846 30847/***/ }), 30848
vendor: 939 bytes, lines 30849-30867
30849/***/ "./node_modules/swiper/core/images/index.js": 30850/*!**************************************************!*\ 30851 !*** ./node_modules/swiper/core/images/index.js ***! 30852 \**************************************************/ 30853/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30854 30855"use strict"; 30856__webpack_require__.r(__webpack_exports__); 30857/* harmony import */ var _loadImage_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loadImage.js */ "./node_modules/swiper/core/images/loadImage.js"); 30858/* harmony import */ var _preloadImages_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./preloadImages.js */ "./node_modules/swiper/core/images/preloadImages.js"); 30859 30860 30861/* harmony default export */ __webpack_exports__["default"] = ({ 30862 loadImage: _loadImage_js__WEBPACK_IMPORTED_MODULE_0__["default"], 30863 preloadImages: _preloadImages_js__WEBPACK_IMPORTED_MODULE_1__["default"] 30864}); 30865 30866/***/ }), 30867
vendor: 1,664 bytes, lines 30868-30920
30868/***/ "./node_modules/swiper/core/images/loadImage.js": 30869/*!******************************************************!*\ 30870 !*** ./node_modules/swiper/core/images/loadImage.js ***! 30871 \******************************************************/ 30872/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30873 30874"use strict"; 30875__webpack_require__.r(__webpack_exports__); 30876/* harmony export */ __webpack_require__.d(__webpack_exports__, { 30877/* harmony export */ "default": function() { return /* binding */ loadImage; } 30878/* harmony export */ }); 30879/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 30880/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 30881 30882 30883function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) { 30884 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 30885 let image; 30886 30887 function onReady() { 30888 if (callback) callback(); 30889 } 30890 30891 const isPicture = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(imageEl).parent('picture')[0]; 30892 30893 if (!isPicture && (!imageEl.complete || !checkForComplete)) { 30894 if (src) { 30895 image = new window.Image(); 30896 image.onload = onReady; 30897 image.onerror = onReady; 30898 30899 if (sizes) { 30900 image.sizes = sizes; 30901 } 30902 30903 if (srcset) { 30904 image.srcset = srcset; 30905 } 30906 30907 if (src) { 30908 image.src = src; 30909 } 30910 } else { 30911 onReady(); 30912 } 30913 } else { 30914 // image already loaded... 30915 onReady(); 30916 } 30917} 30918 30919/***/ }), 30920
vendor: 1,358 bytes, lines 30921-30953
30921/***/ "./node_modules/swiper/core/images/preloadImages.js": 30922/*!**********************************************************!*\ 30923 !*** ./node_modules/swiper/core/images/preloadImages.js ***! 30924 \**********************************************************/ 30925/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30926 30927"use strict"; 30928__webpack_require__.r(__webpack_exports__); 30929/* harmony export */ __webpack_require__.d(__webpack_exports__, { 30930/* harmony export */ "default": function() { return /* binding */ preloadImages; } 30931/* harmony export */ }); 30932function preloadImages() { 30933 const swiper = this; 30934 swiper.imagesToLoad = swiper.$el.find('img'); 30935 30936 function onReady() { 30937 if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return; 30938 if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1; 30939 30940 if (swiper.imagesLoaded === swiper.imagesToLoad.length) { 30941 if (swiper.params.updateOnImagesReady) swiper.update(); 30942 swiper.emit('imagesReady'); 30943 } 30944 } 30945 30946 for (let i = 0; i < swiper.imagesToLoad.length; i += 1) { 30947 const imageEl = swiper.imagesToLoad[i]; 30948 swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady); 30949 } 30950} 30951 30952/***/ }), 30953
vendor: 1,142 bytes, lines 30954-30975
30954/***/ "./node_modules/swiper/core/loop/index.js": 30955/*!************************************************!*\ 30956 !*** ./node_modules/swiper/core/loop/index.js ***! 30957 \************************************************/ 30958/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30959 30960"use strict"; 30961__webpack_require__.r(__webpack_exports__); 30962/* harmony import */ var _loopCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loopCreate.js */ "./node_modules/swiper/core/loop/loopCreate.js"); 30963/* harmony import */ var _loopFix_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loopFix.js */ "./node_modules/swiper/core/loop/loopFix.js"); 30964/* harmony import */ var _loopDestroy_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loopDestroy.js */ "./node_modules/swiper/core/loop/loopDestroy.js"); 30965 30966 30967 30968/* harmony default export */ __webpack_exports__["default"] = ({ 30969 loopCreate: _loopCreate_js__WEBPACK_IMPORTED_MODULE_0__["default"], 30970 loopFix: _loopFix_js__WEBPACK_IMPORTED_MODULE_1__["default"], 30971 loopDestroy: _loopDestroy_js__WEBPACK_IMPORTED_MODULE_2__["default"] 30972}); 30973 30974/***/ }), 30975
vendor: 3,119 bytes, lines 30976-31050
30976/***/ "./node_modules/swiper/core/loop/loopCreate.js": 30977/*!*****************************************************!*\ 30978 !*** ./node_modules/swiper/core/loop/loopCreate.js ***! 30979 \*****************************************************/ 30980/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 30981 30982"use strict"; 30983__webpack_require__.r(__webpack_exports__); 30984/* harmony export */ __webpack_require__.d(__webpack_exports__, { 30985/* harmony export */ "default": function() { return /* binding */ loopCreate; } 30986/* harmony export */ }); 30987/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 30988/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 30989 30990 30991function loopCreate() { 30992 const swiper = this; 30993 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 30994 const { 30995 params, 30996 $wrapperEl 30997 } = swiper; // Remove duplicated slides 30998 30999 const $selector = $wrapperEl.children().length > 0 ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])($wrapperEl.children()[0].parentNode) : $wrapperEl; 31000 $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove(); 31001 let slides = $selector.children(`.${params.slideClass}`); 31002 31003 if (params.loopFillGroupWithBlank) { 31004 const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup; 31005 31006 if (blankSlidesNum !== params.slidesPerGroup) { 31007 for (let i = 0; i < blankSlidesNum; i += 1) { 31008 const blankNode = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`); 31009 $selector.append(blankNode); 31010 } 31011 31012 slides = $selector.children(`.${params.slideClass}`); 31013 } 31014 } 31015 31016 if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length; 31017 swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10)); 31018 swiper.loopedSlides += params.loopAdditionalSlides; 31019 31020 if (swiper.loopedSlides > slides.length) { 31021 swiper.loopedSlides = slides.length; 31022 } 31023 31024 const prependSlides = []; 31025 const appendSlides = []; 31026 slides.each((el, index) => { 31027 const slide = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(el); 31028 31029 if (index < swiper.loopedSlides) { 31030 appendSlides.push(el); 31031 } 31032 31033 if (index < slides.length && index >= slides.length - swiper.loopedSlides) { 31034 prependSlides.push(el); 31035 } 31036 31037 slide.attr('data-swiper-slide-index', index); 31038 }); 31039 31040 for (let i = 0; i < appendSlides.length; i += 1) { 31041 $selector.append((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass)); 31042 } 31043 31044 for (let i = prependSlides.length - 1; i >= 0; i -= 1) { 31045 $selector.prepend((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass)); 31046 } 31047} 31048 31049/***/ }), 31050
vendor: 873 bytes, lines 31051-31074
31051/***/ "./node_modules/swiper/core/loop/loopDestroy.js": 31052/*!******************************************************!*\ 31053 !*** ./node_modules/swiper/core/loop/loopDestroy.js ***! 31054 \******************************************************/ 31055/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31056 31057"use strict"; 31058__webpack_require__.r(__webpack_exports__); 31059/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31060/* harmony export */ "default": function() { return /* binding */ loopDestroy; } 31061/* harmony export */ }); 31062function loopDestroy() { 31063 const swiper = this; 31064 const { 31065 $wrapperEl, 31066 params, 31067 slides 31068 } = swiper; 31069 $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove(); 31070 slides.removeAttr('data-swiper-slide-index'); 31071} 31072 31073/***/ }), 31074
vendor: 1,811 bytes, lines 31075-31129
31075/***/ "./node_modules/swiper/core/loop/loopFix.js": 31076/*!**************************************************!*\ 31077 !*** ./node_modules/swiper/core/loop/loopFix.js ***! 31078 \**************************************************/ 31079/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31080 31081"use strict"; 31082__webpack_require__.r(__webpack_exports__); 31083/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31084/* harmony export */ "default": function() { return /* binding */ loopFix; } 31085/* harmony export */ }); 31086function loopFix() { 31087 const swiper = this; 31088 swiper.emit('beforeLoopFix'); 31089 const { 31090 activeIndex, 31091 slides, 31092 loopedSlides, 31093 allowSlidePrev, 31094 allowSlideNext, 31095 snapGrid, 31096 rtlTranslate: rtl 31097 } = swiper; 31098 let newIndex; 31099 swiper.allowSlidePrev = true; 31100 swiper.allowSlideNext = true; 31101 const snapTranslate = -snapGrid[activeIndex]; 31102 const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding 31103 31104 if (activeIndex < loopedSlides) { 31105 newIndex = slides.length - loopedSlides * 3 + activeIndex; 31106 newIndex += loopedSlides; 31107 const slideChanged = swiper.slideTo(newIndex, 0, false, true); 31108 31109 if (slideChanged && diff !== 0) { 31110 swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); 31111 } 31112 } else if (activeIndex >= slides.length - loopedSlides) { 31113 // Fix For Positive Oversliding 31114 newIndex = -slides.length + activeIndex + loopedSlides; 31115 newIndex += loopedSlides; 31116 const slideChanged = swiper.slideTo(newIndex, 0, false, true); 31117 31118 if (slideChanged && diff !== 0) { 31119 swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); 31120 } 31121 } 31122 31123 swiper.allowSlidePrev = allowSlidePrev; 31124 swiper.allowSlideNext = allowSlideNext; 31125 swiper.emit('loopFix'); 31126} 31127 31128/***/ }), 31129
vendor: 1,985 bytes, lines 31130-31186
31130/***/ "./node_modules/swiper/core/moduleExtendParams.js": 31131/*!********************************************************!*\ 31132 !*** ./node_modules/swiper/core/moduleExtendParams.js ***! 31133 \********************************************************/ 31134/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31135 31136"use strict"; 31137__webpack_require__.r(__webpack_exports__); 31138/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31139/* harmony export */ "default": function() { return /* binding */ moduleExtendParams; } 31140/* harmony export */ }); 31141/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 31142 31143function moduleExtendParams(params, allModulesParams) { 31144 return function extendParams(obj) { 31145 if (obj === void 0) { 31146 obj = {}; 31147 } 31148 31149 const moduleParamName = Object.keys(obj)[0]; 31150 const moduleParams = obj[moduleParamName]; 31151 31152 if (typeof moduleParams !== 'object' || moduleParams === null) { 31153 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj); 31154 return; 31155 } 31156 31157 if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) { 31158 params[moduleParamName] = { 31159 auto: true 31160 }; 31161 } 31162 31163 if (!(moduleParamName in params && 'enabled' in moduleParams)) { 31164 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj); 31165 return; 31166 } 31167 31168 if (params[moduleParamName] === true) { 31169 params[moduleParamName] = { 31170 enabled: true 31171 }; 31172 } 31173 31174 if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) { 31175 params[moduleParamName].enabled = true; 31176 } 31177 31178 if (!params[moduleParamName]) params[moduleParamName] = { 31179 enabled: false 31180 }; 31181 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj); 31182 }; 31183} 31184 31185/***/ }), 31186
vendor: 2,879 bytes, lines 31187-31281
31187/***/ "./node_modules/swiper/core/modules/observer/observer.js": 31188/*!***************************************************************!*\ 31189 !*** ./node_modules/swiper/core/modules/observer/observer.js ***! 31190 \***************************************************************/ 31191/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31192 31193"use strict"; 31194__webpack_require__.r(__webpack_exports__); 31195/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31196/* harmony export */ "default": function() { return /* binding */ Observer; } 31197/* harmony export */ }); 31198/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 31199 31200function Observer(_ref) { 31201 let { 31202 swiper, 31203 extendParams, 31204 on, 31205 emit 31206 } = _ref; 31207 const observers = []; 31208 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 31209 31210 const attach = function (target, options) { 31211 if (options === void 0) { 31212 options = {}; 31213 } 31214 31215 const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver; 31216 const observer = new ObserverFunc(mutations => { 31217 // The observerUpdate event should only be triggered 31218 // once despite the number of mutations. Additional 31219 // triggers are redundant and are very costly 31220 if (mutations.length === 1) { 31221 emit('observerUpdate', mutations[0]); 31222 return; 31223 } 31224 31225 const observerUpdate = function observerUpdate() { 31226 emit('observerUpdate', mutations[0]); 31227 }; 31228 31229 if (window.requestAnimationFrame) { 31230 window.requestAnimationFrame(observerUpdate); 31231 } else { 31232 window.setTimeout(observerUpdate, 0); 31233 } 31234 }); 31235 observer.observe(target, { 31236 attributes: typeof options.attributes === 'undefined' ? true : options.attributes, 31237 childList: typeof options.childList === 'undefined' ? true : options.childList, 31238 characterData: typeof options.characterData === 'undefined' ? true : options.characterData 31239 }); 31240 observers.push(observer); 31241 }; 31242 31243 const init = () => { 31244 if (!swiper.params.observer) return; 31245 31246 if (swiper.params.observeParents) { 31247 const containerParents = swiper.$el.parents(); 31248 31249 for (let i = 0; i < containerParents.length; i += 1) { 31250 attach(containerParents[i]); 31251 } 31252 } // Observe container 31253 31254 31255 attach(swiper.$el[0], { 31256 childList: swiper.params.observeSlideChildren 31257 }); // Observe wrapper 31258 31259 attach(swiper.$wrapperEl[0], { 31260 attributes: false 31261 }); 31262 }; 31263 31264 const destroy = () => { 31265 observers.forEach(observer => { 31266 observer.disconnect(); 31267 }); 31268 observers.splice(0, observers.length); 31269 }; 31270 31271 extendParams({ 31272 observer: false, 31273 observeParents: false, 31274 observeSlideChildren: false 31275 }); 31276 on('init', init); 31277 on('destroy', destroy); 31278} 31279 31280/***/ }), 31281
vendor: 2,884 bytes, lines 31282-31373
31282/***/ "./node_modules/swiper/core/modules/resize/resize.js": 31283/*!***********************************************************!*\ 31284 !*** ./node_modules/swiper/core/modules/resize/resize.js ***! 31285 \***********************************************************/ 31286/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31287 31288"use strict"; 31289__webpack_require__.r(__webpack_exports__); 31290/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31291/* harmony export */ "default": function() { return /* binding */ Resize; } 31292/* harmony export */ }); 31293/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 31294 31295function Resize(_ref) { 31296 let { 31297 swiper, 31298 on, 31299 emit 31300 } = _ref; 31301 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 31302 let observer = null; 31303 let animationFrame = null; 31304 31305 const resizeHandler = () => { 31306 if (!swiper || swiper.destroyed || !swiper.initialized) return; 31307 emit('beforeResize'); 31308 emit('resize'); 31309 }; 31310 31311 const createObserver = () => { 31312 if (!swiper || swiper.destroyed || !swiper.initialized) return; 31313 observer = new ResizeObserver(entries => { 31314 animationFrame = window.requestAnimationFrame(() => { 31315 const { 31316 width, 31317 height 31318 } = swiper; 31319 let newWidth = width; 31320 let newHeight = height; 31321 entries.forEach(_ref2 => { 31322 let { 31323 contentBoxSize, 31324 contentRect, 31325 target 31326 } = _ref2; 31327 if (target && target !== swiper.el) return; 31328 newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize; 31329 newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize; 31330 }); 31331 31332 if (newWidth !== width || newHeight !== height) { 31333 resizeHandler(); 31334 } 31335 }); 31336 }); 31337 observer.observe(swiper.el); 31338 }; 31339 31340 const removeObserver = () => { 31341 if (animationFrame) { 31342 window.cancelAnimationFrame(animationFrame); 31343 } 31344 31345 if (observer && observer.unobserve && swiper.el) { 31346 observer.unobserve(swiper.el); 31347 observer = null; 31348 } 31349 }; 31350 31351 const orientationChangeHandler = () => { 31352 if (!swiper || swiper.destroyed || !swiper.initialized) return; 31353 emit('orientationchange'); 31354 }; 31355 31356 on('init', () => { 31357 if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') { 31358 createObserver(); 31359 return; 31360 } 31361 31362 window.addEventListener('resize', resizeHandler); 31363 window.addEventListener('orientationchange', orientationChangeHandler); 31364 }); 31365 on('destroy', () => { 31366 removeObserver(); 31367 window.removeEventListener('resize', resizeHandler); 31368 window.removeEventListener('orientationchange', orientationChangeHandler); 31369 }); 31370} 31371 31372/***/ }), 31373
vendor: 2,148 bytes, lines 31374-31407
31374/***/ "./node_modules/swiper/core/slide/index.js": 31375/*!*************************************************!*\ 31376 !*** ./node_modules/swiper/core/slide/index.js ***! 31377 \*************************************************/ 31378/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31379 31380"use strict"; 31381__webpack_require__.r(__webpack_exports__); 31382/* harmony import */ var _slideTo_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./slideTo.js */ "./node_modules/swiper/core/slide/slideTo.js"); 31383/* harmony import */ var _slideToLoop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slideToLoop.js */ "./node_modules/swiper/core/slide/slideToLoop.js"); 31384/* harmony import */ var _slideNext_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slideNext.js */ "./node_modules/swiper/core/slide/slideNext.js"); 31385/* harmony import */ var _slidePrev_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slidePrev.js */ "./node_modules/swiper/core/slide/slidePrev.js"); 31386/* harmony import */ var _slideReset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./slideReset.js */ "./node_modules/swiper/core/slide/slideReset.js"); 31387/* harmony import */ var _slideToClosest_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./slideToClosest.js */ "./node_modules/swiper/core/slide/slideToClosest.js"); 31388/* harmony import */ var _slideToClickedSlide_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./slideToClickedSlide.js */ "./node_modules/swiper/core/slide/slideToClickedSlide.js"); 31389 31390 31391 31392 31393 31394 31395 31396/* harmony default export */ __webpack_exports__["default"] = ({ 31397 slideTo: _slideTo_js__WEBPACK_IMPORTED_MODULE_0__["default"], 31398 slideToLoop: _slideToLoop_js__WEBPACK_IMPORTED_MODULE_1__["default"], 31399 slideNext: _slideNext_js__WEBPACK_IMPORTED_MODULE_2__["default"], 31400 slidePrev: _slidePrev_js__WEBPACK_IMPORTED_MODULE_3__["default"], 31401 slideReset: _slideReset_js__WEBPACK_IMPORTED_MODULE_4__["default"], 31402 slideToClosest: _slideToClosest_js__WEBPACK_IMPORTED_MODULE_5__["default"], 31403 slideToClickedSlide: _slideToClickedSlide_js__WEBPACK_IMPORTED_MODULE_6__["default"] 31404}); 31405 31406/***/ }), 31407
vendor: 1,596 bytes, lines 31408-31459
31408/***/ "./node_modules/swiper/core/slide/slideNext.js": 31409/*!*****************************************************!*\ 31410 !*** ./node_modules/swiper/core/slide/slideNext.js ***! 31411 \*****************************************************/ 31412/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31413 31414"use strict"; 31415__webpack_require__.r(__webpack_exports__); 31416/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31417/* harmony export */ "default": function() { return /* binding */ slideNext; } 31418/* harmony export */ }); 31419/* eslint no-unused-vars: "off" */ 31420function slideNext(speed, runCallbacks, internal) { 31421 if (speed === void 0) { 31422 speed = this.params.speed; 31423 } 31424 31425 if (runCallbacks === void 0) { 31426 runCallbacks = true; 31427 } 31428 31429 const swiper = this; 31430 const { 31431 animating, 31432 enabled, 31433 params 31434 } = swiper; 31435 if (!enabled) return swiper; 31436 let perGroup = params.slidesPerGroup; 31437 31438 if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { 31439 perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1); 31440 } 31441 31442 const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup; 31443 31444 if (params.loop) { 31445 if (animating && params.loopPreventsSlide) return false; 31446 swiper.loopFix(); // eslint-disable-next-line 31447 31448 swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 31449 } 31450 31451 if (params.rewind && swiper.isEnd) { 31452 return swiper.slideTo(0, speed, runCallbacks, internal); 31453 } 31454 31455 return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); 31456} 31457 31458/***/ }), 31459
vendor: 2,671 bytes, lines 31460-31545
31460/***/ "./node_modules/swiper/core/slide/slidePrev.js": 31461/*!*****************************************************!*\ 31462 !*** ./node_modules/swiper/core/slide/slidePrev.js ***! 31463 \*****************************************************/ 31464/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31465 31466"use strict"; 31467__webpack_require__.r(__webpack_exports__); 31468/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31469/* harmony export */ "default": function() { return /* binding */ slidePrev; } 31470/* harmony export */ }); 31471/* eslint no-unused-vars: "off" */ 31472function slidePrev(speed, runCallbacks, internal) { 31473 if (speed === void 0) { 31474 speed = this.params.speed; 31475 } 31476 31477 if (runCallbacks === void 0) { 31478 runCallbacks = true; 31479 } 31480 31481 const swiper = this; 31482 const { 31483 params, 31484 animating, 31485 snapGrid, 31486 slidesGrid, 31487 rtlTranslate, 31488 enabled 31489 } = swiper; 31490 if (!enabled) return swiper; 31491 31492 if (params.loop) { 31493 if (animating && params.loopPreventsSlide) return false; 31494 swiper.loopFix(); // eslint-disable-next-line 31495 31496 swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 31497 } 31498 31499 const translate = rtlTranslate ? swiper.translate : -swiper.translate; 31500 31501 function normalize(val) { 31502 if (val < 0) return -Math.floor(Math.abs(val)); 31503 return Math.floor(val); 31504 } 31505 31506 const normalizedTranslate = normalize(translate); 31507 const normalizedSnapGrid = snapGrid.map(val => normalize(val)); 31508 let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; 31509 31510 if (typeof prevSnap === 'undefined' && params.cssMode) { 31511 let prevSnapIndex; 31512 snapGrid.forEach((snap, snapIndex) => { 31513 if (normalizedTranslate >= snap) { 31514 // prevSnap = snap; 31515 prevSnapIndex = snapIndex; 31516 } 31517 }); 31518 31519 if (typeof prevSnapIndex !== 'undefined') { 31520 prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex]; 31521 } 31522 } 31523 31524 let prevIndex = 0; 31525 31526 if (typeof prevSnap !== 'undefined') { 31527 prevIndex = slidesGrid.indexOf(prevSnap); 31528 if (prevIndex < 0) prevIndex = swiper.activeIndex - 1; 31529 31530 if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { 31531 prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1; 31532 prevIndex = Math.max(prevIndex, 0); 31533 } 31534 } 31535 31536 if (params.rewind && swiper.isBeginning) { 31537 const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; 31538 return swiper.slideTo(lastIndex, speed, runCallbacks, internal); 31539 } 31540 31541 return swiper.slideTo(prevIndex, speed, runCallbacks, internal); 31542} 31543 31544/***/ }), 31545
vendor: 890 bytes, lines 31546-31572
31546/***/ "./node_modules/swiper/core/slide/slideReset.js": 31547/*!******************************************************!*\ 31548 !*** ./node_modules/swiper/core/slide/slideReset.js ***! 31549 \******************************************************/ 31550/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31551 31552"use strict"; 31553__webpack_require__.r(__webpack_exports__); 31554/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31555/* harmony export */ "default": function() { return /* binding */ slideReset; } 31556/* harmony export */ }); 31557/* eslint no-unused-vars: "off" */ 31558function slideReset(speed, runCallbacks, internal) { 31559 if (speed === void 0) { 31560 speed = this.params.speed; 31561 } 31562 31563 if (runCallbacks === void 0) { 31564 runCallbacks = true; 31565 } 31566 31567 const swiper = this; 31568 return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); 31569} 31570 31571/***/ }), 31572
vendor: 6,674 bytes, lines 31573-31780
31573/***/ "./node_modules/swiper/core/slide/slideTo.js": 31574/*!***************************************************!*\ 31575 !*** ./node_modules/swiper/core/slide/slideTo.js ***! 31576 \***************************************************/ 31577/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31578 31579"use strict"; 31580__webpack_require__.r(__webpack_exports__); 31581/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31582/* harmony export */ "default": function() { return /* binding */ slideTo; } 31583/* harmony export */ }); 31584/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 31585 31586function slideTo(index, speed, runCallbacks, internal, initial) { 31587 if (index === void 0) { 31588 index = 0; 31589 } 31590 31591 if (speed === void 0) { 31592 speed = this.params.speed; 31593 } 31594 31595 if (runCallbacks === void 0) { 31596 runCallbacks = true; 31597 } 31598 31599 if (typeof index !== 'number' && typeof index !== 'string') { 31600 throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`); 31601 } 31602 31603 if (typeof index === 'string') { 31604 /** 31605 * The `index` argument converted from `string` to `number`. 31606 * @type {number} 31607 */ 31608 const indexAsNumber = parseInt(index, 10); 31609 /** 31610 * Determines whether the `index` argument is a valid `number` 31611 * after being converted from the `string` type. 31612 * @type {boolean} 31613 */ 31614 31615 const isValidNumber = isFinite(indexAsNumber); 31616 31617 if (!isValidNumber) { 31618 throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`); 31619 } // Knowing that the converted `index` is a valid number, 31620 // we can update the original argument's value. 31621 31622 31623 index = indexAsNumber; 31624 } 31625 31626 const swiper = this; 31627 let slideIndex = index; 31628 if (slideIndex < 0) slideIndex = 0; 31629 const { 31630 params, 31631 snapGrid, 31632 slidesGrid, 31633 previousIndex, 31634 activeIndex, 31635 rtlTranslate: rtl, 31636 wrapperEl, 31637 enabled 31638 } = swiper; 31639 31640 if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) { 31641 return false; 31642 } 31643 31644 const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); 31645 let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); 31646 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 31647 31648 if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) { 31649 swiper.emit('beforeSlideChangeStart'); 31650 } 31651 31652 const translate = -snapGrid[snapIndex]; // Update progress 31653 31654 swiper.updateProgress(translate); // Normalize slideIndex 31655 31656 if (params.normalizeSlideIndex) { 31657 for (let i = 0; i < slidesGrid.length; i += 1) { 31658 const normalizedTranslate = -Math.floor(translate * 100); 31659 const normalizedGrid = Math.floor(slidesGrid[i] * 100); 31660 const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100); 31661 31662 if (typeof slidesGrid[i + 1] !== 'undefined') { 31663 if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) { 31664 slideIndex = i; 31665 } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) { 31666 slideIndex = i + 1; 31667 } 31668 } else if (normalizedTranslate >= normalizedGrid) { 31669 slideIndex = i; 31670 } 31671 } 31672 } // Directions locks 31673 31674 31675 if (swiper.initialized && slideIndex !== activeIndex) { 31676 if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) { 31677 return false; 31678 } 31679 31680 if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { 31681 if ((activeIndex || 0) !== slideIndex) return false; 31682 } 31683 } 31684 31685 let direction; 31686 if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index 31687 31688 if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) { 31689 swiper.updateActiveIndex(slideIndex); // Update Height 31690 31691 if (params.autoHeight) { 31692 swiper.updateAutoHeight(); 31693 } 31694 31695 swiper.updateSlidesClasses(); 31696 31697 if (params.effect !== 'slide') { 31698 swiper.setTranslate(translate); 31699 } 31700 31701 if (direction !== 'reset') { 31702 swiper.transitionStart(runCallbacks, direction); 31703 swiper.transitionEnd(runCallbacks, direction); 31704 } 31705 31706 return false; 31707 } 31708 31709 if (params.cssMode) { 31710 const isH = swiper.isHorizontal(); 31711 const t = rtl ? translate : -translate; 31712 31713 if (speed === 0) { 31714 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 31715 31716 if (isVirtual) { 31717 swiper.wrapperEl.style.scrollSnapType = 'none'; 31718 swiper._immediateVirtual = true; 31719 } 31720 31721 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; 31722 31723 if (isVirtual) { 31724 requestAnimationFrame(() => { 31725 swiper.wrapperEl.style.scrollSnapType = ''; 31726 swiper._swiperImmediateVirtual = false; 31727 }); 31728 } 31729 } else { 31730 if (!swiper.support.smoothScroll) { 31731 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.animateCSSModeScroll)({ 31732 swiper, 31733 targetPosition: t, 31734 side: isH ? 'left' : 'top' 31735 }); 31736 return true; 31737 } 31738 31739 wrapperEl.scrollTo({ 31740 [isH ? 'left' : 'top']: t, 31741 behavior: 'smooth' 31742 }); 31743 } 31744 31745 return true; 31746 } 31747 31748 swiper.setTransition(speed); 31749 swiper.setTranslate(translate); 31750 swiper.updateActiveIndex(slideIndex); 31751 swiper.updateSlidesClasses(); 31752 swiper.emit('beforeTransitionStart', speed, internal); 31753 swiper.transitionStart(runCallbacks, direction); 31754 31755 if (speed === 0) { 31756 swiper.transitionEnd(runCallbacks, direction); 31757 } else if (!swiper.animating) { 31758 swiper.animating = true; 31759 31760 if (!swiper.onSlideToWrapperTransitionEnd) { 31761 swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) { 31762 if (!swiper || swiper.destroyed) return; 31763 if (e.target !== this) return; 31764 swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 31765 swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd); 31766 swiper.onSlideToWrapperTransitionEnd = null; 31767 delete swiper.onSlideToWrapperTransitionEnd; 31768 swiper.transitionEnd(runCallbacks, direction); 31769 }; 31770 } 31771 31772 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 31773 swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd); 31774 } 31775 31776 return true; 31777} 31778 31779/***/ }), 31780
vendor: 2,456 bytes, lines 31781-31835
31781/***/ "./node_modules/swiper/core/slide/slideToClickedSlide.js": 31782/*!***************************************************************!*\ 31783 !*** ./node_modules/swiper/core/slide/slideToClickedSlide.js ***! 31784 \***************************************************************/ 31785/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31786 31787"use strict"; 31788__webpack_require__.r(__webpack_exports__); 31789/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31790/* harmony export */ "default": function() { return /* binding */ slideToClickedSlide; } 31791/* harmony export */ }); 31792/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 31793/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 31794 31795 31796function slideToClickedSlide() { 31797 const swiper = this; 31798 const { 31799 params, 31800 $wrapperEl 31801 } = swiper; 31802 const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; 31803 let slideToIndex = swiper.clickedIndex; 31804 let realIndex; 31805 31806 if (params.loop) { 31807 if (swiper.animating) return; 31808 realIndex = parseInt((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.clickedSlide).attr('data-swiper-slide-index'), 10); 31809 31810 if (params.centeredSlides) { 31811 if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) { 31812 swiper.loopFix(); 31813 slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index="${realIndex}"]:not(.${params.slideDuplicateClass})`).eq(0).index(); 31814 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => { 31815 swiper.slideTo(slideToIndex); 31816 }); 31817 } else { 31818 swiper.slideTo(slideToIndex); 31819 } 31820 } else if (slideToIndex > swiper.slides.length - slidesPerView) { 31821 swiper.loopFix(); 31822 slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index="${realIndex}"]:not(.${params.slideDuplicateClass})`).eq(0).index(); 31823 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => { 31824 swiper.slideTo(slideToIndex); 31825 }); 31826 } else { 31827 swiper.slideTo(slideToIndex); 31828 } 31829 } else { 31830 swiper.slideTo(slideToIndex); 31831 } 31832} 31833 31834/***/ }), 31835
vendor: 2,123 bytes, lines 31836-31893
31836/***/ "./node_modules/swiper/core/slide/slideToClosest.js": 31837/*!**********************************************************!*\ 31838 !*** ./node_modules/swiper/core/slide/slideToClosest.js ***! 31839 \**********************************************************/ 31840/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31841 31842"use strict"; 31843__webpack_require__.r(__webpack_exports__); 31844/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31845/* harmony export */ "default": function() { return /* binding */ slideToClosest; } 31846/* harmony export */ }); 31847/* eslint no-unused-vars: "off" */ 31848function slideToClosest(speed, runCallbacks, internal, threshold) { 31849 if (speed === void 0) { 31850 speed = this.params.speed; 31851 } 31852 31853 if (runCallbacks === void 0) { 31854 runCallbacks = true; 31855 } 31856 31857 if (threshold === void 0) { 31858 threshold = 0.5; 31859 } 31860 31861 const swiper = this; 31862 let index = swiper.activeIndex; 31863 const skip = Math.min(swiper.params.slidesPerGroupSkip, index); 31864 const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup); 31865 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 31866 31867 if (translate >= swiper.snapGrid[snapIndex]) { 31868 // The current translate is on or after the current snap index, so the choice 31869 // is between the current index and the one after it. 31870 const currentSnap = swiper.snapGrid[snapIndex]; 31871 const nextSnap = swiper.snapGrid[snapIndex + 1]; 31872 31873 if (translate - currentSnap > (nextSnap - currentSnap) * threshold) { 31874 index += swiper.params.slidesPerGroup; 31875 } 31876 } else { 31877 // The current translate is before the current snap index, so the choice 31878 // is between the current index and the one before it. 31879 const prevSnap = swiper.snapGrid[snapIndex - 1]; 31880 const currentSnap = swiper.snapGrid[snapIndex]; 31881 31882 if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) { 31883 index -= swiper.params.slidesPerGroup; 31884 } 31885 } 31886 31887 index = Math.max(index, 0); 31888 index = Math.min(index, swiper.slidesGrid.length - 1); 31889 return swiper.slideTo(index, speed, runCallbacks, internal); 31890} 31891 31892/***/ }), 31893
vendor: 999 bytes, lines 31894-31929
31894/***/ "./node_modules/swiper/core/slide/slideToLoop.js": 31895/*!*******************************************************!*\ 31896 !*** ./node_modules/swiper/core/slide/slideToLoop.js ***! 31897 \*******************************************************/ 31898/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31899 31900"use strict"; 31901__webpack_require__.r(__webpack_exports__); 31902/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31903/* harmony export */ "default": function() { return /* binding */ slideToLoop; } 31904/* harmony export */ }); 31905function slideToLoop(index, speed, runCallbacks, internal) { 31906 if (index === void 0) { 31907 index = 0; 31908 } 31909 31910 if (speed === void 0) { 31911 speed = this.params.speed; 31912 } 31913 31914 if (runCallbacks === void 0) { 31915 runCallbacks = true; 31916 } 31917 31918 const swiper = this; 31919 let newIndex = index; 31920 31921 if (swiper.params.loop) { 31922 newIndex += swiper.loopedSlides; 31923 } 31924 31925 return swiper.slideTo(newIndex, speed, runCallbacks, internal); 31926} 31927 31928/***/ }), 31929
vendor: 1,249 bytes, lines 31930-31951
31930/***/ "./node_modules/swiper/core/transition/index.js": 31931/*!******************************************************!*\ 31932 !*** ./node_modules/swiper/core/transition/index.js ***! 31933 \******************************************************/ 31934/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31935 31936"use strict"; 31937__webpack_require__.r(__webpack_exports__); 31938/* harmony import */ var _setTransition_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setTransition.js */ "./node_modules/swiper/core/transition/setTransition.js"); 31939/* harmony import */ var _transitionStart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transitionStart.js */ "./node_modules/swiper/core/transition/transitionStart.js"); 31940/* harmony import */ var _transitionEnd_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transitionEnd.js */ "./node_modules/swiper/core/transition/transitionEnd.js"); 31941 31942 31943 31944/* harmony default export */ __webpack_exports__["default"] = ({ 31945 setTransition: _setTransition_js__WEBPACK_IMPORTED_MODULE_0__["default"], 31946 transitionStart: _transitionStart_js__WEBPACK_IMPORTED_MODULE_1__["default"], 31947 transitionEnd: _transitionEnd_js__WEBPACK_IMPORTED_MODULE_2__["default"] 31948}); 31949 31950/***/ }), 31951
vendor: 823 bytes, lines 31952-31974
31952/***/ "./node_modules/swiper/core/transition/setTransition.js": 31953/*!**************************************************************!*\ 31954 !*** ./node_modules/swiper/core/transition/setTransition.js ***! 31955 \**************************************************************/ 31956/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31957 31958"use strict"; 31959__webpack_require__.r(__webpack_exports__); 31960/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31961/* harmony export */ "default": function() { return /* binding */ setTransition; } 31962/* harmony export */ }); 31963function setTransition(duration, byController) { 31964 const swiper = this; 31965 31966 if (!swiper.params.cssMode) { 31967 swiper.$wrapperEl.transition(duration); 31968 } 31969 31970 swiper.emit('setTransition', duration, byController); 31971} 31972 31973/***/ }), 31974
vendor: 1,334 bytes, lines 31975-32022
31975/***/ "./node_modules/swiper/core/transition/transitionEmit.js": 31976/*!***************************************************************!*\ 31977 !*** ./node_modules/swiper/core/transition/transitionEmit.js ***! 31978 \***************************************************************/ 31979/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 31980 31981"use strict"; 31982__webpack_require__.r(__webpack_exports__); 31983/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31984/* harmony export */ "default": function() { return /* binding */ transitionEmit; } 31985/* harmony export */ }); 31986function transitionEmit(_ref) { 31987 let { 31988 swiper, 31989 runCallbacks, 31990 direction, 31991 step 31992 } = _ref; 31993 const { 31994 activeIndex, 31995 previousIndex 31996 } = swiper; 31997 let dir = direction; 31998 31999 if (!dir) { 32000 if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; 32001 } 32002 32003 swiper.emit(`transition${step}`); 32004 32005 if (runCallbacks && activeIndex !== previousIndex) { 32006 if (dir === 'reset') { 32007 swiper.emit(`slideResetTransition${step}`); 32008 return; 32009 } 32010 32011 swiper.emit(`slideChangeTransition${step}`); 32012 32013 if (dir === 'next') { 32014 swiper.emit(`slideNextTransition${step}`); 32015 } else { 32016 swiper.emit(`slidePrevTransition${step}`); 32017 } 32018 } 32019} 32020 32021/***/ }), 32022
vendor: 1,186 bytes, lines 32023-32057
32023/***/ "./node_modules/swiper/core/transition/transitionEnd.js": 32024/*!**************************************************************!*\ 32025 !*** ./node_modules/swiper/core/transition/transitionEnd.js ***! 32026 \**************************************************************/ 32027/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32028 32029"use strict"; 32030__webpack_require__.r(__webpack_exports__); 32031/* harmony export */ __webpack_require__.d(__webpack_exports__, { 32032/* harmony export */ "default": function() { return /* binding */ transitionEnd; } 32033/* harmony export */ }); 32034/* harmony import */ var _transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transitionEmit.js */ "./node_modules/swiper/core/transition/transitionEmit.js"); 32035 32036function transitionEnd(runCallbacks, direction) { 32037 if (runCallbacks === void 0) { 32038 runCallbacks = true; 32039 } 32040 32041 const swiper = this; 32042 const { 32043 params 32044 } = swiper; 32045 swiper.animating = false; 32046 if (params.cssMode) return; 32047 swiper.setTransition(0); 32048 (0,_transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 32049 swiper, 32050 runCallbacks, 32051 direction, 32052 step: 'End' 32053 }); 32054} 32055 32056/***/ }), 32057
vendor: 1,209 bytes, lines 32058-32095
32058/***/ "./node_modules/swiper/core/transition/transitionStart.js": 32059/*!****************************************************************!*\ 32060 !*** ./node_modules/swiper/core/transition/transitionStart.js ***! 32061 \****************************************************************/ 32062/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32063 32064"use strict"; 32065__webpack_require__.r(__webpack_exports__); 32066/* harmony export */ __webpack_require__.d(__webpack_exports__, { 32067/* harmony export */ "default": function() { return /* binding */ transitionStart; } 32068/* harmony export */ }); 32069/* harmony import */ var _transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transitionEmit.js */ "./node_modules/swiper/core/transition/transitionEmit.js"); 32070 32071function transitionStart(runCallbacks, direction) { 32072 if (runCallbacks === void 0) { 32073 runCallbacks = true; 32074 } 32075 32076 const swiper = this; 32077 const { 32078 params 32079 } = swiper; 32080 if (params.cssMode) return; 32081 32082 if (params.autoHeight) { 32083 swiper.updateAutoHeight(); 32084 } 32085 32086 (0,_transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 32087 swiper, 32088 runCallbacks, 32089 direction, 32090 step: 'Start' 32091 }); 32092} 32093 32094/***/ }), 32095
vendor: 1,319 bytes, lines 32096-32136
32096/***/ "./node_modules/swiper/core/translate/getTranslate.js": 32097/*!************************************************************!*\ 32098 !*** ./node_modules/swiper/core/translate/getTranslate.js ***! 32099 \************************************************************/ 32100/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32101 32102"use strict"; 32103__webpack_require__.r(__webpack_exports__); 32104/* harmony export */ __webpack_require__.d(__webpack_exports__, { 32105/* harmony export */ "default": function() { return /* binding */ getSwiperTranslate; } 32106/* harmony export */ }); 32107/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 32108 32109function getSwiperTranslate(axis) { 32110 if (axis === void 0) { 32111 axis = this.isHorizontal() ? 'x' : 'y'; 32112 } 32113 32114 const swiper = this; 32115 const { 32116 params, 32117 rtlTranslate: rtl, 32118 translate, 32119 $wrapperEl 32120 } = swiper; 32121 32122 if (params.virtualTranslate) { 32123 return rtl ? -translate : translate; 32124 } 32125 32126 if (params.cssMode) { 32127 return translate; 32128 } 32129 32130 let currentTranslate = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.getTranslate)($wrapperEl[0], axis); 32131 if (rtl) currentTranslate = -currentTranslate; 32132 return currentTranslate || 0; 32133} 32134 32135/***/ }), 32136
vendor: 1,712 bytes, lines 32137-32164
32137/***/ "./node_modules/swiper/core/translate/index.js": 32138/*!*****************************************************!*\ 32139 !*** ./node_modules/swiper/core/translate/index.js ***! 32140 \*****************************************************/ 32141/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32142 32143"use strict"; 32144__webpack_require__.r(__webpack_exports__); 32145/* harmony import */ var _getTranslate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getTranslate.js */ "./node_modules/swiper/core/translate/getTranslate.js"); 32146/* harmony import */ var _setTranslate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setTranslate.js */ "./node_modules/swiper/core/translate/setTranslate.js"); 32147/* harmony import */ var _minTranslate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./minTranslate.js */ "./node_modules/swiper/core/translate/minTranslate.js"); 32148/* harmony import */ var _maxTranslate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./maxTranslate.js */ "./node_modules/swiper/core/translate/maxTranslate.js"); 32149/* harmony import */ var _translateTo_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./translateTo.js */ "./node_modules/swiper/core/translate/translateTo.js"); 32150 32151 32152 32153 32154 32155/* harmony default export */ __webpack_exports__["default"] = ({ 32156 getTranslate: _getTranslate_js__WEBPACK_IMPORTED_MODULE_0__["default"], 32157 setTranslate: _setTranslate_js__WEBPACK_IMPORTED_MODULE_1__["default"], 32158 minTranslate: _minTranslate_js__WEBPACK_IMPORTED_MODULE_2__["default"], 32159 maxTranslate: _maxTranslate_js__WEBPACK_IMPORTED_MODULE_3__["default"], 32160 translateTo: _translateTo_js__WEBPACK_IMPORTED_MODULE_4__["default"] 32161}); 32162 32163/***/ }), 32164
vendor: 681 bytes, lines 32165-32181
32165/***/ "./node_modules/swiper/core/translate/maxTranslate.js": 32166/*!************************************************************!*\ 32167 !*** ./node_modules/swiper/core/translate/maxTranslate.js ***! 32168 \************************************************************/ 32169/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32170 32171"use strict"; 32172__webpack_require__.r(__webpack_exports__); 32173/* harmony export */ __webpack_require__.d(__webpack_exports__, { 32174/* harmony export */ "default": function() { return /* binding */ maxTranslate; } 32175/* harmony export */ }); 32176function maxTranslate() { 32177 return -this.snapGrid[this.snapGrid.length - 1]; 32178} 32179 32180/***/ }), 32181
vendor: 658 bytes, lines 32182-32198
32182/***/ "./node_modules/swiper/core/translate/minTranslate.js": 32183/*!************************************************************!*\ 32184 !*** ./node_modules/swiper/core/translate/minTranslate.js ***! 32185 \************************************************************/ 32186/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32187 32188"use strict"; 32189__webpack_require__.r(__webpack_exports__); 32190/* harmony export */ __webpack_require__.d(__webpack_exports__, { 32191/* harmony export */ "default": function() { return /* binding */ minTranslate; } 32192/* harmony export */ }); 32193function minTranslate() { 32194 return -this.snapGrid[0]; 32195} 32196 32197/***/ }), 32198
vendor: 1,751 bytes, lines 32199-32260
32199/***/ "./node_modules/swiper/core/translate/setTranslate.js": 32200/*!************************************************************!*\ 32201 !*** ./node_modules/swiper/core/translate/setTranslate.js ***! 32202 \************************************************************/ 32203/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32204 32205"use strict"; 32206__webpack_require__.r(__webpack_exports__); 32207/* harmony export */ __webpack_require__.d(__webpack_exports__, { 32208/* harmony export */ "default": function() { return /* binding */ setTranslate; } 32209/* harmony export */ }); 32210function setTranslate(translate, byController) { 32211 const swiper = this; 32212 const { 32213 rtlTranslate: rtl, 32214 params, 32215 $wrapperEl, 32216 wrapperEl, 32217 progress 32218 } = swiper; 32219 let x = 0; 32220 let y = 0; 32221 const z = 0; 32222 32223 if (swiper.isHorizontal()) { 32224 x = rtl ? -translate : translate; 32225 } else { 32226 y = translate; 32227 } 32228 32229 if (params.roundLengths) { 32230 x = Math.floor(x); 32231 y = Math.floor(y); 32232 } 32233 32234 if (params.cssMode) { 32235 wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y; 32236 } else if (!params.virtualTranslate) { 32237 $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`); 32238 } 32239 32240 swiper.previousTranslate = swiper.translate; 32241 swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress 32242 32243 let newProgress; 32244 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 32245 32246 if (translatesDiff === 0) { 32247 newProgress = 0; 32248 } else { 32249 newProgress = (translate - swiper.minTranslate()) / translatesDiff; 32250 } 32251 32252 if (newProgress !== progress) { 32253 swiper.updateProgress(translate); 32254 } 32255 32256 swiper.emit('setTranslate', swiper.translate, byController); 32257} 32258 32259/***/ }), 32260
vendor: 3,599 bytes, lines 32261-32376
32261/***/ "./node_modules/swiper/core/translate/translateTo.js": 32262/*!***********************************************************!*\ 32263 !*** ./node_modules/swiper/core/translate/translateTo.js ***! 32264 \***********************************************************/ 32265/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32266 32267"use strict"; 32268__webpack_require__.r(__webpack_exports__); 32269/* harmony export */ __webpack_require__.d(__webpack_exports__, { 32270/* harmony export */ "default": function() { return /* binding */ translateTo; } 32271/* harmony export */ }); 32272/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 32273 32274function translateTo(translate, speed, runCallbacks, translateBounds, internal) { 32275 if (translate === void 0) { 32276 translate = 0; 32277 } 32278 32279 if (speed === void 0) { 32280 speed = this.params.speed; 32281 } 32282 32283 if (runCallbacks === void 0) { 32284 runCallbacks = true; 32285 } 32286 32287 if (translateBounds === void 0) { 32288 translateBounds = true; 32289 } 32290 32291 const swiper = this; 32292 const { 32293 params, 32294 wrapperEl 32295 } = swiper; 32296 32297 if (swiper.animating && params.preventInteractionOnTransition) { 32298 return false; 32299 } 32300 32301 const minTranslate = swiper.minTranslate(); 32302 const maxTranslate = swiper.maxTranslate(); 32303 let newTranslate; 32304 if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress 32305 32306 swiper.updateProgress(newTranslate); 32307 32308 if (params.cssMode) { 32309 const isH = swiper.isHorizontal(); 32310 32311 if (speed === 0) { 32312 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; 32313 } else { 32314 if (!swiper.support.smoothScroll) { 32315 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.animateCSSModeScroll)({ 32316 swiper, 32317 targetPosition: -newTranslate, 32318 side: isH ? 'left' : 'top' 32319 }); 32320 return true; 32321 } 32322 32323 wrapperEl.scrollTo({ 32324 [isH ? 'left' : 'top']: -newTranslate, 32325 behavior: 'smooth' 32326 }); 32327 } 32328 32329 return true; 32330 } 32331 32332 if (speed === 0) { 32333 swiper.setTransition(0); 32334 swiper.setTranslate(newTranslate); 32335 32336 if (runCallbacks) { 32337 swiper.emit('beforeTransitionStart', speed, internal); 32338 swiper.emit('transitionEnd'); 32339 } 32340 } else { 32341 swiper.setTransition(speed); 32342 swiper.setTranslate(newTranslate); 32343 32344 if (runCallbacks) { 32345 swiper.emit('beforeTransitionStart', speed, internal); 32346 swiper.emit('transitionStart'); 32347 } 32348 32349 if (!swiper.animating) { 32350 swiper.animating = true; 32351 32352 if (!swiper.onTranslateToWrapperTransitionEnd) { 32353 swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) { 32354 if (!swiper || swiper.destroyed) return; 32355 if (e.target !== this) return; 32356 swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 32357 swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd); 32358 swiper.onTranslateToWrapperTransitionEnd = null; 32359 delete swiper.onTranslateToWrapperTransitionEnd; 32360 32361 if (runCallbacks) { 32362 swiper.emit('transitionEnd'); 32363 } 32364 }; 32365 } 32366 32367 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 32368 swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd); 32369 } 32370 } 32371 32372 return true; 32373} 32374 32375/***/ }), 32376
vendor: 2,858 bytes, lines 32377-32416
32377/***/ "./node_modules/swiper/core/update/index.js": 32378/*!**************************************************!*\ 32379 !*** ./node_modules/swiper/core/update/index.js ***! 32380 \**************************************************/ 32381/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32382 32383"use strict"; 32384__webpack_require__.r(__webpack_exports__); 32385/* harmony import */ var _updateSize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./updateSize.js */ "./node_modules/swiper/core/update/updateSize.js"); 32386/* harmony import */ var _updateSlides_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./updateSlides.js */ "./node_modules/swiper/core/update/updateSlides.js"); 32387/* harmony import */ var _updateAutoHeight_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./updateAutoHeight.js */ "./node_modules/swiper/core/update/updateAutoHeight.js"); 32388/* harmony import */ var _updateSlidesOffset_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./updateSlidesOffset.js */ "./node_modules/swiper/core/update/updateSlidesOffset.js"); 32389/* harmony import */ var _updateSlidesProgress_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./updateSlidesProgress.js */ "./node_modules/swiper/core/update/updateSlidesProgress.js"); 32390/* harmony import */ var _updateProgress_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./updateProgress.js */ "./node_modules/swiper/core/update/updateProgress.js"); 32391/* harmony import */ var _updateSlidesClasses_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./updateSlidesClasses.js */ "./node_modules/swiper/core/update/updateSlidesClasses.js"); 32392/* harmony import */ var _updateActiveIndex_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./updateActiveIndex.js */ "./node_modules/swiper/core/update/updateActiveIndex.js"); 32393/* harmony import */ var _updateClickedSlide_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./updateClickedSlide.js */ "./node_modules/swiper/core/update/updateClickedSlide.js"); 32394 32395 32396 32397 32398 32399 32400 32401 32402 32403/* harmony default export */ __webpack_exports__["default"] = ({ 32404 updateSize: _updateSize_js__WEBPACK_IMPORTED_MODULE_0__["default"], 32405 updateSlides: _updateSlides_js__WEBPACK_IMPORTED_MODULE_1__["default"], 32406 updateAutoHeight: _updateAutoHeight_js__WEBPACK_IMPORTED_MODULE_2__["default"], 32407 updateSlidesOffset: _updateSlidesOffset_js__WEBPACK_IMPORTED_MODULE_3__["default"], 32408 updateSlidesProgress: _updateSlidesProgress_js__WEBPACK_IMPORTED_MODULE_4__["default"], 32409 updateProgress: _updateProgress_js__WEBPACK_IMPORTED_MODULE_5__["default"], 32410 updateSlidesClasses: _updateSlidesClasses_js__WEBPACK_IMPORTED_MODULE_6__["default"], 32411 updateActiveIndex: _updateActiveIndex_js__WEBPACK_IMPORTED_MODULE_7__["default"], 32412 updateClickedSlide: _updateClickedSlide_js__WEBPACK_IMPORTED_MODULE_8__["default"] 32413}); 32414 32415/***/ }), 32416
vendor: 2,627 bytes, lines 32417-32500
32417/***/ "./node_modules/swiper/core/update/updateActiveIndex.js": 32418/*!**************************************************************!*\ 32419 !*** ./node_modules/swiper/core/update/updateActiveIndex.js ***! 32420 \**************************************************************/ 32421/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32422 32423"use strict"; 32424__webpack_require__.r(__webpack_exports__); 32425/* harmony export */ __webpack_require__.d(__webpack_exports__, { 32426/* harmony export */ "default": function() { return /* binding */ updateActiveIndex; } 32427/* harmony export */ }); 32428function updateActiveIndex(newActiveIndex) { 32429 const swiper = this; 32430 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 32431 const { 32432 slidesGrid, 32433 snapGrid, 32434 params, 32435 activeIndex: previousIndex, 32436 realIndex: previousRealIndex, 32437 snapIndex: previousSnapIndex 32438 } = swiper; 32439 let activeIndex = newActiveIndex; 32440 let snapIndex; 32441 32442 if (typeof activeIndex === 'undefined') { 32443 for (let i = 0; i < slidesGrid.length; i += 1) { 32444 if (typeof slidesGrid[i + 1] !== 'undefined') { 32445 if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) { 32446 activeIndex = i; 32447 } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { 32448 activeIndex = i + 1; 32449 } 32450 } else if (translate >= slidesGrid[i]) { 32451 activeIndex = i; 32452 } 32453 } // Normalize slideIndex 32454 32455 32456 if (params.normalizeSlideIndex) { 32457 if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; 32458 } 32459 } 32460 32461 if (snapGrid.indexOf(translate) >= 0) { 32462 snapIndex = snapGrid.indexOf(translate); 32463 } else { 32464 const skip = Math.min(params.slidesPerGroupSkip, activeIndex); 32465 snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup); 32466 } 32467 32468 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 32469 32470 if (activeIndex === previousIndex) { 32471 if (snapIndex !== previousSnapIndex) { 32472 swiper.snapIndex = snapIndex; 32473 swiper.emit('snapIndexChange'); 32474 } 32475 32476 return; 32477 } // Get real index 32478 32479 32480 const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10); 32481 Object.assign(swiper, { 32482 snapIndex, 32483 realIndex, 32484 previousIndex, 32485 activeIndex 32486 }); 32487 swiper.emit('activeIndexChange'); 32488 swiper.emit('snapIndexChange'); 32489 32490 if (previousRealIndex !== realIndex) { 32491 swiper.emit('realIndexChange'); 32492 } 32493 32494 if (swiper.initialized || swiper.params.runCallbacksOnInit) { 32495 swiper.emit('slideChange'); 32496 } 32497} 32498 32499/***/ }), 32500
vendor: 2,348 bytes, lines 32501-32565
32501/***/ "./node_modules/swiper/core/update/updateAutoHeight.js": 32502/*!*************************************************************!*\ 32503 !*** ./node_modules/swiper/core/update/updateAutoHeight.js ***! 32504 \*************************************************************/ 32505/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32506 32507"use strict"; 32508__webpack_require__.r(__webpack_exports__); 32509/* harmony export */ __webpack_require__.d(__webpack_exports__, { 32510/* harmony export */ "default": function() { return /* binding */ updateAutoHeight; } 32511/* harmony export */ }); 32512/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 32513 32514function updateAutoHeight(speed) { 32515 const swiper = this; 32516 const activeSlides = []; 32517 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 32518 let newHeight = 0; 32519 let i; 32520 32521 if (typeof speed === 'number') { 32522 swiper.setTransition(speed); 32523 } else if (speed === true) { 32524 swiper.setTransition(swiper.params.speed); 32525 } 32526 32527 const getSlideByIndex = index => { 32528 if (isVirtual) { 32529 return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0]; 32530 } 32531 32532 return swiper.slides.eq(index)[0]; 32533 }; // Find slides currently in view 32534 32535 32536 if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { 32537 if (swiper.params.centeredSlides) { 32538 (swiper.visibleSlides || (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])([])).each(slide => { 32539 activeSlides.push(slide); 32540 }); 32541 } else { 32542 for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { 32543 const index = swiper.activeIndex + i; 32544 if (index > swiper.slides.length && !isVirtual) break; 32545 activeSlides.push(getSlideByIndex(index)); 32546 } 32547 } 32548 } else { 32549 activeSlides.push(getSlideByIndex(swiper.activeIndex)); 32550 } // Find new height from highest slide in view 32551 32552 32553 for (i = 0; i < activeSlides.length; i += 1) { 32554 if (typeof activeSlides[i] !== 'undefined') { 32555 const height = activeSlides[i].offsetHeight; 32556 newHeight = height > newHeight ? height : newHeight; 32557 } 32558 } // Update Height 32559 32560 32561 if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`); 32562} 32563 32564/***/ }), 32565
vendor: 1,806 bytes, lines 32566-32616
32566/***/ "./node_modules/swiper/core/update/updateClickedSlide.js": 32567/*!***************************************************************!*\ 32568 !*** ./node_modules/swiper/core/update/updateClickedSlide.js ***! 32569 \***************************************************************/ 32570/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32571 32572"use strict"; 32573__webpack_require__.r(__webpack_exports__); 32574/* harmony export */ __webpack_require__.d(__webpack_exports__, { 32575/* harmony export */ "default": function() { return /* binding */ updateClickedSlide; } 32576/* harmony export */ }); 32577/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 32578 32579function updateClickedSlide(e) { 32580 const swiper = this; 32581 const params = swiper.params; 32582 const slide = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(e).closest(`.${params.slideClass}`)[0]; 32583 let slideFound = false; 32584 let slideIndex; 32585 32586 if (slide) { 32587 for (let i = 0; i < swiper.slides.length; i += 1) { 32588 if (swiper.slides[i] === slide) { 32589 slideFound = true; 32590 slideIndex = i; 32591 break; 32592 } 32593 } 32594 } 32595 32596 if (slide && slideFound) { 32597 swiper.clickedSlide = slide; 32598 32599 if (swiper.virtual && swiper.params.virtual.enabled) { 32600 swiper.clickedIndex = parseInt((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(slide).attr('data-swiper-slide-index'), 10); 32601 } else { 32602 swiper.clickedIndex = slideIndex; 32603 } 32604 } else { 32605 swiper.clickedSlide = undefined; 32606 swiper.clickedIndex = undefined; 32607 return; 32608 } 32609 32610 if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { 32611 swiper.slideToClickedSlide(); 32612 } 32613} 32614 32615/***/ }), 32616
vendor: 1,812 bytes, lines 32617-32680
32617/***/ "./node_modules/swiper/core/update/updateProgress.js": 32618/*!***********************************************************!*\ 32619 !*** ./node_modules/swiper/core/update/updateProgress.js ***! 32620 \***********************************************************/ 32621/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32622 32623"use strict"; 32624__webpack_require__.r(__webpack_exports__); 32625/* harmony export */ __webpack_require__.d(__webpack_exports__, { 32626/* harmony export */ "default": function() { return /* binding */ updateProgress; } 32627/* harmony export */ }); 32628function updateProgress(translate) { 32629 const swiper = this; 32630 32631 if (typeof translate === 'undefined') { 32632 const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line 32633 32634 translate = swiper && swiper.translate && swiper.translate * multiplier || 0; 32635 } 32636 32637 const params = swiper.params; 32638 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 32639 let { 32640 progress, 32641 isBeginning, 32642 isEnd 32643 } = swiper; 32644 const wasBeginning = isBeginning; 32645 const wasEnd = isEnd; 32646 32647 if (translatesDiff === 0) { 32648 progress = 0; 32649 isBeginning = true; 32650 isEnd = true; 32651 } else { 32652 progress = (translate - swiper.minTranslate()) / translatesDiff; 32653 isBeginning = progress <= 0; 32654 isEnd = progress >= 1; 32655 } 32656 32657 Object.assign(swiper, { 32658 progress, 32659 isBeginning, 32660 isEnd 32661 }); 32662 if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate); 32663 32664 if (isBeginning && !wasBeginning) { 32665 swiper.emit('reachBeginning toEdge'); 32666 } 32667 32668 if (isEnd && !wasEnd) { 32669 swiper.emit('reachEnd toEdge'); 32670 } 32671 32672 if (wasBeginning && !isBeginning || wasEnd && !isEnd) { 32673 swiper.emit('fromEdge'); 32674 } 32675 32676 swiper.emit('progress', progress); 32677} 32678 32679/***/ }), 32680
vendor: 1,543 bytes, lines 32681-32727
32681/***/ "./node_modules/swiper/core/update/updateSize.js": 32682/*!*******************************************************!*\ 32683 !*** ./node_modules/swiper/core/update/updateSize.js ***! 32684 \*******************************************************/ 32685/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32686 32687"use strict"; 32688__webpack_require__.r(__webpack_exports__); 32689/* harmony export */ __webpack_require__.d(__webpack_exports__, { 32690/* harmony export */ "default": function() { return /* binding */ updateSize; } 32691/* harmony export */ }); 32692function updateSize() { 32693 const swiper = this; 32694 let width; 32695 let height; 32696 const $el = swiper.$el; 32697 32698 if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) { 32699 width = swiper.params.width; 32700 } else { 32701 width = $el[0].clientWidth; 32702 } 32703 32704 if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) { 32705 height = swiper.params.height; 32706 } else { 32707 height = $el[0].clientHeight; 32708 } 32709 32710 if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) { 32711 return; 32712 } // Subtract paddings 32713 32714 32715 width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10); 32716 height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10); 32717 if (Number.isNaN(width)) width = 0; 32718 if (Number.isNaN(height)) height = 0; 32719 Object.assign(swiper, { 32720 width, 32721 height, 32722 size: swiper.isHorizontal() ? width : height 32723 }); 32724} 32725 32726/***/ }), 32727
vendor: 11,399 bytes, lines 32728-33062
32728/***/ "./node_modules/swiper/core/update/updateSlides.js": 32729/*!*********************************************************!*\ 32730 !*** ./node_modules/swiper/core/update/updateSlides.js ***! 32731 \*********************************************************/ 32732/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 32733 32734"use strict"; 32735__webpack_require__.r(__webpack_exports__); 32736/* harmony export */ __webpack_require__.d(__webpack_exports__, { 32737/* harmony export */ "default": function() { return /* binding */ updateSlides; } 32738/* harmony export */ }); 32739/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 32740 32741function updateSlides() { 32742 const swiper = this; 32743 32744 function getDirectionLabel(property) { 32745 if (swiper.isHorizontal()) { 32746 return property; 32747 } // prettier-ignore 32748 32749 32750 return { 32751 'width': 'height', 32752 'margin-top': 'margin-left', 32753 'margin-bottom ': 'margin-right', 32754 'margin-left': 'margin-top', 32755 'margin-right': 'margin-bottom', 32756 'padding-left': 'padding-top', 32757 'padding-right': 'padding-bottom', 32758 'marginRight': 'marginBottom' 32759 }[property]; 32760 } 32761 32762 function getDirectionPropertyValue(node, label) { 32763 return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0); 32764 } 32765 32766 const params = swiper.params; 32767 const { 32768 $wrapperEl, 32769 size: swiperSize, 32770 rtlTranslate: rtl, 32771 wrongRTL 32772 } = swiper; 32773 const isVirtual = swiper.virtual && params.virtual.enabled; 32774 const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; 32775 const slides = $wrapperEl.children(`.${swiper.params.slideClass}`); 32776 const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; 32777 let snapGrid = []; 32778 const slidesGrid = []; 32779 const slidesSizesGrid = []; 32780 let offsetBefore = params.slidesOffsetBefore; 32781 32782 if (typeof offsetBefore === 'function') { 32783 offsetBefore = params.slidesOffsetBefore.call(swiper); 32784 } 32785 32786 let offsetAfter = params.slidesOffsetAfter; 32787 32788 if (typeof offsetAfter === 'function') { 32789 offsetAfter = params.slidesOffsetAfter.call(swiper); 32790 } 32791 32792 const previousSnapGridLength = swiper.snapGrid.length; 32793 const previousSlidesGridLength = swiper.slidesGrid.length; 32794 let spaceBetween = params.spaceBetween; 32795 let slidePosition = -offsetBefore; 32796 let prevSlideSize = 0; 32797 let index = 0; 32798 32799 if (typeof swiperSize === 'undefined') { 32800 return; 32801 } 32802 32803 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 32804 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize; 32805 } 32806 32807 swiper.virtualSize = -spaceBetween; // reset margins 32808 32809 if (rtl) slides.css({ 32810 marginLeft: '', 32811 marginBottom: '', 32812 marginTop: '' 32813 });else slides.css({ 32814 marginRight: '', 32815 marginBottom: '', 32816 marginTop: '' 32817 }); // reset cssMode offsets 32818 32819 if (params.centeredSlides && params.cssMode) { 32820 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-before', ''); 32821 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-after', ''); 32822 } 32823 32824 const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid; 32825 32826 if (gridEnabled) { 32827 swiper.grid.initSlides(slidesLength); 32828 } // Calc slides 32829 32830 32831 let slideSize; 32832 const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => { 32833 return typeof params.breakpoints[key].slidesPerView !== 'undefined'; 32834 }).length > 0; 32835 32836 for (let i = 0; i < slidesLength; i += 1) { 32837 slideSize = 0; 32838 const slide = slides.eq(i); 32839 32840 if (gridEnabled) { 32841 swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel); 32842 } 32843 32844 if (slide.css('display') === 'none') continue; // eslint-disable-line 32845 32846 if (params.slidesPerView === 'auto') { 32847 if (shouldResetSlideSize) { 32848 slides[i].style[getDirectionLabel('width')] = ``; 32849 } 32850 32851 const slideStyles = getComputedStyle(slide[0]); 32852 const currentTransform = slide[0].style.transform; 32853 const currentWebKitTransform = slide[0].style.webkitTransform; 32854 32855 if (currentTransform) { 32856 slide[0].style.transform = 'none'; 32857 } 32858 32859 if (currentWebKitTransform) { 32860 slide[0].style.webkitTransform = 'none'; 32861 } 32862 32863 if (params.roundLengths) { 32864 slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true); 32865 } else { 32866 // eslint-disable-next-line 32867 const width = getDirectionPropertyValue(slideStyles, 'width'); 32868 const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left'); 32869 const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right'); 32870 const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left'); 32871 const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right'); 32872 const boxSizing = slideStyles.getPropertyValue('box-sizing'); 32873 32874 if (boxSizing && boxSizing === 'border-box') { 32875 slideSize = width + marginLeft + marginRight; 32876 } else { 32877 const { 32878 clientWidth, 32879 offsetWidth 32880 } = slide[0]; 32881 slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth); 32882 } 32883 } 32884 32885 if (currentTransform) { 32886 slide[0].style.transform = currentTransform; 32887 } 32888 32889 if (currentWebKitTransform) { 32890 slide[0].style.webkitTransform = currentWebKitTransform; 32891 } 32892 32893 if (params.roundLengths) slideSize = Math.floor(slideSize); 32894 } else { 32895 slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView; 32896 if (params.roundLengths) slideSize = Math.floor(slideSize); 32897 32898 if (slides[i]) { 32899 slides[i].style[getDirectionLabel('width')] = `${slideSize}px`; 32900 } 32901 } 32902 32903 if (slides[i]) { 32904 slides[i].swiperSlideSize = slideSize; 32905 } 32906 32907 slidesSizesGrid.push(slideSize); 32908 32909 if (params.centeredSlides) { 32910 slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween; 32911 if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 32912 if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 32913 if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; 32914 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 32915 if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition); 32916 slidesGrid.push(slidePosition); 32917 } else { 32918 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 32919 if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition); 32920 slidesGrid.push(slidePosition); 32921 slidePosition = slidePosition + slideSize + spaceBetween; 32922 } 32923 32924 swiper.virtualSize += slideSize + spaceBetween; 32925 prevSlideSize = slideSize; 32926 index += 1; 32927 } 32928 32929 swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; 32930 32931 if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { 32932 $wrapperEl.css({ 32933 width: `${swiper.virtualSize + params.spaceBetween}px` 32934 }); 32935 } 32936 32937 if (params.setWrapperSize) { 32938 $wrapperEl.css({ 32939 [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px` 32940 }); 32941 } 32942 32943 if (gridEnabled) { 32944 swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel); 32945 } // Remove last grid elements depending on width 32946 32947 32948 if (!params.centeredSlides) { 32949 const newSlidesGrid = []; 32950 32951 for (let i = 0; i < snapGrid.length; i += 1) { 32952 let slidesGridItem = snapGrid[i]; 32953 if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem); 32954 32955 if (snapGrid[i] <= swiper.virtualSize - swiperSize) { 32956 newSlidesGrid.push(slidesGridItem); 32957 } 32958 } 32959 32960 snapGrid = newSlidesGrid; 32961 32962 if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { 32963 snapGrid.push(swiper.virtualSize - swiperSize); 32964 } 32965 } 32966 32967 if (snapGrid.length === 0) snapGrid = [0]; 32968 32969 if (params.spaceBetween !== 0) { 32970 const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight'); 32971 slides.filter((_, slideIndex) => { 32972 if (!params.cssMode) return true; 32973 32974 if (slideIndex === slides.length - 1) { 32975 return false; 32976 } 32977 32978 return true; 32979 }).css({ 32980 [key]: `${spaceBetween}px` 32981 }); 32982 } 32983 32984 if (params.centeredSlides && params.centeredSlidesBounds) { 32985 let allSlidesSize = 0; 32986 slidesSizesGrid.forEach(slideSizeValue => { 32987 allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0); 32988 }); 32989 allSlidesSize -= params.spaceBetween; 32990 const maxSnap = allSlidesSize - swiperSize; 32991 snapGrid = snapGrid.map(snap => { 32992 if (snap < 0) return -offsetBefore; 32993 if (snap > maxSnap) return maxSnap + offsetAfter; 32994 return snap; 32995 }); 32996 } 32997 32998 if (params.centerInsufficientSlides) { 32999 let allSlidesSize = 0; 33000 slidesSizesGrid.forEach(slideSizeValue => { 33001 allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0); 33002 }); 33003 allSlidesSize -= params.spaceBetween; 33004 33005 if (allSlidesSize < swiperSize) { 33006 const allSlidesOffset = (swiperSize - allSlidesSize) / 2; 33007 snapGrid.forEach((snap, snapIndex) => { 33008 snapGrid[snapIndex] = snap - allSlidesOffset; 33009 }); 33010 slidesGrid.forEach((snap, snapIndex) => { 33011 slidesGrid[snapIndex] = snap + allSlidesOffset; 33012 }); 33013 } 33014 } 33015 33016 Object.assign(swiper, { 33017 slides, 33018 snapGrid, 33019 slidesGrid, 33020 slidesSizesGrid 33021 }); 33022 33023 if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) { 33024 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`); 33025 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`); 33026 const addToSnapGrid = -swiper.snapGrid[0]; 33027 const addToSlidesGrid = -swiper.slidesGrid[0]; 33028 swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid); 33029 swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid); 33030 } 33031 33032 if (slidesLength !== previousSlidesLength) { 33033 swiper.emit('slidesLengthChange'); 33034 } 33035 33036 if (snapGrid.length !== previousSnapGridLength) { 33037 if (swiper.params.watchOverflow) swiper.checkOverflow(); 33038 swiper.emit('snapGridLengthChange'); 33039 } 33040 33041 if (slidesGrid.length !== previousSlidesGridLength) { 33042 swiper.emit('slidesGridLengthChange'); 33043 } 33044 33045 if (params.watchSlidesProgress) { 33046 swiper.updateSlidesOffset(); 33047 } 33048 33049 if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) { 33050 const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`; 33051 const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass); 33052 33053 if (slidesLength <= params.maxBackfaceHiddenSlides) { 33054 if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass); 33055 } else if (hasClassBackfaceClassAdded) { 33056 swiper.$el.removeClass(backFaceHiddenClass); 33057 } 33058 } 33059} 33060 33061/***/ }), 33062
vendor: 3,336 bytes, lines 33063-33140
33063/***/ "./node_modules/swiper/core/update/updateSlidesClasses.js": 33064/*!****************************************************************!*\ 33065 !*** ./node_modules/swiper/core/update/updateSlidesClasses.js ***! 33066 \****************************************************************/ 33067/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 33068 33069"use strict"; 33070__webpack_require__.r(__webpack_exports__); 33071/* harmony export */ __webpack_require__.d(__webpack_exports__, { 33072/* harmony export */ "default": function() { return /* binding */ updateSlidesClasses; } 33073/* harmony export */ }); 33074function updateSlidesClasses() { 33075 const swiper = this; 33076 const { 33077 slides, 33078 params, 33079 $wrapperEl, 33080 activeIndex, 33081 realIndex 33082 } = swiper; 33083 const isVirtual = swiper.virtual && params.virtual.enabled; 33084 slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`); 33085 let activeSlide; 33086 33087 if (isVirtual) { 33088 activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index="${activeIndex}"]`); 33089 } else { 33090 activeSlide = slides.eq(activeIndex); 33091 } // Active classes 33092 33093 33094 activeSlide.addClass(params.slideActiveClass); 33095 33096 if (params.loop) { 33097 // Duplicate to all looped slides 33098 if (activeSlide.hasClass(params.slideDuplicateClass)) { 33099 $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${realIndex}"]`).addClass(params.slideDuplicateActiveClass); 33100 } else { 33101 $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${realIndex}"]`).addClass(params.slideDuplicateActiveClass); 33102 } 33103 } // Next Slide 33104 33105 33106 let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass); 33107 33108 if (params.loop && nextSlide.length === 0) { 33109 nextSlide = slides.eq(0); 33110 nextSlide.addClass(params.slideNextClass); 33111 } // Prev Slide 33112 33113 33114 let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass); 33115 33116 if (params.loop && prevSlide.length === 0) { 33117 prevSlide = slides.eq(-1); 33118 prevSlide.addClass(params.slidePrevClass); 33119 } 33120 33121 if (params.loop) { 33122 // Duplicate to all looped slides 33123 if (nextSlide.hasClass(params.slideDuplicateClass)) { 33124 $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${nextSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicateNextClass); 33125 } else { 33126 $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${nextSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicateNextClass); 33127 } 33128 33129 if (prevSlide.hasClass(params.slideDuplicateClass)) { 33130 $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${prevSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicatePrevClass); 33131 } else { 33132 $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${prevSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicatePrevClass); 33133 } 33134 } 33135 33136 swiper.emitSlidesClasses(); 33137} 33138 33139/***/ }), 33140
vendor: 863 bytes, lines 33141-33162
33141/***/ "./node_modules/swiper/core/update/updateSlidesOffset.js": 33142/*!***************************************************************!*\ 33143 !*** ./node_modules/swiper/core/update/updateSlidesOffset.js ***! 33144 \***************************************************************/ 33145/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 33146 33147"use strict"; 33148__webpack_require__.r(__webpack_exports__); 33149/* harmony export */ __webpack_require__.d(__webpack_exports__, { 33150/* harmony export */ "default": function() { return /* binding */ updateSlidesOffset; } 33151/* harmony export */ }); 33152function updateSlidesOffset() { 33153 const swiper = this; 33154 const slides = swiper.slides; 33155 33156 for (let i = 0; i < slides.length; i += 1) { 33157 slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop; 33158 } 33159} 33160 33161/***/ }), 33162
vendor: 2,645 bytes, lines 33163-33225
33163/***/ "./node_modules/swiper/core/update/updateSlidesProgress.js": 33164/*!*****************************************************************!*\ 33165 !*** ./node_modules/swiper/core/update/updateSlidesProgress.js ***! 33166 \*****************************************************************/ 33167/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 33168 33169"use strict"; 33170__webpack_require__.r(__webpack_exports__); 33171/* harmony export */ __webpack_require__.d(__webpack_exports__, { 33172/* harmony export */ "default": function() { return /* binding */ updateSlidesProgress; } 33173/* harmony export */ }); 33174/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 33175 33176function updateSlidesProgress(translate) { 33177 if (translate === void 0) { 33178 translate = this && this.translate || 0; 33179 } 33180 33181 const swiper = this; 33182 const params = swiper.params; 33183 const { 33184 slides, 33185 rtlTranslate: rtl, 33186 snapGrid 33187 } = swiper; 33188 if (slides.length === 0) return; 33189 if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); 33190 let offsetCenter = -translate; 33191 if (rtl) offsetCenter = translate; // Visible Slides 33192 33193 slides.removeClass(params.slideVisibleClass); 33194 swiper.visibleSlidesIndexes = []; 33195 swiper.visibleSlides = []; 33196 33197 for (let i = 0; i < slides.length; i += 1) { 33198 const slide = slides[i]; 33199 let slideOffset = slide.swiperSlideOffset; 33200 33201 if (params.cssMode && params.centeredSlides) { 33202 slideOffset -= slides[0].swiperSlideOffset; 33203 } 33204 33205 const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween); 33206 const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween); 33207 const slideBefore = -(offsetCenter - slideOffset); 33208 const slideAfter = slideBefore + swiper.slidesSizesGrid[i]; 33209 const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size; 33210 33211 if (isVisible) { 33212 swiper.visibleSlides.push(slide); 33213 swiper.visibleSlidesIndexes.push(i); 33214 slides.eq(i).addClass(params.slideVisibleClass); 33215 } 33216 33217 slide.progress = rtl ? -slideProgress : slideProgress; 33218 slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress; 33219 } 33220 33221 swiper.visibleSlides = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.visibleSlides); 33222} 33223 33224/***/ }), 33225
vendor: 10,019 bytes, lines 33226-33551
33226/***/ "./node_modules/swiper/modules/a11y/a11y.js": 33227/*!**************************************************!*\ 33228 !*** ./node_modules/swiper/modules/a11y/a11y.js ***! 33229 \**************************************************/ 33230/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 33231 33232"use strict"; 33233__webpack_require__.r(__webpack_exports__); 33234/* harmony export */ __webpack_require__.d(__webpack_exports__, { 33235/* harmony export */ "default": function() { return /* binding */ A11y; } 33236/* harmony export */ }); 33237/* harmony import */ var _shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/classes-to-selector.js */ "./node_modules/swiper/shared/classes-to-selector.js"); 33238/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 33239 33240 33241function A11y(_ref) { 33242 let { 33243 swiper, 33244 extendParams, 33245 on 33246 } = _ref; 33247 extendParams({ 33248 a11y: { 33249 enabled: true, 33250 notificationClass: 'swiper-notification', 33251 prevSlideMessage: 'Previous slide', 33252 nextSlideMessage: 'Next slide', 33253 firstSlideMessage: 'This is the first slide', 33254 lastSlideMessage: 'This is the last slide', 33255 paginationBulletMessage: 'Go to slide {{index}}', 33256 slideLabelMessage: '{{index}} / {{slidesLength}}', 33257 containerMessage: null, 33258 containerRoleDescriptionMessage: null, 33259 itemRoleDescriptionMessage: null, 33260 slideRole: 'group', 33261 id: null 33262 } 33263 }); 33264 let liveRegion = null; 33265 33266 function notify(message) { 33267 const notification = liveRegion; 33268 if (notification.length === 0) return; 33269 notification.html(''); 33270 notification.html(message); 33271 } 33272 33273 function getRandomNumber(size) { 33274 if (size === void 0) { 33275 size = 16; 33276 } 33277 33278 const randomChar = () => Math.round(16 * Math.random()).toString(16); 33279 33280 return 'x'.repeat(size).replace(/x/g, randomChar); 33281 } 33282 33283 function makeElFocusable($el) { 33284 $el.attr('tabIndex', '0'); 33285 } 33286 33287 function makeElNotFocusable($el) { 33288 $el.attr('tabIndex', '-1'); 33289 } 33290 33291 function addElRole($el, role) { 33292 $el.attr('role', role); 33293 } 33294 33295 function addElRoleDescription($el, description) { 33296 $el.attr('aria-roledescription', description); 33297 } 33298 33299 function addElControls($el, controls) { 33300 $el.attr('aria-controls', controls); 33301 } 33302 33303 function addElLabel($el, label) { 33304 $el.attr('aria-label', label); 33305 } 33306 33307 function addElId($el, id) { 33308 $el.attr('id', id); 33309 } 33310 33311 function addElLive($el, live) { 33312 $el.attr('aria-live', live); 33313 } 33314 33315 function disableEl($el) { 33316 $el.attr('aria-disabled', true); 33317 } 33318 33319 function enableEl($el) { 33320 $el.attr('aria-disabled', false); 33321 } 33322 33323 function onEnterOrSpaceKey(e) { 33324 if (e.keyCode !== 13 && e.keyCode !== 32) return; 33325 const params = swiper.params.a11y; 33326 const $targetEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target); 33327 33328 if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) { 33329 if (!(swiper.isEnd && !swiper.params.loop)) { 33330 swiper.slideNext(); 33331 } 33332 33333 if (swiper.isEnd) { 33334 notify(params.lastSlideMessage); 33335 } else { 33336 notify(params.nextSlideMessage); 33337 } 33338 } 33339 33340 if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) { 33341 if (!(swiper.isBeginning && !swiper.params.loop)) { 33342 swiper.slidePrev(); 33343 } 33344 33345 if (swiper.isBeginning) { 33346 notify(params.firstSlideMessage); 33347 } else { 33348 notify(params.prevSlideMessage); 33349 } 33350 } 33351 33352 if (swiper.pagination && $targetEl.is((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass))) { 33353 $targetEl[0].click(); 33354 } 33355 } 33356 33357 function updateNavigation() { 33358 if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return; 33359 const { 33360 $nextEl, 33361 $prevEl 33362 } = swiper.navigation; 33363 33364 if ($prevEl && $prevEl.length > 0) { 33365 if (swiper.isBeginning) { 33366 disableEl($prevEl); 33367 makeElNotFocusable($prevEl); 33368 } else { 33369 enableEl($prevEl); 33370 makeElFocusable($prevEl); 33371 } 33372 } 33373 33374 if ($nextEl && $nextEl.length > 0) { 33375 if (swiper.isEnd) { 33376 disableEl($nextEl); 33377 makeElNotFocusable($nextEl); 33378 } else { 33379 enableEl($nextEl); 33380 makeElFocusable($nextEl); 33381 } 33382 } 33383 } 33384 33385 function hasPagination() { 33386 return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length; 33387 } 33388 33389 function hasClickablePagination() { 33390 return hasPagination() && swiper.params.pagination.clickable; 33391 } 33392 33393 function updatePagination() { 33394 const params = swiper.params.a11y; 33395 if (!hasPagination()) return; 33396 swiper.pagination.bullets.each(bulletEl => { 33397 const $bulletEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(bulletEl); 33398 33399 if (swiper.params.pagination.clickable) { 33400 makeElFocusable($bulletEl); 33401 33402 if (!swiper.params.pagination.renderBullet) { 33403 addElRole($bulletEl, 'button'); 33404 addElLabel($bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, $bulletEl.index() + 1)); 33405 } 33406 } 33407 33408 if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) { 33409 $bulletEl.attr('aria-current', 'true'); 33410 } else { 33411 $bulletEl.removeAttr('aria-current'); 33412 } 33413 }); 33414 } 33415 33416 const initNavEl = ($el, wrapperId, message) => { 33417 makeElFocusable($el); 33418 33419 if ($el[0].tagName !== 'BUTTON') { 33420 addElRole($el, 'button'); 33421 $el.on('keydown', onEnterOrSpaceKey); 33422 } 33423 33424 addElLabel($el, message); 33425 addElControls($el, wrapperId); 33426 }; 33427 33428 const handleFocus = e => { 33429 const slideEl = e.target.closest(`.${swiper.params.slideClass}`); 33430 if (!slideEl || !swiper.slides.includes(slideEl)) return; 33431 const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex; 33432 const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl); 33433 if (isActive || isVisible) return; 33434 swiper.slideTo(swiper.slides.indexOf(slideEl), 0); 33435 }; 33436 33437 function init() { 33438 const params = swiper.params.a11y; 33439 swiper.$el.append(liveRegion); // Container 33440 33441 const $containerEl = swiper.$el; 33442 33443 if (params.containerRoleDescriptionMessage) { 33444 addElRoleDescription($containerEl, params.containerRoleDescriptionMessage); 33445 } 33446 33447 if (params.containerMessage) { 33448 addElLabel($containerEl, params.containerMessage); 33449 } // Wrapper 33450 33451 33452 const $wrapperEl = swiper.$wrapperEl; 33453 const wrapperId = params.id || $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`; 33454 const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite'; 33455 addElId($wrapperEl, wrapperId); 33456 addElLive($wrapperEl, live); // Slide 33457 33458 if (params.itemRoleDescriptionMessage) { 33459 addElRoleDescription((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.slides), params.itemRoleDescriptionMessage); 33460 } 33461 33462 addElRole((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.slides), params.slideRole); 33463 const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length; 33464 swiper.slides.each((slideEl, index) => { 33465 const $slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl); 33466 const slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index; 33467 const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength); 33468 addElLabel($slideEl, ariaLabelMessage); 33469 }); // Navigation 33470 33471 let $nextEl; 33472 let $prevEl; 33473 33474 if (swiper.navigation && swiper.navigation.$nextEl) { 33475 $nextEl = swiper.navigation.$nextEl; 33476 } 33477 33478 if (swiper.navigation && swiper.navigation.$prevEl) { 33479 $prevEl = swiper.navigation.$prevEl; 33480 } 33481 33482 if ($nextEl && $nextEl.length) { 33483 initNavEl($nextEl, wrapperId, params.nextSlideMessage); 33484 } 33485 33486 if ($prevEl && $prevEl.length) { 33487 initNavEl($prevEl, wrapperId, params.prevSlideMessage); 33488 } // Pagination 33489 33490 33491 if (hasClickablePagination()) { 33492 swiper.pagination.$el.on('keydown', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass), onEnterOrSpaceKey); 33493 } // Tab focus 33494 33495 33496 swiper.$el.on('focus', handleFocus, true); 33497 } 33498 33499 function destroy() { 33500 if (liveRegion && liveRegion.length > 0) liveRegion.remove(); 33501 let $nextEl; 33502 let $prevEl; 33503 33504 if (swiper.navigation && swiper.navigation.$nextEl) { 33505 $nextEl = swiper.navigation.$nextEl; 33506 } 33507 33508 if (swiper.navigation && swiper.navigation.$prevEl) { 33509 $prevEl = swiper.navigation.$prevEl; 33510 } 33511 33512 if ($nextEl) { 33513 $nextEl.off('keydown', onEnterOrSpaceKey); 33514 } 33515 33516 if ($prevEl) { 33517 $prevEl.off('keydown', onEnterOrSpaceKey); 33518 } // Pagination 33519 33520 33521 if (hasClickablePagination()) { 33522 swiper.pagination.$el.off('keydown', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass), onEnterOrSpaceKey); 33523 } // Tab focus 33524 33525 33526 swiper.$el.off('focus', handleFocus, true); 33527 } 33528 33529 on('beforeInit', () => { 33530 liveRegion = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(`<span class="${swiper.params.a11y.notificationClass}" aria-live="assertive" aria-atomic="true"></span>`); 33531 }); 33532 on('afterInit', () => { 33533 if (!swiper.params.a11y.enabled) return; 33534 init(); 33535 }); 33536 on('fromEdge toEdge afterInit lock unlock', () => { 33537 if (!swiper.params.a11y.enabled) return; 33538 updateNavigation(); 33539 }); 33540 on('paginationUpdate', () => { 33541 if (!swiper.params.a11y.enabled) return; 33542 updatePagination(); 33543 }); 33544 on('destroy', () => { 33545 if (!swiper.params.a11y.enabled) return; 33546 destroy(); 33547 }); 33548} 33549 33550/***/ }), 33551
vendor: 6,880 bytes, lines 33552-33792
33552/***/ "./node_modules/swiper/modules/autoplay/autoplay.js": 33553/*!**********************************************************!*\ 33554 !*** ./node_modules/swiper/modules/autoplay/autoplay.js ***! 33555 \**********************************************************/ 33556/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 33557 33558"use strict"; 33559__webpack_require__.r(__webpack_exports__); 33560/* harmony export */ __webpack_require__.d(__webpack_exports__, { 33561/* harmony export */ "default": function() { return /* binding */ Autoplay; } 33562/* harmony export */ }); 33563/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 33564/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 33565/* eslint no-underscore-dangle: "off" */ 33566 33567/* eslint no-use-before-define: "off" */ 33568 33569 33570function Autoplay(_ref) { 33571 let { 33572 swiper, 33573 extendParams, 33574 on, 33575 emit 33576 } = _ref; 33577 let timeout; 33578 swiper.autoplay = { 33579 running: false, 33580 paused: false 33581 }; 33582 extendParams({ 33583 autoplay: { 33584 enabled: false, 33585 delay: 3000, 33586 waitForTransition: true, 33587 disableOnInteraction: true, 33588 stopOnLastSlide: false, 33589 reverseDirection: false, 33590 pauseOnMouseEnter: false 33591 } 33592 }); 33593 33594 function run() { 33595 const $activeSlideEl = swiper.slides.eq(swiper.activeIndex); 33596 let delay = swiper.params.autoplay.delay; 33597 33598 if ($activeSlideEl.attr('data-swiper-autoplay')) { 33599 delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay; 33600 } 33601 33602 clearTimeout(timeout); 33603 timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => { 33604 let autoplayResult; 33605 33606 if (swiper.params.autoplay.reverseDirection) { 33607 if (swiper.params.loop) { 33608 swiper.loopFix(); 33609 autoplayResult = swiper.slidePrev(swiper.params.speed, true, true); 33610 emit('autoplay'); 33611 } else if (!swiper.isBeginning) { 33612 autoplayResult = swiper.slidePrev(swiper.params.speed, true, true); 33613 emit('autoplay'); 33614 } else if (!swiper.params.autoplay.stopOnLastSlide) { 33615 autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true); 33616 emit('autoplay'); 33617 } else { 33618 stop(); 33619 } 33620 } else if (swiper.params.loop) { 33621 swiper.loopFix(); 33622 autoplayResult = swiper.slideNext(swiper.params.speed, true, true); 33623 emit('autoplay'); 33624 } else if (!swiper.isEnd) { 33625 autoplayResult = swiper.slideNext(swiper.params.speed, true, true); 33626 emit('autoplay'); 33627 } else if (!swiper.params.autoplay.stopOnLastSlide) { 33628 autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true); 33629 emit('autoplay'); 33630 } else { 33631 stop(); 33632 } 33633 33634 if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) { 33635 run(); 33636 } 33637 }, delay); 33638 } 33639 33640 function start() { 33641 if (typeof timeout !== 'undefined') return false; 33642 if (swiper.autoplay.running) return false; 33643 swiper.autoplay.running = true; 33644 emit('autoplayStart'); 33645 run(); 33646 return true; 33647 } 33648 33649 function stop() { 33650 if (!swiper.autoplay.running) return false; 33651 if (typeof timeout === 'undefined') return false; 33652 33653 if (timeout) { 33654 clearTimeout(timeout); 33655 timeout = undefined; 33656 } 33657 33658 swiper.autoplay.running = false; 33659 emit('autoplayStop'); 33660 return true; 33661 } 33662 33663 function pause(speed) { 33664 if (!swiper.autoplay.running) return; 33665 if (swiper.autoplay.paused) return; 33666 if (timeout) clearTimeout(timeout); 33667 swiper.autoplay.paused = true; 33668 33669 if (speed === 0 || !swiper.params.autoplay.waitForTransition) { 33670 swiper.autoplay.paused = false; 33671 run(); 33672 } else { 33673 ['transitionend', 'webkitTransitionEnd'].forEach(event => { 33674 swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd); 33675 }); 33676 } 33677 } 33678 33679 function onVisibilityChange() { 33680 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 33681 33682 if (document.visibilityState === 'hidden' && swiper.autoplay.running) { 33683 pause(); 33684 } 33685 33686 if (document.visibilityState === 'visible' && swiper.autoplay.paused) { 33687 run(); 33688 swiper.autoplay.paused = false; 33689 } 33690 } 33691 33692 function onTransitionEnd(e) { 33693 if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return; 33694 if (e.target !== swiper.$wrapperEl[0]) return; 33695 ['transitionend', 'webkitTransitionEnd'].forEach(event => { 33696 swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd); 33697 }); 33698 swiper.autoplay.paused = false; 33699 33700 if (!swiper.autoplay.running) { 33701 stop(); 33702 } else { 33703 run(); 33704 } 33705 } 33706 33707 function onMouseEnter() { 33708 if (swiper.params.autoplay.disableOnInteraction) { 33709 stop(); 33710 } else { 33711 emit('autoplayPause'); 33712 pause(); 33713 } 33714 33715 ['transitionend', 'webkitTransitionEnd'].forEach(event => { 33716 swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd); 33717 }); 33718 } 33719 33720 function onMouseLeave() { 33721 if (swiper.params.autoplay.disableOnInteraction) { 33722 return; 33723 } 33724 33725 swiper.autoplay.paused = false; 33726 emit('autoplayResume'); 33727 run(); 33728 } 33729 33730 function attachMouseEvents() { 33731 if (swiper.params.autoplay.pauseOnMouseEnter) { 33732 swiper.$el.on('mouseenter', onMouseEnter); 33733 swiper.$el.on('mouseleave', onMouseLeave); 33734 } 33735 } 33736 33737 function detachMouseEvents() { 33738 swiper.$el.off('mouseenter', onMouseEnter); 33739 swiper.$el.off('mouseleave', onMouseLeave); 33740 } 33741 33742 on('init', () => { 33743 if (swiper.params.autoplay.enabled) { 33744 start(); 33745 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 33746 document.addEventListener('visibilitychange', onVisibilityChange); 33747 attachMouseEvents(); 33748 } 33749 }); 33750 on('beforeTransitionStart', (_s, speed, internal) => { 33751 if (swiper.autoplay.running) { 33752 if (internal || !swiper.params.autoplay.disableOnInteraction) { 33753 swiper.autoplay.pause(speed); 33754 } else { 33755 stop(); 33756 } 33757 } 33758 }); 33759 on('sliderFirstMove', () => { 33760 if (swiper.autoplay.running) { 33761 if (swiper.params.autoplay.disableOnInteraction) { 33762 stop(); 33763 } else { 33764 pause(); 33765 } 33766 } 33767 }); 33768 on('touchEnd', () => { 33769 if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) { 33770 run(); 33771 } 33772 }); 33773 on('destroy', () => { 33774 detachMouseEvents(); 33775 33776 if (swiper.autoplay.running) { 33777 stop(); 33778 } 33779 33780 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 33781 document.removeEventListener('visibilitychange', onVisibilityChange); 33782 }); 33783 Object.assign(swiper.autoplay, { 33784 pause, 33785 run, 33786 start, 33787 stop 33788 }); 33789} 33790 33791/***/ }), 33792
vendor: 6,449 bytes, lines 33793-33999
33793/***/ "./node_modules/swiper/modules/controller/controller.js": 33794/*!**************************************************************!*\ 33795 !*** ./node_modules/swiper/modules/controller/controller.js ***! 33796 \**************************************************************/ 33797/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 33798 33799"use strict"; 33800__webpack_require__.r(__webpack_exports__); 33801/* harmony export */ __webpack_require__.d(__webpack_exports__, { 33802/* harmony export */ "default": function() { return /* binding */ Controller; } 33803/* harmony export */ }); 33804/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 33805/* eslint no-bitwise: ["error", { "allow": [">>"] }] */ 33806 33807function Controller(_ref) { 33808 let { 33809 swiper, 33810 extendParams, 33811 on 33812 } = _ref; 33813 extendParams({ 33814 controller: { 33815 control: undefined, 33816 inverse: false, 33817 by: 'slide' // or 'container' 33818 33819 } 33820 }); 33821 swiper.controller = { 33822 control: undefined 33823 }; 33824 33825 function LinearSpline(x, y) { 33826 const binarySearch = function search() { 33827 let maxIndex; 33828 let minIndex; 33829 let guess; 33830 return (array, val) => { 33831 minIndex = -1; 33832 maxIndex = array.length; 33833 33834 while (maxIndex - minIndex > 1) { 33835 guess = maxIndex + minIndex >> 1; 33836 33837 if (array[guess] <= val) { 33838 minIndex = guess; 33839 } else { 33840 maxIndex = guess; 33841 } 33842 } 33843 33844 return maxIndex; 33845 }; 33846 }(); 33847 33848 this.x = x; 33849 this.y = y; 33850 this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value: 33851 // (x1,y1) is the known point before given value, 33852 // (x3,y3) is the known point after given value. 33853 33854 let i1; 33855 let i3; 33856 33857 this.interpolate = function interpolate(x2) { 33858 if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2): 33859 33860 i3 = binarySearch(this.x, x2); 33861 i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already: 33862 // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1 33863 33864 return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1]; 33865 }; 33866 33867 return this; 33868 } // xxx: for now i will just save one spline function to to 33869 33870 33871 function getInterpolateFunction(c) { 33872 if (!swiper.controller.spline) { 33873 swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid); 33874 } 33875 } 33876 33877 function setTranslate(_t, byController) { 33878 const controlled = swiper.controller.control; 33879 let multiplier; 33880 let controlledTranslate; 33881 const Swiper = swiper.constructor; 33882 33883 function setControlledTranslate(c) { 33884 // this will create an Interpolate function based on the snapGrids 33885 // x is the Grid of the scrolled scroller and y will be the controlled scroller 33886 // it makes sense to create this only once and recall it for the interpolation 33887 // the function does a lot of value caching for performance 33888 const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate; 33889 33890 if (swiper.params.controller.by === 'slide') { 33891 getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid 33892 // but it did not work out 33893 33894 controlledTranslate = -swiper.controller.spline.interpolate(-translate); 33895 } 33896 33897 if (!controlledTranslate || swiper.params.controller.by === 'container') { 33898 multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); 33899 controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate(); 33900 } 33901 33902 if (swiper.params.controller.inverse) { 33903 controlledTranslate = c.maxTranslate() - controlledTranslate; 33904 } 33905 33906 c.updateProgress(controlledTranslate); 33907 c.setTranslate(controlledTranslate, swiper); 33908 c.updateActiveIndex(); 33909 c.updateSlidesClasses(); 33910 } 33911 33912 if (Array.isArray(controlled)) { 33913 for (let i = 0; i < controlled.length; i += 1) { 33914 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 33915 setControlledTranslate(controlled[i]); 33916 } 33917 } 33918 } else if (controlled instanceof Swiper && byController !== controlled) { 33919 setControlledTranslate(controlled); 33920 } 33921 } 33922 33923 function setTransition(duration, byController) { 33924 const Swiper = swiper.constructor; 33925 const controlled = swiper.controller.control; 33926 let i; 33927 33928 function setControlledTransition(c) { 33929 c.setTransition(duration, swiper); 33930 33931 if (duration !== 0) { 33932 c.transitionStart(); 33933 33934 if (c.params.autoHeight) { 33935 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => { 33936 c.updateAutoHeight(); 33937 }); 33938 } 33939 33940 c.$wrapperEl.transitionEnd(() => { 33941 if (!controlled) return; 33942 33943 if (c.params.loop && swiper.params.controller.by === 'slide') { 33944 c.loopFix(); 33945 } 33946 33947 c.transitionEnd(); 33948 }); 33949 } 33950 } 33951 33952 if (Array.isArray(controlled)) { 33953 for (i = 0; i < controlled.length; i += 1) { 33954 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 33955 setControlledTransition(controlled[i]); 33956 } 33957 } 33958 } else if (controlled instanceof Swiper && byController !== controlled) { 33959 setControlledTransition(controlled); 33960 } 33961 } 33962 33963 function removeSpline() { 33964 if (!swiper.controller.control) return; 33965 33966 if (swiper.controller.spline) { 33967 swiper.controller.spline = undefined; 33968 delete swiper.controller.spline; 33969 } 33970 } 33971 33972 on('beforeInit', () => { 33973 swiper.controller.control = swiper.params.controller.control; 33974 }); 33975 on('update', () => { 33976 removeSpline(); 33977 }); 33978 on('resize', () => { 33979 removeSpline(); 33980 }); 33981 on('observerUpdate', () => { 33982 removeSpline(); 33983 }); 33984 on('setTranslate', (_s, translate, byController) => { 33985 if (!swiper.controller.control) return; 33986 swiper.controller.setTranslate(translate, byController); 33987 }); 33988 on('setTransition', (_s, duration, byController) => { 33989 if (!swiper.controller.control) return; 33990 swiper.controller.setTransition(duration, byController); 33991 }); 33992 Object.assign(swiper.controller, { 33993 setTranslate, 33994 setTransition 33995 }); 33996} 33997 33998/***/ }), 33999
vendor: 5,545 bytes, lines 34000-34145
34000/***/ "./node_modules/swiper/modules/effect-cards/effect-cards.js": 34001/*!******************************************************************!*\ 34002 !*** ./node_modules/swiper/modules/effect-cards/effect-cards.js ***! 34003 \******************************************************************/ 34004/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 34005 34006"use strict"; 34007__webpack_require__.r(__webpack_exports__); 34008/* harmony export */ __webpack_require__.d(__webpack_exports__, { 34009/* harmony export */ "default": function() { return /* binding */ EffectCards; } 34010/* harmony export */ }); 34011/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js"); 34012/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 34013/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 34014/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js"); 34015 34016 34017 34018 34019function EffectCards(_ref) { 34020 let { 34021 swiper, 34022 extendParams, 34023 on 34024 } = _ref; 34025 extendParams({ 34026 cardsEffect: { 34027 slideShadows: true, 34028 transformEl: null, 34029 rotate: true 34030 } 34031 }); 34032 34033 const setTranslate = () => { 34034 const { 34035 slides, 34036 activeIndex 34037 } = swiper; 34038 const params = swiper.params.cardsEffect; 34039 const { 34040 startTranslate, 34041 isTouched 34042 } = swiper.touchEventsData; 34043 const currentTranslate = swiper.translate; 34044 34045 for (let i = 0; i < slides.length; i += 1) { 34046 const $slideEl = slides.eq(i); 34047 const slideProgress = $slideEl[0].progress; 34048 const progress = Math.min(Math.max(slideProgress, -4), 4); 34049 let offset = $slideEl[0].swiperSlideOffset; 34050 34051 if (swiper.params.centeredSlides && !swiper.params.cssMode) { 34052 swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`); 34053 } 34054 34055 if (swiper.params.centeredSlides && swiper.params.cssMode) { 34056 offset -= slides[0].swiperSlideOffset; 34057 } 34058 34059 let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset; 34060 let tY = 0; 34061 const tZ = -100 * Math.abs(progress); 34062 let scale = 1; 34063 let rotate = -2 * progress; 34064 let tXAdd = 8 - Math.abs(progress) * 0.75; 34065 const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i; 34066 const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate; 34067 const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate; 34068 34069 if (isSwipeToNext || isSwipeToPrev) { 34070 const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5; 34071 rotate += -28 * progress * subProgress; 34072 scale += -0.5 * subProgress; 34073 tXAdd += 96 * subProgress; 34074 tY = `${-25 * subProgress * Math.abs(progress)}%`; 34075 } 34076 34077 if (progress < 0) { 34078 // next 34079 tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`; 34080 } else if (progress > 0) { 34081 // prev 34082 tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`; 34083 } else { 34084 tX = `${tX}px`; 34085 } 34086 34087 if (!swiper.isHorizontal()) { 34088 const prevY = tY; 34089 tY = tX; 34090 tX = prevY; 34091 } 34092 34093 const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`; 34094 const transform = ` 34095 translate3d(${tX}, ${tY}, ${tZ}px) 34096 rotateZ(${params.rotate ? rotate : 0}deg) 34097 scale(${scaleString}) 34098 `; 34099 34100 if (params.slideShadows) { 34101 // Set shadows 34102 let $shadowEl = $slideEl.find('.swiper-slide-shadow'); 34103 34104 if ($shadowEl.length === 0) { 34105 $shadowEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, $slideEl); 34106 } 34107 34108 if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1); 34109 } 34110 34111 $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; 34112 const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, $slideEl); 34113 $targetEl.transform(transform); 34114 } 34115 }; 34116 34117 const setTransition = duration => { 34118 const { 34119 transformEl 34120 } = swiper.params.cardsEffect; 34121 const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides; 34122 $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration); 34123 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__["default"])({ 34124 swiper, 34125 duration, 34126 transformEl 34127 }); 34128 }; 34129 34130 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 34131 effect: 'cards', 34132 swiper, 34133 on, 34134 setTranslate, 34135 setTransition, 34136 perspective: () => true, 34137 overwriteParams: () => ({ 34138 watchSlidesProgress: true, 34139 virtualTranslate: !swiper.params.cssMode 34140 }) 34141 }); 34142} 34143 34144/***/ }), 34145
vendor: 5,490 bytes, lines 34146-34267
34146/***/ "./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js": 34147/*!**************************************************************************!*\ 34148 !*** ./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js ***! 34149 \**************************************************************************/ 34150/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 34151 34152"use strict"; 34153__webpack_require__.r(__webpack_exports__); 34154/* harmony export */ __webpack_require__.d(__webpack_exports__, { 34155/* harmony export */ "default": function() { return /* binding */ EffectCoverflow; } 34156/* harmony export */ }); 34157/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js"); 34158/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 34159/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 34160 34161 34162 34163function EffectCoverflow(_ref) { 34164 let { 34165 swiper, 34166 extendParams, 34167 on 34168 } = _ref; 34169 extendParams({ 34170 coverflowEffect: { 34171 rotate: 50, 34172 stretch: 0, 34173 depth: 100, 34174 scale: 1, 34175 modifier: 1, 34176 slideShadows: true, 34177 transformEl: null 34178 } 34179 }); 34180 34181 const setTranslate = () => { 34182 const { 34183 width: swiperWidth, 34184 height: swiperHeight, 34185 slides, 34186 slidesSizesGrid 34187 } = swiper; 34188 const params = swiper.params.coverflowEffect; 34189 const isHorizontal = swiper.isHorizontal(); 34190 const transform = swiper.translate; 34191 const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2; 34192 const rotate = isHorizontal ? params.rotate : -params.rotate; 34193 const translate = params.depth; // Each slide offset from center 34194 34195 for (let i = 0, length = slides.length; i < length; i += 1) { 34196 const $slideEl = slides.eq(i); 34197 const slideSize = slidesSizesGrid[i]; 34198 const slideOffset = $slideEl[0].swiperSlideOffset; 34199 const centerOffset = (center - slideOffset - slideSize / 2) / slideSize; 34200 const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier; 34201 let rotateY = isHorizontal ? rotate * offsetMultiplier : 0; 34202 let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0 34203 34204 let translateZ = -translate * Math.abs(offsetMultiplier); 34205 let stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders 34206 34207 if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) { 34208 stretch = parseFloat(params.stretch) / 100 * slideSize; 34209 } 34210 34211 let translateY = isHorizontal ? 0 : stretch * offsetMultiplier; 34212 let translateX = isHorizontal ? stretch * offsetMultiplier : 0; 34213 let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values 34214 34215 if (Math.abs(translateX) < 0.001) translateX = 0; 34216 if (Math.abs(translateY) < 0.001) translateY = 0; 34217 if (Math.abs(translateZ) < 0.001) translateZ = 0; 34218 if (Math.abs(rotateY) < 0.001) rotateY = 0; 34219 if (Math.abs(rotateX) < 0.001) rotateX = 0; 34220 if (Math.abs(scale) < 0.001) scale = 0; 34221 const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`; 34222 const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, $slideEl); 34223 $targetEl.transform(slideTransform); 34224 $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; 34225 34226 if (params.slideShadows) { 34227 // Set shadows 34228 let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); 34229 let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); 34230 34231 if ($shadowBeforeEl.length === 0) { 34232 $shadowBeforeEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, $slideEl, isHorizontal ? 'left' : 'top'); 34233 } 34234 34235 if ($shadowAfterEl.length === 0) { 34236 $shadowAfterEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, $slideEl, isHorizontal ? 'right' : 'bottom'); 34237 } 34238 34239 if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; 34240 if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0; 34241 } 34242 } 34243 }; 34244 34245 const setTransition = duration => { 34246 const { 34247 transformEl 34248 } = swiper.params.coverflowEffect; 34249 const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides; 34250 $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration); 34251 }; 34252 34253 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 34254 effect: 'coverflow', 34255 swiper, 34256 on, 34257 setTranslate, 34258 setTransition, 34259 perspective: () => true, 34260 overwriteParams: () => ({ 34261 watchSlidesProgress: true 34262 }) 34263 }); 34264} 34265 34266/***/ }), 34267
vendor: 6,216 bytes, lines 34268-34440
34268/***/ "./node_modules/swiper/modules/effect-creative/effect-creative.js": 34269/*!************************************************************************!*\ 34270 !*** ./node_modules/swiper/modules/effect-creative/effect-creative.js ***! 34271 \************************************************************************/ 34272/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 34273 34274"use strict"; 34275__webpack_require__.r(__webpack_exports__); 34276/* harmony export */ __webpack_require__.d(__webpack_exports__, { 34277/* harmony export */ "default": function() { return /* binding */ EffectCreative; } 34278/* harmony export */ }); 34279/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js"); 34280/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 34281/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 34282/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js"); 34283 34284 34285 34286 34287function EffectCreative(_ref) { 34288 let { 34289 swiper, 34290 extendParams, 34291 on 34292 } = _ref; 34293 extendParams({ 34294 creativeEffect: { 34295 transformEl: null, 34296 limitProgress: 1, 34297 shadowPerProgress: false, 34298 progressMultiplier: 1, 34299 perspective: true, 34300 prev: { 34301 translate: [0, 0, 0], 34302 rotate: [0, 0, 0], 34303 opacity: 1, 34304 scale: 1 34305 }, 34306 next: { 34307 translate: [0, 0, 0], 34308 rotate: [0, 0, 0], 34309 opacity: 1, 34310 scale: 1 34311 } 34312 } 34313 }); 34314 34315 const getTranslateValue = value => { 34316 if (typeof value === 'string') return value; 34317 return `${value}px`; 34318 }; 34319 34320 const setTranslate = () => { 34321 const { 34322 slides, 34323 $wrapperEl, 34324 slidesSizesGrid 34325 } = swiper; 34326 const params = swiper.params.creativeEffect; 34327 const { 34328 progressMultiplier: multiplier 34329 } = params; 34330 const isCenteredSlides = swiper.params.centeredSlides; 34331 34332 if (isCenteredSlides) { 34333 const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0; 34334 $wrapperEl.transform(`translateX(calc(50% - ${margin}px))`); 34335 } 34336 34337 for (let i = 0; i < slides.length; i += 1) { 34338 const $slideEl = slides.eq(i); 34339 const slideProgress = $slideEl[0].progress; 34340 const progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress); 34341 let originalProgress = progress; 34342 34343 if (!isCenteredSlides) { 34344 originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress); 34345 } 34346 34347 const offset = $slideEl[0].swiperSlideOffset; 34348 const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0]; 34349 const r = [0, 0, 0]; 34350 let custom = false; 34351 34352 if (!swiper.isHorizontal()) { 34353 t[1] = t[0]; 34354 t[0] = 0; 34355 } 34356 34357 let data = { 34358 translate: [0, 0, 0], 34359 rotate: [0, 0, 0], 34360 scale: 1, 34361 opacity: 1 34362 }; 34363 34364 if (progress < 0) { 34365 data = params.next; 34366 custom = true; 34367 } else if (progress > 0) { 34368 data = params.prev; 34369 custom = true; 34370 } // set translate 34371 34372 34373 t.forEach((value, index) => { 34374 t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`; 34375 }); // set rotates 34376 34377 r.forEach((value, index) => { 34378 r[index] = data.rotate[index] * Math.abs(progress * multiplier); 34379 }); 34380 $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; 34381 const translateString = t.join(', '); 34382 const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`; 34383 const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`; 34384 const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier; 34385 const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; // Set shadows 34386 34387 if (custom && data.shadow || !custom) { 34388 let $shadowEl = $slideEl.children('.swiper-slide-shadow'); 34389 34390 if ($shadowEl.length === 0 && data.shadow) { 34391 $shadowEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, $slideEl); 34392 } 34393 34394 if ($shadowEl.length) { 34395 const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress; 34396 $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1); 34397 } 34398 } 34399 34400 const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, $slideEl); 34401 $targetEl.transform(transform).css({ 34402 opacity: opacityString 34403 }); 34404 34405 if (data.origin) { 34406 $targetEl.css('transform-origin', data.origin); 34407 } 34408 } 34409 }; 34410 34411 const setTransition = duration => { 34412 const { 34413 transformEl 34414 } = swiper.params.creativeEffect; 34415 const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides; 34416 $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration); 34417 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__["default"])({ 34418 swiper, 34419 duration, 34420 transformEl, 34421 allSlides: true 34422 }); 34423 }; 34424 34425 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 34426 effect: 'creative', 34427 swiper, 34428 on, 34429 setTranslate, 34430 setTransition, 34431 perspective: () => swiper.params.creativeEffect.perspective, 34432 overwriteParams: () => ({ 34433 watchSlidesProgress: true, 34434 virtualTranslate: !swiper.params.cssMode 34435 }) 34436 }); 34437} 34438 34439/***/ }), 34440
vendor: 7,433 bytes, lines 34441-34652
34441/***/ "./node_modules/swiper/modules/effect-cube/effect-cube.js": 34442/*!****************************************************************!*\ 34443 !*** ./node_modules/swiper/modules/effect-cube/effect-cube.js ***! 34444 \****************************************************************/ 34445/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 34446 34447"use strict"; 34448__webpack_require__.r(__webpack_exports__); 34449/* harmony export */ __webpack_require__.d(__webpack_exports__, { 34450/* harmony export */ "default": function() { return /* binding */ EffectCube; } 34451/* harmony export */ }); 34452/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 34453/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 34454 34455 34456function EffectCube(_ref) { 34457 let { 34458 swiper, 34459 extendParams, 34460 on 34461 } = _ref; 34462 extendParams({ 34463 cubeEffect: { 34464 slideShadows: true, 34465 shadow: true, 34466 shadowOffset: 20, 34467 shadowScale: 0.94 34468 } 34469 }); 34470 34471 const createSlideShadows = ($slideEl, progress, isHorizontal) => { 34472 let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); 34473 let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); 34474 34475 if (shadowBefore.length === 0) { 34476 shadowBefore = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(`<div class="swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}"></div>`); 34477 $slideEl.append(shadowBefore); 34478 } 34479 34480 if (shadowAfter.length === 0) { 34481 shadowAfter = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(`<div class="swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}"></div>`); 34482 $slideEl.append(shadowAfter); 34483 } 34484 34485 if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0); 34486 if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0); 34487 }; 34488 34489 const recreateShadows = () => { 34490 // create new ones 34491 const isHorizontal = swiper.isHorizontal(); 34492 swiper.slides.each(slideEl => { 34493 const progress = Math.max(Math.min(slideEl.progress, 1), -1); 34494 createSlideShadows((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl), progress, isHorizontal); 34495 }); 34496 }; 34497 34498 const setTranslate = () => { 34499 const { 34500 $el, 34501 $wrapperEl, 34502 slides, 34503 width: swiperWidth, 34504 height: swiperHeight, 34505 rtlTranslate: rtl, 34506 size: swiperSize, 34507 browser 34508 } = swiper; 34509 const params = swiper.params.cubeEffect; 34510 const isHorizontal = swiper.isHorizontal(); 34511 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 34512 let wrapperRotate = 0; 34513 let $cubeShadowEl; 34514 34515 if (params.shadow) { 34516 if (isHorizontal) { 34517 $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow'); 34518 34519 if ($cubeShadowEl.length === 0) { 34520 $cubeShadowEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])('<div class="swiper-cube-shadow"></div>'); 34521 $wrapperEl.append($cubeShadowEl); 34522 } 34523 34524 $cubeShadowEl.css({ 34525 height: `${swiperWidth}px` 34526 }); 34527 } else { 34528 $cubeShadowEl = $el.find('.swiper-cube-shadow'); 34529 34530 if ($cubeShadowEl.length === 0) { 34531 $cubeShadowEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])('<div class="swiper-cube-shadow"></div>'); 34532 $el.append($cubeShadowEl); 34533 } 34534 } 34535 } 34536 34537 for (let i = 0; i < slides.length; i += 1) { 34538 const $slideEl = slides.eq(i); 34539 let slideIndex = i; 34540 34541 if (isVirtual) { 34542 slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10); 34543 } 34544 34545 let slideAngle = slideIndex * 90; 34546 let round = Math.floor(slideAngle / 360); 34547 34548 if (rtl) { 34549 slideAngle = -slideAngle; 34550 round = Math.floor(-slideAngle / 360); 34551 } 34552 34553 const progress = Math.max(Math.min($slideEl[0].progress, 1), -1); 34554 let tx = 0; 34555 let ty = 0; 34556 let tz = 0; 34557 34558 if (slideIndex % 4 === 0) { 34559 tx = -round * 4 * swiperSize; 34560 tz = 0; 34561 } else if ((slideIndex - 1) % 4 === 0) { 34562 tx = 0; 34563 tz = -round * 4 * swiperSize; 34564 } else if ((slideIndex - 2) % 4 === 0) { 34565 tx = swiperSize + round * 4 * swiperSize; 34566 tz = swiperSize; 34567 } else if ((slideIndex - 3) % 4 === 0) { 34568 tx = -swiperSize; 34569 tz = 3 * swiperSize + swiperSize * 4 * round; 34570 } 34571 34572 if (rtl) { 34573 tx = -tx; 34574 } 34575 34576 if (!isHorizontal) { 34577 ty = tx; 34578 tx = 0; 34579 } 34580 34581 const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`; 34582 34583 if (progress <= 1 && progress > -1) { 34584 wrapperRotate = slideIndex * 90 + progress * 90; 34585 if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90; 34586 } 34587 34588 $slideEl.transform(transform); 34589 34590 if (params.slideShadows) { 34591 createSlideShadows($slideEl, progress, isHorizontal); 34592 } 34593 } 34594 34595 $wrapperEl.css({ 34596 '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`, 34597 'transform-origin': `50% 50% -${swiperSize / 2}px` 34598 }); 34599 34600 if (params.shadow) { 34601 if (isHorizontal) { 34602 $cubeShadowEl.transform(`translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`); 34603 } else { 34604 const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90; 34605 const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2); 34606 const scale1 = params.shadowScale; 34607 const scale2 = params.shadowScale / multiplier; 34608 const offset = params.shadowOffset; 34609 $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`); 34610 } 34611 } 34612 34613 const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0; 34614 $wrapperEl.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`); 34615 $wrapperEl[0].style.setProperty('--swiper-cube-translate-z', `${zFactor}px`); 34616 }; 34617 34618 const setTransition = duration => { 34619 const { 34620 $el, 34621 slides 34622 } = swiper; 34623 slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration); 34624 34625 if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { 34626 $el.find('.swiper-cube-shadow').transition(duration); 34627 } 34628 }; 34629 34630 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 34631 effect: 'cube', 34632 swiper, 34633 on, 34634 setTranslate, 34635 setTransition, 34636 recreateShadows, 34637 getEffectParams: () => swiper.params.cubeEffect, 34638 perspective: () => true, 34639 overwriteParams: () => ({ 34640 slidesPerView: 1, 34641 slidesPerGroup: 1, 34642 watchSlidesProgress: true, 34643 resistanceRatio: 0, 34644 spaceBetween: 0, 34645 centeredSlides: false, 34646 virtualTranslate: true 34647 }) 34648 }); 34649} 34650 34651/***/ }), 34652
vendor: 3,022 bytes, lines 34653-34740
34653/***/ "./node_modules/swiper/modules/effect-fade/effect-fade.js": 34654/*!****************************************************************!*\ 34655 !*** ./node_modules/swiper/modules/effect-fade/effect-fade.js ***! 34656 \****************************************************************/ 34657/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 34658 34659"use strict"; 34660__webpack_require__.r(__webpack_exports__); 34661/* harmony export */ __webpack_require__.d(__webpack_exports__, { 34662/* harmony export */ "default": function() { return /* binding */ EffectFade; } 34663/* harmony export */ }); 34664/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 34665/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 34666/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js"); 34667 34668 34669 34670function EffectFade(_ref) { 34671 let { 34672 swiper, 34673 extendParams, 34674 on 34675 } = _ref; 34676 extendParams({ 34677 fadeEffect: { 34678 crossFade: false, 34679 transformEl: null 34680 } 34681 }); 34682 34683 const setTranslate = () => { 34684 const { 34685 slides 34686 } = swiper; 34687 const params = swiper.params.fadeEffect; 34688 34689 for (let i = 0; i < slides.length; i += 1) { 34690 const $slideEl = swiper.slides.eq(i); 34691 const offset = $slideEl[0].swiperSlideOffset; 34692 let tx = -offset; 34693 if (!swiper.params.virtualTranslate) tx -= swiper.translate; 34694 let ty = 0; 34695 34696 if (!swiper.isHorizontal()) { 34697 ty = tx; 34698 tx = 0; 34699 } 34700 34701 const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0); 34702 const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params, $slideEl); 34703 $targetEl.css({ 34704 opacity: slideOpacity 34705 }).transform(`translate3d(${tx}px, ${ty}px, 0px)`); 34706 } 34707 }; 34708 34709 const setTransition = duration => { 34710 const { 34711 transformEl 34712 } = swiper.params.fadeEffect; 34713 const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides; 34714 $transitionElements.transition(duration); 34715 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_2__["default"])({ 34716 swiper, 34717 duration, 34718 transformEl, 34719 allSlides: true 34720 }); 34721 }; 34722 34723 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 34724 effect: 'fade', 34725 swiper, 34726 on, 34727 setTranslate, 34728 setTransition, 34729 overwriteParams: () => ({ 34730 slidesPerView: 1, 34731 slidesPerGroup: 1, 34732 watchSlidesProgress: true, 34733 spaceBetween: 0, 34734 virtualTranslate: !swiper.params.cssMode 34735 }) 34736 }); 34737} 34738 34739/***/ }), 34740
vendor: 5,395 bytes, lines 34741-34883
34741/***/ "./node_modules/swiper/modules/effect-flip/effect-flip.js": 34742/*!****************************************************************!*\ 34743 !*** ./node_modules/swiper/modules/effect-flip/effect-flip.js ***! 34744 \****************************************************************/ 34745/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 34746 34747"use strict"; 34748__webpack_require__.r(__webpack_exports__); 34749/* harmony export */ __webpack_require__.d(__webpack_exports__, { 34750/* harmony export */ "default": function() { return /* binding */ EffectFlip; } 34751/* harmony export */ }); 34752/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 34753/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js"); 34754/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 34755/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 34756/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js"); 34757 34758 34759 34760 34761 34762function EffectFlip(_ref) { 34763 let { 34764 swiper, 34765 extendParams, 34766 on 34767 } = _ref; 34768 extendParams({ 34769 flipEffect: { 34770 slideShadows: true, 34771 limitRotation: true, 34772 transformEl: null 34773 } 34774 }); 34775 34776 const createSlideShadows = ($slideEl, progress, params) => { 34777 let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); 34778 let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); 34779 34780 if (shadowBefore.length === 0) { 34781 shadowBefore = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top'); 34782 } 34783 34784 if (shadowAfter.length === 0) { 34785 shadowAfter = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom'); 34786 } 34787 34788 if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0); 34789 if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0); 34790 }; 34791 34792 const recreateShadows = () => { 34793 // Set shadows 34794 const params = swiper.params.flipEffect; 34795 swiper.slides.each(slideEl => { 34796 const $slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl); 34797 let progress = $slideEl[0].progress; 34798 34799 if (swiper.params.flipEffect.limitRotation) { 34800 progress = Math.max(Math.min(slideEl.progress, 1), -1); 34801 } 34802 34803 createSlideShadows($slideEl, progress, params); 34804 }); 34805 }; 34806 34807 const setTranslate = () => { 34808 const { 34809 slides, 34810 rtlTranslate: rtl 34811 } = swiper; 34812 const params = swiper.params.flipEffect; 34813 34814 for (let i = 0; i < slides.length; i += 1) { 34815 const $slideEl = slides.eq(i); 34816 let progress = $slideEl[0].progress; 34817 34818 if (swiper.params.flipEffect.limitRotation) { 34819 progress = Math.max(Math.min($slideEl[0].progress, 1), -1); 34820 } 34821 34822 const offset = $slideEl[0].swiperSlideOffset; 34823 const rotate = -180 * progress; 34824 let rotateY = rotate; 34825 let rotateX = 0; 34826 let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset; 34827 let ty = 0; 34828 34829 if (!swiper.isHorizontal()) { 34830 ty = tx; 34831 tx = 0; 34832 rotateX = -rotateY; 34833 rotateY = 0; 34834 } else if (rtl) { 34835 rotateY = -rotateY; 34836 } 34837 34838 $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length; 34839 34840 if (params.slideShadows) { 34841 createSlideShadows($slideEl, progress, params); 34842 } 34843 34844 const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; 34845 const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_3__["default"])(params, $slideEl); 34846 $targetEl.transform(transform); 34847 } 34848 }; 34849 34850 const setTransition = duration => { 34851 const { 34852 transformEl 34853 } = swiper.params.flipEffect; 34854 const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides; 34855 $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration); 34856 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_4__["default"])({ 34857 swiper, 34858 duration, 34859 transformEl 34860 }); 34861 }; 34862 34863 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_2__["default"])({ 34864 effect: 'flip', 34865 swiper, 34866 on, 34867 setTranslate, 34868 setTransition, 34869 recreateShadows, 34870 getEffectParams: () => swiper.params.flipEffect, 34871 perspective: () => true, 34872 overwriteParams: () => ({ 34873 slidesPerView: 1, 34874 slidesPerGroup: 1, 34875 watchSlidesProgress: true, 34876 spaceBetween: 0, 34877 virtualTranslate: !swiper.params.cssMode 34878 }) 34879 }); 34880} 34881 34882/***/ }), 34883
vendor: 9,035 bytes, lines 34884-35156
34884/***/ "./node_modules/swiper/modules/free-mode/free-mode.js": 34885/*!************************************************************!*\ 34886 !*** ./node_modules/swiper/modules/free-mode/free-mode.js ***! 34887 \************************************************************/ 34888/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 34889 34890"use strict"; 34891__webpack_require__.r(__webpack_exports__); 34892/* harmony export */ __webpack_require__.d(__webpack_exports__, { 34893/* harmony export */ "default": function() { return /* binding */ freeMode; } 34894/* harmony export */ }); 34895/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 34896 34897function freeMode(_ref) { 34898 let { 34899 swiper, 34900 extendParams, 34901 emit, 34902 once 34903 } = _ref; 34904 extendParams({ 34905 freeMode: { 34906 enabled: false, 34907 momentum: true, 34908 momentumRatio: 1, 34909 momentumBounce: true, 34910 momentumBounceRatio: 1, 34911 momentumVelocityRatio: 1, 34912 sticky: false, 34913 minimumVelocity: 0.02 34914 } 34915 }); 34916 34917 function onTouchStart() { 34918 const translate = swiper.getTranslate(); 34919 swiper.setTranslate(translate); 34920 swiper.setTransition(0); 34921 swiper.touchEventsData.velocities.length = 0; 34922 swiper.freeMode.onTouchEnd({ 34923 currentPos: swiper.rtl ? swiper.translate : -swiper.translate 34924 }); 34925 } 34926 34927 function onTouchMove() { 34928 const { 34929 touchEventsData: data, 34930 touches 34931 } = swiper; // Velocity 34932 34933 if (data.velocities.length === 0) { 34934 data.velocities.push({ 34935 position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], 34936 time: data.touchStartTime 34937 }); 34938 } 34939 34940 data.velocities.push({ 34941 position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], 34942 time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)() 34943 }); 34944 } 34945 34946 function onTouchEnd(_ref2) { 34947 let { 34948 currentPos 34949 } = _ref2; 34950 const { 34951 params, 34952 $wrapperEl, 34953 rtlTranslate: rtl, 34954 snapGrid, 34955 touchEventsData: data 34956 } = swiper; // Time diff 34957 34958 const touchEndTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)(); 34959 const timeDiff = touchEndTime - data.touchStartTime; 34960 34961 if (currentPos < -swiper.minTranslate()) { 34962 swiper.slideTo(swiper.activeIndex); 34963 return; 34964 } 34965 34966 if (currentPos > -swiper.maxTranslate()) { 34967 if (swiper.slides.length < snapGrid.length) { 34968 swiper.slideTo(snapGrid.length - 1); 34969 } else { 34970 swiper.slideTo(swiper.slides.length - 1); 34971 } 34972 34973 return; 34974 } 34975 34976 if (params.freeMode.momentum) { 34977 if (data.velocities.length > 1) { 34978 const lastMoveEvent = data.velocities.pop(); 34979 const velocityEvent = data.velocities.pop(); 34980 const distance = lastMoveEvent.position - velocityEvent.position; 34981 const time = lastMoveEvent.time - velocityEvent.time; 34982 swiper.velocity = distance / time; 34983 swiper.velocity /= 2; 34984 34985 if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) { 34986 swiper.velocity = 0; 34987 } // this implies that the user stopped moving a finger then released. 34988 // There would be no events with distance zero, so the last event is stale. 34989 34990 34991 if (time > 150 || (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)() - lastMoveEvent.time > 300) { 34992 swiper.velocity = 0; 34993 } 34994 } else { 34995 swiper.velocity = 0; 34996 } 34997 34998 swiper.velocity *= params.freeMode.momentumVelocityRatio; 34999 data.velocities.length = 0; 35000 let momentumDuration = 1000 * params.freeMode.momentumRatio; 35001 const momentumDistance = swiper.velocity * momentumDuration; 35002 let newPosition = swiper.translate + momentumDistance; 35003 if (rtl) newPosition = -newPosition; 35004 let doBounce = false; 35005 let afterBouncePosition; 35006 const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio; 35007 let needsLoopFix; 35008 35009 if (newPosition < swiper.maxTranslate()) { 35010 if (params.freeMode.momentumBounce) { 35011 if (newPosition + swiper.maxTranslate() < -bounceAmount) { 35012 newPosition = swiper.maxTranslate() - bounceAmount; 35013 } 35014 35015 afterBouncePosition = swiper.maxTranslate(); 35016 doBounce = true; 35017 data.allowMomentumBounce = true; 35018 } else { 35019 newPosition = swiper.maxTranslate(); 35020 } 35021 35022 if (params.loop && params.centeredSlides) needsLoopFix = true; 35023 } else if (newPosition > swiper.minTranslate()) { 35024 if (params.freeMode.momentumBounce) { 35025 if (newPosition - swiper.minTranslate() > bounceAmount) { 35026 newPosition = swiper.minTranslate() + bounceAmount; 35027 } 35028 35029 afterBouncePosition = swiper.minTranslate(); 35030 doBounce = true; 35031 data.allowMomentumBounce = true; 35032 } else { 35033 newPosition = swiper.minTranslate(); 35034 } 35035 35036 if (params.loop && params.centeredSlides) needsLoopFix = true; 35037 } else if (params.freeMode.sticky) { 35038 let nextSlide; 35039 35040 for (let j = 0; j < snapGrid.length; j += 1) { 35041 if (snapGrid[j] > -newPosition) { 35042 nextSlide = j; 35043 break; 35044 } 35045 } 35046 35047 if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { 35048 newPosition = snapGrid[nextSlide]; 35049 } else { 35050 newPosition = snapGrid[nextSlide - 1]; 35051 } 35052 35053 newPosition = -newPosition; 35054 } 35055 35056 if (needsLoopFix) { 35057 once('transitionEnd', () => { 35058 swiper.loopFix(); 35059 }); 35060 } // Fix duration 35061 35062 35063 if (swiper.velocity !== 0) { 35064 if (rtl) { 35065 momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); 35066 } else { 35067 momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); 35068 } 35069 35070 if (params.freeMode.sticky) { 35071 // If freeMode.sticky is active and the user ends a swipe with a slow-velocity 35072 // event, then durations can be 20+ seconds to slide one (or zero!) slides. 35073 // It's easy to see this when simulating touch with mouse events. To fix this, 35074 // limit single-slide swipes to the default slide duration. This also has the 35075 // nice side effect of matching slide speed if the user stopped moving before 35076 // lifting finger or mouse vs. moving slowly before lifting the finger/mouse. 35077 // For faster swipes, also apply limits (albeit higher ones). 35078 const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate); 35079 const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex]; 35080 35081 if (moveDistance < currentSlideSize) { 35082 momentumDuration = params.speed; 35083 } else if (moveDistance < 2 * currentSlideSize) { 35084 momentumDuration = params.speed * 1.5; 35085 } else { 35086 momentumDuration = params.speed * 2.5; 35087 } 35088 } 35089 } else if (params.freeMode.sticky) { 35090 swiper.slideToClosest(); 35091 return; 35092 } 35093 35094 if (params.freeMode.momentumBounce && doBounce) { 35095 swiper.updateProgress(afterBouncePosition); 35096 swiper.setTransition(momentumDuration); 35097 swiper.setTranslate(newPosition); 35098 swiper.transitionStart(true, swiper.swipeDirection); 35099 swiper.animating = true; 35100 $wrapperEl.transitionEnd(() => { 35101 if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return; 35102 emit('momentumBounce'); 35103 swiper.setTransition(params.speed); 35104 setTimeout(() => { 35105 swiper.setTranslate(afterBouncePosition); 35106 $wrapperEl.transitionEnd(() => { 35107 if (!swiper || swiper.destroyed) return; 35108 swiper.transitionEnd(); 35109 }); 35110 }, 0); 35111 }); 35112 } else if (swiper.velocity) { 35113 emit('_freeModeNoMomentumRelease'); 35114 swiper.updateProgress(newPosition); 35115 swiper.setTransition(momentumDuration); 35116 swiper.setTranslate(newPosition); 35117 swiper.transitionStart(true, swiper.swipeDirection); 35118 35119 if (!swiper.animating) { 35120 swiper.animating = true; 35121 $wrapperEl.transitionEnd(() => { 35122 if (!swiper || swiper.destroyed) return; 35123 swiper.transitionEnd(); 35124 }); 35125 } 35126 } else { 35127 swiper.updateProgress(newPosition); 35128 } 35129 35130 swiper.updateActiveIndex(); 35131 swiper.updateSlidesClasses(); 35132 } else if (params.freeMode.sticky) { 35133 swiper.slideToClosest(); 35134 return; 35135 } else if (params.freeMode) { 35136 emit('_freeModeNoMomentumRelease'); 35137 } 35138 35139 if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) { 35140 swiper.updateProgress(); 35141 swiper.updateActiveIndex(); 35142 swiper.updateSlidesClasses(); 35143 } 35144 } 35145 35146 Object.assign(swiper, { 35147 freeMode: { 35148 onTouchStart, 35149 onTouchMove, 35150 onTouchEnd 35151 } 35152 }); 35153} 35154 35155/***/ }), 35156
vendor: 3,857 bytes, lines 35157-35287
35157/***/ "./node_modules/swiper/modules/grid/grid.js": 35158/*!**************************************************!*\ 35159 !*** ./node_modules/swiper/modules/grid/grid.js ***! 35160 \**************************************************/ 35161/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 35162 35163"use strict"; 35164__webpack_require__.r(__webpack_exports__); 35165/* harmony export */ __webpack_require__.d(__webpack_exports__, { 35166/* harmony export */ "default": function() { return /* binding */ Grid; } 35167/* harmony export */ }); 35168function Grid(_ref) { 35169 let { 35170 swiper, 35171 extendParams 35172 } = _ref; 35173 extendParams({ 35174 grid: { 35175 rows: 1, 35176 fill: 'column' 35177 } 35178 }); 35179 let slidesNumberEvenToRows; 35180 let slidesPerRow; 35181 let numFullColumns; 35182 35183 const initSlides = slidesLength => { 35184 const { 35185 slidesPerView 35186 } = swiper.params; 35187 const { 35188 rows, 35189 fill 35190 } = swiper.params.grid; 35191 slidesPerRow = slidesNumberEvenToRows / rows; 35192 numFullColumns = Math.floor(slidesLength / rows); 35193 35194 if (Math.floor(slidesLength / rows) === slidesLength / rows) { 35195 slidesNumberEvenToRows = slidesLength; 35196 } else { 35197 slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows; 35198 } 35199 35200 if (slidesPerView !== 'auto' && fill === 'row') { 35201 slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows); 35202 } 35203 }; 35204 35205 const updateSlide = (i, slide, slidesLength, getDirectionLabel) => { 35206 const { 35207 slidesPerGroup, 35208 spaceBetween 35209 } = swiper.params; 35210 const { 35211 rows, 35212 fill 35213 } = swiper.params.grid; // Set slides order 35214 35215 let newSlideOrderIndex; 35216 let column; 35217 let row; 35218 35219 if (fill === 'row' && slidesPerGroup > 1) { 35220 const groupIndex = Math.floor(i / (slidesPerGroup * rows)); 35221 const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex; 35222 const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup); 35223 row = Math.floor(slideIndexInGroup / columnsInGroup); 35224 column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup; 35225 newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows; 35226 slide.css({ 35227 '-webkit-order': newSlideOrderIndex, 35228 order: newSlideOrderIndex 35229 }); 35230 } else if (fill === 'column') { 35231 column = Math.floor(i / rows); 35232 row = i - column * rows; 35233 35234 if (column > numFullColumns || column === numFullColumns && row === rows - 1) { 35235 row += 1; 35236 35237 if (row >= rows) { 35238 row = 0; 35239 column += 1; 35240 } 35241 } 35242 } else { 35243 row = Math.floor(i / slidesPerRow); 35244 column = i - row * slidesPerRow; 35245 } 35246 35247 slide.css(getDirectionLabel('margin-top'), row !== 0 ? spaceBetween && `${spaceBetween}px` : ''); 35248 }; 35249 35250 const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => { 35251 const { 35252 spaceBetween, 35253 centeredSlides, 35254 roundLengths 35255 } = swiper.params; 35256 const { 35257 rows 35258 } = swiper.params.grid; 35259 swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows; 35260 swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween; 35261 swiper.$wrapperEl.css({ 35262 [getDirectionLabel('width')]: `${swiper.virtualSize + spaceBetween}px` 35263 }); 35264 35265 if (centeredSlides) { 35266 snapGrid.splice(0, snapGrid.length); 35267 const newSlidesGrid = []; 35268 35269 for (let i = 0; i < snapGrid.length; i += 1) { 35270 let slidesGridItem = snapGrid[i]; 35271 if (roundLengths) slidesGridItem = Math.floor(slidesGridItem); 35272 if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem); 35273 } 35274 35275 snapGrid.push(...newSlidesGrid); 35276 } 35277 }; 35278 35279 swiper.grid = { 35280 initSlides, 35281 updateSlide, 35282 updateWrapperSize 35283 }; 35284} 35285 35286/***/ }), 35287
vendor: 3,845 bytes, lines 35288-35400
35288/***/ "./node_modules/swiper/modules/hash-navigation/hash-navigation.js": 35289/*!************************************************************************!*\ 35290 !*** ./node_modules/swiper/modules/hash-navigation/hash-navigation.js ***! 35291 \************************************************************************/ 35292/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 35293 35294"use strict"; 35295__webpack_require__.r(__webpack_exports__); 35296/* harmony export */ __webpack_require__.d(__webpack_exports__, { 35297/* harmony export */ "default": function() { return /* binding */ HashNavigation; } 35298/* harmony export */ }); 35299/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 35300/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 35301 35302 35303function HashNavigation(_ref) { 35304 let { 35305 swiper, 35306 extendParams, 35307 emit, 35308 on 35309 } = _ref; 35310 let initialized = false; 35311 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 35312 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 35313 extendParams({ 35314 hashNavigation: { 35315 enabled: false, 35316 replaceState: false, 35317 watchState: false 35318 } 35319 }); 35320 35321 const onHashChange = () => { 35322 emit('hashChange'); 35323 const newHash = document.location.hash.replace('#', ''); 35324 const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash'); 35325 35326 if (newHash !== activeSlideHash) { 35327 const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash="${newHash}"]`).index(); 35328 if (typeof newIndex === 'undefined') return; 35329 swiper.slideTo(newIndex); 35330 } 35331 }; 35332 35333 const setHash = () => { 35334 if (!initialized || !swiper.params.hashNavigation.enabled) return; 35335 35336 if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) { 35337 window.history.replaceState(null, null, `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || ''); 35338 emit('hashSet'); 35339 } else { 35340 const slide = swiper.slides.eq(swiper.activeIndex); 35341 const hash = slide.attr('data-hash') || slide.attr('data-history'); 35342 document.location.hash = hash || ''; 35343 emit('hashSet'); 35344 } 35345 }; 35346 35347 const init = () => { 35348 if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return; 35349 initialized = true; 35350 const hash = document.location.hash.replace('#', ''); 35351 35352 if (hash) { 35353 const speed = 0; 35354 35355 for (let i = 0, length = swiper.slides.length; i < length; i += 1) { 35356 const slide = swiper.slides.eq(i); 35357 const slideHash = slide.attr('data-hash') || slide.attr('data-history'); 35358 35359 if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) { 35360 const index = slide.index(); 35361 swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true); 35362 } 35363 } 35364 } 35365 35366 if (swiper.params.hashNavigation.watchState) { 35367 (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(window).on('hashchange', onHashChange); 35368 } 35369 }; 35370 35371 const destroy = () => { 35372 if (swiper.params.hashNavigation.watchState) { 35373 (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(window).off('hashchange', onHashChange); 35374 } 35375 }; 35376 35377 on('init', () => { 35378 if (swiper.params.hashNavigation.enabled) { 35379 init(); 35380 } 35381 }); 35382 on('destroy', () => { 35383 if (swiper.params.hashNavigation.enabled) { 35384 destroy(); 35385 } 35386 }); 35387 on('transitionEnd _freeModeNoMomentumRelease', () => { 35388 if (initialized) { 35389 setHash(); 35390 } 35391 }); 35392 on('slideChange', () => { 35393 if (initialized && swiper.params.cssMode) { 35394 setHash(); 35395 } 35396 }); 35397} 35398 35399/***/ }), 35400
vendor: 4,860 bytes, lines 35401-35571
35401/***/ "./node_modules/swiper/modules/history/history.js": 35402/*!********************************************************!*\ 35403 !*** ./node_modules/swiper/modules/history/history.js ***! 35404 \********************************************************/ 35405/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 35406 35407"use strict"; 35408__webpack_require__.r(__webpack_exports__); 35409/* harmony export */ __webpack_require__.d(__webpack_exports__, { 35410/* harmony export */ "default": function() { return /* binding */ History; } 35411/* harmony export */ }); 35412/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 35413 35414function History(_ref) { 35415 let { 35416 swiper, 35417 extendParams, 35418 on 35419 } = _ref; 35420 extendParams({ 35421 history: { 35422 enabled: false, 35423 root: '', 35424 replaceState: false, 35425 key: 'slides', 35426 keepQuery: false 35427 } 35428 }); 35429 let initialized = false; 35430 let paths = {}; 35431 35432 const slugify = text => { 35433 return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, ''); 35434 }; 35435 35436 const getPathValues = urlOverride => { 35437 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 35438 let location; 35439 35440 if (urlOverride) { 35441 location = new URL(urlOverride); 35442 } else { 35443 location = window.location; 35444 } 35445 35446 const pathArray = location.pathname.slice(1).split('/').filter(part => part !== ''); 35447 const total = pathArray.length; 35448 const key = pathArray[total - 2]; 35449 const value = pathArray[total - 1]; 35450 return { 35451 key, 35452 value 35453 }; 35454 }; 35455 35456 const setHistory = (key, index) => { 35457 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 35458 if (!initialized || !swiper.params.history.enabled) return; 35459 let location; 35460 35461 if (swiper.params.url) { 35462 location = new URL(swiper.params.url); 35463 } else { 35464 location = window.location; 35465 } 35466 35467 const slide = swiper.slides.eq(index); 35468 let value = slugify(slide.attr('data-history')); 35469 35470 if (swiper.params.history.root.length > 0) { 35471 let root = swiper.params.history.root; 35472 if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1); 35473 value = `${root}/${key}/${value}`; 35474 } else if (!location.pathname.includes(key)) { 35475 value = `${key}/${value}`; 35476 } 35477 35478 if (swiper.params.history.keepQuery) { 35479 value += location.search; 35480 } 35481 35482 const currentState = window.history.state; 35483 35484 if (currentState && currentState.value === value) { 35485 return; 35486 } 35487 35488 if (swiper.params.history.replaceState) { 35489 window.history.replaceState({ 35490 value 35491 }, null, value); 35492 } else { 35493 window.history.pushState({ 35494 value 35495 }, null, value); 35496 } 35497 }; 35498 35499 const scrollToSlide = (speed, value, runCallbacks) => { 35500 if (value) { 35501 for (let i = 0, length = swiper.slides.length; i < length; i += 1) { 35502 const slide = swiper.slides.eq(i); 35503 const slideHistory = slugify(slide.attr('data-history')); 35504 35505 if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) { 35506 const index = slide.index(); 35507 swiper.slideTo(index, speed, runCallbacks); 35508 } 35509 } 35510 } else { 35511 swiper.slideTo(0, speed, runCallbacks); 35512 } 35513 }; 35514 35515 const setHistoryPopState = () => { 35516 paths = getPathValues(swiper.params.url); 35517 scrollToSlide(swiper.params.speed, paths.value, false); 35518 }; 35519 35520 const init = () => { 35521 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 35522 if (!swiper.params.history) return; 35523 35524 if (!window.history || !window.history.pushState) { 35525 swiper.params.history.enabled = false; 35526 swiper.params.hashNavigation.enabled = true; 35527 return; 35528 } 35529 35530 initialized = true; 35531 paths = getPathValues(swiper.params.url); 35532 if (!paths.key && !paths.value) return; 35533 scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit); 35534 35535 if (!swiper.params.history.replaceState) { 35536 window.addEventListener('popstate', setHistoryPopState); 35537 } 35538 }; 35539 35540 const destroy = () => { 35541 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 35542 35543 if (!swiper.params.history.replaceState) { 35544 window.removeEventListener('popstate', setHistoryPopState); 35545 } 35546 }; 35547 35548 on('init', () => { 35549 if (swiper.params.history.enabled) { 35550 init(); 35551 } 35552 }); 35553 on('destroy', () => { 35554 if (swiper.params.history.enabled) { 35555 destroy(); 35556 } 35557 }); 35558 on('transitionEnd _freeModeNoMomentumRelease', () => { 35559 if (initialized) { 35560 setHistory(swiper.params.history.key, swiper.activeIndex); 35561 } 35562 }); 35563 on('slideChange', () => { 35564 if (initialized && swiper.params.cssMode) { 35565 setHistory(swiper.params.history.key, swiper.activeIndex); 35566 } 35567 }); 35568} 35569 35570/***/ }), 35571
vendor: 5,243 bytes, lines 35572-35719
35572/***/ "./node_modules/swiper/modules/keyboard/keyboard.js": 35573/*!**********************************************************!*\ 35574 !*** ./node_modules/swiper/modules/keyboard/keyboard.js ***! 35575 \**********************************************************/ 35576/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 35577 35578"use strict"; 35579__webpack_require__.r(__webpack_exports__); 35580/* harmony export */ __webpack_require__.d(__webpack_exports__, { 35581/* harmony export */ "default": function() { return /* binding */ Keyboard; } 35582/* harmony export */ }); 35583/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 35584/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 35585/* eslint-disable consistent-return */ 35586 35587 35588function Keyboard(_ref) { 35589 let { 35590 swiper, 35591 extendParams, 35592 on, 35593 emit 35594 } = _ref; 35595 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 35596 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 35597 swiper.keyboard = { 35598 enabled: false 35599 }; 35600 extendParams({ 35601 keyboard: { 35602 enabled: false, 35603 onlyInViewport: true, 35604 pageUpDown: true 35605 } 35606 }); 35607 35608 function handle(event) { 35609 if (!swiper.enabled) return; 35610 const { 35611 rtlTranslate: rtl 35612 } = swiper; 35613 let e = event; 35614 if (e.originalEvent) e = e.originalEvent; // jquery fix 35615 35616 const kc = e.keyCode || e.charCode; 35617 const pageUpDown = swiper.params.keyboard.pageUpDown; 35618 const isPageUp = pageUpDown && kc === 33; 35619 const isPageDown = pageUpDown && kc === 34; 35620 const isArrowLeft = kc === 37; 35621 const isArrowRight = kc === 39; 35622 const isArrowUp = kc === 38; 35623 const isArrowDown = kc === 40; // Directions locks 35624 35625 if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) { 35626 return false; 35627 } 35628 35629 if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) { 35630 return false; 35631 } 35632 35633 if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { 35634 return undefined; 35635 } 35636 35637 if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) { 35638 return undefined; 35639 } 35640 35641 if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) { 35642 let inView = false; // Check that swiper should be inside of visible area of window 35643 35644 if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) { 35645 return undefined; 35646 } 35647 35648 const $el = swiper.$el; 35649 const swiperWidth = $el[0].clientWidth; 35650 const swiperHeight = $el[0].clientHeight; 35651 const windowWidth = window.innerWidth; 35652 const windowHeight = window.innerHeight; 35653 const swiperOffset = swiper.$el.offset(); 35654 if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft; 35655 const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]]; 35656 35657 for (let i = 0; i < swiperCoord.length; i += 1) { 35658 const point = swiperCoord[i]; 35659 35660 if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) { 35661 if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line 35662 35663 inView = true; 35664 } 35665 } 35666 35667 if (!inView) return undefined; 35668 } 35669 35670 if (swiper.isHorizontal()) { 35671 if (isPageUp || isPageDown || isArrowLeft || isArrowRight) { 35672 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 35673 } 35674 35675 if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext(); 35676 if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev(); 35677 } else { 35678 if (isPageUp || isPageDown || isArrowUp || isArrowDown) { 35679 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 35680 } 35681 35682 if (isPageDown || isArrowDown) swiper.slideNext(); 35683 if (isPageUp || isArrowUp) swiper.slidePrev(); 35684 } 35685 35686 emit('keyPress', kc); 35687 return undefined; 35688 } 35689 35690 function enable() { 35691 if (swiper.keyboard.enabled) return; 35692 (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(document).on('keydown', handle); 35693 swiper.keyboard.enabled = true; 35694 } 35695 35696 function disable() { 35697 if (!swiper.keyboard.enabled) return; 35698 (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(document).off('keydown', handle); 35699 swiper.keyboard.enabled = false; 35700 } 35701 35702 on('init', () => { 35703 if (swiper.params.keyboard.enabled) { 35704 enable(); 35705 } 35706 }); 35707 on('destroy', () => { 35708 if (swiper.keyboard.enabled) { 35709 disable(); 35710 } 35711 }); 35712 Object.assign(swiper.keyboard, { 35713 enable, 35714 disable 35715 }); 35716} 35717 35718/***/ }), 35719
vendor: 10,901 bytes, lines 35720-36023
35720/***/ "./node_modules/swiper/modules/lazy/lazy.js": 35721/*!**************************************************!*\ 35722 !*** ./node_modules/swiper/modules/lazy/lazy.js ***! 35723 \**************************************************/ 35724/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 35725 35726"use strict"; 35727__webpack_require__.r(__webpack_exports__); 35728/* harmony export */ __webpack_require__.d(__webpack_exports__, { 35729/* harmony export */ "default": function() { return /* binding */ Lazy; } 35730/* harmony export */ }); 35731/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 35732/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 35733 35734 35735function Lazy(_ref) { 35736 let { 35737 swiper, 35738 extendParams, 35739 on, 35740 emit 35741 } = _ref; 35742 extendParams({ 35743 lazy: { 35744 checkInView: false, 35745 enabled: false, 35746 loadPrevNext: false, 35747 loadPrevNextAmount: 1, 35748 loadOnTransitionStart: false, 35749 scrollingElement: '', 35750 elementClass: 'swiper-lazy', 35751 loadingClass: 'swiper-lazy-loading', 35752 loadedClass: 'swiper-lazy-loaded', 35753 preloaderClass: 'swiper-lazy-preloader' 35754 } 35755 }); 35756 swiper.lazy = {}; 35757 let scrollHandlerAttached = false; 35758 let initialImageLoaded = false; 35759 35760 function loadInSlide(index, loadInDuplicate) { 35761 if (loadInDuplicate === void 0) { 35762 loadInDuplicate = true; 35763 } 35764 35765 const params = swiper.params.lazy; 35766 if (typeof index === 'undefined') return; 35767 if (swiper.slides.length === 0) return; 35768 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 35769 const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index="${index}"]`) : swiper.slides.eq(index); 35770 const $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`); 35771 35772 if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) { 35773 $images.push($slideEl[0]); 35774 } 35775 35776 if ($images.length === 0) return; 35777 $images.each(imageEl => { 35778 const $imageEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(imageEl); 35779 $imageEl.addClass(params.loadingClass); 35780 const background = $imageEl.attr('data-background'); 35781 const src = $imageEl.attr('data-src'); 35782 const srcset = $imageEl.attr('data-srcset'); 35783 const sizes = $imageEl.attr('data-sizes'); 35784 const $pictureEl = $imageEl.parent('picture'); 35785 swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => { 35786 if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return; 35787 35788 if (background) { 35789 $imageEl.css('background-image', `url("${background}")`); 35790 $imageEl.removeAttr('data-background'); 35791 } else { 35792 if (srcset) { 35793 $imageEl.attr('srcset', srcset); 35794 $imageEl.removeAttr('data-srcset'); 35795 } 35796 35797 if (sizes) { 35798 $imageEl.attr('sizes', sizes); 35799 $imageEl.removeAttr('data-sizes'); 35800 } 35801 35802 if ($pictureEl.length) { 35803 $pictureEl.children('source').each(sourceEl => { 35804 const $source = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(sourceEl); 35805 35806 if ($source.attr('data-srcset')) { 35807 $source.attr('srcset', $source.attr('data-srcset')); 35808 $source.removeAttr('data-srcset'); 35809 } 35810 }); 35811 } 35812 35813 if (src) { 35814 $imageEl.attr('src', src); 35815 $imageEl.removeAttr('data-src'); 35816 } 35817 } 35818 35819 $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass); 35820 $slideEl.find(`.${params.preloaderClass}`).remove(); 35821 35822 if (swiper.params.loop && loadInDuplicate) { 35823 const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index'); 35824 35825 if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) { 35826 const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index="${slideOriginalIndex}"]:not(.${swiper.params.slideDuplicateClass})`); 35827 loadInSlide(originalSlide.index(), false); 35828 } else { 35829 const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index="${slideOriginalIndex}"]`); 35830 loadInSlide(duplicatedSlide.index(), false); 35831 } 35832 } 35833 35834 emit('lazyImageReady', $slideEl[0], $imageEl[0]); 35835 35836 if (swiper.params.autoHeight) { 35837 swiper.updateAutoHeight(); 35838 } 35839 }); 35840 emit('lazyImageLoad', $slideEl[0], $imageEl[0]); 35841 }); 35842 } 35843 35844 function load() { 35845 const { 35846 $wrapperEl, 35847 params: swiperParams, 35848 slides, 35849 activeIndex 35850 } = swiper; 35851 const isVirtual = swiper.virtual && swiperParams.virtual.enabled; 35852 const params = swiperParams.lazy; 35853 let slidesPerView = swiperParams.slidesPerView; 35854 35855 if (slidesPerView === 'auto') { 35856 slidesPerView = 0; 35857 } 35858 35859 function slideExist(index) { 35860 if (isVirtual) { 35861 if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index="${index}"]`).length) { 35862 return true; 35863 } 35864 } else if (slides[index]) return true; 35865 35866 return false; 35867 } 35868 35869 function slideIndex(slideEl) { 35870 if (isVirtual) { 35871 return (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl).attr('data-swiper-slide-index'); 35872 } 35873 35874 return (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl).index(); 35875 } 35876 35877 if (!initialImageLoaded) initialImageLoaded = true; 35878 35879 if (swiper.params.watchSlidesProgress) { 35880 $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl => { 35881 const index = isVirtual ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl).attr('data-swiper-slide-index') : (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl).index(); 35882 loadInSlide(index); 35883 }); 35884 } else if (slidesPerView > 1) { 35885 for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) { 35886 if (slideExist(i)) loadInSlide(i); 35887 } 35888 } else { 35889 loadInSlide(activeIndex); 35890 } 35891 35892 if (params.loadPrevNext) { 35893 if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) { 35894 const amount = params.loadPrevNextAmount; 35895 const spv = slidesPerView; 35896 const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length); 35897 const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides 35898 35899 for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) { 35900 if (slideExist(i)) loadInSlide(i); 35901 } // Prev Slides 35902 35903 35904 for (let i = minIndex; i < activeIndex; i += 1) { 35905 if (slideExist(i)) loadInSlide(i); 35906 } 35907 } else { 35908 const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`); 35909 if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide)); 35910 const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`); 35911 if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide)); 35912 } 35913 } 35914 } 35915 35916 function checkInViewOnLoad() { 35917 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 35918 if (!swiper || swiper.destroyed) return; 35919 const $scrollElement = swiper.params.lazy.scrollingElement ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.params.lazy.scrollingElement) : (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(window); 35920 const isWindow = $scrollElement[0] === window; 35921 const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth; 35922 const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight; 35923 const swiperOffset = swiper.$el.offset(); 35924 const { 35925 rtlTranslate: rtl 35926 } = swiper; 35927 let inView = false; 35928 if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft; 35929 const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]]; 35930 35931 for (let i = 0; i < swiperCoord.length; i += 1) { 35932 const point = swiperCoord[i]; 35933 35934 if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) { 35935 if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line 35936 35937 inView = true; 35938 } 35939 } 35940 35941 const passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? { 35942 passive: true, 35943 capture: false 35944 } : false; 35945 35946 if (inView) { 35947 load(); 35948 $scrollElement.off('scroll', checkInViewOnLoad, passiveListener); 35949 } else if (!scrollHandlerAttached) { 35950 scrollHandlerAttached = true; 35951 $scrollElement.on('scroll', checkInViewOnLoad, passiveListener); 35952 } 35953 } 35954 35955 on('beforeInit', () => { 35956 if (swiper.params.lazy.enabled && swiper.params.preloadImages) { 35957 swiper.params.preloadImages = false; 35958 } 35959 }); 35960 on('init', () => { 35961 if (swiper.params.lazy.enabled) { 35962 if (swiper.params.lazy.checkInView) { 35963 checkInViewOnLoad(); 35964 } else { 35965 load(); 35966 } 35967 } 35968 }); 35969 on('scroll', () => { 35970 if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) { 35971 load(); 35972 } 35973 }); 35974 on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => { 35975 if (swiper.params.lazy.enabled) { 35976 if (swiper.params.lazy.checkInView) { 35977 checkInViewOnLoad(); 35978 } else { 35979 load(); 35980 } 35981 } 35982 }); 35983 on('transitionStart', () => { 35984 if (swiper.params.lazy.enabled) { 35985 if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) { 35986 if (swiper.params.lazy.checkInView) { 35987 checkInViewOnLoad(); 35988 } else { 35989 load(); 35990 } 35991 } 35992 } 35993 }); 35994 on('transitionEnd', () => { 35995 if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) { 35996 if (swiper.params.lazy.checkInView) { 35997 checkInViewOnLoad(); 35998 } else { 35999 load(); 36000 } 36001 } 36002 }); 36003 on('slideChange', () => { 36004 const { 36005 lazy, 36006 cssMode, 36007 watchSlidesProgress, 36008 touchReleaseOnEdges, 36009 resistanceRatio 36010 } = swiper.params; 36011 36012 if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) { 36013 load(); 36014 } 36015 }); 36016 Object.assign(swiper.lazy, { 36017 load, 36018 loadInSlide 36019 }); 36020} 36021 36022/***/ }), 36023
vendor: 2,220 bytes, lines 36024-36059
36024/***/ "./node_modules/swiper/modules/manipulation/manipulation.js": 36025/*!******************************************************************!*\ 36026 !*** ./node_modules/swiper/modules/manipulation/manipulation.js ***! 36027 \******************************************************************/ 36028/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 36029 36030"use strict"; 36031__webpack_require__.r(__webpack_exports__); 36032/* harmony export */ __webpack_require__.d(__webpack_exports__, { 36033/* harmony export */ "default": function() { return /* binding */ Manipulation; } 36034/* harmony export */ }); 36035/* harmony import */ var _methods_appendSlide_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./methods/appendSlide.js */ "./node_modules/swiper/modules/manipulation/methods/appendSlide.js"); 36036/* harmony import */ var _methods_prependSlide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./methods/prependSlide.js */ "./node_modules/swiper/modules/manipulation/methods/prependSlide.js"); 36037/* harmony import */ var _methods_addSlide_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./methods/addSlide.js */ "./node_modules/swiper/modules/manipulation/methods/addSlide.js"); 36038/* harmony import */ var _methods_removeSlide_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./methods/removeSlide.js */ "./node_modules/swiper/modules/manipulation/methods/removeSlide.js"); 36039/* harmony import */ var _methods_removeAllSlides_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./methods/removeAllSlides.js */ "./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js"); 36040 36041 36042 36043 36044 36045function Manipulation(_ref) { 36046 let { 36047 swiper 36048 } = _ref; 36049 Object.assign(swiper, { 36050 appendSlide: _methods_appendSlide_js__WEBPACK_IMPORTED_MODULE_0__["default"].bind(swiper), 36051 prependSlide: _methods_prependSlide_js__WEBPACK_IMPORTED_MODULE_1__["default"].bind(swiper), 36052 addSlide: _methods_addSlide_js__WEBPACK_IMPORTED_MODULE_2__["default"].bind(swiper), 36053 removeSlide: _methods_removeSlide_js__WEBPACK_IMPORTED_MODULE_3__["default"].bind(swiper), 36054 removeAllSlides: _methods_removeAllSlides_js__WEBPACK_IMPORTED_MODULE_4__["default"].bind(swiper) 36055 }); 36056} 36057 36058/***/ }), 36059
vendor: 2,122 bytes, lines 36060-36137
36060/***/ "./node_modules/swiper/modules/manipulation/methods/addSlide.js": 36061/*!**********************************************************************!*\ 36062 !*** ./node_modules/swiper/modules/manipulation/methods/addSlide.js ***! 36063 \**********************************************************************/ 36064/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 36065 36066"use strict"; 36067__webpack_require__.r(__webpack_exports__); 36068/* harmony export */ __webpack_require__.d(__webpack_exports__, { 36069/* harmony export */ "default": function() { return /* binding */ addSlide; } 36070/* harmony export */ }); 36071function addSlide(index, slides) { 36072 const swiper = this; 36073 const { 36074 $wrapperEl, 36075 params, 36076 activeIndex 36077 } = swiper; 36078 let activeIndexBuffer = activeIndex; 36079 36080 if (params.loop) { 36081 activeIndexBuffer -= swiper.loopedSlides; 36082 swiper.loopDestroy(); 36083 swiper.slides = $wrapperEl.children(`.${params.slideClass}`); 36084 } 36085 36086 const baseLength = swiper.slides.length; 36087 36088 if (index <= 0) { 36089 swiper.prependSlide(slides); 36090 return; 36091 } 36092 36093 if (index >= baseLength) { 36094 swiper.appendSlide(slides); 36095 return; 36096 } 36097 36098 let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer; 36099 const slidesBuffer = []; 36100 36101 for (let i = baseLength - 1; i >= index; i -= 1) { 36102 const currentSlide = swiper.slides.eq(i); 36103 currentSlide.remove(); 36104 slidesBuffer.unshift(currentSlide); 36105 } 36106 36107 if (typeof slides === 'object' && 'length' in slides) { 36108 for (let i = 0; i < slides.length; i += 1) { 36109 if (slides[i]) $wrapperEl.append(slides[i]); 36110 } 36111 36112 newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer; 36113 } else { 36114 $wrapperEl.append(slides); 36115 } 36116 36117 for (let i = 0; i < slidesBuffer.length; i += 1) { 36118 $wrapperEl.append(slidesBuffer[i]); 36119 } 36120 36121 if (params.loop) { 36122 swiper.loopCreate(); 36123 } 36124 36125 if (!params.observer) { 36126 swiper.update(); 36127 } 36128 36129 if (params.loop) { 36130 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 36131 } else { 36132 swiper.slideTo(newActiveIndex, 0, false); 36133 } 36134} 36135 36136/***/ }), 36137
vendor: 1,126 bytes, lines 36138-36178
36138/***/ "./node_modules/swiper/modules/manipulation/methods/appendSlide.js": 36139/*!*************************************************************************!*\ 36140 !*** ./node_modules/swiper/modules/manipulation/methods/appendSlide.js ***! 36141 \*************************************************************************/ 36142/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 36143 36144"use strict"; 36145__webpack_require__.r(__webpack_exports__); 36146/* harmony export */ __webpack_require__.d(__webpack_exports__, { 36147/* harmony export */ "default": function() { return /* binding */ appendSlide; } 36148/* harmony export */ }); 36149function appendSlide(slides) { 36150 const swiper = this; 36151 const { 36152 $wrapperEl, 36153 params 36154 } = swiper; 36155 36156 if (params.loop) { 36157 swiper.loopDestroy(); 36158 } 36159 36160 if (typeof slides === 'object' && 'length' in slides) { 36161 for (let i = 0; i < slides.length; i += 1) { 36162 if (slides[i]) $wrapperEl.append(slides[i]); 36163 } 36164 } else { 36165 $wrapperEl.append(slides); 36166 } 36167 36168 if (params.loop) { 36169 swiper.loopCreate(); 36170 } 36171 36172 if (!params.observer) { 36173 swiper.update(); 36174 } 36175} 36176 36177/***/ }), 36178
vendor: 1,288 bytes, lines 36179-36226
36179/***/ "./node_modules/swiper/modules/manipulation/methods/prependSlide.js": 36180/*!**************************************************************************!*\ 36181 !*** ./node_modules/swiper/modules/manipulation/methods/prependSlide.js ***! 36182 \**************************************************************************/ 36183/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 36184 36185"use strict"; 36186__webpack_require__.r(__webpack_exports__); 36187/* harmony export */ __webpack_require__.d(__webpack_exports__, { 36188/* harmony export */ "default": function() { return /* binding */ prependSlide; } 36189/* harmony export */ }); 36190function prependSlide(slides) { 36191 const swiper = this; 36192 const { 36193 params, 36194 $wrapperEl, 36195 activeIndex 36196 } = swiper; 36197 36198 if (params.loop) { 36199 swiper.loopDestroy(); 36200 } 36201 36202 let newActiveIndex = activeIndex + 1; 36203 36204 if (typeof slides === 'object' && 'length' in slides) { 36205 for (let i = 0; i < slides.length; i += 1) { 36206 if (slides[i]) $wrapperEl.prepend(slides[i]); 36207 } 36208 36209 newActiveIndex = activeIndex + slides.length; 36210 } else { 36211 $wrapperEl.prepend(slides); 36212 } 36213 36214 if (params.loop) { 36215 swiper.loopCreate(); 36216 } 36217 36218 if (!params.observer) { 36219 swiper.update(); 36220 } 36221 36222 swiper.slideTo(newActiveIndex, 0, false); 36223} 36224 36225/***/ }), 36226
vendor: 879 bytes, lines 36227-36250
36227/***/ "./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js": 36228/*!*****************************************************************************!*\ 36229 !*** ./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js ***! 36230 \*****************************************************************************/ 36231/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 36232 36233"use strict"; 36234__webpack_require__.r(__webpack_exports__); 36235/* harmony export */ __webpack_require__.d(__webpack_exports__, { 36236/* harmony export */ "default": function() { return /* binding */ removeAllSlides; } 36237/* harmony export */ }); 36238function removeAllSlides() { 36239 const swiper = this; 36240 const slidesIndexes = []; 36241 36242 for (let i = 0; i < swiper.slides.length; i += 1) { 36243 slidesIndexes.push(i); 36244 } 36245 36246 swiper.removeSlide(slidesIndexes); 36247} 36248 36249/***/ }), 36250
vendor: 1,917 bytes, lines 36251-36311
36251/***/ "./node_modules/swiper/modules/manipulation/methods/removeSlide.js": 36252/*!*************************************************************************!*\ 36253 !*** ./node_modules/swiper/modules/manipulation/methods/removeSlide.js ***! 36254 \*************************************************************************/ 36255/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 36256 36257"use strict"; 36258__webpack_require__.r(__webpack_exports__); 36259/* harmony export */ __webpack_require__.d(__webpack_exports__, { 36260/* harmony export */ "default": function() { return /* binding */ removeSlide; } 36261/* harmony export */ }); 36262function removeSlide(slidesIndexes) { 36263 const swiper = this; 36264 const { 36265 params, 36266 $wrapperEl, 36267 activeIndex 36268 } = swiper; 36269 let activeIndexBuffer = activeIndex; 36270 36271 if (params.loop) { 36272 activeIndexBuffer -= swiper.loopedSlides; 36273 swiper.loopDestroy(); 36274 swiper.slides = $wrapperEl.children(`.${params.slideClass}`); 36275 } 36276 36277 let newActiveIndex = activeIndexBuffer; 36278 let indexToRemove; 36279 36280 if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) { 36281 for (let i = 0; i < slidesIndexes.length; i += 1) { 36282 indexToRemove = slidesIndexes[i]; 36283 if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove(); 36284 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 36285 } 36286 36287 newActiveIndex = Math.max(newActiveIndex, 0); 36288 } else { 36289 indexToRemove = slidesIndexes; 36290 if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove(); 36291 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 36292 newActiveIndex = Math.max(newActiveIndex, 0); 36293 } 36294 36295 if (params.loop) { 36296 swiper.loopCreate(); 36297 } 36298 36299 if (!params.observer) { 36300 swiper.update(); 36301 } 36302 36303 if (params.loop) { 36304 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 36305 } else { 36306 swiper.slideTo(newActiveIndex, 0, false); 36307 } 36308} 36309 36310/***/ }), 36311
vendor: 15,631 bytes, lines 36312-36751
36312/***/ "./node_modules/swiper/modules/mousewheel/mousewheel.js": 36313/*!**************************************************************!*\ 36314 !*** ./node_modules/swiper/modules/mousewheel/mousewheel.js ***! 36315 \**************************************************************/ 36316/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 36317 36318"use strict"; 36319__webpack_require__.r(__webpack_exports__); 36320/* harmony export */ __webpack_require__.d(__webpack_exports__, { 36321/* harmony export */ "default": function() { return /* binding */ Mousewheel; } 36322/* harmony export */ }); 36323/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 36324/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 36325/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 36326/* eslint-disable consistent-return */ 36327 36328 36329 36330function Mousewheel(_ref) { 36331 let { 36332 swiper, 36333 extendParams, 36334 on, 36335 emit 36336 } = _ref; 36337 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 36338 extendParams({ 36339 mousewheel: { 36340 enabled: false, 36341 releaseOnEdges: false, 36342 invert: false, 36343 forceToAxis: false, 36344 sensitivity: 1, 36345 eventsTarget: 'container', 36346 thresholdDelta: null, 36347 thresholdTime: null 36348 } 36349 }); 36350 swiper.mousewheel = { 36351 enabled: false 36352 }; 36353 let timeout; 36354 let lastScrollTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(); 36355 let lastEventBeforeSnap; 36356 const recentWheelEvents = []; 36357 36358 function normalize(e) { 36359 // Reasonable defaults 36360 const PIXEL_STEP = 10; 36361 const LINE_HEIGHT = 40; 36362 const PAGE_HEIGHT = 800; 36363 let sX = 0; 36364 let sY = 0; // spinX, spinY 36365 36366 let pX = 0; 36367 let pY = 0; // pixelX, pixelY 36368 // Legacy 36369 36370 if ('detail' in e) { 36371 sY = e.detail; 36372 } 36373 36374 if ('wheelDelta' in e) { 36375 sY = -e.wheelDelta / 120; 36376 } 36377 36378 if ('wheelDeltaY' in e) { 36379 sY = -e.wheelDeltaY / 120; 36380 } 36381 36382 if ('wheelDeltaX' in e) { 36383 sX = -e.wheelDeltaX / 120; 36384 } // side scrolling on FF with DOMMouseScroll 36385 36386 36387 if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { 36388 sX = sY; 36389 sY = 0; 36390 } 36391 36392 pX = sX * PIXEL_STEP; 36393 pY = sY * PIXEL_STEP; 36394 36395 if ('deltaY' in e) { 36396 pY = e.deltaY; 36397 } 36398 36399 if ('deltaX' in e) { 36400 pX = e.deltaX; 36401 } 36402 36403 if (e.shiftKey && !pX) { 36404 // if user scrolls with shift he wants horizontal scroll 36405 pX = pY; 36406 pY = 0; 36407 } 36408 36409 if ((pX || pY) && e.deltaMode) { 36410 if (e.deltaMode === 1) { 36411 // delta in LINE units 36412 pX *= LINE_HEIGHT; 36413 pY *= LINE_HEIGHT; 36414 } else { 36415 // delta in PAGE units 36416 pX *= PAGE_HEIGHT; 36417 pY *= PAGE_HEIGHT; 36418 } 36419 } // Fall-back if spin cannot be determined 36420 36421 36422 if (pX && !sX) { 36423 sX = pX < 1 ? -1 : 1; 36424 } 36425 36426 if (pY && !sY) { 36427 sY = pY < 1 ? -1 : 1; 36428 } 36429 36430 return { 36431 spinX: sX, 36432 spinY: sY, 36433 pixelX: pX, 36434 pixelY: pY 36435 }; 36436 } 36437 36438 function handleMouseEnter() { 36439 if (!swiper.enabled) return; 36440 swiper.mouseEntered = true; 36441 } 36442 36443 function handleMouseLeave() { 36444 if (!swiper.enabled) return; 36445 swiper.mouseEntered = false; 36446 } 36447 36448 function animateSlider(newEvent) { 36449 if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) { 36450 // Prevent if delta of wheel scroll delta is below configured threshold 36451 return false; 36452 } 36453 36454 if (swiper.params.mousewheel.thresholdTime && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)() - lastScrollTime < swiper.params.mousewheel.thresholdTime) { 36455 // Prevent if time between scrolls is below configured threshold 36456 return false; 36457 } // If the movement is NOT big enough and 36458 // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider): 36459 // Don't go any further (avoid insignificant scroll movement). 36460 36461 36462 if (newEvent.delta >= 6 && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)() - lastScrollTime < 60) { 36463 // Return false as a default 36464 return true; 36465 } // If user is scrolling towards the end: 36466 // If the slider hasn't hit the latest slide or 36467 // if the slider is a loop and 36468 // if the slider isn't moving right now: 36469 // Go to next slide and 36470 // emit a scroll event. 36471 // Else (the user is scrolling towards the beginning) and 36472 // if the slider hasn't hit the first slide or 36473 // if the slider is a loop and 36474 // if the slider isn't moving right now: 36475 // Go to prev slide and 36476 // emit a scroll event. 36477 36478 36479 if (newEvent.direction < 0) { 36480 if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { 36481 swiper.slideNext(); 36482 emit('scroll', newEvent.raw); 36483 } 36484 } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { 36485 swiper.slidePrev(); 36486 emit('scroll', newEvent.raw); 36487 } // If you got here is because an animation has been triggered so store the current time 36488 36489 36490 lastScrollTime = new window.Date().getTime(); // Return false as a default 36491 36492 return false; 36493 } 36494 36495 function releaseScroll(newEvent) { 36496 const params = swiper.params.mousewheel; 36497 36498 if (newEvent.direction < 0) { 36499 if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) { 36500 // Return true to animate scroll on edges 36501 return true; 36502 } 36503 } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) { 36504 // Return true to animate scroll on edges 36505 return true; 36506 } 36507 36508 return false; 36509 } 36510 36511 function handle(event) { 36512 let e = event; 36513 let disableParentSwiper = true; 36514 if (!swiper.enabled) return; 36515 const params = swiper.params.mousewheel; 36516 36517 if (swiper.params.cssMode) { 36518 e.preventDefault(); 36519 } 36520 36521 let target = swiper.$el; 36522 36523 if (swiper.params.mousewheel.eventsTarget !== 'container') { 36524 target = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.params.mousewheel.eventsTarget); 36525 } 36526 36527 if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true; 36528 if (e.originalEvent) e = e.originalEvent; // jquery fix 36529 36530 let delta = 0; 36531 const rtlFactor = swiper.rtlTranslate ? -1 : 1; 36532 const data = normalize(e); 36533 36534 if (params.forceToAxis) { 36535 if (swiper.isHorizontal()) { 36536 if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true; 36537 } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true; 36538 } else { 36539 delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY; 36540 } 36541 36542 if (delta === 0) return true; 36543 if (params.invert) delta = -delta; // Get the scroll positions 36544 36545 let positions = swiper.getTranslate() + delta * params.sensitivity; 36546 if (positions >= swiper.minTranslate()) positions = swiper.minTranslate(); 36547 if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true: 36548 // the disableParentSwiper will be true. 36549 // When loop is false: 36550 // if the scroll positions is not on edge, 36551 // then the disableParentSwiper will be true. 36552 // if the scroll on edge positions, 36553 // then the disableParentSwiper will be false. 36554 36555 disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate()); 36556 if (disableParentSwiper && swiper.params.nested) e.stopPropagation(); 36557 36558 if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) { 36559 // Register the new event in a variable which stores the relevant data 36560 const newEvent = { 36561 time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(), 36562 delta: Math.abs(delta), 36563 direction: Math.sign(delta), 36564 raw: event 36565 }; // Keep the most recent events 36566 36567 if (recentWheelEvents.length >= 2) { 36568 recentWheelEvents.shift(); // only store the last N events 36569 } 36570 36571 const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; 36572 recentWheelEvents.push(newEvent); // If there is at least one previous recorded event: 36573 // If direction has changed or 36574 // if the scroll is quicker than the previous one: 36575 // Animate the slider. 36576 // Else (this is the first time the wheel is moved): 36577 // Animate the slider. 36578 36579 if (prevEvent) { 36580 if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) { 36581 animateSlider(newEvent); 36582 } 36583 } else { 36584 animateSlider(newEvent); 36585 } // If it's time to release the scroll: 36586 // Return now so you don't hit the preventDefault. 36587 36588 36589 if (releaseScroll(newEvent)) { 36590 return true; 36591 } 36592 } else { 36593 // Freemode or scrollContainer: 36594 // If we recently snapped after a momentum scroll, then ignore wheel events 36595 // to give time for the deceleration to finish. Stop ignoring after 500 msecs 36596 // or if it's a new scroll (larger delta or inverse sign as last event before 36597 // an end-of-momentum snap). 36598 const newEvent = { 36599 time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(), 36600 delta: Math.abs(delta), 36601 direction: Math.sign(delta) 36602 }; 36603 const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction; 36604 36605 if (!ignoreWheelEvents) { 36606 lastEventBeforeSnap = undefined; 36607 36608 if (swiper.params.loop) { 36609 swiper.loopFix(); 36610 } 36611 36612 let position = swiper.getTranslate() + delta * params.sensitivity; 36613 const wasBeginning = swiper.isBeginning; 36614 const wasEnd = swiper.isEnd; 36615 if (position >= swiper.minTranslate()) position = swiper.minTranslate(); 36616 if (position <= swiper.maxTranslate()) position = swiper.maxTranslate(); 36617 swiper.setTransition(0); 36618 swiper.setTranslate(position); 36619 swiper.updateProgress(); 36620 swiper.updateActiveIndex(); 36621 swiper.updateSlidesClasses(); 36622 36623 if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) { 36624 swiper.updateSlidesClasses(); 36625 } 36626 36627 if (swiper.params.freeMode.sticky) { 36628 // When wheel scrolling starts with sticky (aka snap) enabled, then detect 36629 // the end of a momentum scroll by storing recent (N=15?) wheel events. 36630 // 1. do all N events have decreasing or same (absolute value) delta? 36631 // 2. did all N events arrive in the last M (M=500?) msecs? 36632 // 3. does the earliest event have an (absolute value) delta that's 36633 // at least P (P=1?) larger than the most recent event's delta? 36634 // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels? 36635 // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration. 36636 // Snap immediately and ignore remaining wheel events in this scroll. 36637 // See comment above for "remaining wheel events in this scroll" determination. 36638 // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event. 36639 clearTimeout(timeout); 36640 timeout = undefined; 36641 36642 if (recentWheelEvents.length >= 15) { 36643 recentWheelEvents.shift(); // only store the last N events 36644 } 36645 36646 const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; 36647 const firstEvent = recentWheelEvents[0]; 36648 recentWheelEvents.push(newEvent); 36649 36650 if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) { 36651 // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log. 36652 recentWheelEvents.splice(0); 36653 } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) { 36654 // We're at the end of the deceleration of a momentum scroll, so there's no need 36655 // to wait for more events. Snap ASAP on the next tick. 36656 // Also, because there's some remaining momentum we'll bias the snap in the 36657 // direction of the ongoing scroll because it's better UX for the scroll to snap 36658 // in the same direction as the scroll instead of reversing to snap. Therefore, 36659 // if it's already scrolled more than 20% in the current direction, keep going. 36660 const snapToThreshold = delta > 0 ? 0.8 : 0.2; 36661 lastEventBeforeSnap = newEvent; 36662 recentWheelEvents.splice(0); 36663 timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.nextTick)(() => { 36664 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 36665 }, 0); // no delay; move on next tick 36666 } 36667 36668 if (!timeout) { 36669 // if we get here, then we haven't detected the end of a momentum scroll, so 36670 // we'll consider a scroll "complete" when there haven't been any wheel events 36671 // for 500ms. 36672 timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.nextTick)(() => { 36673 const snapToThreshold = 0.5; 36674 lastEventBeforeSnap = newEvent; 36675 recentWheelEvents.splice(0); 36676 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 36677 }, 500); 36678 } 36679 } // Emit event 36680 36681 36682 if (!ignoreWheelEvents) emit('scroll', e); // Stop autoplay 36683 36684 if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions 36685 36686 if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true; 36687 } 36688 } 36689 36690 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 36691 return false; 36692 } 36693 36694 function events(method) { 36695 let target = swiper.$el; 36696 36697 if (swiper.params.mousewheel.eventsTarget !== 'container') { 36698 target = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.params.mousewheel.eventsTarget); 36699 } 36700 36701 target[method]('mouseenter', handleMouseEnter); 36702 target[method]('mouseleave', handleMouseLeave); 36703 target[method]('wheel', handle); 36704 } 36705 36706 function enable() { 36707 if (swiper.params.cssMode) { 36708 swiper.wrapperEl.removeEventListener('wheel', handle); 36709 return true; 36710 } 36711 36712 if (swiper.mousewheel.enabled) return false; 36713 events('on'); 36714 swiper.mousewheel.enabled = true; 36715 return true; 36716 } 36717 36718 function disable() { 36719 if (swiper.params.cssMode) { 36720 swiper.wrapperEl.addEventListener(event, handle); 36721 return true; 36722 } 36723 36724 if (!swiper.mousewheel.enabled) return false; 36725 events('off'); 36726 swiper.mousewheel.enabled = false; 36727 return true; 36728 } 36729 36730 on('init', () => { 36731 if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) { 36732 disable(); 36733 } 36734 36735 if (swiper.params.mousewheel.enabled) enable(); 36736 }); 36737 on('destroy', () => { 36738 if (swiper.params.cssMode) { 36739 enable(); 36740 } 36741 36742 if (swiper.mousewheel.enabled) disable(); 36743 }); 36744 Object.assign(swiper.mousewheel, { 36745 enable, 36746 disable 36747 }); 36748} 36749 36750/***/ }), 36751
vendor: 5,820 bytes, lines 36752-36953
36752/***/ "./node_modules/swiper/modules/navigation/navigation.js": 36753/*!**************************************************************!*\ 36754 !*** ./node_modules/swiper/modules/navigation/navigation.js ***! 36755 \**************************************************************/ 36756/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 36757 36758"use strict"; 36759__webpack_require__.r(__webpack_exports__); 36760/* harmony export */ __webpack_require__.d(__webpack_exports__, { 36761/* harmony export */ "default": function() { return /* binding */ Navigation; } 36762/* harmony export */ }); 36763/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ "./node_modules/swiper/shared/create-element-if-not-defined.js"); 36764/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 36765 36766 36767function Navigation(_ref) { 36768 let { 36769 swiper, 36770 extendParams, 36771 on, 36772 emit 36773 } = _ref; 36774 extendParams({ 36775 navigation: { 36776 nextEl: null, 36777 prevEl: null, 36778 hideOnClick: false, 36779 disabledClass: 'swiper-button-disabled', 36780 hiddenClass: 'swiper-button-hidden', 36781 lockClass: 'swiper-button-lock' 36782 } 36783 }); 36784 swiper.navigation = { 36785 nextEl: null, 36786 $nextEl: null, 36787 prevEl: null, 36788 $prevEl: null 36789 }; 36790 36791 function getEl(el) { 36792 let $el; 36793 36794 if (el) { 36795 $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(el); 36796 36797 if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) { 36798 $el = swiper.$el.find(el); 36799 } 36800 } 36801 36802 return $el; 36803 } 36804 36805 function toggleEl($el, disabled) { 36806 const params = swiper.params.navigation; 36807 36808 if ($el && $el.length > 0) { 36809 $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass); 36810 if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled; 36811 36812 if (swiper.params.watchOverflow && swiper.enabled) { 36813 $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); 36814 } 36815 } 36816 } 36817 36818 function update() { 36819 // Update Navigation Buttons 36820 if (swiper.params.loop) return; 36821 const { 36822 $nextEl, 36823 $prevEl 36824 } = swiper.navigation; 36825 toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind); 36826 toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind); 36827 } 36828 36829 function onPrevClick(e) { 36830 e.preventDefault(); 36831 if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return; 36832 swiper.slidePrev(); 36833 } 36834 36835 function onNextClick(e) { 36836 e.preventDefault(); 36837 if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return; 36838 swiper.slideNext(); 36839 } 36840 36841 function init() { 36842 const params = swiper.params.navigation; 36843 swiper.params.navigation = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper, swiper.originalParams.navigation, swiper.params.navigation, { 36844 nextEl: 'swiper-button-next', 36845 prevEl: 'swiper-button-prev' 36846 }); 36847 if (!(params.nextEl || params.prevEl)) return; 36848 const $nextEl = getEl(params.nextEl); 36849 const $prevEl = getEl(params.prevEl); 36850 36851 if ($nextEl && $nextEl.length > 0) { 36852 $nextEl.on('click', onNextClick); 36853 } 36854 36855 if ($prevEl && $prevEl.length > 0) { 36856 $prevEl.on('click', onPrevClick); 36857 } 36858 36859 Object.assign(swiper.navigation, { 36860 $nextEl, 36861 nextEl: $nextEl && $nextEl[0], 36862 $prevEl, 36863 prevEl: $prevEl && $prevEl[0] 36864 }); 36865 36866 if (!swiper.enabled) { 36867 if ($nextEl) $nextEl.addClass(params.lockClass); 36868 if ($prevEl) $prevEl.addClass(params.lockClass); 36869 } 36870 } 36871 36872 function destroy() { 36873 const { 36874 $nextEl, 36875 $prevEl 36876 } = swiper.navigation; 36877 36878 if ($nextEl && $nextEl.length) { 36879 $nextEl.off('click', onNextClick); 36880 $nextEl.removeClass(swiper.params.navigation.disabledClass); 36881 } 36882 36883 if ($prevEl && $prevEl.length) { 36884 $prevEl.off('click', onPrevClick); 36885 $prevEl.removeClass(swiper.params.navigation.disabledClass); 36886 } 36887 } 36888 36889 on('init', () => { 36890 init(); 36891 update(); 36892 }); 36893 on('toEdge fromEdge lock unlock', () => { 36894 update(); 36895 }); 36896 on('destroy', () => { 36897 destroy(); 36898 }); 36899 on('enable disable', () => { 36900 const { 36901 $nextEl, 36902 $prevEl 36903 } = swiper.navigation; 36904 36905 if ($nextEl) { 36906 $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass); 36907 } 36908 36909 if ($prevEl) { 36910 $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass); 36911 } 36912 }); 36913 on('click', (_s, e) => { 36914 const { 36915 $nextEl, 36916 $prevEl 36917 } = swiper.navigation; 36918 const targetEl = e.target; 36919 36920 if (swiper.params.navigation.hideOnClick && !(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(targetEl).is($prevEl) && !(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(targetEl).is($nextEl)) { 36921 if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return; 36922 let isHidden; 36923 36924 if ($nextEl) { 36925 isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass); 36926 } else if ($prevEl) { 36927 isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass); 36928 } 36929 36930 if (isHidden === true) { 36931 emit('navigationShow'); 36932 } else { 36933 emit('navigationHide'); 36934 } 36935 36936 if ($nextEl) { 36937 $nextEl.toggleClass(swiper.params.navigation.hiddenClass); 36938 } 36939 36940 if ($prevEl) { 36941 $prevEl.toggleClass(swiper.params.navigation.hiddenClass); 36942 } 36943 } 36944 }); 36945 Object.assign(swiper.navigation, { 36946 update, 36947 init, 36948 destroy 36949 }); 36950} 36951 36952/***/ }), 36953
vendor: 15,464 bytes, lines 36954-37381
36954/***/ "./node_modules/swiper/modules/pagination/pagination.js": 36955/*!**************************************************************!*\ 36956 !*** ./node_modules/swiper/modules/pagination/pagination.js ***! 36957 \**************************************************************/ 36958/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 36959 36960"use strict"; 36961__webpack_require__.r(__webpack_exports__); 36962/* harmony export */ __webpack_require__.d(__webpack_exports__, { 36963/* harmony export */ "default": function() { return /* binding */ Pagination; } 36964/* harmony export */ }); 36965/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 36966/* harmony import */ var _shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/classes-to-selector.js */ "./node_modules/swiper/shared/classes-to-selector.js"); 36967/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ "./node_modules/swiper/shared/create-element-if-not-defined.js"); 36968 36969 36970 36971function Pagination(_ref) { 36972 let { 36973 swiper, 36974 extendParams, 36975 on, 36976 emit 36977 } = _ref; 36978 const pfx = 'swiper-pagination'; 36979 extendParams({ 36980 pagination: { 36981 el: null, 36982 bulletElement: 'span', 36983 clickable: false, 36984 hideOnClick: false, 36985 renderBullet: null, 36986 renderProgressbar: null, 36987 renderFraction: null, 36988 renderCustom: null, 36989 progressbarOpposite: false, 36990 type: 'bullets', 36991 // 'bullets' or 'progressbar' or 'fraction' or 'custom' 36992 dynamicBullets: false, 36993 dynamicMainBullets: 1, 36994 formatFractionCurrent: number => number, 36995 formatFractionTotal: number => number, 36996 bulletClass: `${pfx}-bullet`, 36997 bulletActiveClass: `${pfx}-bullet-active`, 36998 modifierClass: `${pfx}-`, 36999 currentClass: `${pfx}-current`, 37000 totalClass: `${pfx}-total`, 37001 hiddenClass: `${pfx}-hidden`, 37002 progressbarFillClass: `${pfx}-progressbar-fill`, 37003 progressbarOppositeClass: `${pfx}-progressbar-opposite`, 37004 clickableClass: `${pfx}-clickable`, 37005 lockClass: `${pfx}-lock`, 37006 horizontalClass: `${pfx}-horizontal`, 37007 verticalClass: `${pfx}-vertical` 37008 } 37009 }); 37010 swiper.pagination = { 37011 el: null, 37012 $el: null, 37013 bullets: [] 37014 }; 37015 let bulletSize; 37016 let dynamicBulletIndex = 0; 37017 37018 function isPaginationDisabled() { 37019 return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0; 37020 } 37021 37022 function setSideBullets($bulletEl, position) { 37023 const { 37024 bulletActiveClass 37025 } = swiper.params.pagination; 37026 $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`); 37027 } 37028 37029 function update() { 37030 // Render || Update Pagination bullets/items 37031 const rtl = swiper.rtl; 37032 const params = swiper.params.pagination; 37033 if (isPaginationDisabled()) return; 37034 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 37035 const $el = swiper.pagination.$el; // Current/Total 37036 37037 let current; 37038 const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 37039 37040 if (swiper.params.loop) { 37041 current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup); 37042 37043 if (current > slidesLength - 1 - swiper.loopedSlides * 2) { 37044 current -= slidesLength - swiper.loopedSlides * 2; 37045 } 37046 37047 if (current > total - 1) current -= total; 37048 if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current; 37049 } else if (typeof swiper.snapIndex !== 'undefined') { 37050 current = swiper.snapIndex; 37051 } else { 37052 current = swiper.activeIndex || 0; 37053 } // Types 37054 37055 37056 if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { 37057 const bullets = swiper.pagination.bullets; 37058 let firstIndex; 37059 let lastIndex; 37060 let midIndex; 37061 37062 if (params.dynamicBullets) { 37063 bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true); 37064 $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`); 37065 37066 if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) { 37067 dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0); 37068 37069 if (dynamicBulletIndex > params.dynamicMainBullets - 1) { 37070 dynamicBulletIndex = params.dynamicMainBullets - 1; 37071 } else if (dynamicBulletIndex < 0) { 37072 dynamicBulletIndex = 0; 37073 } 37074 } 37075 37076 firstIndex = Math.max(current - dynamicBulletIndex, 0); 37077 lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1); 37078 midIndex = (lastIndex + firstIndex) / 2; 37079 } 37080 37081 bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' ')); 37082 37083 if ($el.length > 1) { 37084 bullets.each(bullet => { 37085 const $bullet = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(bullet); 37086 const bulletIndex = $bullet.index(); 37087 37088 if (bulletIndex === current) { 37089 $bullet.addClass(params.bulletActiveClass); 37090 } 37091 37092 if (params.dynamicBullets) { 37093 if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { 37094 $bullet.addClass(`${params.bulletActiveClass}-main`); 37095 } 37096 37097 if (bulletIndex === firstIndex) { 37098 setSideBullets($bullet, 'prev'); 37099 } 37100 37101 if (bulletIndex === lastIndex) { 37102 setSideBullets($bullet, 'next'); 37103 } 37104 } 37105 }); 37106 } else { 37107 const $bullet = bullets.eq(current); 37108 const bulletIndex = $bullet.index(); 37109 $bullet.addClass(params.bulletActiveClass); 37110 37111 if (params.dynamicBullets) { 37112 const $firstDisplayedBullet = bullets.eq(firstIndex); 37113 const $lastDisplayedBullet = bullets.eq(lastIndex); 37114 37115 for (let i = firstIndex; i <= lastIndex; i += 1) { 37116 bullets.eq(i).addClass(`${params.bulletActiveClass}-main`); 37117 } 37118 37119 if (swiper.params.loop) { 37120 if (bulletIndex >= bullets.length) { 37121 for (let i = params.dynamicMainBullets; i >= 0; i -= 1) { 37122 bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`); 37123 } 37124 37125 bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`); 37126 } else { 37127 setSideBullets($firstDisplayedBullet, 'prev'); 37128 setSideBullets($lastDisplayedBullet, 'next'); 37129 } 37130 } else { 37131 setSideBullets($firstDisplayedBullet, 'prev'); 37132 setSideBullets($lastDisplayedBullet, 'next'); 37133 } 37134 } 37135 } 37136 37137 if (params.dynamicBullets) { 37138 const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); 37139 const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize; 37140 const offsetProp = rtl ? 'right' : 'left'; 37141 bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`); 37142 } 37143 } 37144 37145 if (params.type === 'fraction') { 37146 $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.currentClass)).text(params.formatFractionCurrent(current + 1)); 37147 $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.totalClass)).text(params.formatFractionTotal(total)); 37148 } 37149 37150 if (params.type === 'progressbar') { 37151 let progressbarDirection; 37152 37153 if (params.progressbarOpposite) { 37154 progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal'; 37155 } else { 37156 progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical'; 37157 } 37158 37159 const scale = (current + 1) / total; 37160 let scaleX = 1; 37161 let scaleY = 1; 37162 37163 if (progressbarDirection === 'horizontal') { 37164 scaleX = scale; 37165 } else { 37166 scaleY = scale; 37167 } 37168 37169 $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed); 37170 } 37171 37172 if (params.type === 'custom' && params.renderCustom) { 37173 $el.html(params.renderCustom(swiper, current + 1, total)); 37174 emit('paginationRender', $el[0]); 37175 } else { 37176 emit('paginationUpdate', $el[0]); 37177 } 37178 37179 if (swiper.params.watchOverflow && swiper.enabled) { 37180 $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); 37181 } 37182 } 37183 37184 function render() { 37185 // Render Container 37186 const params = swiper.params.pagination; 37187 if (isPaginationDisabled()) return; 37188 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 37189 const $el = swiper.pagination.$el; 37190 let paginationHTML = ''; 37191 37192 if (params.type === 'bullets') { 37193 let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 37194 37195 if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) { 37196 numberOfBullets = slidesLength; 37197 } 37198 37199 for (let i = 0; i < numberOfBullets; i += 1) { 37200 if (params.renderBullet) { 37201 paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); 37202 } else { 37203 paginationHTML += `<${params.bulletElement} class="${params.bulletClass}"></${params.bulletElement}>`; 37204 } 37205 } 37206 37207 $el.html(paginationHTML); 37208 swiper.pagination.bullets = $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.bulletClass)); 37209 } 37210 37211 if (params.type === 'fraction') { 37212 if (params.renderFraction) { 37213 paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); 37214 } else { 37215 paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`; 37216 } 37217 37218 $el.html(paginationHTML); 37219 } 37220 37221 if (params.type === 'progressbar') { 37222 if (params.renderProgressbar) { 37223 paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); 37224 } else { 37225 paginationHTML = `<span class="${params.progressbarFillClass}"></span>`; 37226 } 37227 37228 $el.html(paginationHTML); 37229 } 37230 37231 if (params.type !== 'custom') { 37232 emit('paginationRender', swiper.pagination.$el[0]); 37233 } 37234 } 37235 37236 function init() { 37237 swiper.params.pagination = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_2__["default"])(swiper, swiper.originalParams.pagination, swiper.params.pagination, { 37238 el: 'swiper-pagination' 37239 }); 37240 const params = swiper.params.pagination; 37241 if (!params.el) return; 37242 let $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.el); 37243 if ($el.length === 0) return; 37244 37245 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) { 37246 $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper 37247 37248 if ($el.length > 1) { 37249 $el = $el.filter(el => { 37250 if ((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(el).parents('.swiper')[0] !== swiper.el) return false; 37251 return true; 37252 }); 37253 } 37254 } 37255 37256 if (params.type === 'bullets' && params.clickable) { 37257 $el.addClass(params.clickableClass); 37258 } 37259 37260 $el.addClass(params.modifierClass + params.type); 37261 $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 37262 37263 if (params.type === 'bullets' && params.dynamicBullets) { 37264 $el.addClass(`${params.modifierClass}${params.type}-dynamic`); 37265 dynamicBulletIndex = 0; 37266 37267 if (params.dynamicMainBullets < 1) { 37268 params.dynamicMainBullets = 1; 37269 } 37270 } 37271 37272 if (params.type === 'progressbar' && params.progressbarOpposite) { 37273 $el.addClass(params.progressbarOppositeClass); 37274 } 37275 37276 if (params.clickable) { 37277 $el.on('click', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.bulletClass), function onClick(e) { 37278 e.preventDefault(); 37279 let index = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(this).index() * swiper.params.slidesPerGroup; 37280 if (swiper.params.loop) index += swiper.loopedSlides; 37281 swiper.slideTo(index); 37282 }); 37283 } 37284 37285 Object.assign(swiper.pagination, { 37286 $el, 37287 el: $el[0] 37288 }); 37289 37290 if (!swiper.enabled) { 37291 $el.addClass(params.lockClass); 37292 } 37293 } 37294 37295 function destroy() { 37296 const params = swiper.params.pagination; 37297 if (isPaginationDisabled()) return; 37298 const $el = swiper.pagination.$el; 37299 $el.removeClass(params.hiddenClass); 37300 $el.removeClass(params.modifierClass + params.type); 37301 $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 37302 if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass); 37303 37304 if (params.clickable) { 37305 $el.off('click', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.bulletClass)); 37306 } 37307 } 37308 37309 on('init', () => { 37310 init(); 37311 render(); 37312 update(); 37313 }); 37314 on('activeIndexChange', () => { 37315 if (swiper.params.loop) { 37316 update(); 37317 } else if (typeof swiper.snapIndex === 'undefined') { 37318 update(); 37319 } 37320 }); 37321 on('snapIndexChange', () => { 37322 if (!swiper.params.loop) { 37323 update(); 37324 } 37325 }); 37326 on('slidesLengthChange', () => { 37327 if (swiper.params.loop) { 37328 render(); 37329 update(); 37330 } 37331 }); 37332 on('snapGridLengthChange', () => { 37333 if (!swiper.params.loop) { 37334 render(); 37335 update(); 37336 } 37337 }); 37338 on('destroy', () => { 37339 destroy(); 37340 }); 37341 on('enable disable', () => { 37342 const { 37343 $el 37344 } = swiper.pagination; 37345 37346 if ($el) { 37347 $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass); 37348 } 37349 }); 37350 on('lock unlock', () => { 37351 update(); 37352 }); 37353 on('click', (_s, e) => { 37354 const targetEl = e.target; 37355 const { 37356 $el 37357 } = swiper.pagination; 37358 37359 if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(targetEl).hasClass(swiper.params.pagination.bulletClass)) { 37360 if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return; 37361 const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass); 37362 37363 if (isHidden === true) { 37364 emit('paginationShow'); 37365 } else { 37366 emit('paginationHide'); 37367 } 37368 37369 $el.toggleClass(swiper.params.pagination.hiddenClass); 37370 } 37371 }); 37372 Object.assign(swiper.pagination, { 37373 render, 37374 update, 37375 init, 37376 destroy 37377 }); 37378} 37379 37380/***/ }), 37381
vendor: 4,423 bytes, lines 37382-37515
37382/***/ "./node_modules/swiper/modules/parallax/parallax.js": 37383/*!**********************************************************!*\ 37384 !*** ./node_modules/swiper/modules/parallax/parallax.js ***! 37385 \**********************************************************/ 37386/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 37387 37388"use strict"; 37389__webpack_require__.r(__webpack_exports__); 37390/* harmony export */ __webpack_require__.d(__webpack_exports__, { 37391/* harmony export */ "default": function() { return /* binding */ Parallax; } 37392/* harmony export */ }); 37393/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 37394 37395function Parallax(_ref) { 37396 let { 37397 swiper, 37398 extendParams, 37399 on 37400 } = _ref; 37401 extendParams({ 37402 parallax: { 37403 enabled: false 37404 } 37405 }); 37406 37407 const setTransform = (el, progress) => { 37408 const { 37409 rtl 37410 } = swiper; 37411 const $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(el); 37412 const rtlFactor = rtl ? -1 : 1; 37413 const p = $el.attr('data-swiper-parallax') || '0'; 37414 let x = $el.attr('data-swiper-parallax-x'); 37415 let y = $el.attr('data-swiper-parallax-y'); 37416 const scale = $el.attr('data-swiper-parallax-scale'); 37417 const opacity = $el.attr('data-swiper-parallax-opacity'); 37418 37419 if (x || y) { 37420 x = x || '0'; 37421 y = y || '0'; 37422 } else if (swiper.isHorizontal()) { 37423 x = p; 37424 y = '0'; 37425 } else { 37426 y = p; 37427 x = '0'; 37428 } 37429 37430 if (x.indexOf('%') >= 0) { 37431 x = `${parseInt(x, 10) * progress * rtlFactor}%`; 37432 } else { 37433 x = `${x * progress * rtlFactor}px`; 37434 } 37435 37436 if (y.indexOf('%') >= 0) { 37437 y = `${parseInt(y, 10) * progress}%`; 37438 } else { 37439 y = `${y * progress}px`; 37440 } 37441 37442 if (typeof opacity !== 'undefined' && opacity !== null) { 37443 const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress)); 37444 $el[0].style.opacity = currentOpacity; 37445 } 37446 37447 if (typeof scale === 'undefined' || scale === null) { 37448 $el.transform(`translate3d(${x}, ${y}, 0px)`); 37449 } else { 37450 const currentScale = scale - (scale - 1) * (1 - Math.abs(progress)); 37451 $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`); 37452 } 37453 }; 37454 37455 const setTranslate = () => { 37456 const { 37457 $el, 37458 slides, 37459 progress, 37460 snapGrid 37461 } = swiper; 37462 $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => { 37463 setTransform(el, progress); 37464 }); 37465 slides.each((slideEl, slideIndex) => { 37466 let slideProgress = slideEl.progress; 37467 37468 if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { 37469 slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1); 37470 } 37471 37472 slideProgress = Math.min(Math.max(slideProgress, -1), 1); 37473 (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => { 37474 setTransform(el, slideProgress); 37475 }); 37476 }); 37477 }; 37478 37479 const setTransition = function (duration) { 37480 if (duration === void 0) { 37481 duration = swiper.params.speed; 37482 } 37483 37484 const { 37485 $el 37486 } = swiper; 37487 $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(parallaxEl => { 37488 const $parallaxEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(parallaxEl); 37489 let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration; 37490 if (duration === 0) parallaxDuration = 0; 37491 $parallaxEl.transition(parallaxDuration); 37492 }); 37493 }; 37494 37495 on('beforeInit', () => { 37496 if (!swiper.params.parallax.enabled) return; 37497 swiper.params.watchSlidesProgress = true; 37498 swiper.originalParams.watchSlidesProgress = true; 37499 }); 37500 on('init', () => { 37501 if (!swiper.params.parallax.enabled) return; 37502 setTranslate(); 37503 }); 37504 on('setTranslate', () => { 37505 if (!swiper.params.parallax.enabled) return; 37506 setTranslate(); 37507 }); 37508 on('setTransition', (_swiper, duration) => { 37509 if (!swiper.params.parallax.enabled) return; 37510 setTransition(duration); 37511 }); 37512} 37513 37514/***/ }), 37515
vendor: 10,609 bytes, lines 37516-37895
37516/***/ "./node_modules/swiper/modules/scrollbar/scrollbar.js": 37517/*!************************************************************!*\ 37518 !*** ./node_modules/swiper/modules/scrollbar/scrollbar.js ***! 37519 \************************************************************/ 37520/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 37521 37522"use strict"; 37523__webpack_require__.r(__webpack_exports__); 37524/* harmony export */ __webpack_require__.d(__webpack_exports__, { 37525/* harmony export */ "default": function() { return /* binding */ Scrollbar; } 37526/* harmony export */ }); 37527/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 37528/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 37529/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 37530/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ "./node_modules/swiper/shared/create-element-if-not-defined.js"); 37531 37532 37533 37534 37535function Scrollbar(_ref) { 37536 let { 37537 swiper, 37538 extendParams, 37539 on, 37540 emit 37541 } = _ref; 37542 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 37543 let isTouched = false; 37544 let timeout = null; 37545 let dragTimeout = null; 37546 let dragStartPos; 37547 let dragSize; 37548 let trackSize; 37549 let divider; 37550 extendParams({ 37551 scrollbar: { 37552 el: null, 37553 dragSize: 'auto', 37554 hide: false, 37555 draggable: false, 37556 snapOnRelease: true, 37557 lockClass: 'swiper-scrollbar-lock', 37558 dragClass: 'swiper-scrollbar-drag' 37559 } 37560 }); 37561 swiper.scrollbar = { 37562 el: null, 37563 dragEl: null, 37564 $el: null, 37565 $dragEl: null 37566 }; 37567 37568 function setTranslate() { 37569 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 37570 const { 37571 scrollbar, 37572 rtlTranslate: rtl, 37573 progress 37574 } = swiper; 37575 const { 37576 $dragEl, 37577 $el 37578 } = scrollbar; 37579 const params = swiper.params.scrollbar; 37580 let newSize = dragSize; 37581 let newPos = (trackSize - dragSize) * progress; 37582 37583 if (rtl) { 37584 newPos = -newPos; 37585 37586 if (newPos > 0) { 37587 newSize = dragSize - newPos; 37588 newPos = 0; 37589 } else if (-newPos + dragSize > trackSize) { 37590 newSize = trackSize + newPos; 37591 } 37592 } else if (newPos < 0) { 37593 newSize = dragSize + newPos; 37594 newPos = 0; 37595 } else if (newPos + dragSize > trackSize) { 37596 newSize = trackSize - newPos; 37597 } 37598 37599 if (swiper.isHorizontal()) { 37600 $dragEl.transform(`translate3d(${newPos}px, 0, 0)`); 37601 $dragEl[0].style.width = `${newSize}px`; 37602 } else { 37603 $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`); 37604 $dragEl[0].style.height = `${newSize}px`; 37605 } 37606 37607 if (params.hide) { 37608 clearTimeout(timeout); 37609 $el[0].style.opacity = 1; 37610 timeout = setTimeout(() => { 37611 $el[0].style.opacity = 0; 37612 $el.transition(400); 37613 }, 1000); 37614 } 37615 } 37616 37617 function setTransition(duration) { 37618 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 37619 swiper.scrollbar.$dragEl.transition(duration); 37620 } 37621 37622 function updateSize() { 37623 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 37624 const { 37625 scrollbar 37626 } = swiper; 37627 const { 37628 $dragEl, 37629 $el 37630 } = scrollbar; 37631 $dragEl[0].style.width = ''; 37632 $dragEl[0].style.height = ''; 37633 trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight; 37634 divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0)); 37635 37636 if (swiper.params.scrollbar.dragSize === 'auto') { 37637 dragSize = trackSize * divider; 37638 } else { 37639 dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); 37640 } 37641 37642 if (swiper.isHorizontal()) { 37643 $dragEl[0].style.width = `${dragSize}px`; 37644 } else { 37645 $dragEl[0].style.height = `${dragSize}px`; 37646 } 37647 37648 if (divider >= 1) { 37649 $el[0].style.display = 'none'; 37650 } else { 37651 $el[0].style.display = ''; 37652 } 37653 37654 if (swiper.params.scrollbar.hide) { 37655 $el[0].style.opacity = 0; 37656 } 37657 37658 if (swiper.params.watchOverflow && swiper.enabled) { 37659 scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass); 37660 } 37661 } 37662 37663 function getPointerPosition(e) { 37664 if (swiper.isHorizontal()) { 37665 return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX; 37666 } 37667 37668 return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY; 37669 } 37670 37671 function setDragPosition(e) { 37672 const { 37673 scrollbar, 37674 rtlTranslate: rtl 37675 } = swiper; 37676 const { 37677 $el 37678 } = scrollbar; 37679 let positionRatio; 37680 positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize); 37681 positionRatio = Math.max(Math.min(positionRatio, 1), 0); 37682 37683 if (rtl) { 37684 positionRatio = 1 - positionRatio; 37685 } 37686 37687 const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio; 37688 swiper.updateProgress(position); 37689 swiper.setTranslate(position); 37690 swiper.updateActiveIndex(); 37691 swiper.updateSlidesClasses(); 37692 } 37693 37694 function onDragStart(e) { 37695 const params = swiper.params.scrollbar; 37696 const { 37697 scrollbar, 37698 $wrapperEl 37699 } = swiper; 37700 const { 37701 $el, 37702 $dragEl 37703 } = scrollbar; 37704 isTouched = true; 37705 dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null; 37706 e.preventDefault(); 37707 e.stopPropagation(); 37708 $wrapperEl.transition(100); 37709 $dragEl.transition(100); 37710 setDragPosition(e); 37711 clearTimeout(dragTimeout); 37712 $el.transition(0); 37713 37714 if (params.hide) { 37715 $el.css('opacity', 1); 37716 } 37717 37718 if (swiper.params.cssMode) { 37719 swiper.$wrapperEl.css('scroll-snap-type', 'none'); 37720 } 37721 37722 emit('scrollbarDragStart', e); 37723 } 37724 37725 function onDragMove(e) { 37726 const { 37727 scrollbar, 37728 $wrapperEl 37729 } = swiper; 37730 const { 37731 $el, 37732 $dragEl 37733 } = scrollbar; 37734 if (!isTouched) return; 37735 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 37736 setDragPosition(e); 37737 $wrapperEl.transition(0); 37738 $el.transition(0); 37739 $dragEl.transition(0); 37740 emit('scrollbarDragMove', e); 37741 } 37742 37743 function onDragEnd(e) { 37744 const params = swiper.params.scrollbar; 37745 const { 37746 scrollbar, 37747 $wrapperEl 37748 } = swiper; 37749 const { 37750 $el 37751 } = scrollbar; 37752 if (!isTouched) return; 37753 isTouched = false; 37754 37755 if (swiper.params.cssMode) { 37756 swiper.$wrapperEl.css('scroll-snap-type', ''); 37757 $wrapperEl.transition(''); 37758 } 37759 37760 if (params.hide) { 37761 clearTimeout(dragTimeout); 37762 dragTimeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.nextTick)(() => { 37763 $el.css('opacity', 0); 37764 $el.transition(400); 37765 }, 1000); 37766 } 37767 37768 emit('scrollbarDragEnd', e); 37769 37770 if (params.snapOnRelease) { 37771 swiper.slideToClosest(); 37772 } 37773 } 37774 37775 function events(method) { 37776 const { 37777 scrollbar, 37778 touchEventsTouch, 37779 touchEventsDesktop, 37780 params, 37781 support 37782 } = swiper; 37783 const $el = scrollbar.$el; 37784 const target = $el[0]; 37785 const activeListener = support.passiveListener && params.passiveListeners ? { 37786 passive: false, 37787 capture: false 37788 } : false; 37789 const passiveListener = support.passiveListener && params.passiveListeners ? { 37790 passive: true, 37791 capture: false 37792 } : false; 37793 if (!target) return; 37794 const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; 37795 37796 if (!support.touch) { 37797 target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener); 37798 document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener); 37799 document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener); 37800 } else { 37801 target[eventMethod](touchEventsTouch.start, onDragStart, activeListener); 37802 target[eventMethod](touchEventsTouch.move, onDragMove, activeListener); 37803 target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener); 37804 } 37805 } 37806 37807 function enableDraggable() { 37808 if (!swiper.params.scrollbar.el) return; 37809 events('on'); 37810 } 37811 37812 function disableDraggable() { 37813 if (!swiper.params.scrollbar.el) return; 37814 events('off'); 37815 } 37816 37817 function init() { 37818 const { 37819 scrollbar, 37820 $el: $swiperEl 37821 } = swiper; 37822 swiper.params.scrollbar = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_3__["default"])(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, { 37823 el: 'swiper-scrollbar' 37824 }); 37825 const params = swiper.params.scrollbar; 37826 if (!params.el) return; 37827 let $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.el); 37828 37829 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) { 37830 $el = $swiperEl.find(params.el); 37831 } 37832 37833 let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`); 37834 37835 if ($dragEl.length === 0) { 37836 $dragEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(`<div class="${swiper.params.scrollbar.dragClass}"></div>`); 37837 $el.append($dragEl); 37838 } 37839 37840 Object.assign(scrollbar, { 37841 $el, 37842 el: $el[0], 37843 $dragEl, 37844 dragEl: $dragEl[0] 37845 }); 37846 37847 if (params.draggable) { 37848 enableDraggable(); 37849 } 37850 37851 if ($el) { 37852 $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass); 37853 } 37854 } 37855 37856 function destroy() { 37857 disableDraggable(); 37858 } 37859 37860 on('init', () => { 37861 init(); 37862 updateSize(); 37863 setTranslate(); 37864 }); 37865 on('update resize observerUpdate lock unlock', () => { 37866 updateSize(); 37867 }); 37868 on('setTranslate', () => { 37869 setTranslate(); 37870 }); 37871 on('setTransition', (_s, duration) => { 37872 setTransition(duration); 37873 }); 37874 on('enable disable', () => { 37875 const { 37876 $el 37877 } = swiper.scrollbar; 37878 37879 if ($el) { 37880 $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass); 37881 } 37882 }); 37883 on('destroy', () => { 37884 destroy(); 37885 }); 37886 Object.assign(swiper.scrollbar, { 37887 updateSize, 37888 setTranslate, 37889 init, 37890 destroy 37891 }); 37892} 37893 37894/***/ }), 37895
vendor: 8,556 bytes, lines 37896-38115
37896/***/ "./node_modules/swiper/modules/thumbs/thumbs.js": 37897/*!******************************************************!*\ 37898 !*** ./node_modules/swiper/modules/thumbs/thumbs.js ***! 37899 \******************************************************/ 37900/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 37901 37902"use strict"; 37903__webpack_require__.r(__webpack_exports__); 37904/* harmony export */ __webpack_require__.d(__webpack_exports__, { 37905/* harmony export */ "default": function() { return /* binding */ Thumb; } 37906/* harmony export */ }); 37907/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 37908/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 37909 37910 37911function Thumb(_ref) { 37912 let { 37913 swiper, 37914 extendParams, 37915 on 37916 } = _ref; 37917 extendParams({ 37918 thumbs: { 37919 swiper: null, 37920 multipleActiveThumbs: true, 37921 autoScrollOffset: 0, 37922 slideThumbActiveClass: 'swiper-slide-thumb-active', 37923 thumbsContainerClass: 'swiper-thumbs' 37924 } 37925 }); 37926 let initialized = false; 37927 let swiperCreated = false; 37928 swiper.thumbs = { 37929 swiper: null 37930 }; 37931 37932 function onThumbClick() { 37933 const thumbsSwiper = swiper.thumbs.swiper; 37934 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 37935 const clickedIndex = thumbsSwiper.clickedIndex; 37936 const clickedSlide = thumbsSwiper.clickedSlide; 37937 if (clickedSlide && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return; 37938 if (typeof clickedIndex === 'undefined' || clickedIndex === null) return; 37939 let slideToIndex; 37940 37941 if (thumbsSwiper.params.loop) { 37942 slideToIndex = parseInt((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10); 37943 } else { 37944 slideToIndex = clickedIndex; 37945 } 37946 37947 if (swiper.params.loop) { 37948 let currentIndex = swiper.activeIndex; 37949 37950 if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) { 37951 swiper.loopFix(); // eslint-disable-next-line 37952 37953 swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 37954 currentIndex = swiper.activeIndex; 37955 } 37956 37957 const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index="${slideToIndex}"]`).eq(0).index(); 37958 const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index="${slideToIndex}"]`).eq(0).index(); 37959 if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex; 37960 } 37961 37962 swiper.slideTo(slideToIndex); 37963 } 37964 37965 function init() { 37966 const { 37967 thumbs: thumbsParams 37968 } = swiper.params; 37969 if (initialized) return false; 37970 initialized = true; 37971 const SwiperClass = swiper.constructor; 37972 37973 if (thumbsParams.swiper instanceof SwiperClass) { 37974 swiper.thumbs.swiper = thumbsParams.swiper; 37975 Object.assign(swiper.thumbs.swiper.originalParams, { 37976 watchSlidesProgress: true, 37977 slideToClickedSlide: false 37978 }); 37979 Object.assign(swiper.thumbs.swiper.params, { 37980 watchSlidesProgress: true, 37981 slideToClickedSlide: false 37982 }); 37983 } else if ((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.isObject)(thumbsParams.swiper)) { 37984 const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper); 37985 Object.assign(thumbsSwiperParams, { 37986 watchSlidesProgress: true, 37987 slideToClickedSlide: false 37988 }); 37989 swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams); 37990 swiperCreated = true; 37991 } 37992 37993 swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass); 37994 swiper.thumbs.swiper.on('tap', onThumbClick); 37995 return true; 37996 } 37997 37998 function update(initial) { 37999 const thumbsSwiper = swiper.thumbs.swiper; 38000 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 38001 const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; 38002 const autoScrollOffset = swiper.params.thumbs.autoScrollOffset; 38003 const useOffset = autoScrollOffset && !thumbsSwiper.params.loop; 38004 38005 if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) { 38006 let currentThumbsIndex = thumbsSwiper.activeIndex; 38007 let newThumbsIndex; 38008 let direction; 38009 38010 if (thumbsSwiper.params.loop) { 38011 if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) { 38012 thumbsSwiper.loopFix(); // eslint-disable-next-line 38013 38014 thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft; 38015 currentThumbsIndex = thumbsSwiper.activeIndex; 38016 } // Find actual thumbs index to slide to 38017 38018 38019 const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index="${swiper.realIndex}"]`).eq(0).index(); 38020 const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index="${swiper.realIndex}"]`).eq(0).index(); 38021 38022 if (typeof prevThumbsIndex === 'undefined') { 38023 newThumbsIndex = nextThumbsIndex; 38024 } else if (typeof nextThumbsIndex === 'undefined') { 38025 newThumbsIndex = prevThumbsIndex; 38026 } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) { 38027 newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex; 38028 } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) { 38029 newThumbsIndex = nextThumbsIndex; 38030 } else { 38031 newThumbsIndex = prevThumbsIndex; 38032 } 38033 38034 direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev'; 38035 } else { 38036 newThumbsIndex = swiper.realIndex; 38037 direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev'; 38038 } 38039 38040 if (useOffset) { 38041 newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset; 38042 } 38043 38044 if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) { 38045 if (thumbsSwiper.params.centeredSlides) { 38046 if (newThumbsIndex > currentThumbsIndex) { 38047 newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1; 38048 } else { 38049 newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1; 38050 } 38051 } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1; 38052 } 38053 38054 thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined); 38055 } 38056 } // Activate thumbs 38057 38058 38059 let thumbsToActivate = 1; 38060 const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass; 38061 38062 if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) { 38063 thumbsToActivate = swiper.params.slidesPerView; 38064 } 38065 38066 if (!swiper.params.thumbs.multipleActiveThumbs) { 38067 thumbsToActivate = 1; 38068 } 38069 38070 thumbsToActivate = Math.floor(thumbsToActivate); 38071 thumbsSwiper.slides.removeClass(thumbActiveClass); 38072 38073 if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) { 38074 for (let i = 0; i < thumbsToActivate; i += 1) { 38075 thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index="${swiper.realIndex + i}"]`).addClass(thumbActiveClass); 38076 } 38077 } else { 38078 for (let i = 0; i < thumbsToActivate; i += 1) { 38079 thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass); 38080 } 38081 } 38082 } 38083 38084 on('beforeInit', () => { 38085 const { 38086 thumbs 38087 } = swiper.params; 38088 if (!thumbs || !thumbs.swiper) return; 38089 init(); 38090 update(true); 38091 }); 38092 on('slideChange update resize observerUpdate', () => { 38093 update(); 38094 }); 38095 on('setTransition', (_s, duration) => { 38096 const thumbsSwiper = swiper.thumbs.swiper; 38097 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 38098 thumbsSwiper.setTransition(duration); 38099 }); 38100 on('beforeDestroy', () => { 38101 const thumbsSwiper = swiper.thumbs.swiper; 38102 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 38103 38104 if (swiperCreated) { 38105 thumbsSwiper.destroy(); 38106 } 38107 }); 38108 Object.assign(swiper.thumbs, { 38109 init, 38110 update 38111 }); 38112} 38113 38114/***/ }), 38115
vendor: 9,118 bytes, lines 38116-38429
38116/***/ "./node_modules/swiper/modules/virtual/virtual.js": 38117/*!********************************************************!*\ 38118 !*** ./node_modules/swiper/modules/virtual/virtual.js ***! 38119 \********************************************************/ 38120/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 38121 38122"use strict"; 38123__webpack_require__.r(__webpack_exports__); 38124/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38125/* harmony export */ "default": function() { return /* binding */ Virtual; } 38126/* harmony export */ }); 38127/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 38128/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 38129 38130 38131function Virtual(_ref) { 38132 let { 38133 swiper, 38134 extendParams, 38135 on, 38136 emit 38137 } = _ref; 38138 extendParams({ 38139 virtual: { 38140 enabled: false, 38141 slides: [], 38142 cache: true, 38143 renderSlide: null, 38144 renderExternal: null, 38145 renderExternalUpdate: true, 38146 addSlidesBefore: 0, 38147 addSlidesAfter: 0 38148 } 38149 }); 38150 let cssModeTimeout; 38151 swiper.virtual = { 38152 cache: {}, 38153 from: undefined, 38154 to: undefined, 38155 slides: [], 38156 offset: 0, 38157 slidesGrid: [] 38158 }; 38159 38160 function renderSlide(slide, index) { 38161 const params = swiper.params.virtual; 38162 38163 if (params.cache && swiper.virtual.cache[index]) { 38164 return swiper.virtual.cache[index]; 38165 } 38166 38167 const $slideEl = params.renderSlide ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.renderSlide.call(swiper, slide, index)) : (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(`<div class="${swiper.params.slideClass}" data-swiper-slide-index="${index}">${slide}</div>`); 38168 if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index); 38169 if (params.cache) swiper.virtual.cache[index] = $slideEl; 38170 return $slideEl; 38171 } 38172 38173 function update(force) { 38174 const { 38175 slidesPerView, 38176 slidesPerGroup, 38177 centeredSlides 38178 } = swiper.params; 38179 const { 38180 addSlidesBefore, 38181 addSlidesAfter 38182 } = swiper.params.virtual; 38183 const { 38184 from: previousFrom, 38185 to: previousTo, 38186 slides, 38187 slidesGrid: previousSlidesGrid, 38188 offset: previousOffset 38189 } = swiper.virtual; 38190 38191 if (!swiper.params.cssMode) { 38192 swiper.updateActiveIndex(); 38193 } 38194 38195 const activeIndex = swiper.activeIndex || 0; 38196 let offsetProp; 38197 if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top'; 38198 let slidesAfter; 38199 let slidesBefore; 38200 38201 if (centeredSlides) { 38202 slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter; 38203 slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore; 38204 } else { 38205 slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter; 38206 slidesBefore = slidesPerGroup + addSlidesBefore; 38207 } 38208 38209 const from = Math.max((activeIndex || 0) - slidesBefore, 0); 38210 const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1); 38211 const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); 38212 Object.assign(swiper.virtual, { 38213 from, 38214 to, 38215 offset, 38216 slidesGrid: swiper.slidesGrid 38217 }); 38218 38219 function onRendered() { 38220 swiper.updateSlides(); 38221 swiper.updateProgress(); 38222 swiper.updateSlidesClasses(); 38223 38224 if (swiper.lazy && swiper.params.lazy.enabled) { 38225 swiper.lazy.load(); 38226 } 38227 38228 emit('virtualUpdate'); 38229 } 38230 38231 if (previousFrom === from && previousTo === to && !force) { 38232 if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) { 38233 swiper.slides.css(offsetProp, `${offset}px`); 38234 } 38235 38236 swiper.updateProgress(); 38237 emit('virtualUpdate'); 38238 return; 38239 } 38240 38241 if (swiper.params.virtual.renderExternal) { 38242 swiper.params.virtual.renderExternal.call(swiper, { 38243 offset, 38244 from, 38245 to, 38246 slides: function getSlides() { 38247 const slidesToRender = []; 38248 38249 for (let i = from; i <= to; i += 1) { 38250 slidesToRender.push(slides[i]); 38251 } 38252 38253 return slidesToRender; 38254 }() 38255 }); 38256 38257 if (swiper.params.virtual.renderExternalUpdate) { 38258 onRendered(); 38259 } else { 38260 emit('virtualUpdate'); 38261 } 38262 38263 return; 38264 } 38265 38266 const prependIndexes = []; 38267 const appendIndexes = []; 38268 38269 if (force) { 38270 swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove(); 38271 } else { 38272 for (let i = previousFrom; i <= previousTo; i += 1) { 38273 if (i < from || i > to) { 38274 swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index="${i}"]`).remove(); 38275 } 38276 } 38277 } 38278 38279 for (let i = 0; i < slides.length; i += 1) { 38280 if (i >= from && i <= to) { 38281 if (typeof previousTo === 'undefined' || force) { 38282 appendIndexes.push(i); 38283 } else { 38284 if (i > previousTo) appendIndexes.push(i); 38285 if (i < previousFrom) prependIndexes.push(i); 38286 } 38287 } 38288 } 38289 38290 appendIndexes.forEach(index => { 38291 swiper.$wrapperEl.append(renderSlide(slides[index], index)); 38292 }); 38293 prependIndexes.sort((a, b) => b - a).forEach(index => { 38294 swiper.$wrapperEl.prepend(renderSlide(slides[index], index)); 38295 }); 38296 swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`); 38297 onRendered(); 38298 } 38299 38300 function appendSlide(slides) { 38301 if (typeof slides === 'object' && 'length' in slides) { 38302 for (let i = 0; i < slides.length; i += 1) { 38303 if (slides[i]) swiper.virtual.slides.push(slides[i]); 38304 } 38305 } else { 38306 swiper.virtual.slides.push(slides); 38307 } 38308 38309 update(true); 38310 } 38311 38312 function prependSlide(slides) { 38313 const activeIndex = swiper.activeIndex; 38314 let newActiveIndex = activeIndex + 1; 38315 let numberOfNewSlides = 1; 38316 38317 if (Array.isArray(slides)) { 38318 for (let i = 0; i < slides.length; i += 1) { 38319 if (slides[i]) swiper.virtual.slides.unshift(slides[i]); 38320 } 38321 38322 newActiveIndex = activeIndex + slides.length; 38323 numberOfNewSlides = slides.length; 38324 } else { 38325 swiper.virtual.slides.unshift(slides); 38326 } 38327 38328 if (swiper.params.virtual.cache) { 38329 const cache = swiper.virtual.cache; 38330 const newCache = {}; 38331 Object.keys(cache).forEach(cachedIndex => { 38332 const $cachedEl = cache[cachedIndex]; 38333 const cachedElIndex = $cachedEl.attr('data-swiper-slide-index'); 38334 38335 if (cachedElIndex) { 38336 $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides); 38337 } 38338 38339 newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl; 38340 }); 38341 swiper.virtual.cache = newCache; 38342 } 38343 38344 update(true); 38345 swiper.slideTo(newActiveIndex, 0); 38346 } 38347 38348 function removeSlide(slidesIndexes) { 38349 if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return; 38350 let activeIndex = swiper.activeIndex; 38351 38352 if (Array.isArray(slidesIndexes)) { 38353 for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) { 38354 swiper.virtual.slides.splice(slidesIndexes[i], 1); 38355 38356 if (swiper.params.virtual.cache) { 38357 delete swiper.virtual.cache[slidesIndexes[i]]; 38358 } 38359 38360 if (slidesIndexes[i] < activeIndex) activeIndex -= 1; 38361 activeIndex = Math.max(activeIndex, 0); 38362 } 38363 } else { 38364 swiper.virtual.slides.splice(slidesIndexes, 1); 38365 38366 if (swiper.params.virtual.cache) { 38367 delete swiper.virtual.cache[slidesIndexes]; 38368 } 38369 38370 if (slidesIndexes < activeIndex) activeIndex -= 1; 38371 activeIndex = Math.max(activeIndex, 0); 38372 } 38373 38374 update(true); 38375 swiper.slideTo(activeIndex, 0); 38376 } 38377 38378 function removeAllSlides() { 38379 swiper.virtual.slides = []; 38380 38381 if (swiper.params.virtual.cache) { 38382 swiper.virtual.cache = {}; 38383 } 38384 38385 update(true); 38386 swiper.slideTo(0, 0); 38387 } 38388 38389 on('beforeInit', () => { 38390 if (!swiper.params.virtual.enabled) return; 38391 swiper.virtual.slides = swiper.params.virtual.slides; 38392 swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`); 38393 swiper.params.watchSlidesProgress = true; 38394 swiper.originalParams.watchSlidesProgress = true; 38395 38396 if (!swiper.params.initialSlide) { 38397 update(); 38398 } 38399 }); 38400 on('setTranslate', () => { 38401 if (!swiper.params.virtual.enabled) return; 38402 38403 if (swiper.params.cssMode && !swiper._immediateVirtual) { 38404 clearTimeout(cssModeTimeout); 38405 cssModeTimeout = setTimeout(() => { 38406 update(); 38407 }, 100); 38408 } else { 38409 update(); 38410 } 38411 }); 38412 on('init update resize', () => { 38413 if (!swiper.params.virtual.enabled) return; 38414 38415 if (swiper.params.cssMode) { 38416 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.setCSSProperty)(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`); 38417 } 38418 }); 38419 Object.assign(swiper.virtual, { 38420 appendSlide, 38421 prependSlide, 38422 removeSlide, 38423 removeAllSlides, 38424 update 38425 }); 38426} 38427 38428/***/ }), 38429
vendor: 21,711 bytes, lines 38430-39059
38430/***/ "./node_modules/swiper/modules/zoom/zoom.js": 38431/*!**************************************************!*\ 38432 !*** ./node_modules/swiper/modules/zoom/zoom.js ***! 38433 \**************************************************/ 38434/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 38435 38436"use strict"; 38437__webpack_require__.r(__webpack_exports__); 38438/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38439/* harmony export */ "default": function() { return /* binding */ Zoom; } 38440/* harmony export */ }); 38441/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 38442/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 38443/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 38444 38445 38446 38447function Zoom(_ref) { 38448 let { 38449 swiper, 38450 extendParams, 38451 on, 38452 emit 38453 } = _ref; 38454 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 38455 extendParams({ 38456 zoom: { 38457 enabled: false, 38458 maxRatio: 3, 38459 minRatio: 1, 38460 toggle: true, 38461 containerClass: 'swiper-zoom-container', 38462 zoomedSlideClass: 'swiper-slide-zoomed' 38463 } 38464 }); 38465 swiper.zoom = { 38466 enabled: false 38467 }; 38468 let currentScale = 1; 38469 let isScaling = false; 38470 let gesturesEnabled; 38471 let fakeGestureTouched; 38472 let fakeGestureMoved; 38473 const gesture = { 38474 $slideEl: undefined, 38475 slideWidth: undefined, 38476 slideHeight: undefined, 38477 $imageEl: undefined, 38478 $imageWrapEl: undefined, 38479 maxRatio: 3 38480 }; 38481 const image = { 38482 isTouched: undefined, 38483 isMoved: undefined, 38484 currentX: undefined, 38485 currentY: undefined, 38486 minX: undefined, 38487 minY: undefined, 38488 maxX: undefined, 38489 maxY: undefined, 38490 width: undefined, 38491 height: undefined, 38492 startX: undefined, 38493 startY: undefined, 38494 touchesStart: {}, 38495 touchesCurrent: {} 38496 }; 38497 const velocity = { 38498 x: undefined, 38499 y: undefined, 38500 prevPositionX: undefined, 38501 prevPositionY: undefined, 38502 prevTime: undefined 38503 }; 38504 let scale = 1; 38505 Object.defineProperty(swiper.zoom, 'scale', { 38506 get() { 38507 return scale; 38508 }, 38509 38510 set(value) { 38511 if (scale !== value) { 38512 const imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined; 38513 const slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined; 38514 emit('zoomChange', value, imageEl, slideEl); 38515 } 38516 38517 scale = value; 38518 } 38519 38520 }); 38521 38522 function getDistanceBetweenTouches(e) { 38523 if (e.targetTouches.length < 2) return 1; 38524 const x1 = e.targetTouches[0].pageX; 38525 const y1 = e.targetTouches[0].pageY; 38526 const x2 = e.targetTouches[1].pageX; 38527 const y2 = e.targetTouches[1].pageY; 38528 const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2); 38529 return distance; 38530 } // Events 38531 38532 38533 function onGestureStart(e) { 38534 const support = swiper.support; 38535 const params = swiper.params.zoom; 38536 fakeGestureTouched = false; 38537 fakeGestureMoved = false; 38538 38539 if (!support.gestures) { 38540 if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) { 38541 return; 38542 } 38543 38544 fakeGestureTouched = true; 38545 gesture.scaleStart = getDistanceBetweenTouches(e); 38546 } 38547 38548 if (!gesture.$slideEl || !gesture.$slideEl.length) { 38549 gesture.$slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target).closest(`.${swiper.params.slideClass}`); 38550 if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); 38551 gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0); 38552 gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`); 38553 gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; 38554 38555 if (gesture.$imageWrapEl.length === 0) { 38556 gesture.$imageEl = undefined; 38557 return; 38558 } 38559 } 38560 38561 if (gesture.$imageEl) { 38562 gesture.$imageEl.transition(0); 38563 } 38564 38565 isScaling = true; 38566 } 38567 38568 function onGestureChange(e) { 38569 const support = swiper.support; 38570 const params = swiper.params.zoom; 38571 const zoom = swiper.zoom; 38572 38573 if (!support.gestures) { 38574 if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) { 38575 return; 38576 } 38577 38578 fakeGestureMoved = true; 38579 gesture.scaleMove = getDistanceBetweenTouches(e); 38580 } 38581 38582 if (!gesture.$imageEl || gesture.$imageEl.length === 0) { 38583 if (e.type === 'gesturechange') onGestureStart(e); 38584 return; 38585 } 38586 38587 if (support.gestures) { 38588 zoom.scale = e.scale * currentScale; 38589 } else { 38590 zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale; 38591 } 38592 38593 if (zoom.scale > gesture.maxRatio) { 38594 zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5; 38595 } 38596 38597 if (zoom.scale < params.minRatio) { 38598 zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5; 38599 } 38600 38601 gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`); 38602 } 38603 38604 function onGestureEnd(e) { 38605 const device = swiper.device; 38606 const support = swiper.support; 38607 const params = swiper.params.zoom; 38608 const zoom = swiper.zoom; 38609 38610 if (!support.gestures) { 38611 if (!fakeGestureTouched || !fakeGestureMoved) { 38612 return; 38613 } 38614 38615 if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) { 38616 return; 38617 } 38618 38619 fakeGestureTouched = false; 38620 fakeGestureMoved = false; 38621 } 38622 38623 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 38624 zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); 38625 gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`); 38626 currentScale = zoom.scale; 38627 isScaling = false; 38628 if (zoom.scale === 1) gesture.$slideEl = undefined; 38629 } 38630 38631 function onTouchStart(e) { 38632 const device = swiper.device; 38633 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 38634 if (image.isTouched) return; 38635 if (device.android && e.cancelable) e.preventDefault(); 38636 image.isTouched = true; 38637 image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; 38638 image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; 38639 } 38640 38641 function onTouchMove(e) { 38642 const zoom = swiper.zoom; 38643 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 38644 swiper.allowClick = false; 38645 if (!image.isTouched || !gesture.$slideEl) return; 38646 38647 if (!image.isMoved) { 38648 image.width = gesture.$imageEl[0].offsetWidth; 38649 image.height = gesture.$imageEl[0].offsetHeight; 38650 image.startX = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.getTranslate)(gesture.$imageWrapEl[0], 'x') || 0; 38651 image.startY = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.getTranslate)(gesture.$imageWrapEl[0], 'y') || 0; 38652 gesture.slideWidth = gesture.$slideEl[0].offsetWidth; 38653 gesture.slideHeight = gesture.$slideEl[0].offsetHeight; 38654 gesture.$imageWrapEl.transition(0); 38655 } // Define if we need image drag 38656 38657 38658 const scaledWidth = image.width * zoom.scale; 38659 const scaledHeight = image.height * zoom.scale; 38660 if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return; 38661 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 38662 image.maxX = -image.minX; 38663 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 38664 image.maxY = -image.minY; 38665 image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; 38666 image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; 38667 38668 if (!image.isMoved && !isScaling) { 38669 if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) { 38670 image.isTouched = false; 38671 return; 38672 } 38673 38674 if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) { 38675 image.isTouched = false; 38676 return; 38677 } 38678 } 38679 38680 if (e.cancelable) { 38681 e.preventDefault(); 38682 } 38683 38684 e.stopPropagation(); 38685 image.isMoved = true; 38686 image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX; 38687 image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY; 38688 38689 if (image.currentX < image.minX) { 38690 image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8; 38691 } 38692 38693 if (image.currentX > image.maxX) { 38694 image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8; 38695 } 38696 38697 if (image.currentY < image.minY) { 38698 image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8; 38699 } 38700 38701 if (image.currentY > image.maxY) { 38702 image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8; 38703 } // Velocity 38704 38705 38706 if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x; 38707 if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y; 38708 if (!velocity.prevTime) velocity.prevTime = Date.now(); 38709 velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; 38710 velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; 38711 if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0; 38712 if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0; 38713 velocity.prevPositionX = image.touchesCurrent.x; 38714 velocity.prevPositionY = image.touchesCurrent.y; 38715 velocity.prevTime = Date.now(); 38716 gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`); 38717 } 38718 38719 function onTouchEnd() { 38720 const zoom = swiper.zoom; 38721 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 38722 38723 if (!image.isTouched || !image.isMoved) { 38724 image.isTouched = false; 38725 image.isMoved = false; 38726 return; 38727 } 38728 38729 image.isTouched = false; 38730 image.isMoved = false; 38731 let momentumDurationX = 300; 38732 let momentumDurationY = 300; 38733 const momentumDistanceX = velocity.x * momentumDurationX; 38734 const newPositionX = image.currentX + momentumDistanceX; 38735 const momentumDistanceY = velocity.y * momentumDurationY; 38736 const newPositionY = image.currentY + momentumDistanceY; // Fix duration 38737 38738 if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); 38739 if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); 38740 const momentumDuration = Math.max(momentumDurationX, momentumDurationY); 38741 image.currentX = newPositionX; 38742 image.currentY = newPositionY; // Define if we need image drag 38743 38744 const scaledWidth = image.width * zoom.scale; 38745 const scaledHeight = image.height * zoom.scale; 38746 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 38747 image.maxX = -image.minX; 38748 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 38749 image.maxY = -image.minY; 38750 image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); 38751 image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); 38752 gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`); 38753 } 38754 38755 function onTransitionEnd() { 38756 const zoom = swiper.zoom; 38757 38758 if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) { 38759 if (gesture.$imageEl) { 38760 gesture.$imageEl.transform('translate3d(0,0,0) scale(1)'); 38761 } 38762 38763 if (gesture.$imageWrapEl) { 38764 gesture.$imageWrapEl.transform('translate3d(0,0,0)'); 38765 } 38766 38767 zoom.scale = 1; 38768 currentScale = 1; 38769 gesture.$slideEl = undefined; 38770 gesture.$imageEl = undefined; 38771 gesture.$imageWrapEl = undefined; 38772 } 38773 } 38774 38775 function zoomIn(e) { 38776 const zoom = swiper.zoom; 38777 const params = swiper.params.zoom; 38778 38779 if (!gesture.$slideEl) { 38780 if (e && e.target) { 38781 gesture.$slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target).closest(`.${swiper.params.slideClass}`); 38782 } 38783 38784 if (!gesture.$slideEl) { 38785 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 38786 gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`); 38787 } else { 38788 gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); 38789 } 38790 } 38791 38792 gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0); 38793 gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`); 38794 } 38795 38796 if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return; 38797 38798 if (swiper.params.cssMode) { 38799 swiper.wrapperEl.style.overflow = 'hidden'; 38800 swiper.wrapperEl.style.touchAction = 'none'; 38801 } 38802 38803 gesture.$slideEl.addClass(`${params.zoomedSlideClass}`); 38804 let touchX; 38805 let touchY; 38806 let offsetX; 38807 let offsetY; 38808 let diffX; 38809 let diffY; 38810 let translateX; 38811 let translateY; 38812 let imageWidth; 38813 let imageHeight; 38814 let scaledWidth; 38815 let scaledHeight; 38816 let translateMinX; 38817 let translateMinY; 38818 let translateMaxX; 38819 let translateMaxY; 38820 let slideWidth; 38821 let slideHeight; 38822 38823 if (typeof image.touchesStart.x === 'undefined' && e) { 38824 touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX; 38825 touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY; 38826 } else { 38827 touchX = image.touchesStart.x; 38828 touchY = image.touchesStart.y; 38829 } 38830 38831 zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; 38832 currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; 38833 38834 if (e) { 38835 slideWidth = gesture.$slideEl[0].offsetWidth; 38836 slideHeight = gesture.$slideEl[0].offsetHeight; 38837 offsetX = gesture.$slideEl.offset().left + window.scrollX; 38838 offsetY = gesture.$slideEl.offset().top + window.scrollY; 38839 diffX = offsetX + slideWidth / 2 - touchX; 38840 diffY = offsetY + slideHeight / 2 - touchY; 38841 imageWidth = gesture.$imageEl[0].offsetWidth; 38842 imageHeight = gesture.$imageEl[0].offsetHeight; 38843 scaledWidth = imageWidth * zoom.scale; 38844 scaledHeight = imageHeight * zoom.scale; 38845 translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0); 38846 translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0); 38847 translateMaxX = -translateMinX; 38848 translateMaxY = -translateMinY; 38849 translateX = diffX * zoom.scale; 38850 translateY = diffY * zoom.scale; 38851 38852 if (translateX < translateMinX) { 38853 translateX = translateMinX; 38854 } 38855 38856 if (translateX > translateMaxX) { 38857 translateX = translateMaxX; 38858 } 38859 38860 if (translateY < translateMinY) { 38861 translateY = translateMinY; 38862 } 38863 38864 if (translateY > translateMaxY) { 38865 translateY = translateMaxY; 38866 } 38867 } else { 38868 translateX = 0; 38869 translateY = 0; 38870 } 38871 38872 gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`); 38873 gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`); 38874 } 38875 38876 function zoomOut() { 38877 const zoom = swiper.zoom; 38878 const params = swiper.params.zoom; 38879 38880 if (!gesture.$slideEl) { 38881 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 38882 gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`); 38883 } else { 38884 gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); 38885 } 38886 38887 gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0); 38888 gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`); 38889 } 38890 38891 if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return; 38892 38893 if (swiper.params.cssMode) { 38894 swiper.wrapperEl.style.overflow = ''; 38895 swiper.wrapperEl.style.touchAction = ''; 38896 } 38897 38898 zoom.scale = 1; 38899 currentScale = 1; 38900 gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)'); 38901 gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)'); 38902 gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`); 38903 gesture.$slideEl = undefined; 38904 } // Toggle Zoom 38905 38906 38907 function zoomToggle(e) { 38908 const zoom = swiper.zoom; 38909 38910 if (zoom.scale && zoom.scale !== 1) { 38911 // Zoom Out 38912 zoomOut(); 38913 } else { 38914 // Zoom In 38915 zoomIn(e); 38916 } 38917 } 38918 38919 function getListeners() { 38920 const support = swiper.support; 38921 const passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? { 38922 passive: true, 38923 capture: false 38924 } : false; 38925 const activeListenerWithCapture = support.passiveListener ? { 38926 passive: false, 38927 capture: true 38928 } : true; 38929 return { 38930 passiveListener, 38931 activeListenerWithCapture 38932 }; 38933 } 38934 38935 function getSlideSelector() { 38936 return `.${swiper.params.slideClass}`; 38937 } 38938 38939 function toggleGestures(method) { 38940 const { 38941 passiveListener 38942 } = getListeners(); 38943 const slideSelector = getSlideSelector(); 38944 swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener); 38945 swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener); 38946 swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener); 38947 } 38948 38949 function enableGestures() { 38950 if (gesturesEnabled) return; 38951 gesturesEnabled = true; 38952 toggleGestures('on'); 38953 } 38954 38955 function disableGestures() { 38956 if (!gesturesEnabled) return; 38957 gesturesEnabled = false; 38958 toggleGestures('off'); 38959 } // Attach/Detach Events 38960 38961 38962 function enable() { 38963 const zoom = swiper.zoom; 38964 if (zoom.enabled) return; 38965 zoom.enabled = true; 38966 const support = swiper.support; 38967 const { 38968 passiveListener, 38969 activeListenerWithCapture 38970 } = getListeners(); 38971 const slideSelector = getSlideSelector(); // Scale image 38972 38973 if (support.gestures) { 38974 swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener); 38975 swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener); 38976 } else if (swiper.touchEvents.start === 'touchstart') { 38977 swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener); 38978 swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture); 38979 swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener); 38980 38981 if (swiper.touchEvents.cancel) { 38982 swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener); 38983 } 38984 } // Move image 38985 38986 38987 swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture); 38988 } 38989 38990 function disable() { 38991 const zoom = swiper.zoom; 38992 if (!zoom.enabled) return; 38993 const support = swiper.support; 38994 zoom.enabled = false; 38995 const { 38996 passiveListener, 38997 activeListenerWithCapture 38998 } = getListeners(); 38999 const slideSelector = getSlideSelector(); // Scale image 39000 39001 if (support.gestures) { 39002 swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener); 39003 swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener); 39004 } else if (swiper.touchEvents.start === 'touchstart') { 39005 swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener); 39006 swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture); 39007 swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener); 39008 39009 if (swiper.touchEvents.cancel) { 39010 swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener); 39011 } 39012 } // Move image 39013 39014 39015 swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture); 39016 } 39017 39018 on('init', () => { 39019 if (swiper.params.zoom.enabled) { 39020 enable(); 39021 } 39022 }); 39023 on('destroy', () => { 39024 disable(); 39025 }); 39026 on('touchStart', (_s, e) => { 39027 if (!swiper.zoom.enabled) return; 39028 onTouchStart(e); 39029 }); 39030 on('touchEnd', (_s, e) => { 39031 if (!swiper.zoom.enabled) return; 39032 onTouchEnd(e); 39033 }); 39034 on('doubleTap', (_s, e) => { 39035 if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { 39036 zoomToggle(e); 39037 } 39038 }); 39039 on('transitionEnd', () => { 39040 if (swiper.zoom.enabled && swiper.params.zoom.enabled) { 39041 onTransitionEnd(); 39042 } 39043 }); 39044 on('slideChange', () => { 39045 if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) { 39046 onTransitionEnd(); 39047 } 39048 }); 39049 Object.assign(swiper.zoom, { 39050 enable, 39051 disable, 39052 in: zoomIn, 39053 out: zoomOut, 39054 toggle: zoomToggle 39055 }); 39056} 39057 39058/***/ }), 39059
vendor: 801 bytes, lines 39060-39081
39060/***/ "./node_modules/swiper/shared/classes-to-selector.js": 39061/*!***********************************************************!*\ 39062 !*** ./node_modules/swiper/shared/classes-to-selector.js ***! 39063 \***********************************************************/ 39064/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 39065 39066"use strict"; 39067__webpack_require__.r(__webpack_exports__); 39068/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39069/* harmony export */ "default": function() { return /* binding */ classesToSelector; } 39070/* harmony export */ }); 39071function classesToSelector(classes) { 39072 if (classes === void 0) { 39073 classes = ''; 39074 } 39075 39076 return `.${classes.trim().replace(/([\.:!\/])/g, '\\$1') // eslint-disable-line 39077 .replace(/ /g, '.')}`; 39078} 39079 39080/***/ }), 39081
vendor: 1,449 bytes, lines 39082-39119
39082/***/ "./node_modules/swiper/shared/create-element-if-not-defined.js": 39083/*!*********************************************************************!*\ 39084 !*** ./node_modules/swiper/shared/create-element-if-not-defined.js ***! 39085 \*********************************************************************/ 39086/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 39087 39088"use strict"; 39089__webpack_require__.r(__webpack_exports__); 39090/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39091/* harmony export */ "default": function() { return /* binding */ createElementIfNotDefined; } 39092/* harmony export */ }); 39093/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 39094 39095function createElementIfNotDefined(swiper, originalParams, params, checkProps) { 39096 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 39097 39098 if (swiper.params.createElements) { 39099 Object.keys(checkProps).forEach(key => { 39100 if (!params[key] && params.auto === true) { 39101 let element = swiper.$el.children(`.${checkProps[key]}`)[0]; 39102 39103 if (!element) { 39104 element = document.createElement('div'); 39105 element.className = checkProps[key]; 39106 swiper.$el.append(element); 39107 } 39108 39109 params[key] = element; 39110 originalParams[key] = element; 39111 } 39112 }); 39113 } 39114 39115 return params; 39116} 39117 39118/***/ }), 39119
vendor: 1,223 bytes, lines 39120-39147
39120/***/ "./node_modules/swiper/shared/create-shadow.js": 39121/*!*****************************************************!*\ 39122 !*** ./node_modules/swiper/shared/create-shadow.js ***! 39123 \*****************************************************/ 39124/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 39125 39126"use strict"; 39127__webpack_require__.r(__webpack_exports__); 39128/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39129/* harmony export */ "default": function() { return /* binding */ createShadow; } 39130/* harmony export */ }); 39131/* harmony import */ var _dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom.js */ "./node_modules/swiper/shared/dom.js"); 39132 39133function createShadow(params, $slideEl, side) { 39134 const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`; 39135 const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl; 39136 let $shadowEl = $shadowContainer.children(`.${shadowClass}`); 39137 39138 if (!$shadowEl.length) { 39139 $shadowEl = (0,_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(`<div class="swiper-slide-shadow${side ? `-${side}` : ''}"></div>`); 39140 $shadowContainer.append($shadowEl); 39141 } 39142 39143 return $shadowEl; 39144} 39145 39146/***/ }), 39147
vendor: 2,698 bytes, lines 39148-39205
39148/***/ "./node_modules/swiper/shared/dom.js": 39149/*!*******************************************!*\ 39150 !*** ./node_modules/swiper/shared/dom.js ***! 39151 \*******************************************/ 39152/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 39153 39154"use strict"; 39155__webpack_require__.r(__webpack_exports__); 39156/* harmony import */ var dom7__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dom7 */ "./node_modules/dom7/dom7.esm.js"); 39157 39158const Methods = { 39159 addClass: dom7__WEBPACK_IMPORTED_MODULE_0__.addClass, 39160 removeClass: dom7__WEBPACK_IMPORTED_MODULE_0__.removeClass, 39161 hasClass: dom7__WEBPACK_IMPORTED_MODULE_0__.hasClass, 39162 toggleClass: dom7__WEBPACK_IMPORTED_MODULE_0__.toggleClass, 39163 attr: dom7__WEBPACK_IMPORTED_MODULE_0__.attr, 39164 removeAttr: dom7__WEBPACK_IMPORTED_MODULE_0__.removeAttr, 39165 transform: dom7__WEBPACK_IMPORTED_MODULE_0__.transform, 39166 transition: dom7__WEBPACK_IMPORTED_MODULE_0__.transition, 39167 on: dom7__WEBPACK_IMPORTED_MODULE_0__.on, 39168 off: dom7__WEBPACK_IMPORTED_MODULE_0__.off, 39169 trigger: dom7__WEBPACK_IMPORTED_MODULE_0__.trigger, 39170 transitionEnd: dom7__WEBPACK_IMPORTED_MODULE_0__.transitionEnd, 39171 outerWidth: dom7__WEBPACK_IMPORTED_MODULE_0__.outerWidth, 39172 outerHeight: dom7__WEBPACK_IMPORTED_MODULE_0__.outerHeight, 39173 styles: dom7__WEBPACK_IMPORTED_MODULE_0__.styles, 39174 offset: dom7__WEBPACK_IMPORTED_MODULE_0__.offset, 39175 css: dom7__WEBPACK_IMPORTED_MODULE_0__.css, 39176 each: dom7__WEBPACK_IMPORTED_MODULE_0__.each, 39177 html: dom7__WEBPACK_IMPORTED_MODULE_0__.html, 39178 text: dom7__WEBPACK_IMPORTED_MODULE_0__.text, 39179 is: dom7__WEBPACK_IMPORTED_MODULE_0__.is, 39180 index: dom7__WEBPACK_IMPORTED_MODULE_0__.index, 39181 eq: dom7__WEBPACK_IMPORTED_MODULE_0__.eq, 39182 append: dom7__WEBPACK_IMPORTED_MODULE_0__.append, 39183 prepend: dom7__WEBPACK_IMPORTED_MODULE_0__.prepend, 39184 next: dom7__WEBPACK_IMPORTED_MODULE_0__.next, 39185 nextAll: dom7__WEBPACK_IMPORTED_MODULE_0__.nextAll, 39186 prev: dom7__WEBPACK_IMPORTED_MODULE_0__.prev, 39187 prevAll: dom7__WEBPACK_IMPORTED_MODULE_0__.prevAll, 39188 parent: dom7__WEBPACK_IMPORTED_MODULE_0__.parent, 39189 parents: dom7__WEBPACK_IMPORTED_MODULE_0__.parents, 39190 closest: dom7__WEBPACK_IMPORTED_MODULE_0__.closest, 39191 find: dom7__WEBPACK_IMPORTED_MODULE_0__.find, 39192 children: dom7__WEBPACK_IMPORTED_MODULE_0__.children, 39193 filter: dom7__WEBPACK_IMPORTED_MODULE_0__.filter, 39194 remove: dom7__WEBPACK_IMPORTED_MODULE_0__.remove 39195}; 39196Object.keys(Methods).forEach(methodName => { 39197 Object.defineProperty(dom7__WEBPACK_IMPORTED_MODULE_0__.$.fn, methodName, { 39198 value: Methods[methodName], 39199 writable: true 39200 }); 39201}); 39202/* harmony default export */ __webpack_exports__["default"] = (dom7__WEBPACK_IMPORTED_MODULE_0__.$); 39203 39204/***/ }), 39205
vendor: 2,354 bytes, lines 39206-39281
39206/***/ "./node_modules/swiper/shared/effect-init.js": 39207/*!***************************************************!*\ 39208 !*** ./node_modules/swiper/shared/effect-init.js ***! 39209 \***************************************************/ 39210/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 39211 39212"use strict"; 39213__webpack_require__.r(__webpack_exports__); 39214/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39215/* harmony export */ "default": function() { return /* binding */ effectInit; } 39216/* harmony export */ }); 39217function effectInit(params) { 39218 const { 39219 effect, 39220 swiper, 39221 on, 39222 setTranslate, 39223 setTransition, 39224 overwriteParams, 39225 perspective, 39226 recreateShadows, 39227 getEffectParams 39228 } = params; 39229 on('beforeInit', () => { 39230 if (swiper.params.effect !== effect) return; 39231 swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`); 39232 39233 if (perspective && perspective()) { 39234 swiper.classNames.push(`${swiper.params.containerModifierClass}3d`); 39235 } 39236 39237 const overwriteParamsResult = overwriteParams ? overwriteParams() : {}; 39238 Object.assign(swiper.params, overwriteParamsResult); 39239 Object.assign(swiper.originalParams, overwriteParamsResult); 39240 }); 39241 on('setTranslate', () => { 39242 if (swiper.params.effect !== effect) return; 39243 setTranslate(); 39244 }); 39245 on('setTransition', (_s, duration) => { 39246 if (swiper.params.effect !== effect) return; 39247 setTransition(duration); 39248 }); 39249 on('transitionEnd', () => { 39250 if (swiper.params.effect !== effect) return; 39251 39252 if (recreateShadows) { 39253 if (!getEffectParams || !getEffectParams().slideShadows) return; // remove shadows 39254 39255 swiper.slides.each(slideEl => { 39256 const $slideEl = swiper.$(slideEl); 39257 $slideEl.find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').remove(); 39258 }); // create new one 39259 39260 recreateShadows(); 39261 } 39262 }); 39263 let requireUpdateOnVirtual; 39264 on('virtualUpdate', () => { 39265 if (swiper.params.effect !== effect) return; 39266 39267 if (!swiper.slides.length) { 39268 requireUpdateOnVirtual = true; 39269 } 39270 39271 requestAnimationFrame(() => { 39272 if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) { 39273 setTranslate(); 39274 requireUpdateOnVirtual = false; 39275 } 39276 }); 39277 }); 39278} 39279 39280/***/ }), 39281
vendor: 832 bytes, lines 39282-39305
39282/***/ "./node_modules/swiper/shared/effect-target.js": 39283/*!*****************************************************!*\ 39284 !*** ./node_modules/swiper/shared/effect-target.js ***! 39285 \*****************************************************/ 39286/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 39287 39288"use strict"; 39289__webpack_require__.r(__webpack_exports__); 39290/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39291/* harmony export */ "default": function() { return /* binding */ effectTarget; } 39292/* harmony export */ }); 39293function effectTarget(effectParams, $slideEl) { 39294 if (effectParams.transformEl) { 39295 return $slideEl.find(effectParams.transformEl).css({ 39296 'backface-visibility': 'hidden', 39297 '-webkit-backface-visibility': 'hidden' 39298 }); 39299 } 39300 39301 return $slideEl; 39302} 39303 39304/***/ }), 39305
vendor: 1,578 bytes, lines 39306-39355
39306/***/ "./node_modules/swiper/shared/effect-virtual-transition-end.js": 39307/*!*********************************************************************!*\ 39308 !*** ./node_modules/swiper/shared/effect-virtual-transition-end.js ***! 39309 \*********************************************************************/ 39310/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 39311 39312"use strict"; 39313__webpack_require__.r(__webpack_exports__); 39314/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39315/* harmony export */ "default": function() { return /* binding */ effectVirtualTransitionEnd; } 39316/* harmony export */ }); 39317function effectVirtualTransitionEnd(_ref) { 39318 let { 39319 swiper, 39320 duration, 39321 transformEl, 39322 allSlides 39323 } = _ref; 39324 const { 39325 slides, 39326 activeIndex, 39327 $wrapperEl 39328 } = swiper; 39329 39330 if (swiper.params.virtualTranslate && duration !== 0) { 39331 let eventTriggered = false; 39332 let $transitionEndTarget; 39333 39334 if (allSlides) { 39335 $transitionEndTarget = transformEl ? slides.find(transformEl) : slides; 39336 } else { 39337 $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex); 39338 } 39339 39340 $transitionEndTarget.transitionEnd(() => { 39341 if (eventTriggered) return; 39342 if (!swiper || swiper.destroyed) return; 39343 eventTriggered = true; 39344 swiper.animating = false; 39345 const triggerEvents = ['webkitTransitionEnd', 'transitionend']; 39346 39347 for (let i = 0; i < triggerEvents.length; i += 1) { 39348 $wrapperEl.trigger(triggerEvents[i]); 39349 } 39350 }); 39351 } 39352} 39353 39354/***/ }), 39355
vendor: 1,254 bytes, lines 39356-39396
39356/***/ "./node_modules/swiper/shared/get-browser.js": 39357/*!***************************************************!*\ 39358 !*** ./node_modules/swiper/shared/get-browser.js ***! 39359 \***************************************************/ 39360/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 39361 39362"use strict"; 39363__webpack_require__.r(__webpack_exports__); 39364/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39365/* harmony export */ "getBrowser": function() { return /* binding */ getBrowser; } 39366/* harmony export */ }); 39367/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 39368 39369let browser; 39370 39371function calcBrowser() { 39372 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 39373 39374 function isSafari() { 39375 const ua = window.navigator.userAgent.toLowerCase(); 39376 return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0; 39377 } 39378 39379 return { 39380 isSafari: isSafari(), 39381 isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent) 39382 }; 39383} 39384 39385function getBrowser() { 39386 if (!browser) { 39387 browser = calcBrowser(); 39388 } 39389 39390 return browser; 39391} 39392 39393 39394 39395/***/ }), 39396
vendor: 2,521 bytes, lines 39397-39474
39397/***/ "./node_modules/swiper/shared/get-device.js": 39398/*!**************************************************!*\ 39399 !*** ./node_modules/swiper/shared/get-device.js ***! 39400 \**************************************************/ 39401/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 39402 39403"use strict"; 39404__webpack_require__.r(__webpack_exports__); 39405/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39406/* harmony export */ "getDevice": function() { return /* binding */ getDevice; } 39407/* harmony export */ }); 39408/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 39409/* harmony import */ var _get_support_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-support.js */ "./node_modules/swiper/shared/get-support.js"); 39410 39411 39412let deviceCached; 39413 39414function calcDevice(_temp) { 39415 let { 39416 userAgent 39417 } = _temp === void 0 ? {} : _temp; 39418 const support = (0,_get_support_js__WEBPACK_IMPORTED_MODULE_1__.getSupport)(); 39419 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 39420 const platform = window.navigator.platform; 39421 const ua = userAgent || window.navigator.userAgent; 39422 const device = { 39423 ios: false, 39424 android: false 39425 }; 39426 const screenWidth = window.screen.width; 39427 const screenHeight = window.screen.height; 39428 const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line 39429 39430 let ipad = ua.match(/(iPad).*OS\s([\d_]+)/); 39431 const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); 39432 const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); 39433 const windows = platform === 'Win32'; 39434 let macos = platform === 'MacIntel'; // iPadOs 13 fix 39435 39436 const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810']; 39437 39438 if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) { 39439 ipad = ua.match(/(Version)\/([\d.]+)/); 39440 if (!ipad) ipad = [0, 1, '13_0_0']; 39441 macos = false; 39442 } // Android 39443 39444 39445 if (android && !windows) { 39446 device.os = 'android'; 39447 device.android = true; 39448 } 39449 39450 if (ipad || iphone || ipod) { 39451 device.os = 'ios'; 39452 device.ios = true; 39453 } // Export object 39454 39455 39456 return device; 39457} 39458 39459function getDevice(overrides) { 39460 if (overrides === void 0) { 39461 overrides = {}; 39462 } 39463 39464 if (!deviceCached) { 39465 deviceCached = calcDevice(overrides); 39466 } 39467 39468 return deviceCached; 39469} 39470 39471 39472 39473/***/ }), 39474
vendor: 1,755 bytes, lines 39475-39530
39475/***/ "./node_modules/swiper/shared/get-support.js": 39476/*!***************************************************!*\ 39477 !*** ./node_modules/swiper/shared/get-support.js ***! 39478 \***************************************************/ 39479/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 39480 39481"use strict"; 39482__webpack_require__.r(__webpack_exports__); 39483/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39484/* harmony export */ "getSupport": function() { return /* binding */ getSupport; } 39485/* harmony export */ }); 39486/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 39487 39488let support; 39489 39490function calcSupport() { 39491 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 39492 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 39493 return { 39494 smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style, 39495 touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch), 39496 passiveListener: function checkPassiveListener() { 39497 let supportsPassive = false; 39498 39499 try { 39500 const opts = Object.defineProperty({}, 'passive', { 39501 // eslint-disable-next-line 39502 get() { 39503 supportsPassive = true; 39504 } 39505 39506 }); 39507 window.addEventListener('testPassiveListener', null, opts); 39508 } catch (e) {// No support 39509 } 39510 39511 return supportsPassive; 39512 }(), 39513 gestures: function checkGestures() { 39514 return 'ongesturestart' in window; 39515 }() 39516 }; 39517} 39518 39519function getSupport() { 39520 if (!support) { 39521 support = calcSupport(); 39522 } 39523 39524 return support; 39525} 39526 39527 39528 39529/***/ }), 39530
vendor: 7,313 bytes, lines 39531-39759
39531/***/ "./node_modules/swiper/shared/utils.js": 39532/*!*********************************************!*\ 39533 !*** ./node_modules/swiper/shared/utils.js ***! 39534 \*********************************************/ 39535/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 39536 39537"use strict"; 39538__webpack_require__.r(__webpack_exports__); 39539/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39540/* harmony export */ "animateCSSModeScroll": function() { return /* binding */ animateCSSModeScroll; }, 39541/* harmony export */ "deleteProps": function() { return /* binding */ deleteProps; }, 39542/* harmony export */ "nextTick": function() { return /* binding */ nextTick; }, 39543/* harmony export */ "now": function() { return /* binding */ now; }, 39544/* harmony export */ "getTranslate": function() { return /* binding */ getTranslate; }, 39545/* harmony export */ "isObject": function() { return /* binding */ isObject; }, 39546/* harmony export */ "extend": function() { return /* binding */ extend; }, 39547/* harmony export */ "getComputedStyle": function() { return /* binding */ getComputedStyle; }, 39548/* harmony export */ "setCSSProperty": function() { return /* binding */ setCSSProperty; } 39549/* harmony export */ }); 39550/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 39551 39552 39553function deleteProps(obj) { 39554 const object = obj; 39555 Object.keys(object).forEach(key => { 39556 try { 39557 object[key] = null; 39558 } catch (e) {// no getter for object 39559 } 39560 39561 try { 39562 delete object[key]; 39563 } catch (e) {// something got wrong 39564 } 39565 }); 39566} 39567 39568function nextTick(callback, delay) { 39569 if (delay === void 0) { 39570 delay = 0; 39571 } 39572 39573 return setTimeout(callback, delay); 39574} 39575 39576function now() { 39577 return Date.now(); 39578} 39579 39580function getComputedStyle(el) { 39581 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 39582 let style; 39583 39584 if (window.getComputedStyle) { 39585 style = window.getComputedStyle(el, null); 39586 } 39587 39588 if (!style && el.currentStyle) { 39589 style = el.currentStyle; 39590 } 39591 39592 if (!style) { 39593 style = el.style; 39594 } 39595 39596 return style; 39597} 39598 39599function getTranslate(el, axis) { 39600 if (axis === void 0) { 39601 axis = 'x'; 39602 } 39603 39604 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 39605 let matrix; 39606 let curTransform; 39607 let transformMatrix; 39608 const curStyle = getComputedStyle(el, null); 39609 39610 if (window.WebKitCSSMatrix) { 39611 curTransform = curStyle.transform || curStyle.webkitTransform; 39612 39613 if (curTransform.split(',').length > 6) { 39614 curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', '); 39615 } // Some old versions of Webkit choke when 'none' is passed; pass 39616 // empty string instead in this case 39617 39618 39619 transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); 39620 } else { 39621 transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); 39622 matrix = transformMatrix.toString().split(','); 39623 } 39624 39625 if (axis === 'x') { 39626 // Latest Chrome and webkits Fix 39627 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix 39628 else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers 39629 else curTransform = parseFloat(matrix[4]); 39630 } 39631 39632 if (axis === 'y') { 39633 // Latest Chrome and webkits Fix 39634 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix 39635 else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers 39636 else curTransform = parseFloat(matrix[5]); 39637 } 39638 39639 return curTransform || 0; 39640} 39641 39642function isObject(o) { 39643 return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object'; 39644} 39645 39646function isNode(node) { 39647 // eslint-disable-next-line 39648 if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') { 39649 return node instanceof HTMLElement; 39650 } 39651 39652 return node && (node.nodeType === 1 || node.nodeType === 11); 39653} 39654 39655function extend() { 39656 const to = Object(arguments.length <= 0 ? undefined : arguments[0]); 39657 const noExtend = ['__proto__', 'constructor', 'prototype']; 39658 39659 for (let i = 1; i < arguments.length; i += 1) { 39660 const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i]; 39661 39662 if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) { 39663 const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0); 39664 39665 for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { 39666 const nextKey = keysArray[nextIndex]; 39667 const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); 39668 39669 if (desc !== undefined && desc.enumerable) { 39670 if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) { 39671 if (nextSource[nextKey].__swiper__) { 39672 to[nextKey] = nextSource[nextKey]; 39673 } else { 39674 extend(to[nextKey], nextSource[nextKey]); 39675 } 39676 } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) { 39677 to[nextKey] = {}; 39678 39679 if (nextSource[nextKey].__swiper__) { 39680 to[nextKey] = nextSource[nextKey]; 39681 } else { 39682 extend(to[nextKey], nextSource[nextKey]); 39683 } 39684 } else { 39685 to[nextKey] = nextSource[nextKey]; 39686 } 39687 } 39688 } 39689 } 39690 } 39691 39692 return to; 39693} 39694 39695function setCSSProperty(el, varName, varValue) { 39696 el.style.setProperty(varName, varValue); 39697} 39698 39699function animateCSSModeScroll(_ref) { 39700 let { 39701 swiper, 39702 targetPosition, 39703 side 39704 } = _ref; 39705 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 39706 const startPosition = -swiper.translate; 39707 let startTime = null; 39708 let time; 39709 const duration = swiper.params.speed; 39710 swiper.wrapperEl.style.scrollSnapType = 'none'; 39711 window.cancelAnimationFrame(swiper.cssModeFrameID); 39712 const dir = targetPosition > startPosition ? 'next' : 'prev'; 39713 39714 const isOutOfBound = (current, target) => { 39715 return dir === 'next' && current >= target || dir === 'prev' && current <= target; 39716 }; 39717 39718 const animate = () => { 39719 time = new Date().getTime(); 39720 39721 if (startTime === null) { 39722 startTime = time; 39723 } 39724 39725 const progress = Math.max(Math.min((time - startTime) / duration, 1), 0); 39726 const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2; 39727 let currentPosition = startPosition + easeProgress * (targetPosition - startPosition); 39728 39729 if (isOutOfBound(currentPosition, targetPosition)) { 39730 currentPosition = targetPosition; 39731 } 39732 39733 swiper.wrapperEl.scrollTo({ 39734 [side]: currentPosition 39735 }); 39736 39737 if (isOutOfBound(currentPosition, targetPosition)) { 39738 swiper.wrapperEl.style.overflow = 'hidden'; 39739 swiper.wrapperEl.style.scrollSnapType = ''; 39740 setTimeout(() => { 39741 swiper.wrapperEl.style.overflow = ''; 39742 swiper.wrapperEl.scrollTo({ 39743 [side]: currentPosition 39744 }); 39745 }); 39746 window.cancelAnimationFrame(swiper.cssModeFrameID); 39747 return; 39748 } 39749 39750 swiper.cssModeFrameID = window.requestAnimationFrame(animate); 39751 }; 39752 39753 animate(); 39754} 39755 39756 39757 39758/***/ }), 39759
vendor: 9,772 bytes, lines 39760-39859
39760/***/ "./node_modules/swiper/swiper.esm.js": 39761/*!*******************************************!*\ 39762 !*** ./node_modules/swiper/swiper.esm.js ***! 39763 \*******************************************/ 39764/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 39765 39766"use strict"; 39767__webpack_require__.r(__webpack_exports__); 39768/* harmony export */ __webpack_require__.d(__webpack_exports__, { 39769/* harmony export */ "Swiper": function() { return /* reexport safe */ _core_core_js__WEBPACK_IMPORTED_MODULE_0__["default"]; }, 39770/* harmony export */ "default": function() { return /* reexport safe */ _core_core_js__WEBPACK_IMPORTED_MODULE_0__["default"]; }, 39771/* harmony export */ "Virtual": function() { return /* reexport safe */ _modules_virtual_virtual_js__WEBPACK_IMPORTED_MODULE_1__["default"]; }, 39772/* harmony export */ "Keyboard": function() { return /* reexport safe */ _modules_keyboard_keyboard_js__WEBPACK_IMPORTED_MODULE_2__["default"]; }, 39773/* harmony export */ "Mousewheel": function() { return /* reexport safe */ _modules_mousewheel_mousewheel_js__WEBPACK_IMPORTED_MODULE_3__["default"]; }, 39774/* harmony export */ "Navigation": function() { return /* reexport safe */ _modules_navigation_navigation_js__WEBPACK_IMPORTED_MODULE_4__["default"]; }, 39775/* harmony export */ "Pagination": function() { return /* reexport safe */ _modules_pagination_pagination_js__WEBPACK_IMPORTED_MODULE_5__["default"]; }, 39776/* harmony export */ "Scrollbar": function() { return /* reexport safe */ _modules_scrollbar_scrollbar_js__WEBPACK_IMPORTED_MODULE_6__["default"]; }, 39777/* harmony export */ "Parallax": function() { return /* reexport safe */ _modules_parallax_parallax_js__WEBPACK_IMPORTED_MODULE_7__["default"]; }, 39778/* harmony export */ "Zoom": function() { return /* reexport safe */ _modules_zoom_zoom_js__WEBPACK_IMPORTED_MODULE_8__["default"]; }, 39779/* harmony export */ "Lazy": function() { return /* reexport safe */ _modules_lazy_lazy_js__WEBPACK_IMPORTED_MODULE_9__["default"]; }, 39780/* harmony export */ "Controller": function() { return /* reexport safe */ _modules_controller_controller_js__WEBPACK_IMPORTED_MODULE_10__["default"]; }, 39781/* harmony export */ "A11y": function() { return /* reexport safe */ _modules_a11y_a11y_js__WEBPACK_IMPORTED_MODULE_11__["default"]; }, 39782/* harmony export */ "History": function() { return /* reexport safe */ _modules_history_history_js__WEBPACK_IMPORTED_MODULE_12__["default"]; }, 39783/* harmony export */ "HashNavigation": function() { return /* reexport safe */ _modules_hash_navigation_hash_navigation_js__WEBPACK_IMPORTED_MODULE_13__["default"]; }, 39784/* harmony export */ "Autoplay": function() { return /* reexport safe */ _modules_autoplay_autoplay_js__WEBPACK_IMPORTED_MODULE_14__["default"]; }, 39785/* harmony export */ "Thumbs": function() { return /* reexport safe */ _modules_thumbs_thumbs_js__WEBPACK_IMPORTED_MODULE_15__["default"]; }, 39786/* harmony export */ "FreeMode": function() { return /* reexport safe */ _modules_free_mode_free_mode_js__WEBPACK_IMPORTED_MODULE_16__["default"]; }, 39787/* harmony export */ "Grid": function() { return /* reexport safe */ _modules_grid_grid_js__WEBPACK_IMPORTED_MODULE_17__["default"]; }, 39788/* harmony export */ "Manipulation": function() { return /* reexport safe */ _modules_manipulation_manipulation_js__WEBPACK_IMPORTED_MODULE_18__["default"]; }, 39789/* harmony export */ "EffectFade": function() { return /* reexport safe */ _modules_effect_fade_effect_fade_js__WEBPACK_IMPORTED_MODULE_19__["default"]; }, 39790/* harmony export */ "EffectCube": function() { return /* reexport safe */ _modules_effect_cube_effect_cube_js__WEBPACK_IMPORTED_MODULE_20__["default"]; }, 39791/* harmony export */ "EffectFlip": function() { return /* reexport safe */ _modules_effect_flip_effect_flip_js__WEBPACK_IMPORTED_MODULE_21__["default"]; }, 39792/* harmony export */ "EffectCoverflow": function() { return /* reexport safe */ _modules_effect_coverflow_effect_coverflow_js__WEBPACK_IMPORTED_MODULE_22__["default"]; }, 39793/* harmony export */ "EffectCreative": function() { return /* reexport safe */ _modules_effect_creative_effect_creative_js__WEBPACK_IMPORTED_MODULE_23__["default"]; }, 39794/* harmony export */ "EffectCards": function() { return /* reexport safe */ _modules_effect_cards_effect_cards_js__WEBPACK_IMPORTED_MODULE_24__["default"]; } 39795/* harmony export */ }); 39796/* harmony import */ var _core_core_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/core.js */ "./node_modules/swiper/core/core.js"); 39797/* harmony import */ var _modules_virtual_virtual_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/virtual/virtual.js */ "./node_modules/swiper/modules/virtual/virtual.js"); 39798/* harmony import */ var _modules_keyboard_keyboard_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/keyboard/keyboard.js */ "./node_modules/swiper/modules/keyboard/keyboard.js"); 39799/* harmony import */ var _modules_mousewheel_mousewheel_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/mousewheel/mousewheel.js */ "./node_modules/swiper/modules/mousewheel/mousewheel.js"); 39800/* harmony import */ var _modules_navigation_navigation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/navigation/navigation.js */ "./node_modules/swiper/modules/navigation/navigation.js"); 39801/* harmony import */ var _modules_pagination_pagination_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/pagination/pagination.js */ "./node_modules/swiper/modules/pagination/pagination.js"); 39802/* harmony import */ var _modules_scrollbar_scrollbar_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/scrollbar/scrollbar.js */ "./node_modules/swiper/modules/scrollbar/scrollbar.js"); 39803/* harmony import */ var _modules_parallax_parallax_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/parallax/parallax.js */ "./node_modules/swiper/modules/parallax/parallax.js"); 39804/* harmony import */ var _modules_zoom_zoom_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/zoom/zoom.js */ "./node_modules/swiper/modules/zoom/zoom.js"); 39805/* harmony import */ var _modules_lazy_lazy_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/lazy/lazy.js */ "./node_modules/swiper/modules/lazy/lazy.js"); 39806/* harmony import */ var _modules_controller_controller_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/controller/controller.js */ "./node_modules/swiper/modules/controller/controller.js"); 39807/* harmony import */ var _modules_a11y_a11y_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/a11y/a11y.js */ "./node_modules/swiper/modules/a11y/a11y.js"); 39808/* harmony import */ var _modules_history_history_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modules/history/history.js */ "./node_modules/swiper/modules/history/history.js"); 39809/* harmony import */ var _modules_hash_navigation_hash_navigation_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./modules/hash-navigation/hash-navigation.js */ "./node_modules/swiper/modules/hash-navigation/hash-navigation.js"); 39810/* harmony import */ var _modules_autoplay_autoplay_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modules/autoplay/autoplay.js */ "./node_modules/swiper/modules/autoplay/autoplay.js"); 39811/* harmony import */ var _modules_thumbs_thumbs_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./modules/thumbs/thumbs.js */ "./node_modules/swiper/modules/thumbs/thumbs.js"); 39812/* harmony import */ var _modules_free_mode_free_mode_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./modules/free-mode/free-mode.js */ "./node_modules/swiper/modules/free-mode/free-mode.js"); 39813/* harmony import */ var _modules_grid_grid_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./modules/grid/grid.js */ "./node_modules/swiper/modules/grid/grid.js"); 39814/* harmony import */ var _modules_manipulation_manipulation_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./modules/manipulation/manipulation.js */ "./node_modules/swiper/modules/manipulation/manipulation.js"); 39815/* harmony import */ var _modules_effect_fade_effect_fade_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./modules/effect-fade/effect-fade.js */ "./node_modules/swiper/modules/effect-fade/effect-fade.js"); 39816/* harmony import */ var _modules_effect_cube_effect_cube_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./modules/effect-cube/effect-cube.js */ "./node_modules/swiper/modules/effect-cube/effect-cube.js"); 39817/* harmony import */ var _modules_effect_flip_effect_flip_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./modules/effect-flip/effect-flip.js */ "./node_modules/swiper/modules/effect-flip/effect-flip.js"); 39818/* harmony import */ var _modules_effect_coverflow_effect_coverflow_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./modules/effect-coverflow/effect-coverflow.js */ "./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js"); 39819/* harmony import */ var _modules_effect_creative_effect_creative_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./modules/effect-creative/effect-creative.js */ "./node_modules/swiper/modules/effect-creative/effect-creative.js"); 39820/* harmony import */ var _modules_effect_cards_effect_cards_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./modules/effect-cards/effect-cards.js */ "./node_modules/swiper/modules/effect-cards/effect-cards.js"); 39821/** 39822 * Swiper 8.1.5 39823 * Most modern mobile touch slider and framework with hardware accelerated transitions 39824 * https://swiperjs.com 39825 * 39826 * Copyright 2014-2022 Vladimir Kharlampidi 39827 * 39828 * Released under the MIT License 39829 * 39830 * Released on: May 16, 2022 39831 */ 39832 39833 39834 39835 39836 39837 39838 39839 39840 39841 39842 39843 39844 39845 39846 39847 39848 39849 39850 39851 39852 39853 39854 39855 39856 39857 39858 39859/***/ })
39859 39860 39861}, 39862/******/ function(__webpack_require__) { // webpackRuntimeModules 39863/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } 39864/******/ var __webpack_exports__ = (__webpack_exec__("./assets/child/WaveElektroWandelt/build/app.js")); 39865/******/ } 39866]);
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.