vendor: 5,606 bytes, lines 1-172
1var Dx1BrpInventory; 2/******/ (function() { // webpackBootstrap 3/******/ var __webpack_modules__ = ({ 4 5/***/ 669: 6/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 7 8module.exports = __webpack_require__(609); 9 10/***/ }), 11 12/***/ 448: 13/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 14 15"use strict"; 16 17 18var utils = __webpack_require__(867); 19var settle = __webpack_require__(26); 20var cookies = __webpack_require__(372); 21var buildURL = __webpack_require__(327); 22var buildFullPath = __webpack_require__(97); 23var parseHeaders = __webpack_require__(109); 24var isURLSameOrigin = __webpack_require__(985); 25var transitionalDefaults = __webpack_require__(874); 26var AxiosError = __webpack_require__(648); 27var CanceledError = __webpack_require__(644); 28var parseProtocol = __webpack_require__(205); 29 30module.exports = function xhrAdapter(config) { 31 return new Promise(function dispatchXhrRequest(resolve, reject) { 32 var requestData = config.data; 33 var requestHeaders = config.headers; 34 var responseType = config.responseType; 35 var onCanceled; 36 function done() { 37 if (config.cancelToken) { 38 config.cancelToken.unsubscribe(onCanceled); 39 } 40 41 if (config.signal) { 42 config.signal.removeEventListener('abort', onCanceled); 43 } 44 } 45 46 if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) { 47 delete requestHeaders['Content-Type']; // Let the browser set it 48 } 49 50 var request = new XMLHttpRequest(); 51 52 // HTTP basic authentication 53 if (config.auth) { 54 var username = config.auth.username || ''; 55 var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; 56 requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); 57 } 58 59 var fullPath = buildFullPath(config.baseURL, config.url); 60 61 request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); 62 63 // Set the request timeout in MS 64 request.timeout = config.timeout; 65 66 function onloadend() { 67 if (!request) { 68 return; 69 } 70 // Prepare the response 71 var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; 72 var responseData = !responseType || responseType === 'text' || responseType === 'json' ? 73 request.responseText : request.response; 74 var response = { 75 data: responseData, 76 status: request.status, 77 statusText: request.statusText, 78 headers: responseHeaders, 79 config: config, 80 request: request 81 }; 82 83 settle(function _resolve(value) { 84 resolve(value); 85 done(); 86 }, function _reject(err) { 87 reject(err); 88 done(); 89 }, response); 90 91 // Clean up request 92 request = null; 93 } 94 95 if ('onloadend' in request) { 96 // Use onloadend if available 97 request.onloadend = onloadend; 98 } else { 99 // Listen for ready state to emulate onloadend 100 request.onreadystatechange = function handleLoad() { 101 if (!request || request.readyState !== 4) { 102 return; 103 } 104 105 // The request errored out and we didn't get a response, this will be 106 // handled by onerror instead 107 // With one exception: request that using file: protocol, most browsers 108 // will return status as 0 even though it's a successful request 109 if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { 110 return; 111 } 112 // readystate handler is calling before onerror or ontimeout handlers, 113 // so we should call onloadend on the next 'tick' 114 setTimeout(onloadend); 115 }; 116 } 117 118 // Handle browser request cancellation (as opposed to a manual cancellation) 119 request.onabort = function handleAbort() { 120 if (!request) { 121 return; 122 } 123 124 reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); 125 126 // Clean up request 127 request = null; 128 }; 129 130 // Handle low level network errors 131 request.onerror = function handleError() { 132 // Real errors are hidden from us by the browser 133 // onerror should only fire if it's a network error 134 reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request)); 135 136 // Clean up request 137 request = null; 138 }; 139 140 // Handle timeout 141 request.ontimeout = function handleTimeout() { 142 var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; 143 var transitional = config.transitional || transitionalDefaults; 144 if (config.timeoutErrorMessage) { 145 timeoutErrorMessage = config.timeoutErrorMessage; 146 } 147 reject(new AxiosError( 148 timeoutErrorMessage, 149 transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, 150 config, 151 request)); 152 153 // Clean up request 154 request = null; 155 }; 156 157 // Add xsrf header 158 // This is only done if running in a standard browser environment. 159 // Specifically not if we're in a web worker, or react-native. 160 if (utils.isStandardBrowserEnv()) { 161 // Add xsrf header 162 var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? 163 cookies.read(config.xsrfCookieName) : 164 undefined; 165 166 if (xsrfValue) { 167 requestHeaders[config.xsrfHeaderName] = xsrfValue; 168 } 169 } 170 171 // Add headers to the request 172 if ('setRequestHeader' in request) {
173 utils.forEach(requestHeaders, function setRequestHeader(val, key) { 174 if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { 175 // Remove Content-Type if data is undefined 176 delete requestHeaders[key]; 177 } else { 178 // Otherwise add header to the request 179 request.setRequestHeader(key, val); 180 } 181 }); 182 } 183 184 // Add withCredentials to request if needed 185 if (!utils.isUndefined(config.withCredentials)) { 186 request.withCredentials = !!config.withCredentials; 187 } 188 189 // Add responseType to request if needed 190 if (responseType && responseType !== 'json') { 191 request.responseType = config.responseType; 192 } 193 194 // Handle progress if needed 195 if (typeof config.onDownloadProgress === 'function') { 196 request.addEventListener('progress', config.onDownloadProgress); 197 } 198 199 // Not all browsers support upload events 200 if (typeof config.onUploadProgress === 'function' && request.upload) { 201 request.upload.addEventListener('progress', config.onUploadProgress); 202 } 203 204 if (config.cancelToken || config.signal) { 205 // Handle cancellation 206 // eslint-disable-next-line func-names 207 onCanceled = function(cancel) { 208 if (!request) { 209 return; 210 } 211 reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel); 212 request.abort(); 213 request = null; 214 }; 215 216 config.cancelToken && config.cancelToken.subscribe(onCanceled); 217 if (config.signal) { 218 config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled); 219 } 220 } 221 222 if (!requestData) { 223 requestData = null; 224 } 225 226 var protocol = parseProtocol(fullPath); 227 228 if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) { 229 reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); 230 return; 231 } 232 233 234 // Send the request 235 request.send(requestData); 236 }); 237}; 238 239 240/***/ }), 241 242/***/ 609: 243/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 244 245"use strict"; 246 247 248var utils = __webpack_require__(867); 249var bind = __webpack_require__(849); 250var Axios = __webpack_require__(321); 251var mergeConfig = __webpack_require__(185); 252var defaults = __webpack_require__(546); 253 254/** 255 * Create an instance of Axios 256 * 257 * @param {Object} defaultConfig The default config for the instance 258 * @return {Axios} A new instance of Axios 259 */ 260function createInstance(defaultConfig) { 261 var context = new Axios(defaultConfig); 262 var instance = bind(Axios.prototype.request, context); 263 264 // Copy axios.prototype to instance 265 utils.extend(instance, Axios.prototype, context); 266 267 // Copy context to instance 268 utils.extend(instance, context); 269 270 // Factory for creating new instances 271 instance.create = function create(instanceConfig) { 272 return createInstance(mergeConfig(defaultConfig, instanceConfig)); 273 }; 274 275 return instance; 276} 277 278// Create the default instance to be exported 279var axios = createInstance(defaults); 280 281// Expose Axios class to allow class inheritance 282axios.Axios = Axios; 283 284// Expose Cancel & CancelToken 285axios.CanceledError = __webpack_require__(644); 286axios.CancelToken = __webpack_require__(972); 287axios.isCancel = __webpack_require__(502); 288axios.VERSION = (__webpack_require__(288).version); 289axios.toFormData = __webpack_require__(675); 290 291// Expose AxiosError class 292axios.AxiosError = __webpack_require__(648); 293 294// alias for CanceledError for backward compatibility 295axios.Cancel = axios.CanceledError; 296 297// Expose all/spread 298axios.all = function all(promises) { 299 return Promise.all(promises); 300}; 301axios.spread = __webpack_require__(713); 302 303// Expose isAxiosError 304axios.isAxiosError = __webpack_require__(268); 305 306module.exports = axios; 307 308// Allow use of default import syntax in TypeScript 309module.exports["default"] = axios; 310 311 312/***/ }), 313 314/***/ 972: 315/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 316 317"use strict"; 318 319 320var CanceledError = __webpack_require__(644); 321 322/** 323 * A `CancelToken` is an object that can be used to request cancellation of an operation. 324 * 325 * @class 326 * @param {Function} executor The executor function. 327 */ 328function CancelToken(executor) { 329 if (typeof executor !== 'function') { 330 throw new TypeError('executor must be a function.'); 331 } 332 333 var resolvePromise; 334 335 this.promise = new Promise(function promiseExecutor(resolve) { 336 resolvePromise = resolve; 337 }); 338 339 var token = this; 340 341 // eslint-disable-next-line func-names 342 this.promise.then(function(cancel) { 343 if (!token._listeners) return; 344 345 var i; 346 var l = token._listeners.length; 347 348 for (i = 0; i < l; i++) { 349 token._listeners[i](cancel); 350 } 351 token._listeners = null; 352 }); 353 354 // eslint-disable-next-line func-names 355 this.promise.then = function(onfulfilled) { 356 var _resolve; 357 // eslint-disable-next-line func-names 358 var promise = new Promise(function(resolve) { 359 token.subscribe(resolve); 360 _resolve = resolve; 361 }).then(onfulfilled); 362 363 promise.cancel = function reject() { 364 token.unsubscribe(_resolve); 365 }; 366 367 return promise; 368 }; 369 370 executor(function cancel(message) { 371 if (token.reason) { 372 // Cancellation has already been requested 373 return; 374 } 375 376 token.reason = new CanceledError(message); 377 resolvePromise(token.reason); 378 }); 379} 380 381/** 382 * Throws a `CanceledError` if cancellation has been requested. 383 */ 384CancelToken.prototype.throwIfRequested = function throwIfRequested() { 385 if (this.reason) { 386 throw this.reason; 387 } 388}; 389 390/** 391 * Subscribe to the cancel signal 392 */ 393 394CancelToken.prototype.subscribe = function subscribe(listener) { 395 if (this.reason) { 396 listener(this.reason); 397 return; 398 } 399 400 if (this._listeners) { 401 this._listeners.push(listener); 402 } else { 403 this._listeners = [listener]; 404 } 405}; 406 407/** 408 * Unsubscribe from the cancel signal 409 */ 410 411CancelToken.prototype.unsubscribe = function unsubscribe(listener) { 412 if (!this._listeners) { 413 return; 414 } 415 var index = this._listeners.indexOf(listener); 416 if (index !== -1) { 417 this._listeners.splice(index, 1); 418 } 419}; 420 421/** 422 * Returns an object that contains a new `CancelToken` and a function that, when called, 423 * cancels the `CancelToken`. 424 */ 425CancelToken.source = function source() { 426 var cancel; 427 var token = new CancelToken(function executor(c) { 428 cancel = c; 429 }); 430 return { 431 token: token, 432 cancel: cancel 433 }; 434}; 435 436module.exports = CancelToken; 437 438 439/***/ }), 440 441/***/ 644: 442/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 443 444"use strict"; 445 446 447var AxiosError = __webpack_require__(648); 448var utils = __webpack_require__(867); 449 450/** 451 * A `CanceledError` is an object that is thrown when an operation is canceled. 452 * 453 * @class 454 * @param {string=} message The message. 455 */ 456function CanceledError(message) { 457 // eslint-disable-next-line no-eq-null,eqeqeq 458 AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED); 459 this.name = 'CanceledError'; 460} 461 462utils.inherits(CanceledError, AxiosError, { 463 __CANCEL__: true 464}); 465 466module.exports = CanceledError; 467 468 469/***/ }), 470 471/***/ 502: 472/***/ (function(module) { 473 474"use strict"; 475 476 477module.exports = function isCancel(value) { 478 return !!(value && value.__CANCEL__); 479}; 480 481 482/***/ }), 483 484/***/ 321: 485/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 486 487"use strict"; 488 489 490var utils = __webpack_require__(867); 491var buildURL = __webpack_require__(327); 492var InterceptorManager = __webpack_require__(782); 493var dispatchRequest = __webpack_require__(572); 494var mergeConfig = __webpack_require__(185);
vendor: 5,566 bytes, lines 495-695
495var buildFullPath = __webpack_require__(97); 496var validator = __webpack_require__(875); 497 498var validators = validator.validators; 499/** 500 * Create a new instance of Axios 501 * 502 * @param {Object} instanceConfig The default config for the instance 503 */ 504function Axios(instanceConfig) { 505 this.defaults = instanceConfig; 506 this.interceptors = { 507 request: new InterceptorManager(), 508 response: new InterceptorManager() 509 }; 510} 511 512/** 513 * Dispatch a request 514 * 515 * @param {Object} config The config specific for this request (merged with this.defaults) 516 */ 517Axios.prototype.request = function request(configOrUrl, config) { 518 /*eslint no-param-reassign:0*/ 519 // Allow for axios('example/url'[, config]) a la fetch API 520 if (typeof configOrUrl === 'string') { 521 config = config || {}; 522 config.url = configOrUrl; 523 } else { 524 config = configOrUrl || {}; 525 } 526 527 config = mergeConfig(this.defaults, config); 528 529 // Set config.method 530 if (config.method) { 531 config.method = config.method.toLowerCase(); 532 } else if (this.defaults.method) { 533 config.method = this.defaults.method.toLowerCase(); 534 } else { 535 config.method = 'get'; 536 } 537 538 var transitional = config.transitional; 539 540 if (transitional !== undefined) { 541 validator.assertOptions(transitional, { 542 silentJSONParsing: validators.transitional(validators.boolean), 543 forcedJSONParsing: validators.transitional(validators.boolean), 544 clarifyTimeoutError: validators.transitional(validators.boolean) 545 }, false); 546 } 547 548 // filter out skipped interceptors 549 var requestInterceptorChain = []; 550 var synchronousRequestInterceptors = true; 551 this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { 552 if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { 553 return; 554 } 555 556 synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; 557 558 requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); 559 }); 560 561 var responseInterceptorChain = []; 562 this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { 563 responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); 564 }); 565 566 var promise; 567 568 if (!synchronousRequestInterceptors) { 569 var chain = [dispatchRequest, undefined]; 570 571 Array.prototype.unshift.apply(chain, requestInterceptorChain); 572 chain = chain.concat(responseInterceptorChain); 573 574 promise = Promise.resolve(config); 575 while (chain.length) { 576 promise = promise.then(chain.shift(), chain.shift()); 577 } 578 579 return promise; 580 } 581 582 583 var newConfig = config; 584 while (requestInterceptorChain.length) { 585 var onFulfilled = requestInterceptorChain.shift(); 586 var onRejected = requestInterceptorChain.shift(); 587 try { 588 newConfig = onFulfilled(newConfig); 589 } catch (error) { 590 onRejected(error); 591 break; 592 } 593 } 594 595 try { 596 promise = dispatchRequest(newConfig); 597 } catch (error) { 598 return Promise.reject(error); 599 } 600 601 while (responseInterceptorChain.length) { 602 promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift()); 603 } 604 605 return promise; 606}; 607 608Axios.prototype.getUri = function getUri(config) { 609 config = mergeConfig(this.defaults, config); 610 var fullPath = buildFullPath(config.baseURL, config.url); 611 return buildURL(fullPath, config.params, config.paramsSerializer); 612}; 613 614// Provide aliases for supported request methods 615utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { 616 /*eslint func-names:0*/ 617 Axios.prototype[method] = function(url, config) { 618 return this.request(mergeConfig(config || {}, { 619 method: method, 620 url: url, 621 data: (config || {}).data 622 })); 623 }; 624}); 625 626utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { 627 /*eslint func-names:0*/ 628 629 function generateHTTPMethod(isForm) { 630 return function httpMethod(url, data, config) { 631 return this.request(mergeConfig(config || {}, { 632 method: method, 633 headers: isForm ? { 634 'Content-Type': 'multipart/form-data' 635 } : {}, 636 url: url, 637 data: data 638 })); 639 }; 640 } 641 642 Axios.prototype[method] = generateHTTPMethod(); 643 644 Axios.prototype[method + 'Form'] = generateHTTPMethod(true); 645}); 646 647module.exports = Axios; 648 649 650/***/ }), 651 652/***/ 648: 653/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 654 655"use strict"; 656 657 658var utils = __webpack_require__(867); 659 660/** 661 * Create an Error with the specified message, config, error code, request and response. 662 * 663 * @param {string} message The error message. 664 * @param {string} [code] The error code (for example, 'ECONNABORTED'). 665 * @param {Object} [config] The config. 666 * @param {Object} [request] The request. 667 * @param {Object} [response] The response. 668 * @returns {Error} The created error. 669 */ 670function AxiosError(message, code, config, request, response) { 671 Error.call(this); 672 this.message = message; 673 this.name = 'AxiosError'; 674 code && (this.code = code); 675 config && (this.config = config); 676 request && (this.request = request); 677 response && (this.response = response); 678} 679 680utils.inherits(AxiosError, Error, { 681 toJSON: function toJSON() { 682 return { 683 // Standard 684 message: this.message, 685 name: this.name, 686 // Microsoft 687 description: this.description, 688 number: this.number, 689 // Mozilla 690 fileName: this.fileName, 691 lineNumber: this.lineNumber, 692 columnNumber: this.columnNumber, 693 stack: this.stack, 694 // Axios 695 config: this.config,
vendor: 9,378 bytes, lines 696-1054
696 code: this.code, 697 status: this.response && this.response.status ? this.response.status : null 698 }; 699 } 700}); 701 702var prototype = AxiosError.prototype; 703var descriptors = {}; 704 705[ 706 'ERR_BAD_OPTION_VALUE', 707 'ERR_BAD_OPTION', 708 'ECONNABORTED', 709 'ETIMEDOUT', 710 'ERR_NETWORK', 711 'ERR_FR_TOO_MANY_REDIRECTS', 712 'ERR_DEPRECATED', 713 'ERR_BAD_RESPONSE', 714 'ERR_BAD_REQUEST', 715 'ERR_CANCELED' 716// eslint-disable-next-line func-names 717].forEach(function(code) { 718 descriptors[code] = {value: code}; 719}); 720 721Object.defineProperties(AxiosError, descriptors); 722Object.defineProperty(prototype, 'isAxiosError', {value: true}); 723 724// eslint-disable-next-line func-names 725AxiosError.from = function(error, code, config, request, response, customProps) { 726 var axiosError = Object.create(prototype); 727 728 utils.toFlatObject(error, axiosError, function filter(obj) { 729 return obj !== Error.prototype; 730 }); 731 732 AxiosError.call(axiosError, error.message, code, config, request, response); 733 734 axiosError.name = error.name; 735 736 customProps && Object.assign(axiosError, customProps); 737 738 return axiosError; 739}; 740 741module.exports = AxiosError; 742 743 744/***/ }), 745 746/***/ 782: 747/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 748 749"use strict"; 750 751 752var utils = __webpack_require__(867); 753 754function InterceptorManager() { 755 this.handlers = []; 756} 757 758/** 759 * Add a new interceptor to the stack 760 * 761 * @param {Function} fulfilled The function to handle `then` for a `Promise` 762 * @param {Function} rejected The function to handle `reject` for a `Promise` 763 * 764 * @return {Number} An ID used to remove interceptor later 765 */ 766InterceptorManager.prototype.use = function use(fulfilled, rejected, options) { 767 this.handlers.push({ 768 fulfilled: fulfilled, 769 rejected: rejected, 770 synchronous: options ? options.synchronous : false, 771 runWhen: options ? options.runWhen : null 772 }); 773 return this.handlers.length - 1; 774}; 775 776/** 777 * Remove an interceptor from the stack 778 * 779 * @param {Number} id The ID that was returned by `use` 780 */ 781InterceptorManager.prototype.eject = function eject(id) { 782 if (this.handlers[id]) { 783 this.handlers[id] = null; 784 } 785}; 786 787/** 788 * Iterate over all the registered interceptors 789 * 790 * This method is particularly useful for skipping over any 791 * interceptors that may have become `null` calling `eject`. 792 * 793 * @param {Function} fn The function to call for each interceptor 794 */ 795InterceptorManager.prototype.forEach = function forEach(fn) { 796 utils.forEach(this.handlers, function forEachHandler(h) { 797 if (h !== null) { 798 fn(h); 799 } 800 }); 801}; 802 803module.exports = InterceptorManager; 804 805 806/***/ }), 807 808/***/ 97: 809/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 810 811"use strict"; 812 813 814var isAbsoluteURL = __webpack_require__(793); 815var combineURLs = __webpack_require__(303); 816 817/** 818 * Creates a new URL by combining the baseURL with the requestedURL, 819 * only when the requestedURL is not already an absolute URL. 820 * If the requestURL is absolute, this function returns the requestedURL untouched. 821 * 822 * @param {string} baseURL The base URL 823 * @param {string} requestedURL Absolute or relative URL to combine 824 * @returns {string} The combined full path 825 */ 826module.exports = function buildFullPath(baseURL, requestedURL) { 827 if (baseURL && !isAbsoluteURL(requestedURL)) { 828 return combineURLs(baseURL, requestedURL); 829 } 830 return requestedURL; 831}; 832 833 834/***/ }), 835 836/***/ 572: 837/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 838 839"use strict"; 840 841 842var utils = __webpack_require__(867); 843var transformData = __webpack_require__(527); 844var isCancel = __webpack_require__(502); 845var defaults = __webpack_require__(546); 846var CanceledError = __webpack_require__(644); 847 848/** 849 * Throws a `CanceledError` if cancellation has been requested. 850 */ 851function throwIfCancellationRequested(config) { 852 if (config.cancelToken) { 853 config.cancelToken.throwIfRequested(); 854 } 855 856 if (config.signal && config.signal.aborted) { 857 throw new CanceledError(); 858 } 859} 860 861/** 862 * Dispatch a request to the server using the configured adapter. 863 * 864 * @param {object} config The config that is to be used for the request 865 * @returns {Promise} The Promise to be fulfilled 866 */ 867module.exports = function dispatchRequest(config) { 868 throwIfCancellationRequested(config); 869 870 // Ensure headers exist 871 config.headers = config.headers || {}; 872 873 // Transform request data 874 config.data = transformData.call( 875 config, 876 config.data, 877 config.headers, 878 config.transformRequest 879 ); 880 881 // Flatten headers 882 config.headers = utils.merge( 883 config.headers.common || {}, 884 config.headers[config.method] || {}, 885 config.headers 886 ); 887 888 utils.forEach( 889 ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], 890 function cleanHeaderConfig(method) { 891 delete config.headers[method]; 892 } 893 ); 894 895 var adapter = config.adapter || defaults.adapter; 896 897 return adapter(config).then(function onAdapterResolution(response) { 898 throwIfCancellationRequested(config); 899 900 // Transform response data 901 response.data = transformData.call( 902 config, 903 response.data, 904 response.headers, 905 config.transformResponse 906 ); 907 908 return response; 909 }, function onAdapterRejection(reason) { 910 if (!isCancel(reason)) { 911 throwIfCancellationRequested(config); 912 913 // Transform response data 914 if (reason && reason.response) { 915 reason.response.data = transformData.call( 916 config, 917 reason.response.data, 918 reason.response.headers, 919 config.transformResponse 920 ); 921 } 922 } 923 924 return Promise.reject(reason); 925 }); 926}; 927 928 929/***/ }), 930 931/***/ 185: 932/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 933 934"use strict"; 935 936 937var utils = __webpack_require__(867); 938 939/** 940 * Config-specific merge-function which creates a new config-object 941 * by merging two configuration objects together. 942 * 943 * @param {Object} config1 944 * @param {Object} config2 945 * @returns {Object} New object resulting from merging config2 to config1 946 */ 947module.exports = function mergeConfig(config1, config2) { 948 // eslint-disable-next-line no-param-reassign 949 config2 = config2 || {}; 950 var config = {}; 951 952 function getMergedValue(target, source) { 953 if (utils.isPlainObject(target) && utils.isPlainObject(source)) { 954 return utils.merge(target, source); 955 } else if (utils.isPlainObject(source)) { 956 return utils.merge({}, source); 957 } else if (utils.isArray(source)) { 958 return source.slice(); 959 } 960 return source; 961 } 962 963 // eslint-disable-next-line consistent-return 964 function mergeDeepProperties(prop) { 965 if (!utils.isUndefined(config2[prop])) { 966 return getMergedValue(config1[prop], config2[prop]); 967 } else if (!utils.isUndefined(config1[prop])) { 968 return getMergedValue(undefined, config1[prop]); 969 } 970 } 971 972 // eslint-disable-next-line consistent-return 973 function valueFromConfig2(prop) { 974 if (!utils.isUndefined(config2[prop])) { 975 return getMergedValue(undefined, config2[prop]); 976 } 977 } 978 979 // eslint-disable-next-line consistent-return 980 function defaultToConfig2(prop) { 981 if (!utils.isUndefined(config2[prop])) { 982 return getMergedValue(undefined, config2[prop]); 983 } else if (!utils.isUndefined(config1[prop])) { 984 return getMergedValue(undefined, config1[prop]); 985 } 986 } 987 988 // eslint-disable-next-line consistent-return 989 function mergeDirectKeys(prop) { 990 if (prop in config2) { 991 return getMergedValue(config1[prop], config2[prop]); 992 } else if (prop in config1) { 993 return getMergedValue(undefined, config1[prop]); 994 } 995 } 996 997 var mergeMap = { 998 'url': valueFromConfig2, 999 'method': valueFromConfig2, 1000 'data': valueFromConfig2, 1001 'baseURL': defaultToConfig2, 1002 'transformRequest': defaultToConfig2, 1003 'transformResponse': defaultToConfig2, 1004 'paramsSerializer': defaultToConfig2, 1005 'timeout': defaultToConfig2, 1006 'timeoutMessage': defaultToConfig2, 1007 'withCredentials': defaultToConfig2, 1008 'adapter': defaultToConfig2, 1009 'responseType': defaultToConfig2, 1010 'xsrfCookieName': defaultToConfig2, 1011 'xsrfHeaderName': defaultToConfig2, 1012 'onUploadProgress': defaultToConfig2, 1013 'onDownloadProgress': defaultToConfig2, 1014 'decompress': defaultToConfig2, 1015 'maxContentLength': defaultToConfig2, 1016 'maxBodyLength': defaultToConfig2, 1017 'beforeRedirect': defaultToConfig2, 1018 'transport': defaultToConfig2, 1019 'httpAgent': defaultToConfig2, 1020 'httpsAgent': defaultToConfig2, 1021 'cancelToken': defaultToConfig2, 1022 'socketPath': defaultToConfig2, 1023 'responseEncoding': defaultToConfig2, 1024 'validateStatus': mergeDirectKeys 1025 }; 1026 1027 utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) { 1028 var merge = mergeMap[prop] || mergeDeepProperties; 1029 var configValue = merge(prop); 1030 (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); 1031 }); 1032 1033 return config; 1034}; 1035 1036 1037/***/ }), 1038 1039/***/ 26: 1040/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1041 1042"use strict"; 1043 1044 1045var AxiosError = __webpack_require__(648); 1046 1047/** 1048 * Resolve or reject a Promise based on response status. 1049 * 1050 * @param {Function} resolve A function that resolves the promise. 1051 * @param {Function} reject A function that rejects the promise. 1052 * @param {object} response The response. 1053 */ 1054module.exports = function settle(resolve, reject, response) {
1055 var validateStatus = response.config.validateStatus; 1056 if (!response.status || !validateStatus || validateStatus(response.status)) { 1057 resolve(response); 1058 } else { 1059 reject(new AxiosError( 1060 'Request failed with status code ' + response.status, 1061 [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], 1062 response.config, 1063 response.request, 1064 response 1065 )); 1066 } 1067}; 1068 1069 1070/***/ }), 1071 1072/***/ 527: 1073/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1074 1075"use strict"; 1076 1077 1078var utils = __webpack_require__(867); 1079var defaults = __webpack_require__(546); 1080 1081/** 1082 * Transform the data for a request or a response 1083 * 1084 * @param {Object|String} data The data to be transformed 1085 * @param {Array} headers The headers for the request or response 1086 * @param {Array|Function} fns A single function or Array of functions 1087 * @returns {*} The resulting transformed data 1088 */ 1089module.exports = function transformData(data, headers, fns) { 1090 var context = this || defaults; 1091 /*eslint no-param-reassign:0*/ 1092 utils.forEach(fns, function transform(fn) { 1093 data = fn.call(context, data, headers); 1094 }); 1095 1096 return data; 1097}; 1098 1099 1100/***/ }), 1101 1102/***/ 546: 1103/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1104 1105"use strict"; 1106 1107 1108var utils = __webpack_require__(867); 1109var normalizeHeaderName = __webpack_require__(16); 1110var AxiosError = __webpack_require__(648); 1111var transitionalDefaults = __webpack_require__(874); 1112var toFormData = __webpack_require__(675); 1113 1114var DEFAULT_CONTENT_TYPE = { 1115 'Content-Type': 'application/x-www-form-urlencoded' 1116}; 1117 1118function setContentTypeIfUnset(headers, value) { 1119 if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { 1120 headers['Content-Type'] = value; 1121 } 1122} 1123 1124function getDefaultAdapter() { 1125 var adapter; 1126 if (typeof XMLHttpRequest !== 'undefined') { 1127 // For browsers use XHR adapter 1128 adapter = __webpack_require__(448); 1129 } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { 1130 // For node use HTTP adapter 1131 adapter = __webpack_require__(448); 1132 } 1133 return adapter; 1134} 1135 1136function stringifySafely(rawValue, parser, encoder) { 1137 if (utils.isString(rawValue)) { 1138 try { 1139 (parser || JSON.parse)(rawValue); 1140 return utils.trim(rawValue); 1141 } catch (e) { 1142 if (e.name !== 'SyntaxError') { 1143 throw e; 1144 } 1145 } 1146 } 1147 1148 return (encoder || JSON.stringify)(rawValue); 1149} 1150 1151var defaults = { 1152 1153 transitional: transitionalDefaults, 1154 1155 adapter: getDefaultAdapter(), 1156 1157 transformRequest: [function transformRequest(data, headers) { 1158 normalizeHeaderName(headers, 'Accept'); 1159 normalizeHeaderName(headers, 'Content-Type'); 1160 1161 if (utils.isFormData(data) || 1162 utils.isArrayBuffer(data) || 1163 utils.isBuffer(data) || 1164 utils.isStream(data) || 1165 utils.isFile(data) || 1166 utils.isBlob(data) 1167 ) { 1168 return data; 1169 } 1170 if (utils.isArrayBufferView(data)) { 1171 return data.buffer; 1172 } 1173 if (utils.isURLSearchParams(data)) { 1174 setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); 1175 return data.toString(); 1176 } 1177 1178 var isObjectPayload = utils.isObject(data); 1179 var contentType = headers && headers['Content-Type']; 1180 1181 var isFileList; 1182 1183 if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) { 1184 var _FormData = this.env && this.env.FormData; 1185 return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData()); 1186 } else if (isObjectPayload || contentType === 'application/json') { 1187 setContentTypeIfUnset(headers, 'application/json'); 1188 return stringifySafely(data); 1189 } 1190 1191 return data; 1192 }], 1193 1194 transformResponse: [function transformResponse(data) { 1195 var transitional = this.transitional || defaults.transitional; 1196 var silentJSONParsing = transitional && transitional.silentJSONParsing; 1197 var forcedJSONParsing = transitional && transitional.forcedJSONParsing; 1198 var strictJSONParsing = !silentJSONParsing && this.responseType === 'json'; 1199 1200 if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {
vendor: 6,683 bytes, lines 1201-1513
1201 try { 1202 return JSON.parse(data); 1203 } catch (e) { 1204 if (strictJSONParsing) { 1205 if (e.name === 'SyntaxError') { 1206 throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response); 1207 } 1208 throw e; 1209 } 1210 } 1211 } 1212 1213 return data; 1214 }], 1215 1216 /** 1217 * A timeout in milliseconds to abort a request. If set to 0 (default) a 1218 * timeout is not created. 1219 */ 1220 timeout: 0, 1221 1222 xsrfCookieName: 'XSRF-TOKEN', 1223 xsrfHeaderName: 'X-XSRF-TOKEN', 1224 1225 maxContentLength: -1, 1226 maxBodyLength: -1, 1227 1228 env: { 1229 FormData: __webpack_require__(623) 1230 }, 1231 1232 validateStatus: function validateStatus(status) { 1233 return status >= 200 && status < 300; 1234 }, 1235 1236 headers: { 1237 common: { 1238 'Accept': 'application/json, text/plain, */*' 1239 } 1240 } 1241}; 1242 1243utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { 1244 defaults.headers[method] = {}; 1245}); 1246 1247utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { 1248 defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); 1249}); 1250 1251module.exports = defaults; 1252 1253 1254/***/ }), 1255 1256/***/ 874: 1257/***/ (function(module) { 1258 1259"use strict"; 1260 1261 1262module.exports = { 1263 silentJSONParsing: true, 1264 forcedJSONParsing: true, 1265 clarifyTimeoutError: false 1266}; 1267 1268 1269/***/ }), 1270 1271/***/ 288: 1272/***/ (function(module) { 1273 1274module.exports = { 1275 "version": "0.27.2" 1276}; 1277 1278/***/ }), 1279 1280/***/ 849: 1281/***/ (function(module) { 1282 1283"use strict"; 1284 1285 1286module.exports = function bind(fn, thisArg) { 1287 return function wrap() { 1288 var args = new Array(arguments.length); 1289 for (var i = 0; i < args.length; i++) { 1290 args[i] = arguments[i]; 1291 } 1292 return fn.apply(thisArg, args); 1293 }; 1294}; 1295 1296 1297/***/ }), 1298 1299/***/ 327: 1300/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1301 1302"use strict"; 1303 1304 1305var utils = __webpack_require__(867); 1306 1307function encode(val) { 1308 return encodeURIComponent(val). 1309 replace(/%3A/gi, ':'). 1310 replace(/%24/g, '$'). 1311 replace(/%2C/gi, ','). 1312 replace(/%20/g, '+'). 1313 replace(/%5B/gi, '['). 1314 replace(/%5D/gi, ']'); 1315} 1316 1317/** 1318 * Build a URL by appending params to the end 1319 * 1320 * @param {string} url The base of the url (e.g., http://www.google.com) 1321 * @param {object} [params] The params to be appended 1322 * @returns {string} The formatted url 1323 */ 1324module.exports = function buildURL(url, params, paramsSerializer) { 1325 /*eslint no-param-reassign:0*/ 1326 if (!params) { 1327 return url; 1328 } 1329 1330 var serializedParams; 1331 if (paramsSerializer) { 1332 serializedParams = paramsSerializer(params); 1333 } else if (utils.isURLSearchParams(params)) { 1334 serializedParams = params.toString(); 1335 } else { 1336 var parts = []; 1337 1338 utils.forEach(params, function serialize(val, key) { 1339 if (val === null || typeof val === 'undefined') { 1340 return; 1341 } 1342 1343 if (utils.isArray(val)) { 1344 key = key + '[]'; 1345 } else { 1346 val = [val]; 1347 } 1348 1349 utils.forEach(val, function parseValue(v) { 1350 if (utils.isDate(v)) { 1351 v = v.toISOString(); 1352 } else if (utils.isObject(v)) { 1353 v = JSON.stringify(v); 1354 } 1355 parts.push(encode(key) + '=' + encode(v)); 1356 }); 1357 }); 1358 1359 serializedParams = parts.join('&'); 1360 } 1361 1362 if (serializedParams) { 1363 var hashmarkIndex = url.indexOf('#'); 1364 if (hashmarkIndex !== -1) { 1365 url = url.slice(0, hashmarkIndex); 1366 } 1367 1368 url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; 1369 } 1370 1371 return url; 1372}; 1373 1374 1375/***/ }), 1376 1377/***/ 303: 1378/***/ (function(module) { 1379 1380"use strict"; 1381 1382 1383/** 1384 * Creates a new URL by combining the specified URLs 1385 * 1386 * @param {string} baseURL The base URL 1387 * @param {string} relativeURL The relative URL 1388 * @returns {string} The combined URL 1389 */ 1390module.exports = function combineURLs(baseURL, relativeURL) { 1391 return relativeURL 1392 ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') 1393 : baseURL; 1394}; 1395 1396 1397/***/ }), 1398 1399/***/ 372: 1400/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1401 1402"use strict"; 1403 1404 1405var utils = __webpack_require__(867); 1406 1407module.exports = ( 1408 utils.isStandardBrowserEnv() ? 1409 1410 // Standard browser envs support document.cookie 1411 (function standardBrowserEnv() { 1412 return { 1413 write: function write(name, value, expires, path, domain, secure) { 1414 var cookie = []; 1415 cookie.push(name + '=' + encodeURIComponent(value)); 1416 1417 if (utils.isNumber(expires)) { 1418 cookie.push('expires=' + new Date(expires).toGMTString()); 1419 } 1420 1421 if (utils.isString(path)) { 1422 cookie.push('path=' + path); 1423 } 1424 1425 if (utils.isString(domain)) { 1426 cookie.push('domain=' + domain); 1427 } 1428 1429 if (secure === true) { 1430 cookie.push('secure'); 1431 } 1432 1433 document.cookie = cookie.join('; '); 1434 }, 1435 1436 read: function read(name) { 1437 var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); 1438 return (match ? decodeURIComponent(match[3]) : null); 1439 }, 1440 1441 remove: function remove(name) { 1442 this.write(name, '', Date.now() - 86400000); 1443 } 1444 }; 1445 })() : 1446 1447 // Non standard browser env (web workers, react-native) lack needed support. 1448 (function nonStandardBrowserEnv() { 1449 return { 1450 write: function write() {}, 1451 read: function read() { return null; }, 1452 remove: function remove() {} 1453 }; 1454 })() 1455); 1456 1457 1458/***/ }), 1459 1460/***/ 793: 1461/***/ (function(module) { 1462 1463"use strict"; 1464 1465 1466/** 1467 * Determines whether the specified URL is absolute 1468 * 1469 * @param {string} url The URL to test 1470 * @returns {boolean} True if the specified URL is absolute, otherwise false 1471 */ 1472module.exports = function isAbsoluteURL(url) { 1473 // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL). 1474 // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed 1475 // by any combination of letters, digits, plus, period, or hyphen. 1476 return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); 1477}; 1478 1479 1480/***/ }), 1481 1482/***/ 268: 1483/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1484 1485"use strict"; 1486 1487 1488var utils = __webpack_require__(867); 1489 1490/** 1491 * Determines whether the payload is an error thrown by Axios 1492 * 1493 * @param {*} payload The value to test 1494 * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false 1495 */ 1496module.exports = function isAxiosError(payload) { 1497 return utils.isObject(payload) && (payload.isAxiosError === true); 1498}; 1499 1500 1501/***/ }), 1502 1503/***/ 985: 1504/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1505 1506"use strict"; 1507 1508 1509var utils = __webpack_require__(867); 1510 1511module.exports = ( 1512 utils.isStandardBrowserEnv() ? 1513
vendor: 3,836 bytes, lines 1514-1647
1514 // Standard browser envs have full support of the APIs needed to test 1515 // whether the request URL is of the same origin as current location. 1516 (function standardBrowserEnv() { 1517 var msie = /(msie|trident)/i.test(navigator.userAgent); 1518 var urlParsingNode = document.createElement('a'); 1519 var originURL; 1520 1521 /** 1522 * Parse a URL to discover it's components 1523 * 1524 * @param {String} url The URL to be parsed 1525 * @returns {Object} 1526 */ 1527 function resolveURL(url) { 1528 var href = url; 1529 1530 if (msie) { 1531 // IE needs attribute set twice to normalize properties 1532 urlParsingNode.setAttribute('href', href); 1533 href = urlParsingNode.href; 1534 } 1535 1536 urlParsingNode.setAttribute('href', href); 1537 1538 // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils 1539 return { 1540 href: urlParsingNode.href, 1541 protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', 1542 host: urlParsingNode.host, 1543 search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', 1544 hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', 1545 hostname: urlParsingNode.hostname, 1546 port: urlParsingNode.port, 1547 pathname: (urlParsingNode.pathname.charAt(0) === '/') ? 1548 urlParsingNode.pathname : 1549 '/' + urlParsingNode.pathname 1550 }; 1551 } 1552 1553 originURL = resolveURL(window.location.href); 1554 1555 /** 1556 * Determine if a URL shares the same origin as the current location 1557 * 1558 * @param {String} requestURL The URL to test 1559 * @returns {boolean} True if URL shares the same origin, otherwise false 1560 */ 1561 return function isURLSameOrigin(requestURL) { 1562 var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; 1563 return (parsed.protocol === originURL.protocol && 1564 parsed.host === originURL.host); 1565 }; 1566 })() : 1567 1568 // Non standard browser envs (web workers, react-native) lack needed support. 1569 (function nonStandardBrowserEnv() { 1570 return function isURLSameOrigin() { 1571 return true; 1572 }; 1573 })() 1574); 1575 1576 1577/***/ }), 1578 1579/***/ 16: 1580/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1581 1582"use strict"; 1583 1584 1585var utils = __webpack_require__(867); 1586 1587module.exports = function normalizeHeaderName(headers, normalizedName) { 1588 utils.forEach(headers, function processHeader(value, name) { 1589 if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { 1590 headers[normalizedName] = value; 1591 delete headers[name]; 1592 } 1593 }); 1594}; 1595 1596 1597/***/ }), 1598 1599/***/ 623: 1600/***/ (function(module) { 1601 1602// eslint-disable-next-line strict 1603module.exports = null; 1604 1605 1606/***/ }), 1607 1608/***/ 109: 1609/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1610 1611"use strict"; 1612 1613 1614var utils = __webpack_require__(867); 1615 1616// Headers whose duplicates are ignored by node 1617// c.f. https://nodejs.org/api/http.html#http_message_headers 1618var ignoreDuplicateOf = [ 1619 'age', 'authorization', 'content-length', 'content-type', 'etag', 1620 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 1621 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 1622 'referer', 'retry-after', 'user-agent' 1623]; 1624 1625/** 1626 * Parse headers into an object 1627 * 1628 * ``` 1629 * Date: Wed, 27 Aug 2014 08:58:49 GMT 1630 * Content-Type: application/json 1631 * Connection: keep-alive 1632 * Transfer-Encoding: chunked 1633 * ``` 1634 * 1635 * @param {String} headers Headers needing to be parsed 1636 * @returns {Object} Headers parsed into an object 1637 */ 1638module.exports = function parseHeaders(headers) { 1639 var parsed = {}; 1640 var key; 1641 var val; 1642 var i; 1643 1644 if (!headers) { return parsed; } 1645 1646 utils.forEach(headers.split('\n'), function parser(line) { 1647 i = line.indexOf(':');
1648 key = utils.trim(line.substr(0, i)).toLowerCase(); 1649 val = utils.trim(line.substr(i + 1)); 1650 1651 if (key) { 1652 if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { 1653 return; 1654 } 1655 if (key === 'set-cookie') { 1656 parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); 1657 } else { 1658 parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; 1659 } 1660 } 1661 }); 1662 1663 return parsed; 1664}; 1665 1666 1667/***/ }), 1668 1669/***/ 205: 1670/***/ (function(module) { 1671 1672"use strict"; 1673 1674 1675module.exports = function parseProtocol(url) { 1676 var match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); 1677 return match && match[1] || ''; 1678}; 1679 1680 1681/***/ }), 1682 1683/***/ 713: 1684/***/ (function(module) { 1685 1686"use strict"; 1687 1688 1689/** 1690 * Syntactic sugar for invoking a function and expanding an array for arguments. 1691 * 1692 * Common use case would be to use `Function.prototype.apply`. 1693 * 1694 * ```js 1695 * function f(x, y, z) {} 1696 * var args = [1, 2, 3]; 1697 * f.apply(null, args); 1698 * ``` 1699 * 1700 * With `spread` this example can be re-written. 1701 * 1702 * ```js 1703 * spread(function(x, y, z) {})([1, 2, 3]); 1704 * ``` 1705 * 1706 * @param {Function} callback 1707 * @returns {Function} 1708 */ 1709module.exports = function spread(callback) { 1710 return function wrap(arr) { 1711 return callback.apply(null, arr); 1712 }; 1713}; 1714 1715 1716/***/ }), 1717 1718/***/ 675: 1719/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1720 1721"use strict"; 1722 1723 1724var utils = __webpack_require__(867); 1725 1726/** 1727 * Convert a data object to FormData 1728 * @param {Object} obj 1729 * @param {?Object} [formData] 1730 * @returns {Object} 1731 **/ 1732 1733function toFormData(obj, formData) { 1734 // eslint-disable-next-line no-param-reassign 1735 formData = formData || new FormData(); 1736 1737 var stack = []; 1738 1739 function convertValue(value) { 1740 if (value === null) return ''; 1741 1742 if (utils.isDate(value)) { 1743 return value.toISOString(); 1744 } 1745 1746 if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) { 1747 return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); 1748 } 1749 1750 return value; 1751 } 1752 1753 function build(data, parentKey) { 1754 if (utils.isPlainObject(data) || utils.isArray(data)) { 1755 if (stack.indexOf(data) !== -1) { 1756 throw Error('Circular reference detected in ' + parentKey); 1757 } 1758 1759 stack.push(data); 1760 1761 utils.forEach(data, function each(value, key) { 1762 if (utils.isUndefined(value)) return; 1763 var fullKey = parentKey ? parentKey + '.' + key : key; 1764 var arr; 1765 1766 if (value && !parentKey && typeof value === 'object') { 1767 if (utils.endsWith(key, '{}')) { 1768 // eslint-disable-next-line no-param-reassign 1769 value = JSON.stringify(value); 1770 } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) { 1771 // eslint-disable-next-line func-names 1772 arr.forEach(function(el) { 1773 !utils.isUndefined(el) && formData.append(fullKey, convertValue(el)); 1774 }); 1775 return; 1776 } 1777 } 1778 1779 build(value, fullKey); 1780 }); 1781 1782 stack.pop(); 1783 } else { 1784 formData.append(parentKey, convertValue(data)); 1785 } 1786 } 1787 1788 build(obj); 1789 1790 return formData; 1791} 1792 1793module.exports = toFormData; 1794 1795 1796/***/ }), 1797 1798/***/ 875: 1799/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1800 1801"use strict"; 1802 1803 1804var VERSION = (__webpack_require__(288).version); 1805var AxiosError = __webpack_require__(648); 1806 1807var validators = {}; 1808 1809// eslint-disable-next-line func-names 1810['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) { 1811 validators[type] = function validator(thing) { 1812 return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; 1813 }; 1814}); 1815 1816var deprecatedWarnings = {}; 1817 1818/** 1819 * Transitional option validator 1820 * @param {function|boolean?} validator - set to false if the transitional option has been removed 1821 * @param {string?} version - deprecated version / removed since version 1822 * @param {string?} message - some message with additional info 1823 * @returns {function} 1824 */ 1825validators.transitional = function transitional(validator, version, message) { 1826 function formatMessage(opt, desc) { 1827 return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : ''); 1828 } 1829 1830 // eslint-disable-next-line func-names 1831 return function(value, opt, opts) { 1832 if (validator === false) { 1833 throw new AxiosError( 1834 formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), 1835 AxiosError.ERR_DEPRECATED 1836 ); 1837 } 1838 1839 if (version && !deprecatedWarnings[opt]) { 1840 deprecatedWarnings[opt] = true; 1841 // eslint-disable-next-line no-console 1842 console.warn( 1843 formatMessage( 1844 opt, 1845 ' has been deprecated since v' + version + ' and will be removed in the near future' 1846 ) 1847 ); 1848 } 1849 1850 return validator ? validator(value, opt, opts) : true; 1851 }; 1852}; 1853 1854/** 1855 * Assert object's properties type 1856 * @param {object} options 1857 * @param {object} schema 1858 * @param {boolean?} allowUnknown 1859 */ 1860 1861function assertOptions(options, schema, allowUnknown) { 1862 if (typeof options !== 'object') { 1863 throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); 1864 } 1865 var keys = Object.keys(options); 1866 var i = keys.length; 1867 while (i-- > 0) { 1868 var opt = keys[i];
vendor: 9,570 bytes, lines 1869-2245
1869 var validator = schema[opt]; 1870 if (validator) { 1871 var value = options[opt]; 1872 var result = value === undefined || validator(value, opt, options); 1873 if (result !== true) { 1874 throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE); 1875 } 1876 continue; 1877 } 1878 if (allowUnknown !== true) { 1879 throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); 1880 } 1881 } 1882} 1883 1884module.exports = { 1885 assertOptions: assertOptions, 1886 validators: validators 1887}; 1888 1889 1890/***/ }), 1891 1892/***/ 867: 1893/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 1894 1895"use strict"; 1896 1897 1898var bind = __webpack_require__(849); 1899 1900// utils is a library of generic helper functions non-specific to axios 1901 1902var toString = Object.prototype.toString; 1903 1904// eslint-disable-next-line func-names 1905var kindOf = (function(cache) { 1906 // eslint-disable-next-line func-names 1907 return function(thing) { 1908 var str = toString.call(thing); 1909 return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); 1910 }; 1911})(Object.create(null)); 1912 1913function kindOfTest(type) { 1914 type = type.toLowerCase(); 1915 return function isKindOf(thing) { 1916 return kindOf(thing) === type; 1917 }; 1918} 1919 1920/** 1921 * Determine if a value is an Array 1922 * 1923 * @param {Object} val The value to test 1924 * @returns {boolean} True if value is an Array, otherwise false 1925 */ 1926function isArray(val) { 1927 return Array.isArray(val); 1928} 1929 1930/** 1931 * Determine if a value is undefined 1932 * 1933 * @param {Object} val The value to test 1934 * @returns {boolean} True if the value is undefined, otherwise false 1935 */ 1936function isUndefined(val) { 1937 return typeof val === 'undefined'; 1938} 1939 1940/** 1941 * Determine if a value is a Buffer 1942 * 1943 * @param {Object} val The value to test 1944 * @returns {boolean} True if value is a Buffer, otherwise false 1945 */ 1946function isBuffer(val) { 1947 return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) 1948 && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); 1949} 1950 1951/** 1952 * Determine if a value is an ArrayBuffer 1953 * 1954 * @function 1955 * @param {Object} val The value to test 1956 * @returns {boolean} True if value is an ArrayBuffer, otherwise false 1957 */ 1958var isArrayBuffer = kindOfTest('ArrayBuffer'); 1959 1960 1961/** 1962 * Determine if a value is a view on an ArrayBuffer 1963 * 1964 * @param {Object} val The value to test 1965 * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false 1966 */ 1967function isArrayBufferView(val) { 1968 var result; 1969 if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { 1970 result = ArrayBuffer.isView(val); 1971 } else { 1972 result = (val) && (val.buffer) && (isArrayBuffer(val.buffer)); 1973 } 1974 return result; 1975} 1976 1977/** 1978 * Determine if a value is a String 1979 * 1980 * @param {Object} val The value to test 1981 * @returns {boolean} True if value is a String, otherwise false 1982 */ 1983function isString(val) { 1984 return typeof val === 'string'; 1985} 1986 1987/** 1988 * Determine if a value is a Number 1989 * 1990 * @param {Object} val The value to test 1991 * @returns {boolean} True if value is a Number, otherwise false 1992 */ 1993function isNumber(val) { 1994 return typeof val === 'number'; 1995} 1996 1997/** 1998 * Determine if a value is an Object 1999 * 2000 * @param {Object} val The value to test 2001 * @returns {boolean} True if value is an Object, otherwise false 2002 */ 2003function isObject(val) { 2004 return val !== null && typeof val === 'object'; 2005} 2006 2007/** 2008 * Determine if a value is a plain Object 2009 * 2010 * @param {Object} val The value to test 2011 * @return {boolean} True if value is a plain Object, otherwise false 2012 */ 2013function isPlainObject(val) { 2014 if (kindOf(val) !== 'object') { 2015 return false; 2016 } 2017 2018 var prototype = Object.getPrototypeOf(val); 2019 return prototype === null || prototype === Object.prototype; 2020} 2021 2022/** 2023 * Determine if a value is a Date 2024 * 2025 * @function 2026 * @param {Object} val The value to test 2027 * @returns {boolean} True if value is a Date, otherwise false 2028 */ 2029var isDate = kindOfTest('Date'); 2030 2031/** 2032 * Determine if a value is a File 2033 * 2034 * @function 2035 * @param {Object} val The value to test 2036 * @returns {boolean} True if value is a File, otherwise false 2037 */ 2038var isFile = kindOfTest('File'); 2039 2040/** 2041 * Determine if a value is a Blob 2042 * 2043 * @function 2044 * @param {Object} val The value to test 2045 * @returns {boolean} True if value is a Blob, otherwise false 2046 */ 2047var isBlob = kindOfTest('Blob'); 2048 2049/** 2050 * Determine if a value is a FileList 2051 * 2052 * @function 2053 * @param {Object} val The value to test 2054 * @returns {boolean} True if value is a File, otherwise false 2055 */ 2056var isFileList = kindOfTest('FileList'); 2057 2058/** 2059 * Determine if a value is a Function 2060 * 2061 * @param {Object} val The value to test 2062 * @returns {boolean} True if value is a Function, otherwise false 2063 */ 2064function isFunction(val) { 2065 return toString.call(val) === '[object Function]'; 2066} 2067 2068/** 2069 * Determine if a value is a Stream 2070 * 2071 * @param {Object} val The value to test 2072 * @returns {boolean} True if value is a Stream, otherwise false 2073 */ 2074function isStream(val) { 2075 return isObject(val) && isFunction(val.pipe); 2076} 2077 2078/** 2079 * Determine if a value is a FormData 2080 * 2081 * @param {Object} thing The value to test 2082 * @returns {boolean} True if value is an FormData, otherwise false 2083 */ 2084function isFormData(thing) { 2085 var pattern = '[object FormData]'; 2086 return thing && ( 2087 (typeof FormData === 'function' && thing instanceof FormData) || 2088 toString.call(thing) === pattern || 2089 (isFunction(thing.toString) && thing.toString() === pattern) 2090 ); 2091} 2092 2093/** 2094 * Determine if a value is a URLSearchParams object 2095 * @function 2096 * @param {Object} val The value to test 2097 * @returns {boolean} True if value is a URLSearchParams object, otherwise false 2098 */ 2099var isURLSearchParams = kindOfTest('URLSearchParams'); 2100 2101/** 2102 * Trim excess whitespace off the beginning and end of a string 2103 * 2104 * @param {String} str The String to trim 2105 * @returns {String} The String freed of excess whitespace 2106 */ 2107function trim(str) { 2108 return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ''); 2109} 2110 2111/** 2112 * Determine if we're running in a standard browser environment 2113 * 2114 * This allows axios to run in a web worker, and react-native. 2115 * Both environments support XMLHttpRequest, but not fully standard globals. 2116 * 2117 * web workers: 2118 * typeof window -> undefined 2119 * typeof document -> undefined 2120 * 2121 * react-native: 2122 * navigator.product -> 'ReactNative' 2123 * nativescript 2124 * navigator.product -> 'NativeScript' or 'NS' 2125 */ 2126function isStandardBrowserEnv() { 2127 if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || 2128 navigator.product === 'NativeScript' || 2129 navigator.product === 'NS')) { 2130 return false; 2131 } 2132 return ( 2133 typeof window !== 'undefined' && 2134 typeof document !== 'undefined' 2135 ); 2136} 2137 2138/** 2139 * Iterate over an Array or an Object invoking a function for each item. 2140 * 2141 * If `obj` is an Array callback will be called passing 2142 * the value, index, and complete array for each item. 2143 * 2144 * If 'obj' is an Object callback will be called passing 2145 * the value, key, and complete object for each property. 2146 * 2147 * @param {Object|Array} obj The object to iterate 2148 * @param {Function} fn The callback to invoke for each item 2149 */ 2150function forEach(obj, fn) { 2151 // Don't bother if no value provided 2152 if (obj === null || typeof obj === 'undefined') { 2153 return; 2154 } 2155 2156 // Force an array if not already something iterable 2157 if (typeof obj !== 'object') { 2158 /*eslint no-param-reassign:0*/ 2159 obj = [obj]; 2160 } 2161 2162 if (isArray(obj)) { 2163 // Iterate over array values 2164 for (var i = 0, l = obj.length; i < l; i++) { 2165 fn.call(null, obj[i], i, obj); 2166 } 2167 } else { 2168 // Iterate over object keys 2169 for (var key in obj) { 2170 if (Object.prototype.hasOwnProperty.call(obj, key)) { 2171 fn.call(null, obj[key], key, obj); 2172 } 2173 } 2174 } 2175} 2176 2177/** 2178 * Accepts varargs expecting each argument to be an object, then 2179 * immutably merges the properties of each object and returns result. 2180 * 2181 * When multiple objects contain the same key the later object in 2182 * the arguments list will take precedence. 2183 * 2184 * Example: 2185 * 2186 * ```js 2187 * var result = merge({foo: 123}, {foo: 456}); 2188 * console.log(result.foo); // outputs 456 2189 * ``` 2190 * 2191 * @param {Object} obj1 Object to merge 2192 * @returns {Object} Result of all merge properties 2193 */ 2194function merge(/* obj1, obj2, obj3, ... */) { 2195 var result = {}; 2196 function assignValue(val, key) { 2197 if (isPlainObject(result[key]) && isPlainObject(val)) { 2198 result[key] = merge(result[key], val); 2199 } else if (isPlainObject(val)) { 2200 result[key] = merge({}, val); 2201 } else if (isArray(val)) { 2202 result[key] = val.slice(); 2203 } else { 2204 result[key] = val; 2205 } 2206 } 2207 2208 for (var i = 0, l = arguments.length; i < l; i++) { 2209 forEach(arguments[i], assignValue); 2210 } 2211 return result; 2212} 2213 2214/** 2215 * Extends object a by mutably adding to it the properties of object b. 2216 * 2217 * @param {Object} a The object to be extended 2218 * @param {Object} b The object to copy properties from 2219 * @param {Object} thisArg The object to bind function to 2220 * @return {Object} The resulting value of object a 2221 */ 2222function extend(a, b, thisArg) { 2223 forEach(b, function assignValue(val, key) { 2224 if (thisArg && typeof val === 'function') { 2225 a[key] = bind(val, thisArg); 2226 } else { 2227 a[key] = val; 2228 } 2229 }); 2230 return a; 2231} 2232 2233/** 2234 * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) 2235 * 2236 * @param {string} content with BOM 2237 * @return {string} content value without BOM 2238 */ 2239function stripBOM(content) { 2240 if (content.charCodeAt(0) === 0xFEFF) { 2241 content = content.slice(1); 2242 } 2243 return content; 2244} 2245
vendor: 4,519 bytes, lines 2246-2389
2246/** 2247 * Inherit the prototype methods from one constructor into another 2248 * @param {function} constructor 2249 * @param {function} superConstructor 2250 * @param {object} [props] 2251 * @param {object} [descriptors] 2252 */ 2253 2254function inherits(constructor, superConstructor, props, descriptors) { 2255 constructor.prototype = Object.create(superConstructor.prototype, descriptors); 2256 constructor.prototype.constructor = constructor; 2257 props && Object.assign(constructor.prototype, props); 2258} 2259 2260/** 2261 * Resolve object with deep prototype chain to a flat object 2262 * @param {Object} sourceObj source object 2263 * @param {Object} [destObj] 2264 * @param {Function} [filter] 2265 * @returns {Object} 2266 */ 2267 2268function toFlatObject(sourceObj, destObj, filter) { 2269 var props; 2270 var i; 2271 var prop; 2272 var merged = {}; 2273 2274 destObj = destObj || {}; 2275 2276 do { 2277 props = Object.getOwnPropertyNames(sourceObj); 2278 i = props.length; 2279 while (i-- > 0) { 2280 prop = props[i]; 2281 if (!merged[prop]) { 2282 destObj[prop] = sourceObj[prop]; 2283 merged[prop] = true; 2284 } 2285 } 2286 sourceObj = Object.getPrototypeOf(sourceObj); 2287 } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); 2288 2289 return destObj; 2290} 2291 2292/* 2293 * determines whether a string ends with the characters of a specified string 2294 * @param {String} str 2295 * @param {String} searchString 2296 * @param {Number} [position= 0] 2297 * @returns {boolean} 2298 */ 2299function endsWith(str, searchString, position) { 2300 str = String(str); 2301 if (position === undefined || position > str.length) { 2302 position = str.length; 2303 } 2304 position -= searchString.length; 2305 var lastIndex = str.indexOf(searchString, position); 2306 return lastIndex !== -1 && lastIndex === position; 2307} 2308 2309 2310/** 2311 * Returns new array from array like object 2312 * @param {*} [thing] 2313 * @returns {Array} 2314 */ 2315function toArray(thing) { 2316 if (!thing) return null; 2317 var i = thing.length; 2318 if (isUndefined(i)) return null; 2319 var arr = new Array(i); 2320 while (i-- > 0) { 2321 arr[i] = thing[i]; 2322 } 2323 return arr; 2324} 2325 2326// eslint-disable-next-line func-names 2327var isTypedArray = (function(TypedArray) { 2328 // eslint-disable-next-line func-names 2329 return function(thing) { 2330 return TypedArray && thing instanceof TypedArray; 2331 }; 2332})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array)); 2333 2334module.exports = { 2335 isArray: isArray, 2336 isArrayBuffer: isArrayBuffer, 2337 isBuffer: isBuffer, 2338 isFormData: isFormData, 2339 isArrayBufferView: isArrayBufferView, 2340 isString: isString, 2341 isNumber: isNumber, 2342 isObject: isObject, 2343 isPlainObject: isPlainObject, 2344 isUndefined: isUndefined, 2345 isDate: isDate, 2346 isFile: isFile, 2347 isBlob: isBlob, 2348 isFunction: isFunction, 2349 isStream: isStream, 2350 isURLSearchParams: isURLSearchParams, 2351 isStandardBrowserEnv: isStandardBrowserEnv, 2352 forEach: forEach, 2353 merge: merge, 2354 extend: extend, 2355 trim: trim, 2356 stripBOM: stripBOM, 2357 inherits: inherits, 2358 toFlatObject: toFlatObject, 2359 kindOf: kindOf, 2360 kindOfTest: kindOfTest, 2361 endsWith: endsWith, 2362 toArray: toArray, 2363 isTypedArray: isTypedArray, 2364 isFileList: isFileList 2365}; 2366 2367 2368/***/ }), 2369 2370/***/ 101: 2371/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 2372 2373"use strict"; 2374/** 2375 * @license React 2376 * react-dom.production.min.js 2377 * 2378 * Copyright (c) Facebook, Inc. and its affiliates. 2379 * 2380 * This source code is licensed under the MIT license found in the 2381 * LICENSE file in the root directory of this source tree. 2382 */ 2383/* 2384 Modernizr 3.0.0pre (Custom Build) | MIT 2385*/ 2386var aa=__webpack_require__(294),ca=__webpack_require__(840);function p(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c<arguments.length;c++)b+="&args[]="+encodeURIComponent(arguments[c]);return"Minified React error #"+a+"; visit "+b+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+"Capture",b)} 2387function ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])} 2388var ia=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,la= 2389{},ma={};function oa(a){if(ja.call(ma,a))return!0;
vendor: 7,993 bytes, lines 2389-2406
2389if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case "function":case "symbol":return!0;case "boolean":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return"data-"!==a&&"aria-"!==a;default:return!1}} 2390function qa(a,b,c,d){if(null===b||"undefined"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={}; 2391"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)}); 2392["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)}); 2393["checked","multiple","muted","selected"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});["capture","download"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});["cols","rows","size","span"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});["rowSpan","start"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()} 2394"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a){var b=a.replace(ra, 2395sa);z[b]=new v(b,1,!1,a,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)}); 2396z.xlinkHref=new v("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)}); 2397function ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||"o"!==b[0]&&"O"!==b[0]||"n"!==b[1]&&"N"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,""+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:"":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?"":""+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))} 2398var ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for("react.element"),wa=Symbol.for("react.portal"),ya=Symbol.for("react.fragment"),za=Symbol.for("react.strict_mode"),Aa=Symbol.for("react.profiler"),Ba=Symbol.for("react.provider"),Ca=Symbol.for("react.context"),Da=Symbol.for("react.forward_ref"),Ea=Symbol.for("react.suspense"),Fa=Symbol.for("react.suspense_list"),Ga=Symbol.for("react.memo"),Ha=Symbol.for("react.lazy");Symbol.for("react.scope");Symbol.for("react.debug_trace_mode"); 2399var Ia=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden");Symbol.for("react.cache");Symbol.for("react.tracing_marker");var Ja=Symbol.iterator;function Ka(a){if(null===a||"object"!==typeof a)return null;a=Ja&&a[Ja]||a["@@iterator"];return"function"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\n( *(at )?)/);La=b&&b[1]||""}return"\n"+La+a}var Na=!1; 2400function Oa(a,b){if(!a||Na)return"";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,"props",{set:function(){throw Error();}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&"string"===typeof l.stack){for(var e=l.stack.split("\n"), 2401f=d.stack.split("\n"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k="\n"+e[g].replace(" at new "," at ");a.displayName&&k.includes("<anonymous>")&&(k=k.replace("<anonymous>",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?Ma(a):""} 2402function Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma("Lazy");case 13:return Ma("Suspense");case 19:return Ma("SuspenseList");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return""}} 2403function Qa(a){if(null==a)return null;if("function"===typeof a)return a.displayName||a.name||null;if("string"===typeof a)return a;switch(a){case ya:return"Fragment";case wa:return"Portal";case Aa:return"Profiler";case za:return"StrictMode";case Ea:return"Suspense";case Fa:return"SuspenseList"}if("object"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||"Context")+".Consumer";case Ba:return(a._context.displayName||"Context")+".Provider";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName|| 2404b.name||"",a=""!==a?"ForwardRef("+a+")":"ForwardRef");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||"Memo";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null} 2405function Ra(a){var b=a.type;switch(a.tag){case 24:return"Cache";case 9:return(b.displayName||"Context")+".Consumer";case 10:return(b._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return a=b.render,a=a.displayName||a.name||"",b.displayName||(""!==a?"ForwardRef("+a+")":"ForwardRef");case 7:return"Fragment";case 5:return b;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Qa(b);case 8:return b===za?"StrictMode":"Mode";case 22:return"Offscreen"; 2406case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"===typeof b)return b.displayName||b.n
vendor: 5,619 bytes, lines 2406-2421
2406ame||null;if("string"===typeof b)return b}return null}function Sa(a){switch(typeof a){case "boolean":case "number":case "string":case "undefined":return a;case "object":return a;default:return""}} 2407function Ta(a){var b=a.type;return(a=a.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===b||"radio"===b)} 2408function Ua(a){var b=Ta(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=""+a[b];if(!a.hasOwnProperty(b)&&"undefined"!==typeof c&&"function"===typeof c.get&&"function"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=""+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=""+a},stopTracking:function(){a._valueTracker= 2409null;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d="";a&&(d=Ta(a)?a.checked?"true":"false":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||("undefined"!==typeof document?document:void 0);if("undefined"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}} 2410function Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?"":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:"checkbox"===b.type||"radio"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,"checked",b,!1)} 2411function bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if("number"===d){if(0===c&&""===a.value||a.value!=c)a.value=""+c}else a.value!==""+c&&(a.value=""+c);else if("submit"===d||"reset"===d){a.removeAttribute("value");return}b.hasOwnProperty("value")?cb(a,b.type,c):b.hasOwnProperty("defaultValue")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)} 2412function db(a,b,c){if(b.hasOwnProperty("value")||b.hasOwnProperty("defaultValue")){var d=b.type;if(!("submit"!==d&&"reset"!==d||void 0!==b.value&&null!==b.value))return;b=""+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;""!==c&&(a.name="");a.defaultChecked=!!a._wrapperState.initialChecked;""!==c&&(a.name=c)} 2413function cb(a,b,c){if("number"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c)}var eb=Array.isArray; 2414function fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b["$"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty("$"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=""+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}} 2415function gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:""+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b="");c=b}a._wrapperState={initialValue:Sa(c)}} 2416function ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=""+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&""!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case "svg":return"http://www.w3.org/2000/svg";case "math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}} 2417function lb(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?kb(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a} 2418var mb,nb=function(a){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if("http://www.w3.org/2000/svg"!==a.namespaceURI||"innerHTML"in a)a.innerHTML=b;else{mb=mb||document.createElement("div");mb.innerHTML="<svg>"+b.valueOf().toString()+"</svg>";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}}); 2419function ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b} 2420var pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0, 2421zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=["Webkit","ms","Moz","O"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||"boolean"===typeof b||""===b?"":c||"number"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(""+b).trim():b+"px"}
vendor: 10,537 bytes, lines 2422-2448
2422function sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf("--"),e=rb(c,b[c],d);"float"===c&&(c="cssFloat");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}); 2423function ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if("object"!==typeof b.dangerouslySetInnerHTML||!("__html"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&"object"!==typeof b.style)throw Error(p(62));}} 2424function vb(a,b){if(-1===a.indexOf("-"))return"string"===typeof b.is;switch(a){case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null; 2425function Bb(a){if(a=Cb(a)){if("function"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}} 2426function Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case "onClick":case "onClickCapture":case "onDoubleClick":case "onDoubleClickCapture":case "onMouseDown":case "onMouseDownCapture":case "onMouseMove":case "onMouseMoveCapture":case "onMouseUp":case "onMouseUpCapture":case "onMouseEnter":(d=!d.disabled)||(a=a.type,d=!("button"===a||"input"===a||"select"===a||"textarea"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&"function"!== 2427typeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,"passive",{get:function(){Lb=!0}});window.addEventListener("test",Mb,Mb);window.removeEventListener("test",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)} 2428function Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));} 2429function Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h=== 2430c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null} 2431var ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&"function"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}} 2432var oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304; 2433function tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824; 2434default:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d} 2435function vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}} 2436function wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b} 2437function Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}} 2438function Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" "); 2439function Sc(a,b){switch(a){case "focusin":case "focusout":Lc=null;break;case "dragenter":case "dragleave":Mc=null;break;case "mouseover":case "mouseout":Nc=null;break;case "pointerover":case "pointerout":Oc.delete(b.pointerId);break;case "gotpointercapture":case "lostpointercapture":Pc.delete(b.pointerId)}} 2440function Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a} 2441function Uc(a,b,c,d,e){switch(b){case "focusin":return Lc=Tc(Lc,a,b,c,d,e),!0;case "dragenter":return Mc=Tc(Mc,a,b,c,d,e),!0;case "mouseover":return Nc=Tc(Nc,a,b,c,d,e),!0;case "pointerover":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case "gotpointercapture":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1} 2442function Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null} 2443function Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)} 2444function ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))} 2445function bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0; 2446function ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}} 2447function fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null; 2448function Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}
2449function jd(a){switch(a){case "cancel":case "click":case "close":case "contextmenu":case "copy":case "cut":case "auxclick":case "dblclick":case "dragend":case "dragstart":case "drop":case "focusin":case "focusout":case "input":case "invalid":case "keydown":case "keypress":case "keyup":case "mousedown":case "mouseup":case "paste":case "pause":case "play":case "pointercancel":case "pointerdown":case "pointerup":case "ratechange":case "reset":case "resize":case "seeked":case "submit":case "touchcancel":case "touchend":case "touchstart":case "volumechange":case "change":case "selectionchange":case "textInput":case "compositionstart":case "compositionend":case "compositionupdate":case "beforeblur":case "afterblur":case "beforeinput":case "blur":case "fullscreenchange":case "focus":case "hashchange":case "popstate":case "select":case "selectstart":return 1;case "drag":case "dragenter":case "dragexit":case "dragleave":case "dragover":case "mousemove":case "mouseout":case "mouseover":case "pointermove":case "pointerout":case "pointerover":case "scroll":case "toggle":case "touchmove":case "wheel":case "mouseenter":case "mouseleave":case "pointerenter":case "pointerleave":return 4; 2450case "message":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;
vendor: 4,326 bytes, lines 2450-2460
2450function nd(){if(md)return md;var a,b=ld,c=b.length,d,e="value"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)} 2451function od(a){var b=a.keyCode;"charCode"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1} 2452function rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():"unknown"!==typeof a.returnValue&& 2453(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():"unknown"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b} 2454var sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if("movementX"in 2455a)return a.movementX;a!==yd&&(yd&&"mousemove"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return"movementY"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:"Escape", 2456Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Nd={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7", 2457119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Od={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd} 2458var Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if("Unidentified"!==b)return b}return"keypress"===a.type?(a=od(a),13===a?"Enter":String.fromCharCode(a)):"keydown"===a.type||"keyup"===a.type?Nd[a.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return"keypress"===a.type?od(a):0},keyCode:function(a){return"keydown"===a.type||"keyup"===a.type?a.keyCode:0},which:function(a){return"keypress"=== 2459a.type?od(a):"keydown"===a.type||"keyup"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return"deltaX"in a?a.deltaX:"wheelDeltaX"in a?-a.wheelDeltaX:0}, 2460deltaY:function(a){return"deltaY"in a?a.deltaY:"wheelDeltaY"in a?-a.wheelDeltaY:"wheelDelta"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&"CompositionEvent"in window,be=null;ia&&"documentMode"in document&&(be=document.documentMode);var ce=ia&&"TextEvent"in window&&!be,de=ia&&(!ae||be&&8<be&&11>
vendor: 14,933 bytes, lines 2460-2494
2460=be),ee=String.fromCharCode(32),fe=!1; 2461function ge(a,b){switch(a){case "keyup":return-1!==$d.indexOf(b.keyCode);case "keydown":return 229!==b.keyCode;case "keypress":case "mousedown":case "focusout":return!0;default:return!1}}function he(a){a=a.detail;return"object"===typeof a&&"data"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case "compositionend":return he(b);case "keypress":if(32!==b.which)return null;fe=!0;return ee;case "textInput":return a=b.data,a===ee&&fe?null:a;default:return null}} 2462function ke(a,b){if(ie)return"compositionend"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case "paste":return null;case "keypress":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case "compositionend":return de&&"ko"!==b.locale?null:b.data;default:return null}} 2463var le={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return"input"===b?!!le[a.type]:"textarea"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,"onChange");0<b.length&&(c=new td("onChange","change",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a} 2464function ve(a,b){if("change"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye="oninput"in document;if(!ye){var ze=document.createElement("div");ze.setAttribute("oninput","return;");ye="function"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent("onpropertychange",Be),qe=pe=null)}function Be(a){if("value"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}} 2465function Ce(a,b,c){"focusin"===a?(Ae(),pe=b,qe=c,pe.attachEvent("onpropertychange",Be)):"focusout"===a&&Ae()}function De(a){if("selectionchange"===a||"keyup"===a||"keydown"===a)return te(qe)}function Ee(a,b){if("click"===a)return te(b)}function Fe(a,b){if("input"===a||"change"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He="function"===typeof Object.is?Object.is:Ge; 2466function Ie(a,b){if(He(a,b))return!0;if("object"!==typeof a||null===a||"object"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a} 2467function Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1} 2468function Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c="string"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b||"true"===a.contentEditable)} 2469function Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),"selectionStart"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c, 2470d);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});"function"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}} 2471var Pe=ia&&"documentMode"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1; 2472function Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,"selectionStart"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,"onSelect"),0<d.length&&(b=new td("onSelect","select",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))} 2473function Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c["Webkit"+a]="webkit"+b;c["Moz"+a]="moz"+b;return c}var We={animationend:Ve("Animation","AnimationEnd"),animationiteration:Ve("Animation","AnimationIteration"),animationstart:Ve("Animation","AnimationStart"),transitionend:Ve("Transition","TransitionEnd")},Xe={},Ye={}; 2474ia&&(Ye=document.createElement("div").style,"AnimationEvent"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),"TransitionEvent"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze("animationend"),af=Ze("animationiteration"),bf=Ze("animationstart"),cf=Ze("transitionend"),df=new Map,ef="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" "); 2475function ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,"on"+kf)}ff($e,"onAnimationEnd");ff(af,"onAnimationIteration");ff(bf,"onAnimationStart");ff("dblclick","onDoubleClick");ff("focusin","onFocus");ff("focusout","onBlur");ff(cf,"onTransitionEnd");ha("onMouseEnter",["mouseout","mouseover"]);ha("onMouseLeave",["mouseout","mouseover"]);ha("onPointerEnter",["pointerout","pointerover"]); 2476ha("onPointerLeave",["pointerout","pointerover"]);fa("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));fa("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));fa("onBeforeInput",["compositionend","keypress","textInput","paste"]);fa("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));fa("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")); 2477fa("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var lf="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),mf=new Set("cancel close invalid load scroll toggle".split(" ").concat(lf)); 2478function nf(a,b,c){var d=a.type||"unknown-event";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null} 2479function se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;} 2480function D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+"__bubble";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf="_reactListening"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){"selectionchange"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf("selectionchange",!1,b))}} 2481function pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||"touchstart"!==b&&"touchmove"!==b&&"wheel"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)} 2482function hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[]; 2483a:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case "keypress":if(0===od(c))break a;case "keydown":case "keyup":k=Rd;break;case "focusin":n="focus";k=Fd;break;case "focusout":n="blur";k=Fd;break;case "beforeblur":case "afterblur":k=Fd;break;case "click":if(2===c.button)break a;case "auxclick":case "dblclick":case "mousedown":case "mousemove":case "mouseup":case "mouseout":case "mouseover":case "contextmenu":k=Bd;break;case "drag":case "dragend":case "dragenter":case "dragexit":case "dragleave":case "dragover":case "dragstart":case "drop":k= 2484Dd;break;case "touchcancel":case "touchend":case "touchmove":case "touchstart":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case "scroll":k=vd;break;case "wheel":k=Zd;break;case "copy":case "cut":case "paste":k=Jd;break;case "gotpointercapture":case "lostpointercapture":case "pointercancel":case "pointerdown":case "pointermove":case "pointerout":case "pointerover":case "pointerup":k=Td}var t=0!==(b&4),J=!t&&"scroll"===a,x=t?null!==h?h+"Capture":null:h;t=[];for(var w=d,u;null!== 2485w;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h="mouseover"===a||"pointerover"===a;k="mouseout"===a||"pointerout"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!== 2486n&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F="onMouseLeave";x="onMouseEnter";w="mouse";if("pointerout"===a||"pointerover"===a)t=Td,F="onPointerLeave",x="onPointerEnter",w="pointer";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+"leave",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+"enter",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x= 2487vf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if("select"===k||"input"===k&&"file"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&"input"===k.toLowerCase()&&("checkbox"===h.type||"radio"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);"focusout"===a&&(xa=h._wrapperState)&& 2488xa.controlled&&"number"===h.type&&cb(h,"number",h.value)}xa=d?ue(d):window;switch(a){case "focusin":if(me(xa)||"true"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case "focusout":Se=Re=Qe=null;break;case "mousedown":Te=!0;break;case "contextmenu":case "mouseup":case "dragend":Te=!1;Ue(g,c,e);break;case "selectionchange":if(Pe)break;case "keydown":case "keyup":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case "compositionstart":var ba="onCompositionStart";break b;case "compositionend":ba="onCompositionEnd"; 2489break b;case "compositionupdate":ba="onCompositionUpdate";break b}ba=void 0}else ie?ge(a,c)&&(ba="onCompositionEnd"):"keydown"===a&&229===c.keyCode&&(ba="onCompositionStart");ba&&(de&&"ko"!==c.locale&&(ie||"onCompositionStart"!==ba?"onCompositionEnd"===ba&&ie&&($a=nd()):(kd=e,ld="value"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,"onBeforeInput"), 24900<d.length&&(e=new Ld("onBeforeInput","beforeinput",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+"Capture",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null} 2491function wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\r\n?/g,yf=/\u0000|\uFFFD/g;function zf(a){return("string"===typeof a?a:""+a).replace(xf,"\n").replace(yf,"")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){} 2492var Cf=null,Df=null;function Ef(a,b){return"textarea"===a||"noscript"===a||"string"===typeof b.children||"number"===typeof b.children||"object"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html} 2493var Ff="function"===typeof setTimeout?setTimeout:void 0,Gf="function"===typeof clearTimeout?clearTimeout:void 0,Hf="function"===typeof Promise?Promise:void 0,Jf="function"===typeof queueMicrotask?queueMicrotask:"undefined"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})} 2494function Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);
2494if(e&&8===e.nodeType)if(c=e.data,"/$"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else"$"!==c&&"$?"!==c&&"$!"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if("$"===b||"$!"===b||"$?"===b)break;if("/$"===b)return null}}return a} 2495function Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if("$"===c||"$!"===c||"$?"===c){if(0===b)return a;b--}else"/$"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of="__reactFiber$"+Nf,Pf="__reactProps$"+Nf,uf="__reactContainer$"+Nf,of="__reactEvents$"+Nf,Qf="__reactListeners$"+Nf,Rf="__reactHandles$"+Nf; 2496function Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}} 2497function E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e} 2498function Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if("function"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||"Unknown",e));return A({},c,d)} 2499function cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)} 2500function jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg="";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b} 2501function ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}
2501function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null; 2502function Ag(a,b){var c=Bg(5,null,null,0);c.elementType="DELETED";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)} 2503function Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=""===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg= 2504null,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a} 2505function Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b="head"!==b&&"body"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if("/$"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else"$"!==c&&"$!"!==c&&"$?"!==c||b++}a=a.nextSibling}yg= 2506null}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b} 2507function Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)} 2508function Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;
vendor: 73,848 bytes, lines 2508-2682
2508return Zg(a,d)} 2509function Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}} 2510function bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}} 2511function dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}} 2512function fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next= 2513b;c.lastBaseUpdate=b} 2514function gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback, 2515next:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if("function"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r="function"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r; 2516h=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}} 2517function ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if("function"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)} 2518var nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d= 2519lh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return"function"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0} 2520function ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;"object"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b} 2521function qh(a,b,c,d){a=b.state;"function"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);"function"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)} 2522function rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;"object"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;"function"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);"function"===typeof b.getDerivedStateFromProps||"function"===typeof e.getSnapshotBeforeUpdate||"function"!==typeof e.UNSAFE_componentWillMount&&"function"!==typeof e.componentWillMount||(b=e.state, 2523"function"===typeof e.componentWillMount&&e.componentWillMount(),"function"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);"function"===typeof e.componentDidMount&&(a.flags|=4194308)} 2524function sh(a,b,c){a=c.ref;if(null!==a&&"function"!==typeof a&&"object"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=""+a;if(null!==b&&null!==b.ref&&"function"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if("string"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a} 2525function th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,"[object Object]"===a?"object with keys {"+Object.keys(b).join(", ")+"}":a));}function uh(a){var b=a._init;return b(a._payload)} 2526function vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&& 2527null===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||"object"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag|| 2528b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if("string"===typeof b&&""!==b||"number"===typeof b)return b=xh(""+b,a.mode,c),b.return=a,b;if("object"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c), 2529c.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if("string"===typeof c&&""!==c||"number"===typeof c)return null!==e?null:h(a,b,""+c,d);if("object"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a, 2530b,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if("string"===typeof d&&""!==d||"number"===typeof d)return a=a.get(c)||null,h(b,a,""+d,e);if("object"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null} 2531function n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null=== 2532x.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if("function"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e, 2533m),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){"object"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if("object"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k= 2534f.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||"object"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!== 2535d;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return"string"===typeof f&&""!==f||"number"===typeof f?(f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d): 2536(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,"");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)} 2537function Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0); 2538function Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||"$?"===c.data||"$!"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[]; 2539function Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0} 2540function Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a} 2541function ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P} 2542function ei(a,b){return"function"===typeof b?b(a):b} 2543function fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState, 2544eagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]} 2545function gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){} 2546function ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))} 2547function mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)} 2548function qi(a){var b=ci();"function"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]} 2549function li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)} 2550function ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)} 2551function yi(a,b){if("function"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a} 2552function Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState} 2553function Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}} 2554function ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}} 2555function Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}} 2556var ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308, 25574,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b= 2558ci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d, 2559f,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=":"+b+"R"+c;c=Uh++;0<c&&(b+="H"+c.toString(32));b+=":"}else c=Vh++,b=":"+b+"r"+c.toString(32)+":";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)}, 2560useDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null=== 2561O?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c="",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e="\nError generating stack: "+f.message+"\n"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}} 2562function Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni="function"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c} 2563function Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if("function"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&"function"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);"function"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:""})});return c} 2564function Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null} 2565function Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)} 2566function Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child} 2567function aj(a,b,c,d,e){if(null===a){var f=c.type;if("function"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a} 2568function cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)} 2569function ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if("hidden"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!== 2570f?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child} 2571function ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;"object"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q="function"===typeof m||"function"===typeof g.getSnapshotBeforeUpdate;q||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps|| 2572(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?("function"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||"function"!==typeof g.UNSAFE_componentWillMount&&"function"!==typeof g.componentWillMount||("function"===typeof g.componentWillMount&&g.componentWillMount(),"function"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),"function"===typeof g.componentDidMount&&(b.flags|=4194308)): 2573("function"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):("function"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;"object"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m="function"===typeof y||"function"===typeof g.getSnapshotBeforeUpdate)|| 2574"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?("function"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||"function"!==typeof g.UNSAFE_componentWillUpdate&&"function"!==typeof g.componentWillUpdate||("function"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),"function"===typeof g.UNSAFE_componentWillUpdate&& 2575g.UNSAFE_componentWillUpdate(d,n,k)),"function"===typeof g.componentDidUpdate&&(b.flags|=4),"function"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r=== 2576a.memoizedState||(b.flags|=4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)} 2577function kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&"function"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)} 2578function mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}} 2579function pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:"$!"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:"hidden",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps= 2580g):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:"hidden",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return= 2581b;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:"visible",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d} 2582function rj(a,b){b=qj({mode:"visible",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a} 2583function sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:"visible",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if("$!"===e.data){d=e.nextSibling&&e.nextSibling.dataset; 2584if(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e; 25850!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if("$?"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)} 2586function xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)} 2587function yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState= 2588null;else switch(e){case "forwards":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case "backwards":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case "together":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child} 2589function jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child} 2590function zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c& 2591b.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj; 2592Aj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){}; 2593Cj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case "input":e=Ya(a,e);d=Ya(a,d);f=[];break;case "select":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case "textarea":e=gb(a,e);d=gb(a,d);f=[];break;default:"function"!==typeof e.onClick&&"function"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if("style"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&& 2594(c||(c={}),c[g]="")}else"dangerouslySetInnerHTML"!==l&&"children"!==l&&"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if("style"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]="");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l, 2595c)),c=k;else"dangerouslySetInnerHTML"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):"children"===l?"string"!==typeof k&&"number"!==typeof k||(f=f||[]).push(l,""+k):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&(ea.hasOwnProperty(l)?(null!=k&&"onScroll"===l&&D("scroll",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push("style",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)}; 2596function Ej(a,b){if(!I)switch(a.tailMode){case "hidden":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case "collapsed":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}} 2597function S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b} 2598function Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current); 2599c=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case "dialog":D("cancel",d);D("close",d);break;case "iframe":case "object":case "embed":D("load",d);break;case "video":case "audio":for(e=0;e<lf.length;e++)D(lf[e],d);break;case "source":D("error",d);break;case "img":case "image":case "link":D("error", 2600d);D("load",d);break;case "details":D("toggle",d);break;case "input":Za(d,f);D("invalid",d);break;case "select":d._wrapperState={wasMultiple:!!f.multiple};D("invalid",d);break;case "textarea":hb(d,f),D("invalid",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];"children"===g?"string"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=["children",h]):"number"===typeof h&&d.textContent!==""+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent, 2601h,a),e=["children",""+h]):ea.hasOwnProperty(g)&&null!=h&&"onScroll"===g&&D("scroll",d)}switch(c){case "input":Va(d);db(d,f,!0);break;case "textarea":Va(d);jb(d);break;case "select":case "option":break;default:"function"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;"http://www.w3.org/1999/xhtml"===a&&(a=kb(c));"http://www.w3.org/1999/xhtml"===a?"script"===c?(a=g.createElement("div"),a.innerHTML="<script>\x3c/script>",a=a.removeChild(a.firstChild)): 2602"string"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),"select"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case "dialog":D("cancel",a);D("close",a);e=d;break;case "iframe":case "object":case "embed":D("load",a);e=d;break;case "video":case "audio":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case "source":D("error",a);e=d;break;case "img":case "image":case "link":D("error", 2603a);D("load",a);e=d;break;case "details":D("toggle",a);e=d;break;case "input":Za(a,d);e=Ya(a,d);D("invalid",a);break;case "option":e=d;break;case "select":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D("invalid",a);break;case "textarea":hb(a,d);e=gb(a,d);D("invalid",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];"style"===f?sb(a,k):"dangerouslySetInnerHTML"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):"children"===f?"string"===typeof k?("textarea"!== 2604c||""!==k)&&ob(a,k):"number"===typeof k&&ob(a,""+k):"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&"autoFocus"!==f&&(ea.hasOwnProperty(f)?null!=k&&"onScroll"===f&&D("scroll",a):null!=k&&ta(a,f,k,g))}switch(c){case "input":Va(a);db(a,d,!1);break;case "textarea":Va(a);jb(a);break;case "option":null!=d.value&&a.setAttribute("value",""+Sa(d.value));break;case "select":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue, 2605!0);break;default:"function"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case "button":case "input":case "select":case "textarea":d=!!d.autoFocus;break a;case "img":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if("string"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a= 2606xg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null=== 2607a){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(), 2608Bj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066, 2609g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a= 2610a.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&"hidden"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering= 2611b,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));} 2612function Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(), 2613null;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj="function"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if("function"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1; 2614function Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if("selectionStart"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+= 2615q.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break; 2616case 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent="":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n} 2617function Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}"function"===typeof b?b(a):b.current=a}} 2618function Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag} 2619function Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}} 2620function Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling} 2621function Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling} 2622function ak(a,b,c){if(lc&&"function"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0; 2623Zj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,"function"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!== 2624c.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}} 2625function dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling} 2626function ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,"")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue; 2627a.updateQueue=null;if(null!==k)try{"input"===h&&"radio"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];"style"===m?sb(e,q):"dangerouslySetInnerHTML"===m?nb(e,q):"children"===m?ob(e,q):ta(e,m,q,l)}switch(h){case "input":bb(e,f);break;case "textarea":ib(e,f);break;case "select":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple, 2628f.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:"",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f|| 2629null!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if("function"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props= 2630b.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,"function"===typeof f.setProperty?f.setProperty("display","none","important"):f.display="none"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty("display")?k.display:null,h.style.display= 2631rb("display",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?"":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b, 2632a),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,""),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)} 2633function jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}} 2634function lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c= 2635b.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case "button":case "input":case "select":case "textarea":k.autoFocus&&c.focus();break;case "img":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break; 2636default:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}} 2637function kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if("function"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}} 2638var mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()} 2639function lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())} 2640function Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}} 2641function Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d); 2642else{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)=== 2643d)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null} 2644function Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)} 2645function Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0} 2646function Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null} 2647function Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)} 2648function Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b= 26490;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a} 2650function Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&"object"===typeof k&&"function"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState, 2651m.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536; 2652b&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&("function"===typeof w.getDerivedStateFromError||null!==u&&"function"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a} 2653function uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null} 2654function Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null} 2655function Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null; 2656var g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null} 2657function Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m=== 2658l){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!== 2659u)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&"function"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))} 2660function W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if("function"===typeof b.type.getDerivedStateFromError||"function"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}} 2661function Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)} 2662function ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk; 2663Wk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;"object"===typeof e&&null!==e&&"function"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue= 2664null,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306, 2665d,""));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState= 2666f,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32), 2667hj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps; 2668g=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return, 2669c,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c), 2670b.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)} 2671function al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)} 2672function $k(a){if("function"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2} 2673function wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext}; 2674c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c} 2675function yh(a,b,c,d,e,f){var g=2;d=a;if("function"===typeof a)bj(a)&&(g=1);else if("string"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if("object"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11; 2676break a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,""));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a} 2677function zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b} 2678function bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData= 2679null}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:""+d,children:a,containerInfo:b,implementation:c}} 2680function el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b} 2681function fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g} 2682function hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;
2682a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll="function"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a} 2683nl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a} 2684nl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||" react-mount-point-unstable "!==a.nodeValue))}function ql(){} 2685function rl(a,b,c,d,e){if(e){if("function"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,"",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if("function"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,"",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k} 2686function sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if("function"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}}; 2687Fc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}}; 2688yb=function(a,b,c){switch(b){case "input":bb(a,c);b=c.name;if("radio"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll("input[name="+JSON.stringify(""+b)+'][type="radio"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case "textarea":ib(a,c);break;case "select":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk; 2689var tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"}; 2690var vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance|| 2691kl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl; 2692exports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d="",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};
vendor: 5,881 bytes, lines 2693-2789
2693exports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if("function"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(",");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)}; 2694exports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f="",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c, 2695e);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk; 2696exports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version="18.2.0-next-9e3b772b8-20220608"; 2697 2698 2699/***/ }), 2700 2701/***/ 745: 2702/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 2703 2704"use strict"; 2705var __webpack_unused_export__; 2706 2707 2708var m = __webpack_require__(935); 2709if (true) { 2710 exports.s = m.createRoot; 2711 __webpack_unused_export__ = m.hydrateRoot; 2712} else { var i; } 2713 2714 2715/***/ }), 2716 2717/***/ 935: 2718/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 2719 2720"use strict"; 2721 2722 2723function checkDCE() { 2724 /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */ 2725 if ( 2726 typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || 2727 typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function' 2728 ) { 2729 return; 2730 } 2731 if (false) {} 2732 try { 2733 // Verify that the code above has been dead code eliminated (DCE'd). 2734 __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE); 2735 } catch (err) { 2736 // DevTools shouldn't crash React, no matter what. 2737 // We should still report in case we break this code. 2738 console.error(err); 2739 } 2740} 2741 2742if (true) { 2743 // DCE check should happen before ReactDOM bundle executes so that 2744 // DevTools can report bad minification during injection. 2745 checkDCE(); 2746 module.exports = __webpack_require__(101); 2747} else {} 2748 2749 2750/***/ }), 2751 2752/***/ 251: 2753/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 2754 2755"use strict"; 2756/** 2757 * @license React 2758 * react-jsx-runtime.production.min.js 2759 * 2760 * Copyright (c) Facebook, Inc. and its affiliates. 2761 * 2762 * This source code is licensed under the MIT license found in the 2763 * LICENSE file in the root directory of this source tree. 2764 */ 2765var f=__webpack_require__(294),k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0}; 2766function q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=""+g);void 0!==a.key&&(e=""+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q; 2767 2768 2769/***/ }), 2770 2771/***/ 408: 2772/***/ (function(__unused_webpack_module, exports) { 2773 2774"use strict"; 2775/** 2776 * @license React 2777 * react.production.min.js 2778 * 2779 * Copyright (c) Facebook, Inc. and its affiliates. 2780 * 2781 * This source code is licensed under the MIT license found in the 2782 * LICENSE file in the root directory of this source tree. 2783 */ 2784var l=Symbol.for("react.element"),n=Symbol.for("react.portal"),p=Symbol.for("react.fragment"),q=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),t=Symbol.for("react.provider"),u=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),z=Symbol.iterator;function A(a){if(null===a||"object"!==typeof a)return null;a=z&&a[z]||a["@@iterator"];return"function"===typeof a?a:null} 2785var B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={}; 2786E.prototype.setState=function(a,b){if("object"!==typeof a&&"function"!==typeof a&&null!=a)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,a,b,"setState")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,"forceUpdate")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F; 2787H.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0}; 2788function M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=""+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}} 2789function N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}
vendor: 5,107 bytes, lines 2789-2831
2789function O(a){return"object"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={"=":"=0",":":"=2"};return"$"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\/+/g;function Q(a,b){return"object"===typeof a&&null!==a&&null!=a.key?escape(""+a.key):b.toString(36)} 2790function R(a,b,e,d,c){var k=typeof a;if("undefined"===k||"boolean"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case "string":case "number":h=!0;break;case "object":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=""===d?"."+Q(h,0):d,I(c)?(e="",null!=a&&(e=a.replace(P,"$&/")+"/"),R(c,b,e,"",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?"":(""+c.key).replace(P,"$&/")+"/")+a)),b.push(c)),1;h=0;d=""===d?".":d+":";if(I(a))for(var g=0;g<a.length;g++){k= 2791a[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),"function"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if("object"===k)throw b=String(a),Error("Objects are not valid as a React child (found: "+("[object Object]"===b?"object with keys {"+Object.keys(a).join(", ")+"}":b)+"). If you meant to render a collection of children, use an array instead.");return h} 2792function S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,"","",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;} 2793var U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error("React.Children.only expected to receive a single React element child.");return a}};exports.Component=E;exports.Fragment=p; 2794exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W; 2795exports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+a+".");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=""+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f); 2796for(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}}; 2797exports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.");}; 2798exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)}; 2799exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)}; 2800exports.useTransition=function(){return U.current.useTransition()};exports.version="18.2.0"; 2801 2802 2803/***/ }), 2804 2805/***/ 294: 2806/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 2807 2808"use strict"; 2809 2810 2811if (true) { 2812 module.exports = __webpack_require__(408); 2813} else {} 2814 2815 2816/***/ }), 2817 2818/***/ 893: 2819/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 2820 2821"use strict"; 2822 2823 2824if (true) { 2825 module.exports = __webpack_require__(251); 2826} else {} 2827 2828 2829/***/ }), 2830 2831/***/ 53:
vendor: 4,571 bytes, lines 2832-2877
2832/***/ (function(__unused_webpack_module, exports) { 2833 2834"use strict"; 2835/** 2836 * @license React 2837 * scheduler.production.min.js 2838 * 2839 * Copyright (c) Facebook, Inc. and its affiliates. 2840 * 2841 * This source code is licensed under the MIT license found in the 2842 * LICENSE file in the root directory of this source tree. 2843 */ 2844function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b} 2845function g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if("object"===typeof performance&&"function"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D="function"===typeof setTimeout?setTimeout:null,E="function"===typeof clearTimeout?clearTimeout:null,F="undefined"!==typeof setImmediate?setImmediate:null; 2846"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}} 2847function J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if("function"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();"function"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1; 2848function M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if("function"===typeof F)S=function(){F(R)};else if("undefined"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)} 2849exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))}; 2850exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){}; 2851exports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}}; 2852exports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();"object"===typeof c&&null!==c?(c=c.delay,c="number"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a}; 2853exports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}}; 2854 2855 2856/***/ }), 2857 2858/***/ 840: 2859/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 2860 2861"use strict"; 2862 2863 2864if (true) { 2865 module.exports = __webpack_require__(53); 2866} else {} 2867 2868 2869/***/ }), 2870 2871/***/ 811: 2872/***/ (function(module) { 2873 2874/* global btoa */ 2875(function (root) { 2876 let base64 2877
2878 // This function's sole purpose is to help us ignore lone surrogates so that 2879 // malformed strings don't throw in the browser while being processed 2880 // permissively in Node.js. If we didn't care about parity, we could get rid 2881 // of it. 2882 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charAt 2883 function getWholeCharAndI (str, i) { 2884 const code = str.charCodeAt(i) 2885 2886 // This is a coherence check. `code` should never be `NaN`. 2887 /* istanbul ignore if */ 2888 if (isNaN(code)) { 2889 throw new RangeError('Index ' + i + ' out of range for string "' + str + '"; please open an issue at https://github.com/Trott/slug/issues/new') 2890 } 2891 if (code < 0xD800 || code > 0xDFFF) { 2892 return [str.charAt(i), i] // Non-surrogate character, keeping 'i' the same 2893 } 2894 2895 // High surrogate 2896 if (code >= 0xD800 && code <= 0xDBFF) { 2897 if (str.length <= (i + 1)) { 2898 // High surrogate without following low surrogate 2899 return [' ', i] 2900 } 2901 const next = str.charCodeAt(i + 1) 2902 if (next < 0xDC00 || next > 0xDFFF) { 2903 // High surrogate without following low surrogate 2904 return [' ', i] 2905 } 2906 return [str.charAt(i) + str.charAt(i + 1), i + 1] 2907 } 2908 2909 // Low surrogate (0xDC00 <= code && code <= 0xDFFF) 2910 if (i === 0) { 2911 // Low surrogate without preceding high surrogate 2912 return [' ', i] 2913 } 2914 2915 const prev = str.charCodeAt(i - 1) 2916 2917 /* istanbul ignore else */ 2918 if (prev < 0xD800 || prev > 0xDBFF) { 2919 // Low surrogate without preceding high surrogate 2920 return [' ', i] 2921 } 2922 2923 /* istanbul ignore next */ 2924 throw new Error('String "' + str + '" reaches code believed to be unreachable; please open an issue at https://github.com/Trott/slug/issues/new') 2925 } 2926 2927 if (typeof window !== 'undefined') { 2928 if (window.btoa) { 2929 base64 = function (input) { 2930 return btoa(unescape(encodeURIComponent(input))) 2931 } 2932 } else { 2933 // Polyfill for environments that don't have btoa or Buffer class (notably, React Native). 2934 // Based on https://github.com/davidchambers/Base64.js/blob/a121f75bb10c8dd5d557886c4b1069b31258d230/base64.js 2935 base64 = function (input) { 2936 const str = unescape(encodeURIComponent(input + '')) 2937 let output = '' 2938 for ( 2939 let block, charCode, idx = 0, map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; 2940 str.charAt(idx | 0) || (map = '=', idx % 1); 2941 output += map.charAt(63 & block >> 8 - idx % 1 * 8) 2942 ) { 2943 charCode = str.charCodeAt(idx += 3 / 4) 2944 // This is a coherence check. The result of unescape(encodeURIComponent()) should always be 2945 // characters with code points that fit into two bytes. 2946 /* istanbul ignore next */ 2947 if (charCode > 0xFF) { 2948 throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.") 2949 } 2950 block = block << 8 | charCode 2951 } 2952 return output 2953 } 2954 } 2955 } else { 2956 base64 = function (input) { 2957 return Buffer.from(input).toString('base64') 2958 } 2959 } 2960 2961 function slug (string, opts) { 2962 let result = slugify(string, opts) 2963 const fallback = opts && opts.fallback !== undefined ? opts.fallback : slug.defaults.fallback 2964 // If output is an empty string, try slug for base64 of string. 2965 if (fallback === true && result === '') { 2966 // Get rid of lone surrogates. 2967 let input = '' 2968 for (let i = 0; i < string.length; i++) { 2969 const charAndI = getWholeCharAndI(string, i) 2970 i = charAndI[1] 2971 input += charAndI[0] 2972 } 2973 result = slugify(base64(input), opts) 2974 } 2975 return result 2976 } 2977 2978 const locales = { 2979 // http://www.eki.ee/wgrs/rom1_bg.pdf 2980 bg: { Ð: 'Y', й: 'y', X: 'H', x: 'h', Ц: 'Ts', Ñ: 'ts', Щ: 'Sht', Ñ: 'sht', Ъ: 'A', Ñ: 'a', Ь: 'Y', Ñ: 'y' }, 2981 // Need a reference URL for German, although this is pretty well-known. 2982 de: { Ã: 'AE', ä: 'ae', Ã: 'OE', ö: 'oe', Ã: 'UE', ü: 'ue' }, 2983 // Need a reference URL for Serbian. 2984 sr: { Ä: 'dj', Ä: 'DJ' }, 2985 // https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/864314/ROMANIZATION_OF_UKRAINIAN.pdf 2986 uk: { Ð: 'Y', и: 'y', Ð: 'Y', й: 'y', Ц: 'Ts', Ñ: 'ts', Ð¥: 'Kh', Ñ : 'kh', Щ: 'Shch', Ñ: 'shch', Ð: 'H', г: 'h' } 2987 } 2988 2989 let defaultLocale = {} 2990 2991 function slugify (string, opts) { 2992 if (typeof string !== 'string') { 2993 throw new Error('slug() requires a string argument, received ' + typeof string) 2994 } 2995 if (typeof opts === 'string') { opts = { replacement: opts } } 2996 opts = opts ? Object.assign({}, opts) : {} 2997 opts.mode = opts.mode || slug.defaults.mode 2998 const defaults = slug.defaults.modes[opts.mode]
vendor: 6,119 bytes, lines 2999-3348
2999 const keys = ['replacement', 'multicharmap', 'charmap', 'remove', 'lower', 'trim'] 3000 for (let key, i = 0, l = keys.length; i < l; i++) { 3001 key = keys[i] 3002 opts[key] = (key in opts) ? opts[key] : defaults[key] 3003 } 3004 const localeMap = locales[opts.locale] || defaultLocale 3005 3006 let lengths = [] 3007 for (const key in opts.multicharmap) { 3008 if (!Object.prototype.hasOwnProperty.call(opts.multicharmap, key)) { continue } 3009 3010 const len = key.length 3011 if (lengths.indexOf(len) === -1) { lengths.push(len) } 3012 } 3013 3014 // We want to match the longest string if there are multiple matches, so 3015 // sort lengths in descending order. 3016 lengths = lengths.sort(function (a, b) { return b - a }) 3017 3018 const disallowedChars = opts.mode === 'rfc3986' ? /[^\w\s\-.~]/ : /[^A-Za-z0-9\s]/ 3019 3020 let result = '' 3021 for (let char, i = 0, l = string.length; i < l; i++) { 3022 char = string[i] 3023 let matchedMultichar = false 3024 for (let j = 0; j < lengths.length; j++) { 3025 const len = lengths[j] 3026 const str = string.substr(i, len) 3027 if (opts.multicharmap[str]) { 3028 i += len - 1 3029 char = opts.multicharmap[str] 3030 matchedMultichar = true 3031 break 3032 } 3033 } 3034 if (!matchedMultichar) { 3035 if (localeMap[char]) { 3036 char = localeMap[char] 3037 } else if (opts.charmap[char]) { 3038 char = opts.charmap[char].replace(opts.replacement, ' ') 3039 } else if (char.includes(opts.replacement)) { 3040 // preserve the replacement character in case it is excluded by disallowedChars 3041 char = char.replace(opts.replacement, ' ') 3042 } else { 3043 char = char.replace(disallowedChars, '') 3044 } 3045 } 3046 result += char 3047 } 3048 3049 if (opts.remove) { 3050 result = result.replace(opts.remove, '') 3051 } 3052 if (opts.trim) { 3053 result = result.trim() 3054 } 3055 result = result.replace(/\s+/g, opts.replacement) // convert spaces 3056 if (opts.lower) { 3057 result = result.toLowerCase() 3058 } 3059 return result 3060 } 3061 3062 const initialMulticharmap = { 3063 // multibyte devanagari characters (hindi, sanskrit, etc.) 3064 फ़: 'Fi', 3065 à¤à¤¼: 'Ghi', 3066 à¤à¤¼: 'Khi', 3067 à¤à¤¼: 'Qi', 3068 ड़: 'ugDha', 3069 ढ़: 'ugDhha', 3070 य़: 'Yi', 3071 à¤à¤¼: 'Za', 3072 // hebrew 3073 // Refs: http://www.eki.ee/wgrs/rom1_he.pdf 3074 // Refs: https://en.wikipedia.org/wiki/Niqqud 3075 ×Ö´×: 'i', 3076 ×Öµ: 'e', 3077 ×Öµ×: 'e', 3078 ×Ö¶: 'e', 3079 ×Ö·: 'a', 3080 ×Ö¸: 'a', 3081 ×Ö¹: 'o', 3082 ×Ö¹: 'o', 3083 ×Ö»: 'u', 3084 ×Ö¼: 'u', 3085 ×Ö¼: 'b', 3086 ×Ö¼: 'k', 3087 ×Ö¼: 'k', 3088 פּ: 'p', 3089 ש×: 'sh', 3090 ש×: 's', 3091 ×Ö°: 'e', 3092 ×Ö±: 'e', 3093 ×Ö²: 'a', 3094 ×Ö³: 'o', 3095 ×Ö´: 'i' 3096 } 3097 3098 // https://github.com/django/django/blob/master/django/contrib/admin/static/admin/js/urlify.js 3099 const initialCharmap = { 3100 // latin 3101 Ã: 'A', 3102 Ã: 'A', 3103 Ã: 'A', 3104 Ã: 'A', 3105 Ã: 'A', 3106 à : 'A', 3107 Ã: 'AE', 3108 Ã: 'C', 3109 Ã: 'E', 3110 Ã: 'E', 3111 Ã: 'E', 3112 Ã: 'E', 3113 Ã: 'I', 3114 Ã: 'I', 3115 Ã: 'I', 3116 Ã: 'I', 3117 Ã: 'D', 3118 Ã: 'N', 3119 Ã: 'O', 3120 Ã: 'O', 3121 Ã: 'O', 3122 Ã: 'O', 3123 Ã: 'O', 3124 Å: 'O', 3125 Ã: 'O', 3126 Å: 'O', 3127 Ã: 'U', 3128 Ã: 'U', 3129 Ã: 'U', 3130 Ã: 'U', 3131 Ű: 'U', 3132 Ã: 'Y', 3133 Ã: 'TH', 3134 Ã: 'ss', 3135 à : 'a', 3136 á: 'a', 3137 â: 'a', 3138 ã: 'a', 3139 ä: 'a', 3140 Ã¥: 'a', 3141 æ: 'ae', 3142 ç: 'c', 3143 è: 'e', 3144 é: 'e', 3145 ê: 'e', 3146 ë: 'e', 3147 ì: 'i', 3148 Ã: 'i', 3149 î: 'i', 3150 ï: 'i', 3151 ð: 'd', 3152 ñ: 'n', 3153 ò: 'o', 3154 ó: 'o', 3155 ô: 'o', 3156 õ: 'o', 3157 ö: 'o', 3158 Å: 'o', 3159 ø: 'o', 3160 Å: 'o', 3161 Å: 'OE', 3162 Å: 'oe', 3163 ù: 'u', 3164 ú: 'u', 3165 û: 'u', 3166 ü: 'u', 3167 ű: 'u', 3168 ý: 'y', 3169 þ: 'th', 3170 ÿ: 'y', 3171 áº: 'SS', 3172 // greek 3173 α: 'a', 3174 β: 'b', 3175 γ: 'g', 3176 δ: 'd', 3177 ε: 'e', 3178 ζ: 'z', 3179 η: 'h', 3180 θ: '8', 3181 ι: 'i', 3182 κ: 'k', 3183 λ: 'l', 3184 μ: 'm', 3185 ν: 'n', 3186 ξ: '3', 3187 ο: 'o', 3188 Ï: 'p', 3189 Ï: 'r', 3190 Ï: 's', 3191 Ï: 't', 3192 Ï : 'y', 3193 Ï: 'f', 3194 Ï: 'x', 3195 Ï: 'ps', 3196 Ï: 'w', 3197 ά: 'a', 3198 Î: 'e', 3199 ί: 'i', 3200 Ï: 'o', 3201 Ï: 'y', 3202 ή: 'h', 3203 Ï: 'w', 3204 Ï: 's', 3205 Ï: 'i', 3206 ΰ: 'y', 3207 Ï: 'y', 3208 Î: 'i', 3209 Î: 'A', 3210 Î: 'B', 3211 Î: 'G', 3212 Î: 'D', 3213 Î: 'E', 3214 Î: 'Z', 3215 Î: 'H', 3216 Î: '8', 3217 Î: 'I', 3218 Î: 'K', 3219 Î: 'L', 3220 Î: 'M', 3221 Î: 'N', 3222 Î: '3', 3223 Î: 'O', 3224 Î : 'P', 3225 Ρ: 'R', 3226 Σ: 'S', 3227 Τ: 'T', 3228 Î¥: 'Y', 3229 Φ: 'F', 3230 Χ: 'X', 3231 Ψ: 'PS', 3232 Ω: 'W', 3233 Î: 'A', 3234 Î: 'E', 3235 Î: 'I', 3236 Î: 'O', 3237 Î: 'Y', 3238 Î: 'H', 3239 Î: 'W', 3240 Ϊ: 'I', 3241 Ϋ: 'Y', 3242 // turkish 3243 Å: 's', 3244 Å: 'S', 3245 ı: 'i', 3246 İ: 'I', 3247 Ä: 'g', 3248 Ä: 'G', 3249 // russian 3250 а: 'a', 3251 б: 'b', 3252 в: 'v', 3253 г: 'g', 3254 д: 'd', 3255 е: 'e', 3256 Ñ: 'yo', 3257 ж: 'zh', 3258 з: 'z', 3259 и: 'i', 3260 й: 'j', 3261 к: 'k', 3262 л: 'l', 3263 м: 'm', 3264 н: 'n', 3265 о: 'o', 3266 п: 'p', 3267 Ñ: 'r', 3268 Ñ: 's', 3269 Ñ: 't', 3270 Ñ: 'u', 3271 Ñ: 'f', 3272 Ñ : 'h', 3273 Ñ: 'c', 3274 Ñ: 'ch', 3275 Ñ: 'sh', 3276 Ñ: 'sh', 3277 Ñ: 'u', 3278 Ñ: 'y', 3279 Ñ: '', 3280 Ñ: 'e', 3281 Ñ: 'yu', 3282 Ñ: 'ya', 3283 Ð: 'A', 3284 Ð: 'B', 3285 Ð: 'V', 3286 Ð: 'G', 3287 Ð: 'D', 3288 Ð: 'E', 3289 Ð: 'Yo', 3290 Ð: 'Zh', 3291 Ð: 'Z', 3292 Ð: 'I', 3293 Ð: 'J', 3294 Ð: 'K', 3295 Ð: 'L', 3296 Ð: 'M', 3297 Ð: 'N', 3298 Ð: 'O', 3299 Ð: 'P', 3300 Ð : 'R', 3301 С: 'S', 3302 Т: 'T', 3303 У: 'U', 3304 Ф: 'F', 3305 Ð¥: 'H', 3306 Ц: 'C', 3307 Ч: 'Ch', 3308 Ш: 'Sh', 3309 Щ: 'Sh', 3310 Ъ: 'U', 3311 Ы: 'Y', 3312 Ь: '', 3313 Ð: 'E', 3314 Ю: 'Yu', 3315 Я: 'Ya', 3316 // ukranian 3317 Ð: 'Ye', 3318 Ð: 'I', 3319 Ð: 'Yi', 3320 Ò: 'G', 3321 Ñ: 'ye', 3322 Ñ: 'i', 3323 Ñ: 'yi', 3324 Ò: 'g', 3325 // czech 3326 Ä: 'c', 3327 Ä: 'd', 3328 Ä: 'e', 3329 Å: 'n', 3330 Å: 'r', 3331 Å¡: 's', 3332 Å¥: 't', 3333 ů: 'u', 3334 ž: 'z', 3335 Ä: 'C', 3336 Ä: 'D', 3337 Ä: 'E', 3338 Å: 'N', 3339 Å: 'R', 3340 Å : 'S', 3341 Ť: 'T', 3342 Å®: 'U', 3343 Ž: 'Z', 3344 // slovak 3345 ľ: 'l', 3346 ĺ: 'l', 3347 Å: 'r', 3348 Ľ: 'L',
3349 Ĺ: 'L', 3350 Å: 'R', 3351 // polish 3352 Ä : 'a', 3353 Ä: 'c', 3354 Ä: 'e', 3355 Å: 'l', 3356 Å: 'n', 3357 Å: 's', 3358 ź: 'z', 3359 ż: 'z', 3360 Ä: 'A', 3361 Ä: 'C', 3362 Ä: 'E', 3363 Å: 'L', 3364 Å: 'N', 3365 Å: 'S', 3366 Ź: 'Z', 3367 Å»: 'Z', 3368 // latvian 3369 Ä: 'a', 3370 Ä: 'e', 3371 Ä£: 'g', 3372 Ä«: 'i', 3373 Ä·: 'k', 3374 ļ: 'l', 3375 Å: 'n', 3376 Å«: 'u', 3377 Ä: 'A', 3378 Ä: 'E', 3379 Ä¢: 'G', 3380 Ī: 'I', 3381 Ķ: 'K', 3382 Ä»: 'L', 3383 Å : 'N', 3384 Ū: 'U', 3385 // arabic 3386 Ø£: 'a', 3387 Ø¥: 'i', 3388 ب: 'b', 3389 ت: 't', 3390 Ø«: 'th', 3391 ج: 'g', 3392 Ø: 'h', 3393 Ø®: 'kh', 3394 د: 'd', 3395 ذ: 'th', 3396 ر: 'r', 3397 ز: 'z', 3398 س: 's', 3399 Ø´: 'sh', 3400 ص: 's', 3401 ض: 'd', 3402 Ø·: 't', 3403 ظ: 'th', 3404 ع: 'aa', 3405 غ: 'gh', 3406 Ù: 'f', 3407 Ù: 'k', 3408 Ù: 'k', 3409 Ù: 'l', 3410 Ù : 'm', 3411 Ù: 'n', 3412 Ù: 'h', 3413 Ù: 'o', 3414 Ù: 'y', 3415 Ø¡: 'aa', 3416 Ø©: 'a', 3417 // farsi 3418 Ø¢: 'a', 3419 ا: 'a', 3420 Ù¾: 'p', 3421 Ú: 'zh', 3422 Ú¯: 'g', 3423 Ú: 'ch', 3424 Ú©: 'k', 3425 Û: 'i', 3426 // lithuanian 3427 Ä: 'e', 3428 į: 'i', 3429 ų: 'u', 3430 Ä: 'E', 3431 Ä®: 'I', 3432 Ų: 'U', 3433 // romanian 3434 È: 't', 3435 È: 'T', 3436 Å£: 't', 3437 Å¢: 'T', 3438 È: 's', 3439 È: 'S', 3440 Ä: 'a', 3441 Ä: 'A', 3442 // vietnamese 3443 Ạ: 'A', 3444 Ả: 'A', 3445 Ầ: 'A', 3446 Ấ: 'A', 3447 Ậ: 'A', 3448 Ẩ: 'A', 3449 Ẫ: 'A', 3450 Ằ: 'A', 3451 Ắ: 'A', 3452 Ặ: 'A', 3453 Ẳ: 'A', 3454 Ẵ: 'A', 3455 Ẹ: 'E', 3456 Ẻ: 'E', 3457 Ẽ: 'E', 3458 á»: 'E', 3459 Ế: 'E', 3460 á»: 'E', 3461 á»: 'E', 3462 á»: 'E', 3463 á»: 'I', 3464 á»: 'I', 3465 Ĩ: 'I', 3466 á»: 'O', 3467 á»: 'O', 3468 á»: 'O', 3469 á»: 'O', 3470 á»: 'O', 3471 á»: 'O', 3472 á»: 'O', 3473 Æ : 'O', 3474 á»: 'O', 3475 á»: 'O', 3476 Ợ: 'O', 3477 á»: 'O', 3478 á» : 'O', 3479 Ụ: 'U', 3480 Ủ: 'U', 3481 Ũ: 'U', 3482 Ư: 'U', 3483 Ừ: 'U', 3484 Ứ: 'U', 3485 á»°: 'U', 3486 Ử: 'U', 3487 á»®: 'U', 3488 Ỳ: 'Y', 3489 á»´: 'Y', 3490 á»¶: 'Y', 3491 Ỹ: 'Y', 3492 Ä: 'D', 3493 ạ: 'a', 3494 ả: 'a', 3495 ầ: 'a', 3496 ấ: 'a', 3497 áº: 'a', 3498 ẩ: 'a', 3499 ẫ: 'a', 3500 ằ: 'a', 3501 ắ: 'a', 3502 ặ: 'a', 3503 ẳ: 'a', 3504 ẵ: 'a', 3505 ẹ: 'e', 3506 ẻ: 'e', 3507 ẽ: 'e', 3508 á»: 'e', 3509 ế: 'e', 3510 á»: 'e', 3511 á»: 'e', 3512 á» : 'e', 3513 á»: 'i', 3514 á»: 'i', 3515 Ä©: 'i', 3516 á»: 'o', 3517 á»: 'o', 3518 á»: 'o', 3519 á»: 'o', 3520 á»: 'o', 3521 á»: 'o', 3522 á»: 'o', 3523 Æ¡: 'o', 3524 á»: 'o', 3525 á»: 'o', 3526 ợ: 'o', 3527 á»: 'o', 3528 ỡ: 'o', 3529 ụ: 'u', 3530 á»§: 'u', 3531 Å©: 'u', 3532 ư: 'u', 3533 ừ: 'u', 3534 ứ: 'u', 3535 á»±: 'u', 3536 á»: 'u', 3537 ữ: 'u', 3538 ỳ: 'y', 3539 ỵ: 'y', 3540 á»·: 'y', 3541 ỹ: 'y', 3542 Ä: 'd', 3543 // kazakh 3544 Ó: 'AE', 3545 Ó: 'ae', 3546 Ò: 'GH', 3547 Ò: 'gh', 3548 Ò: 'KH', 3549 Ò: 'kh', 3550 Ò¢: 'NG', 3551 Ò£: 'ng', 3552 Ò®: 'UE', 3553 Ò¯: 'ue', 3554 Ò°: 'U', 3555 Ò±: 'u', 3556 Òº: 'H', 3557 Ò»: 'h', 3558 Ó¨: 'OE', 3559 Ó©: 'oe', 3560 // serbian 3561 Ñ: 'dj', 3562 Ñ: 'j', 3563 Ñ: 'lj', 3564 Ñ: 'nj', 3565 Ñ: 'c', 3566 Ñ: 'dz', 3567 Ð: 'Dj', 3568 Ð: 'j', 3569 Ð: 'Lj', 3570 Ð: 'Nj', 3571 Ð: 'C', 3572 Ð: 'Dz', 3573 Ç: 'nj', 3574 Ç: 'lj', 3575 Ç: 'NJ', 3576 Ç: 'LJ', 3577 // hindi 3578 ठ: 'a', 3579 à¤: 'aa', 3580 à¤: 'e', 3581 à¤: 'ii', 3582 à¤: 'ei', 3583 à¤: 'ae', 3584 à¤: 'ai', 3585 à¤: 'i', 3586 à¤: 'o', 3587 à¤: 'oi', 3588 à¤: 'oii', 3589 à¤: 'uu', 3590 à¤: 'ou', 3591 à¤: 'u', 3592 ब: 'B', 3593 à¤: 'Bha', 3594 à¤: 'Ca', 3595 à¤: 'Chha', 3596 ड: 'Da', 3597 ढ: 'Dha', 3598 फ: 'Fa', 3599 à¤: 'Ga', 3600 à¤: 'Gha', 3601 à¤à¤¼: 'Ghi', 3602 ह: 'Ha', 3603 à¤: 'Ja', 3604 à¤: 'Jha', 3605 à¤: 'Ka', 3606 à¤: 'Kha', 3607 à¤à¤¼: 'Khi', 3608 ल: 'L', 3609 ळ: 'Li', 3610 à¤: 'Li', 3611 ऴ: 'Lii', 3612 ॡ: 'Lii', 3613 म: 'Ma', 3614 न: 'Na', 3615 à¤: 'Na', 3616 à¤: 'Nia', 3617 ण: 'Nae', 3618 ऩ: 'Ni', 3619 à¥: 'oms', 3620 प: 'Pa', 3621 à¤à¤¼: 'Qi', 3622 र: 'Ra', 3623 à¤: 'Ri', 3624 ॠ: 'Ri', 3625 ऱ: 'Ri', 3626 स: 'Sa', 3627 श: 'Sha', 3628 ष: 'Shha', 3629 à¤: 'Ta', 3630 त: 'Ta', 3631 ठ: 'Tha', 3632 द: 'Tha', 3633 थ: 'Tha', 3634 ध: 'Thha', 3635 ड़: 'ugDha', 3636 ढ़: 'ugDhha', 3637 व: 'Va', 3638 य: 'Ya', 3639 य़: 'Yi', 3640 à¤à¤¼: 'Za', 3641 // azerbaijani 3642 É: 'e', 3643 Æ: 'E', 3644 // georgian 3645 á: 'a', 3646 á: 'b', 3647 á: 'g', 3648 á: 'd', 3649 á: 'e', 3650 á: 'v', 3651 á: 'z', 3652 á: 't', 3653 á: 'i', 3654 á: 'k', 3655 á: 'l', 3656 á: 'm', 3657 á: 'n', 3658 á: 'o', 3659 á: 'p', 3660 á: 'zh', 3661 á : 'r', 3662 á¡: 's', 3663 á¢: 't', 3664 á£: 'u', 3665 á¤: 'p', 3666 á¥: 'k', 3667 á¦: 'gh', 3668 á§: 'q', 3669 á¨: 'sh', 3670 á©: 'ch', 3671 áª: 'ts', 3672 á«: 'dz', 3673 á¬: 'ts', 3674 á: 'ch', 3675 á®: 'kh', 3676 á¯: 'j', 3677 á°: 'h', 3678 // hebrew 3679 ×: 'v', 3680 ×Ö¼: 'g', 3681 ×: 'g', 3682 ×: 'd', 3683 ×Ö¼: 'd', 3684 ×: 'h', 3685 ×: 'v', 3686 ×: 'z', 3687 ×: 'h', 3688 ×: 't', 3689 ×: 'y', 3690 ×: 'kh', 3691 ×: 'kh', 3692 ×: 'l', 3693 ×: 'm', 3694 ×: 'm',
3695 × : 'n', 3696 ×: 'n', 3697 ס: 's', 3698 פ: 'f', 3699 ×£: 'f', 3700 ×¥: 'ts', 3701 צ: 'ts', 3702 ×§: 'k', 3703 ר: 'r', 3704 תּ: 't', 3705 ת: 't' 3706 } 3707 3708 slug.charmap = Object.assign({}, initialCharmap) 3709 slug.multicharmap = Object.assign({}, initialMulticharmap) 3710 slug.defaults = { 3711 charmap: slug.charmap, 3712 mode: 'pretty', 3713 modes: { 3714 rfc3986: { 3715 replacement: '-', 3716 remove: null, 3717 lower: true, 3718 charmap: slug.charmap, 3719 multicharmap: slug.multicharmap, 3720 trim: true 3721 }, 3722 pretty: { 3723 replacement: '-', 3724 remove: null, 3725 lower: true, 3726 charmap: slug.charmap, 3727 multicharmap: slug.multicharmap, 3728 trim: true 3729 } 3730 }, 3731 multicharmap: slug.multicharmap, 3732 fallback: true 3733 } 3734 3735 slug.reset = function () { 3736 slug.defaults.modes.rfc3986.charmap = slug.defaults.modes.pretty.charmap = slug.charmap = slug.defaults.charmap = Object.assign({}, initialCharmap) 3737 slug.defaults.modes.rfc3986.multicharmap = slug.defaults.modes.pretty.multicharmap = slug.multicharmap = slug.defaults.multicharmap = Object.assign({}, initialMulticharmap) 3738 defaultLocale = '' 3739 } 3740 3741 slug.extend = function (customMap) { 3742 const keys = Object.keys(customMap) 3743 const multi = {} 3744 const single = {} 3745 for (let i = 0; i < keys.length; i++) { 3746 if (keys[i].length > 1) { 3747 multi[keys[i]] = customMap[keys[i]] 3748 } else { 3749 single[keys[i]] = customMap[keys[i]] 3750 } 3751 } 3752 Object.assign(slug.charmap, single) 3753 Object.assign(slug.multicharmap, multi) 3754 } 3755 3756 slug.setLocale = function (locale) { 3757 defaultLocale = locales[locale] || {} 3758 } 3759 3760 if ( true && module.exports) { // CommonJS 3761 module.exports = slug 3762 } else { // Script tag 3763 root.slug = slug 3764 } 3765}(this)) 3766 3767 3768/***/ }) 3769 3770/******/ }); 3771/************************************************************************/ 3772/******/ // The module cache 3773/******/ var __webpack_module_cache__ = {}; 3774/******/ 3775/******/ // The require function 3776/******/ function __webpack_require__(moduleId) { 3777/******/ // Check if module is in cache 3778/******/ var cachedModule = __webpack_module_cache__[moduleId]; 3779/******/ if (cachedModule !== undefined) { 3780/******/ return cachedModule.exports; 3781/******/ } 3782/******/ // Create a new module (and put it into the cache) 3783/******/ var module = __webpack_module_cache__[moduleId] = { 3784/******/ // no module.id needed 3785/******/ // no module.loaded needed 3786/******/ exports: {} 3787/******/ }; 3788/******/ 3789/******/ // Execute the module function 3790/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); 3791/******/ 3792/******/ // Return the exports of the module 3793/******/ return module.exports; 3794/******/ } 3795/******/ 3796/************************************************************************/ 3797/******/ /* webpack/runtime/compat get default export */ 3798/******/ !function() { 3799/******/ // getDefaultExport function for compatibility with non-harmony modules 3800/******/ __webpack_require__.n = function(module) { 3801/******/ var getter = module && module.__esModule ? 3802/******/ function() { return module['default']; } : 3803/******/ function() { return module; }; 3804/******/ __webpack_require__.d(getter, { a: getter }); 3805/******/ return getter; 3806/******/ }; 3807/******/ }(); 3808/******/ 3809/******/ /* webpack/runtime/define property getters */ 3810/******/ !function() { 3811/******/ // define getter functions for harmony exports 3812/******/ __webpack_require__.d = function(exports, definition) { 3813/******/ for(var key in definition) { 3814/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 3815/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 3816/******/ } 3817/******/ } 3818/******/ }; 3819/******/ }(); 3820/******/ 3821/******/ /* webpack/runtime/hasOwnProperty shorthand */ 3822/******/ !function() { 3823/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } 3824/******/ }(); 3825/******/ 3826/******/ /* webpack/runtime/make namespace object */ 3827/******/ !function() { 3828/******/ // define __esModule on exports 3829/******/ __webpack_require__.r = function(exports) { 3830/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 3831/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 3832/******/ } 3833/******/ Object.defineProperty(exports, '__esModule', { value: true }); 3834/******/ }; 3835/******/ }(); 3836/******/ 3837/************************************************************************/ 3838var __webpack_exports__ = {}; 3839// This entry need to be wrapped in an IIFE because it need to be in strict mode. 3840!function() { 3841"use strict";
vendor: 4,033 bytes, lines 3842-3935
3842// ESM COMPAT FLAG 3843__webpack_require__.r(__webpack_exports__); 3844 3845// EXPORTS 3846__webpack_require__.d(__webpack_exports__, { 3847 "initModule": function() { return /* binding */ initModule; } 3848}); 3849 3850// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js 3851var jsx_runtime = __webpack_require__(893); 3852// EXTERNAL MODULE: ./node_modules/react/index.js 3853var react = __webpack_require__(294); 3854;// CONCATENATED MODULE: ./node_modules/react-loading-skeleton/dist/index.mjs 3855 3856 3857/** 3858 * @internal 3859 */ 3860const SkeletonThemeContext = react.createContext({}); 3861 3862/* eslint-disable react/no-array-index-key */ 3863const defaultEnableAnimation = true; 3864// For performance & cleanliness, don't add any inline styles unless we have to 3865function styleOptionsToCssProperties({ baseColor, highlightColor, width, height, borderRadius, circle, direction, duration, enableAnimation = defaultEnableAnimation, }) { 3866 const style = {}; 3867 if (direction === 'rtl') 3868 style['--animation-direction'] = 'reverse'; 3869 if (typeof duration === 'number') 3870 style['--animation-duration'] = `${duration}s`; 3871 if (!enableAnimation) 3872 style['--pseudo-element-display'] = 'none'; 3873 if (typeof width === 'string' || typeof width === 'number') 3874 style.width = width; 3875 if (typeof height === 'string' || typeof height === 'number') 3876 style.height = height; 3877 if (typeof borderRadius === 'string' || typeof borderRadius === 'number') 3878 style.borderRadius = borderRadius; 3879 if (circle) 3880 style.borderRadius = '50%'; 3881 if (typeof baseColor !== 'undefined') 3882 style['--base-color'] = baseColor; 3883 if (typeof highlightColor !== 'undefined') 3884 style['--highlight-color'] = highlightColor; 3885 return style; 3886} 3887function Skeleton({ count = 1, wrapper: Wrapper, className: customClassName, containerClassName, containerTestId, circle = false, style: styleProp, ...originalPropsStyleOptions }) { 3888 var _a, _b, _c; 3889 const contextStyleOptions = react.useContext(SkeletonThemeContext); 3890 const propsStyleOptions = { ...originalPropsStyleOptions }; 3891 // DO NOT overwrite style options from the context if `propsStyleOptions` 3892 // has properties explicity set to undefined 3893 for (const [key, value] of Object.entries(originalPropsStyleOptions)) { 3894 if (typeof value === 'undefined') { 3895 delete propsStyleOptions[key]; 3896 } 3897 } 3898 // Props take priority over context 3899 const styleOptions = { 3900 ...contextStyleOptions, 3901 ...propsStyleOptions, 3902 circle, 3903 }; 3904 // `styleProp` has the least priority out of everything 3905 const style = { 3906 ...styleProp, 3907 ...styleOptionsToCssProperties(styleOptions), 3908 }; 3909 let className = 'react-loading-skeleton'; 3910 if (customClassName) 3911 className += ` ${customClassName}`; 3912 const inline = (_a = styleOptions.inline) !== null && _a !== void 0 ? _a : false; 3913 const elements = []; 3914 const countCeil = Math.ceil(count); 3915 for (let i = 0; i < countCeil; i++) { 3916 let thisStyle = style; 3917 if (countCeil > count && i === countCeil - 1) { 3918 // count is not an integer and we've reached the last iteration of 3919 // the loop, so add a "fractional" skeleton. 3920 // 3921 // For example, if count is 3.5, we've already added 3 full 3922 // skeletons, so now we add one more skeleton that is 0.5 times the 3923 // original width. 3924 const width = (_b = thisStyle.width) !== null && _b !== void 0 ? _b : '100%'; // 100% is the default since that's what's in the CSS 3925 const fractionalPart = count % 1; 3926 const fractionalWidth = typeof width === 'number' 3927 ? width * fractionalPart 3928 : `calc(${width} * ${fractionalPart})`; 3929 thisStyle = { ...thisStyle, width: fractionalWidth }; 3930 } 3931 const skeletonSpan = (react.createElement("span", { className: className, style: thisStyle, key: i }, "\u200C")); 3932 if (inline) { 3933 elements.push(skeletonSpan); 3934 } 3935 else {
3936 // Without the <br />, the skeleton lines will all run together if 3937 // `width` is specified 3938 elements.push(react.createElement(react.Fragment, { key: i }, 3939 skeletonSpan, 3940 react.createElement("br", null))); 3941 } 3942 } 3943 return (react.createElement("span", { className: containerClassName, "data-testid": containerTestId, "aria-live": "polite", "aria-busy": (_c = styleOptions.enableAnimation) !== null && _c !== void 0 ? _c : defaultEnableAnimation }, Wrapper 3944 ? elements.map((el, i) => react.createElement(Wrapper, { key: i }, el)) 3945 : elements)); 3946} 3947 3948function SkeletonTheme({ children, ...styleOptions }) { 3949 return (React.createElement(SkeletonThemeContext.Provider, { value: styleOptions }, children)); 3950} 3951 3952 3953 3954// EXTERNAL MODULE: ./node_modules/slug/slug.js 3955var slug = __webpack_require__(811); 3956var slug_default = /*#__PURE__*/__webpack_require__.n(slug); 3957;// CONCATENATED MODULE: ./src/lib/url.ts 3958 3959function getDefaultSlugOptions() { 3960 let options = $.extend({}, (slug_default()).defaults.modes.pretty); 3961 options.symbols = false; 3962 options.lower = false;
3963 let charmap = options.charmap; 3964 let charsReplaceWithSpace = ["(", ")", "\u0026", "\u00AE", "\u2122"]; 3965 charsReplaceWithSpace.forEach(x => { charmap[x] = " "; }); 3966 return options; 3967} 3968function convertToFriendlyName(name) { 3969 if (!name) { 3970 return ""; 3971 } 3972 let options = getDefaultSlugOptions(); 3973 return slug_default()(name.trim(), options).replace(/(\-)+/ig, "-").replace(/^[\-]+/, "").replace(/[\-]+$/, ""); 3974} 3975function convertToThumbnailUrl(url) { 3976 if (!url) { 3977 return null; 3978 } 3979 if (/(_480px)(\..*)$/.test(url)) { 3980 return url; 3981 } 3982 return url.replace(/(.*)(\..*)$/, "$1_480px$2"); 3983} 3984 3985;// CONCATENATED MODULE: ./src/lib/stringFormat.ts 3986function formatNumber(price) { 3987 if (price % 1 === 0) { 3988 return price.toLocaleString("en-US"); 3989 } 3990 else { 3991 return price.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 }); 3992 } 3993} 3994function formatCurrency(price) { 3995 return `$${formatNumber(price)}`; 3996} 3997function formatPrice(price, hidePriceText) { 3998 if (!price) { 3999 return hidePriceText; 4000 } 4001 return formatCurrency(price); 4002} 4003 4004;// CONCATENATED MODULE: ./src/domain/webSellableItem.ts 4005 4006 4007function transform(item, showroomAlgoliaSetting) { 4008 transformShowroomUrl(item); 4009 transformWebSellableItemPricing(item, showroomAlgoliaSetting.priceDisplaySetting); 4010 transformWebSellableItemOdometerData(item); 4011 transformWebSellableItemModelNameDisplayText(item); 4012 if (item && item.PhotoUrl) { 4013 item.PhotoUrl = convertToThumbnailUrl(item.PhotoUrl); 4014 } 4015 item.HasPhoto = item.NumberPhoto > 0; 4016 if (!item.HasPhoto) { 4017 item.DefaultPhotoUrl = "https://cdpcdn.dx1app.com/products-private/defaultproductimage.jpg"; 4018 } 4019 item.IsDisplayDealershipLocation = showroomAlgoliaSetting.productSetting.isDisplayDealershipLocation; 4020 item.BannerUrl = item.HasBannerUrl ? item.BannerUrl : null; 4021 if (!item.BannerCaption) { 4022 item.BannerCaption = "No Caption"; 4023 } 4024 return item; 4025} 4026function transformShowroomUrl(item) { 4027 const urlParts = [ 4028 convertToFriendlyName(item.ProductCategory), 4029 convertToFriendlyName(item.Manufacturer), 4030 convertToFriendlyName(item.ProductName), 4031 convertToFriendlyName(item.Year != null && item.Year != undefined ? item.Year.toString() : ""), 4032 convertToFriendlyName(item.City), 4033 convertToFriendlyName(item.StateProvinceCode), 4034 item.Id 4035 ]; 4036 const pagePath = urlParts.join("-"); 4037 item.ShowroomUrl = `${location.origin}/${pagePath}`; 4038} 4039function setMarketingIncentiveData(item) { 4040 const hasMarketingIncentive = item.MarketingIncentive 4041 && item.MarketingIncentive.length > 0 4042 && item.MarketingIncentive.some(x => x.Amount > 0); 4043 item.IsShowMarketingIncentive = item.Price > 0 && hasMarketingIncentive; 4044 item.HasMarketingIncentive = hasMarketingIncentive; 4045} 4046function transformWebSellableItemPricing(item, priceDisplaySetting) { 4047 const displayPrice = item.TotalPrice > 0 ? item.TotalPrice : item.Price; 4048 item.FormattedPrice = formatPrice(displayPrice, priceDisplaySetting.hidePriceText); 4049 const originalPrice = item.Condition.toLowerCase() === "new" ? item.Msrp : item.Dsp; 4050 item.FormattedOriginalPrice = formatPrice(originalPrice, priceDisplaySetting.hidePriceText); 4051 item.IsShowPrice = item.HasPrice && !item.IsHidePrice && !item.IsSendPriceOnRequest && !item.HasDateSold; 4052 item.IsDisplaySalePrice = priceDisplaySetting.isDisplaySalePrice && originalPrice > item.Price; 4053 item.IsHidePriceOrPriceIsZero = (!item.HasPrice || item.IsHidePrice) && !item.IsSendPriceOnRequest && !item.HasDateSold; 4054 item.IsSendPriceOnRequest = item.IsSendPriceOnRequest && !item.HasDateSold; 4055 item.HidePriceText = priceDisplaySetting.hidePriceText ? priceDisplaySetting.hidePriceText : "Get Price"; 4056 item.SendPriceOnRequestText = priceDisplaySetting.sendPriceOnRequestText ? priceDisplaySetting.sendPriceOnRequestText : "Get Price"; 4057 if (item.IsActivateMonthlyPayment) { 4058 if (item.MonthlyPaymentExpirationDate) { 4059 const monthlyPaymentExpirationDate = new Date(item.MonthlyPaymentExpirationDate); 4060 const currentDate = new Date();
4061 const utcDate = new Date(currentDate.getFullYear(), currentDate.getUTCMonth(), currentDate.getUTCDate()); 4062 item.IsDisplayMonthlyPayment = monthlyPaymentExpirationDate >= utcDate; 4063 } 4064 else { 4065 item.IsDisplayMonthlyPayment = true; 4066 } 4067 item.FormattedEstimatedMonthlyPayment = formatCurrency(item.EstimateMonthlyPayment); 4068 item.FormattedDownPayment = formatCurrency(item.DownPayment); 4069 } 4070 setMarketingIncentiveData(item); 4071} 4072function transformWebSellableItemOdometerData(item) { 4073 let odometerUomName = ""; 4074 if (item.HasOdometer) { 4075 odometerUomName = item.OdometerUomCode === "HRs" ? "Hours" : "Miles"; 4076 if (item.Odometer) { 4077 item.Odometer = formatNumber(item.Odometer); 4078 } 4079 } 4080 item.OdometerUomName = odometerUomName; 4081} 4082function transformWebSellableItemModelNameDisplayText(item) { 4083 let items = [item.Manufacturer, item.ProductName]; 4084 if (item.Year) { 4085 items = [item.Year.toString()].concat(items); 4086 } 4087 item.ModelNameDisplayText = items.join(" "); 4088} 4089 4090// EXTERNAL MODULE: ./node_modules/axios/index.js 4091var axios = __webpack_require__(669); 4092var axios_default = /*#__PURE__*/__webpack_require__.n(axios); 4093;// CONCATENATED MODULE: external "jQuery" 4094var external_jQuery_namespaceObject = jQuery; 4095var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery_namespaceObject); 4096;// CONCATENATED MODULE: ./src/service/brpInventoryModuleApiService.ts 4097 4098 4099const getAntiForgeryValue = () => { 4100 return external_jQuery_default()('[name="__RequestVerificationToken"]').val(); 4101}; 4102function useBrpInventoryModuleApiService(moduleId) { 4103 const instance = axios_default().create(); 4104 instance.interceptors.request.use(req => { 4105 if (moduleId) { 4106 const sf = external_jQuery_default().ServicesFramework(moduleId); 4107 if (!req.headers) { 4108 req.headers = {}; 4109 } 4110 req.headers['ModuleId'] = moduleId; 4111 req.headers['TabId'] = sf.getTabId(); 4112 const afValue = getAntiForgeryValue(); 4113 if (afValue) { 4114 req.headers['RequestVerificationToken'] = afValue; 4115 } 4116 req.baseURL = '/desktopmodules/dx1brpinventory/api/'; 4117 } 4118 return req; 4119 }); 4120 instance.interceptors.response.use(res => { 4121 return res; 4122 }, error => { 4123 console.info(error); 4124 }); 4125 return instance; 4126} 4127/* harmony default export */ var brpInventoryModuleApiService = (useBrpInventoryModuleApiService); 4128 4129;// CONCATENATED MODULE: ./src/service/brpServiceAdapter.ts 4130var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { 4131 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 4132 return new (P || (P = Promise))(function (resolve, reject) { 4133 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 4134 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 4135 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 4136 step((generator = generator.apply(thisArg, _arguments || [])).next()); 4137 }); 4138}; 4139 4140function useBrpService(moduleId) { 4141 const api = brpInventoryModuleApiService(moduleId); 4142 const getData = (url, abortSignal) => { 4143 return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { 4144 const result = yield api.get(url, { 4145 signal: abortSignal 4146 }); 4147 if (result && result.status === 200) { 4148 resolve(result.data); 4149 } 4150 })); 4151 }; 4152 return { 4153 getWebSellableItem: (itemId, abortSignal) => { 4154 const params = new URLSearchParams(); 4155 params.append('itemId', itemId); 4156 const queryString = params.toString(); 4157 const url = `/module/GetWebSellableItem?${queryString}`; 4158 return getData(url, abortSignal); 4159 }, 4160 getWebSellableImages: (vendorGuid, lineupLevel2Code, abort
4160Signal) => { 4161 const params = new URLSearchParams(); 4162 params.append('vendorGuid', vendorGuid); 4163 params.append('lineupLevel2Code', lineupLevel2Code); 4164 const queryString = params.toString(); 4165 const url = `/module/GetWebSellableImages?${queryString}`; 4166 return getData(url, abortSignal); 4167 }, 4168 getWebSellableItems: (familyName, year, hasInventory, abortSignal) => { 4169 const params = new URLSearchParams(); 4170 params.append('familyName', familyName !== null && familyName !== void 0 ? familyName : ""); 4171 params.append('year', year.toString()); 4172 params.append('hasInventory', hasInventory.toString()); 4173 const queryString = params.toString(); 4174 const url = `/module/getWebSellableItems?${queryString}`; 4175 return getData(url, abortSignal); 4176 } 4177 }; 4178} 4179 4180;// CONCATENATED MODULE: ./src/hooks/useHash.ts 4181 4182function useHash() { 4183 const [hash, setHash] = (0,react.useState)(window.location.hash); 4184 const updateHash = (0,react.useCallback)((newHash) => { 4185 window.location.hash = newHash; 4186 setHash(newHash); 4187 }, []); 4188 (0,react.useEffect)(() => { 4189 const onHashChange = () => setHash(window.location.hash); 4190 window.addEventListener('hashchange', onHashChange); 4191 return () => window.removeEventListener('hashchange', onHashChange); 4192 }, []); 4193 return [hash, updateHash]; 4194} 4195 4196;// CONCATENATED MODULE: ./src/data/anchortag.json 4197var anchortag_namespaceObject = JSON.parse('[{"brand":"Can-Am","categoies":[{"anchorTag":"side-by-side","categoryName":"Utility Vehicles"},{"anchorTag":"atv","categoryName":"ATVs"},{"anchorTag":"3wv","categoryName":"Motorcycles"},{"anchorTag":"em","categoryName":"Electric Motorcycle"}]},{"brand":"Sea-Doo","categoies":[{"anchorTag":"pwc","categoryName":"Watercraft"},{"anchorTag":"pontoon","categoryName":"Power Boats Inboard"}]}]'); 4198;// CONCATENATED MODULE: ./src/provider/brpInventoryProvider.tsx 4199var brpInventoryProvider_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { 4200 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 4201 return new (P || (P = Promise))(function (resolve, reject) { 4202 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 4203 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 4204 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 4205 step((generator = generator.apply(thisArg, _arguments || [])).next()); 4206 }); 4207}; 4208 4209 4210 4211 4212 4213 4214 4215const BrpCategoryChangedEvent = "brp-category-changed"; 4216const BrpInventoryContext = react.createContext({}); 4217const BrpInventoryProvider = ({ moduleContext, children }) => { 4218 const [selectedBrand, setSelectedBrand] = (0,react.useState)(moduleContext.brand); 4219 const [selectedCategory, setSelectedCategory] = (0,react.useState)(null); 4220 const [selectedGroup, setSelectedGroup] = (0,react.useState)(null); 4221 const [images, setImages] = (0,react.useState)([]); 4222 const [webSellableItems, setWebSellableItems] = (0,react.useState)([]); 4223 const [hasInventory, setHasInventory] = (0,react.useState)(false); 4224 const [isFormDialogInitialized, setIsFormDialogInitialized] = (0,react.useState)(false); 4225 const [hashValue, updateHash] = useHash(); 4226 const [isWebSellableLoaded, setIsWebSellableLoaded] = (0,react.useState)(false); 4227 const [isScrollToBrpInventory, setIsScrollToBrpInventory] = (0,react.useState)(false);
4228 moduleContext.categories.forEach(category => { 4229 category.groups.forEach(group => { 4230 group.formatPrice = formatPrice(group.price, moduleContext.showroomAlgoliaSetting.priceDisplaySetting.hidePriceText); 4231 }); 4232 }); 4233 const categories = moduleContext.categories; 4234 const brpService = useBrpService(moduleContext.moduleId); 4235 (0,react.useEffect)(() => { 4236 const webSellableItemAbortController = new AbortController(); 4237 const webSellableItemsAbortController = new AbortController(); 4238 const getBrpData = () => brpInventoryProvider_awaiter(void 0, void 0, void 0, function* () { 4239 setImages([]); 4240 setWebSellableItems(null); 4241 const images = yield brpService.getWebSellableImages(selectedGroup.vendorGuid, selectedGroup.lineupLevel2Code, webSellableItemAbortController.signal); 4242 setImages(images); 4243 let webSellableItems = yield brpService.getWebSellableItems(selectedGroup.productFamilyName, selectedGroup.year, selectedGroup.hasInventory, webSellableItemsAbortController.signal); 4244 webSellableItems = webSellableItems.map(webSellableItem => transform(webSellableItem, moduleContext.showroomAlgoliaSetting)); 4245 setWebSellableItems(webSellableItems); 4246 if (!isWebSellableLoaded) { 4247 setIsWebSellableLoaded(true); 4248 } 4249 if (webSellableItems.length > 0 && webSellableItems[0].DealerInventoryId) { 4250 setHasInventory(true); 4251 } 4252 else { 4253 setHasInventory(false); 4254 } 4255 }); 4256 if (selectedGroup) { 4257 getBrpData(); 4258 } 4259 return () => { 4260 webSellableItemAbortController.abort(); 4261 webSellableItemsAbortController.abort(); 4262 }; 4263 }, [selectedGroup]); 4264 (0,react.useEffect)(() => { 4265 if (selectedCategory) { 4266 setBrpCategoryToSessionStorage(selectedCategory); 4267 } 4268 }, [selectedCategory]); 4269 const scrollToSelector = (selector) => { 4270 const element = document.querySelector(selector); 4271 element.scrollIntoView(); 4272 const newScrollY = window.scrollY - document.getElementById("BRPHeader").offsetHeight; 4273 window.scrollTo({ top: newScrollY }); 4274 }; 4275 const scrollToAnchor = () => { 4276 if (hashValue === "#getdirections") { 4277 scrollToSelector("#DealerLocationInfo"); 4278 } 4279 else if (hashValue === "#reviews") { 4280 scrollToSelector("#DealerReviews"); 4281 } 4282 else if (hashValue === "#promo") { 4283 scrollToSelector(".dx1-brppromotion"); 4284 } 4285 else if (hashValue === "#lineup") { 4286 scrollToSelector(".dx1-brpinventory"); 4287 } 4288 }; 4289 (0,react.useEffect)(() => { 4290 if (isWebSellableLoaded && hashValue) { 4291 if (isScrollToBrpInventory) { 4292 scrollToBrpInventory(); 4293 } 4294 else { 4295 scrollToAnchor(); 4296 } 4297 } 4298 }, [isWebSellableLoaded]); 4299 const setBrpCategoryToSessionStorage = (category) => { 4300 const key = 'brpCategory'; 4301 sessionStorage.setItem(key, JSON.stringify(category)); 4302 window.dispatchEvent(new CustomEvent(BrpCategoryChangedEvent, { detail: category })); 4303 }; 4304 function onSelectedCategoryChanged(category) { 4305 setSelectedCategory(category); 4306 setSelectedGroup(category.groups[0]); 4307 // UCS150 - Vehicle line-up selector 4308 brpAnalyticHelper.sendAnalyticsUserActionEvent("vehicle_selector", "cta", category.categoryDisplayName); 4309 } 4310 function onSelectedGroupChanged(group, source = "click", category = selectedCategory) { 4311 setSelectedGroup(group); 4312 let productLine = category === null || category === void 0 ? void 0 : category.categoryDisplayName; 4313 if (!productLine) { 4314 productLine = group.groupName; 4315 } 4316 if (source === "click") { 4317 brpAnalyticHelper.sendAnalyticsUserActionEvent(group.groupName, "model selection"); 4318 return; 4319 } 4320 // UCS151 - Product Line/PDP PV 4321 brpAnalyticHelper.sendAnalyticsEvent("PV", {}, { 4322 "hostname": window.location.origin, 4323 "path": window.location.pathname, 4324 "country": "US", 4325 "language": "en", 4326 "siteType": "dealer marketing", 4327 "pageType": "product inventory", 4328 "vendor": "dx1", 4329 }, productLine); 4330 } 4331 function onFormDialogInitialized() { 4332 setIsFormDialogInitialized(true); 4333 } 4334 const defaultValue = {
4335 moduleContext, 4336 onSelectedCategoryChanged, 4337 onSelectedGroupChanged, 4338 categories, 4339 selectedBrand, 4340 selectedCategory, 4341 selectedGroup, 4342 images, 4343 webSellableItems, 4344 hasInventory, 4345 isFormDialogInitialized, 4346 onFormDialogInitialized, 4347 }; 4348 const scrollToBrpInventory = () => { 4349 scrollToSelector(".family-nav .button.active"); 4350 }; 4351 const getBrpCategoryAndGroupByHash = () => { 4352 let brpCategory = null; 4353 let brpGroup = null; 4354 if (hashValue) { 4355 if (hashValue.indexOf("#cat-") > -1) { 4356 const originalCategoryNameHash = hashValue.substring("#cat-".length); 4357 const categoryNameHash = originalCategoryNameHash.replace(/-/g, "").toLowerCase(); 4358 const category = categories.find(category => { 4359 const categoryName = category.categoryName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase(); 4360 return categoryName.indexOf(categoryNameHash) > -1; 4361 }); 4362 if (category) { 4363 brpCategory = category; 4364 brpGroup = brpCategory.groups[0]; 4365 } 4366 const anchorTagBrands = anchortag_namespaceObject; 4367 const anchorTagBrand = anchorTagBrands.find(anchorTagBrand => anchorTagBrand.brand === selectedBrand); 4368 const anchorTagCategory = anchorTagBrand === null || anchorTagBrand === void 0 ? void 0 : anchorTagBrand.categoies.find(category => category.anchorTag === originalCategoryNameHash); 4369 if (anchorTagBrand && anchorTagCategory) { 4370 const category = categories.find(category => category.categoryName === anchorTagCategory.categoryName); 4371 if (category) { 4372 brpCategory = category; 4373 brpGroup = brpCategory.groups[0]; 4374 } 4375 } 4376 } 4377 else if (hashValue.indexOf("#model-") > -1) { 4378 let isGroupNameContainHash = false; 4379 const modelHash = hashValue.substring("#model-".length).replace(/-/g, "").toLowerCase(); 4380 categories.forEach(category => { 4381 category.groups.forEach(group => { 4382 const groupName = group.groupName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase(); 4383 if (groupName === modelHash 4384 || (!isGroupNameContainHash && groupName.indexOf(modelHash) > -1)) { 4385 brpCategory = category; 4386 brpGroup = group; 4387 if (groupName.indexOf(modelHash) > -1) { 4388 isGroupNameContainHash = true; 4389 } 4390 } 4391 }); 4392 }); 4393 } 4394 } 4395 return brpCategory ? { brpCategory, brpGroup } : null; 4396 }; 4397 (0,react.useEffect)(() => { 4398 let brpCategory = moduleContext.categories[0]; 4399 let brpGroup = brpCategory.groups[0]; 4400 let shouldSendAnchorPageView = false; 4401 if (hashValue) { 4402 setIsScrollToBrpInventory(false); 4403 const result = getBrpCategoryAndGroupByHash(); 4404 if (result != null) { 4405 brpCategory = result.brpCategory; 4406 brpGroup = result.brpGroup; 4407 setIsWebSellableLoaded(false); 4408 setIsScrollToBrpInventory(true); 4409 shouldSendAnchorPageView = true; 4410 } 4411 else if (isWebSellableLoaded) { 4412 scrollToAnchor(); 4413 } 4414 } 4415 setSelectedCategory(brpCategory); 4416 if (shouldSendAnchorPageView) { 4417 onSelectedGroupChanged(brpGroup, "anchor", brpCategory); 4418 return; 4419 } 4420 setSelectedGroup(brpGroup); 4421 }, [hashValue]); 4422 return ((0,jsx_runtime.jsx)(BrpInventoryContext.Provider, Object.assign({ value: defaultValue }, { children: children }))); 4423}; 4424 4425 4426;// CONCATENATED MODULE: ./src/ui/item.tsx 4427 4428 4429 4430 4431const ItemPrice = ({ item }) => { 4432 const price = item.IsShowPrice ? (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { children: [item.HasCurrentPriceReplaceText && 4433 (0,jsx_runtime.jsx)("span", { className: "replace-text", dangerouslySetInnerHTML: { __html: `${item.CurrentPriceReplaceText}: ` } }), (0,jsx_runtime.jsx)("h3", Object.assign({ className: "price active-price" }, { children: item.FormattedPrice })), item.IsDisplaySalePrice && 4434 (0,jsx_runtime.jsxs)("div", Object.assign({ className: "msrp strike-through" }, { children: [item.HasMsrpOrDspReplaceText && 4435 (0,jsx_runtime.jsx)("span", { className: "title", dangerouslySetInnerHTML: { __html: `${item.MsrpOrDspReplaceText}: ` } }), item.FormattedOriginalPrice] }))] }) : (0,jsx_runtime.jsx)(jsx_runtime.Fragment, {}); 4436 return (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { children: [item.IsShowPrice && price, item.HasDateSold && 4437 (0,jsx_runtime.jsx)("h3", Object.assign({ className: "price sold" }, { children: "Sold" })), item.IsHidePriceOrPriceIsZero && 4438 (0,jsx_runtime.jsx)("h3", Object.assign({ className: "price hide-price" }, { children: (0,jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: item.HidePriceText } }) })), item.IsSendPriceOnRequest && 4439 (0,jsx_runtime.jsx)("h3", Object.assign({ className: "price request-price" }, { children: (0,jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: item.SendPriceOnRequestText } }) }))] }); 4440}; 4441const ItemSpecs = ({ item }) => { 4442 return (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { children: [item.StockNumber && 4443 (0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-6 spec" }, { children: [(0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-title" }, { children: "Stock #:" })), (0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-info" }, { children: item.StockNumber }))] })), item.HasEngineSize && 4444 (0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-6 spec" }, { children: [(0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-title" }, { children: "Engine Size:" })), (0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-info" }, { children: item.EngineSize }))] })), item.HasOdometer && 4445 (0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-6 spec" }, { children: [(0,jsx_runtime.jsxs)("span", Object.assign({ className: "spec-title" }, { children: [item.OdometerUomName, ":"] })), (0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-info" }, { children: item.Odometer }))] })), item.HasColor && 4446 (0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-6 spec" }, { children: [(0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-title" }, { children: "Color:" })), (0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-info" }, { children: item.Color }))] })), item.Vin && 4447 (0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-6 spec hidden" }, { children: [(0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-title" }, { children: "VIN:" })), (0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-info" }, { children: item.Vin }))] }))] }); 4448}; 4449const ImageWithSkeleton = ({ src, alt, className, maxWidth }) => {
4450 const [loaded, setLoaded] = (0,react.useState)(false); 4451 const imgEl = (0,react.useRef)(); 4452 const onImageLoaded = () => { 4453 setLoaded(true); 4454 }; 4455 (0,react.useEffect)(() => { 4456 const imgElCurrent = imgEl.current; 4457 if (imgElCurrent) { 4458 if (imgElCurrent.complete && imgElCurrent.naturalWidth > 0) { 4459 setLoaded(true); 4460 } 4461 else { 4462 imgElCurrent.addEventListener('load', onImageLoaded); 4463 return () => imgElCurrent.removeEventListener('load', onImageLoaded); 4464 } 4465 } 4466 }, [imgEl]); 4467 return ((0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { children: [(0,jsx_runtime.jsx)("img", { src: src, alt: alt, className: `${className} ${loaded ? "loaded" : ""}`, loading: "lazy", ref: imgEl }), !loaded && 4468 (0,jsx_runtime.jsx)(Skeleton, { style: { aspectRatio: "4/3", lineHeight: 2, maxWidth: maxWidth }, borderRadius: 0, containerClassName: "skeleton-container" })] })); 4469}; 4470const Item = ({ item }) => { 4471 const { moduleContext, isFormDialogInitialized, onFormDialogInitialized, } = (0,react.useContext)(BrpInventoryContext); 4472 const onViewDetailButtonClick = (item) => { 4473 // UCS 141 (View Detail) 4474 brpAnalyticHelper.sendAnalyticsUserActionEvent("View Details | " + item.ProductName); 4475 brpAnalyticHelper.selectItem = item; 4476 return false; 4477 }; 4478 const onReserveUnitButtonClick = (item) => { 4479 // UCS142 (Reserve Unit) 4480 // UCS142 - Click on Contact Dealer in Model Info 4481 brpAnalyticHelper.sendAnalyticsUserActionEvent("Contact Dealer | " + item.ProductName); 4482 brpAnalyticHelper.selectItem = item; 4483 const modalTitle = "Contact Us Today"; 4484 const modalId = `ContactUsToday_${moduleContext.moduleId}`; 4485 const options = { 4486 modalId: modalId, 4487 modalTitle: modalTitle, 4488 panelSelector: "#" + modalId, 4489 url: "/DesktopModules/Dominion/Common/Forms/FormDialogView.aspx", 4490 portalId: moduleContext.portalId, 4491 moduleId: moduleContext.moduleId, 4492 productId: item.Id, 4493 isSendPriceOnRequest: false, 4494 formName: "", 4495 brpBrand: "", 4496 formId: moduleContext.brpRequestMoreInformationFormId, 4497 }; 4498 if (!isFormDialogInitialized) { 4499 FormDialog.addDialogContent(options); 4500 onFormDialogInitialized(); 4501 } 4502 FormDialog.displayDialog(options); 4503 }; 4504 return (0,jsx_runtime.jsx)(jsx_runtime.Fragment, { children: (0,jsx_runtime.jsxs)("div", Object.assign({ className: "brp-item list-item", "data-itemid": item.Id }, { children: [(0,jsx_runtime.jsxs)("div", Object.assign({ className: "row model-header" }, { children: [(0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-8 model-info" }, { children: [(0,jsx_runtime.jsx)("h2", Object.assign({ className: "model-name" }, { children: item.ModelNameDisplayText })), (0,jsx_runtime.jsxs)("div", Object.assign({ className: "model-category" }, { children: [(0,jsx_runtime.jsx)("span", Object.assign({ className: "condition" }, { children: item.Condition })), " ", (0,jsx_runtime.jsx)("span", Object.assign({ className: "category" }, { children: item.ProductCategory })), " \u2022 ", (0,jsx_runtime.jsx)("span", Object.assign({ className: "model-type" }, { children: item.ProductType }))] })), item.IsDisplayDealershipLocation && 4505 (0,jsx_runtime.jsxs)("div", Object.assign({ className: "model-location" }, { children: ["Available at ", (0,jsx_runtime.jsx)("span", Object.assign({ className: "location" }, { children: item.DealershipName }))] }))] })), (0,jsx_runtime.jsx)("div", Object.assign({ className: "col-sm-4 price-info" }, { children: (0,jsx_runtime.jsx)(ItemPrice, { item: item }) }))] })), (0,jsx_runtime.jsxs)("div", Object.assign({ className: "row model-details" }, { children: [(0,jsx_runtime.jsx)("div", Object.assign({ className: "col-sm-4" }, { children: (0,jsx_runtime.jsx)("div", Object.assign({ className: "thumbnail-frame" }, { children: (0,jsx_runtime.jsx)(ImageWithSkeleton, { src: item.HasPhoto ? item.PhotoUrl : item.DefaultPhotoUrl, alt: item.ImageCaption, className: "img-responsive", maxWidth: "480px" }) })) })), (0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-8 summary" }, { children: [(0,jsx_runtime.jsxs)("div", Object.assign({ className: "row model-desc" }, { children: [(0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-12" }, { children: [item.IsShowPrice && item.IsDisplayMonthlyPayment && 4506 (0,jsx_runtime.jsxs)("div", Object.assign({ className: "monthly-payment" }, { children: [(0,jsx_runtime.jsxs)("div", Object.assign({ className: "estimated-monthly-payment" }, { children: [item.FormattedEstimatedMonthlyPayment, "/mo"] })), (0,jsx_runtime.jsxs)("div", Object.assign({ className: "monthly-payment-desc" }, { children: [item.LoanTerm, " Months, ", item.InterestRate, "% APR, ", item.FormattedDownPayment, " down"] }))] })), item.IsShowMarketingIncentive && 4507 (0,jsx_runtime.jsxs)("a", Object.assign({ className: "discounts-badge", href: item.ShowroomUrl }, { children: [(0,jsx_runtime.jsx)("i", { className: "btn-icon fa fa-money" }), "Offers"] }))] })), (0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-12" }, { children: [(0,jsx_runtime.jsx)("div", Object.assign({ className: "row model-specs" }, { children: (0,jsx_runtime.jsx)(ItemSpecs, { item: item }) })), item.HasTagLine && 4508 (0,jsx_runtime.jsx)("div", Object.assign({ className: "row" }, { children: (0,jsx_runtime.jsx)("div", Object.assign({ className: "col-sm-12 tagline" }, { children: item.TagLine })) }))] }))] })), (0,jsx_runtime.jsx)("div", Object.assign({ className: "row" }, { children: (0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-12 cta" }, { children: [(0,jsx_runtime.jsx)("a", Object.assign({ href: item.ShowroomUrl, onClick: () => onViewDetailButtonClick(item), className: "btn btn-primary", title: "See More Details" }, { children: (0,jsx_runtime.jsx)("span", Object.assign({ className: "btn-text" }, { children: "View Details" })) })), (0,jsx_runtime.jsx)("a", Object.assign({ className: "btn btn-default btn-reserve", onClick: () => onReserveUnitButtonClick(item) }, { children: (0,jsx_runtime.jsx)("span", Object.assign({ className: "btn-text" }, { children: "Reserve Unit" })) }))] })) }))] }))] }))] })) }); 4509}; 4510const SkeletonItem = () => { 4511 return (0,jsx_runtime.jsx)(jsx_runtime.Fragment, { children: (0,jsx_runtime.jsxs)("div", Object.assign({ className: "brp-item list-item" }, { children: [(0,jsx_runtime.jsxs)("div", Object.assign({ className: "row model-header" }, { children: [(0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-8 model-info" }, { children: [(0,jsx_runtime.jsx)("h2", Object.assign({ className: "model-name" }, { children: (0,jsx_runtime.jsx)(Skeleton, { inline: true, width: "240px" }) })), (0,jsx_runtime.jsxs)("div", Object.assign({ className: "model-category" }, { children: [(0,jsx_runtime.jsx)("span", Object.assign({ className: "condition" }, { children: (0,jsx_runtime.jsx)(Skeleton, { inline: true, width: "40px" }) })), " ", (0,jsx_runtime.jsx)("span", Object.assign({ className: "category" }, { children: (0,jsx_runtime.jsx)(Skeleton, { inline: true, width: "70px" }) })), " ", (0,jsx_runtime.jsx)("span", Object.assign({ className: "model-type" }, { children: (0,jsx_runtime.jsx)(Skeleton, { inline: true, width: "70px" }) }))] }))] })), (0,jsx_runtime.jsx)("div", Object.assign({ className: "col-sm-4 price-info" }, { children: (0,jsx_runtime.jsx)(Skeleton, { inline: true, width: "120px" }) }))] })), (0,jsx_runtime.jsxs)("div", Object.assign({ className: "row model-details" }, { children: [(0,jsx_runtime.jsx)("div", Object.assign({ className: "col-sm-4" }, { children: (0,jsx_runtime.jsx)("div", Object.assign({ className: "thumbnail-frame" }, { children: (0,jsx_runtime.jsx)(Skeleton, { style: { aspectRatio: "4/3", lineHeight: 2, maxWidth: "480px" }, borderRadius: 0, containerClassName: "skeleton-container" }) })) })), (0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-8 summary" }, { children: [(0,jsx_runtime.jsx)("div", Object.assign({ className: "row model-desc" }, { children: (0,jsx_runtime.jsx)("div", Object.assign({ className: "col-sm-12" }, { children: (0,jsx_runtime.jsxs)("div", Object.assign({ className: "row model-specs" }, { children: [(0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-6 spec" }, { children: [(0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-title" }, { children: (0,jsx_runtime.jsx)(Skeleton, { inline: true, width: "50px" }) })), (0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-info" }, { children: (0,jsx_runtime.jsx)(Skeleton, { inline: true, width: "100px" }) }))] })), (0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-6 spec" }, { children: [(0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-title" }, { children: (0,jsx_runtime.jsx)(Skeleton, { inline: true, width: "50px" }) })), (0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-info" }, { children: (0,jsx_runtime.jsx)(Skeleton, { inline: true, width: "100px" }) }))] })), (0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-sm-6 spec" }, { children: [(0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-title" }, { children: (0,jsx_runtime.jsx)(Skeleton, { inline: true, width: "50px" }) })), (0,jsx_runtime.jsx)("span", Object.assign({ className: "spec-info" }, { children: (0,jsx_runtime.jsx)(Skeleton, { inline: true, width: "100px" }) }))] }))] })) })) })), (0,jsx_runtime.jsx)("div", Object.assign({ className: "row" }, { children: (0,jsx_runtime.jsx)("div", Object.assign({ className: "col-sm-12 cta" }, { children: [1, 2].map((i) => (0,jsx_runtime.jsx)("div", Object.assign({ style: { flex: "1 1 50%", padding: "0 5px" } }, { children: (0,jsx_runtime.jsx)(Skeleton, { height: "35px" }) }), i)) })) }))] }))] }))] })) }); 4512}; 4513 4514 4515;// CONCATENATED MODULE: ./src/ui/brpItemList.tsx 4516 4517 4518 4519 4520 4521 4522const BrpItemList = () => { 4523 const [viewAllUrl, setViewAllUrl] = (0,react.useState)(); 4524 const { webSellableItems, selectedGroup, hasInventory, module
4524Context } = (0,react.useContext)(BrpInventoryContext); 4525 (0,react.useEffect)(() => { 4526 const familyName = convertToFriendlyName(selectedGroup.productFamilyName); 4527 let viewAllUrl; 4528 if (hasInventory) { 4529 viewAllUrl = `${moduleContext.algoliaSearchResultPageUrl}${familyName ? "/" + familyName : ""}/${selectedGroup.year}`; 4530 } 4531 else { 4532 viewAllUrl = `${moduleContext.gridListingPageUrl}/${selectedGroup.year}?family=${familyName}`; 4533 } 4534 setViewAllUrl(viewAllUrl); 4535 }, [hasInventory, selectedGroup]); 4536 const onViewAllButtonClick = () => { 4537 // UCS140 - Click on view all inventory 4538 brpAnalyticHelper.sendAnalyticsUserActionEvent("Model Info | view all"); 4539 return false; 4540 }; 4541 return (0,jsx_runtime.jsx)(jsx_runtime.Fragment, { children: (0,jsx_runtime.jsxs)("div", Object.assign({ className: "item-list-container" }, { children: [(0,jsx_runtime.jsxs)("div", Object.assign({ className: "item-list-header" }, { children: [(0,jsx_runtime.jsx)("h3", Object.assign({ className: "item-list-header-text eng" }, { children: webSellableItems 4542 ? `Current ${selectedGroup === null || selectedGroup === void 0 ? void 0 : selectedGroup.groupName} Inventory` 4543 : (0,jsx_runtime.jsx)(Skeleton, { inline: true, style: { width: "280px" } }) })), (0,jsx_runtime.jsx)("h3", Object.assign({ className: "item-list-header-text esp" }, { children: webSellableItems 4544 ? `Inventario ${selectedGroup === null || selectedGroup === void 0 ? void 0 : selectedGroup.groupName} Actual` 4545 : (0,jsx_runtime.jsx)(Skeleton, { inline: true, style: { width: "280px" } }) })), webSellableItems 4546 ? (0,jsx_runtime.jsxs)("a", Object.assign({ className: "btn btn-primary item-list-button", onClick: onViewAllButtonClick, href: viewAllUrl }, { children: [(0,jsx_runtime.jsx)("span", Object.assign({ className: "eng" }, { children: "View All" })), (0,jsx_runtime.jsx)("span", Object.assign({ className: "esp" }, { children: "Ver Todo" }))] })) 4547 : (0,jsx_runtime.jsx)(Skeleton, { inline: true, style: { width: "110px", height: "35px" } })] })), (0,jsx_runtime.jsx)("div", Object.assign({ className: "item-list" }, { children: webSellableItems 4548 ? webSellableItems.map((item, i) => (0,jsx_runtime.jsx)(Item, { item: item }, i)) 4549 : [1, 2, 3].map((x) => (0,jsx_runtime.jsx)(SkeletonItem, {}, x)) }))] })) }); 4550}; 4551 4552 4553;// CONCATENATED MODULE: ./node_modules/swiper/shared/ssr-window.esm.mjs 4554/** 4555 * SSR Window 4.0.2 4556 * Better handling for window object in SSR environment 4557 * https://github.com/nolimits4web/ssr-window 4558 * 4559 * Copyright 2021, Vladimir Kharlampidi 4560 * 4561 * Licensed under MIT 4562 * 4563 * Released on: December 13, 2021 4564 */ 4565/* eslint-disable no-param-reassign */ 4566function ssr_window_esm_isObject(obj) { 4567 return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object; 4568} 4569function extend(target, src) { 4570 if (target === void 0) { 4571 target = {}; 4572 } 4573 if (src === void 0) { 4574 src = {}; 4575 } 4576 Object.keys(src).forEach(key => { 4577 if (typeof target[key] === 'undefined') target[key] = src[key];else if (ssr_window_esm_isObject(src[key]) && ssr_window_esm_isObject(target[key]) && Object.keys(src[key]).length > 0) { 4578 extend(target[key], src[key]); 4579 } 4580 }); 4581} 4582const ssrDocument = { 4583 body: {}, 4584 addEventListener() {}, 4585 removeEventListener() {}, 4586 activeElement: { 4587 blur() {}, 4588 nodeName: '' 4589 }, 4590 querySelector() { 4591 return null; 4592 }, 4593 querySelectorAll() { 4594 return []; 4595 }, 4596 getElementById() { 4597 return null; 4598 }, 4599 createEvent() { 4600 return { 4601 initEvent() {} 4602 }; 4603 }, 4604 createElement() { 4605 return { 4606 children: [], 4607 childNodes: [], 4608 style: {}, 4609 setAttribute() {}, 4610 getElementsByTagName() { 4611 return []; 4612 } 4613 }; 4614 }, 4615 createElementNS() { 4616 return {}; 4617 }, 4618 importNode() { 4619 return null; 4620 }, 4621 location: { 4622 hash: '', 4623 host: '', 4624 hostname: '', 4625 href: '', 4626 origin: '', 4627 pathname: '', 4628 protocol: '', 4629 search: '' 4630 } 4631}; 4632function ssr_window_esm_getDocument() { 4633 const doc = typeof document !== 'undefined' ? document : {}; 4634 extend(doc, ssrDocument); 4635 return doc; 4636} 4637const ssrWindow = { 4638 document: ssrDocument, 4639 navigator: { 4640 userAgent: '' 4641 }, 4642 location: { 4643 hash: '', 4644 host: '', 4645 hostname: '', 4646 href: '', 4647 origin: '', 4648 pathname: '', 4649 protocol: '', 4650 search: '' 4651 }, 4652 history: { 4653 replaceState() {}, 4654 pushState() {}, 4655 go() {}, 4656 back() {} 4657 }, 4658 CustomEvent: function CustomEvent() { 4659 return this; 4660 }, 4661 addEventListener() {}, 4662 removeEventListener() {}, 4663 getComputedStyle() { 4664 return { 4665 getPropertyValue() { 4666 return ''; 4667 } 4668 }; 4669 }, 4670 Image() {}, 4671 Date() {}, 4672 screen: {}, 4673 setTimeout() {},
vendor: 5,855 bytes, lines 4674-4856
4674 clearTimeout() {}, 4675 matchMedia() { 4676 return {}; 4677 }, 4678 requestAnimationFrame(callback) { 4679 if (typeof setTimeout === 'undefined') { 4680 callback(); 4681 return null; 4682 } 4683 return setTimeout(callback, 0); 4684 }, 4685 cancelAnimationFrame(id) { 4686 if (typeof setTimeout === 'undefined') { 4687 return; 4688 } 4689 clearTimeout(id); 4690 } 4691}; 4692function ssr_window_esm_getWindow() { 4693 const win = typeof window !== 'undefined' ? window : {}; 4694 extend(win, ssrWindow); 4695 return win; 4696} 4697 4698 4699 4700;// CONCATENATED MODULE: ./node_modules/swiper/shared/utils.mjs 4701 4702 4703function utils_classesToTokens(classes) { 4704 if (classes === void 0) { 4705 classes = ''; 4706 } 4707 return classes.trim().split(' ').filter(c => !!c.trim()); 4708} 4709 4710function deleteProps(obj) { 4711 const object = obj; 4712 Object.keys(object).forEach(key => { 4713 try { 4714 object[key] = null; 4715 } catch (e) { 4716 // no getter for object 4717 } 4718 try { 4719 delete object[key]; 4720 } catch (e) { 4721 // something got wrong 4722 } 4723 }); 4724} 4725function utils_nextTick(callback, delay) { 4726 if (delay === void 0) { 4727 delay = 0; 4728 } 4729 return setTimeout(callback, delay); 4730} 4731function utils_now() { 4732 return Date.now(); 4733} 4734function utils_getComputedStyle(el) { 4735 const window = ssr_window_esm_getWindow(); 4736 let style; 4737 if (window.getComputedStyle) { 4738 style = window.getComputedStyle(el, null); 4739 } 4740 if (!style && el.currentStyle) { 4741 style = el.currentStyle; 4742 } 4743 if (!style) { 4744 style = el.style; 4745 } 4746 return style; 4747} 4748function utils_getTranslate(el, axis) { 4749 if (axis === void 0) { 4750 axis = 'x'; 4751 } 4752 const window = ssr_window_esm_getWindow(); 4753 let matrix; 4754 let curTransform; 4755 let transformMatrix; 4756 const curStyle = utils_getComputedStyle(el); 4757 if (window.WebKitCSSMatrix) { 4758 curTransform = curStyle.transform || curStyle.webkitTransform; 4759 if (curTransform.split(',').length > 6) { 4760 curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', '); 4761 } 4762 // Some old versions of Webkit choke when 'none' is passed; pass 4763 // empty string instead in this case 4764 transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); 4765 } else { 4766 transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); 4767 matrix = transformMatrix.toString().split(','); 4768 } 4769 if (axis === 'x') { 4770 // Latest Chrome and webkits Fix 4771 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; 4772 // Crazy IE10 Matrix 4773 else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); 4774 // Normal Browsers 4775 else curTransform = parseFloat(matrix[4]); 4776 } 4777 if (axis === 'y') { 4778 // Latest Chrome and webkits Fix 4779 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; 4780 // Crazy IE10 Matrix 4781 else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); 4782 // Normal Browsers 4783 else curTransform = parseFloat(matrix[5]); 4784 } 4785 return curTransform || 0; 4786} 4787function utils_isObject(o) { 4788 return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object'; 4789} 4790function isNode(node) { 4791 // eslint-disable-next-line 4792 if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') { 4793 return node instanceof HTMLElement; 4794 } 4795 return node && (node.nodeType === 1 || node.nodeType === 11); 4796} 4797function utils_extend() { 4798 const to = Object(arguments.length <= 0 ? undefined : arguments[0]); 4799 const noExtend = ['__proto__', 'constructor', 'prototype']; 4800 for (let i = 1; i < arguments.length; i += 1) { 4801 const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i]; 4802 if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) { 4803 const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0); 4804 for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { 4805 const nextKey = keysArray[nextIndex]; 4806 const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); 4807 if (desc !== undefined && desc.enumerable) { 4808 if (utils_isObject(to[nextKey]) && utils_isObject(nextSource[nextKey])) { 4809 if (nextSource[nextKey].__swiper__) { 4810 to[nextKey] = nextSource[nextKey]; 4811 } else { 4812 utils_extend(to[nextKey], nextSource[nextKey]); 4813 } 4814 } else if (!utils_isObject(to[nextKey]) && utils_isObject(nextSource[nextKey])) { 4815 to[nextKey] = {}; 4816 if (nextSource[nextKey].__swiper__) { 4817 to[nextKey] = nextSource[nextKey]; 4818 } else { 4819 utils_extend(to[nextKey], nextSource[nextKey]); 4820 } 4821 } else { 4822 to[nextKey] = nextSource[nextKey]; 4823 } 4824 } 4825 } 4826 } 4827 } 4828 return to; 4829} 4830function utils_setCSSProperty(el, varName, varValue) { 4831 el.style.setProperty(varName, varValue); 4832} 4833function animateCSSModeScroll(_ref) { 4834 let { 4835 swiper, 4836 targetPosition, 4837 side 4838 } = _ref; 4839 const window = ssr_window_esm_getWindow(); 4840 const startPosition = -swiper.translate; 4841 let startTime = null; 4842 let time; 4843 const duration = swiper.params.speed; 4844 swiper.wrapperEl.style.scrollSnapType = 'none'; 4845 window.cancelAnimationFrame(swiper.cssModeFrameID); 4846 const dir = targetPosition > startPosition ? 'next' : 'prev'; 4847 const isOutOfBound = (current, target) => { 4848 return dir === 'next' && current >= target || dir === 'prev' && current <= target; 4849 }; 4850 const animate = () => { 4851 time = new Date().getTime(); 4852 if (startTime === null) { 4853 startTime = time; 4854 } 4855 const progress = Math.max(Math.min((time - startTime) / duration, 1), 0); 4856 const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;
vendor: 5,305 bytes, lines 4857-5029
4857 let currentPosition = startPosition + easeProgress * (targetPosition - startPosition); 4858 if (isOutOfBound(currentPosition, targetPosition)) { 4859 currentPosition = targetPosition; 4860 } 4861 swiper.wrapperEl.scrollTo({ 4862 [side]: currentPosition 4863 }); 4864 if (isOutOfBound(currentPosition, targetPosition)) { 4865 swiper.wrapperEl.style.overflow = 'hidden'; 4866 swiper.wrapperEl.style.scrollSnapType = ''; 4867 setTimeout(() => { 4868 swiper.wrapperEl.style.overflow = ''; 4869 swiper.wrapperEl.scrollTo({ 4870 [side]: currentPosition 4871 }); 4872 }); 4873 window.cancelAnimationFrame(swiper.cssModeFrameID); 4874 return; 4875 } 4876 swiper.cssModeFrameID = window.requestAnimationFrame(animate); 4877 }; 4878 animate(); 4879} 4880function utils_getSlideTransformEl(slideEl) { 4881 return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl; 4882} 4883function utils_elementChildren(element, selector) { 4884 if (selector === void 0) { 4885 selector = ''; 4886 } 4887 const children = [...element.children]; 4888 if (element instanceof HTMLSlotElement) { 4889 children.push(...element.assignedElements()); 4890 } 4891 if (!selector) { 4892 return children; 4893 } 4894 return children.filter(el => el.matches(selector)); 4895} 4896function elementIsChildOf(el, parent) { 4897 const isChild = parent.contains(el); 4898 if (!isChild && parent instanceof HTMLSlotElement) { 4899 const children = [...parent.assignedElements()]; 4900 return children.includes(el); 4901 } 4902 return isChild; 4903} 4904function showWarning(text) { 4905 try { 4906 console.warn(text); 4907 return; 4908 } catch (err) { 4909 // err 4910 } 4911} 4912function utils_createElement(tag, classes) { 4913 if (classes === void 0) { 4914 classes = []; 4915 } 4916 const el = document.createElement(tag); 4917 el.classList.add(...(Array.isArray(classes) ? classes : utils_classesToTokens(classes))); 4918 return el; 4919} 4920function utils_elementOffset(el) { 4921 const window = getWindow(); 4922 const document = getDocument(); 4923 const box = el.getBoundingClientRect(); 4924 const body = document.body; 4925 const clientTop = el.clientTop || body.clientTop || 0; 4926 const clientLeft = el.clientLeft || body.clientLeft || 0; 4927 const scrollTop = el === window ? window.scrollY : el.scrollTop; 4928 const scrollLeft = el === window ? window.scrollX : el.scrollLeft; 4929 return { 4930 top: box.top + scrollTop - clientTop, 4931 left: box.left + scrollLeft - clientLeft 4932 }; 4933} 4934function elementPrevAll(el, selector) { 4935 const prevEls = []; 4936 while (el.previousElementSibling) { 4937 const prev = el.previousElementSibling; // eslint-disable-line 4938 if (selector) { 4939 if (prev.matches(selector)) prevEls.push(prev); 4940 } else prevEls.push(prev); 4941 el = prev; 4942 } 4943 return prevEls; 4944} 4945function elementNextAll(el, selector) { 4946 const nextEls = []; 4947 while (el.nextElementSibling) { 4948 const next = el.nextElementSibling; // eslint-disable-line 4949 if (selector) { 4950 if (next.matches(selector)) nextEls.push(next); 4951 } else nextEls.push(next); 4952 el = next; 4953 } 4954 return nextEls; 4955} 4956function elementStyle(el, prop) { 4957 const window = ssr_window_esm_getWindow(); 4958 return window.getComputedStyle(el, null).getPropertyValue(prop); 4959} 4960function utils_elementIndex(el) { 4961 let child = el; 4962 let i; 4963 if (child) { 4964 i = 0; 4965 // eslint-disable-next-line 4966 while ((child = child.previousSibling) !== null) { 4967 if (child.nodeType === 1) i += 1; 4968 } 4969 return i; 4970 } 4971 return undefined; 4972} 4973function utils_elementParents(el, selector) { 4974 const parents = []; // eslint-disable-line 4975 let parent = el.parentElement; // eslint-disable-line 4976 while (parent) { 4977 if (selector) { 4978 if (parent.matches(selector)) parents.push(parent); 4979 } else { 4980 parents.push(parent); 4981 } 4982 parent = parent.parentElement; 4983 } 4984 return parents; 4985} 4986function utils_elementTransitionEnd(el, callback) { 4987 function fireCallBack(e) { 4988 if (e.target !== el) return; 4989 callback.call(el, e); 4990 el.removeEventListener('transitionend', fireCallBack); 4991 } 4992 if (callback) { 4993 el.addEventListener('transitionend', fireCallBack); 4994 } 4995} 4996function utils_elementOuterSize(el, size, includeMargins) { 4997 const window = ssr_window_esm_getWindow(); 4998 if (includeMargins) { 4999 return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom')); 5000 } 5001 return el.offsetWidth; 5002} 5003function utils_makeElementsArray(el) { 5004 return (Array.isArray(el) ? el : [el]).filter(e => !!e); 5005} 5006function utils_getRotateFix(swiper) { 5007 return v => { 5008 if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) { 5009 return v + 0.001; 5010 } 5011 return v; 5012 }; 5013} 5014 5015 5016 5017;// CONCATENATED MODULE: ./node_modules/swiper/shared/swiper-core.mjs 5018 5019 5020 5021let support; 5022function calcSupport() { 5023 const window = ssr_window_esm_getWindow(); 5024 const document = ssr_window_esm_getDocument(); 5025 return { 5026 smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style, 5027 touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch) 5028 }; 5029}
vendor: 14,978 bytes, lines 5030-5495
5030function getSupport() { 5031 if (!support) { 5032 support = calcSupport(); 5033 } 5034 return support; 5035} 5036 5037let deviceCached; 5038function calcDevice(_temp) { 5039 let { 5040 userAgent 5041 } = _temp === void 0 ? {} : _temp; 5042 const support = getSupport(); 5043 const window = ssr_window_esm_getWindow(); 5044 const platform = window.navigator.platform; 5045 const ua = userAgent || window.navigator.userAgent; 5046 const device = { 5047 ios: false, 5048 android: false 5049 }; 5050 const screenWidth = window.screen.width; 5051 const screenHeight = window.screen.height; 5052 const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line 5053 let ipad = ua.match(/(iPad).*OS\s([\d_]+)/); 5054 const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); 5055 const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); 5056 const windows = platform === 'Win32'; 5057 let macos = platform === 'MacIntel'; 5058 5059 // iPadOs 13 fix 5060 const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810']; 5061 if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) { 5062 ipad = ua.match(/(Version)\/([\d.]+)/); 5063 if (!ipad) ipad = [0, 1, '13_0_0']; 5064 macos = false; 5065 } 5066 5067 // Android 5068 if (android && !windows) { 5069 device.os = 'android'; 5070 device.android = true; 5071 } 5072 if (ipad || iphone || ipod) { 5073 device.os = 'ios'; 5074 device.ios = true; 5075 } 5076 5077 // Export object 5078 return device; 5079} 5080function getDevice(overrides) { 5081 if (overrides === void 0) { 5082 overrides = {}; 5083 } 5084 if (!deviceCached) { 5085 deviceCached = calcDevice(overrides); 5086 } 5087 return deviceCached; 5088} 5089 5090let browser; 5091function calcBrowser() { 5092 const window = ssr_window_esm_getWindow(); 5093 const device = getDevice(); 5094 let needPerspectiveFix = false; 5095 function isSafari() { 5096 const ua = window.navigator.userAgent.toLowerCase(); 5097 return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0; 5098 } 5099 if (isSafari()) { 5100 const ua = String(window.navigator.userAgent); 5101 if (ua.includes('Version/')) { 5102 const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num)); 5103 needPerspectiveFix = major < 16 || major === 16 && minor < 2; 5104 } 5105 } 5106 const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent); 5107 const isSafariBrowser = isSafari(); 5108 const need3dFix = isSafariBrowser || isWebView && device.ios; 5109 return { 5110 isSafari: needPerspectiveFix || isSafariBrowser, 5111 needPerspectiveFix, 5112 need3dFix, 5113 isWebView 5114 }; 5115} 5116function getBrowser() { 5117 if (!browser) { 5118 browser = calcBrowser(); 5119 } 5120 return browser; 5121} 5122 5123function Resize(_ref) { 5124 let { 5125 swiper, 5126 on, 5127 emit 5128 } = _ref; 5129 const window = ssr_window_esm_getWindow(); 5130 let observer = null; 5131 let animationFrame = null; 5132 const resizeHandler = () => { 5133 if (!swiper || swiper.destroyed || !swiper.initialized) return; 5134 emit('beforeResize'); 5135 emit('resize'); 5136 }; 5137 const createObserver = () => { 5138 if (!swiper || swiper.destroyed || !swiper.initialized) return; 5139 observer = new ResizeObserver(entries => { 5140 animationFrame = window.requestAnimationFrame(() => { 5141 const { 5142 width, 5143 height 5144 } = swiper; 5145 let newWidth = width; 5146 let newHeight = height; 5147 entries.forEach(_ref2 => { 5148 let { 5149 contentBoxSize, 5150 contentRect, 5151 target 5152 } = _ref2; 5153 if (target && target !== swiper.el) return; 5154 newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize; 5155 newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize; 5156 }); 5157 if (newWidth !== width || newHeight !== height) { 5158 resizeHandler(); 5159 } 5160 }); 5161 }); 5162 observer.observe(swiper.el); 5163 }; 5164 const removeObserver = () => { 5165 if (animationFrame) { 5166 window.cancelAnimationFrame(animationFrame); 5167 } 5168 if (observer && observer.unobserve && swiper.el) { 5169 observer.unobserve(swiper.el); 5170 observer = null; 5171 } 5172 }; 5173 const orientationChangeHandler = () => { 5174 if (!swiper || swiper.destroyed || !swiper.initialized) return; 5175 emit('orientationchange'); 5176 }; 5177 on('init', () => { 5178 if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') { 5179 createObserver(); 5180 return; 5181 } 5182 window.addEventListener('resize', resizeHandler); 5183 window.addEventListener('orientationchange', orientationChangeHandler); 5184 }); 5185 on('destroy', () => { 5186 removeObserver(); 5187 window.removeEventListener('resize', resizeHandler); 5188 window.removeEventListener('orientationchange', orientationChangeHandler); 5189 }); 5190} 5191 5192function Observer(_ref) { 5193 let { 5194 swiper, 5195 extendParams, 5196 on, 5197 emit 5198 } = _ref; 5199 const observers = []; 5200 const window = ssr_window_esm_getWindow(); 5201 const attach = function (target, options) { 5202 if (options === void 0) { 5203 options = {}; 5204 } 5205 const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver; 5206 const observer = new ObserverFunc(mutations => { 5207 // The observerUpdate event should only be triggered 5208 // once despite the number of mutations. Additional 5209 // triggers are redundant and are very costly 5210 if (swiper.__preventObserver__) return; 5211 if (mutations.length === 1) { 5212 emit('observerUpdate', mutations[0]); 5213 return; 5214 } 5215 const observerUpdate = function observerUpdate() { 5216 emit('observerUpdate', mutations[0]); 5217 }; 5218 if (window.requestAnimationFrame) { 5219 window.requestAnimationFrame(observerUpdate); 5220 } else { 5221 window.setTimeout(observerUpdate, 0); 5222 } 5223 }); 5224 observer.observe(target, { 5225 attributes: typeof options.attributes === 'undefined' ? true : options.attributes, 5226 childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList, 5227 characterData: typeof options.characterData === 'undefined' ? true : options.characterData 5228 }); 5229 observers.push(observer); 5230 }; 5231 const init = () => { 5232 if (!swiper.params.observer) return; 5233 if (swiper.params.observeParents) { 5234 const containerParents = utils_elementParents(swiper.hostEl); 5235 for (let i = 0; i < containerParents.length; i += 1) { 5236 attach(containerParents[i]); 5237 } 5238 } 5239 // Observe container 5240 attach(swiper.hostEl, { 5241 childList: swiper.params.observeSlideChildren 5242 }); 5243 5244 // Observe wrapper 5245 attach(swiper.wrapperEl, { 5246 attributes: false 5247 }); 5248 }; 5249 const destroy = () => { 5250 observers.forEach(observer => { 5251 observer.disconnect(); 5252 }); 5253 observers.splice(0, observers.length); 5254 }; 5255 extendParams({ 5256 observer: false, 5257 observeParents: false, 5258 observeSlideChildren: false 5259 }); 5260 on('init', init); 5261 on('destroy', destroy); 5262} 5263 5264/* eslint-disable no-underscore-dangle */ 5265 5266var eventsEmitter = { 5267 on(events, handler, priority) { 5268 const self = this; 5269 if (!self.eventsListeners || self.destroyed) return self; 5270 if (typeof handler !== 'function') return self; 5271 const method = priority ? 'unshift' : 'push'; 5272 events.split(' ').forEach(event => { 5273 if (!self.eventsListeners[event]) self.eventsListeners[event] = []; 5274 self.eventsListeners[event][method](handler); 5275 }); 5276 return self; 5277 }, 5278 once(events, handler, priority) { 5279 const self = this; 5280 if (!self.eventsListeners || self.destroyed) return self; 5281 if (typeof handler !== 'function') return self; 5282 function onceHandler() { 5283 self.off(events, onceHandler); 5284 if (onceHandler.__emitterProxy) { 5285 delete onceHandler.__emitterProxy; 5286 } 5287 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 5288 args[_key] = arguments[_key]; 5289 } 5290 handler.apply(self, args); 5291 } 5292 onceHandler.__emitterProxy = handler; 5293 return self.on(events, onceHandler, priority); 5294 }, 5295 onAny(handler, priority) { 5296 const self = this; 5297 if (!self.eventsListeners || self.destroyed) return self; 5298 if (typeof handler !== 'function') return self; 5299 const method = priority ? 'unshift' : 'push'; 5300 if (self.eventsAnyListeners.indexOf(handler) < 0) { 5301 self.eventsAnyListeners[method](handler); 5302 } 5303 return self; 5304 }, 5305 offAny(handler) { 5306 const self = this; 5307 if (!self.eventsListeners || self.destroyed) return self; 5308 if (!self.eventsAnyListeners) return self; 5309 const index = self.eventsAnyListeners.indexOf(handler); 5310 if (index >= 0) { 5311 self.eventsAnyListeners.splice(index, 1); 5312 } 5313 return self; 5314 }, 5315 off(events, handler) { 5316 const self = this; 5317 if (!self.eventsListeners || self.destroyed) return self; 5318 if (!self.eventsListeners) return self; 5319 events.split(' ').forEach(event => { 5320 if (typeof handler === 'undefined') { 5321 self.eventsListeners[event] = []; 5322 } else if (self.eventsListeners[event]) { 5323 self.eventsListeners[event].forEach((eventHandler, index) => { 5324 if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) { 5325 self.eventsListeners[event].splice(index, 1); 5326 } 5327 }); 5328 } 5329 }); 5330 return self; 5331 }, 5332 emit() { 5333 const self = this; 5334 if (!self.eventsListeners || self.destroyed) return self; 5335 if (!self.eventsListeners) return self; 5336 let events; 5337 let data; 5338 let context; 5339 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 5340 args[_key2] = arguments[_key2]; 5341 } 5342 if (typeof args[0] === 'string' || Array.isArray(args[0])) { 5343 events = args[0]; 5344 data = args.slice(1, args.length); 5345 context = self; 5346 } else { 5347 events = args[0].events; 5348 data = args[0].data; 5349 context = args[0].context || self; 5350 } 5351 data.unshift(context); 5352 const eventsArray = Array.isArray(events) ? events : events.split(' '); 5353 eventsArray.forEach(event => { 5354 if (self.eventsAnyListeners && self.eventsAnyListeners.length) { 5355 self.eventsAnyListeners.forEach(eventHandler => { 5356 eventHandler.apply(context, [event, ...data]); 5357 }); 5358 } 5359 if (self.eventsListeners && self.eventsListeners[event]) { 5360 self.eventsListeners[event].forEach(eventHandler => { 5361 eventHandler.apply(context, data); 5362 }); 5363 } 5364 }); 5365 return self; 5366 } 5367}; 5368 5369function updateSize() { 5370 const swiper = this; 5371 let width; 5372 let height; 5373 const el = swiper.el; 5374 if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) { 5375 width = swiper.params.width; 5376 } else { 5377 width = el.clientWidth; 5378 } 5379 if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) { 5380 height = swiper.params.height; 5381 } else { 5382 height = el.clientHeight; 5383 } 5384 if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) { 5385 return; 5386 } 5387 5388 // Subtract paddings 5389 width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10); 5390 height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10); 5391 if (Number.isNaN(width)) width = 0; 5392 if (Number.isNaN(height)) height = 0; 5393 Object.assign(swiper, { 5394 width, 5395 height, 5396 size: swiper.isHorizontal() ? width : height 5397 }); 5398} 5399 5400function updateSlides() { 5401 const swiper = this; 5402 function getDirectionPropertyValue(node, label) { 5403 return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0); 5404 } 5405 const params = swiper.params; 5406 const { 5407 wrapperEl, 5408 slidesEl, 5409 size: swiperSize, 5410 rtlTranslate: rtl, 5411 wrongRTL 5412 } = swiper; 5413 const isVirtual = swiper.virtual && params.virtual.enabled; 5414 const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; 5415 const slides = utils_elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`); 5416 const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; 5417 let snapGrid = []; 5418 const slidesGrid = []; 5419 const slidesSizesGrid = []; 5420 let offsetBefore = params.slidesOffsetBefore; 5421 if (typeof offsetBefore === 'function') { 5422 offsetBefore = params.slidesOffsetBefore.call(swiper); 5423 } 5424 let offsetAfter = params.slidesOffsetAfter; 5425 if (typeof offsetAfter === 'function') { 5426 offsetAfter = params.slidesOffsetAfter.call(swiper); 5427 } 5428 const previousSnapGridLength = swiper.snapGrid.length; 5429 const previousSlidesGridLength = swiper.slidesGrid.length; 5430 let spaceBetween = params.spaceBetween; 5431 let slidePosition = -offsetBefore; 5432 let prevSlideSize = 0; 5433 let index = 0; 5434 if (typeof swiperSize === 'undefined') { 5435 return; 5436 } 5437 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 5438 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize; 5439 } else if (typeof spaceBetween === 'string') { 5440 spaceBetween = parseFloat(spaceBetween); 5441 } 5442 swiper.virtualSize = -spaceBetween; 5443 5444 // reset margins 5445 slides.forEach(slideEl => { 5446 if (rtl) { 5447 slideEl.style.marginLeft = ''; 5448 } else { 5449 slideEl.style.marginRight = ''; 5450 } 5451 slideEl.style.marginBottom = ''; 5452 slideEl.style.marginTop = ''; 5453 }); 5454 5455 // reset cssMode offsets 5456 if (params.centeredSlides && params.cssMode) { 5457 utils_setCSSProperty(wrapperEl, '--swiper-centered-offset-before', ''); 5458 utils_setCSSProperty(wrapperEl, '--swiper-centered-offset-after', ''); 5459 } 5460 const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid; 5461 if (gridEnabled) { 5462 swiper.grid.initSlides(slides); 5463 } else if (swiper.grid) { 5464 swiper.grid.unsetSlides(); 5465 } 5466 5467 // Calc slides 5468 let slideSize; 5469 const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => { 5470 return typeof params.breakpoints[key].slidesPerView !== 'undefined'; 5471 }).length > 0; 5472 for (let i = 0; i < slidesLength; i += 1) { 5473 slideSize = 0; 5474 let slide; 5475 if (slides[i]) slide = slides[i]; 5476 if (gridEnabled) { 5477 swiper.grid.updateSlide(i, slide, slides); 5478 } 5479 if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line 5480 5481 if (params.slidesPerView === 'auto') { 5482 if (shouldResetSlideSize) { 5483 slides[i].style[swiper.getDirectionLabel('width')] = ``; 5484 } 5485 const slideStyles = getComputedStyle(slide); 5486 const currentTransform = slide.style.transform; 5487 const currentWebKitTransform = slide.style.webkitTransform; 5488 if (currentTransform) { 5489 slide.style.transform = 'none'; 5490 } 5491 if (currentWebKitTransform) { 5492 slide.style.webkitTransform = 'none'; 5493 } 5494 if (params.roundLengths) { 5495 slideSize = swiper.isHorizontal() ? utils_elementOuterSize(slide, 'width', true) : utils_
vendor: 6,154 bytes, lines 5495-5643
5495elementOuterSize(slide, 'height', true); 5496 } else { 5497 // eslint-disable-next-line 5498 const width = getDirectionPropertyValue(slideStyles, 'width'); 5499 const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left'); 5500 const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right'); 5501 const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left'); 5502 const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right'); 5503 const boxSizing = slideStyles.getPropertyValue('box-sizing'); 5504 if (boxSizing && boxSizing === 'border-box') { 5505 slideSize = width + marginLeft + marginRight; 5506 } else { 5507 const { 5508 clientWidth, 5509 offsetWidth 5510 } = slide; 5511 slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth); 5512 } 5513 } 5514 if (currentTransform) { 5515 slide.style.transform = currentTransform; 5516 } 5517 if (currentWebKitTransform) { 5518 slide.style.webkitTransform = currentWebKitTransform; 5519 } 5520 if (params.roundLengths) slideSize = Math.floor(slideSize); 5521 } else { 5522 slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView; 5523 if (params.roundLengths) slideSize = Math.floor(slideSize); 5524 if (slides[i]) { 5525 slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`; 5526 } 5527 } 5528 if (slides[i]) { 5529 slides[i].swiperSlideSize = slideSize; 5530 } 5531 slidesSizesGrid.push(slideSize); 5532 if (params.centeredSlides) { 5533 slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween; 5534 if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 5535 if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 5536 if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; 5537 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 5538 if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition); 5539 slidesGrid.push(slidePosition); 5540 } else { 5541 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 5542 if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition); 5543 slidesGrid.push(slidePosition); 5544 slidePosition = slidePosition + slideSize + spaceBetween; 5545 } 5546 swiper.virtualSize += slideSize + spaceBetween; 5547 prevSlideSize = slideSize; 5548 index += 1; 5549 } 5550 swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; 5551 if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { 5552 wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`; 5553 } 5554 if (params.setWrapperSize) { 5555 wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; 5556 } 5557 if (gridEnabled) { 5558 swiper.grid.updateWrapperSize(slideSize, snapGrid); 5559 } 5560 5561 // Remove last grid elements depending on width 5562 if (!params.centeredSlides) { 5563 const newSlidesGrid = []; 5564 for (let i = 0; i < snapGrid.length; i += 1) { 5565 let slidesGridItem = snapGrid[i]; 5566 if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem); 5567 if (snapGrid[i] <= swiper.virtualSize - swiperSize) { 5568 newSlidesGrid.push(slidesGridItem); 5569 } 5570 } 5571 snapGrid = newSlidesGrid; 5572 if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { 5573 snapGrid.push(swiper.virtualSize - swiperSize); 5574 } 5575 } 5576 if (isVirtual && params.loop) { 5577 const size = slidesSizesGrid[0] + spaceBetween; 5578 if (params.slidesPerGroup > 1) { 5579 const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup); 5580 const groupSize = size * params.slidesPerGroup; 5581 for (let i = 0; i < groups; i += 1) { 5582 snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize); 5583 } 5584 } 5585 for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) { 5586 if (params.slidesPerGroup === 1) { 5587 snapGrid.push(snapGrid[snapGrid.length - 1] + size); 5588 } 5589 slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size); 5590 swiper.virtualSize += size; 5591 } 5592 } 5593 if (snapGrid.length === 0) snapGrid = [0]; 5594 if (spaceBetween !== 0) { 5595 const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight'); 5596 slides.filter((_, slideIndex) => { 5597 if (!params.cssMode || params.loop) return true; 5598 if (slideIndex === slides.length - 1) { 5599 return false; 5600 } 5601 return true; 5602 }).forEach(slideEl => { 5603 slideEl.style[key] = `${spaceBetween}px`; 5604 }); 5605 } 5606 if (params.centeredSlides && params.centeredSlidesBounds) { 5607 let allSlidesSize = 0; 5608 slidesSizesGrid.forEach(slideSizeValue => { 5609 allSlidesSize += slideSizeValue + (spaceBetween || 0); 5610 }); 5611 allSlidesSize -= spaceBetween; 5612 const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0; 5613 snapGrid = snapGrid.map(snap => { 5614 if (snap <= 0) return -offsetBefore; 5615 if (snap > maxSnap) return maxSnap + offsetAfter; 5616 return snap; 5617 }); 5618 } 5619 if (params.centerInsufficientSlides) { 5620 let allSlidesSize = 0; 5621 slidesSizesGrid.forEach(slideSizeValue => { 5622 allSlidesSize += slideSizeValue + (spaceBetween || 0); 5623 }); 5624 allSlidesSize -= spaceBetween; 5625 const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0); 5626 if (allSlidesSize + offsetSize < swiperSize) { 5627 const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2; 5628 snapGrid.forEach((snap, snapIndex) => { 5629 snapGrid[snapIndex] = snap - allSlidesOffset; 5630 }); 5631 slidesGrid.forEach((snap, snapIndex) => { 5632 slidesGrid[snapIndex] = snap + allSlidesOffset; 5633 }); 5634 } 5635 } 5636 Object.assign(swiper, { 5637 slides, 5638 snapGrid, 5639 slidesGrid, 5640 slidesSizesGrid 5641 }); 5642 if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) { 5643
5643utils_setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`); 5644 utils_setCSSProperty
vendor: 8,507 bytes, lines 5644-5865
5644(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`); 5645 const addToSnapGrid = -swiper.snapGrid[0]; 5646 const addToSlidesGrid = -swiper.slidesGrid[0]; 5647 swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid); 5648 swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid); 5649 } 5650 if (slidesLength !== previousSlidesLength) { 5651 swiper.emit('slidesLengthChange'); 5652 } 5653 if (snapGrid.length !== previousSnapGridLength) { 5654 if (swiper.params.watchOverflow) swiper.checkOverflow(); 5655 swiper.emit('snapGridLengthChange'); 5656 } 5657 if (slidesGrid.length !== previousSlidesGridLength) { 5658 swiper.emit('slidesGridLengthChange'); 5659 } 5660 if (params.watchSlidesProgress) { 5661 swiper.updateSlidesOffset(); 5662 } 5663 swiper.emit('slidesUpdated'); 5664 if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) { 5665 const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`; 5666 const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass); 5667 if (slidesLength <= params.maxBackfaceHiddenSlides) { 5668 if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass); 5669 } else if (hasClassBackfaceClassAdded) { 5670 swiper.el.classList.remove(backFaceHiddenClass); 5671 } 5672 } 5673} 5674 5675function updateAutoHeight(speed) { 5676 const swiper = this; 5677 const activeSlides = []; 5678 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 5679 let newHeight = 0; 5680 let i; 5681 if (typeof speed === 'number') { 5682 swiper.setTransition(speed); 5683 } else if (speed === true) { 5684 swiper.setTransition(swiper.params.speed); 5685 } 5686 const getSlideByIndex = index => { 5687 if (isVirtual) { 5688 return swiper.slides[swiper.getSlideIndexByData(index)]; 5689 } 5690 return swiper.slides[index]; 5691 }; 5692 // Find slides currently in view 5693 if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { 5694 if (swiper.params.centeredSlides) { 5695 (swiper.visibleSlides || []).forEach(slide => { 5696 activeSlides.push(slide); 5697 }); 5698 } else { 5699 for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { 5700 const index = swiper.activeIndex + i; 5701 if (index > swiper.slides.length && !isVirtual) break; 5702 activeSlides.push(getSlideByIndex(index)); 5703 } 5704 } 5705 } else { 5706 activeSlides.push(getSlideByIndex(swiper.activeIndex)); 5707 } 5708 5709 // Find new height from highest slide in view 5710 for (i = 0; i < activeSlides.length; i += 1) { 5711 if (typeof activeSlides[i] !== 'undefined') { 5712 const height = activeSlides[i].offsetHeight; 5713 newHeight = height > newHeight ? height : newHeight; 5714 } 5715 } 5716 5717 // Update Height 5718 if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`; 5719} 5720 5721function updateSlidesOffset() { 5722 const swiper = this; 5723 const slides = swiper.slides; 5724 // eslint-disable-next-line 5725 const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0; 5726 for (let i = 0; i < slides.length; i += 1) { 5727 slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment(); 5728 } 5729} 5730 5731const toggleSlideClasses$1 = (slideEl, condition, className) => { 5732 if (condition && !slideEl.classList.contains(className)) { 5733 slideEl.classList.add(className); 5734 } else if (!condition && slideEl.classList.contains(className)) { 5735 slideEl.classList.remove(className); 5736 } 5737}; 5738function updateSlidesProgress(translate) { 5739 if (translate === void 0) { 5740 translate = this && this.translate || 0; 5741 } 5742 const swiper = this; 5743 const params = swiper.params; 5744 const { 5745 slides, 5746 rtlTranslate: rtl, 5747 snapGrid 5748 } = swiper; 5749 if (slides.length === 0) return; 5750 if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); 5751 let offsetCenter = -translate; 5752 if (rtl) offsetCenter = translate; 5753 swiper.visibleSlidesIndexes = []; 5754 swiper.visibleSlides = []; 5755 let spaceBetween = params.spaceBetween; 5756 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 5757 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; 5758 } else if (typeof spaceBetween === 'string') { 5759 spaceBetween = parseFloat(spaceBetween); 5760 } 5761 for (let i = 0; i < slides.length; i += 1) { 5762 const slide = slides[i]; 5763 let slideOffset = slide.swiperSlideOffset; 5764 if (params.cssMode && params.centeredSlides) { 5765 slideOffset -= slides[0].swiperSlideOffset; 5766 } 5767 const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); 5768 const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); 5769 const slideBefore = -(offsetCenter - slideOffset); 5770 const slideAfter = slideBefore + swiper.slidesSizesGrid[i]; 5771 const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i]; 5772 const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size; 5773 if (isVisible) { 5774 swiper.visibleSlides.push(slide); 5775 swiper.visibleSlidesIndexes.push(i); 5776 } 5777 toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass); 5778 toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass); 5779 slide.progress = rtl ? -slideProgress : slideProgress; 5780 slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress; 5781 } 5782} 5783 5784function updateProgress(translate) { 5785 const swiper = this; 5786 if (typeof translate === 'undefined') { 5787 const multiplier = swiper.rtlTranslate ? -1 : 1; 5788 // eslint-disable-next-line 5789 translate = swiper && swiper.translate && swiper.translate * multiplier || 0; 5790 } 5791 const params = swiper.params; 5792 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 5793 let { 5794 progress, 5795 isBeginning, 5796 isEnd, 5797 progressLoop 5798 } = swiper; 5799 const wasBeginning = isBeginning; 5800 const wasEnd = isEnd; 5801 if (translatesDiff === 0) { 5802 progress = 0; 5803 isBeginning = true; 5804 isEnd = true; 5805 } else { 5806 progress = (translate - swiper.minTranslate()) / translatesDiff; 5807 const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1; 5808 const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1; 5809 isBeginning = isBeginningRounded || progress <= 0; 5810 isEnd = isEndRounded || progress >= 1; 5811 if (isBeginningRounded) progress = 0; 5812 if (isEndRounded) progress = 1; 5813 } 5814 if (params.loop) { 5815 const firstSlideIndex = swiper.getSlideIndexByData(0); 5816 const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1); 5817 const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex]; 5818 const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex]; 5819 const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1]; 5820 const translateAbs = Math.abs(translate); 5821 if (translateAbs >= firstSlideTranslate) { 5822 progressLoop = (translateAbs - firstSlideTranslate) / translateMax; 5823 } else { 5824 progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax; 5825 } 5826 if (progressLoop > 1) progressLoop -= 1; 5827 } 5828 Object.assign(swiper, { 5829 progress, 5830 progressLoop, 5831 isBeginning, 5832 isEnd 5833 }); 5834 if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate); 5835 if (isBeginning && !wasBeginning) { 5836 swiper.emit('reachBeginning toEdge'); 5837 } 5838 if (isEnd && !wasEnd) { 5839 swiper.emit('reachEnd toEdge'); 5840 } 5841 if (wasBeginning && !isBeginning || wasEnd && !isEnd) { 5842 swiper.emit('fromEdge'); 5843 } 5844 swiper.emit('progress', progress); 5845} 5846 5847const toggleSlideClasses = (slideEl, condition, className) => { 5848 if (condition && !slideEl.classList.contains(className)) { 5849 slideEl.classList.add(className); 5850 } else if (!condition && slideEl.classList.contains(className)) { 5851 slideEl.classList.remove(className); 5852 } 5853}; 5854function updateSlidesClasses() { 5855 const swiper = this; 5856 const { 5857 slides, 5858 params, 5859 slidesEl, 5860 activeIndex 5861 } = swiper; 5862 const isVirtual = swiper.virtual && params.virtual.enabled; 5863 const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; 5864 const getFilteredSlide = selector => { 5865 return
5865utils_elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0]; 5866 }; 5867 let activeSlide; 5868 let prevSlide; 5869 let nextSlide; 5870 if (isVirtual) { 5871 if (params.loop) { 5872 let slideIndex = activeIndex - swiper.virtual.slidesBefore; 5873 if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex; 5874 if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length; 5875 activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`); 5876 } else { 5877 activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`); 5878 } 5879 } else { 5880 if (gridEnabled) { 5881 activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0]; 5882 nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0]; 5883 prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0]
vendor: 5,932 bytes, lines 5883-6048
5883; 5884 } else { 5885 activeSlide = slides[activeIndex]; 5886 } 5887 } 5888 if (activeSlide) { 5889 if (!gridEnabled) { 5890 // Next Slide 5891 nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; 5892 if (params.loop && !nextSlide) { 5893 nextSlide = slides[0]; 5894 } 5895 5896 // Prev Slide 5897 prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; 5898 if (params.loop && !prevSlide === 0) { 5899 prevSlide = slides[slides.length - 1]; 5900 } 5901 } 5902 } 5903 slides.forEach(slideEl => { 5904 toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass); 5905 toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass); 5906 toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass); 5907 }); 5908 swiper.emitSlidesClasses(); 5909} 5910 5911const processLazyPreloader = (swiper, imageEl) => { 5912 if (!swiper || swiper.destroyed || !swiper.params) return; 5913 const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; 5914 const slideEl = imageEl.closest(slideSelector()); 5915 if (slideEl) { 5916 let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`); 5917 if (!lazyEl && swiper.isElement) { 5918 if (slideEl.shadowRoot) { 5919 lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); 5920 } else { 5921 // init later 5922 requestAnimationFrame(() => { 5923 if (slideEl.shadowRoot) { 5924 lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); 5925 if (lazyEl) lazyEl.remove(); 5926 } 5927 }); 5928 } 5929 } 5930 if (lazyEl) lazyEl.remove(); 5931 } 5932}; 5933const unlazy = (swiper, index) => { 5934 if (!swiper.slides[index]) return; 5935 const imageEl = swiper.slides[index].querySelector('[loading="lazy"]'); 5936 if (imageEl) imageEl.removeAttribute('loading'); 5937}; 5938const preload = swiper => { 5939 if (!swiper || swiper.destroyed || !swiper.params) return; 5940 let amount = swiper.params.lazyPreloadPrevNext; 5941 const len = swiper.slides.length; 5942 if (!len || !amount || amount < 0) return; 5943 amount = Math.min(amount, len); 5944 const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView); 5945 const activeIndex = swiper.activeIndex; 5946 if (swiper.params.grid && swiper.params.grid.rows > 1) { 5947 const activeColumn = activeIndex; 5948 const preloadColumns = [activeColumn - amount]; 5949 preloadColumns.push(...Array.from({ 5950 length: amount 5951 }).map((_, i) => { 5952 return activeColumn + slidesPerView + i; 5953 })); 5954 swiper.slides.forEach((slideEl, i) => { 5955 if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i); 5956 }); 5957 return; 5958 } 5959 const slideIndexLastInView = activeIndex + slidesPerView - 1; 5960 if (swiper.params.rewind || swiper.params.loop) { 5961 for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) { 5962 const realIndex = (i % len + len) % len; 5963 if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex); 5964 } 5965 } else { 5966 for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) { 5967 if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) { 5968 unlazy(swiper, i); 5969 } 5970 } 5971 } 5972}; 5973 5974function getActiveIndexByTranslate(swiper) { 5975 const { 5976 slidesGrid, 5977 params 5978 } = swiper; 5979 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 5980 let activeIndex; 5981 for (let i = 0; i < slidesGrid.length; i += 1) { 5982 if (typeof slidesGrid[i + 1] !== 'undefined') { 5983 if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) { 5984 activeIndex = i; 5985 } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { 5986 activeIndex = i + 1; 5987 } 5988 } else if (translate >= slidesGrid[i]) { 5989 activeIndex = i; 5990 } 5991 } 5992 // Normalize slideIndex 5993 if (params.normalizeSlideIndex) { 5994 if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; 5995 } 5996 return activeIndex; 5997} 5998function updateActiveIndex(newActiveIndex) { 5999 const swiper = this; 6000 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 6001 const { 6002 snapGrid, 6003 params, 6004 activeIndex: previousIndex, 6005 realIndex: previousRealIndex, 6006 snapIndex: previousSnapIndex 6007 } = swiper; 6008 let activeIndex = newActiveIndex; 6009 let snapIndex; 6010 const getVirtualRealIndex = aIndex => { 6011 let realIndex = aIndex - swiper.virtual.slidesBefore; 6012 if (realIndex < 0) { 6013 realIndex = swiper.virtual.slides.length + realIndex; 6014 } 6015 if (realIndex >= swiper.virtual.slides.length) { 6016 realIndex -= swiper.virtual.slides.length; 6017 } 6018 return realIndex; 6019 }; 6020 if (typeof activeIndex === 'undefined') { 6021 activeIndex = getActiveIndexByTranslate(swiper); 6022 } 6023 if (snapGrid.indexOf(translate) >= 0) { 6024 snapIndex = snapGrid.indexOf(translate); 6025 } else { 6026 const skip = Math.min(params.slidesPerGroupSkip, activeIndex); 6027 snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup); 6028 } 6029 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 6030 if (activeIndex === previousIndex && !swiper.params.loop) { 6031 if (snapIndex !== previousSnapIndex) { 6032 swiper.snapIndex = snapIndex; 6033 swiper.emit('snapIndexChange'); 6034 } 6035 return; 6036 } 6037 if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { 6038 swiper.realIndex = getVirtualRealIndex(activeIndex); 6039 return; 6040 } 6041 const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; 6042 6043 // Get real index 6044 let realIndex; 6045 if (swiper.virtual && params.virtual.enabled && params.loop) { 6046 realIndex = getVirtualRealIndex(activeIndex); 6047 } else if (gridEnabled) { 6048 const firstSlideInColumn = swiper.slides.fi
vendor: 1,341 bytes, lines 6048-6089
6048lter(slideEl => slideEl.column === activeIndex)[0]; 6049 let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10); 6050 if (Number.isNaN(activeSlideIndex)) { 6051 activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0); 6052 } 6053 realIndex = Math.floor(activeSlideIndex / params.grid.rows); 6054 } else if (swiper.slides[activeIndex]) { 6055 const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index'); 6056 if (slideIndex) { 6057 realIndex = parseInt(slideIndex, 10); 6058 } else { 6059 realIndex = activeIndex; 6060 } 6061 } else { 6062 realIndex = activeIndex; 6063 } 6064 Object.assign(swiper, { 6065 previousSnapIndex, 6066 snapIndex, 6067 previousRealIndex, 6068 realIndex, 6069 previousIndex, 6070 activeIndex 6071 }); 6072 if (swiper.initialized) { 6073 preload(swiper); 6074 } 6075 swiper.emit('activeIndexChange'); 6076 swiper.emit('snapIndexChange'); 6077 if (swiper.initialized || swiper.params.runCallbacksOnInit) { 6078 if (previousRealIndex !== realIndex) { 6079 swiper.emit('realIndexChange'); 6080 } 6081 swiper.emit('slideChange'); 6082 } 6083} 6084 6085function updateClickedSlide(el, path) { 6086 const swiper = this; 6087 const params = swiper.params; 6088 let slide = el.closest(`.${params.slideClass}, swiper-slide`); 6089 if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {
vendor: 5,481 bytes, lines 6090-6285
6090 [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => { 6091 if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) { 6092 slide = pathEl; 6093 } 6094 }); 6095 } 6096 let slideFound = false; 6097 let slideIndex; 6098 if (slide) { 6099 for (let i = 0; i < swiper.slides.length; i += 1) { 6100 if (swiper.slides[i] === slide) { 6101 slideFound = true; 6102 slideIndex = i; 6103 break; 6104 } 6105 } 6106 } 6107 if (slide && slideFound) { 6108 swiper.clickedSlide = slide; 6109 if (swiper.virtual && swiper.params.virtual.enabled) { 6110 swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10); 6111 } else { 6112 swiper.clickedIndex = slideIndex; 6113 } 6114 } else { 6115 swiper.clickedSlide = undefined; 6116 swiper.clickedIndex = undefined; 6117 return; 6118 } 6119 if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { 6120 swiper.slideToClickedSlide(); 6121 } 6122} 6123 6124var update = { 6125 updateSize, 6126 updateSlides, 6127 updateAutoHeight, 6128 updateSlidesOffset, 6129 updateSlidesProgress, 6130 updateProgress, 6131 updateSlidesClasses, 6132 updateActiveIndex, 6133 updateClickedSlide 6134}; 6135 6136function getSwiperTranslate(axis) { 6137 if (axis === void 0) { 6138 axis = this.isHorizontal() ? 'x' : 'y'; 6139 } 6140 const swiper = this; 6141 const { 6142 params, 6143 rtlTranslate: rtl, 6144 translate, 6145 wrapperEl 6146 } = swiper; 6147 if (params.virtualTranslate) { 6148 return rtl ? -translate : translate; 6149 } 6150 if (params.cssMode) { 6151 return translate; 6152 } 6153 let currentTranslate = utils_getTranslate(wrapperEl, axis); 6154 currentTranslate += swiper.cssOverflowAdjustment(); 6155 if (rtl) currentTranslate = -currentTranslate; 6156 return currentTranslate || 0; 6157} 6158 6159function setTranslate(translate, byController) { 6160 const swiper = this; 6161 const { 6162 rtlTranslate: rtl, 6163 params, 6164 wrapperEl, 6165 progress 6166 } = swiper; 6167 let x = 0; 6168 let y = 0; 6169 const z = 0; 6170 if (swiper.isHorizontal()) { 6171 x = rtl ? -translate : translate; 6172 } else { 6173 y = translate; 6174 } 6175 if (params.roundLengths) { 6176 x = Math.floor(x); 6177 y = Math.floor(y); 6178 } 6179 swiper.previousTranslate = swiper.translate; 6180 swiper.translate = swiper.isHorizontal() ? x : y; 6181 if (params.cssMode) { 6182 wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y; 6183 } else if (!params.virtualTranslate) { 6184 if (swiper.isHorizontal()) { 6185 x -= swiper.cssOverflowAdjustment(); 6186 } else { 6187 y -= swiper.cssOverflowAdjustment(); 6188 } 6189 wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`; 6190 } 6191 6192 // Check if we need to update progress 6193 let newProgress; 6194 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 6195 if (translatesDiff === 0) { 6196 newProgress = 0; 6197 } else { 6198 newProgress = (translate - swiper.minTranslate()) / translatesDiff; 6199 } 6200 if (newProgress !== progress) { 6201 swiper.updateProgress(translate); 6202 } 6203 swiper.emit('setTranslate', swiper.translate, byController); 6204} 6205 6206function minTranslate() { 6207 return -this.snapGrid[0]; 6208} 6209 6210function maxTranslate() { 6211 return -this.snapGrid[this.snapGrid.length - 1]; 6212} 6213 6214function translateTo(translate, speed, runCallbacks, translateBounds, internal) { 6215 if (translate === void 0) { 6216 translate = 0; 6217 } 6218 if (speed === void 0) { 6219 speed = this.params.speed; 6220 } 6221 if (runCallbacks === void 0) { 6222 runCallbacks = true; 6223 } 6224 if (translateBounds === void 0) { 6225 translateBounds = true; 6226 } 6227 const swiper = this; 6228 const { 6229 params, 6230 wrapperEl 6231 } = swiper; 6232 if (swiper.animating && params.preventInteractionOnTransition) { 6233 return false; 6234 } 6235 const minTranslate = swiper.minTranslate(); 6236 const maxTranslate = swiper.maxTranslate(); 6237 let newTranslate; 6238 if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; 6239 6240 // Update progress 6241 swiper.updateProgress(newTranslate); 6242 if (params.cssMode) { 6243 const isH = swiper.isHorizontal(); 6244 if (speed === 0) { 6245 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; 6246 } else { 6247 if (!swiper.support.smoothScroll) { 6248 animateCSSModeScroll({ 6249 swiper, 6250 targetPosition: -newTranslate, 6251 side: isH ? 'left' : 'top' 6252 }); 6253 return true; 6254 } 6255 wrapperEl.scrollTo({ 6256 [isH ? 'left' : 'top']: -newTranslate, 6257 behavior: 'smooth' 6258 }); 6259 } 6260 return true; 6261 } 6262 if (speed === 0) { 6263 swiper.setTransition(0); 6264 swiper.setTranslate(newTranslate); 6265 if (runCallbacks) { 6266 swiper.emit('beforeTransitionStart', speed, internal); 6267 swiper.emit('transitionEnd'); 6268 } 6269 } else { 6270 swiper.setTransition(speed); 6271 swiper.setTranslate(newTranslate); 6272 if (runCallbacks) { 6273 swiper.emit('beforeTransitionStart', speed, internal); 6274 swiper.emit('transitionStart'); 6275 } 6276 if (!swiper.animating) { 6277 swiper.animating = true; 6278 if (!swiper.onTranslateToWrapperTransitionEnd) { 6279 swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) { 6280 if (!swiper || swiper.destroyed) return; 6281 if (e.target !== this) return; 6282 swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 6283 swiper.onTranslateToWrapperTransitionEnd = null; 6284 delete swiper.onTranslateToWrapperTransitionEnd; 6285 swiper.animating = false;
vendor: 4,176 bytes, lines 6286-6442
6286 if (runCallbacks) { 6287 swiper.emit('transitionEnd'); 6288 } 6289 }; 6290 } 6291 swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 6292 } 6293 } 6294 return true; 6295} 6296 6297var translate = { 6298 getTranslate: getSwiperTranslate, 6299 setTranslate, 6300 minTranslate, 6301 maxTranslate, 6302 translateTo 6303}; 6304 6305function setTransition(duration, byController) { 6306 const swiper = this; 6307 if (!swiper.params.cssMode) { 6308 swiper.wrapperEl.style.transitionDuration = `${duration}ms`; 6309 swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : ''; 6310 } 6311 swiper.emit('setTransition', duration, byController); 6312} 6313 6314function transitionEmit(_ref) { 6315 let { 6316 swiper, 6317 runCallbacks, 6318 direction, 6319 step 6320 } = _ref; 6321 const { 6322 activeIndex, 6323 previousIndex 6324 } = swiper; 6325 let dir = direction; 6326 if (!dir) { 6327 if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; 6328 } 6329 swiper.emit(`transition${step}`); 6330 if (runCallbacks && activeIndex !== previousIndex) { 6331 if (dir === 'reset') { 6332 swiper.emit(`slideResetTransition${step}`); 6333 return; 6334 } 6335 swiper.emit(`slideChangeTransition${step}`); 6336 if (dir === 'next') { 6337 swiper.emit(`slideNextTransition${step}`); 6338 } else { 6339 swiper.emit(`slidePrevTransition${step}`); 6340 } 6341 } 6342} 6343 6344function transitionStart(runCallbacks, direction) { 6345 if (runCallbacks === void 0) { 6346 runCallbacks = true; 6347 } 6348 const swiper = this; 6349 const { 6350 params 6351 } = swiper; 6352 if (params.cssMode) return; 6353 if (params.autoHeight) { 6354 swiper.updateAutoHeight(); 6355 } 6356 transitionEmit({ 6357 swiper, 6358 runCallbacks, 6359 direction, 6360 step: 'Start' 6361 }); 6362} 6363 6364function transitionEnd(runCallbacks, direction) { 6365 if (runCallbacks === void 0) { 6366 runCallbacks = true; 6367 } 6368 const swiper = this; 6369 const { 6370 params 6371 } = swiper; 6372 swiper.animating = false; 6373 if (params.cssMode) return; 6374 swiper.setTransition(0); 6375 transitionEmit({ 6376 swiper, 6377 runCallbacks, 6378 direction, 6379 step: 'End' 6380 }); 6381} 6382 6383var transition = { 6384 setTransition, 6385 transitionStart, 6386 transitionEnd 6387}; 6388 6389function slideTo(index, speed, runCallbacks, internal, initial) { 6390 if (index === void 0) { 6391 index = 0; 6392 } 6393 if (runCallbacks === void 0) { 6394 runCallbacks = true; 6395 } 6396 if (typeof index === 'string') { 6397 index = parseInt(index, 10); 6398 } 6399 const swiper = this; 6400 let slideIndex = index; 6401 if (slideIndex < 0) slideIndex = 0; 6402 const { 6403 params, 6404 snapGrid, 6405 slidesGrid, 6406 previousIndex, 6407 activeIndex, 6408 rtlTranslate: rtl, 6409 wrapperEl, 6410 enabled 6411 } = swiper; 6412 if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) { 6413 return false; 6414 } 6415 if (typeof speed === 'undefined') { 6416 speed = swiper.params.speed; 6417 } 6418 const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); 6419 let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); 6420 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 6421 const translate = -snapGrid[snapIndex]; 6422 // Normalize slideIndex 6423 if (params.normalizeSlideIndex) { 6424 for (let i = 0; i < slidesGrid.length; i += 1) { 6425 const normalizedTranslate = -Math.floor(translate * 100); 6426 const normalizedGrid = Math.floor(slidesGrid[i] * 100); 6427 const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100); 6428 if (typeof slidesGrid[i + 1] !== 'undefined') { 6429 if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) { 6430 slideIndex = i; 6431 } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) { 6432 slideIndex = i + 1; 6433 } 6434 } else if (normalizedTranslate >= normalizedGrid) { 6435 slideIndex = i; 6436 } 6437 } 6438 } 6439 // Directions locks 6440 if (swiper.initialized && slideIndex !== activeIndex) { 6441 if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) { 6442 return false;
vendor: 8,692 bytes, lines 6443-6692
6443 } 6444 if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { 6445 if ((activeIndex || 0) !== slideIndex) { 6446 return false; 6447 } 6448 } 6449 } 6450 if (slideIndex !== (previousIndex || 0) && runCallbacks) { 6451 swiper.emit('beforeSlideChangeStart'); 6452 } 6453 6454 // Update progress 6455 swiper.updateProgress(translate); 6456 let direction; 6457 if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; 6458 6459 // initial virtual 6460 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 6461 const isInitialVirtual = isVirtual && initial; 6462 // Update Index 6463 if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) { 6464 swiper.updateActiveIndex(slideIndex); 6465 // Update Height 6466 if (params.autoHeight) { 6467 swiper.updateAutoHeight(); 6468 } 6469 swiper.updateSlidesClasses(); 6470 if (params.effect !== 'slide') { 6471 swiper.setTranslate(translate); 6472 } 6473 if (direction !== 'reset') { 6474 swiper.transitionStart(runCallbacks, direction); 6475 swiper.transitionEnd(runCallbacks, direction); 6476 } 6477 return false; 6478 } 6479 if (params.cssMode) { 6480 const isH = swiper.isHorizontal(); 6481 const t = rtl ? translate : -translate; 6482 if (speed === 0) { 6483 if (isVirtual) { 6484 swiper.wrapperEl.style.scrollSnapType = 'none'; 6485 swiper._immediateVirtual = true; 6486 } 6487 if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) { 6488 swiper._cssModeVirtualInitialSet = true; 6489 requestAnimationFrame(() => { 6490 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; 6491 }); 6492 } else { 6493 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; 6494 } 6495 if (isVirtual) { 6496 requestAnimationFrame(() => { 6497 swiper.wrapperEl.style.scrollSnapType = ''; 6498 swiper._immediateVirtual = false; 6499 }); 6500 } 6501 } else { 6502 if (!swiper.support.smoothScroll) { 6503 animateCSSModeScroll({ 6504 swiper, 6505 targetPosition: t, 6506 side: isH ? 'left' : 'top' 6507 }); 6508 return true; 6509 } 6510 wrapperEl.scrollTo({ 6511 [isH ? 'left' : 'top']: t, 6512 behavior: 'smooth' 6513 }); 6514 } 6515 return true; 6516 } 6517 swiper.setTransition(speed); 6518 swiper.setTranslate(translate); 6519 swiper.updateActiveIndex(slideIndex); 6520 swiper.updateSlidesClasses(); 6521 swiper.emit('beforeTransitionStart', speed, internal); 6522 swiper.transitionStart(runCallbacks, direction); 6523 if (speed === 0) { 6524 swiper.transitionEnd(runCallbacks, direction); 6525 } else if (!swiper.animating) { 6526 swiper.animating = true; 6527 if (!swiper.onSlideToWrapperTransitionEnd) { 6528 swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) { 6529 if (!swiper || swiper.destroyed) return; 6530 if (e.target !== this) return; 6531 swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 6532 swiper.onSlideToWrapperTransitionEnd = null; 6533 delete swiper.onSlideToWrapperTransitionEnd; 6534 swiper.transitionEnd(runCallbacks, direction); 6535 }; 6536 } 6537 swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 6538 } 6539 return true; 6540} 6541 6542function slideToLoop(index, speed, runCallbacks, internal) { 6543 if (index === void 0) { 6544 index = 0; 6545 } 6546 if (runCallbacks === void 0) { 6547 runCallbacks = true; 6548 } 6549 if (typeof index === 'string') { 6550 const indexAsNumber = parseInt(index, 10); 6551 index = indexAsNumber; 6552 } 6553 const swiper = this; 6554 if (swiper.destroyed) return; 6555 if (typeof speed === 'undefined') { 6556 speed = swiper.params.speed; 6557 } 6558 const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1; 6559 let newIndex = index; 6560 if (swiper.params.loop) { 6561 if (swiper.virtual && swiper.params.virtual.enabled) { 6562 // eslint-disable-next-line 6563 newIndex = newIndex + swiper.virtual.slidesBefore; 6564 } else { 6565 let targetSlideIndex; 6566 if (gridEnabled) { 6567 const slideIndex = newIndex * swiper.params.grid.rows; 6568 targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; 6569 } else { 6570 targetSlideIndex = swiper.getSlideIndexByData(newIndex); 6571 } 6572 const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length; 6573 const { 6574 centeredSlides 6575 } = swiper.params; 6576 let slidesPerView = swiper.params.slidesPerView; 6577 if (slidesPerView === 'auto') { 6578 slidesPerView = swiper.slidesPerViewDynamic(); 6579 } else { 6580 slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10)); 6581 if (centeredSlides && slidesPerView % 2 === 0) { 6582 slidesPerView = slidesPerView + 1; 6583 } 6584 } 6585 let needLoopFix = cols - targetSlideIndex < slidesPerView; 6586 if (centeredSlides) { 6587 needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2); 6588 } 6589 if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) { 6590 needLoopFix = false; 6591 } 6592 if (needLoopFix) { 6593 const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev'; 6594 swiper.loopFix({ 6595 direction, 6596 slideTo: true, 6597 activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1, 6598 slideRealIndex: direction === 'next' ? swiper.realIndex : undefined 6599 }); 6600 } 6601 if (gridEnabled) { 6602 const slideIndex = newIndex * swiper.params.grid.rows; 6603 newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; 6604 } else { 6605 newIndex = swiper.getSlideIndexByData(newIndex); 6606 } 6607 } 6608 } 6609 requestAnimationFrame(() => { 6610 swiper.slideTo(newIndex, speed, runCallbacks, internal); 6611 }); 6612 return swiper; 6613} 6614 6615/* eslint no-unused-vars: "off" */ 6616function slideNext(speed, runCallbacks, internal) { 6617 if (runCallbacks === void 0) { 6618 runCallbacks = true; 6619 } 6620 const swiper = this; 6621 const { 6622 enabled, 6623 params, 6624 animating 6625 } = swiper; 6626 if (!enabled || swiper.destroyed) return swiper; 6627 if (typeof speed === 'undefined') { 6628 speed = swiper.params.speed; 6629 } 6630 let perGroup = params.slidesPerGroup; 6631 if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { 6632 perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1); 6633 } 6634 const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup; 6635 const isVirtual = swiper.virtual && params.virtual.enabled; 6636 if (params.loop) { 6637 if (animating && !isVirtual && params.loopPreventsSliding) return false; 6638 swiper.loopFix({ 6639 direction: 'next' 6640 }); 6641 // eslint-disable-next-line 6642 swiper._clientLeft = swiper.wrapperEl.clientLeft; 6643 if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) { 6644 requestAnimationFrame(() => { 6645 swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); 6646 }); 6647 return true; 6648 } 6649 } 6650 if (params.rewind && swiper.isEnd) { 6651 return swiper.slideTo(0, speed, runCallbacks, internal); 6652 } 6653 return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); 6654} 6655 6656/* eslint no-unused-vars: "off" */ 6657function slidePrev(speed, runCallbacks, internal) { 6658 if (runCallbacks === void 0) { 6659 runCallbacks = true; 6660 } 6661 const swiper = this; 6662 const { 6663 params, 6664 snapGrid, 6665 slidesGrid, 6666 rtlTranslate, 6667 enabled, 6668 animating 6669 } = swiper; 6670 if (!enabled || swiper.destroyed) return swiper; 6671 if (typeof speed === 'undefined') { 6672 speed = swiper.params.speed; 6673 } 6674 const isVirtual = swiper.virtual && params.virtual.enabled; 6675 if (params.loop) { 6676 if (animating && !isVirtual && params.loopPreventsSliding) return false; 6677 swiper.loopFix({ 6678 direction: 'prev' 6679 }); 6680 // eslint-disable-next-line 6681 swiper._clientLeft = swiper.wrapperEl.clientLeft; 6682 } 6683 const translate = rtlTranslate ? swiper.translate : -swiper.translate; 6684 function normalize(val) { 6685 if (val < 0) return -Math.floor(Math.abs(val)); 6686 return Math.floor(val); 6687 } 6688 const normalizedTranslate = normalize(translate); 6689 const normalizedSnapGrid = snapGrid.map(val => normalize(val)); 6690 let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; 6691 if (typeof prevSnap === 'undefined' && params.cssMode) { 6692 let prevSnapIndex;
vendor: 10,284 bytes, lines 6693-6956
6693 snapGrid.forEach((snap, snapIndex) => { 6694 if (normalizedTranslate >= snap) { 6695 // prevSnap = snap; 6696 prevSnapIndex = snapIndex; 6697 } 6698 }); 6699 if (typeof prevSnapIndex !== 'undefined') { 6700 prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex]; 6701 } 6702 } 6703 let prevIndex = 0; 6704 if (typeof prevSnap !== 'undefined') { 6705 prevIndex = slidesGrid.indexOf(prevSnap); 6706 if (prevIndex < 0) prevIndex = swiper.activeIndex - 1; 6707 if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { 6708 prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1; 6709 prevIndex = Math.max(prevIndex, 0); 6710 } 6711 } 6712 if (params.rewind && swiper.isBeginning) { 6713 const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; 6714 return swiper.slideTo(lastIndex, speed, runCallbacks, internal); 6715 } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) { 6716 requestAnimationFrame(() => { 6717 swiper.slideTo(prevIndex, speed, runCallbacks, internal); 6718 }); 6719 return true; 6720 } 6721 return swiper.slideTo(prevIndex, speed, runCallbacks, internal); 6722} 6723 6724/* eslint no-unused-vars: "off" */ 6725function slideReset(speed, runCallbacks, internal) { 6726 if (runCallbacks === void 0) { 6727 runCallbacks = true; 6728 } 6729 const swiper = this; 6730 if (swiper.destroyed) return; 6731 if (typeof speed === 'undefined') { 6732 speed = swiper.params.speed; 6733 } 6734 return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); 6735} 6736 6737/* eslint no-unused-vars: "off" */ 6738function slideToClosest(speed, runCallbacks, internal, threshold) { 6739 if (runCallbacks === void 0) { 6740 runCallbacks = true; 6741 } 6742 if (threshold === void 0) { 6743 threshold = 0.5; 6744 } 6745 const swiper = this; 6746 if (swiper.destroyed) return; 6747 if (typeof speed === 'undefined') { 6748 speed = swiper.params.speed; 6749 } 6750 let index = swiper.activeIndex; 6751 const skip = Math.min(swiper.params.slidesPerGroupSkip, index); 6752 const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup); 6753 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 6754 if (translate >= swiper.snapGrid[snapIndex]) { 6755 // The current translate is on or after the current snap index, so the choice 6756 // is between the current index and the one after it. 6757 const currentSnap = swiper.snapGrid[snapIndex]; 6758 const nextSnap = swiper.snapGrid[snapIndex + 1]; 6759 if (translate - currentSnap > (nextSnap - currentSnap) * threshold) { 6760 index += swiper.params.slidesPerGroup; 6761 } 6762 } else { 6763 // The current translate is before the current snap index, so the choice 6764 // is between the current index and the one before it. 6765 const prevSnap = swiper.snapGrid[snapIndex - 1]; 6766 const currentSnap = swiper.snapGrid[snapIndex]; 6767 if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) { 6768 index -= swiper.params.slidesPerGroup; 6769 } 6770 } 6771 index = Math.max(index, 0); 6772 index = Math.min(index, swiper.slidesGrid.length - 1); 6773 return swiper.slideTo(index, speed, runCallbacks, internal); 6774} 6775 6776function slideToClickedSlide() { 6777 const swiper = this; 6778 if (swiper.destroyed) return; 6779 const { 6780 params, 6781 slidesEl 6782 } = swiper; 6783 const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; 6784 let slideToIndex = swiper.clickedIndex; 6785 let realIndex; 6786 const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`; 6787 if (params.loop) { 6788 if (swiper.animating) return; 6789 realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); 6790 if (params.centeredSlides) { 6791 if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) { 6792 swiper.loopFix(); 6793 slideToIndex = swiper.getSlideIndex(utils_elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); 6794 utils_nextTick(() => { 6795 swiper.slideTo(slideToIndex); 6796 }); 6797 } else { 6798 swiper.slideTo(slideToIndex); 6799 } 6800 } else if (slideToIndex > swiper.slides.length - slidesPerView) { 6801 swiper.loopFix(); 6802 slideToIndex = swiper.getSlideIndex(utils_elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); 6803 utils_nextTick(() => { 6804 swiper.slideTo(slideToIndex); 6805 }); 6806 } else { 6807 swiper.slideTo(slideToIndex); 6808 } 6809 } else { 6810 swiper.slideTo(slideToIndex); 6811 } 6812} 6813 6814var slide = { 6815 slideTo, 6816 slideToLoop, 6817 slideNext, 6818 slidePrev, 6819 slideReset, 6820 slideToClosest, 6821 slideToClickedSlide 6822}; 6823 6824function loopCreate(slideRealIndex) { 6825 const swiper = this; 6826 const { 6827 params, 6828 slidesEl 6829 } = swiper; 6830 if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; 6831 const initSlides = () => { 6832 const slides = utils_elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); 6833 slides.forEach((el, index) => { 6834 el.setAttribute('data-swiper-slide-index', index); 6835 }); 6836 }; 6837 const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; 6838 const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1); 6839 const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0; 6840 const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0; 6841 const addBlankSlides = amountOfSlides => { 6842 for (let i = 0; i < amountOfSlides; i += 1) { 6843 const slideEl = swiper.isElement ? utils_createElement('swiper-slide', [params.slideBlankClass]) : utils_createElement('div', [params.slideClass, params.slideBlankClass]); 6844 swiper.slidesEl.append(slideEl); 6845 } 6846 }; 6847 if (shouldFillGroup) { 6848 if (params.loopAddBlankSlides) { 6849 const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup; 6850 addBlankSlides(slidesToAdd); 6851 swiper.recalcSlides(); 6852 swiper.updateSlides(); 6853 } else { 6854 showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); 6855 } 6856 initSlides(); 6857 } else if (shouldFillGrid) { 6858 if (params.loopAddBlankSlides) { 6859 const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows; 6860 addBlankSlides(slidesToAdd); 6861 swiper.recalcSlides(); 6862 swiper.updateSlides(); 6863 } else { 6864 showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); 6865 } 6866 initSlides(); 6867 } else { 6868 initSlides(); 6869 } 6870 swiper.loopFix({ 6871 slideRealIndex, 6872 direction: params.centeredSlides ? undefined : 'next' 6873 }); 6874} 6875 6876function loopFix(_temp) { 6877 let { 6878 slideRealIndex, 6879 slideTo = true, 6880 direction, 6881 setTranslate, 6882 activeSlideIndex, 6883 byController, 6884 byMousewheel 6885 } = _temp === void 0 ? {} : _temp; 6886 const swiper = this; 6887 if (!swiper.params.loop) return; 6888 swiper.emit('beforeLoopFix'); 6889 const { 6890 slides, 6891 allowSlidePrev, 6892 allowSlideNext, 6893 slidesEl, 6894 params 6895 } = swiper; 6896 const { 6897 centeredSlides 6898 } = params; 6899 swiper.allowSlidePrev = true; 6900 swiper.allowSlideNext = true; 6901 if (swiper.virtual && params.virtual.enabled) { 6902 if (slideTo) { 6903 if (!params.centeredSlides && swiper.snapIndex === 0) { 6904 swiper.slideTo(swiper.virtual.slides.length, 0, false, true); 6905 } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) { 6906 swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true); 6907 } else if (swiper.snapIndex === swiper.snapGrid.length - 1) { 6908 swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true); 6909 } 6910 } 6911 swiper.allowSlidePrev = allowSlidePrev; 6912 swiper.allowSlideNext = allowSlideNext; 6913 swiper.emit('loopFix'); 6914 return; 6915 } 6916 let slidesPerView = params.slidesPerView; 6917 if (slidesPerView === 'auto') { 6918 slidesPerView = swiper.slidesPerViewDynamic(); 6919 } else { 6920 slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10)); 6921 if (centeredSlides && slidesPerView % 2 === 0) { 6922 slidesPerView = slidesPerView + 1; 6923 } 6924 } 6925 const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup; 6926 let loopedSlides = slidesPerGroup; 6927 if (loopedSlides % slidesPerGroup !== 0) { 6928 loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup; 6929 } 6930 loopedSlides += params.loopAdditionalSlides; 6931 swiper.loopedSlides = loopedSlides; 6932 const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; 6933 if (slides.length < slidesPerView + loopedSlides) { 6934 showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters'); 6935 } else if (gridEnabled && params.grid.fill === 'row') { 6936 showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`'); 6937 } 6938 const prependSlidesIndexes = []; 6939 const appendSlidesIndexes = []; 6940 let activeIndex = swiper.activeIndex; 6941 if (typeof activeSlideIndex === 'undefined') { 6942 activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]); 6943 } else { 6944 activeIndex = activeSlideIndex; 6945 } 6946 const isNext = direction === 'next' || !direction; 6947 const isPrev = direction === 'prev' || !direction; 6948 let slidesPrepended = 0; 6949 let slidesAppended = 0; 6950 const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length; 6951 const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex; 6952 const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0); 6953 // prepend last slides before start 6954 if (activeColIndexWithShift < loopedSlides) { 6955 slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup); 6956 for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {
vendor: 5,179 bytes, lines 6957-7089
6957 const index = i - Math.floor(i / cols) * cols; 6958 if (gridEnabled) { 6959 const colIndexToPrepend = cols - index - 1; 6960 for (let i = slides.length - 1; i >= 0; i -= 1) { 6961 if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i); 6962 } 6963 // slides.forEach((slide, slideIndex) => { 6964 // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex); 6965 // }); 6966 } else { 6967 prependSlidesIndexes.push(cols - index - 1); 6968 } 6969 } 6970 } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) { 6971 slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup); 6972 for (let i = 0; i < slidesAppended; i += 1) { 6973 const index = i - Math.floor(i / cols) * cols; 6974 if (gridEnabled) { 6975 slides.forEach((slide, slideIndex) => { 6976 if (slide.column === index) appendSlidesIndexes.push(slideIndex); 6977 }); 6978 } else { 6979 appendSlidesIndexes.push(index); 6980 } 6981 } 6982 } 6983 swiper.__preventObserver__ = true; 6984 requestAnimationFrame(() => { 6985 swiper.__preventObserver__ = false; 6986 }); 6987 if (isPrev) { 6988 prependSlidesIndexes.forEach(index => { 6989 slides[index].swiperLoopMoveDOM = true; 6990 slidesEl.prepend(slides[index]); 6991 slides[index].swiperLoopMoveDOM = false; 6992 }); 6993 } 6994 if (isNext) { 6995 appendSlidesIndexes.forEach(index => { 6996 slides[index].swiperLoopMoveDOM = true; 6997 slidesEl.append(slides[index]); 6998 slides[index].swiperLoopMoveDOM = false; 6999 }); 7000 } 7001 swiper.recalcSlides(); 7002 if (params.slidesPerView === 'auto') { 7003 swiper.updateSlides(); 7004 } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) { 7005 swiper.slides.forEach((slide, slideIndex) => { 7006 swiper.grid.updateSlide(slideIndex, slide, swiper.slides); 7007 }); 7008 } 7009 if (params.watchSlidesProgress) { 7010 swiper.updateSlidesOffset(); 7011 } 7012 if (slideTo) { 7013 if (prependSlidesIndexes.length > 0 && isPrev) { 7014 if (typeof slideRealIndex === 'undefined') { 7015 const currentSlideTranslate = swiper.slidesGrid[activeIndex]; 7016 const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended]; 7017 const diff = newSlideTranslate - currentSlideTranslate; 7018 if (byMousewheel) { 7019 swiper.setTranslate(swiper.translate - diff); 7020 } else { 7021 swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true); 7022 if (setTranslate) { 7023 swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; 7024 swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; 7025 } 7026 } 7027 } else { 7028 if (setTranslate) { 7029 const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length; 7030 swiper.slideTo(swiper.activeIndex + shift, 0, false, true); 7031 swiper.touchEventsData.currentTranslate = swiper.translate; 7032 } 7033 } 7034 } else if (appendSlidesIndexes.length > 0 && isNext) { 7035 if (typeof slideRealIndex === 'undefined') { 7036 const currentSlideTranslate = swiper.slidesGrid[activeIndex]; 7037 const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended]; 7038 const diff = newSlideTranslate - currentSlideTranslate; 7039 if (byMousewheel) { 7040 swiper.setTranslate(swiper.translate - diff); 7041 } else { 7042 swiper.slideTo(activeIndex - slidesAppended, 0, false, true); 7043 if (setTranslate) { 7044 swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; 7045 swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; 7046 } 7047 } 7048 } else { 7049 const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length; 7050 swiper.slideTo(swiper.activeIndex - shift, 0, false, true); 7051 } 7052 } 7053 } 7054 swiper.allowSlidePrev = allowSlidePrev; 7055 swiper.allowSlideNext = allowSlideNext; 7056 if (swiper.controller && swiper.controller.control && !byController) { 7057 const loopParams = { 7058 slideRealIndex, 7059 direction, 7060 setTranslate, 7061 activeSlideIndex, 7062 byController: true 7063 }; 7064 if (Array.isArray(swiper.controller.control)) { 7065 swiper.controller.control.forEach(c => { 7066 if (!c.destroyed && c.params.loop) c.loopFix({ 7067 ...loopParams, 7068 slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false 7069 }); 7070 }); 7071 } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) { 7072 swiper.controller.control.loopFix({ 7073 ...loopParams, 7074 slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false 7075 }); 7076 } 7077 } 7078 swiper.emit('loopFix'); 7079} 7080 7081function loopDestroy() { 7082 const swiper = this; 7083 const { 7084 params, 7085 slidesEl 7086 } = swiper; 7087 if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; 7088 swiper.recalcSlides(); 7089 const newSlidesOrder = [];
vendor: 5,446 bytes, lines 7090-7260
7090 swiper.slides.forEach(slideEl => { 7091 const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex; 7092 newSlidesOrder[index] = slideEl; 7093 }); 7094 swiper.slides.forEach(slideEl => { 7095 slideEl.removeAttribute('data-swiper-slide-index'); 7096 }); 7097 newSlidesOrder.forEach(slideEl => { 7098 slidesEl.append(slideEl); 7099 }); 7100 swiper.recalcSlides(); 7101 swiper.slideTo(swiper.realIndex, 0); 7102} 7103 7104var loop = { 7105 loopCreate, 7106 loopFix, 7107 loopDestroy 7108}; 7109 7110function setGrabCursor(moving) { 7111 const swiper = this; 7112 if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return; 7113 const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl; 7114 if (swiper.isElement) { 7115 swiper.__preventObserver__ = true; 7116 } 7117 el.style.cursor = 'move'; 7118 el.style.cursor = moving ? 'grabbing' : 'grab'; 7119 if (swiper.isElement) { 7120 requestAnimationFrame(() => { 7121 swiper.__preventObserver__ = false; 7122 }); 7123 } 7124} 7125 7126function unsetGrabCursor() { 7127 const swiper = this; 7128 if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) { 7129 return; 7130 } 7131 if (swiper.isElement) { 7132 swiper.__preventObserver__ = true; 7133 } 7134 swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = ''; 7135 if (swiper.isElement) { 7136 requestAnimationFrame(() => { 7137 swiper.__preventObserver__ = false; 7138 }); 7139 } 7140} 7141 7142var grabCursor = { 7143 setGrabCursor, 7144 unsetGrabCursor 7145}; 7146 7147// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd 7148function closestElement(selector, base) { 7149 if (base === void 0) { 7150 base = this; 7151 } 7152 function __closestFrom(el) { 7153 if (!el || el === ssr_window_esm_getDocument() || el === ssr_window_esm_getWindow()) return null; 7154 if (el.assignedSlot) el = el.assignedSlot; 7155 const found = el.closest(selector); 7156 if (!found && !el.getRootNode) { 7157 return null; 7158 } 7159 return found || __closestFrom(el.getRootNode().host); 7160 } 7161 return __closestFrom(base); 7162} 7163function preventEdgeSwipe(swiper, event, startX) { 7164 const window = ssr_window_esm_getWindow(); 7165 const { 7166 params 7167 } = swiper; 7168 const edgeSwipeDetection = params.edgeSwipeDetection; 7169 const edgeSwipeThreshold = params.edgeSwipeThreshold; 7170 if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) { 7171 if (edgeSwipeDetection === 'prevent') { 7172 event.preventDefault(); 7173 return true; 7174 } 7175 return false; 7176 } 7177 return true; 7178} 7179function onTouchStart(event) { 7180 const swiper = this; 7181 const document = ssr_window_esm_getDocument(); 7182 let e = event; 7183 if (e.originalEvent) e = e.originalEvent; 7184 const data = swiper.touchEventsData; 7185 if (e.type === 'pointerdown') { 7186 if (data.pointerId !== null && data.pointerId !== e.pointerId) { 7187 return; 7188 } 7189 data.pointerId = e.pointerId; 7190 } else if (e.type === 'touchstart' && e.targetTouches.length === 1) { 7191 data.touchId = e.targetTouches[0].identifier; 7192 } 7193 if (e.type === 'touchstart') { 7194 // don't proceed touch event 7195 preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX); 7196 return; 7197 } 7198 const { 7199 params, 7200 touches, 7201 enabled 7202 } = swiper; 7203 if (!enabled) return; 7204 if (!params.simulateTouch && e.pointerType === 'mouse') return; 7205 if (swiper.animating && params.preventInteractionOnTransition) { 7206 return; 7207 } 7208 if (!swiper.animating && params.cssMode && params.loop) { 7209 swiper.loopFix(); 7210 } 7211 let targetEl = e.target; 7212 if (params.touchEventsTarget === 'wrapper') { 7213 if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return; 7214 } 7215 if ('which' in e && e.which === 3) return; 7216 if ('button' in e && e.button > 0) return; 7217 if (data.isTouched && data.isMoved) return; 7218 7219 // change target el for shadow root component 7220 const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; 7221 // eslint-disable-next-line 7222 const eventPath = e.composedPath ? e.composedPath() : e.path; 7223 if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) { 7224 targetEl = eventPath[0]; 7225 } 7226 const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`; 7227 const isTargetShadow = !!(e.target && e.target.shadowRoot); 7228 7229 // use closestElement for shadow root element to get the actual closest for nested shadow root element 7230 if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) { 7231 swiper.allowClick = true; 7232 return; 7233 } 7234 if (params.swipeHandler) { 7235 if (!targetEl.closest(params.swipeHandler)) return; 7236 } 7237 touches.currentX = e.pageX; 7238 touches.currentY = e.pageY; 7239 const startX = touches.currentX; 7240 const startY = touches.currentY; 7241 7242 // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore 7243 7244 if (!preventEdgeSwipe(swiper, e, startX)) { 7245 return; 7246 } 7247 Object.assign(data, { 7248 isTouched: true, 7249 isMoved: false, 7250 allowTouchCallbacks: true, 7251 isScrolling: undefined, 7252 startMoving: undefined 7253 }); 7254 touches.startX = startX; 7255 touches.startY = startY; 7256 data.touchStartTime = utils_now(); 7257 swiper.allowClick = true; 7258 swiper.updateSize(); 7259 swiper.swipeDirection = undefined; 7260 if (params.threshold > 0) data.allowThresholdMove = false;
vendor: 4,615 bytes, lines 7261-7388
7261 let preventDefault = true; 7262 if (targetEl.matches(data.focusableElements)) { 7263 preventDefault = false; 7264 if (targetEl.nodeName === 'SELECT') { 7265 data.isTouched = false; 7266 } 7267 } 7268 if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) { 7269 document.activeElement.blur(); 7270 } 7271 const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; 7272 if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) { 7273 e.preventDefault(); 7274 } 7275 if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) { 7276 swiper.freeMode.onTouchStart(); 7277 } 7278 swiper.emit('touchStart', e); 7279} 7280 7281function onTouchMove(event) { 7282 const document = ssr_window_esm_getDocument(); 7283 const swiper = this; 7284 const data = swiper.touchEventsData; 7285 const { 7286 params, 7287 touches, 7288 rtlTranslate: rtl, 7289 enabled 7290 } = swiper; 7291 if (!enabled) return; 7292 if (!params.simulateTouch && event.pointerType === 'mouse') return; 7293 let e = event; 7294 if (e.originalEvent) e = e.originalEvent; 7295 if (e.type === 'pointermove') { 7296 if (data.touchId !== null) return; // return from pointer if we use touch 7297 const id = e.pointerId; 7298 if (id !== data.pointerId) return; 7299 } 7300 let targetTouch; 7301 if (e.type === 'touchmove') { 7302 targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]; 7303 if (!targetTouch || targetTouch.identifier !== data.touchId) return; 7304 } else { 7305 targetTouch = e; 7306 } 7307 if (!data.isTouched) { 7308 if (data.startMoving && data.isScrolling) { 7309 swiper.emit('touchMoveOpposite', e); 7310 } 7311 return; 7312 } 7313 const pageX = targetTouch.pageX; 7314 const pageY = targetTouch.pageY; 7315 if (e.preventedByNestedSwiper) { 7316 touches.startX = pageX; 7317 touches.startY = pageY; 7318 return; 7319 } 7320 if (!swiper.allowTouchMove) { 7321 if (!e.target.matches(data.focusableElements)) { 7322 swiper.allowClick = false; 7323 } 7324 if (data.isTouched) { 7325 Object.assign(touches, { 7326 startX: pageX, 7327 startY: pageY, 7328 currentX: pageX, 7329 currentY: pageY 7330 }); 7331 data.touchStartTime = utils_now(); 7332 } 7333 return; 7334 } 7335 if (params.touchReleaseOnEdges && !params.loop) { 7336 if (swiper.isVertical()) { 7337 // Vertical 7338 if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) { 7339 data.isTouched = false; 7340 data.isMoved = false; 7341 return; 7342 } 7343 } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) { 7344 return; 7345 } 7346 } 7347 if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') { 7348 document.activeElement.blur(); 7349 } 7350 if (document.activeElement) { 7351 if (e.target === document.activeElement && e.target.matches(data.focusableElements)) { 7352 data.isMoved = true; 7353 swiper.allowClick = false; 7354 return; 7355 } 7356 } 7357 if (data.allowTouchCallbacks) { 7358 swiper.emit('touchMove', e); 7359 } 7360 touches.previousX = touches.currentX; 7361 touches.previousY = touches.currentY; 7362 touches.currentX = pageX; 7363 touches.currentY = pageY; 7364 const diffX = touches.currentX - touches.startX; 7365 const diffY = touches.currentY - touches.startY; 7366 if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return; 7367 if (typeof data.isScrolling === 'undefined') { 7368 let touchAngle; 7369 if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) { 7370 data.isScrolling = false; 7371 } else { 7372 // eslint-disable-next-line 7373 if (diffX * diffX + diffY * diffY >= 25) { 7374 touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI; 7375 data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle; 7376 } 7377 } 7378 } 7379 if (data.isScrolling) { 7380 swiper.emit('touchMoveOpposite', e); 7381 } 7382 if (typeof data.startMoving === 'undefined') { 7383 if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { 7384 data.startMoving = true; 7385 } 7386 } 7387 if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) { 7388 data.isTouched = false;
vendor: 7,261 bytes, lines 7389-7581
7389 return; 7390 } 7391 if (!data.startMoving) { 7392 return; 7393 } 7394 swiper.allowClick = false; 7395 if (!params.cssMode && e.cancelable) { 7396 e.preventDefault(); 7397 } 7398 if (params.touchMoveStopPropagation && !params.nested) { 7399 e.stopPropagation(); 7400 } 7401 let diff = swiper.isHorizontal() ? diffX : diffY; 7402 let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY; 7403 if (params.oneWayMovement) { 7404 diff = Math.abs(diff) * (rtl ? 1 : -1); 7405 touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1); 7406 } 7407 touches.diff = diff; 7408 diff *= params.touchRatio; 7409 if (rtl) { 7410 diff = -diff; 7411 touchesDiff = -touchesDiff; 7412 } 7413 const prevTouchesDirection = swiper.touchesDirection; 7414 swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; 7415 swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next'; 7416 const isLoop = swiper.params.loop && !params.cssMode; 7417 const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev; 7418 if (!data.isMoved) { 7419 if (isLoop && allowLoopFix) { 7420 swiper.loopFix({ 7421 direction: swiper.swipeDirection 7422 }); 7423 } 7424 data.startTranslate = swiper.getTranslate(); 7425 swiper.setTransition(0); 7426 if (swiper.animating) { 7427 const evt = new window.CustomEvent('transitionend', { 7428 bubbles: true, 7429 cancelable: true, 7430 detail: { 7431 bySwiperTouchMove: true 7432 } 7433 }); 7434 swiper.wrapperEl.dispatchEvent(evt); 7435 } 7436 data.allowMomentumBounce = false; 7437 // Grab Cursor 7438 if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 7439 swiper.setGrabCursor(true); 7440 } 7441 swiper.emit('sliderFirstMove', e); 7442 } 7443 let loopFixed; 7444 new Date().getTime(); 7445 if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) { 7446 Object.assign(touches, { 7447 startX: pageX, 7448 startY: pageY, 7449 currentX: pageX, 7450 currentY: pageY, 7451 startTranslate: data.currentTranslate 7452 }); 7453 data.loopSwapReset = true; 7454 data.startTranslate = data.currentTranslate; 7455 return; 7456 } 7457 swiper.emit('sliderMove', e); 7458 data.isMoved = true; 7459 data.currentTranslate = diff + data.startTranslate; 7460 let disableParentSwiper = true; 7461 let resistanceRatio = params.resistanceRatio; 7462 if (params.touchReleaseOnEdges) { 7463 resistanceRatio = 0; 7464 } 7465 if (diff > 0) { 7466 if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) { 7467 swiper.loopFix({ 7468 direction: 'prev', 7469 setTranslate: true, 7470 activeSlideIndex: 0 7471 }); 7472 } 7473 if (data.currentTranslate > swiper.minTranslate()) { 7474 disableParentSwiper = false; 7475 if (params.resistance) { 7476 data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio; 7477 } 7478 } 7479 } else if (diff < 0) { 7480 if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) { 7481 swiper.loopFix({ 7482 direction: 'next', 7483 setTranslate: true, 7484 activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10))) 7485 }); 7486 } 7487 if (data.currentTranslate < swiper.maxTranslate()) { 7488 disableParentSwiper = false; 7489 if (params.resistance) { 7490 data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio; 7491 } 7492 } 7493 } 7494 if (disableParentSwiper) { 7495 e.preventedByNestedSwiper = true; 7496 } 7497 7498 // Directions locks 7499 if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { 7500 data.currentTranslate = data.startTranslate; 7501 } 7502 if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { 7503 data.currentTranslate = data.startTranslate; 7504 } 7505 if (!swiper.allowSlidePrev && !swiper.allowSlideNext) { 7506 data.currentTranslate = data.startTranslate; 7507 } 7508 7509 // Threshold 7510 if (params.threshold > 0) { 7511 if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { 7512 if (!data.allowThresholdMove) { 7513 data.allowThresholdMove = true; 7514 touches.startX = touches.currentX; 7515 touches.startY = touches.currentY; 7516 data.currentTranslate = data.startTranslate; 7517 touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; 7518 return; 7519 } 7520 } else { 7521 data.currentTranslate = data.startTranslate; 7522 return; 7523 } 7524 } 7525 if (!params.followFinger || params.cssMode) return; 7526 7527 // Update active index in free mode 7528 if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) { 7529 swiper.updateActiveIndex(); 7530 swiper.updateSlidesClasses(); 7531 } 7532 if (params.freeMode && params.freeMode.enabled && swiper.freeMode) { 7533 swiper.freeMode.onTouchMove(); 7534 } 7535 // Update progress 7536 swiper.updateProgress(data.currentTranslate); 7537 // Update translate 7538 swiper.setTranslate(data.currentTranslate); 7539} 7540 7541function onTouchEnd(event) { 7542 const swiper = this; 7543 const data = swiper.touchEventsData; 7544 let e = event; 7545 if (e.originalEvent) e = e.originalEvent; 7546 let targetTouch; 7547 const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel'; 7548 if (!isTouchEvent) { 7549 if (data.touchId !== null) return; // return from pointer if we use touch 7550 if (e.pointerId !== data.pointerId) return; 7551 targetTouch = e; 7552 } else { 7553 targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]; 7554 if (!targetTouch || targetTouch.identifier !== data.touchId) return; 7555 } 7556 if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) { 7557 const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView); 7558 if (!proceed) { 7559 return; 7560 } 7561 } 7562 data.pointerId = null; 7563 data.touchId = null; 7564 const { 7565 params, 7566 touches, 7567 rtlTranslate: rtl, 7568 slidesGrid, 7569 enabled 7570 } = swiper; 7571 if (!enabled) return; 7572 if (!params.simulateTouch && e.pointerType === 'mouse') return; 7573 if (data.allowTouchCallbacks) { 7574 swiper.emit('touchEnd', e); 7575 } 7576 data.allowTouchCallbacks = false; 7577 if (!data.isTouched) { 7578 if (data.isMoved && params.grabCursor) { 7579 swiper.setGrabCursor(false); 7580 } 7581 data.isMoved = false;
vendor: 4,404 bytes, lines 7582-7708
7582 data.startMoving = false; 7583 return; 7584 } 7585 7586 // Return Grab Cursor 7587 if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 7588 swiper.setGrabCursor(false); 7589 } 7590 7591 // Time diff 7592 const touchEndTime = utils_now(); 7593 const timeDiff = touchEndTime - data.touchStartTime; 7594 7595 // Tap, doubleTap, Click 7596 if (swiper.allowClick) { 7597 const pathTree = e.path || e.composedPath && e.composedPath(); 7598 swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree); 7599 swiper.emit('tap click', e); 7600 if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) { 7601 swiper.emit('doubleTap doubleClick', e); 7602 } 7603 } 7604 data.lastClickTime = utils_now(); 7605 utils_nextTick(() => { 7606 if (!swiper.destroyed) swiper.allowClick = true; 7607 }); 7608 if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) { 7609 data.isTouched = false; 7610 data.isMoved = false; 7611 data.startMoving = false; 7612 return; 7613 } 7614 data.isTouched = false; 7615 data.isMoved = false; 7616 data.startMoving = false; 7617 let currentPos; 7618 if (params.followFinger) { 7619 currentPos = rtl ? swiper.translate : -swiper.translate; 7620 } else { 7621 currentPos = -data.currentTranslate; 7622 } 7623 if (params.cssMode) { 7624 return; 7625 } 7626 if (params.freeMode && params.freeMode.enabled) { 7627 swiper.freeMode.onTouchEnd({ 7628 currentPos 7629 }); 7630 return; 7631 } 7632 7633 // Find current slide 7634 const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop; 7635 let stopIndex = 0; 7636 let groupSize = swiper.slidesSizesGrid[0]; 7637 for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) { 7638 const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 7639 if (typeof slidesGrid[i + increment] !== 'undefined') { 7640 if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) { 7641 stopIndex = i; 7642 groupSize = slidesGrid[i + increment] - slidesGrid[i]; 7643 } 7644 } else if (swipeToLast || currentPos >= slidesGrid[i]) { 7645 stopIndex = i; 7646 groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; 7647 } 7648 } 7649 let rewindFirstIndex = null; 7650 let rewindLastIndex = null; 7651 if (params.rewind) { 7652 if (swiper.isBeginning) { 7653 rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; 7654 } else if (swiper.isEnd) { 7655 rewindFirstIndex = 0; 7656 } 7657 } 7658 // Find current slide size 7659 const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; 7660 const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 7661 if (timeDiff > params.longSwipesMs) { 7662 // Long touches 7663 if (!params.longSwipes) { 7664 swiper.slideTo(swiper.activeIndex); 7665 return; 7666 } 7667 if (swiper.swipeDirection === 'next') { 7668 if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex); 7669 } 7670 if (swiper.swipeDirection === 'prev') { 7671 if (ratio > 1 - params.longSwipesRatio) { 7672 swiper.slideTo(stopIndex + increment); 7673 } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) { 7674 swiper.slideTo(rewindLastIndex); 7675 } else { 7676 swiper.slideTo(stopIndex); 7677 } 7678 } 7679 } else { 7680 // Short swipes 7681 if (!params.shortSwipes) { 7682 swiper.slideTo(swiper.activeIndex); 7683 return; 7684 } 7685 const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl); 7686 if (!isNavButtonTarget) { 7687 if (swiper.swipeDirection === 'next') { 7688 swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment); 7689 } 7690 if (swiper.swipeDirection === 'prev') { 7691 swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex); 7692 } 7693 } else if (e.target === swiper.navigation.nextEl) { 7694 swiper.slideTo(stopIndex + increment); 7695 } else { 7696 swiper.slideTo(stopIndex); 7697 } 7698 } 7699} 7700 7701function onResize() { 7702 const swiper = this; 7703 const { 7704 params, 7705 el 7706 } = swiper; 7707 if (el && el.offsetWidth === 0) return; 7708
vendor: 6,099 bytes, lines 7709-7928
7709 // Breakpoints 7710 if (params.breakpoints) { 7711 swiper.setBreakpoint(); 7712 } 7713 7714 // Save locks 7715 const { 7716 allowSlideNext, 7717 allowSlidePrev, 7718 snapGrid 7719 } = swiper; 7720 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 7721 7722 // Disable locks on resize 7723 swiper.allowSlideNext = true; 7724 swiper.allowSlidePrev = true; 7725 swiper.updateSize(); 7726 swiper.updateSlides(); 7727 swiper.updateSlidesClasses(); 7728 const isVirtualLoop = isVirtual && params.loop; 7729 if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) { 7730 swiper.slideTo(swiper.slides.length - 1, 0, false, true); 7731 } else { 7732 if (swiper.params.loop && !isVirtual) { 7733 swiper.slideToLoop(swiper.realIndex, 0, false, true); 7734 } else { 7735 swiper.slideTo(swiper.activeIndex, 0, false, true); 7736 } 7737 } 7738 if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { 7739 clearTimeout(swiper.autoplay.resizeTimeout); 7740 swiper.autoplay.resizeTimeout = setTimeout(() => { 7741 if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { 7742 swiper.autoplay.resume(); 7743 } 7744 }, 500); 7745 } 7746 // Return locks after resize 7747 swiper.allowSlidePrev = allowSlidePrev; 7748 swiper.allowSlideNext = allowSlideNext; 7749 if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { 7750 swiper.checkOverflow(); 7751 } 7752} 7753 7754function onClick(e) { 7755 const swiper = this; 7756 if (!swiper.enabled) return; 7757 if (!swiper.allowClick) { 7758 if (swiper.params.preventClicks) e.preventDefault(); 7759 if (swiper.params.preventClicksPropagation && swiper.animating) { 7760 e.stopPropagation(); 7761 e.stopImmediatePropagation(); 7762 } 7763 } 7764} 7765 7766function onScroll() { 7767 const swiper = this; 7768 const { 7769 wrapperEl, 7770 rtlTranslate, 7771 enabled 7772 } = swiper; 7773 if (!enabled) return; 7774 swiper.previousTranslate = swiper.translate; 7775 if (swiper.isHorizontal()) { 7776 swiper.translate = -wrapperEl.scrollLeft; 7777 } else { 7778 swiper.translate = -wrapperEl.scrollTop; 7779 } 7780 // eslint-disable-next-line 7781 if (swiper.translate === 0) swiper.translate = 0; 7782 swiper.updateActiveIndex(); 7783 swiper.updateSlidesClasses(); 7784 let newProgress; 7785 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 7786 if (translatesDiff === 0) { 7787 newProgress = 0; 7788 } else { 7789 newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff; 7790 } 7791 if (newProgress !== swiper.progress) { 7792 swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); 7793 } 7794 swiper.emit('setTranslate', swiper.translate, false); 7795} 7796 7797function onLoad(e) { 7798 const swiper = this; 7799 processLazyPreloader(swiper, e.target); 7800 if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) { 7801 return; 7802 } 7803 swiper.update(); 7804} 7805 7806function onDocumentTouchStart() { 7807 const swiper = this; 7808 if (swiper.documentTouchHandlerProceeded) return; 7809 swiper.documentTouchHandlerProceeded = true; 7810 if (swiper.params.touchReleaseOnEdges) { 7811 swiper.el.style.touchAction = 'auto'; 7812 } 7813} 7814 7815const events = (swiper, method) => { 7816 const document = ssr_window_esm_getDocument(); 7817 const { 7818 params, 7819 el, 7820 wrapperEl, 7821 device 7822 } = swiper; 7823 const capture = !!params.nested; 7824 const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; 7825 const swiperMethod = method; 7826 if (!el || typeof el === 'string') return; 7827 7828 // Touch Events 7829 document[domMethod]('touchstart', swiper.onDocumentTouchStart, { 7830 passive: false, 7831 capture 7832 }); 7833 el[domMethod]('touchstart', swiper.onTouchStart, { 7834 passive: false 7835 }); 7836 el[domMethod]('pointerdown', swiper.onTouchStart, { 7837 passive: false 7838 }); 7839 document[domMethod]('touchmove', swiper.onTouchMove, { 7840 passive: false, 7841 capture 7842 }); 7843 document[domMethod]('pointermove', swiper.onTouchMove, { 7844 passive: false, 7845 capture 7846 }); 7847 document[domMethod]('touchend', swiper.onTouchEnd, { 7848 passive: true 7849 }); 7850 document[domMethod]('pointerup', swiper.onTouchEnd, { 7851 passive: true 7852 }); 7853 document[domMethod]('pointercancel', swiper.onTouchEnd, { 7854 passive: true 7855 }); 7856 document[domMethod]('touchcancel', swiper.onTouchEnd, { 7857 passive: true 7858 }); 7859 document[domMethod]('pointerout', swiper.onTouchEnd, { 7860 passive: true 7861 }); 7862 document[domMethod]('pointerleave', swiper.onTouchEnd, { 7863 passive: true 7864 }); 7865 document[domMethod]('contextmenu', swiper.onTouchEnd, { 7866 passive: true 7867 }); 7868 7869 // Prevent Links Clicks 7870 if (params.preventClicks || params.preventClicksPropagation) { 7871 el[domMethod]('click', swiper.onClick, true); 7872 } 7873 if (params.cssMode) { 7874 wrapperEl[domMethod]('scroll', swiper.onScroll); 7875 } 7876 7877 // Resize handler 7878 if (params.updateOnWindowResize) { 7879 swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true); 7880 } else { 7881 swiper[swiperMethod]('observerUpdate', onResize, true); 7882 } 7883 7884 // Images loader 7885 el[domMethod]('load', swiper.onLoad, { 7886 capture: true 7887 }); 7888}; 7889function attachEvents() { 7890 const swiper = this; 7891 const { 7892 params 7893 } = swiper; 7894 swiper.onTouchStart = onTouchStart.bind(swiper); 7895 swiper.onTouchMove = onTouchMove.bind(swiper); 7896 swiper.onTouchEnd = onTouchEnd.bind(swiper); 7897 swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper); 7898 if (params.cssMode) { 7899 swiper.onScroll = onScroll.bind(swiper); 7900 } 7901 swiper.onClick = onClick.bind(swiper); 7902 swiper.onLoad = onLoad.bind(swiper); 7903 events(swiper, 'on'); 7904} 7905function detachEvents() { 7906 const swiper = this; 7907 events(swiper, 'off'); 7908} 7909var events$1 = { 7910 attachEvents, 7911 detachEvents 7912}; 7913 7914const isGridEnabled = (swiper, params) => { 7915 return swiper.grid && params.grid && params.grid.rows > 1; 7916}; 7917function setBreakpoint() { 7918 const swiper = this; 7919 const { 7920 realIndex, 7921 initialized, 7922 params, 7923 el 7924 } = swiper; 7925 const breakpoints = params.breakpoints; 7926 if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; 7927 7928 // Get breakpoint for window width and update parameters
vendor: 11,461 bytes, lines 7929-8326
7929 const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el); 7930 if (!breakpoint || swiper.currentBreakpoint === breakpoint) return; 7931 const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; 7932 const breakpointParams = breakpointOnlyParams || swiper.originalParams; 7933 const wasMultiRow = isGridEnabled(swiper, params); 7934 const isMultiRow = isGridEnabled(swiper, breakpointParams); 7935 const wasGrabCursor = swiper.params.grabCursor; 7936 const isGrabCursor = breakpointParams.grabCursor; 7937 const wasEnabled = params.enabled; 7938 if (wasMultiRow && !isMultiRow) { 7939 el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`); 7940 swiper.emitContainerClasses(); 7941 } else if (!wasMultiRow && isMultiRow) { 7942 el.classList.add(`${params.containerModifierClass}grid`); 7943 if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') { 7944 el.classList.add(`${params.containerModifierClass}grid-column`); 7945 } 7946 swiper.emitContainerClasses(); 7947 } 7948 if (wasGrabCursor && !isGrabCursor) { 7949 swiper.unsetGrabCursor(); 7950 } else if (!wasGrabCursor && isGrabCursor) { 7951 swiper.setGrabCursor(); 7952 } 7953 7954 // Toggle navigation, pagination, scrollbar 7955 ['navigation', 'pagination', 'scrollbar'].forEach(prop => { 7956 if (typeof breakpointParams[prop] === 'undefined') return; 7957 const wasModuleEnabled = params[prop] && params[prop].enabled; 7958 const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled; 7959 if (wasModuleEnabled && !isModuleEnabled) { 7960 swiper[prop].disable(); 7961 } 7962 if (!wasModuleEnabled && isModuleEnabled) { 7963 swiper[prop].enable(); 7964 } 7965 }); 7966 const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; 7967 const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); 7968 const wasLoop = params.loop; 7969 if (directionChanged && initialized) { 7970 swiper.changeDirection(); 7971 } 7972 utils_extend(swiper.params, breakpointParams); 7973 const isEnabled = swiper.params.enabled; 7974 const hasLoop = swiper.params.loop; 7975 Object.assign(swiper, { 7976 allowTouchMove: swiper.params.allowTouchMove, 7977 allowSlideNext: swiper.params.allowSlideNext, 7978 allowSlidePrev: swiper.params.allowSlidePrev 7979 }); 7980 if (wasEnabled && !isEnabled) { 7981 swiper.disable(); 7982 } else if (!wasEnabled && isEnabled) { 7983 swiper.enable(); 7984 } 7985 swiper.currentBreakpoint = breakpoint; 7986 swiper.emit('_beforeBreakpoint', breakpointParams); 7987 if (initialized) { 7988 if (needsReLoop) { 7989 swiper.loopDestroy(); 7990 swiper.loopCreate(realIndex); 7991 swiper.updateSlides(); 7992 } else if (!wasLoop && hasLoop) { 7993 swiper.loopCreate(realIndex); 7994 swiper.updateSlides(); 7995 } else if (wasLoop && !hasLoop) { 7996 swiper.loopDestroy(); 7997 } 7998 } 7999 swiper.emit('breakpoint', breakpointParams); 8000} 8001 8002function getBreakpoint(breakpoints, base, containerEl) { 8003 if (base === void 0) { 8004 base = 'window'; 8005 } 8006 if (!breakpoints || base === 'container' && !containerEl) return undefined; 8007 let breakpoint = false; 8008 const window = ssr_window_esm_getWindow(); 8009 const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight; 8010 const points = Object.keys(breakpoints).map(point => { 8011 if (typeof point === 'string' && point.indexOf('@') === 0) { 8012 const minRatio = parseFloat(point.substr(1)); 8013 const value = currentHeight * minRatio; 8014 return { 8015 value, 8016 point 8017 }; 8018 } 8019 return { 8020 value: point, 8021 point 8022 }; 8023 }); 8024 points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10)); 8025 for (let i = 0; i < points.length; i += 1) { 8026 const { 8027 point, 8028 value 8029 } = points[i]; 8030 if (base === 'window') { 8031 if (window.matchMedia(`(min-width: ${value}px)`).matches) { 8032 breakpoint = point; 8033 } 8034 } else if (value <= containerEl.clientWidth) { 8035 breakpoint = point; 8036 } 8037 } 8038 return breakpoint || 'max'; 8039} 8040 8041var breakpoints = { 8042 setBreakpoint, 8043 getBreakpoint 8044}; 8045 8046function prepareClasses(entries, prefix) { 8047 const resultClasses = []; 8048 entries.forEach(item => { 8049 if (typeof item === 'object') { 8050 Object.keys(item).forEach(classNames => { 8051 if (item[classNames]) { 8052 resultClasses.push(prefix + classNames); 8053 } 8054 }); 8055 } else if (typeof item === 'string') { 8056 resultClasses.push(prefix + item); 8057 } 8058 }); 8059 return resultClasses; 8060} 8061function addClasses() { 8062 const swiper = this; 8063 const { 8064 classNames, 8065 params, 8066 rtl, 8067 el, 8068 device 8069 } = swiper; 8070 // prettier-ignore 8071 const suffixes = prepareClasses(['initialized', params.direction, { 8072 'free-mode': swiper.params.freeMode && params.freeMode.enabled 8073 }, { 8074 'autoheight': params.autoHeight 8075 }, { 8076 'rtl': rtl 8077 }, { 8078 'grid': params.grid && params.grid.rows > 1 8079 }, { 8080 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' 8081 }, { 8082 'android': device.android 8083 }, { 8084 'ios': device.ios 8085 }, { 8086 'css-mode': params.cssMode 8087 }, { 8088 'centered': params.cssMode && params.centeredSlides 8089 }, { 8090 'watch-progress': params.watchSlidesProgress 8091 }], params.containerModifierClass); 8092 classNames.push(...suffixes); 8093 el.classList.add(...classNames); 8094 swiper.emitContainerClasses(); 8095} 8096 8097function removeClasses() { 8098 const swiper = this; 8099 const { 8100 el, 8101 classNames 8102 } = swiper; 8103 if (!el || typeof el === 'string') return; 8104 el.classList.remove(...classNames); 8105 swiper.emitContainerClasses(); 8106} 8107 8108var classes = { 8109 addClasses, 8110 removeClasses 8111}; 8112 8113function checkOverflow() { 8114 const swiper = this; 8115 const { 8116 isLocked: wasLocked, 8117 params 8118 } = swiper; 8119 const { 8120 slidesOffsetBefore 8121 } = params; 8122 if (slidesOffsetBefore) { 8123 const lastSlideIndex = swiper.slides.length - 1; 8124 const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2; 8125 swiper.isLocked = swiper.size > lastSlideRightEdge; 8126 } else { 8127 swiper.isLocked = swiper.snapGrid.length === 1; 8128 } 8129 if (params.allowSlideNext === true) { 8130 swiper.allowSlideNext = !swiper.isLocked; 8131 } 8132 if (params.allowSlidePrev === true) { 8133 swiper.allowSlidePrev = !swiper.isLocked; 8134 } 8135 if (wasLocked && wasLocked !== swiper.isLocked) { 8136 swiper.isEnd = false; 8137 } 8138 if (wasLocked !== swiper.isLocked) { 8139 swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); 8140 } 8141} 8142var checkOverflow$1 = { 8143 checkOverflow 8144}; 8145 8146var defaults = { 8147 init: true, 8148 direction: 'horizontal', 8149 oneWayMovement: false, 8150 swiperElementNodeName: 'SWIPER-CONTAINER', 8151 touchEventsTarget: 'wrapper', 8152 initialSlide: 0, 8153 speed: 300, 8154 cssMode: false, 8155 updateOnWindowResize: true, 8156 resizeObserver: true, 8157 nested: false, 8158 createElements: false, 8159 eventsPrefix: 'swiper', 8160 enabled: true, 8161 focusableElements: 'input, select, option, textarea, button, video, label', 8162 // Overrides 8163 width: null, 8164 height: null, 8165 // 8166 preventInteractionOnTransition: false, 8167 // ssr 8168 userAgent: null, 8169 url: null, 8170 // To support iOS's swipe-to-go-back gesture (when being used in-app). 8171 edgeSwipeDetection: false, 8172 edgeSwipeThreshold: 20, 8173 // Autoheight 8174 autoHeight: false, 8175 // Set wrapper width 8176 setWrapperSize: false, 8177 // Virtual Translate 8178 virtualTranslate: false, 8179 // Effects 8180 effect: 'slide', 8181 // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' 8182 8183 // Breakpoints 8184 breakpoints: undefined, 8185 breakpointsBase: 'window', 8186 // Slides grid 8187 spaceBetween: 0, 8188 slidesPerView: 1, 8189 slidesPerGroup: 1, 8190 slidesPerGroupSkip: 0, 8191 slidesPerGroupAuto: false, 8192 centeredSlides: false, 8193 centeredSlidesBounds: false, 8194 slidesOffsetBefore: 0, 8195 // in px 8196 slidesOffsetAfter: 0, 8197 // in px 8198 normalizeSlideIndex: true, 8199 centerInsufficientSlides: false, 8200 // Disable swiper and hide navigation when container not overflow 8201 watchOverflow: true, 8202 // Round length 8203 roundLengths: false, 8204 // Touches 8205 touchRatio: 1, 8206 touchAngle: 45, 8207 simulateTouch: true, 8208 shortSwipes: true, 8209 longSwipes: true, 8210 longSwipesRatio: 0.5, 8211 longSwipesMs: 300, 8212 followFinger: true, 8213 allowTouchMove: true, 8214 threshold: 5, 8215 touchMoveStopPropagation: false, 8216 touchStartPreventDefault: true, 8217 touchStartForcePreventDefault: false, 8218 touchReleaseOnEdges: false, 8219 // Unique Navigation Elements 8220 uniqueNavElements: true, 8221 // Resistance 8222 resistance: true, 8223 resistanceRatio: 0.85, 8224 // Progress 8225 watchSlidesProgress: false, 8226 // Cursor 8227 grabCursor: false, 8228 // Clicks 8229 preventClicks: true, 8230 preventClicksPropagation: true, 8231 slideToClickedSlide: false, 8232 // loop 8233 loop: false, 8234 loopAddBlankSlides: true, 8235 loopAdditionalSlides: 0, 8236 loopPreventsSliding: true, 8237 // rewind 8238 rewind: false, 8239 // Swiping/no swiping 8240 allowSlidePrev: true, 8241 allowSlideNext: true, 8242 swipeHandler: null, 8243 // '.swipe-handler', 8244 noSwiping: true, 8245 noSwipingClass: 'swiper-no-swiping', 8246 noSwipingSelector: null, 8247 // Passive Listeners 8248 passiveListeners: true, 8249 maxBackfaceHiddenSlides: 10, 8250 // NS 8251 containerModifierClass: 'swiper-', 8252 // NEW 8253 slideClass: 'swiper-slide', 8254 slideBlankClass: 'swiper-slide-blank', 8255 slideActiveClass: 'swiper-slide-active', 8256 slideVisibleClass: 'swiper-slide-visible', 8257 slideFullyVisibleClass: 'swiper-slide-fully-visible', 8258 slideNextClass: 'swiper-slide-next', 8259 slidePrevClass: 'swiper-slide-prev', 8260 wrapperClass: 'swiper-wrapper', 8261 lazyPreloaderClass: 'swiper-lazy-preloader', 8262 lazyPreloadPrevNext: 0, 8263 // Callbacks 8264 runCallbacksOnInit: true, 8265 // Internals 8266 _emitClasses: false 8267}; 8268 8269function moduleExtendParams(params, allModulesParams) { 8270 return function extendParams(obj) { 8271 if (obj === void 0) { 8272 obj = {}; 8273 } 8274 const moduleParamName = Object.keys(obj)[0]; 8275 const moduleParams = obj[moduleParamName]; 8276 if (typeof moduleParams !== 'object' || moduleParams === null) { 8277 utils_extend(allModulesParams, obj); 8278 return; 8279 } 8280 if (params[moduleParamName] === true) { 8281 params[moduleParamName] = { 8282 enabled: true 8283 }; 8284 } 8285 if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) { 8286 params[moduleParamName].auto = true; 8287 } 8288 if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) { 8289 params[moduleParamName].auto = true; 8290 } 8291 if (!(moduleParamName in params && 'enabled' in moduleParams)) { 8292 utils_extend(allModulesParams, obj); 8293 return; 8294 } 8295 if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) { 8296 params[moduleParamName].enabled = true; 8297 } 8298 if (!params[moduleParamName]) params[moduleParamName] = { 8299 enabled: false 8300 }; 8301 utils_extend(allModulesParams, obj); 8302 }; 8303} 8304 8305/* eslint no-param-reassign: "off" */ 8306const prototypes = { 8307 eventsEmitter, 8308 update, 8309 translate, 8310 transition, 8311 slide, 8312 loop, 8313 grabCursor, 8314 events: events$1, 8315 breakpoints, 8316 checkOverflow: checkOverflow$1, 8317 classes 8318}; 8319const extendedDefaults = {}; 8320class Swiper { 8321 constructor() { 8322 let el; 8323 let params; 8324 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 8325 args[_key] = arguments[_key]; 8326 }
vendor: 2,005 bytes, lines 8327-8384
8327 if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') { 8328 params = args[0]; 8329 } else { 8330 [el, params] = args; 8331 } 8332 if (!params) params = {}; 8333 params = utils_extend({}, params); 8334 if (el && !params.el) params.el = el; 8335 const document = ssr_window_esm_getDocument(); 8336 if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) { 8337 const swipers = []; 8338 document.querySelectorAll(params.el).forEach(containerEl => { 8339 const newParams = utils_extend({}, params, { 8340 el: containerEl 8341 }); 8342 swipers.push(new Swiper(newParams)); 8343 }); 8344 // eslint-disable-next-line no-constructor-return 8345 return swipers; 8346 } 8347 8348 // Swiper Instance 8349 const swiper = this; 8350 swiper.__swiper__ = true; 8351 swiper.support = getSupport(); 8352 swiper.device = getDevice({ 8353 userAgent: params.userAgent 8354 }); 8355 swiper.browser = getBrowser(); 8356 swiper.eventsListeners = {}; 8357 swiper.eventsAnyListeners = []; 8358 swiper.modules = [...swiper.__modules__]; 8359 if (params.modules && Array.isArray(params.modules)) { 8360 swiper.modules.push(...params.modules); 8361 } 8362 const allModulesParams = {}; 8363 swiper.modules.forEach(mod => { 8364 mod({ 8365 params, 8366 swiper, 8367 extendParams: moduleExtendParams(params, allModulesParams), 8368 on: swiper.on.bind(swiper), 8369 once: swiper.once.bind(swiper), 8370 off: swiper.off.bind(swiper), 8371 emit: swiper.emit.bind(swiper) 8372 }); 8373 }); 8374 8375 // Extend defaults with modules params 8376 const swiperParams = utils_extend({}, defaults, allModulesParams); 8377 8378 // Extend defaults with passed params 8379 swiper.params = utils_extend({}, swiperParams, extendedDefaults, params); 8380 swiper.originalParams = utils_extend({}, swiper.params); 8381 swiper.passedParams = utils_extend({}, params); 8382 8383 // add event listeners 8384 if (swiper.params && swiper.params.on) {
vendor: 3,446 bytes, lines 8385-8513
8385 Object.keys(swiper.params.on).forEach(eventName => { 8386 swiper.on(eventName, swiper.params.on[eventName]); 8387 }); 8388 } 8389 if (swiper.params && swiper.params.onAny) { 8390 swiper.onAny(swiper.params.onAny); 8391 } 8392 8393 // Extend Swiper 8394 Object.assign(swiper, { 8395 enabled: swiper.params.enabled, 8396 el, 8397 // Classes 8398 classNames: [], 8399 // Slides 8400 slides: [], 8401 slidesGrid: [], 8402 snapGrid: [], 8403 slidesSizesGrid: [], 8404 // isDirection 8405 isHorizontal() { 8406 return swiper.params.direction === 'horizontal'; 8407 }, 8408 isVertical() { 8409 return swiper.params.direction === 'vertical'; 8410 }, 8411 // Indexes 8412 activeIndex: 0, 8413 realIndex: 0, 8414 // 8415 isBeginning: true, 8416 isEnd: false, 8417 // Props 8418 translate: 0, 8419 previousTranslate: 0, 8420 progress: 0, 8421 velocity: 0, 8422 animating: false, 8423 cssOverflowAdjustment() { 8424 // Returns 0 unless `translate` is > 2**23 8425 // Should be subtracted from css values to prevent overflow 8426 return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; 8427 }, 8428 // Locks 8429 allowSlideNext: swiper.params.allowSlideNext, 8430 allowSlidePrev: swiper.params.allowSlidePrev, 8431 // Touch Events 8432 touchEventsData: { 8433 isTouched: undefined, 8434 isMoved: undefined, 8435 allowTouchCallbacks: undefined, 8436 touchStartTime: undefined, 8437 isScrolling: undefined, 8438 currentTranslate: undefined, 8439 startTranslate: undefined, 8440 allowThresholdMove: undefined, 8441 // Form elements to match 8442 focusableElements: swiper.params.focusableElements, 8443 // Last click time 8444 lastClickTime: 0, 8445 clickTimeout: undefined, 8446 // Velocities 8447 velocities: [], 8448 allowMomentumBounce: undefined, 8449 startMoving: undefined, 8450 pointerId: null, 8451 touchId: null 8452 }, 8453 // Clicks 8454 allowClick: true, 8455 // Touches 8456 allowTouchMove: swiper.params.allowTouchMove, 8457 touches: { 8458 startX: 0, 8459 startY: 0, 8460 currentX: 0, 8461 currentY: 0, 8462 diff: 0 8463 }, 8464 // Images 8465 imagesToLoad: [], 8466 imagesLoaded: 0 8467 }); 8468 swiper.emit('_swiper'); 8469 8470 // Init 8471 if (swiper.params.init) { 8472 swiper.init(); 8473 } 8474 8475 // Return app instance 8476 // eslint-disable-next-line no-constructor-return 8477 return swiper; 8478 } 8479 getDirectionLabel(property) { 8480 if (this.isHorizontal()) { 8481 return property; 8482 } 8483 // prettier-ignore 8484 return { 8485 'width': 'height', 8486 'margin-top': 'margin-left', 8487 'margin-bottom ': 'margin-right', 8488 'margin-left': 'margin-top', 8489 'margin-right': 'margin-bottom', 8490 'padding-left': 'padding-top', 8491 'padding-right': 'padding-bottom', 8492 'marginRight': 'marginBottom' 8493 }[property]; 8494 } 8495 getSlideIndex(slideEl) { 8496 const { 8497 slidesEl, 8498 params 8499 } = this; 8500 const slides = utils_elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); 8501 const firstSlideIndex = utils_elementIndex(slides[0]); 8502 return utils_elementIndex(slideEl) - firstSlideIndex; 8503 } 8504 getSlideIndexByData(index) { 8505 return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]); 8506 } 8507 recalcSlides() { 8508 const swiper = this; 8509 const { 8510 slidesEl, 8511 params 8512 } = swiper; 8513 swiper.slides = utils_
vendor: 7,673 bytes, lines 8513-8744
8513elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); 8514 } 8515 enable() { 8516 const swiper = this; 8517 if (swiper.enabled) return; 8518 swiper.enabled = true; 8519 if (swiper.params.grabCursor) { 8520 swiper.setGrabCursor(); 8521 } 8522 swiper.emit('enable'); 8523 } 8524 disable() { 8525 const swiper = this; 8526 if (!swiper.enabled) return; 8527 swiper.enabled = false; 8528 if (swiper.params.grabCursor) { 8529 swiper.unsetGrabCursor(); 8530 } 8531 swiper.emit('disable'); 8532 } 8533 setProgress(progress, speed) { 8534 const swiper = this; 8535 progress = Math.min(Math.max(progress, 0), 1); 8536 const min = swiper.minTranslate(); 8537 const max = swiper.maxTranslate(); 8538 const current = (max - min) * progress + min; 8539 swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed); 8540 swiper.updateActiveIndex(); 8541 swiper.updateSlidesClasses(); 8542 } 8543 emitContainerClasses() { 8544 const swiper = this; 8545 if (!swiper.params._emitClasses || !swiper.el) return; 8546 const cls = swiper.el.className.split(' ').filter(className => { 8547 return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0; 8548 }); 8549 swiper.emit('_containerClasses', cls.join(' ')); 8550 } 8551 getSlideClasses(slideEl) { 8552 const swiper = this; 8553 if (swiper.destroyed) return ''; 8554 return slideEl.className.split(' ').filter(className => { 8555 return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0; 8556 }).join(' '); 8557 } 8558 emitSlidesClasses() { 8559 const swiper = this; 8560 if (!swiper.params._emitClasses || !swiper.el) return; 8561 const updates = []; 8562 swiper.slides.forEach(slideEl => { 8563 const classNames = swiper.getSlideClasses(slideEl); 8564 updates.push({ 8565 slideEl, 8566 classNames 8567 }); 8568 swiper.emit('_slideClass', slideEl, classNames); 8569 }); 8570 swiper.emit('_slideClasses', updates); 8571 } 8572 slidesPerViewDynamic(view, exact) { 8573 if (view === void 0) { 8574 view = 'current'; 8575 } 8576 if (exact === void 0) { 8577 exact = false; 8578 } 8579 const swiper = this; 8580 const { 8581 params, 8582 slides, 8583 slidesGrid, 8584 slidesSizesGrid, 8585 size: swiperSize, 8586 activeIndex 8587 } = swiper; 8588 let spv = 1; 8589 if (typeof params.slidesPerView === 'number') return params.slidesPerView; 8590 if (params.centeredSlides) { 8591 let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0; 8592 let breakLoop; 8593 for (let i = activeIndex + 1; i < slides.length; i += 1) { 8594 if (slides[i] && !breakLoop) { 8595 slideSize += Math.ceil(slides[i].swiperSlideSize); 8596 spv += 1; 8597 if (slideSize > swiperSize) breakLoop = true; 8598 } 8599 } 8600 for (let i = activeIndex - 1; i >= 0; i -= 1) { 8601 if (slides[i] && !breakLoop) { 8602 slideSize += slides[i].swiperSlideSize; 8603 spv += 1; 8604 if (slideSize > swiperSize) breakLoop = true; 8605 } 8606 } 8607 } else { 8608 // eslint-disable-next-line 8609 if (view === 'current') { 8610 for (let i = activeIndex + 1; i < slides.length; i += 1) { 8611 const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize; 8612 if (slideInView) { 8613 spv += 1; 8614 } 8615 } 8616 } else { 8617 // previous 8618 for (let i = activeIndex - 1; i >= 0; i -= 1) { 8619 const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize; 8620 if (slideInView) { 8621 spv += 1; 8622 } 8623 } 8624 } 8625 } 8626 return spv; 8627 } 8628 update() { 8629 const swiper = this; 8630 if (!swiper || swiper.destroyed) return; 8631 const { 8632 snapGrid, 8633 params 8634 } = swiper; 8635 // Breakpoints 8636 if (params.breakpoints) { 8637 swiper.setBreakpoint(); 8638 } 8639 [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => { 8640 if (imageEl.complete) { 8641 processLazyPreloader(swiper, imageEl); 8642 } 8643 }); 8644 swiper.updateSize(); 8645 swiper.updateSlides(); 8646 swiper.updateProgress(); 8647 swiper.updateSlidesClasses(); 8648 function setTranslate() { 8649 const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; 8650 const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); 8651 swiper.setTranslate(newTranslate); 8652 swiper.updateActiveIndex(); 8653 swiper.updateSlidesClasses(); 8654 } 8655 let translated; 8656 if (params.freeMode && params.freeMode.enabled && !params.cssMode) { 8657 setTranslate(); 8658 if (params.autoHeight) { 8659 swiper.updateAutoHeight(); 8660 } 8661 } else { 8662 if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) { 8663 const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides; 8664 translated = swiper.slideTo(slides.length - 1, 0, false, true); 8665 } else { 8666 translated = swiper.slideTo(swiper.activeIndex, 0, false, true); 8667 } 8668 if (!translated) { 8669 setTranslate(); 8670 } 8671 } 8672 if (params.watchOverflow && snapGrid !== swiper.snapGrid) { 8673 swiper.checkOverflow(); 8674 } 8675 swiper.emit('update'); 8676 } 8677 changeDirection(newDirection, needUpdate) { 8678 if (needUpdate === void 0) { 8679 needUpdate = true; 8680 } 8681 const swiper = this; 8682 const currentDirection = swiper.params.direction; 8683 if (!newDirection) { 8684 // eslint-disable-next-line 8685 newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal'; 8686 } 8687 if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') { 8688 return swiper; 8689 } 8690 swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`); 8691 swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`); 8692 swiper.emitContainerClasses(); 8693 swiper.params.direction = newDirection; 8694 swiper.slides.forEach(slideEl => { 8695 if (newDirection === 'vertical') { 8696 slideEl.style.width = ''; 8697 } else { 8698 slideEl.style.height = ''; 8699 } 8700 }); 8701 swiper.emit('changeDirection'); 8702 if (needUpdate) swiper.update(); 8703 return swiper; 8704 } 8705 changeLanguageDirection(direction) { 8706 const swiper = this; 8707 if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return; 8708 swiper.rtl = direction === 'rtl'; 8709 swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl; 8710 if (swiper.rtl) { 8711 swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`); 8712 swiper.el.dir = 'rtl'; 8713 } else { 8714 swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`); 8715 swiper.el.dir = 'ltr'; 8716 } 8717 swiper.update(); 8718 } 8719 mount(element) { 8720 const swiper = this; 8721 if (swiper.mounted) return true; 8722 8723 // Find el 8724 let el = element || swiper.params.el; 8725 if (typeof el === 'string') { 8726 el = document.querySelector(el); 8727 } 8728 if (!el) { 8729 return false; 8730 } 8731 el.swiper = swiper; 8732 if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) { 8733 swiper.isElement = true; 8734 } 8735 const getWrapperSelector = () => { 8736 return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`; 8737 }; 8738 const getWrapper = () => { 8739 if (el && el.shadowRoot && el.shadowRoot.querySelector) { 8740 const res = el.shadowRoot.querySelector(getWrapperSelector()); 8741 // Children needs to return slot items 8742 return res; 8743 } 8744 return
8744utils_elementChildren(el, getWrapperSelector())[0]; 8745 }; 8746 // Find Wrapper 8747 let wrapperEl = getWrapper(); 8748 if (!wrapperEl && swiper.params.createElements) { 8749 wrapperEl = utils_createElement('div', swiper.params.wrapperClass); 8750 el.append(wrapperEl); 8751 utils_elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => { 8752 wrapperEl.append(slideEl); 8753 }); 8754 } 8755 Object.assign(swiper, { 8756 el, 8757 wrapperEl, 8758 slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl, 8759 hostEl: swiper.isElement ? el.parentNode.host : el, 8760 mounted: true, 8761 // RTL 8762 rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl', 8763 rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'), 8764 wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box' 8765 }); 8766 return true; 8767 } 8768 init(el) { 8769 const swiper = this; 8770 if (swiper.initialized) return swiper; 8771 const mounted = swiper.mount(el); 8772 if (mounted === false) return swiper; 8773 swiper.emit('beforeInit'); 8774 8775 // Set breakpoint 8776 if (swiper.params.breakpoints) { 8777 swiper.setBreakpoint(); 8778 } 8779 8780 // Add Classes 8781 swiper.addClasses(); 8782 8783 // Update size 8784 swiper.updateSize(); 8785 8786 // Update slides 8787 swiper.updateSlides(); 8788 if (swiper.params.watchOverflow) { 8789 swiper.checkOverflow(); 8790 } 8791 8792 // Set Grab Cursor 8793 if (swiper.params.grabCursor && swiper.enabled) { 8794 swiper.setGrabCursor(); 8795 } 8796 8797 // Slide To Initial Slide 8798 if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { 8799 swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true); 8800 } else { 8801 swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true); 8802 } 8803 8804 // Create loop 8805 if (swiper.params.loop) { 8806 swiper.loopCreate(); 8807 } 8808 8809 // Attach events 8810 swiper.attachEvents(); 8811 const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')]; 8812 if (swiper.isElement) { 8813 lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]')); 8814 } 8815 lazyElements.forEach(imageEl => { 8816 if (imageEl.complete) { 8817 processLazyPreloader(swiper, imageEl); 8818 } else { 8819 imageEl.addEventListener('load', e => { 8820 processLazyPreloader(swiper, e.target); 8821 }); 8822 } 8823 }); 8824 preload(swiper); 8825 8826 // Init Flag 8827 swiper.initialized = true; 8828 preload(swiper); 8829 8830 // Emit 8831 swiper.emit('init'); 8832 swiper.emit('afterInit'); 8833 return swiper; 8834 } 8835 destroy(deleteInstance, cleanStyles) { 8836 if (deleteInstance === void 0) { 8837 deleteInstance = true; 8838 } 8839 if (cleanStyles === void 0) { 8840 cleanStyles = true; 8841 } 8842 const swiper = this; 8843 const { 8844 params, 8845 el, 8846 wrapperEl, 8847 slides 8848 } = swiper; 8849 if (typeof swiper.params === 'undefined' || swiper.destroyed) { 8850 return null; 8851 } 8852 swiper.emit('beforeDestroy'); 8853 8854 // Init Flag 8855 swiper.initialized = false; 8856 8857 // Detach events 8858 swiper.detachEvents(); 8859 8860 // Destroy loop 8861 if (params.loop) { 8862 swiper.loopDestroy(); 8863 } 8864 8865 // Cleanup styles 8866 if (cleanStyles) { 8867 swiper.removeClasses(); 8868 if (el && typeof el !== 'string') { 8869 el.removeAttribute('style'); 8870 } 8871 if (wrapperEl) { 8872 wrapperEl.removeAttribute('style'); 8873 } 8874 if (slides && slides.length) {
vendor: 2,563 bytes, lines 8875-8979
8875 slides.forEach(slideEl => { 8876 slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass); 8877 slideEl.removeAttribute('style'); 8878 slideEl.removeAttribute('data-swiper-slide-index'); 8879 }); 8880 } 8881 } 8882 swiper.emit('destroy'); 8883 8884 // Detach emitter events 8885 Object.keys(swiper.eventsListeners).forEach(eventName => { 8886 swiper.off(eventName); 8887 }); 8888 if (deleteInstance !== false) { 8889 if (swiper.el && typeof swiper.el !== 'string') { 8890 swiper.el.swiper = null; 8891 } 8892 deleteProps(swiper); 8893 } 8894 swiper.destroyed = true; 8895 return null; 8896 } 8897 static extendDefaults(newDefaults) { 8898 utils_extend(extendedDefaults, newDefaults); 8899 } 8900 static get extendedDefaults() { 8901 return extendedDefaults; 8902 } 8903 static get defaults() { 8904 return defaults; 8905 } 8906 static installModule(mod) { 8907 if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = []; 8908 const modules = Swiper.prototype.__modules__; 8909 if (typeof mod === 'function' && modules.indexOf(mod) < 0) { 8910 modules.push(mod); 8911 } 8912 } 8913 static use(module) { 8914 if (Array.isArray(module)) { 8915 module.forEach(m => Swiper.installModule(m)); 8916 return Swiper; 8917 } 8918 Swiper.installModule(module); 8919 return Swiper; 8920 } 8921} 8922Object.keys(prototypes).forEach(prototypeGroup => { 8923 Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => { 8924 Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; 8925 }); 8926}); 8927Swiper.use([Resize, Observer]); 8928 8929 8930 8931;// CONCATENATED MODULE: ./node_modules/swiper/swiper.mjs 8932/** 8933 * Swiper 11.1.14 8934 * Most modern mobile touch slider and framework with hardware accelerated transitions 8935 * https://swiperjs.com 8936 * 8937 * Copyright 2014-2024 Vladimir Kharlampidi 8938 * 8939 * Released under the MIT License 8940 * 8941 * Released on: September 12, 2024 8942 */ 8943 8944 8945 8946;// CONCATENATED MODULE: ./node_modules/swiper/modules/virtual.mjs 8947 8948 8949 8950function Virtual(_ref) { 8951 let { 8952 swiper, 8953 extendParams, 8954 on, 8955 emit 8956 } = _ref; 8957 extendParams({ 8958 virtual: { 8959 enabled: false, 8960 slides: [], 8961 cache: true, 8962 renderSlide: null, 8963 renderExternal: null, 8964 renderExternalUpdate: true, 8965 addSlidesBefore: 0, 8966 addSlidesAfter: 0 8967 } 8968 }); 8969 let cssModeTimeout; 8970 const document = getDocument(); 8971 swiper.virtual = { 8972 cache: {}, 8973 from: undefined, 8974 to: undefined, 8975 slides: [], 8976 offset: 0, 8977 slidesGrid: [] 8978 }; 8979 const tempDOM = document.createElement('div');
8980 function renderSlide(slide, index) { 8981 const params = swiper.params.virtual; 8982 if (params.cache && swiper.virtual.cache[index]) { 8983 return swiper.virtual.cache[index]; 8984 } 8985 // eslint-disable-next-line 8986 let slideEl; 8987 if (params.renderSlide) { 8988 slideEl = params.renderSlide.call(swiper, slide, index); 8989 if (typeof slideEl === 'string') { 8990 tempDOM.innerHTML = slideEl; 8991 slideEl = tempDOM.children[0]; 8992 } 8993 } else if (swiper.isElement) { 8994 slideEl = createElement('swiper-slide'); 8995 } else { 8996 slideEl = createElement('div', swiper.params.slideClass); 8997 } 8998 slideEl.setAttribute('data-swiper-slide-index', index); 8999 if (!params.renderSlide) { 9000 slideEl.innerHTML = slide; 9001 } 9002 if (params.cache) { 9003 swiper.virtual.cache[index] = slideEl; 9004 } 9005 return slideEl; 9006 } 9007 function update(force, beforeInit) { 9008 const { 9009 slidesPerView, 9010 slidesPerGroup, 9011 centeredSlides, 9012 loop: isLoop, 9013 initialSlide 9014 } = swiper.params; 9015 if (beforeInit && !isLoop && initialSlide > 0) { 9016 return; 9017 } 9018 const { 9019 addSlidesBefore, 9020 addSlidesAfter 9021 } = swiper.params.virtual; 9022 const { 9023 from: previousFrom, 9024 to: previousTo, 9025 slides, 9026 slidesGrid: previousSlidesGrid, 9027 offset: previousOffset 9028 } = swiper.virtual; 9029 if (!swiper.params.cssMode) { 9030 swiper.updateActiveIndex(); 9031 } 9032 const activeIndex = swiper.activeIndex || 0; 9033 let offsetProp; 9034 if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top'; 9035 let slidesAfter; 9036 let slidesBefore; 9037 if (centeredSlides) { 9038 slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter; 9039 slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore; 9040 } else { 9041 slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter; 9042 slidesBefore = (isLoop ? slidesPerView
vendor: 3,781 bytes, lines 9042-9155
9042 : slidesPerGroup) + addSlidesBefore; 9043 } 9044 let from = activeIndex - slidesBefore; 9045 let to = activeIndex + slidesAfter; 9046 if (!isLoop) { 9047 from = Math.max(from, 0); 9048 to = Math.min(to, slides.length - 1); 9049 } 9050 let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); 9051 if (isLoop && activeIndex >= slidesBefore) { 9052 from -= slidesBefore; 9053 if (!centeredSlides) offset += swiper.slidesGrid[0]; 9054 } else if (isLoop && activeIndex < slidesBefore) { 9055 from = -slidesBefore; 9056 if (centeredSlides) offset += swiper.slidesGrid[0]; 9057 } 9058 Object.assign(swiper.virtual, { 9059 from, 9060 to, 9061 offset, 9062 slidesGrid: swiper.slidesGrid, 9063 slidesBefore, 9064 slidesAfter 9065 }); 9066 function onRendered() { 9067 swiper.updateSlides(); 9068 swiper.updateProgress(); 9069 swiper.updateSlidesClasses(); 9070 emit('virtualUpdate'); 9071 } 9072 if (previousFrom === from && previousTo === to && !force) { 9073 if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) { 9074 swiper.slides.forEach(slideEl => { 9075 slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; 9076 }); 9077 } 9078 swiper.updateProgress(); 9079 emit('virtualUpdate'); 9080 return; 9081 } 9082 if (swiper.params.virtual.renderExternal) { 9083 swiper.params.virtual.renderExternal.call(swiper, { 9084 offset, 9085 from, 9086 to, 9087 slides: function getSlides() { 9088 const slidesToRender = []; 9089 for (let i = from; i <= to; i += 1) { 9090 slidesToRender.push(slides[i]); 9091 } 9092 return slidesToRender; 9093 }() 9094 }); 9095 if (swiper.params.virtual.renderExternalUpdate) { 9096 onRendered(); 9097 } else { 9098 emit('virtualUpdate'); 9099 } 9100 return; 9101 } 9102 const prependIndexes = []; 9103 const appendIndexes = []; 9104 const getSlideIndex = index => { 9105 let slideIndex = index; 9106 if (index < 0) { 9107 slideIndex = slides.length + index; 9108 } else if (slideIndex >= slides.length) { 9109 // eslint-disable-next-line 9110 slideIndex = slideIndex - slides.length; 9111 } 9112 return slideIndex; 9113 }; 9114 if (force) { 9115 swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => { 9116 slideEl.remove(); 9117 }); 9118 } else { 9119 for (let i = previousFrom; i <= previousTo; i += 1) { 9120 if (i < from || i > to) { 9121 const slideIndex = getSlideIndex(i); 9122 swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`)).forEach(slideEl => { 9123 slideEl.remove(); 9124 }); 9125 } 9126 } 9127 } 9128 const loopFrom = isLoop ? -slides.length : 0; 9129 const loopTo = isLoop ? slides.length * 2 : slides.length; 9130 for (let i = loopFrom; i < loopTo; i += 1) { 9131 if (i >= from && i <= to) { 9132 const slideIndex = getSlideIndex(i); 9133 if (typeof previousTo === 'undefined' || force) { 9134 appendIndexes.push(slideIndex); 9135 } else { 9136 if (i > previousTo) appendIndexes.push(slideIndex); 9137 if (i < previousFrom) prependIndexes.push(slideIndex); 9138 } 9139 } 9140 } 9141 appendIndexes.forEach(index => { 9142 swiper.slidesEl.append(renderSlide(slides[index], index)); 9143 }); 9144 if (isLoop) { 9145 for (let i = prependIndexes.length - 1; i >= 0; i -= 1) { 9146 const index = prependIndexes[i]; 9147 swiper.slidesEl.prepend(renderSlide(slides[index], index)); 9148 } 9149 } else { 9150 prependIndexes.sort((a, b) => b - a); 9151 prependIndexes.forEach(index => { 9152 swiper.slidesEl.prepend(renderSlide(slides[index], index)); 9153 }); 9154 } 9155
9155elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(sli
vendor: 5,535 bytes, lines 9155-9327
9155deEl => { 9156 slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; 9157 }); 9158 onRendered(); 9159 } 9160 function appendSlide(slides) { 9161 if (typeof slides === 'object' && 'length' in slides) { 9162 for (let i = 0; i < slides.length; i += 1) { 9163 if (slides[i]) swiper.virtual.slides.push(slides[i]); 9164 } 9165 } else { 9166 swiper.virtual.slides.push(slides); 9167 } 9168 update(true); 9169 } 9170 function prependSlide(slides) { 9171 const activeIndex = swiper.activeIndex; 9172 let newActiveIndex = activeIndex + 1; 9173 let numberOfNewSlides = 1; 9174 if (Array.isArray(slides)) { 9175 for (let i = 0; i < slides.length; i += 1) { 9176 if (slides[i]) swiper.virtual.slides.unshift(slides[i]); 9177 } 9178 newActiveIndex = activeIndex + slides.length; 9179 numberOfNewSlides = slides.length; 9180 } else { 9181 swiper.virtual.slides.unshift(slides); 9182 } 9183 if (swiper.params.virtual.cache) { 9184 const cache = swiper.virtual.cache; 9185 const newCache = {}; 9186 Object.keys(cache).forEach(cachedIndex => { 9187 const cachedEl = cache[cachedIndex]; 9188 const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index'); 9189 if (cachedElIndex) { 9190 cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides); 9191 } 9192 newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl; 9193 }); 9194 swiper.virtual.cache = newCache; 9195 } 9196 update(true); 9197 swiper.slideTo(newActiveIndex, 0); 9198 } 9199 function removeSlide(slidesIndexes) { 9200 if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return; 9201 let activeIndex = swiper.activeIndex; 9202 if (Array.isArray(slidesIndexes)) { 9203 for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) { 9204 if (swiper.params.virtual.cache) { 9205 delete swiper.virtual.cache[slidesIndexes[i]]; 9206 // shift cache indexes 9207 Object.keys(swiper.virtual.cache).forEach(key => { 9208 if (key > slidesIndexes) { 9209 swiper.virtual.cache[key - 1] = swiper.virtual.cache[key]; 9210 swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1); 9211 delete swiper.virtual.cache[key]; 9212 } 9213 }); 9214 } 9215 swiper.virtual.slides.splice(slidesIndexes[i], 1); 9216 if (slidesIndexes[i] < activeIndex) activeIndex -= 1; 9217 activeIndex = Math.max(activeIndex, 0); 9218 } 9219 } else { 9220 if (swiper.params.virtual.cache) { 9221 delete swiper.virtual.cache[slidesIndexes]; 9222 // shift cache indexes 9223 Object.keys(swiper.virtual.cache).forEach(key => { 9224 if (key > slidesIndexes) { 9225 swiper.virtual.cache[key - 1] = swiper.virtual.cache[key]; 9226 swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1); 9227 delete swiper.virtual.cache[key]; 9228 } 9229 }); 9230 } 9231 swiper.virtual.slides.splice(slidesIndexes, 1); 9232 if (slidesIndexes < activeIndex) activeIndex -= 1; 9233 activeIndex = Math.max(activeIndex, 0); 9234 } 9235 update(true); 9236 swiper.slideTo(activeIndex, 0); 9237 } 9238 function removeAllSlides() { 9239 swiper.virtual.slides = []; 9240 if (swiper.params.virtual.cache) { 9241 swiper.virtual.cache = {}; 9242 } 9243 update(true); 9244 swiper.slideTo(0, 0); 9245 } 9246 on('beforeInit', () => { 9247 if (!swiper.params.virtual.enabled) return; 9248 let domSlidesAssigned; 9249 if (typeof swiper.passedParams.virtual.slides === 'undefined') { 9250 const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)); 9251 if (slides && slides.length) { 9252 swiper.virtual.slides = [...slides]; 9253 domSlidesAssigned = true; 9254 slides.forEach((slideEl, slideIndex) => { 9255 slideEl.setAttribute('data-swiper-slide-index', slideIndex); 9256 swiper.virtual.cache[slideIndex] = slideEl; 9257 slideEl.remove(); 9258 }); 9259 } 9260 } 9261 if (!domSlidesAssigned) { 9262 swiper.virtual.slides = swiper.params.virtual.slides; 9263 } 9264 swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`); 9265 swiper.params.watchSlidesProgress = true; 9266 swiper.originalParams.watchSlidesProgress = true; 9267 update(false, true); 9268 }); 9269 on('setTranslate', () => { 9270 if (!swiper.params.virtual.enabled) return; 9271 if (swiper.params.cssMode && !swiper._immediateVirtual) { 9272 clearTimeout(cssModeTimeout); 9273 cssModeTimeout = setTimeout(() => { 9274 update(); 9275 }, 100); 9276 } else { 9277 update(); 9278 } 9279 }); 9280 on('init update resize', () => { 9281 if (!swiper.params.virtual.enabled) return; 9282 if (swiper.params.cssMode) { 9283 setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`); 9284 } 9285 }); 9286 Object.assign(swiper.virtual, { 9287 appendSlide, 9288 prependSlide, 9289 removeSlide, 9290 removeAllSlides, 9291 update 9292 }); 9293} 9294 9295 9296 9297;// CONCATENATED MODULE: ./node_modules/swiper/modules/keyboard.mjs 9298 9299 9300 9301/* eslint-disable consistent-return */ 9302function Keyboard(_ref) { 9303 let { 9304 swiper, 9305 extendParams, 9306 on, 9307 emit 9308 } = _ref; 9309 const document = getDocument(); 9310 const window = getWindow(); 9311 swiper.keyboard = { 9312 enabled: false 9313 }; 9314 extendParams({ 9315 keyboard: { 9316 enabled: false, 9317 onlyInViewport: true, 9318 pageUpDown: true 9319 } 9320 }); 9321 function handle(event) { 9322 if (!swiper.enabled) return; 9323 const { 9324 rtlTranslate: rtl 9325 } = swiper; 9326 let e = event; 9327 if (e.originalEvent) e = e.originalEvent; // jquery fix
vendor: 3,953 bytes, lines 9328-9433
9328 const kc = e.keyCode || e.charCode; 9329 const pageUpDown = swiper.params.keyboard.pageUpDown; 9330 const isPageUp = pageUpDown && kc === 33; 9331 const isPageDown = pageUpDown && kc === 34; 9332 const isArrowLeft = kc === 37; 9333 const isArrowRight = kc === 39; 9334 const isArrowUp = kc === 38; 9335 const isArrowDown = kc === 40; 9336 // Directions locks 9337 if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) { 9338 return false; 9339 } 9340 if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) { 9341 return false; 9342 } 9343 if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { 9344 return undefined; 9345 } 9346 if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) { 9347 return undefined; 9348 } 9349 if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) { 9350 let inView = false; 9351 // Check that swiper should be inside of visible area of window 9352 if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) { 9353 return undefined; 9354 } 9355 const el = swiper.el; 9356 const swiperWidth = el.clientWidth; 9357 const swiperHeight = el.clientHeight; 9358 const windowWidth = window.innerWidth; 9359 const windowHeight = window.innerHeight; 9360 const swiperOffset = elementOffset(el); 9361 if (rtl) swiperOffset.left -= el.scrollLeft; 9362 const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]]; 9363 for (let i = 0; i < swiperCoord.length; i += 1) { 9364 const point = swiperCoord[i]; 9365 if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) { 9366 if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line 9367 inView = true; 9368 } 9369 } 9370 if (!inView) return undefined; 9371 } 9372 if (swiper.isHorizontal()) { 9373 if (isPageUp || isPageDown || isArrowLeft || isArrowRight) { 9374 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 9375 } 9376 if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext(); 9377 if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev(); 9378 } else { 9379 if (isPageUp || isPageDown || isArrowUp || isArrowDown) { 9380 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 9381 } 9382 if (isPageDown || isArrowDown) swiper.slideNext(); 9383 if (isPageUp || isArrowUp) swiper.slidePrev(); 9384 } 9385 emit('keyPress', kc); 9386 return undefined; 9387 } 9388 function enable() { 9389 if (swiper.keyboard.enabled) return; 9390 document.addEventListener('keydown', handle); 9391 swiper.keyboard.enabled = true; 9392 } 9393 function disable() { 9394 if (!swiper.keyboard.enabled) return; 9395 document.removeEventListener('keydown', handle); 9396 swiper.keyboard.enabled = false; 9397 } 9398 on('init', () => { 9399 if (swiper.params.keyboard.enabled) { 9400 enable(); 9401 } 9402 }); 9403 on('destroy', () => { 9404 if (swiper.keyboard.enabled) { 9405 disable(); 9406 } 9407 }); 9408 Object.assign(swiper.keyboard, { 9409 enable, 9410 disable 9411 }); 9412} 9413 9414 9415 9416;// CONCATENATED MODULE: ./node_modules/swiper/modules/mousewheel.mjs 9417 9418 9419 9420/* eslint-disable consistent-return */ 9421function Mousewheel(_ref) { 9422 let { 9423 swiper, 9424 extendParams, 9425 on, 9426 emit 9427 } = _ref; 9428 const window = getWindow(); 9429 extendParams({ 9430 mousewheel: { 9431 enabled: false, 9432 releaseOnEdges: false, 9433 invert: false,
vendor: 21,587 bytes, lines 9434-10049
9434 forceToAxis: false, 9435 sensitivity: 1, 9436 eventsTarget: 'container', 9437 thresholdDelta: null, 9438 thresholdTime: null, 9439 noMousewheelClass: 'swiper-no-mousewheel' 9440 } 9441 }); 9442 swiper.mousewheel = { 9443 enabled: false 9444 }; 9445 let timeout; 9446 let lastScrollTime = now(); 9447 let lastEventBeforeSnap; 9448 const recentWheelEvents = []; 9449 function normalize(e) { 9450 // Reasonable defaults 9451 const PIXEL_STEP = 10; 9452 const LINE_HEIGHT = 40; 9453 const PAGE_HEIGHT = 800; 9454 let sX = 0; 9455 let sY = 0; // spinX, spinY 9456 let pX = 0; 9457 let pY = 0; // pixelX, pixelY 9458 9459 // Legacy 9460 if ('detail' in e) { 9461 sY = e.detail; 9462 } 9463 if ('wheelDelta' in e) { 9464 sY = -e.wheelDelta / 120; 9465 } 9466 if ('wheelDeltaY' in e) { 9467 sY = -e.wheelDeltaY / 120; 9468 } 9469 if ('wheelDeltaX' in e) { 9470 sX = -e.wheelDeltaX / 120; 9471 } 9472 9473 // side scrolling on FF with DOMMouseScroll 9474 if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { 9475 sX = sY; 9476 sY = 0; 9477 } 9478 pX = sX * PIXEL_STEP; 9479 pY = sY * PIXEL_STEP; 9480 if ('deltaY' in e) { 9481 pY = e.deltaY; 9482 } 9483 if ('deltaX' in e) { 9484 pX = e.deltaX; 9485 } 9486 if (e.shiftKey && !pX) { 9487 // if user scrolls with shift he wants horizontal scroll 9488 pX = pY; 9489 pY = 0; 9490 } 9491 if ((pX || pY) && e.deltaMode) { 9492 if (e.deltaMode === 1) { 9493 // delta in LINE units 9494 pX *= LINE_HEIGHT; 9495 pY *= LINE_HEIGHT; 9496 } else { 9497 // delta in PAGE units 9498 pX *= PAGE_HEIGHT; 9499 pY *= PAGE_HEIGHT; 9500 } 9501 } 9502 9503 // Fall-back if spin cannot be determined 9504 if (pX && !sX) { 9505 sX = pX < 1 ? -1 : 1; 9506 } 9507 if (pY && !sY) { 9508 sY = pY < 1 ? -1 : 1; 9509 } 9510 return { 9511 spinX: sX, 9512 spinY: sY, 9513 pixelX: pX, 9514 pixelY: pY 9515 }; 9516 } 9517 function handleMouseEnter() { 9518 if (!swiper.enabled) return; 9519 swiper.mouseEntered = true; 9520 } 9521 function handleMouseLeave() { 9522 if (!swiper.enabled) return; 9523 swiper.mouseEntered = false; 9524 } 9525 function animateSlider(newEvent) { 9526 if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) { 9527 // Prevent if delta of wheel scroll delta is below configured threshold 9528 return false; 9529 } 9530 if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) { 9531 // Prevent if time between scrolls is below configured threshold 9532 return false; 9533 } 9534 9535 // If the movement is NOT big enough and 9536 // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider): 9537 // Don't go any further (avoid insignificant scroll movement). 9538 if (newEvent.delta >= 6 && now() - lastScrollTime < 60) { 9539 // Return false as a default 9540 return true; 9541 } 9542 // If user is scrolling towards the end: 9543 // If the slider hasn't hit the latest slide or 9544 // if the slider is a loop and 9545 // if the slider isn't moving right now: 9546 // Go to next slide and 9547 // emit a scroll event. 9548 // Else (the user is scrolling towards the beginning) and 9549 // if the slider hasn't hit the first slide or 9550 // if the slider is a loop and 9551 // if the slider isn't moving right now: 9552 // Go to prev slide and 9553 // emit a scroll event. 9554 if (newEvent.direction < 0) { 9555 if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { 9556 swiper.slideNext(); 9557 emit('scroll', newEvent.raw); 9558 } 9559 } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { 9560 swiper.slidePrev(); 9561 emit('scroll', newEvent.raw); 9562 } 9563 // If you got here is because an animation has been triggered so store the current time 9564 lastScrollTime = new window.Date().getTime(); 9565 // Return false as a default 9566 return false; 9567 } 9568 function releaseScroll(newEvent) { 9569 const params = swiper.params.mousewheel; 9570 if (newEvent.direction < 0) { 9571 if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) { 9572 // Return true to animate scroll on edges 9573 return true; 9574 } 9575 } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) { 9576 // Return true to animate scroll on edges 9577 return true; 9578 } 9579 return false; 9580 } 9581 function handle(event) { 9582 let e = event; 9583 let disableParentSwiper = true; 9584 if (!swiper.enabled) return; 9585 9586 // Ignore event if the target or its parents have the swiper-no-mousewheel class 9587 if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return; 9588 const params = swiper.params.mousewheel; 9589 if (swiper.params.cssMode) { 9590 e.preventDefault(); 9591 } 9592 let targetEl = swiper.el; 9593 if (swiper.params.mousewheel.eventsTarget !== 'container') { 9594 targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); 9595 } 9596 const targetElContainsTarget = targetEl && targetEl.contains(e.target); 9597 if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true; 9598 if (e.originalEvent) e = e.originalEvent; // jquery fix 9599 let delta = 0; 9600 const rtlFactor = swiper.rtlTranslate ? -1 : 1; 9601 const data = normalize(e); 9602 if (params.forceToAxis) { 9603 if (swiper.isHorizontal()) { 9604 if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true; 9605 } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true; 9606 } else { 9607 delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY; 9608 } 9609 if (delta === 0) return true; 9610 if (params.invert) delta = -delta; 9611 9612 // Get the scroll positions 9613 let positions = swiper.getTranslate() + delta * params.sensitivity; 9614 if (positions >= swiper.minTranslate()) positions = swiper.minTranslate(); 9615 if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); 9616 9617 // When loop is true: 9618 // the disableParentSwiper will be true. 9619 // When loop is false: 9620 // if the scroll positions is not on edge, 9621 // then the disableParentSwiper will be true. 9622 // if the scroll on edge positions, 9623 // then the disableParentSwiper will be false. 9624 disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate()); 9625 if (disableParentSwiper && swiper.params.nested) e.stopPropagation(); 9626 if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) { 9627 // Register the new event in a variable which stores the relevant data 9628 const newEvent = { 9629 time: now(), 9630 delta: Math.abs(delta), 9631 direction: Math.sign(delta), 9632 raw: event 9633 }; 9634 9635 // Keep the most recent events 9636 if (recentWheelEvents.length >= 2) { 9637 recentWheelEvents.shift(); // only store the last N events 9638 } 9639 9640 const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; 9641 recentWheelEvents.push(newEvent); 9642 9643 // If there is at least one previous recorded event: 9644 // If direction has changed or 9645 // if the scroll is quicker than the previous one: 9646 // Animate the slider. 9647 // Else (this is the first time the wheel is moved): 9648 // Animate the slider. 9649 if (prevEvent) { 9650 if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) { 9651 animateSlider(newEvent); 9652 } 9653 } else { 9654 animateSlider(newEvent); 9655 } 9656 9657 // If it's time to release the scroll: 9658 // Return now so you don't hit the preventDefault. 9659 if (releaseScroll(newEvent)) { 9660 return true; 9661 } 9662 } else { 9663 // Freemode or scrollContainer: 9664 9665 // If we recently snapped after a momentum scroll, then ignore wheel events 9666 // to give time for the deceleration to finish. Stop ignoring after 500 msecs 9667 // or if it's a new scroll (larger delta or inverse sign as last event before 9668 // an end-of-momentum snap). 9669 const newEvent = { 9670 time: now(), 9671 delta: Math.abs(delta), 9672 direction: Math.sign(delta) 9673 }; 9674 const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction; 9675 if (!ignoreWheelEvents) { 9676 lastEventBeforeSnap = undefined; 9677 let position = swiper.getTranslate() + delta * params.sensitivity; 9678 const wasBeginning = swiper.isBeginning; 9679 const wasEnd = swiper.isEnd; 9680 if (position >= swiper.minTranslate()) position = swiper.minTranslate(); 9681 if (position <= swiper.maxTranslate()) position = swiper.maxTranslate(); 9682 swiper.setTransition(0); 9683 swiper.setTranslate(position); 9684 swiper.updateProgress(); 9685 swiper.updateActiveIndex(); 9686 swiper.updateSlidesClasses(); 9687 if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) { 9688 swiper.updateSlidesClasses(); 9689 } 9690 if (swiper.params.loop) { 9691 swiper.loopFix({ 9692 direction: newEvent.direction < 0 ? 'next' : 'prev', 9693 byMousewheel: true 9694 }); 9695 } 9696 if (swiper.params.freeMode.sticky) { 9697 // When wheel scrolling starts with sticky (aka snap) enabled, then detect 9698 // the end of a momentum scroll by storing recent (N=15?) wheel events. 9699 // 1. do all N events have decreasing or same (absolute value) delta? 9700 // 2. did all N events arrive in the last M (M=500?) msecs? 9701 // 3. does the earliest event have an (absolute value) delta that's 9702 // at least P (P=1?) larger than the most recent event's delta? 9703 // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels? 9704 // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration. 9705 // Snap immediately and ignore remaining wheel events in this scroll. 9706 // See comment above for "remaining wheel events in this scroll" determination. 9707 // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event. 9708 clearTimeout(timeout); 9709 timeout = undefined; 9710 if (recentWheelEvents.length >= 15) { 9711 recentWheelEvents.shift(); // only store the last N events 9712 } 9713 9714 const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; 9715 const firstEvent = recentWheelEvents[0]; 9716 recentWheelEvents.push(newEvent); 9717 if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) { 9718 // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log. 9719 recentWheelEvents.splice(0); 9720 } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) { 9721 // We're at the end of the deceleration of a momentum scroll, so there's no need 9722 // to wait for more events. Snap ASAP on the next tick. 9723 // Also, because there's some remaining momentum we'll bias the snap in the 9724 // direction of the ongoing scroll because it's better UX for the scroll to snap 9725 // in the same direction as the scroll instead of reversing to snap. Therefore, 9726 // if it's already scrolled more than 20% in the current direction, keep going. 9727 const snapToThreshold = delta > 0 ? 0.8 : 0.2; 9728 lastEventBeforeSnap = newEvent; 9729 recentWheelEvents.splice(0); 9730 timeout = nextTick(() => { 9731 if (swiper.destroyed || !swiper.params) return; 9732 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 9733 }, 0); // no delay; move on next tick 9734 } 9735 9736 if (!timeout) { 9737 // if we get here, then we haven't detected the end of a momentum scroll, so 9738 // we'll consider a scroll "complete" when there haven't been any wheel events 9739 // for 500ms. 9740 timeout = nextTick(() => { 9741 if (swiper.destroyed || !swiper.params) return; 9742 const snapToThreshold = 0.5; 9743 lastEventBeforeSnap = newEvent; 9744 recentWheelEvents.splice(0); 9745 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 9746 }, 500); 9747 } 9748 } 9749 9750 // Emit event 9751 if (!ignoreWheelEvents) emit('scroll', e); 9752 9753 // Stop autoplay 9754 if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); 9755 // Return page scroll on edge positions 9756 if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) { 9757 return true; 9758 } 9759 } 9760 } 9761 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 9762 return false; 9763 } 9764 function events(method) { 9765 let targetEl = swiper.el; 9766 if (swiper.params.mousewheel.eventsTarget !== 'container') { 9767 targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); 9768 } 9769 targetEl[method]('mouseenter', handleMouseEnter); 9770 targetEl[method]('mouseleave', handleMouseLeave); 9771 targetEl[method]('wheel', handle); 9772 } 9773 function enable() { 9774 if (swiper.params.cssMode) { 9775 swiper.wrapperEl.removeEventListener('wheel', handle); 9776 return true; 9777 } 9778 if (swiper.mousewheel.enabled) return false; 9779 events('addEventListener'); 9780 swiper.mousewheel.enabled = true; 9781 return true; 9782 } 9783 function disable() { 9784 if (swiper.params.cssMode) { 9785 swiper.wrapperEl.addEventListener(event, handle); 9786 return true; 9787 } 9788 if (!swiper.mousewheel.enabled) return false; 9789 events('removeEventListener'); 9790 swiper.mousewheel.enabled = false; 9791 return true; 9792 } 9793 on('init', () => { 9794 if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) { 9795 disable(); 9796 } 9797 if (swiper.params.mousewheel.enabled) enable(); 9798 }); 9799 on('destroy', () => { 9800 if (swiper.params.cssMode) { 9801 enable(); 9802 } 9803 if (swiper.mousewheel.enabled) disable(); 9804 }); 9805 Object.assign(swiper.mousewheel, { 9806 enable, 9807 disable 9808 }); 9809} 9810 9811 9812 9813;// CONCATENATED MODULE: ./node_modules/swiper/shared/create-element-if-not-defined.mjs 9814 9815 9816function create_element_if_not_defined_createElementIfNotDefined(swiper, originalParams, params, checkProps) { 9817 if (swiper.params.createElements) { 9818 Object.keys(checkProps).forEach(key => { 9819 if (!params[key] && params.auto === true) { 9820 let element = utils_elementChildren(swiper.el, `.${checkProps[key]}`)[0]; 9821 if (!element) { 9822 element = utils_createElement('div', checkProps[key]); 9823 element.className = checkProps[key]; 9824 swiper.el.append(element); 9825 } 9826 params[key] = element; 9827 originalParams[key] = element; 9828 } 9829 }); 9830 } 9831 return params; 9832} 9833 9834 9835 9836;// CONCATENATED MODULE: ./node_modules/swiper/modules/navigation.mjs 9837 9838 9839 9840function Navigation(_ref) { 9841 let { 9842 swiper, 9843 extendParams, 9844 on, 9845 emit 9846 } = _ref; 9847 extendParams({ 9848 navigation: { 9849 nextEl: null, 9850 prevEl: null, 9851 hideOnClick: false, 9852 disabledClass: 'swiper-button-disabled', 9853 hiddenClass: 'swiper-button-hidden', 9854 lockClass: 'swiper-button-lock', 9855 navigationDisabledClass: 'swiper-navigation-disabled' 9856 } 9857 }); 9858 swiper.navigation = { 9859 nextEl: null, 9860 prevEl: null 9861 }; 9862 function getEl(el) { 9863 let res; 9864 if (el && typeof el === 'string' && swiper.isElement) { 9865 res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el); 9866 if (res) return res; 9867 } 9868 if (el) { 9869 if (typeof el === 'string') res = [...document.querySelectorAll(el)]; 9870 if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) { 9871 res = swiper.el.querySelector(el); 9872 } else if (res && res.length === 1) { 9873 res = res[0]; 9874 } 9875 } 9876 if (el && !res) return el; 9877 // if (Array.isArray(res) && res.length === 1) res = res[0]; 9878 return res; 9879 } 9880 function toggleEl(el, disabled) { 9881 const params = swiper.params.navigation; 9882 el = utils_makeElementsArray(el); 9883 el.forEach(subEl => { 9884 if (subEl) { 9885 subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' ')); 9886 if (subEl.tagName === 'BUTTON') subEl.disabled = disabled; 9887 if (swiper.params.watchOverflow && swiper.enabled) { 9888 subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); 9889 } 9890 } 9891 }); 9892 } 9893 function update() { 9894 // Update Navigation Buttons 9895 const { 9896 nextEl, 9897 prevEl 9898 } = swiper.navigation; 9899 if (swiper.params.loop) { 9900 toggleEl(prevEl, false); 9901 toggleEl(nextEl, false); 9902 return; 9903 } 9904 toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind); 9905 toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind); 9906 } 9907 function onPrevClick(e) { 9908 e.preventDefault(); 9909 if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return; 9910 swiper.slidePrev(); 9911 emit('navigationPrev'); 9912 } 9913 function onNextClick(e) { 9914 e.preventDefault(); 9915 if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return; 9916 swiper.slideNext(); 9917 emit('navigationNext'); 9918 } 9919 function init() { 9920 const params = swiper.params.navigation; 9921 swiper.params.navigation = create_element_if_not_defined_createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, { 9922 nextEl: 'swiper-button-next', 9923 prevEl: 'swiper-button-prev' 9924 }); 9925 if (!(params.nextEl || params.prevEl)) return; 9926 let nextEl = getEl(params.nextEl); 9927 let prevEl = getEl(params.prevEl); 9928 Object.assign(swiper.navigation, { 9929 nextEl, 9930 prevEl 9931 }); 9932 nextEl = utils_makeElementsArray(nextEl); 9933 prevEl = utils_makeElementsArray(prevEl); 9934 const initButton = (el, dir) => { 9935 if (el) { 9936 el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick); 9937 } 9938 if (!swiper.enabled && el) { 9939 el.classList.add(...params.lockClass.split(' ')); 9940 } 9941 }; 9942 nextEl.forEach(el => initButton(el, 'next')); 9943 prevEl.forEach(el => initButton(el, 'prev')); 9944 } 9945 function destroy() { 9946 let { 9947 nextEl, 9948 prevEl 9949 } = swiper.navigation; 9950 nextEl = utils_makeElementsArray(nextEl); 9951 prevEl = utils_makeElementsArray(prevEl); 9952 const destroyButton = (el, dir) => { 9953 el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick); 9954 el.classList.remove(...swiper.params.navigation.disabledClass.split(' ')); 9955 }; 9956 nextEl.forEach(el => destroyButton(el, 'next')); 9957 prevEl.forEach(el => destroyButton(el, 'prev')); 9958 } 9959 on('init', () => { 9960 if (swiper.params.navigation.enabled === false) { 9961 // eslint-disable-next-line 9962 disable(); 9963 } else { 9964 init(); 9965 update(); 9966 } 9967 }); 9968 on('toEdge fromEdge lock unlock', () => { 9969 update(); 9970 }); 9971 on('destroy', () => { 9972 destroy(); 9973 }); 9974 on('enable disable', () => { 9975 let { 9976 nextEl, 9977 prevEl 9978 } = swiper.navigation; 9979 nextEl = utils_makeElementsArray(nextEl); 9980 prevEl = utils_makeElementsArray(prevEl); 9981 if (swiper.enabled) { 9982 update(); 9983 return; 9984 } 9985 [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass)); 9986 }); 9987 on('click', (_s, e) => { 9988 let { 9989 nextEl, 9990 prevEl 9991 } = swiper.navigation; 9992 nextEl = utils_makeElementsArray(nextEl); 9993 prevEl = utils_makeElementsArray(prevEl); 9994 const targetEl = e.target; 9995 let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl); 9996 if (swiper.isElement && !targetIsButton) { 9997 const path = e.path || e.composedPath && e.composedPath(); 9998 if (path) { 9999 targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl)); 10000 } 10001 } 10002 if (swiper.params.navigation.hideOnClick && !targetIsButton) { 10003 if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return; 10004 let isHidden; 10005 if (nextEl.length) { 10006 isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass); 10007 } else if (prevEl.length) { 10008 isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass); 10009 } 10010 if (isHidden === true) { 10011 emit('navigationShow'); 10012 } else { 10013 emit('navigationHide'); 10014 } 10015 [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass)); 10016 } 10017 }); 10018 const enable = () => { 10019 swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' ')); 10020 init(); 10021 update(); 10022 }; 10023 const disable = () => { 10024 swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' ')); 10025 destroy(); 10026 }; 10027 Object.assign(swiper.navigation, { 10028 enable, 10029 disable, 10030 update, 10031 init, 10032 destroy 10033 }); 10034} 10035 10036 10037 10038;// CONCATENATED MODULE: ./node_modules/swiper/modules/pagination.mjs 10039 10040 10041 10042 10043function Pagination(_ref) { 10044 let { 10045 swiper, 10046 extendParams, 10047 on, 10048 emit 10049 } = _ref;
vendor: 8,796 bytes, lines 10049-10267
10049 10050 const pfx = 'swiper-pagination'; 10051 extendParams({ 10052 pagination: { 10053 el: null, 10054 bulletElement: 'span', 10055 clickable: false, 10056 hideOnClick: false, 10057 renderBullet: null, 10058 renderProgressbar: null, 10059 renderFraction: null, 10060 renderCustom: null, 10061 progressbarOpposite: false, 10062 type: 'bullets', 10063 // 'bullets' or 'progressbar' or 'fraction' or 'custom' 10064 dynamicBullets: false, 10065 dynamicMainBullets: 1, 10066 formatFractionCurrent: number => number, 10067 formatFractionTotal: number => number, 10068 bulletClass: `${pfx}-bullet`, 10069 bulletActiveClass: `${pfx}-bullet-active`, 10070 modifierClass: `${pfx}-`, 10071 currentClass: `${pfx}-current`, 10072 totalClass: `${pfx}-total`, 10073 hiddenClass: `${pfx}-hidden`, 10074 progressbarFillClass: `${pfx}-progressbar-fill`, 10075 progressbarOppositeClass: `${pfx}-progressbar-opposite`, 10076 clickableClass: `${pfx}-clickable`, 10077 lockClass: `${pfx}-lock`, 10078 horizontalClass: `${pfx}-horizontal`, 10079 verticalClass: `${pfx}-vertical`, 10080 paginationDisabledClass: `${pfx}-disabled` 10081 } 10082 }); 10083 swiper.pagination = { 10084 el: null, 10085 bullets: [] 10086 }; 10087 let bulletSize; 10088 let dynamicBulletIndex = 0; 10089 function isPaginationDisabled() { 10090 return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0; 10091 } 10092 function setSideBullets(bulletEl, position) { 10093 const { 10094 bulletActiveClass 10095 } = swiper.params.pagination; 10096 if (!bulletEl) return; 10097 bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; 10098 if (bulletEl) { 10099 bulletEl.classList.add(`${bulletActiveClass}-${position}`); 10100 bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; 10101 if (bulletEl) { 10102 bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`); 10103 } 10104 } 10105 } 10106 function getMoveDirection(prevIndex, nextIndex, length) { 10107 prevIndex = prevIndex % length; 10108 nextIndex = nextIndex % length; 10109 if (nextIndex === prevIndex + 1) { 10110 return 'next'; 10111 } else if (nextIndex === prevIndex - 1) { 10112 return 'previous'; 10113 } 10114 return; 10115 } 10116 function onBulletClick(e) { 10117 const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass)); 10118 if (!bulletEl) { 10119 return; 10120 } 10121 e.preventDefault(); 10122 const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup; 10123 if (swiper.params.loop) { 10124 if (swiper.realIndex === index) return; 10125 const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length); 10126 if (moveDirection === 'next') { 10127 swiper.slideNext(); 10128 } else if (moveDirection === 'previous') { 10129 swiper.slidePrev(); 10130 } else { 10131 swiper.slideToLoop(index); 10132 } 10133 } else { 10134 swiper.slideTo(index); 10135 } 10136 } 10137 function update() { 10138 // Render || Update Pagination bullets/items 10139 const rtl = swiper.rtl; 10140 const params = swiper.params.pagination; 10141 if (isPaginationDisabled()) return; 10142 let el = swiper.pagination.el; 10143 el = makeElementsArray(el); 10144 // Current/Total 10145 let current; 10146 let previousIndex; 10147 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 10148 const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 10149 if (swiper.params.loop) { 10150 previousIndex = swiper.previousRealIndex || 0; 10151 current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex; 10152 } else if (typeof swiper.snapIndex !== 'undefined') { 10153 current = swiper.snapIndex; 10154 previousIndex = swiper.previousSnapIndex; 10155 } else { 10156 previousIndex = swiper.previousIndex || 0; 10157 current = swiper.activeIndex || 0; 10158 } 10159 // Types 10160 if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { 10161 const bullets = swiper.pagination.bullets; 10162 let firstIndex; 10163 let lastIndex; 10164 let midIndex; 10165 if (params.dynamicBullets) { 10166 bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true); 10167 el.forEach(subEl => { 10168 subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`; 10169 }); 10170 if (params.dynamicMainBullets > 1 && previousIndex !== undefined) { 10171 dynamicBulletIndex += current - (previousIndex || 0); 10172 if (dynamicBulletIndex > params.dynamicMainBullets - 1) { 10173 dynamicBulletIndex = params.dynamicMainBullets - 1; 10174 } else if (dynamicBulletIndex < 0) { 10175 dynamicBulletIndex = 0; 10176 } 10177 } 10178 firstIndex = Math.max(current - dynamicBulletIndex, 0); 10179 lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1); 10180 midIndex = (lastIndex + firstIndex) / 2; 10181 } 10182 bullets.forEach(bulletEl => { 10183 const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat(); 10184 bulletEl.classList.remove(...classesToRemove); 10185 }); 10186 if (el.length > 1) { 10187 bullets.forEach(bullet => { 10188 const bulletIndex = elementIndex(bullet); 10189 if (bulletIndex === current) { 10190 bullet.classList.add(...params.bulletActiveClass.split(' ')); 10191 } else if (swiper.isElement) { 10192 bullet.setAttribute('part', 'bullet'); 10193 } 10194 if (params.dynamicBullets) { 10195 if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { 10196 bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' ')); 10197 } 10198 if (bulletIndex === firstIndex) { 10199 setSideBullets(bullet, 'prev'); 10200 } 10201 if (bulletIndex === lastIndex) { 10202 setSideBullets(bullet, 'next'); 10203 } 10204 } 10205 }); 10206 } else { 10207 const bullet = bullets[current]; 10208 if (bullet) { 10209 bullet.classList.add(...params.bulletActiveClass.split(' ')); 10210 } 10211 if (swiper.isElement) { 10212 bullets.forEach((bulletEl, bulletIndex) => { 10213 bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet'); 10214 }); 10215 } 10216 if (params.dynamicBullets) { 10217 const firstDisplayedBullet = bullets[firstIndex]; 10218 const lastDisplayedBullet = bullets[lastIndex]; 10219 for (let i = firstIndex; i <= lastIndex; i += 1) { 10220 if (bullets[i]) { 10221 bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' ')); 10222 } 10223 } 10224 setSideBullets(firstDisplayedBullet, 'prev'); 10225 setSideBullets(lastDisplayedBullet, 'next'); 10226 } 10227 } 10228 if (params.dynamicBullets) { 10229 const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); 10230 const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize; 10231 const offsetProp = rtl ? 'right' : 'left'; 10232 bullets.forEach(bullet => { 10233 bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`; 10234 }); 10235 } 10236 } 10237 el.forEach((subEl, subElIndex) => { 10238 if (params.type === 'fraction') { 10239 subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => { 10240 fractionEl.textContent = params.formatFractionCurrent(current + 1); 10241 }); 10242 subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => { 10243 totalEl.textContent = params.formatFractionTotal(total); 10244 }); 10245 } 10246 if (params.type === 'progressbar') { 10247 let progressbarDirection; 10248 if (params.progressbarOpposite) { 10249 progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal'; 10250 } else { 10251 progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical'; 10252 } 10253 const scale = (current + 1) / total; 10254 let scaleX = 1; 10255 let scaleY = 1; 10256 if (progressbarDirection === 'horizontal') { 10257 scaleX = scale; 10258 } else { 10259 scaleY = scale; 10260 } 10261 subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => { 10262 progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`; 10263 progressEl.style.transitionDuration = `${swiper.params.speed}ms`; 10264 }); 10265 } 10266 if (params.type === 'custom' && params.renderCustom) { 10267 s
vendor: 8,468 bytes, lines 10267-10514
10267ubEl.innerHTML = params.renderCustom(swiper, current + 1, total); 10268 if (subElIndex === 0) emit('paginationRender', subEl); 10269 } else { 10270 if (subElIndex === 0) emit('paginationRender', subEl); 10271 emit('paginationUpdate', subEl); 10272 } 10273 if (swiper.params.watchOverflow && swiper.enabled) { 10274 subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); 10275 } 10276 }); 10277 } 10278 function render() { 10279 // Render Container 10280 const params = swiper.params.pagination; 10281 if (isPaginationDisabled()) return; 10282 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length; 10283 let el = swiper.pagination.el; 10284 el = makeElementsArray(el); 10285 let paginationHTML = ''; 10286 if (params.type === 'bullets') { 10287 let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 10288 if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) { 10289 numberOfBullets = slidesLength; 10290 } 10291 for (let i = 0; i < numberOfBullets; i += 1) { 10292 if (params.renderBullet) { 10293 paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); 10294 } else { 10295 // prettier-ignore 10296 paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}"></${params.bulletElement}>`; 10297 } 10298 } 10299 } 10300 if (params.type === 'fraction') { 10301 if (params.renderFraction) { 10302 paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); 10303 } else { 10304 paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`; 10305 } 10306 } 10307 if (params.type === 'progressbar') { 10308 if (params.renderProgressbar) { 10309 paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); 10310 } else { 10311 paginationHTML = `<span class="${params.progressbarFillClass}"></span>`; 10312 } 10313 } 10314 swiper.pagination.bullets = []; 10315 el.forEach(subEl => { 10316 if (params.type !== 'custom') { 10317 subEl.innerHTML = paginationHTML || ''; 10318 } 10319 if (params.type === 'bullets') { 10320 swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass))); 10321 } 10322 }); 10323 if (params.type !== 'custom') { 10324 emit('paginationRender', el[0]); 10325 } 10326 } 10327 function init() { 10328 swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, { 10329 el: 'swiper-pagination' 10330 }); 10331 const params = swiper.params.pagination; 10332 if (!params.el) return; 10333 let el; 10334 if (typeof params.el === 'string' && swiper.isElement) { 10335 el = swiper.el.querySelector(params.el); 10336 } 10337 if (!el && typeof params.el === 'string') { 10338 el = [...document.querySelectorAll(params.el)]; 10339 } 10340 if (!el) { 10341 el = params.el; 10342 } 10343 if (!el || el.length === 0) return; 10344 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) { 10345 el = [...swiper.el.querySelectorAll(params.el)]; 10346 // check if it belongs to another nested Swiper 10347 if (el.length > 1) { 10348 el = el.filter(subEl => { 10349 if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false; 10350 return true; 10351 })[0]; 10352 } 10353 } 10354 if (Array.isArray(el) && el.length === 1) el = el[0]; 10355 Object.assign(swiper.pagination, { 10356 el 10357 }); 10358 el = makeElementsArray(el); 10359 el.forEach(subEl => { 10360 if (params.type === 'bullets' && params.clickable) { 10361 subEl.classList.add(...(params.clickableClass || '').split(' ')); 10362 } 10363 subEl.classList.add(params.modifierClass + params.type); 10364 subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 10365 if (params.type === 'bullets' && params.dynamicBullets) { 10366 subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`); 10367 dynamicBulletIndex = 0; 10368 if (params.dynamicMainBullets < 1) { 10369 params.dynamicMainBullets = 1; 10370 } 10371 } 10372 if (params.type === 'progressbar' && params.progressbarOpposite) { 10373 subEl.classList.add(params.progressbarOppositeClass); 10374 } 10375 if (params.clickable) { 10376 subEl.addEventListener('click', onBulletClick); 10377 } 10378 if (!swiper.enabled) { 10379 subEl.classList.add(params.lockClass); 10380 } 10381 }); 10382 } 10383 function destroy() { 10384 const params = swiper.params.pagination; 10385 if (isPaginationDisabled()) return; 10386 let el = swiper.pagination.el; 10387 if (el) { 10388 el = makeElementsArray(el); 10389 el.forEach(subEl => { 10390 subEl.classList.remove(params.hiddenClass); 10391 subEl.classList.remove(params.modifierClass + params.type); 10392 subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 10393 if (params.clickable) { 10394 subEl.classList.remove(...(params.clickableClass || '').split(' ')); 10395 subEl.removeEventListener('click', onBulletClick); 10396 } 10397 }); 10398 } 10399 if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' '))); 10400 } 10401 on('changeDirection', () => { 10402 if (!swiper.pagination || !swiper.pagination.el) return; 10403 const params = swiper.params.pagination; 10404 let { 10405 el 10406 } = swiper.pagination; 10407 el = makeElementsArray(el); 10408 el.forEach(subEl => { 10409 subEl.classList.remove(params.horizontalClass, params.verticalClass); 10410 subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 10411 }); 10412 }); 10413 on('init', () => { 10414 if (swiper.params.pagination.enabled === false) { 10415 // eslint-disable-next-line 10416 disable(); 10417 } else { 10418 init(); 10419 render(); 10420 update(); 10421 } 10422 }); 10423 on('activeIndexChange', () => { 10424 if (typeof swiper.snapIndex === 'undefined') { 10425 update(); 10426 } 10427 }); 10428 on('snapIndexChange', () => { 10429 update(); 10430 }); 10431 on('snapGridLengthChange', () => { 10432 render(); 10433 update(); 10434 }); 10435 on('destroy', () => { 10436 destroy(); 10437 }); 10438 on('enable disable', () => { 10439 let { 10440 el 10441 } = swiper.pagination; 10442 if (el) { 10443 el = makeElementsArray(el); 10444 el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass)); 10445 } 10446 }); 10447 on('lock unlock', () => { 10448 update(); 10449 }); 10450 on('click', (_s, e) => { 10451 const targetEl = e.target; 10452 const el = makeElementsArray(swiper.pagination.el); 10453 if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) { 10454 if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return; 10455 const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass); 10456 if (isHidden === true) { 10457 emit('paginationShow'); 10458 } else { 10459 emit('paginationHide'); 10460 } 10461 el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass)); 10462 } 10463 }); 10464 const enable = () => { 10465 swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass); 10466 let { 10467 el 10468 } = swiper.pagination; 10469 if (el) { 10470 el = makeElementsArray(el); 10471 el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass)); 10472 } 10473 init(); 10474 render(); 10475 update(); 10476 }; 10477 const disable = () => { 10478 swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass); 10479 let { 10480 el 10481 } = swiper.pagination; 10482 if (el) { 10483 el = makeElementsArray(el); 10484 el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass)); 10485 } 10486 destroy(); 10487 }; 10488 Object.assign(swiper.pagination, { 10489 enable, 10490 disable, 10491 render, 10492 update, 10493 init, 10494 destroy 10495 }); 10496} 10497 10498 10499 10500;// CONCATENATED MODULE: ./node_modules/swiper/modules/scrollbar.mjs 10501 10502 10503 10504 10505 10506function Scrollbar(_ref) { 10507 let { 10508 swiper, 10509 extendParams, 10510 on, 10511 emit 10512 } = _ref; 10513 const document = getDocument(); 10514 let isTouched = false;
vendor: 4,705 bytes, lines 10515-10667
10515 let timeout = null; 10516 let dragTimeout = null; 10517 let dragStartPos; 10518 let dragSize; 10519 let trackSize; 10520 let divider; 10521 extendParams({ 10522 scrollbar: { 10523 el: null, 10524 dragSize: 'auto', 10525 hide: false, 10526 draggable: false, 10527 snapOnRelease: true, 10528 lockClass: 'swiper-scrollbar-lock', 10529 dragClass: 'swiper-scrollbar-drag', 10530 scrollbarDisabledClass: 'swiper-scrollbar-disabled', 10531 horizontalClass: `swiper-scrollbar-horizontal`, 10532 verticalClass: `swiper-scrollbar-vertical` 10533 } 10534 }); 10535 swiper.scrollbar = { 10536 el: null, 10537 dragEl: null 10538 }; 10539 function setTranslate() { 10540 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 10541 const { 10542 scrollbar, 10543 rtlTranslate: rtl 10544 } = swiper; 10545 const { 10546 dragEl, 10547 el 10548 } = scrollbar; 10549 const params = swiper.params.scrollbar; 10550 const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress; 10551 let newSize = dragSize; 10552 let newPos = (trackSize - dragSize) * progress; 10553 if (rtl) { 10554 newPos = -newPos; 10555 if (newPos > 0) { 10556 newSize = dragSize - newPos; 10557 newPos = 0; 10558 } else if (-newPos + dragSize > trackSize) { 10559 newSize = trackSize + newPos; 10560 } 10561 } else if (newPos < 0) { 10562 newSize = dragSize + newPos; 10563 newPos = 0; 10564 } else if (newPos + dragSize > trackSize) { 10565 newSize = trackSize - newPos; 10566 } 10567 if (swiper.isHorizontal()) { 10568 dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`; 10569 dragEl.style.width = `${newSize}px`; 10570 } else { 10571 dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`; 10572 dragEl.style.height = `${newSize}px`; 10573 } 10574 if (params.hide) { 10575 clearTimeout(timeout); 10576 el.style.opacity = 1; 10577 timeout = setTimeout(() => { 10578 el.style.opacity = 0; 10579 el.style.transitionDuration = '400ms'; 10580 }, 1000); 10581 } 10582 } 10583 function setTransition(duration) { 10584 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 10585 swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`; 10586 } 10587 function updateSize() { 10588 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 10589 const { 10590 scrollbar 10591 } = swiper; 10592 const { 10593 dragEl, 10594 el 10595 } = scrollbar; 10596 dragEl.style.width = ''; 10597 dragEl.style.height = ''; 10598 trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight; 10599 divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0)); 10600 if (swiper.params.scrollbar.dragSize === 'auto') { 10601 dragSize = trackSize * divider; 10602 } else { 10603 dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); 10604 } 10605 if (swiper.isHorizontal()) { 10606 dragEl.style.width = `${dragSize}px`; 10607 } else { 10608 dragEl.style.height = `${dragSize}px`; 10609 } 10610 if (divider >= 1) { 10611 el.style.display = 'none'; 10612 } else { 10613 el.style.display = ''; 10614 } 10615 if (swiper.params.scrollbar.hide) { 10616 el.style.opacity = 0; 10617 } 10618 if (swiper.params.watchOverflow && swiper.enabled) { 10619 scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass); 10620 } 10621 } 10622 function getPointerPosition(e) { 10623 return swiper.isHorizontal() ? e.clientX : e.clientY; 10624 } 10625 function setDragPosition(e) { 10626 const { 10627 scrollbar, 10628 rtlTranslate: rtl 10629 } = swiper; 10630 const { 10631 el 10632 } = scrollbar; 10633 let positionRatio; 10634 positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize); 10635 positionRatio = Math.max(Math.min(positionRatio, 1), 0); 10636 if (rtl) { 10637 positionRatio = 1 - positionRatio; 10638 } 10639 const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio; 10640 swiper.updateProgress(position); 10641 swiper.setTranslate(position); 10642 swiper.updateActiveIndex(); 10643 swiper.updateSlidesClasses(); 10644 } 10645 function onDragStart(e) { 10646 const params = swiper.params.scrollbar; 10647 const { 10648 scrollbar, 10649 wrapperEl 10650 } = swiper; 10651 const { 10652 el, 10653 dragEl 10654 } = scrollbar; 10655 isTouched = true; 10656 dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null; 10657 e.preventDefault(); 10658 e.stopPropagation(); 10659 wrapperEl.style.transitionDuration = '100ms'; 10660 dragEl.style.transitionDuration = '100ms'; 10661 setDragPosition(e); 10662 clearTimeout(dragTimeout); 10663 el.style.transitionDuration = '0ms'; 10664 if (params.hide) { 10665 el.style.opacity = 1; 10666 } 10667 if (swiper.params.cssMode) {
vendor: 60,298 bytes, lines 10668-12491
10668 swiper.wrapperEl.style['scroll-snap-type'] = 'none'; 10669 } 10670 emit('scrollbarDragStart', e); 10671 } 10672 function onDragMove(e) { 10673 const { 10674 scrollbar, 10675 wrapperEl 10676 } = swiper; 10677 const { 10678 el, 10679 dragEl 10680 } = scrollbar; 10681 if (!isTouched) return; 10682 if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false; 10683 setDragPosition(e); 10684 wrapperEl.style.transitionDuration = '0ms'; 10685 el.style.transitionDuration = '0ms'; 10686 dragEl.style.transitionDuration = '0ms'; 10687 emit('scrollbarDragMove', e); 10688 } 10689 function onDragEnd(e) { 10690 const params = swiper.params.scrollbar; 10691 const { 10692 scrollbar, 10693 wrapperEl 10694 } = swiper; 10695 const { 10696 el 10697 } = scrollbar; 10698 if (!isTouched) return; 10699 isTouched = false; 10700 if (swiper.params.cssMode) { 10701 swiper.wrapperEl.style['scroll-snap-type'] = ''; 10702 wrapperEl.style.transitionDuration = ''; 10703 } 10704 if (params.hide) { 10705 clearTimeout(dragTimeout); 10706 dragTimeout = nextTick(() => { 10707 el.style.opacity = 0; 10708 el.style.transitionDuration = '400ms'; 10709 }, 1000); 10710 } 10711 emit('scrollbarDragEnd', e); 10712 if (params.snapOnRelease) { 10713 swiper.slideToClosest(); 10714 } 10715 } 10716 function events(method) { 10717 const { 10718 scrollbar, 10719 params 10720 } = swiper; 10721 const el = scrollbar.el; 10722 if (!el) return; 10723 const target = el; 10724 const activeListener = params.passiveListeners ? { 10725 passive: false, 10726 capture: false 10727 } : false; 10728 const passiveListener = params.passiveListeners ? { 10729 passive: true, 10730 capture: false 10731 } : false; 10732 if (!target) return; 10733 const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; 10734 target[eventMethod]('pointerdown', onDragStart, activeListener); 10735 document[eventMethod]('pointermove', onDragMove, activeListener); 10736 document[eventMethod]('pointerup', onDragEnd, passiveListener); 10737 } 10738 function enableDraggable() { 10739 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 10740 events('on'); 10741 } 10742 function disableDraggable() { 10743 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 10744 events('off'); 10745 } 10746 function init() { 10747 const { 10748 scrollbar, 10749 el: swiperEl 10750 } = swiper; 10751 swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, { 10752 el: 'swiper-scrollbar' 10753 }); 10754 const params = swiper.params.scrollbar; 10755 if (!params.el) return; 10756 let el; 10757 if (typeof params.el === 'string' && swiper.isElement) { 10758 el = swiper.el.querySelector(params.el); 10759 } 10760 if (!el && typeof params.el === 'string') { 10761 el = document.querySelectorAll(params.el); 10762 if (!el.length) return; 10763 } else if (!el) { 10764 el = params.el; 10765 } 10766 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) { 10767 el = swiperEl.querySelector(params.el); 10768 } 10769 if (el.length > 0) el = el[0]; 10770 el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 10771 let dragEl; 10772 if (el) { 10773 dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass)); 10774 if (!dragEl) { 10775 dragEl = createElement('div', swiper.params.scrollbar.dragClass); 10776 el.append(dragEl); 10777 } 10778 } 10779 Object.assign(scrollbar, { 10780 el, 10781 dragEl 10782 }); 10783 if (params.draggable) { 10784 enableDraggable(); 10785 } 10786 if (el) { 10787 el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass)); 10788 } 10789 } 10790 function destroy() { 10791 const params = swiper.params.scrollbar; 10792 const el = swiper.scrollbar.el; 10793 if (el) { 10794 el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass)); 10795 } 10796 disableDraggable(); 10797 } 10798 on('changeDirection', () => { 10799 if (!swiper.scrollbar || !swiper.scrollbar.el) return; 10800 const params = swiper.params.scrollbar; 10801 let { 10802 el 10803 } = swiper.scrollbar; 10804 el = makeElementsArray(el); 10805 el.forEach(subEl => { 10806 subEl.classList.remove(params.horizontalClass, params.verticalClass); 10807 subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 10808 }); 10809 }); 10810 on('init', () => { 10811 if (swiper.params.scrollbar.enabled === false) { 10812 // eslint-disable-next-line 10813 disable(); 10814 } else { 10815 init(); 10816 updateSize(); 10817 setTranslate(); 10818 } 10819 }); 10820 on('update resize observerUpdate lock unlock changeDirection', () => { 10821 updateSize(); 10822 }); 10823 on('setTranslate', () => { 10824 setTranslate(); 10825 }); 10826 on('setTransition', (_s, duration) => { 10827 setTransition(duration); 10828 }); 10829 on('enable disable', () => { 10830 const { 10831 el 10832 } = swiper.scrollbar; 10833 if (el) { 10834 el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass)); 10835 } 10836 }); 10837 on('destroy', () => { 10838 destroy(); 10839 }); 10840 const enable = () => { 10841 swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); 10842 if (swiper.scrollbar.el) { 10843 swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); 10844 } 10845 init(); 10846 updateSize(); 10847 setTranslate(); 10848 }; 10849 const disable = () => { 10850 swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); 10851 if (swiper.scrollbar.el) { 10852 swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); 10853 } 10854 destroy(); 10855 }; 10856 Object.assign(swiper.scrollbar, { 10857 enable, 10858 disable, 10859 updateSize, 10860 setTranslate, 10861 init, 10862 destroy 10863 }); 10864} 10865 10866 10867 10868;// CONCATENATED MODULE: ./node_modules/swiper/modules/parallax.mjs 10869 10870 10871function Parallax(_ref) { 10872 let { 10873 swiper, 10874 extendParams, 10875 on 10876 } = _ref; 10877 extendParams({ 10878 parallax: { 10879 enabled: false 10880 } 10881 }); 10882 const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]'; 10883 const setTransform = (el, progress) => { 10884 const { 10885 rtl 10886 } = swiper; 10887 const rtlFactor = rtl ? -1 : 1; 10888 const p = el.getAttribute('data-swiper-parallax') || '0'; 10889 let x = el.getAttribute('data-swiper-parallax-x'); 10890 let y = el.getAttribute('data-swiper-parallax-y'); 10891 const scale = el.getAttribute('data-swiper-parallax-scale'); 10892 const opacity = el.getAttribute('data-swiper-parallax-opacity'); 10893 const rotate = el.getAttribute('data-swiper-parallax-rotate'); 10894 if (x || y) { 10895 x = x || '0'; 10896 y = y || '0'; 10897 } else if (swiper.isHorizontal()) { 10898 x = p; 10899 y = '0'; 10900 } else { 10901 y = p; 10902 x = '0'; 10903 } 10904 if (x.indexOf('%') >= 0) { 10905 x = `${parseInt(x, 10) * progress * rtlFactor}%`; 10906 } else { 10907 x = `${x * progress * rtlFactor}px`; 10908 } 10909 if (y.indexOf('%') >= 0) { 10910 y = `${parseInt(y, 10) * progress}%`; 10911 } else { 10912 y = `${y * progress}px`; 10913 } 10914 if (typeof opacity !== 'undefined' && opacity !== null) { 10915 const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress)); 10916 el.style.opacity = currentOpacity; 10917 } 10918 let transform = `translate3d(${x}, ${y}, 0px)`; 10919 if (typeof scale !== 'undefined' && scale !== null) { 10920 const currentScale = scale - (scale - 1) * (1 - Math.abs(progress)); 10921 transform += ` scale(${currentScale})`; 10922 } 10923 if (rotate && typeof rotate !== 'undefined' && rotate !== null) { 10924 const currentRotate = rotate * progress * -1; 10925 transform += ` rotate(${currentRotate}deg)`; 10926 } 10927 el.style.transform = transform; 10928 }; 10929 const setTranslate = () => { 10930 const { 10931 el, 10932 slides, 10933 progress, 10934 snapGrid, 10935 isElement 10936 } = swiper; 10937 const elements = elementChildren(el, elementsSelector); 10938 if (swiper.isElement) { 10939 elements.push(...elementChildren(swiper.hostEl, elementsSelector)); 10940 } 10941 elements.forEach(subEl => { 10942 setTransform(subEl, progress); 10943 }); 10944 slides.forEach((slideEl, slideIndex) => { 10945 let slideProgress = slideEl.progress; 10946 if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { 10947 slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1); 10948 } 10949 slideProgress = Math.min(Math.max(slideProgress, -1), 1); 10950 slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => { 10951 setTransform(subEl, slideProgress); 10952 }); 10953 }); 10954 }; 10955 const setTransition = function (duration) { 10956 if (duration === void 0) { 10957 duration = swiper.params.speed; 10958 } 10959 const { 10960 el, 10961 hostEl 10962 } = swiper; 10963 const elements = [...el.querySelectorAll(elementsSelector)]; 10964 if (swiper.isElement) { 10965 elements.push(...hostEl.querySelectorAll(elementsSelector)); 10966 } 10967 elements.forEach(parallaxEl => { 10968 let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration; 10969 if (duration === 0) parallaxDuration = 0; 10970 parallaxEl.style.transitionDuration = `${parallaxDuration}ms`; 10971 }); 10972 }; 10973 on('beforeInit', () => { 10974 if (!swiper.params.parallax.enabled) return; 10975 swiper.params.watchSlidesProgress = true; 10976 swiper.originalParams.watchSlidesProgress = true; 10977 }); 10978 on('init', () => { 10979 if (!swiper.params.parallax.enabled) return; 10980 setTranslate(); 10981 }); 10982 on('setTranslate', () => { 10983 if (!swiper.params.parallax.enabled) return; 10984 setTranslate(); 10985 }); 10986 on('setTransition', (_swiper, duration) => { 10987 if (!swiper.params.parallax.enabled) return; 10988 setTransition(duration); 10989 }); 10990} 10991 10992 10993 10994;// CONCATENATED MODULE: ./node_modules/swiper/modules/zoom.mjs 10995 10996 10997 10998function Zoom(_ref) { 10999 let { 11000 swiper, 11001 extendParams, 11002 on, 11003 emit 11004 } = _ref; 11005 const window = getWindow(); 11006 extendParams({ 11007 zoom: { 11008 enabled: false, 11009 limitToOriginalSize: false, 11010 maxRatio: 3, 11011 minRatio: 1, 11012 toggle: true, 11013 containerClass: 'swiper-zoom-container', 11014 zoomedSlideClass: 'swiper-slide-zoomed' 11015 } 11016 }); 11017 swiper.zoom = { 11018 enabled: false 11019 }; 11020 let currentScale = 1; 11021 let isScaling = false; 11022 let fakeGestureTouched; 11023 let fakeGestureMoved; 11024 const evCache = []; 11025 const gesture = { 11026 originX: 0, 11027 originY: 0, 11028 slideEl: undefined, 11029 slideWidth: undefined, 11030 slideHeight: undefined, 11031 imageEl: undefined, 11032 imageWrapEl: undefined, 11033 maxRatio: 3 11034 }; 11035 const image = { 11036 isTouched: undefined, 11037 isMoved: undefined, 11038 currentX: undefined, 11039 currentY: undefined, 11040 minX: undefined, 11041 minY: undefined, 11042 maxX: undefined, 11043 maxY: undefined, 11044 width: undefined, 11045 height: undefined, 11046 startX: undefined, 11047 startY: undefined, 11048 touchesStart: {}, 11049 touchesCurrent: {} 11050 }; 11051 const velocity = { 11052 x: undefined, 11053 y: undefined, 11054 prevPositionX: undefined, 11055 prevPositionY: undefined, 11056 prevTime: undefined 11057 }; 11058 let scale = 1; 11059 Object.defineProperty(swiper.zoom, 'scale', { 11060 get() { 11061 return scale; 11062 }, 11063 set(value) { 11064 if (scale !== value) { 11065 const imageEl = gesture.imageEl; 11066 const slideEl = gesture.slideEl; 11067 emit('zoomChange', value, imageEl, slideEl); 11068 } 11069 scale = value; 11070 } 11071 }); 11072 function getDistanceBetweenTouches() { 11073 if (evCache.length < 2) return 1; 11074 const x1 = evCache[0].pageX; 11075 const y1 = evCache[0].pageY; 11076 const x2 = evCache[1].pageX; 11077 const y2 = evCache[1].pageY; 11078 const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2); 11079 return distance; 11080 } 11081 function getMaxRatio() { 11082 const params = swiper.params.zoom; 11083 const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; 11084 if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) { 11085 const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth; 11086 return Math.min(imageMaxRatio, maxRatio); 11087 } 11088 return maxRatio; 11089 } 11090 function getScaleOrigin() { 11091 if (evCache.length < 2) return { 11092 x: null, 11093 y: null 11094 }; 11095 const box = gesture.imageEl.getBoundingClientRect(); 11096 return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale]; 11097 } 11098 function getSlideSelector() { 11099 return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; 11100 } 11101 function eventWithinSlide(e) { 11102 const slideSelector = getSlideSelector(); 11103 if (e.target.matches(slideSelector)) return true; 11104 if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true; 11105 return false; 11106 } 11107 function eventWithinZoomContainer(e) { 11108 const selector = `.${swiper.params.zoom.containerClass}`; 11109 if (e.target.matches(selector)) return true; 11110 if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true; 11111 return false; 11112 } 11113 11114 // Events 11115 function onGestureStart(e) { 11116 if (e.pointerType === 'mouse') { 11117 evCache.splice(0, evCache.length); 11118 } 11119 if (!eventWithinSlide(e)) return; 11120 const params = swiper.params.zoom; 11121 fakeGestureTouched = false; 11122 fakeGestureMoved = false; 11123 evCache.push(e); 11124 if (evCache.length < 2) { 11125 return; 11126 } 11127 fakeGestureTouched = true; 11128 gesture.scaleStart = getDistanceBetweenTouches(); 11129 if (!gesture.slideEl) { 11130 gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); 11131 if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex]; 11132 let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); 11133 if (imageEl) { 11134 imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; 11135 } 11136 gesture.imageEl = imageEl; 11137 if (imageEl) { 11138 gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; 11139 } else { 11140 gesture.imageWrapEl = undefined; 11141 } 11142 if (!gesture.imageWrapEl) { 11143 gesture.imageEl = undefined; 11144 return; 11145 } 11146 gesture.maxRatio = getMaxRatio(); 11147 } 11148 if (gesture.imageEl) { 11149 const [originX, originY] = getScaleOrigin(); 11150 gesture.originX = originX; 11151 gesture.originY = originY; 11152 gesture.imageEl.style.transitionDuration = '0ms'; 11153 } 11154 isScaling = true; 11155 } 11156 function onGestureChange(e) { 11157 if (!eventWithinSlide(e)) return; 11158 const params = swiper.params.zoom; 11159 const zoom = swiper.zoom; 11160 const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); 11161 if (pointerIndex >= 0) evCache[pointerIndex] = e; 11162 if (evCache.length < 2) { 11163 return; 11164 } 11165 fakeGestureMoved = true; 11166 gesture.scaleMove = getDistanceBetweenTouches(); 11167 if (!gesture.imageEl) { 11168 return; 11169 } 11170 zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale; 11171 if (zoom.scale > gesture.maxRatio) { 11172 zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5; 11173 } 11174 if (zoom.scale < params.minRatio) { 11175 zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5; 11176 } 11177 gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; 11178 } 11179 function onGestureEnd(e) { 11180 if (!eventWithinSlide(e)) return; 11181 if (e.pointerType === 'mouse' && e.type === 'pointerout') return; 11182 const params = swiper.params.zoom; 11183 const zoom = swiper.zoom; 11184 const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); 11185 if (pointerIndex >= 0) evCache.splice(pointerIndex, 1); 11186 if (!fakeGestureTouched || !fakeGestureMoved) { 11187 return; 11188 } 11189 fakeGestureTouched = false; 11190 fakeGestureMoved = false; 11191 if (!gesture.imageEl) return; 11192 zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); 11193 gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`; 11194 gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; 11195 currentScale = zoom.scale; 11196 isScaling = false; 11197 if (zoom.scale > 1 && gesture.slideEl) { 11198 gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); 11199 } else if (zoom.scale <= 1 && gesture.slideEl) { 11200 gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); 11201 } 11202 if (zoom.scale === 1) { 11203 gesture.originX = 0; 11204 gesture.originY = 0; 11205 gesture.slideEl = undefined; 11206 } 11207 } 11208 let allowTouchMoveTimeout; 11209 function allowTouchMove() { 11210 swiper.touchEventsData.preventTouchMoveFromPointerMove = false; 11211 } 11212 function preventTouchMove() { 11213 clearTimeout(allowTouchMoveTimeout); 11214 swiper.touchEventsData.preventTouchMoveFromPointerMove = true; 11215 allowTouchMoveTimeout = setTimeout(() => { 11216 if (swiper.destroyed) return; 11217 allowTouchMove(); 11218 }); 11219 } 11220 function onTouchStart(e) { 11221 const device = swiper.device; 11222 if (!gesture.imageEl) return; 11223 if (image.isTouched) return; 11224 if (device.android && e.cancelable) e.preventDefault(); 11225 image.isTouched = true; 11226 const event = evCache.length > 0 ? evCache[0] : e; 11227 image.touchesStart.x = event.pageX; 11228 image.touchesStart.y = event.pageY; 11229 } 11230 function onTouchMove(e) { 11231 if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) { 11232 return; 11233 } 11234 const zoom = swiper.zoom; 11235 if (!gesture.imageEl) { 11236 return; 11237 } 11238 if (!image.isTouched || !gesture.slideEl) { 11239 return; 11240 } 11241 if (!image.isMoved) { 11242 image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth; 11243 image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight; 11244 image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0; 11245 image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0; 11246 gesture.slideWidth = gesture.slideEl.offsetWidth; 11247 gesture.slideHeight = gesture.slideEl.offsetHeight; 11248 gesture.imageWrapEl.style.transitionDuration = '0ms'; 11249 } 11250 // Define if we need image drag 11251 const scaledWidth = image.width * zoom.scale; 11252 const scaledHeight = image.height * zoom.scale; 11253 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 11254 image.maxX = -image.minX; 11255 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 11256 image.maxY = -image.minY; 11257 image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX; 11258 image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY; 11259 const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y)); 11260 if (touchesDiff > 5) { 11261 swiper.allowClick = false; 11262 } 11263 if (!image.isMoved && !isScaling) { 11264 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)) { 11265 image.isTouched = false; 11266 allowTouchMove(); 11267 return; 11268 } 11269 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)) { 11270 image.isTouched = false; 11271 allowTouchMove(); 11272 return; 11273 } 11274 } 11275 if (e.cancelable) { 11276 e.preventDefault(); 11277 } 11278 e.stopPropagation(); 11279 preventTouchMove(); 11280 image.isMoved = true; 11281 const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio); 11282 const { 11283 originX, 11284 originY 11285 } = gesture; 11286 image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2); 11287 image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2); 11288 if (image.currentX < image.minX) { 11289 image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8; 11290 } 11291 if (image.currentX > image.maxX) { 11292 image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8; 11293 } 11294 if (image.currentY < image.minY) { 11295 image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8; 11296 } 11297 if (image.currentY > image.maxY) { 11298 image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8; 11299 } 11300 11301 // Velocity 11302 if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x; 11303 if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y; 11304 if (!velocity.prevTime) velocity.prevTime = Date.now(); 11305 velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; 11306 velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; 11307 if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0; 11308 if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0; 11309 velocity.prevPositionX = image.touchesCurrent.x; 11310 velocity.prevPositionY = image.touchesCurrent.y; 11311 velocity.prevTime = Date.now(); 11312 gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; 11313 } 11314 function onTouchEnd() { 11315 const zoom = swiper.zoom; 11316 if (!gesture.imageEl) return; 11317 if (!image.isTouched || !image.isMoved) { 11318 image.isTouched = false; 11319 image.isMoved = false; 11320 return; 11321 } 11322 image.isTouched = false; 11323 image.isMoved = false; 11324 let momentumDurationX = 300; 11325 let momentumDurationY = 300; 11326 const momentumDistanceX = velocity.x * momentumDurationX; 11327 const newPositionX = image.currentX + momentumDistanceX; 11328 const momentumDistanceY = velocity.y * momentumDurationY; 11329 const newPositionY = image.currentY + momentumDistanceY; 11330 11331 // Fix duration 11332 if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); 11333 if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); 11334 const momentumDuration = Math.max(momentumDurationX, momentumDurationY); 11335 image.currentX = newPositionX; 11336 image.currentY = newPositionY; 11337 // Define if we need image drag 11338 const scaledWidth = image.width * zoom.scale; 11339 const scaledHeight = image.height * zoom.scale; 11340 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 11341 image.maxX = -image.minX; 11342 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 11343 image.maxY = -image.minY; 11344 image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); 11345 image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); 11346 gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`; 11347 gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; 11348 } 11349 function onTransitionEnd() { 11350 const zoom = swiper.zoom; 11351 if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) { 11352 if (gesture.imageEl) { 11353 gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; 11354 } 11355 if (gesture.imageWrapEl) { 11356 gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; 11357 } 11358 gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`); 11359 zoom.scale = 1; 11360 currentScale = 1; 11361 gesture.slideEl = undefined; 11362 gesture.imageEl = undefined; 11363 gesture.imageWrapEl = undefined; 11364 gesture.originX = 0; 11365 gesture.originY = 0; 11366 } 11367 } 11368 function zoomIn(e) { 11369 const zoom = swiper.zoom; 11370 const params = swiper.params.zoom; 11371 if (!gesture.slideEl) { 11372 if (e && e.target) { 11373 gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); 11374 } 11375 if (!gesture.slideEl) { 11376 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 11377 gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; 11378 } else { 11379 gesture.slideEl = swiper.slides[swiper.activeIndex]; 11380 } 11381 } 11382 let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); 11383 if (imageEl) { 11384 imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; 11385 } 11386 gesture.imageEl = imageEl; 11387 if (imageEl) { 11388 gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; 11389 } else { 11390 gesture.imageWrapEl = undefined; 11391 } 11392 } 11393 if (!gesture.imageEl || !gesture.imageWrapEl) return; 11394 if (swiper.params.cssMode) { 11395 swiper.wrapperEl.style.overflow = 'hidden'; 11396 swiper.wrapperEl.style.touchAction = 'none'; 11397 } 11398 gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); 11399 let touchX; 11400 let touchY; 11401 let offsetX; 11402 let offsetY; 11403 let diffX; 11404 let diffY; 11405 let translateX; 11406 let translateY; 11407 let imageWidth; 11408 let imageHeight; 11409 let scaledWidth; 11410 let scaledHeight; 11411 let translateMinX; 11412 let translateMinY; 11413 let translateMaxX; 11414 let translateMaxY; 11415 let slideWidth; 11416 let slideHeight; 11417 if (typeof image.touchesStart.x === 'undefined' && e) { 11418 touchX = e.pageX; 11419 touchY = e.pageY; 11420 } else { 11421 touchX = image.touchesStart.x; 11422 touchY = image.touchesStart.y; 11423 } 11424 const forceZoomRatio = typeof e === 'number' ? e : null; 11425 if (currentScale === 1 && forceZoomRatio) { 11426 touchX = undefined; 11427 touchY = undefined; 11428 image.touchesStart.x = undefined; 11429 image.touchesStart.y = undefined; 11430 } 11431 const maxRatio = getMaxRatio(); 11432 zoom.scale = forceZoomRatio || maxRatio; 11433 currentScale = forceZoomRatio || maxRatio; 11434 if (e && !(currentScale === 1 && forceZoomRatio)) { 11435 slideWidth = gesture.slideEl.offsetWidth; 11436 slideHeight = gesture.slideEl.offsetHeight; 11437 offsetX = elementOffset(gesture.slideEl).left + window.scrollX; 11438 offsetY = elementOffset(gesture.slideEl).top + window.scrollY; 11439 diffX = offsetX + slideWidth / 2 - touchX; 11440 diffY = offsetY + slideHeight / 2 - touchY; 11441 imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth; 11442 imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight; 11443 scaledWidth = imageWidth * zoom.scale; 11444 scaledHeight = imageHeight * zoom.scale; 11445 translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0); 11446 translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0); 11447 translateMaxX = -translateMinX; 11448 translateMaxY = -translateMinY; 11449 translateX = diffX * zoom.scale; 11450 translateY = diffY * zoom.scale; 11451 if (translateX < translateMinX) { 11452 translateX = translateMinX; 11453 } 11454 if (translateX > translateMaxX) { 11455 translateX = translateMaxX; 11456 } 11457 if (translateY < translateMinY) { 11458 translateY = translateMinY; 11459 } 11460 if (translateY > translateMaxY) { 11461 translateY = translateMaxY; 11462 } 11463 } else { 11464 translateX = 0; 11465 translateY = 0; 11466 } 11467 if (forceZoomRatio && zoom.scale === 1) { 11468 gesture.originX = 0; 11469 gesture.originY = 0; 11470 } 11471 gesture.imageWrapEl.style.transitionDuration = '300ms'; 11472 gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`; 11473 gesture.imageEl.style.transitionDuration = '300ms'; 11474 gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; 11475 } 11476 function zoomOut() { 11477 const zoom = swiper.zoom; 11478 const params = swiper.params.zoom; 11479 if (!gesture.slideEl) { 11480 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 11481 gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; 11482 } else { 11483 gesture.slideEl = swiper.slides[swiper.activeIndex]; 11484 } 11485 let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); 11486 if (imageEl) { 11487 imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; 11488 } 11489 gesture.imageEl = imageEl; 11490 if (imageEl) { 11491 gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; 11492 } else { 11493 gesture.imageWrapEl = undefined; 11494 } 11495 } 11496 if (!gesture.imageEl || !gesture.imageWrapEl) return; 11497 if (swiper.params.cssMode) { 11498 swiper.wrapperEl.style.overflow = ''; 11499 swiper.wrapperEl.style.touchAction = ''; 11500 } 11501 zoom.scale = 1; 11502 currentScale = 1; 11503 image.touchesStart.x = undefined; 11504 image.touchesStart.y = undefined; 11505 gesture.imageWrapEl.style.transitionDuration = '300ms'; 11506 gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; 11507 gesture.imageEl.style.transitionDuration = '300ms'; 11508 gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; 11509 gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); 11510 gesture.slideEl = undefined; 11511 gesture.originX = 0; 11512 gesture.originY = 0; 11513 } 11514 11515 // Toggle Zoom 11516 function zoomToggle(e) { 11517 const zoom = swiper.zoom; 11518 if (zoom.scale && zoom.scale !== 1) { 11519 // Zoom Out 11520 zoomOut(); 11521 } else { 11522 // Zoom In 11523 zoomIn(e); 11524 } 11525 } 11526 function getListeners() { 11527 const passiveListener = swiper.params.passiveListeners ? { 11528 passive: true, 11529 capture: false 11530 } : false; 11531 const activeListenerWithCapture = swiper.params.passiveListeners ? { 11532 passive: false, 11533 capture: true 11534 } : true; 11535 return { 11536 passiveListener, 11537 activeListenerWithCapture 11538 }; 11539 } 11540 11541 // Attach/Detach Events 11542 function enable() { 11543 const zoom = swiper.zoom; 11544 if (zoom.enabled) return; 11545 zoom.enabled = true; 11546 const { 11547 passiveListener, 11548 activeListenerWithCapture 11549 } = getListeners(); 11550 11551 // Scale image 11552 swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener); 11553 swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture); 11554 ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { 11555 swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener); 11556 }); 11557 11558 // Move image 11559 swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture); 11560 } 11561 function disable() { 11562 const zoom = swiper.zoom; 11563 if (!zoom.enabled) return; 11564 zoom.enabled = false; 11565 const { 11566 passiveListener, 11567 activeListenerWithCapture 11568 } = getListeners(); 11569 11570 // Scale image 11571 swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener); 11572 swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture); 11573 ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { 11574 swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener); 11575 }); 11576 11577 // Move image 11578 swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture); 11579 } 11580 on('init', () => { 11581 if (swiper.params.zoom.enabled) { 11582 enable(); 11583 } 11584 }); 11585 on('destroy', () => { 11586 disable(); 11587 }); 11588 on('touchStart', (_s, e) => { 11589 if (!swiper.zoom.enabled) return; 11590 onTouchStart(e); 11591 }); 11592 on('touchEnd', (_s, e) => { 11593 if (!swiper.zoom.enabled) return; 11594 onTouchEnd(); 11595 }); 11596 on('doubleTap', (_s, e) => { 11597 if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { 11598 zoomToggle(e); 11599 } 11600 }); 11601 on('transitionEnd', () => { 11602 if (swiper.zoom.enabled && swiper.params.zoom.enabled) { 11603 onTransitionEnd(); 11604 } 11605 }); 11606 on('slideChange', () => { 11607 if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) { 11608 onTransitionEnd(); 11609 } 11610 }); 11611 Object.assign(swiper.zoom, { 11612 enable, 11613 disable, 11614 in: zoomIn, 11615 out: zoomOut, 11616 toggle: zoomToggle 11617 }); 11618} 11619 11620 11621 11622;// CONCATENATED MODULE: ./node_modules/swiper/modules/controller.mjs 11623 11624 11625/* eslint no-bitwise: ["error", { "allow": [">>"] }] */ 11626function Controller(_ref) { 11627 let { 11628 swiper, 11629 extendParams, 11630 on 11631 } = _ref; 11632 extendParams({ 11633 controller: { 11634 control: undefined, 11635 inverse: false, 11636 by: 'slide' // or 'container' 11637 } 11638 }); 11639 11640 swiper.controller = { 11641 control: undefined 11642 }; 11643 function LinearSpline(x, y) { 11644 const binarySearch = function search() { 11645 let maxIndex; 11646 let minIndex; 11647 let guess; 11648 return (array, val) => { 11649 minIndex = -1; 11650 maxIndex = array.length; 11651 while (maxIndex - minIndex > 1) { 11652 guess = maxIndex + minIndex >> 1; 11653 if (array[guess] <= val) { 11654 minIndex = guess; 11655 } else { 11656 maxIndex = guess; 11657 } 11658 } 11659 return maxIndex; 11660 }; 11661 }(); 11662 this.x = x; 11663 this.y = y; 11664 this.lastIndex = x.length - 1; 11665 // Given an x value (x2), return the expected y2 value: 11666 // (x1,y1) is the known point before given value, 11667 // (x3,y3) is the known point after given value. 11668 let i1; 11669 let i3; 11670 this.interpolate = function interpolate(x2) { 11671 if (!x2) return 0; 11672 11673 // Get the indexes of x1 and x3 (the array indexes before and after given x2): 11674 i3 = binarySearch(this.x, x2); 11675 i1 = i3 - 1; 11676 11677 // We have our indexes i1 & i3, so we can calculate already: 11678 // y2 := ((x2âx1) à (y3ây1)) ÷ (x3âx1) + y1 11679 return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1]; 11680 }; 11681 return this; 11682 } 11683 function getInterpolateFunction(c) { 11684 swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid); 11685 } 11686 function setTranslate(_t, byController) { 11687 const controlled = swiper.controller.control; 11688 let multiplier; 11689 let controlledTranslate; 11690 const Swiper = swiper.constructor; 11691 function setControlledTranslate(c) { 11692 if (c.destroyed) return; 11693 11694 // this will create an Interpolate function based on the snapGrids 11695 // x is the Grid of the scrolled scroller and y will be the controlled scroller 11696 // it makes sense to create this only once and recall it for the interpolation 11697 // the function does a lot of value caching for performance 11698 const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate; 11699 if (swiper.params.controller.by === 'slide') { 11700 getInterpolateFunction(c); 11701 // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid 11702 // but it did not work out 11703 controlledTranslate = -swiper.controller.spline.interpolate(-translate); 11704 } 11705 if (!controlledTranslate || swiper.params.controller.by === 'container') { 11706 multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); 11707 if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) { 11708 multiplier = 1; 11709 } 11710 controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate(); 11711 } 11712 if (swiper.params.controller.inverse) { 11713 controlledTranslate = c.maxTranslate() - controlledTranslate; 11714 } 11715 c.updateProgress(controlledTranslate); 11716 c.setTranslate(controlledTranslate, swiper); 11717 c.updateActiveIndex(); 11718 c.updateSlidesClasses(); 11719 } 11720 if (Array.isArray(controlled)) { 11721 for (let i = 0; i < controlled.length; i += 1) { 11722 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 11723 setControlledTranslate(controlled[i]); 11724 } 11725 } 11726 } else if (controlled instanceof Swiper && byController !== controlled) { 11727 setControlledTranslate(controlled); 11728 } 11729 } 11730 function setTransition(duration, byController) { 11731 const Swiper = swiper.constructor; 11732 const controlled = swiper.controller.control; 11733 let i; 11734 function setControlledTransition(c) { 11735 if (c.destroyed) return; 11736 c.setTransition(duration, swiper); 11737 if (duration !== 0) { 11738 c.transitionStart(); 11739 if (c.params.autoHeight) { 11740 nextTick(() => { 11741 c.updateAutoHeight(); 11742 }); 11743 } 11744 elementTransitionEnd(c.wrapperEl, () => { 11745 if (!controlled) return; 11746 c.transitionEnd(); 11747 }); 11748 } 11749 } 11750 if (Array.isArray(controlled)) { 11751 for (i = 0; i < controlled.length; i += 1) { 11752 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 11753 setControlledTransition(controlled[i]); 11754 } 11755 } 11756 } else if (controlled instanceof Swiper && byController !== controlled) { 11757 setControlledTransition(controlled); 11758 } 11759 } 11760 function removeSpline() { 11761 if (!swiper.controller.control) return; 11762 if (swiper.controller.spline) { 11763 swiper.controller.spline = undefined; 11764 delete swiper.controller.spline; 11765 } 11766 } 11767 on('beforeInit', () => { 11768 if (typeof window !== 'undefined' && ( 11769 // eslint-disable-line 11770 typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) { 11771 const controlElements = typeof swiper.params.controller.control === 'string' ? [...document.querySelectorAll(swiper.params.controller.control)] : [swiper.params.controller.control]; 11772 controlElements.forEach(controlElement => { 11773 if (!swiper.controller.control) swiper.controller.control = []; 11774 if (controlElement && controlElement.swiper) { 11775 swiper.controller.control.push(controlElement.swiper); 11776 } else if (controlElement) { 11777 const eventName = `${swiper.params.eventsPrefix}init`; 11778 const onControllerSwiper = e => { 11779 swiper.controller.control.push(e.detail[0]); 11780 swiper.update(); 11781 controlElement.removeEventListener(eventName, onControllerSwiper); 11782 }; 11783 controlElement.addEventListener(eventName, onControllerSwiper); 11784 } 11785 }); 11786 return; 11787 } 11788 swiper.controller.control = swiper.params.controller.control; 11789 }); 11790 on('update', () => { 11791 removeSpline(); 11792 }); 11793 on('resize', () => { 11794 removeSpline(); 11795 }); 11796 on('observerUpdate', () => { 11797 removeSpline(); 11798 }); 11799 on('setTranslate', (_s, translate, byController) => { 11800 if (!swiper.controller.control || swiper.controller.control.destroyed) return; 11801 swiper.controller.setTranslate(translate, byController); 11802 }); 11803 on('setTransition', (_s, duration, byController) => { 11804 if (!swiper.controller.control || swiper.controller.control.destroyed) return; 11805 swiper.controller.setTransition(duration, byController); 11806 }); 11807 Object.assign(swiper.controller, { 11808 setTranslate, 11809 setTransition 11810 }); 11811} 11812 11813 11814 11815;// CONCATENATED MODULE: ./node_modules/swiper/modules/a11y.mjs 11816 11817 11818 11819 11820function A11y(_ref) { 11821 let { 11822 swiper, 11823 extendParams, 11824 on 11825 } = _ref; 11826 extendParams({ 11827 a11y: { 11828 enabled: true, 11829 notificationClass: 'swiper-notification', 11830 prevSlideMessage: 'Previous slide', 11831 nextSlideMessage: 'Next slide', 11832 firstSlideMessage: 'This is the first slide', 11833 lastSlideMessage: 'This is the last slide', 11834 paginationBulletMessage: 'Go to slide {{index}}', 11835 slideLabelMessage: '{{index}} / {{slidesLength}}', 11836 containerMessage: null, 11837 containerRoleDescriptionMessage: null, 11838 containerRole: null, 11839 itemRoleDescriptionMessage: null, 11840 slideRole: 'group', 11841 id: null, 11842 scrollOnFocus: true 11843 } 11844 }); 11845 swiper.a11y = { 11846 clicked: false 11847 }; 11848 let liveRegion = null; 11849 let preventFocusHandler; 11850 let focusTargetSlideEl; 11851 let visibilityChangedTimestamp = new Date().getTime(); 11852 function notify(message) { 11853 const notification = liveRegion; 11854 if (notification.length === 0) return; 11855 notification.innerHTML = ''; 11856 notification.innerHTML = message; 11857 } 11858 function getRandomNumber(size) { 11859 if (size === void 0) { 11860 size = 16; 11861 } 11862 const randomChar = () => Math.round(16 * Math.random()).toString(16); 11863 return 'x'.repeat(size).replace(/x/g, randomChar); 11864 } 11865 function makeElFocusable(el) { 11866 el = makeElementsArray(el); 11867 el.forEach(subEl => { 11868 subEl.setAttribute('tabIndex', '0'); 11869 }); 11870 } 11871 function makeElNotFocusable(el) { 11872 el = makeElementsArray(el); 11873 el.forEach(subEl => { 11874 subEl.setAttribute('tabIndex', '-1'); 11875 }); 11876 } 11877 function addElRole(el, role) { 11878 el = makeElementsArray(el); 11879 el.forEach(subEl => { 11880 subEl.setAttribute('role', role); 11881 }); 11882 } 11883 function addElRoleDescription(el, description) { 11884 el = makeElementsArray(el); 11885 el.forEach(subEl => { 11886 subEl.setAttribute('aria-roledescription', description); 11887 }); 11888 } 11889 function addElControls(el, controls) { 11890 el = makeElementsArray(el); 11891 el.forEach(subEl => { 11892 subEl.setAttribute('aria-controls', controls); 11893 }); 11894 } 11895 function addElLabel(el, label) { 11896 el = makeElementsArray(el); 11897 el.forEach(subEl => { 11898 subEl.setAttribute('aria-label', label); 11899 }); 11900 } 11901 function addElId(el, id) { 11902 el = makeElementsArray(el); 11903 el.forEach(subEl => { 11904 subEl.setAttribute('id', id); 11905 }); 11906 } 11907 function addElLive(el, live) { 11908 el = makeElementsArray(el); 11909 el.forEach(subEl => { 11910 subEl.setAttribute('aria-live', live); 11911 }); 11912 } 11913 function disableEl(el) { 11914 el = makeElementsArray(el); 11915 el.forEach(subEl => { 11916 subEl.setAttribute('aria-disabled', true); 11917 }); 11918 } 11919 function enableEl(el) { 11920 el = makeElementsArray(el); 11921 el.forEach(subEl => { 11922 subEl.setAttribute('aria-disabled', false); 11923 }); 11924 } 11925 function onEnterOrSpaceKey(e) { 11926 if (e.keyCode !== 13 && e.keyCode !== 32) return; 11927 const params = swiper.params.a11y; 11928 const targetEl = e.target; 11929 if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) { 11930 if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return; 11931 } 11932 if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) { 11933 const prevEls = makeElementsArray(swiper.navigation.prevEl); 11934 const nextEls = makeElementsArray(swiper.navigation.nextEl); 11935 if (nextEls.includes(targetEl)) { 11936 if (!(swiper.isEnd && !swiper.params.loop)) { 11937 swiper.slideNext(); 11938 } 11939 if (swiper.isEnd) { 11940 notify(params.lastSlideMessage); 11941 } else { 11942 notify(params.nextSlideMessage); 11943 } 11944 } 11945 if (prevEls.includes(targetEl)) { 11946 if (!(swiper.isBeginning && !swiper.params.loop)) { 11947 swiper.slidePrev(); 11948 } 11949 if (swiper.isBeginning) { 11950 notify(params.firstSlideMessage); 11951 } else { 11952 notify(params.prevSlideMessage); 11953 } 11954 } 11955 } 11956 if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) { 11957 targetEl.click(); 11958 } 11959 } 11960 function updateNavigation() { 11961 if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return; 11962 const { 11963 nextEl, 11964 prevEl 11965 } = swiper.navigation; 11966 if (prevEl) { 11967 if (swiper.isBeginning) { 11968 disableEl(prevEl); 11969 makeElNotFocusable(prevEl); 11970 } else { 11971 enableEl(prevEl); 11972 makeElFocusable(prevEl); 11973 } 11974 } 11975 if (nextEl) { 11976 if (swiper.isEnd) { 11977 disableEl(nextEl); 11978 makeElNotFocusable(nextEl); 11979 } else { 11980 enableEl(nextEl); 11981 makeElFocusable(nextEl); 11982 } 11983 } 11984 } 11985 function hasPagination() { 11986 return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length; 11987 } 11988 function hasClickablePagination() { 11989 return hasPagination() && swiper.params.pagination.clickable; 11990 } 11991 function updatePagination() { 11992 const params = swiper.params.a11y; 11993 if (!hasPagination()) return; 11994 swiper.pagination.bullets.forEach(bulletEl => { 11995 if (swiper.params.pagination.clickable) { 11996 makeElFocusable(bulletEl); 11997 if (!swiper.params.pagination.renderBullet) { 11998 addElRole(bulletEl, 'button'); 11999 addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, elementIndex(bulletEl) + 1)); 12000 } 12001 } 12002 if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) { 12003 bulletEl.setAttribute('aria-current', 'true'); 12004 } else { 12005 bulletEl.removeAttribute('aria-current'); 12006 } 12007 }); 12008 } 12009 const initNavEl = (el, wrapperId, message) => { 12010 makeElFocusable(el); 12011 if (el.tagName !== 'BUTTON') { 12012 addElRole(el, 'button'); 12013 el.addEventListener('keydown', onEnterOrSpaceKey); 12014 } 12015 addElLabel(el, message); 12016 addElControls(el, wrapperId); 12017 }; 12018 const handlePointerDown = e => { 12019 if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) { 12020 preventFocusHandler = true; 12021 } 12022 swiper.a11y.clicked = true; 12023 }; 12024 const handlePointerUp = () => { 12025 preventFocusHandler = false; 12026 requestAnimationFrame(() => { 12027 requestAnimationFrame(() => { 12028 if (!swiper.destroyed) { 12029 swiper.a11y.clicked = false; 12030 } 12031 }); 12032 }); 12033 }; 12034 const onVisibilityChange = e => { 12035 visibilityChangedTimestamp = new Date().getTime(); 12036 }; 12037 const handleFocus = e => { 12038 if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return; 12039 if (new Date().getTime() - visibilityChangedTimestamp < 100) return; 12040 const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); 12041 if (!slideEl || !swiper.slides.includes(slideEl)) return; 12042 focusTargetSlideEl = slideEl; 12043 const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex; 12044 const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl); 12045 if (isActive || isVisible) return; 12046 if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return; 12047 if (swiper.isHorizontal()) { 12048 swiper.el.scrollLeft = 0; 12049 } else { 12050 swiper.el.scrollTop = 0; 12051 } 12052 requestAnimationFrame(() => { 12053 if (preventFocusHandler) return; 12054 if (swiper.params.loop) { 12055 swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0); 12056 } else { 12057 swiper.slideTo(swiper.slides.indexOf(slideEl), 0); 12058 } 12059 preventFocusHandler = false; 12060 }); 12061 }; 12062 const initSlides = () => { 12063 const params = swiper.params.a11y; 12064 if (params.itemRoleDescriptionMessage) { 12065 addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage); 12066 } 12067 if (params.slideRole) { 12068 addElRole(swiper.slides, params.slideRole); 12069 } 12070 const slidesLength = swiper.slides.length; 12071 if (params.slideLabelMessage) { 12072 swiper.slides.forEach((slideEl, index) => { 12073 const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index; 12074 const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength); 12075 addElLabel(slideEl, ariaLabelMessage); 12076 }); 12077 } 12078 }; 12079 const init = () => { 12080 const params = swiper.params.a11y; 12081 swiper.el.append(liveRegion); 12082 12083 // Container 12084 const containerEl = swiper.el; 12085 if (params.containerRoleDescriptionMessage) { 12086 addElRoleDescription(containerEl, params.containerRoleDescriptionMessage); 12087 } 12088 if (params.containerMessage) { 12089 addElLabel(containerEl, params.containerMessage); 12090 } 12091 if (params.containerRole) { 12092 addElRole(containerEl, params.containerRole); 12093 } 12094 12095 // Wrapper 12096 const wrapperEl = swiper.wrapperEl; 12097 const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`; 12098 const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite'; 12099 addElId(wrapperEl, wrapperId); 12100 addElLive(wrapperEl, live); 12101 12102 // Slide 12103 initSlides(); 12104 12105 // Navigation 12106 let { 12107 nextEl, 12108 prevEl 12109 } = swiper.navigation ? swiper.navigation : {}; 12110 nextEl = makeElementsArray(nextEl); 12111 prevEl = makeElementsArray(prevEl); 12112 if (nextEl) { 12113 nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage)); 12114 } 12115 if (prevEl) { 12116 prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage)); 12117 } 12118 12119 // Pagination 12120 if (hasClickablePagination()) { 12121 const paginationEl = makeElementsArray(swiper.pagination.el); 12122 paginationEl.forEach(el => { 12123 el.addEventListener('keydown', onEnterOrSpaceKey); 12124 }); 12125 } 12126 12127 // Tab focus 12128 const document = getDocument(); 12129 document.addEventListener('visibilitychange', onVisibilityChange); 12130 swiper.el.addEventListener('focus', handleFocus, true); 12131 swiper.el.addEventListener('focus', handleFocus, true); 12132 swiper.el.addEventListener('pointerdown', handlePointerDown, true); 12133 swiper.el.addEventListener('pointerup', handlePointerUp, true); 12134 }; 12135 function destroy() { 12136 if (liveRegion) liveRegion.remove(); 12137 let { 12138 nextEl, 12139 prevEl 12140 } = swiper.navigation ? swiper.navigation : {}; 12141 nextEl = makeElementsArray(nextEl); 12142 prevEl = makeElementsArray(prevEl); 12143 if (nextEl) { 12144 nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); 12145 } 12146 if (prevEl) { 12147 prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); 12148 } 12149 12150 // Pagination 12151 if (hasClickablePagination()) { 12152 const paginationEl = makeElementsArray(swiper.pagination.el); 12153 paginationEl.forEach(el => { 12154 el.removeEventListener('keydown', onEnterOrSpaceKey); 12155 }); 12156 } 12157 const document = getDocument(); 12158 document.removeEventListener('visibilitychange', onVisibilityChange); 12159 // Tab focus 12160 if (swiper.el && typeof swiper.el !== 'string') { 12161 swiper.el.removeEventListener('focus', handleFocus, true); 12162 swiper.el.removeEventListener('pointerdown', handlePointerDown, true); 12163 swiper.el.removeEventListener('pointerup', handlePointerUp, true); 12164 } 12165 } 12166 on('beforeInit', () => { 12167 liveRegion = createElement('span', swiper.params.a11y.notificationClass); 12168 liveRegion.setAttribute('aria-live', 'assertive'); 12169 liveRegion.setAttribute('aria-atomic', 'true'); 12170 }); 12171 on('afterInit', () => { 12172 if (!swiper.params.a11y.enabled) return; 12173 init(); 12174 }); 12175 on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => { 12176 if (!swiper.params.a11y.enabled) return; 12177 initSlides(); 12178 }); 12179 on('fromEdge toEdge afterInit lock unlock', () => { 12180 if (!swiper.params.a11y.enabled) return; 12181 updateNavigation(); 12182 }); 12183 on('paginationUpdate', () => { 12184 if (!swiper.params.a11y.enabled) return; 12185 updatePagination(); 12186 }); 12187 on('destroy', () => { 12188 if (!swiper.params.a11y.enabled) return; 12189 destroy(); 12190 }); 12191} 12192 12193 12194 12195;// CONCATENATED MODULE: ./node_modules/swiper/modules/history.mjs 12196 12197 12198function History(_ref) { 12199 let { 12200 swiper, 12201 extendParams, 12202 on 12203 } = _ref; 12204 extendParams({ 12205 history: { 12206 enabled: false, 12207 root: '', 12208 replaceState: false, 12209 key: 'slides', 12210 keepQuery: false 12211 } 12212 }); 12213 let initialized = false; 12214 let paths = {}; 12215 const slugify = text => { 12216 return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, ''); 12217 }; 12218 const getPathValues = urlOverride => { 12219 const window = getWindow(); 12220 let location; 12221 if (urlOverride) { 12222 location = new URL(urlOverride); 12223 } else { 12224 location = window.location; 12225 } 12226 const pathArray = location.pathname.slice(1).split('/').filter(part => part !== ''); 12227 const total = pathArray.length; 12228 const key = pathArray[total - 2]; 12229 const value = pathArray[total - 1]; 12230 return { 12231 key, 12232 value 12233 }; 12234 }; 12235 const setHistory = (key, index) => { 12236 const window = getWindow(); 12237 if (!initialized || !swiper.params.history.enabled) return; 12238 let location; 12239 if (swiper.params.url) { 12240 location = new URL(swiper.params.url); 12241 } else { 12242 location = window.location; 12243 } 12244 const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${index}"]`) : swiper.slides[index]; 12245 let value = slugify(slide.getAttribute('data-history')); 12246 if (swiper.params.history.root.length > 0) { 12247 let root = swiper.params.history.root; 12248 if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1); 12249 value = `${root}/${key ? `${key}/` : ''}${value}`; 12250 } else if (!location.pathname.includes(key)) { 12251 value = `${key ? `${key}/` : ''}${value}`; 12252 } 12253 if (swiper.params.history.keepQuery) { 12254 value += location.search; 12255 } 12256 const currentState = window.history.state; 12257 if (currentState && currentState.value === value) { 12258 return; 12259 } 12260 if (swiper.params.history.replaceState) { 12261 window.history.replaceState({ 12262 value 12263 }, null, value); 12264 } else { 12265 window.history.pushState({ 12266 value 12267 }, null, value); 12268 } 12269 }; 12270 const scrollToSlide = (speed, value, runCallbacks) => { 12271 if (value) { 12272 for (let i = 0, length = swiper.slides.length; i < length; i += 1) { 12273 const slide = swiper.slides[i]; 12274 const slideHistory = slugify(slide.getAttribute('data-history')); 12275 if (slideHistory === value) { 12276 const index = swiper.getSlideIndex(slide); 12277 swiper.slideTo(index, speed, runCallbacks); 12278 } 12279 } 12280 } else { 12281 swiper.slideTo(0, speed, runCallbacks); 12282 } 12283 }; 12284 const setHistoryPopState = () => { 12285 paths = getPathValues(swiper.params.url); 12286 scrollToSlide(swiper.params.speed, paths.value, false); 12287 }; 12288 const init = () => { 12289 const window = getWindow(); 12290 if (!swiper.params.history) return; 12291 if (!window.history || !window.history.pushState) { 12292 swiper.params.history.enabled = false; 12293 swiper.params.hashNavigation.enabled = true; 12294 return; 12295 } 12296 initialized = true; 12297 paths = getPathValues(swiper.params.url); 12298 if (!paths.key && !paths.value) { 12299 if (!swiper.params.history.replaceState) { 12300 window.addEventListener('popstate', setHistoryPopState); 12301 } 12302 return; 12303 } 12304 scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit); 12305 if (!swiper.params.history.replaceState) { 12306 window.addEventListener('popstate', setHistoryPopState); 12307 } 12308 }; 12309 const destroy = () => { 12310 const window = getWindow(); 12311 if (!swiper.params.history.replaceState) { 12312 window.removeEventListener('popstate', setHistoryPopState); 12313 } 12314 }; 12315 on('init', () => { 12316 if (swiper.params.history.enabled) { 12317 init(); 12318 } 12319 }); 12320 on('destroy', () => { 12321 if (swiper.params.history.enabled) { 12322 destroy(); 12323 } 12324 }); 12325 on('transitionEnd _freeModeNoMomentumRelease', () => { 12326 if (initialized) { 12327 setHistory(swiper.params.history.key, swiper.activeIndex); 12328 } 12329 }); 12330 on('slideChange', () => { 12331 if (initialized && swiper.params.cssMode) { 12332 setHistory(swiper.params.history.key, swiper.activeIndex); 12333 } 12334 }); 12335} 12336 12337 12338 12339;// CONCATENATED MODULE: ./node_modules/swiper/modules/hash-navigation.mjs 12340 12341 12342 12343function HashNavigation(_ref) { 12344 let { 12345 swiper, 12346 extendParams, 12347 emit, 12348 on 12349 } = _ref; 12350 let initialized = false; 12351 const document = getDocument(); 12352 const window = getWindow(); 12353 extendParams({ 12354 hashNavigation: { 12355 enabled: false, 12356 replaceState: false, 12357 watchState: false, 12358 getSlideIndex(_s, hash) { 12359 if (swiper.virtual && swiper.params.virtual.enabled) { 12360 const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0]; 12361 if (!slideWithHash) return 0; 12362 const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10); 12363 return index; 12364 } 12365 return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash="${hash}"], swiper-slide[data-hash="${hash}"]`)[0]); 12366 } 12367 } 12368 }); 12369 const onHashChange = () => { 12370 emit('hashChange'); 12371 const newHash = document.location.hash.replace('#', ''); 12372 const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex]; 12373 const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : ''; 12374 if (newHash !== activeSlideHash) { 12375 const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash); 12376 if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return; 12377 swiper.slideTo(newIndex); 12378 } 12379 }; 12380 const setHash = () => { 12381 if (!initialized || !swiper.params.hashNavigation.enabled) return; 12382 const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex]; 12383 const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : ''; 12384 if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) { 12385 window.history.replaceState(null, null, `#${activeSlideHash}` || ''); 12386 emit('hashSet'); 12387 } else { 12388 document.location.hash = activeSlideHash || ''; 12389 emit('hashSet'); 12390 } 12391 }; 12392 const init = () => { 12393 if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return; 12394 initialized = true; 12395 const hash = document.location.hash.replace('#', ''); 12396 if (hash) { 12397 const speed = 0; 12398 const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash); 12399 swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true); 12400 } 12401 if (swiper.params.hashNavigation.watchState) { 12402 window.addEventListener('hashchange', onHashChange); 12403 } 12404 }; 12405 const destroy = () => { 12406 if (swiper.params.hashNavigation.watchState) { 12407 window.removeEventListener('hashchange', onHashChange); 12408 } 12409 }; 12410 on('init', () => { 12411 if (swiper.params.hashNavigation.enabled) { 12412 init(); 12413 } 12414 }); 12415 on('destroy', () => { 12416 if (swiper.params.hashNavigation.enabled) { 12417 destroy(); 12418 } 12419 }); 12420 on('transitionEnd _freeModeNoMomentumRelease', () => { 12421 if (initialized) { 12422 setHash(); 12423 } 12424 }); 12425 on('slideChange', () => { 12426 if (initialized && swiper.params.cssMode) { 12427 setHash(); 12428 } 12429 }); 12430} 12431 12432 12433 12434;// CONCATENATED MODULE: ./node_modules/swiper/modules/autoplay.mjs 12435 12436 12437/* eslint no-underscore-dangle: "off" */ 12438/* eslint no-use-before-define: "off" */ 12439function Autoplay(_ref) { 12440 let { 12441 swiper, 12442 extendParams, 12443 on, 12444 emit, 12445 params 12446 } = _ref; 12447 swiper.autoplay = { 12448 running: false, 12449 paused: false, 12450 timeLeft: 0 12451 }; 12452 extendParams({ 12453 autoplay: { 12454 enabled: false, 12455 delay: 3000, 12456 waitForTransition: true, 12457 disableOnInteraction: false, 12458 stopOnLastSlide: false, 12459 reverseDirection: false, 12460 pauseOnMouseEnter: false 12461 } 12462 }); 12463 let timeout; 12464 let raf; 12465 let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000; 12466 let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000; 12467 let autoplayTimeLeft; 12468 let autoplayStartTime = new Date().getTime(); 12469 let wasPaused; 12470 let isTouched; 12471 let pausedByTouch; 12472 let touchStartTimeout; 12473 let slideChanged; 12474 let pausedByInteraction; 12475 let pausedByPointerEnter; 12476 function onTransitionEnd(e) { 12477 if (!swiper || swiper.destroyed || !swiper.wrapperEl) return; 12478 if (e.target !== swiper.wrapperEl) return; 12479 swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd); 12480 if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) { 12481 return; 12482 } 12483 resume(); 12484 } 12485 const calcTimeLeft = () => { 12486 if (swiper.destroyed || !swiper.autoplay.running) return; 12487 if (swiper.autoplay.paused) { 12488 wasPaused = true; 12489 } else if (wasPaused) { 12490 autoplayDelayCurrent = autoplayTimeLeft; 12491 wasPaused = false;
vendor: 4,189 bytes, lines 12492-12611
12492 } 12493 const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime(); 12494 swiper.autoplay.timeLeft = timeLeft; 12495 emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal); 12496 raf = requestAnimationFrame(() => { 12497 calcTimeLeft(); 12498 }); 12499 }; 12500 const getSlideDelay = () => { 12501 let activeSlideEl; 12502 if (swiper.virtual && swiper.params.virtual.enabled) { 12503 activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0]; 12504 } else { 12505 activeSlideEl = swiper.slides[swiper.activeIndex]; 12506 } 12507 if (!activeSlideEl) return undefined; 12508 const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10); 12509 return currentSlideDelay; 12510 }; 12511 const run = delayForce => { 12512 if (swiper.destroyed || !swiper.autoplay.running) return; 12513 cancelAnimationFrame(raf); 12514 calcTimeLeft(); 12515 let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce; 12516 autoplayDelayTotal = swiper.params.autoplay.delay; 12517 autoplayDelayCurrent = swiper.params.autoplay.delay; 12518 const currentSlideDelay = getSlideDelay(); 12519 if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') { 12520 delay = currentSlideDelay; 12521 autoplayDelayTotal = currentSlideDelay; 12522 autoplayDelayCurrent = currentSlideDelay; 12523 } 12524 autoplayTimeLeft = delay; 12525 const speed = swiper.params.speed; 12526 const proceed = () => { 12527 if (!swiper || swiper.destroyed) return; 12528 if (swiper.params.autoplay.reverseDirection) { 12529 if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) { 12530 swiper.slidePrev(speed, true, true); 12531 emit('autoplay'); 12532 } else if (!swiper.params.autoplay.stopOnLastSlide) { 12533 swiper.slideTo(swiper.slides.length - 1, speed, true, true); 12534 emit('autoplay'); 12535 } 12536 } else { 12537 if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) { 12538 swiper.slideNext(speed, true, true); 12539 emit('autoplay'); 12540 } else if (!swiper.params.autoplay.stopOnLastSlide) { 12541 swiper.slideTo(0, speed, true, true); 12542 emit('autoplay'); 12543 } 12544 } 12545 if (swiper.params.cssMode) { 12546 autoplayStartTime = new Date().getTime(); 12547 requestAnimationFrame(() => { 12548 run(); 12549 }); 12550 } 12551 }; 12552 if (delay > 0) { 12553 clearTimeout(timeout); 12554 timeout = setTimeout(() => { 12555 proceed(); 12556 }, delay); 12557 } else { 12558 requestAnimationFrame(() => { 12559 proceed(); 12560 }); 12561 } 12562 12563 // eslint-disable-next-line 12564 return delay; 12565 }; 12566 const start = () => { 12567 autoplayStartTime = new Date().getTime(); 12568 swiper.autoplay.running = true; 12569 run(); 12570 emit('autoplayStart'); 12571 }; 12572 const stop = () => { 12573 swiper.autoplay.running = false; 12574 clearTimeout(timeout); 12575 cancelAnimationFrame(raf); 12576 emit('autoplayStop'); 12577 }; 12578 const pause = (internal, reset) => { 12579 if (swiper.destroyed || !swiper.autoplay.running) return; 12580 clearTimeout(timeout); 12581 if (!internal) { 12582 pausedByInteraction = true; 12583 } 12584 const proceed = () => { 12585 emit('autoplayPause'); 12586 if (swiper.params.autoplay.waitForTransition) { 12587 swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd); 12588 } else { 12589 resume(); 12590 } 12591 }; 12592 swiper.autoplay.paused = true; 12593 if (reset) { 12594 if (slideChanged) { 12595 autoplayTimeLeft = swiper.params.autoplay.delay; 12596 } 12597 slideChanged = false; 12598 proceed(); 12599 return; 12600 } 12601 const delay = autoplayTimeLeft || swiper.params.autoplay.delay; 12602 autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime); 12603 if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return; 12604 if (autoplayTimeLeft < 0) autoplayTimeLeft = 0; 12605 proceed(); 12606 }; 12607 const resume = () => { 12608 if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return; 12609 autoplayStartTime = new Date().getTime(); 12610 if (pausedByInteraction) { 12611 pausedByInteraction = false;
vendor: 45,667 bytes, lines 12612-13963
12612 run(autoplayTimeLeft); 12613 } else { 12614 run(); 12615 } 12616 swiper.autoplay.paused = false; 12617 emit('autoplayResume'); 12618 }; 12619 const onVisibilityChange = () => { 12620 if (swiper.destroyed || !swiper.autoplay.running) return; 12621 const document = getDocument(); 12622 if (document.visibilityState === 'hidden') { 12623 pausedByInteraction = true; 12624 pause(true); 12625 } 12626 if (document.visibilityState === 'visible') { 12627 resume(); 12628 } 12629 }; 12630 const onPointerEnter = e => { 12631 if (e.pointerType !== 'mouse') return; 12632 pausedByInteraction = true; 12633 pausedByPointerEnter = true; 12634 if (swiper.animating || swiper.autoplay.paused) return; 12635 pause(true); 12636 }; 12637 const onPointerLeave = e => { 12638 if (e.pointerType !== 'mouse') return; 12639 pausedByPointerEnter = false; 12640 if (swiper.autoplay.paused) { 12641 resume(); 12642 } 12643 }; 12644 const attachMouseEvents = () => { 12645 if (swiper.params.autoplay.pauseOnMouseEnter) { 12646 swiper.el.addEventListener('pointerenter', onPointerEnter); 12647 swiper.el.addEventListener('pointerleave', onPointerLeave); 12648 } 12649 }; 12650 const detachMouseEvents = () => { 12651 if (swiper.el && typeof swiper.el !== 'string') { 12652 swiper.el.removeEventListener('pointerenter', onPointerEnter); 12653 swiper.el.removeEventListener('pointerleave', onPointerLeave); 12654 } 12655 }; 12656 const attachDocumentEvents = () => { 12657 const document = getDocument(); 12658 document.addEventListener('visibilitychange', onVisibilityChange); 12659 }; 12660 const detachDocumentEvents = () => { 12661 const document = getDocument(); 12662 document.removeEventListener('visibilitychange', onVisibilityChange); 12663 }; 12664 on('init', () => { 12665 if (swiper.params.autoplay.enabled) { 12666 attachMouseEvents(); 12667 attachDocumentEvents(); 12668 start(); 12669 } 12670 }); 12671 on('destroy', () => { 12672 detachMouseEvents(); 12673 detachDocumentEvents(); 12674 if (swiper.autoplay.running) { 12675 stop(); 12676 } 12677 }); 12678 on('_freeModeStaticRelease', () => { 12679 if (pausedByTouch || pausedByInteraction) { 12680 resume(); 12681 } 12682 }); 12683 on('_freeModeNoMomentumRelease', () => { 12684 if (!swiper.params.autoplay.disableOnInteraction) { 12685 pause(true, true); 12686 } else { 12687 stop(); 12688 } 12689 }); 12690 on('beforeTransitionStart', (_s, speed, internal) => { 12691 if (swiper.destroyed || !swiper.autoplay.running) return; 12692 if (internal || !swiper.params.autoplay.disableOnInteraction) { 12693 pause(true, true); 12694 } else { 12695 stop(); 12696 } 12697 }); 12698 on('sliderFirstMove', () => { 12699 if (swiper.destroyed || !swiper.autoplay.running) return; 12700 if (swiper.params.autoplay.disableOnInteraction) { 12701 stop(); 12702 return; 12703 } 12704 isTouched = true; 12705 pausedByTouch = false; 12706 pausedByInteraction = false; 12707 touchStartTimeout = setTimeout(() => { 12708 pausedByInteraction = true; 12709 pausedByTouch = true; 12710 pause(true); 12711 }, 200); 12712 }); 12713 on('touchEnd', () => { 12714 if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return; 12715 clearTimeout(touchStartTimeout); 12716 clearTimeout(timeout); 12717 if (swiper.params.autoplay.disableOnInteraction) { 12718 pausedByTouch = false; 12719 isTouched = false; 12720 return; 12721 } 12722 if (pausedByTouch && swiper.params.cssMode) resume(); 12723 pausedByTouch = false; 12724 isTouched = false; 12725 }); 12726 on('slideChange', () => { 12727 if (swiper.destroyed || !swiper.autoplay.running) return; 12728 slideChanged = true; 12729 }); 12730 Object.assign(swiper.autoplay, { 12731 start, 12732 stop, 12733 pause, 12734 resume 12735 }); 12736} 12737 12738 12739 12740;// CONCATENATED MODULE: ./node_modules/swiper/modules/thumbs.mjs 12741 12742 12743 12744function Thumb(_ref) { 12745 let { 12746 swiper, 12747 extendParams, 12748 on 12749 } = _ref; 12750 extendParams({ 12751 thumbs: { 12752 swiper: null, 12753 multipleActiveThumbs: true, 12754 autoScrollOffset: 0, 12755 slideThumbActiveClass: 'swiper-slide-thumb-active', 12756 thumbsContainerClass: 'swiper-thumbs' 12757 } 12758 }); 12759 let initialized = false; 12760 let swiperCreated = false; 12761 swiper.thumbs = { 12762 swiper: null 12763 }; 12764 function onThumbClick() { 12765 const thumbsSwiper = swiper.thumbs.swiper; 12766 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 12767 const clickedIndex = thumbsSwiper.clickedIndex; 12768 const clickedSlide = thumbsSwiper.clickedSlide; 12769 if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return; 12770 if (typeof clickedIndex === 'undefined' || clickedIndex === null) return; 12771 let slideToIndex; 12772 if (thumbsSwiper.params.loop) { 12773 slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); 12774 } else { 12775 slideToIndex = clickedIndex; 12776 } 12777 if (swiper.params.loop) { 12778 swiper.slideToLoop(slideToIndex); 12779 } else { 12780 swiper.slideTo(slideToIndex); 12781 } 12782 } 12783 function init() { 12784 const { 12785 thumbs: thumbsParams 12786 } = swiper.params; 12787 if (initialized) return false; 12788 initialized = true; 12789 const SwiperClass = swiper.constructor; 12790 if (thumbsParams.swiper instanceof SwiperClass) { 12791 swiper.thumbs.swiper = thumbsParams.swiper; 12792 Object.assign(swiper.thumbs.swiper.originalParams, { 12793 watchSlidesProgress: true, 12794 slideToClickedSlide: false 12795 }); 12796 Object.assign(swiper.thumbs.swiper.params, { 12797 watchSlidesProgress: true, 12798 slideToClickedSlide: false 12799 }); 12800 swiper.thumbs.swiper.update(); 12801 } else if (isObject(thumbsParams.swiper)) { 12802 const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper); 12803 Object.assign(thumbsSwiperParams, { 12804 watchSlidesProgress: true, 12805 slideToClickedSlide: false 12806 }); 12807 swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams); 12808 swiperCreated = true; 12809 } 12810 swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass); 12811 swiper.thumbs.swiper.on('tap', onThumbClick); 12812 return true; 12813 } 12814 function update(initial) { 12815 const thumbsSwiper = swiper.thumbs.swiper; 12816 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 12817 const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; 12818 12819 // Activate thumbs 12820 let thumbsToActivate = 1; 12821 const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass; 12822 if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) { 12823 thumbsToActivate = swiper.params.slidesPerView; 12824 } 12825 if (!swiper.params.thumbs.multipleActiveThumbs) { 12826 thumbsToActivate = 1; 12827 } 12828 thumbsToActivate = Math.floor(thumbsToActivate); 12829 thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass)); 12830 if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) { 12831 for (let i = 0; i < thumbsToActivate; i += 1) { 12832 elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => { 12833 slideEl.classList.add(thumbActiveClass); 12834 }); 12835 } 12836 } else { 12837 for (let i = 0; i < thumbsToActivate; i += 1) { 12838 if (thumbsSwiper.slides[swiper.realIndex + i]) { 12839 thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass); 12840 } 12841 } 12842 } 12843 const autoScrollOffset = swiper.params.thumbs.autoScrollOffset; 12844 const useOffset = autoScrollOffset && !thumbsSwiper.params.loop; 12845 if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) { 12846 const currentThumbsIndex = thumbsSwiper.activeIndex; 12847 let newThumbsIndex; 12848 let direction; 12849 if (thumbsSwiper.params.loop) { 12850 const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0]; 12851 newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide); 12852 direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev'; 12853 } else { 12854 newThumbsIndex = swiper.realIndex; 12855 direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev'; 12856 } 12857 if (useOffset) { 12858 newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset; 12859 } 12860 if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) { 12861 if (thumbsSwiper.params.centeredSlides) { 12862 if (newThumbsIndex > currentThumbsIndex) { 12863 newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1; 12864 } else { 12865 newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1; 12866 } 12867 } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ; 12868 thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined); 12869 } 12870 } 12871 } 12872 on('beforeInit', () => { 12873 const { 12874 thumbs 12875 } = swiper.params; 12876 if (!thumbs || !thumbs.swiper) return; 12877 if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) { 12878 const document = getDocument(); 12879 const getThumbsElementAndInit = () => { 12880 const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper; 12881 if (thumbsElement && thumbsElement.swiper) { 12882 thumbs.swiper = thumbsElement.swiper; 12883 init(); 12884 update(true); 12885 } else if (thumbsElement) { 12886 const eventName = `${swiper.params.eventsPrefix}init`; 12887 const onThumbsSwiper = e => { 12888 thumbs.swiper = e.detail[0]; 12889 thumbsElement.removeEventListener(eventName, onThumbsSwiper); 12890 init(); 12891 update(true); 12892 thumbs.swiper.update(); 12893 swiper.update(); 12894 }; 12895 thumbsElement.addEventListener(eventName, onThumbsSwiper); 12896 } 12897 return thumbsElement; 12898 }; 12899 const watchForThumbsToAppear = () => { 12900 if (swiper.destroyed) return; 12901 const thumbsElement = getThumbsElementAndInit(); 12902 if (!thumbsElement) { 12903 requestAnimationFrame(watchForThumbsToAppear); 12904 } 12905 }; 12906 requestAnimationFrame(watchForThumbsToAppear); 12907 } else { 12908 init(); 12909 update(true); 12910 } 12911 }); 12912 on('slideChange update resize observerUpdate', () => { 12913 update(); 12914 }); 12915 on('setTransition', (_s, duration) => { 12916 const thumbsSwiper = swiper.thumbs.swiper; 12917 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 12918 thumbsSwiper.setTransition(duration); 12919 }); 12920 on('beforeDestroy', () => { 12921 const thumbsSwiper = swiper.thumbs.swiper; 12922 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 12923 if (swiperCreated) { 12924 thumbsSwiper.destroy(); 12925 } 12926 }); 12927 Object.assign(swiper.thumbs, { 12928 init, 12929 update 12930 }); 12931} 12932 12933 12934 12935;// CONCATENATED MODULE: ./node_modules/swiper/modules/free-mode.mjs 12936 12937 12938function freeMode(_ref) { 12939 let { 12940 swiper, 12941 extendParams, 12942 emit, 12943 once 12944 } = _ref; 12945 extendParams({ 12946 freeMode: { 12947 enabled: false, 12948 momentum: true, 12949 momentumRatio: 1, 12950 momentumBounce: true, 12951 momentumBounceRatio: 1, 12952 momentumVelocityRatio: 1, 12953 sticky: false, 12954 minimumVelocity: 0.02 12955 } 12956 }); 12957 function onTouchStart() { 12958 if (swiper.params.cssMode) return; 12959 const translate = swiper.getTranslate(); 12960 swiper.setTranslate(translate); 12961 swiper.setTransition(0); 12962 swiper.touchEventsData.velocities.length = 0; 12963 swiper.freeMode.onTouchEnd({ 12964 currentPos: swiper.rtl ? swiper.translate : -swiper.translate 12965 }); 12966 } 12967 function onTouchMove() { 12968 if (swiper.params.cssMode) return; 12969 const { 12970 touchEventsData: data, 12971 touches 12972 } = swiper; 12973 // Velocity 12974 if (data.velocities.length === 0) { 12975 data.velocities.push({ 12976 position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], 12977 time: data.touchStartTime 12978 }); 12979 } 12980 data.velocities.push({ 12981 position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], 12982 time: now() 12983 }); 12984 } 12985 function onTouchEnd(_ref2) { 12986 let { 12987 currentPos 12988 } = _ref2; 12989 if (swiper.params.cssMode) return; 12990 const { 12991 params, 12992 wrapperEl, 12993 rtlTranslate: rtl, 12994 snapGrid, 12995 touchEventsData: data 12996 } = swiper; 12997 // Time diff 12998 const touchEndTime = now(); 12999 const timeDiff = touchEndTime - data.touchStartTime; 13000 if (currentPos < -swiper.minTranslate()) { 13001 swiper.slideTo(swiper.activeIndex); 13002 return; 13003 } 13004 if (currentPos > -swiper.maxTranslate()) { 13005 if (swiper.slides.length < snapGrid.length) { 13006 swiper.slideTo(snapGrid.length - 1); 13007 } else { 13008 swiper.slideTo(swiper.slides.length - 1); 13009 } 13010 return; 13011 } 13012 if (params.freeMode.momentum) { 13013 if (data.velocities.length > 1) { 13014 const lastMoveEvent = data.velocities.pop(); 13015 const velocityEvent = data.velocities.pop(); 13016 const distance = lastMoveEvent.position - velocityEvent.position; 13017 const time = lastMoveEvent.time - velocityEvent.time; 13018 swiper.velocity = distance / time; 13019 swiper.velocity /= 2; 13020 if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) { 13021 swiper.velocity = 0; 13022 } 13023 // this implies that the user stopped moving a finger then released. 13024 // There would be no events with distance zero, so the last event is stale. 13025 if (time > 150 || now() - lastMoveEvent.time > 300) { 13026 swiper.velocity = 0; 13027 } 13028 } else { 13029 swiper.velocity = 0; 13030 } 13031 swiper.velocity *= params.freeMode.momentumVelocityRatio; 13032 data.velocities.length = 0; 13033 let momentumDuration = 1000 * params.freeMode.momentumRatio; 13034 const momentumDistance = swiper.velocity * momentumDuration; 13035 let newPosition = swiper.translate + momentumDistance; 13036 if (rtl) newPosition = -newPosition; 13037 let doBounce = false; 13038 let afterBouncePosition; 13039 const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio; 13040 let needsLoopFix; 13041 if (newPosition < swiper.maxTranslate()) { 13042 if (params.freeMode.momentumBounce) { 13043 if (newPosition + swiper.maxTranslate() < -bounceAmount) { 13044 newPosition = swiper.maxTranslate() - bounceAmount; 13045 } 13046 afterBouncePosition = swiper.maxTranslate(); 13047 doBounce = true; 13048 data.allowMomentumBounce = true; 13049 } else { 13050 newPosition = swiper.maxTranslate(); 13051 } 13052 if (params.loop && params.centeredSlides) needsLoopFix = true; 13053 } else if (newPosition > swiper.minTranslate()) { 13054 if (params.freeMode.momentumBounce) { 13055 if (newPosition - swiper.minTranslate() > bounceAmount) { 13056 newPosition = swiper.minTranslate() + bounceAmount; 13057 } 13058 afterBouncePosition = swiper.minTranslate(); 13059 doBounce = true; 13060 data.allowMomentumBounce = true; 13061 } else { 13062 newPosition = swiper.minTranslate(); 13063 } 13064 if (params.loop && params.centeredSlides) needsLoopFix = true; 13065 } else if (params.freeMode.sticky) { 13066 let nextSlide; 13067 for (let j = 0; j < snapGrid.length; j += 1) { 13068 if (snapGrid[j] > -newPosition) { 13069 nextSlide = j; 13070 break; 13071 } 13072 } 13073 if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { 13074 newPosition = snapGrid[nextSlide]; 13075 } else { 13076 newPosition = snapGrid[nextSlide - 1]; 13077 } 13078 newPosition = -newPosition; 13079 } 13080 if (needsLoopFix) { 13081 once('transitionEnd', () => { 13082 swiper.loopFix(); 13083 }); 13084 } 13085 // Fix duration 13086 if (swiper.velocity !== 0) { 13087 if (rtl) { 13088 momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); 13089 } else { 13090 momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); 13091 } 13092 if (params.freeMode.sticky) { 13093 // If freeMode.sticky is active and the user ends a swipe with a slow-velocity 13094 // event, then durations can be 20+ seconds to slide one (or zero!) slides. 13095 // It's easy to see this when simulating touch with mouse events. To fix this, 13096 // limit single-slide swipes to the default slide duration. This also has the 13097 // nice side effect of matching slide speed if the user stopped moving before 13098 // lifting finger or mouse vs. moving slowly before lifting the finger/mouse. 13099 // For faster swipes, also apply limits (albeit higher ones). 13100 const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate); 13101 const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex]; 13102 if (moveDistance < currentSlideSize) { 13103 momentumDuration = params.speed; 13104 } else if (moveDistance < 2 * currentSlideSize) { 13105 momentumDuration = params.speed * 1.5; 13106 } else { 13107 momentumDuration = params.speed * 2.5; 13108 } 13109 } 13110 } else if (params.freeMode.sticky) { 13111 swiper.slideToClosest(); 13112 return; 13113 } 13114 if (params.freeMode.momentumBounce && doBounce) { 13115 swiper.updateProgress(afterBouncePosition); 13116 swiper.setTransition(momentumDuration); 13117 swiper.setTranslate(newPosition); 13118 swiper.transitionStart(true, swiper.swipeDirection); 13119 swiper.animating = true; 13120 elementTransitionEnd(wrapperEl, () => { 13121 if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return; 13122 emit('momentumBounce'); 13123 swiper.setTransition(params.speed); 13124 setTimeout(() => { 13125 swiper.setTranslate(afterBouncePosition); 13126 elementTransitionEnd(wrapperEl, () => { 13127 if (!swiper || swiper.destroyed) return; 13128 swiper.transitionEnd(); 13129 }); 13130 }, 0); 13131 }); 13132 } else if (swiper.velocity) { 13133 emit('_freeModeNoMomentumRelease'); 13134 swiper.updateProgress(newPosition); 13135 swiper.setTransition(momentumDuration); 13136 swiper.setTranslate(newPosition); 13137 swiper.transitionStart(true, swiper.swipeDirection); 13138 if (!swiper.animating) { 13139 swiper.animating = true; 13140 elementTransitionEnd(wrapperEl, () => { 13141 if (!swiper || swiper.destroyed) return; 13142 swiper.transitionEnd(); 13143 }); 13144 } 13145 } else { 13146 swiper.updateProgress(newPosition); 13147 } 13148 swiper.updateActiveIndex(); 13149 swiper.updateSlidesClasses(); 13150 } else if (params.freeMode.sticky) { 13151 swiper.slideToClosest(); 13152 return; 13153 } else if (params.freeMode) { 13154 emit('_freeModeNoMomentumRelease'); 13155 } 13156 if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) { 13157 emit('_freeModeStaticRelease'); 13158 swiper.updateProgress(); 13159 swiper.updateActiveIndex(); 13160 swiper.updateSlidesClasses(); 13161 } 13162 } 13163 Object.assign(swiper, { 13164 freeMode: { 13165 onTouchStart, 13166 onTouchMove, 13167 onTouchEnd 13168 } 13169 }); 13170} 13171 13172 13173 13174;// CONCATENATED MODULE: ./node_modules/swiper/shared/effect-target.mjs 13175 13176 13177function effect_target_effectTarget(effectParams, slideEl) { 13178 const transformEl = getSlideTransformEl(slideEl); 13179 if (transformEl !== slideEl) { 13180 transformEl.style.backfaceVisibility = 'hidden'; 13181 transformEl.style['-webkit-backface-visibility'] = 'hidden'; 13182 } 13183 return transformEl; 13184} 13185 13186 13187 13188;// CONCATENATED MODULE: ./node_modules/swiper/shared/effect-virtual-transition-end.mjs 13189 13190 13191function effect_virtual_transition_end_effectVirtualTransitionEnd(_ref) { 13192 let { 13193 swiper, 13194 duration, 13195 transformElements, 13196 allSlides 13197 } = _ref; 13198 const { 13199 activeIndex 13200 } = swiper; 13201 const getSlide = el => { 13202 if (!el.parentElement) { 13203 // assume shadow root 13204 const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0]; 13205 return slide; 13206 } 13207 return el.parentElement; 13208 }; 13209 if (swiper.params.virtualTranslate && duration !== 0) { 13210 let eventTriggered = false; 13211 let transitionEndTarget; 13212 if (allSlides) { 13213 transitionEndTarget = transformElements; 13214 } else { 13215 transitionEndTarget = transformElements.filter(transformEl => { 13216 const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl; 13217 return swiper.getSlideIndex(el) === activeIndex; 13218 }); 13219 } 13220 transitionEndTarget.forEach(el => { 13221 elementTransitionEnd(el, () => { 13222 if (eventTriggered) return; 13223 if (!swiper || swiper.destroyed) return; 13224 eventTriggered = true; 13225 swiper.animating = false; 13226 const evt = new window.CustomEvent('transitionend', { 13227 bubbles: true, 13228 cancelable: true 13229 }); 13230 swiper.wrapperEl.dispatchEvent(evt); 13231 }); 13232 }); 13233 } 13234} 13235 13236 13237 13238;// CONCATENATED MODULE: ./node_modules/swiper/modules/effect-fade.mjs 13239 13240 13241 13242 13243 13244function EffectFade(_ref) { 13245 let { 13246 swiper, 13247 extendParams, 13248 on 13249 } = _ref; 13250 extendParams({ 13251 fadeEffect: { 13252 crossFade: false 13253 } 13254 }); 13255 const setTranslate = () => { 13256 const { 13257 slides 13258 } = swiper; 13259 const params = swiper.params.fadeEffect; 13260 for (let i = 0; i < slides.length; i += 1) { 13261 const slideEl = swiper.slides[i]; 13262 const offset = slideEl.swiperSlideOffset; 13263 let tx = -offset; 13264 if (!swiper.params.virtualTranslate) tx -= swiper.translate; 13265 let ty = 0; 13266 if (!swiper.isHorizontal()) { 13267 ty = tx; 13268 tx = 0; 13269 } 13270 const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0); 13271 const targetEl = effectTarget(params, slideEl); 13272 targetEl.style.opacity = slideOpacity; 13273 targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`; 13274 } 13275 }; 13276 const setTransition = duration => { 13277 const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); 13278 transformElements.forEach(el => { 13279 el.style.transitionDuration = `${duration}ms`; 13280 }); 13281 effectVirtualTransitionEnd({ 13282 swiper, 13283 duration, 13284 transformElements, 13285 allSlides: true 13286 }); 13287 }; 13288 effectInit({ 13289 effect: 'fade', 13290 swiper, 13291 on, 13292 setTranslate, 13293 setTransition, 13294 overwriteParams: () => ({ 13295 slidesPerView: 1, 13296 slidesPerGroup: 1, 13297 watchSlidesProgress: true, 13298 spaceBetween: 0, 13299 virtualTranslate: !swiper.params.cssMode 13300 }) 13301 }); 13302} 13303 13304 13305 13306;// CONCATENATED MODULE: ./node_modules/swiper/modules/effect-cube.mjs 13307 13308 13309 13310function EffectCube(_ref) { 13311 let { 13312 swiper, 13313 extendParams, 13314 on 13315 } = _ref; 13316 extendParams({ 13317 cubeEffect: { 13318 slideShadows: true, 13319 shadow: true, 13320 shadowOffset: 20, 13321 shadowScale: 0.94 13322 } 13323 }); 13324 const createSlideShadows = (slideEl, progress, isHorizontal) => { 13325 let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); 13326 let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); 13327 if (!shadowBefore) { 13328 shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' ')); 13329 slideEl.append(shadowBefore); 13330 } 13331 if (!shadowAfter) { 13332 shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' ')); 13333 slideEl.append(shadowAfter); 13334 } 13335 if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); 13336 if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); 13337 }; 13338 const recreateShadows = () => { 13339 // create new ones 13340 const isHorizontal = swiper.isHorizontal(); 13341 swiper.slides.forEach(slideEl => { 13342 const progress = Math.max(Math.min(slideEl.progress, 1), -1); 13343 createSlideShadows(slideEl, progress, isHorizontal); 13344 }); 13345 }; 13346 const setTranslate = () => { 13347 const { 13348 el, 13349 wrapperEl, 13350 slides, 13351 width: swiperWidth, 13352 height: swiperHeight, 13353 rtlTranslate: rtl, 13354 size: swiperSize, 13355 browser 13356 } = swiper; 13357 const r = getRotateFix(swiper); 13358 const params = swiper.params.cubeEffect; 13359 const isHorizontal = swiper.isHorizontal(); 13360 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 13361 let wrapperRotate = 0; 13362 let cubeShadowEl; 13363 if (params.shadow) { 13364 if (isHorizontal) { 13365 cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow'); 13366 if (!cubeShadowEl) { 13367 cubeShadowEl = createElement('div', 'swiper-cube-shadow'); 13368 swiper.wrapperEl.append(cubeShadowEl); 13369 } 13370 cubeShadowEl.style.height = `${swiperWidth}px`; 13371 } else { 13372 cubeShadowEl = el.querySelector('.swiper-cube-shadow'); 13373 if (!cubeShadowEl) { 13374 cubeShadowEl = createElement('div', 'swiper-cube-shadow'); 13375 el.append(cubeShadowEl); 13376 } 13377 } 13378 } 13379 for (let i = 0; i < slides.length; i += 1) { 13380 const slideEl = slides[i]; 13381 let slideIndex = i; 13382 if (isVirtual) { 13383 slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10); 13384 } 13385 let slideAngle = slideIndex * 90; 13386 let round = Math.floor(slideAngle / 360); 13387 if (rtl) { 13388 slideAngle = -slideAngle; 13389 round = Math.floor(-slideAngle / 360); 13390 } 13391 const progress = Math.max(Math.min(slideEl.progress, 1), -1); 13392 let tx = 0; 13393 let ty = 0; 13394 let tz = 0; 13395 if (slideIndex % 4 === 0) { 13396 tx = -round * 4 * swiperSize; 13397 tz = 0; 13398 } else if ((slideIndex - 1) % 4 === 0) { 13399 tx = 0; 13400 tz = -round * 4 * swiperSize; 13401 } else if ((slideIndex - 2) % 4 === 0) { 13402 tx = swiperSize + round * 4 * swiperSize; 13403 tz = swiperSize; 13404 } else if ((slideIndex - 3) % 4 === 0) { 13405 tx = -swiperSize; 13406 tz = 3 * swiperSize + swiperSize * 4 * round; 13407 } 13408 if (rtl) { 13409 tx = -tx; 13410 } 13411 if (!isHorizontal) { 13412 ty = tx; 13413 tx = 0; 13414 } 13415 const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(isHorizontal ? slideAngle : 0)}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`; 13416 if (progress <= 1 && progress > -1) { 13417 wrapperRotate = slideIndex * 90 + progress * 90; 13418 if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90; 13419 } 13420 slideEl.style.transform = transform; 13421 if (params.slideShadows) { 13422 createSlideShadows(slideEl, progress, isHorizontal); 13423 } 13424 } 13425 wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`; 13426 wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`; 13427 if (params.shadow) { 13428 if (isHorizontal) { 13429 cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`; 13430 } else { 13431 const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90; 13432 const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2); 13433 const scale1 = params.shadowScale; 13434 const scale2 = params.shadowScale / multiplier; 13435 const offset = params.shadowOffset; 13436 cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`; 13437 } 13438 } 13439 const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0; 13440 wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`; 13441 wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`); 13442 }; 13443 const setTransition = duration => { 13444 const { 13445 el, 13446 slides 13447 } = swiper; 13448 slides.forEach(slideEl => { 13449 slideEl.style.transitionDuration = `${duration}ms`; 13450 slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => { 13451 subEl.style.transitionDuration = `${duration}ms`; 13452 }); 13453 }); 13454 if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { 13455 const shadowEl = el.querySelector('.swiper-cube-shadow'); 13456 if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`; 13457 } 13458 }; 13459 effectInit({ 13460 effect: 'cube', 13461 swiper, 13462 on, 13463 setTranslate, 13464 setTransition, 13465 recreateShadows, 13466 getEffectParams: () => swiper.params.cubeEffect, 13467 perspective: () => true, 13468 overwriteParams: () => ({ 13469 slidesPerView: 1, 13470 slidesPerGroup: 1, 13471 watchSlidesProgress: true, 13472 resistanceRatio: 0, 13473 spaceBetween: 0, 13474 centeredSlides: false, 13475 virtualTranslate: true 13476 }) 13477 }); 13478} 13479 13480 13481 13482;// CONCATENATED MODULE: ./node_modules/swiper/shared/create-shadow.mjs 13483 13484 13485function create_shadow_createShadow(suffix, slideEl, side) { 13486 const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`; 13487 const shadowContainer = getSlideTransformEl(slideEl); 13488 let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`); 13489 if (!shadowEl) { 13490 shadowEl = createElement('div', shadowClass.split(' ')); 13491 shadowContainer.append(shadowEl); 13492 } 13493 return shadowEl; 13494} 13495 13496 13497 13498;// CONCATENATED MODULE: ./node_modules/swiper/modules/effect-flip.mjs 13499 13500 13501 13502 13503 13504 13505function EffectFlip(_ref) { 13506 let { 13507 swiper, 13508 extendParams, 13509 on 13510 } = _ref; 13511 extendParams({ 13512 flipEffect: { 13513 slideShadows: true, 13514 limitRotation: true 13515 } 13516 }); 13517 const createSlideShadows = (slideEl, progress) => { 13518 let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); 13519 let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); 13520 if (!shadowBefore) { 13521 shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top'); 13522 } 13523 if (!shadowAfter) { 13524 shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom'); 13525 } 13526 if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); 13527 if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); 13528 }; 13529 const recreateShadows = () => { 13530 // Set shadows 13531 swiper.params.flipEffect; 13532 swiper.slides.forEach(slideEl => { 13533 let progress = slideEl.progress; 13534 if (swiper.params.flipEffect.limitRotation) { 13535 progress = Math.max(Math.min(slideEl.progress, 1), -1); 13536 } 13537 createSlideShadows(slideEl, progress); 13538 }); 13539 }; 13540 const setTranslate = () => { 13541 const { 13542 slides, 13543 rtlTranslate: rtl 13544 } = swiper; 13545 const params = swiper.params.flipEffect; 13546 const rotateFix = getRotateFix(swiper); 13547 for (let i = 0; i < slides.length; i += 1) { 13548 const slideEl = slides[i]; 13549 let progress = slideEl.progress; 13550 if (swiper.params.flipEffect.limitRotation) { 13551 progress = Math.max(Math.min(slideEl.progress, 1), -1); 13552 } 13553 const offset = slideEl.swiperSlideOffset; 13554 const rotate = -180 * progress; 13555 let rotateY = rotate; 13556 let rotateX = 0; 13557 let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset; 13558 let ty = 0; 13559 if (!swiper.isHorizontal()) { 13560 ty = tx; 13561 tx = 0; 13562 rotateX = -rotateY; 13563 rotateY = 0; 13564 } else if (rtl) { 13565 rotateY = -rotateY; 13566 } 13567 slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length; 13568 if (params.slideShadows) { 13569 createSlideShadows(slideEl, progress); 13570 } 13571 const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`; 13572 const targetEl = effectTarget(params, slideEl); 13573 targetEl.style.transform = transform; 13574 } 13575 }; 13576 const setTransition = duration => { 13577 const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); 13578 transformElements.forEach(el => { 13579 el.style.transitionDuration = `${duration}ms`; 13580 el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { 13581 shadowEl.style.transitionDuration = `${duration}ms`; 13582 }); 13583 }); 13584 effectVirtualTransitionEnd({ 13585 swiper, 13586 duration, 13587 transformElements 13588 }); 13589 }; 13590 effectInit({ 13591 effect: 'flip', 13592 swiper, 13593 on, 13594 setTranslate, 13595 setTransition, 13596 recreateShadows, 13597 getEffectParams: () => swiper.params.flipEffect, 13598 perspective: () => true, 13599 overwriteParams: () => ({ 13600 slidesPerView: 1, 13601 slidesPerGroup: 1, 13602 watchSlidesProgress: true, 13603 spaceBetween: 0, 13604 virtualTranslate: !swiper.params.cssMode 13605 }) 13606 }); 13607} 13608 13609 13610 13611;// CONCATENATED MODULE: ./node_modules/swiper/modules/effect-coverflow.mjs 13612 13613 13614 13615 13616 13617function EffectCoverflow(_ref) { 13618 let { 13619 swiper, 13620 extendParams, 13621 on 13622 } = _ref; 13623 extendParams({ 13624 coverflowEffect: { 13625 rotate: 50, 13626 stretch: 0, 13627 depth: 100, 13628 scale: 1, 13629 modifier: 1, 13630 slideShadows: true 13631 } 13632 }); 13633 const setTranslate = () => { 13634 const { 13635 width: swiperWidth, 13636 height: swiperHeight, 13637 slides, 13638 slidesSizesGrid 13639 } = swiper; 13640 const params = swiper.params.coverflowEffect; 13641 const isHorizontal = swiper.isHorizontal(); 13642 const transform = swiper.translate; 13643 const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2; 13644 const rotate = isHorizontal ? params.rotate : -params.rotate; 13645 const translate = params.depth; 13646 const r = getRotateFix(swiper); 13647 // Each slide offset from center 13648 for (let i = 0, length = slides.length; i < length; i += 1) { 13649 const slideEl = slides[i]; 13650 const slideSize = slidesSizesGrid[i]; 13651 const slideOffset = slideEl.swiperSlideOffset; 13652 const centerOffset = (center - slideOffset - slideSize / 2) / slideSize; 13653 const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier; 13654 let rotateY = isHorizontal ? rotate * offsetMultiplier : 0; 13655 let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; 13656 // var rotateZ = 0 13657 let translateZ = -translate * Math.abs(offsetMultiplier); 13658 let stretch = params.stretch; 13659 // Allow percentage to make a relative stretch for responsive sliders 13660 if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) { 13661 stretch = parseFloat(params.stretch) / 100 * slideSize; 13662 } 13663 let translateY = isHorizontal ? 0 : stretch * offsetMultiplier; 13664 let translateX = isHorizontal ? stretch * offsetMultiplier : 0; 13665 let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); 13666 13667 // Fix for ultra small values 13668 if (Math.abs(translateX) < 0.001) translateX = 0; 13669 if (Math.abs(translateY) < 0.001) translateY = 0; 13670 if (Math.abs(translateZ) < 0.001) translateZ = 0; 13671 if (Math.abs(rotateY) < 0.001) rotateY = 0; 13672 if (Math.abs(rotateX) < 0.001) rotateX = 0; 13673 if (Math.abs(scale) < 0.001) scale = 0; 13674 const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`; 13675 const targetEl = effectTarget(params, slideEl); 13676 targetEl.style.transform = slideTransform; 13677 slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; 13678 if (params.slideShadows) { 13679 // Set shadows 13680 let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); 13681 let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); 13682 if (!shadowBeforeEl) { 13683 shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top'); 13684 } 13685 if (!shadowAfterEl) { 13686 shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom'); 13687 } 13688 if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; 13689 if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0; 13690 } 13691 } 13692 }; 13693 const setTransition = duration => { 13694 const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); 13695 transformElements.forEach(el => { 13696 el.style.transitionDuration = `${duration}ms`; 13697 el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { 13698 shadowEl.style.transitionDuration = `${duration}ms`; 13699 }); 13700 }); 13701 }; 13702 effectInit({ 13703 effect: 'coverflow', 13704 swiper, 13705 on, 13706 setTranslate, 13707 setTransition, 13708 perspective: () => true, 13709 overwriteParams: () => ({ 13710 watchSlidesProgress: true 13711 }) 13712 }); 13713} 13714 13715 13716 13717;// CONCATENATED MODULE: ./node_modules/swiper/modules/effect-creative.mjs 13718 13719 13720 13721 13722 13723 13724function EffectCreative(_ref) { 13725 let { 13726 swiper, 13727 extendParams, 13728 on 13729 } = _ref; 13730 extendParams({ 13731 creativeEffect: { 13732 limitProgress: 1, 13733 shadowPerProgress: false, 13734 progressMultiplier: 1, 13735 perspective: true, 13736 prev: { 13737 translate: [0, 0, 0], 13738 rotate: [0, 0, 0], 13739 opacity: 1, 13740 scale: 1 13741 }, 13742 next: { 13743 translate: [0, 0, 0], 13744 rotate: [0, 0, 0], 13745 opacity: 1, 13746 scale: 1 13747 } 13748 } 13749 }); 13750 const getTranslateValue = value => { 13751 if (typeof value === 'string') return value; 13752 return `${value}px`; 13753 }; 13754 const setTranslate = () => { 13755 const { 13756 slides, 13757 wrapperEl, 13758 slidesSizesGrid 13759 } = swiper; 13760 const params = swiper.params.creativeEffect; 13761 const { 13762 progressMultiplier: multiplier 13763 } = params; 13764 const isCenteredSlides = swiper.params.centeredSlides; 13765 const rotateFix = getRotateFix(swiper); 13766 if (isCenteredSlides) { 13767 const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0; 13768 wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`; 13769 } 13770 for (let i = 0; i < slides.length; i += 1) { 13771 const slideEl = slides[i]; 13772 const slideProgress = slideEl.progress; 13773 const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress); 13774 let originalProgress = progress; 13775 if (!isCenteredSlides) { 13776 originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress); 13777 } 13778 const offset = slideEl.swiperSlideOffset; 13779 const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0]; 13780 const r = [0, 0, 0]; 13781 let custom = false; 13782 if (!swiper.isHorizontal()) { 13783 t[1] = t[0]; 13784 t[0] = 0; 13785 } 13786 let data = { 13787 translate: [0, 0, 0], 13788 rotate: [0, 0, 0], 13789 scale: 1, 13790 opacity: 1 13791 }; 13792 if (progress < 0) { 13793 data = params.next; 13794 custom = true; 13795 } else if (progress > 0) { 13796 data = params.prev; 13797 custom = true; 13798 } 13799 // set translate 13800 t.forEach((value, index) => { 13801 t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`; 13802 }); 13803 // set rotates 13804 r.forEach((value, index) => { 13805 let val = data.rotate[index] * Math.abs(progress * multiplier); 13806 r[index] = val; 13807 }); 13808 slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; 13809 const translateString = t.join(', '); 13810 const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`; 13811 const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`; 13812 const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier; 13813 const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; 13814 13815 // Set shadows 13816 if (custom && data.shadow || !custom) { 13817 let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); 13818 if (!shadowEl && data.shadow) { 13819 shadowEl = createShadow('creative', slideEl); 13820 } 13821 if (shadowEl) { 13822 const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress; 13823 shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1); 13824 } 13825 } 13826 const targetEl = effectTarget(params, slideEl); 13827 targetEl.style.transform = transform; 13828 targetEl.style.opacity = opacityString; 13829 if (data.origin) { 13830 targetEl.style.transformOrigin = data.origin; 13831 } 13832 } 13833 }; 13834 const setTransition = duration => { 13835 const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); 13836 transformElements.forEach(el => { 13837 el.style.transitionDuration = `${duration}ms`; 13838 el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { 13839 shadowEl.style.transitionDuration = `${duration}ms`; 13840 }); 13841 }); 13842 effectVirtualTransitionEnd({ 13843 swiper, 13844 duration, 13845 transformElements, 13846 allSlides: true 13847 }); 13848 }; 13849 effectInit({ 13850 effect: 'creative', 13851 swiper, 13852 on, 13853 setTranslate, 13854 setTransition, 13855 perspective: () => swiper.params.creativeEffect.perspective, 13856 overwriteParams: () => ({ 13857 watchSlidesProgress: true, 13858 virtualTranslate: !swiper.params.cssMode 13859 }) 13860 }); 13861} 13862 13863 13864 13865;// CONCATENATED MODULE: ./node_modules/swiper/modules/effect-cards.mjs 13866 13867 13868 13869 13870 13871 13872function EffectCards(_ref) { 13873 let { 13874 swiper, 13875 extendParams, 13876 on 13877 } = _ref; 13878 extendParams({ 13879 cardsEffect: { 13880 slideShadows: true, 13881 rotate: true, 13882 perSlideRotate: 2, 13883 perSlideOffset: 8 13884 } 13885 }); 13886 const setTranslate = () => { 13887 const { 13888 slides, 13889 activeIndex, 13890 rtlTranslate: rtl 13891 } = swiper; 13892 const params = swiper.params.cardsEffect; 13893 const { 13894 startTranslate, 13895 isTouched 13896 } = swiper.touchEventsData; 13897 const currentTranslate = rtl ? -swiper.translate : swiper.translate; 13898 for (let i = 0; i < slides.length; i += 1) { 13899 const slideEl = slides[i]; 13900 const slideProgress = slideEl.progress; 13901 const progress = Math.min(Math.max(slideProgress, -4), 4); 13902 let offset = slideEl.swiperSlideOffset; 13903 if (swiper.params.centeredSlides && !swiper.params.cssMode) { 13904 swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`; 13905 } 13906 if (swiper.params.centeredSlides && swiper.params.cssMode) { 13907 offset -= slides[0].swiperSlideOffset; 13908 } 13909 let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset; 13910 let tY = 0; 13911 const tZ = -100 * Math.abs(progress); 13912 let scale = 1; 13913 let rotate = -params.perSlideRotate * progress; 13914 let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75; 13915 const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i; 13916 const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate; 13917 const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate; 13918 if (isSwipeToNext || isSwipeToPrev) { 13919 const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5; 13920 rotate += -28 * progress * subProgress; 13921 scale += -0.5 * subProgress; 13922 tXAdd += 96 * subProgress; 13923 tY = `${-25 * subProgress * Math.abs(progress)}%`; 13924 } 13925 if (progress < 0) { 13926 // next 13927 tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`; 13928 } else if (progress > 0) { 13929 // prev 13930 tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`; 13931 } else { 13932 tX = `${tX}px`; 13933 } 13934 if (!swiper.isHorizontal()) { 13935 const prevY = tY; 13936 tY = tX; 13937 tX = prevY; 13938 } 13939 const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`; 13940 13941 /* eslint-disable */ 13942 const transform = ` 13943 translate3d(${tX}, ${tY}, ${tZ}px) 13944 rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg) 13945 scale(${scaleString}) 13946 `; 13947 /* eslint-enable */ 13948 13949 if (params.slideShadows) { 13950 // Set shadows 13951 let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); 13952 if (!shadowEl) { 13953 shadowEl = createShadow('cards', slideEl); 13954 } 13955 if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1); 13956 } 13957 slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; 13958 const targetEl = effectTarget(params, slideEl); 13959 targetEl.style.transform = transform; 13960 } 13961 }; 13962 const setTransition = duration => { 13963 const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));
13964 transformElements.forEach(el => { 13965 el.style.transitionDuration = `${duration}ms`; 13966 el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { 13967 shadowEl.style.transitionDuration = `${duration}ms`; 13968 }); 13969 }); 13970 effectVirtualTransitionEnd({ 13971 swiper, 13972 duration, 13973 transformElements 13974 }); 13975 }; 13976 effectInit({ 13977 effect: 'cards', 13978 swiper, 13979 on, 13980 setTranslate, 13981 setTransition, 13982 perspective: () => true, 13983 overwriteParams: () => ({ 13984 watchSlidesProgress: true, 13985 virtualTranslate: !swiper.params.cssMode 13986 }) 13987 }); 13988} 13989 13990 13991 13992;// CONCATENATED MODULE: ./node_modules/swiper/modules/index.mjs 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016;// CONCATENATED MODULE: ./src/ui/brpModelImage.tsx 14017 14018 14019 14020 14021 14022 14023 14024 14025const BrpModelImage = () => { 14026 const { images: items } = (0,react.useContext)(BrpInventoryContext); 14027 const mainSlideshow = (0,react.useRef)(null); 14028 const thumbnailSlideshow = (0,react.useRef)(null); 14029 const setSlideshowSkeletonLoading = ($slideshow) => { 14030 $(".swiper-slide img", $slideshow).each(function (_, element) { 14031 const $element = $(element); 14032 const removeSkeletonAndAddLoadedClass = ($img) => { 14033 $img.parent().find(".skeleton-container").remove(); 14034 $element.removeClass("loading"); 14035 $img.addClass("loaded"); 14036 }; 14037 const isLoaded = element.complete && element.naturalWidth > 0; 14038 if (isLoaded) { // image has loaded 14039 removeSkeletonAndAddLoadedClass($element); 14040 } 14041 else { 14042 $element.on("load", () => { 14043 removeSkeletonAndAddLoadedClass($element); 14044 }); 14045 $element.on("error", () => { 14046 }); 14047 } 14048 }); 14049 }; 14050 const destroyOwnCarousel = (swiper) => { 14051 swiper && swiper.destroy(); 14052 }; 14053 // When swiper use loop feature, the index will be shifted by virtual slides. 14054 const getAbsoluteIndexSwiperSlide = (swiperEle, clickedIndex) => { 14055 return $(swiperEle).find(`[data-swiper-slide-index='${clickedIndex}'`).index(); 14056 }; 14057 (0,react.useEffect)(() => { 14058 if (items.length === 0) { 14059 return; 14060 } 14061 const prevBtnMainSlideshow = $(mainSlideshow.current).find('.swiper-button-prev'); 14062 const nextBtnMainSlideshow = $(mainSlideshow.current).find('.swiper-button-next'); 14063 const mainSlideshowSwiper = new Swiper(mainSlideshow.current, { 14064 loop: true, 14065 modules: [Navigation], 14066 spaceBetween: 5, 14067 navigation: { 14068 prevEl: prevBtnMainSlideshow.get(0), 14069 nextEl: nextBtnMainSlideshow.get(0) 14070 }, 14071 on: { 14072 init: (swiper) => { 14073 setSlideshowSkeletonLoading($(swiper.el)); 14074 }, 14075 navigationNext: (swiper) => { 14076 thumbnailSlideshowSwiper.slideTo(swiper.realIndex, 100); 14077 $(thumbnailSlideshowSwiper.el).find(".swiper-slide").removeClass("synced"); 14078 $(thumbnailSlideshowSwiper.el).find(".swiper-slide").eq(swiper.realIndex).addClass("synced"); 14079 }, 14080 navigationPrev: (swiper) => { 14081 thumbnailSlideshowSwiper.slideTo(swiper.realIndex, 100); 14082 $(thumbnailSlideshowSwiper.el).find(".swiper-slide").removeClass("synced"); 14083 $(thumbnailSlideshowSwiper.el).find(".swiper-slide").eq(swiper.realIndex).addClass("synced"); 14084 } 14085 } 14086 }); 14087 const prevBtnThumbnailSlideshow = $(thumbnailSlideshow.current).find('.swiper-button-prev'); 14088 const nextBtnThumbnailSlideshow = $(thumbnailSlideshow.current).find('.swiper-button-next'); 14089 const thumbnailSlideshowSwiper = new Swiper(thumbnailSlideshow.current, { 14090 modules: [Navigation], 14091 spaceBetween: 5, 14092 breakpoints: { 14093 0: { 14094 slidesPerGroup: 3, 14095 slidesPerView: 3 14096 }, 14097 768: { 14098 slidesPerGroup: 5, 14099 slidesPerView: 5 14100 } 14101 }, 14102 navigation: { 14103 prevEl: prevBtnThumbnailSlideshow.get(0), 14104 nextEl: nextBtnThumbnailSlideshow.get(0) 14105 }, 14106 on: { 14107 init: (swiper) => { 14108 setSlideshowSkeletonLoading($(swiper.el)); 14109 $(swiper.el).removeClass('#thumbnailCarousel'); 14110 $(swiper.el).find(".swiper-slide").eq(0).addClass("synced"); 14111 prevBtnThumbnailSlideshow.removeClass("hide"); 14112 nextBtnThumbnailSlideshow.removeClass("hide"); 14113 }, 14114 click: (swiper) => { 14115 $(swiper.el).find(".swiper-slide").removeClass("synced");
14116 $(swiper.el).find(".swiper-slide").eq(swiper.clickedIndex).addClass("synced"); 14117 const absoluteIndex = getAbsoluteIndexSwiperSlide(mainSlideshowSwiper.el, swiper.clickedIndex); 14118 mainSlideshowSwiper.slideTo(absoluteIndex); 14119 } 14120 } 14121 }); 14122 return () => { 14123 destroyOwnCarousel(mainSlideshowSwiper); 14124 destroyOwnCarousel(thumbnailSlideshowSwiper); 14125 }; 14126 }, [items, mainSlideshow, thumbnailSlideshow]); 14127 return ((0,jsx_runtime.jsx)(jsx_runtime.Fragment, { children: items.length > 0 ? 14128 (0,jsx_runtime.jsx)("div", Object.assign({ className: "model-photos" }, { children: (0,jsx_runtime.jsxs)("div", Object.assign({ id: "slideshow-frame", className: "thumbnail-frame" }, { children: [(0,jsx_runtime.jsxs)("div", Object.assign({ id: "slideshow-main", ref: mainSlideshow, className: "main-frame swiper" }, { children: [(0,jsx_runtime.jsx)("div", Object.assign({ className: "swiper-wrapper" }, { children: items.map((image, i) => (0,jsx_runtime.jsxs)("div", Object.assign({ className: "item swiper-slide" }, { children: [(0,jsx_runtime.jsx)("img", { srcSet: `${image.Url} 480w, ${image.Url}`, sizes: "(max-width: 640px) 480px", className: "img-responsive loading", loading: "lazy" }), (0,jsx_runtime.jsx)(Skeleton, { style: { aspectRatio: "4/3", lineHeight: 2, maxWidth: "100%" }, borderRadius: 0, containerClassName: "skeleton-container" })] }), i)) })), (0,jsx_runtime.jsx)("div", { className: "swiper-button-next hide" }), (0,jsx_runtime.jsx)("div", { className: "swiper-button-prev hide" })] })), (0,jsx_runtime.jsx)("div", Object.assign({ id: "slideshowActions" }, { children: (0,jsx_runtime.jsx)("div", Object.assign({ className: "actions-header" }, { children: (0,jsx_runtime.jsx)("button", Object.assign({ id: "sliderStatus", className: "image-action image-count", type: "button", "data-toggle": "collapse", "data-target": "#slideshowThumbnails", "aria-expanded": "true", "aria-controls": "slideshowThumbnails" }, { children: items.length > 0 && (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { children: [(0,jsx_runtime.jsx)("span", Object.assign({ className: "items" }, { children: (0,jsx_runtime.jsx)("span", Object.assign({ className: "result" }, { children: items.length })) })), (0,jsx_runtime.jsx)("span", { className: "fa fa-camera", "aria-hidden": "true" })] }) })) })) })), (0,jsx_runtime.jsx)("div", Object.assign({ id: "slideshowThumbnails", className: "collapse in", "aria-expanded": "true" }, { children: (0,jsx_runtime.jsxs)("div", Object.assign({ id: "thumbnailCarousel", ref: thumbnailSlideshow, className: "swiper" }, { children: [(0,jsx_runtime.jsx)("div", Object.assign({ className: "swiper-wrapper" }, { children: items.map((image, i) => (0,jsx_runtime.jsxs)("div", Object.assign({ className: "item swiper-slide" }, { children: [(0,jsx_runtime.jsx)("img", { src: image.Url, className: "img-responsive loading", loading: "lazy" }), (0,jsx_runtime.jsx)(Skeleton, { style: { aspectRatio: "4/3", lineHeight: 2, maxWidth: "auto" }, borderRadius: 0, containerClassName: "skeleton-container" })] }), i)) })), (0,jsx_runtime.jsx)("div", { className: "swiper-button-next hide" }), (0,jsx_runtime.jsx)("div", { className: "swiper-button-prev hide" })] })) }))] })) })) 14129 : (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { children: [(0,jsx_runtime.jsx)(Skeleton, { style: { width: "100%", aspectRatio: "4/3", marginTop: "20px" } }), (0,jsx_runtime.jsx)(Skeleton, { style: { width: "100%", height: "100px", margin: "2px 0 15px" } })] }) })); 14130}; 14131 14132 14133;// CONCATENATED MODULE: ./src/ui/brpInventory.tsx 14134 14135 14136 14137 14138 14139 14140const BrpInventory = () => { 14141 const { moduleContext, categories, selectedCategory, selectedGroup, onSelectedCategoryChanged, onSelectedGroupChanged } = (0,react.useContext)(BrpInventoryContext); 14142 if (!categories.length) { 14143 return (0,jsx_runtime.jsx)(jsx_runtime.Fragment, {}); 14144 } 14145 return ((0,jsx_runtime.jsx)(jsx_runtime.Fragment, { children: selectedGroup && (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { children: [(0,jsx_runtime.jsx)("div", Object.assign({ className: "brpinventory-header" }, { children: (0,jsx_runtime.jsxs)("div", Object.assign({ className: "container brpinventory-wrap category-section" }, { children: [(0,jsx_runtime.jsx)("h2", Object.assign({ className: "line-up eng" }, { children: "The Lineup" })), (0,jsx_runtime.jsx)("h2", Object.assign({ className: "line-up esp" }, { children: "La Gama" })), categories && categories.length > 1 && 14146 (0,jsx_runtime.jsx)("nav", Object.assign({ className: "category-nav" }, { children: (0,jsx_runtime.jsx)("ul", { children: categories.map((category, i) => (0,jsx_runtime.jsx)("li", Object.assign({ role: "presentation", className: selectedCategory === category ? "active" : "" }, { children: (0,jsx_runtime.jsx)("a", Object.assign({ onClick: () => onSelectedCategoryChanged(category) }, { children: category.categoryDisplayName })) }), i)) }) }))] })) })), (0,jsx_runtime.jsx)("nav", Object.assign({ className: "family-nav" }, { children: (0,jsx_runtime.jsx)("div", Object.assign({ className: "container brpinventory-wrap" }, { children: (0,jsx_runtime.jsx)("ul", Object.assign({ className: "nav nav-models", "aria-labelledby": "FamilySelect" }, { children: selectedCategory.groups.map((group, i) => (0,jsx_runtime.jsx)("li", Object.assign({ role: "presentation", className: `button ${selectedGroup === group ? "active" : ""}` }, { children: (0,jsx_runtime.jsxs)("a", Object.assign({ className: "btn-family", onClick: () => onSelectedGroupChanged(group, "click") }, { children: [(0,jsx_runtime.jsx)("span", Object.assign({ className: "thumbnail-frame" }, { children: (0,jsx_runtime.jsx)("img", { src: group.groupImageUrl, className: "img-responsive family-featured-image" }) })), (0,jsx_runtime.jsx)("span", Object.assign({ className: "btn-family-name" }, { children: group.groupName }))] })) }), i)) })) })) })), (0,jsx_runtime.jsx)("div", Object.assign({ className: "family-info container" }, { children: (0,jsx_runtime.jsxs)("div", Object.assign({ className: "row brpinventory-wrap" }, { children: [(0,jsx_runtime.jsxs)("div", Object.assign({ className: "col-md-6 family-details" }, { children: [(0,jsx_runtime.jsx)("img", { src: moduleContext.brandLogoUrl, loading: "lazy" }), (0,jsx_runtime.jsx)("h3", Object.assign({ className: "family-name" }, { children: selectedGroup ? selectedGroup.groupName : (0,jsx_runtime.jsx)(Skeleton, { width: "250px" }) })), (0,jsx_runtime.jsx)("div", { children: selectedGroup ? selectedGroup.groupDescription : (0,jsx_runtime.jsx)(Skeleton, { count: 2.5 }) }), (0,jsx_runtime.jsx)(BrpModelImage, {})] })), (0,jsx_runtime.jsx)("div", Object.assign({ className: "col-md-6 family-inventory" }, { children: (0,jsx_runtime.jsx)(BrpItemList, {}) }))] })) }))] }) })); 14147}; 14148/* harmony default export */ var brpInventory = (BrpInventory); 14149 14150;// CONCATENATED MODULE: ./node_modules/react-loading-skeleton/dist/skeleton.css 14151// extracted by mini-css-extract-plugin 14152 14153// EXTERNAL MODULE: ./node_modules/react-dom/client.js 14154var client = __webpack_require__(745); 14155;// CONCATENATED MODULE: ./src/ui/index.tsx 14156 14157/*import { DnnUtils } from "./shared/dnnUtils";*/ 14158 14159 14160 14161 14162 14163function initModule(moduleContext) { 14164 // IMPORTANT NOTE 14165 // - init service framework 14166 //DnnUtils.intServiceFramework(moduleId); 14167 const root = (0,client/* createRoot */.s)(document.getElementById(`dx1-brpinventory-${moduleContext.moduleId}`));
14168 root.render((0,jsx_runtime.jsx)(BrpInventoryProvider, Object.assign({ moduleContext: moduleContext }, { children: (0,jsx_runtime.jsx)(brpInventory, {}) }))); 14169} 14170 14171}(); 14172Dx1BrpInventory = __webpack_exports__; 14173/******/ })() 14174;
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.