1/******/ (function() { // webpackBootstrap 2/******/ "use strict"; 3/******/ var __webpack_modules__ = ({ 4
vendor: 4,009 bytes, lines 5-170
5/***/ "./node_modules/ssr-window/ssr-window.esm.js": 6/*!***************************************************!*\ 7 !*** ./node_modules/ssr-window/ssr-window.esm.js ***! 8 \***************************************************/ 9/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10 11__webpack_require__.r(__webpack_exports__); 12/* harmony export */ __webpack_require__.d(__webpack_exports__, { 13/* harmony export */ "extend": function() { return /* binding */ extend; }, 14/* harmony export */ "getDocument": function() { return /* binding */ getDocument; }, 15/* harmony export */ "getWindow": function() { return /* binding */ getWindow; }, 16/* harmony export */ "ssrDocument": function() { return /* binding */ ssrDocument; }, 17/* harmony export */ "ssrWindow": function() { return /* binding */ ssrWindow; } 18/* harmony export */ }); 19/** 20 * SSR Window 4.0.2 21 * Better handling for window object in SSR environment 22 * https://github.com/nolimits4web/ssr-window 23 * 24 * Copyright 2021, Vladimir Kharlampidi 25 * 26 * Licensed under MIT 27 * 28 * Released on: December 13, 2021 29 */ 30/* eslint-disable no-param-reassign */ 31function isObject(obj) { 32 return (obj !== null && 33 typeof obj === 'object' && 34 'constructor' in obj && 35 obj.constructor === Object); 36} 37function extend(target = {}, src = {}) { 38 Object.keys(src).forEach((key) => { 39 if (typeof target[key] === 'undefined') 40 target[key] = src[key]; 41 else if (isObject(src[key]) && 42 isObject(target[key]) && 43 Object.keys(src[key]).length > 0) { 44 extend(target[key], src[key]); 45 } 46 }); 47} 48 49const ssrDocument = { 50 body: {}, 51 addEventListener() { }, 52 removeEventListener() { }, 53 activeElement: { 54 blur() { }, 55 nodeName: '', 56 }, 57 querySelector() { 58 return null; 59 }, 60 querySelectorAll() { 61 return []; 62 }, 63 getElementById() { 64 return null; 65 }, 66 createEvent() { 67 return { 68 initEvent() { }, 69 }; 70 }, 71 createElement() { 72 return { 73 children: [], 74 childNodes: [], 75 style: {}, 76 setAttribute() { }, 77 getElementsByTagName() { 78 return []; 79 }, 80 }; 81 }, 82 createElementNS() { 83 return {}; 84 }, 85 importNode() { 86 return null; 87 }, 88 location: { 89 hash: '', 90 host: '', 91 hostname: '', 92 href: '', 93 origin: '', 94 pathname: '', 95 protocol: '', 96 search: '', 97 }, 98}; 99function getDocument() { 100 const doc = typeof document !== 'undefined' ? document : {}; 101 extend(doc, ssrDocument); 102 return doc; 103} 104 105const ssrWindow = { 106 document: ssrDocument, 107 navigator: { 108 userAgent: '', 109 }, 110 location: { 111 hash: '', 112 host: '', 113 hostname: '', 114 href: '', 115 origin: '', 116 pathname: '', 117 protocol: '', 118 search: '', 119 }, 120 history: { 121 replaceState() { }, 122 pushState() { }, 123 go() { }, 124 back() { }, 125 }, 126 CustomEvent: function CustomEvent() { 127 return this; 128 }, 129 addEventListener() { }, 130 removeEventListener() { }, 131 getComputedStyle() { 132 return { 133 getPropertyValue() { 134 return ''; 135 }, 136 }; 137 }, 138 Image() { }, 139 Date() { }, 140 screen: {}, 141 setTimeout() { }, 142 clearTimeout() { }, 143 matchMedia() { 144 return {}; 145 }, 146 requestAnimationFrame(callback) { 147 if (typeof setTimeout === 'undefined') { 148 callback(); 149 return null; 150 } 151 return setTimeout(callback, 0); 152 }, 153 cancelAnimationFrame(id) { 154 if (typeof setTimeout === 'undefined') { 155 return; 156 } 157 clearTimeout(id); 158 }, 159}; 160function getWindow() { 161 const win = typeof window !== 'undefined' ? window : {}; 162 extend(win, ssrWindow); 163 return win; 164} 165 166 167 168 169/***/ }), 170
vendor: 1,854 bytes, lines 171-220
171/***/ "./node_modules/swiper/core/breakpoints/getBreakpoint.js": 172/*!***************************************************************!*\ 173 !*** ./node_modules/swiper/core/breakpoints/getBreakpoint.js ***! 174 \***************************************************************/ 175/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 176 177__webpack_require__.r(__webpack_exports__); 178/* harmony export */ __webpack_require__.d(__webpack_exports__, { 179/* harmony export */ "default": function() { return /* binding */ getBreakpoint; } 180/* harmony export */ }); 181/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 182 183function getBreakpoint(breakpoints, base = 'window', containerEl) { 184 if (!breakpoints || base === 'container' && !containerEl) return undefined; 185 let breakpoint = false; 186 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 187 const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight; 188 const points = Object.keys(breakpoints).map(point => { 189 if (typeof point === 'string' && point.indexOf('@') === 0) { 190 const minRatio = parseFloat(point.substr(1)); 191 const value = currentHeight * minRatio; 192 return { 193 value, 194 point 195 }; 196 } 197 return { 198 value: point, 199 point 200 }; 201 }); 202 points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10)); 203 for (let i = 0; i < points.length; i += 1) { 204 const { 205 point, 206 value 207 } = points[i]; 208 if (base === 'window') { 209 if (window.matchMedia(`(min-width: ${value}px)`).matches) { 210 breakpoint = point; 211 } 212 } else if (value <= containerEl.clientWidth) { 213 breakpoint = point; 214 } 215 } 216 return breakpoint || 'max'; 217} 218 219/***/ }), 220
vendor: 975 bytes, lines 221-238
221/***/ "./node_modules/swiper/core/breakpoints/index.js": 222/*!*******************************************************!*\ 223 !*** ./node_modules/swiper/core/breakpoints/index.js ***! 224 \*******************************************************/ 225/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 226 227__webpack_require__.r(__webpack_exports__); 228/* harmony import */ var _setBreakpoint_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setBreakpoint.js */ "./node_modules/swiper/core/breakpoints/setBreakpoint.js"); 229/* harmony import */ var _getBreakpoint_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getBreakpoint.js */ "./node_modules/swiper/core/breakpoints/getBreakpoint.js"); 230 231 232/* harmony default export */ __webpack_exports__["default"] = ({ 233 setBreakpoint: _setBreakpoint_js__WEBPACK_IMPORTED_MODULE_0__["default"], 234 getBreakpoint: _getBreakpoint_js__WEBPACK_IMPORTED_MODULE_1__["default"] 235}); 236 237/***/ }), 238
vendor: 3,666 bytes, lines 239-323
239/***/ "./node_modules/swiper/core/breakpoints/setBreakpoint.js": 240/*!***************************************************************!*\ 241 !*** ./node_modules/swiper/core/breakpoints/setBreakpoint.js ***! 242 \***************************************************************/ 243/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 244 245__webpack_require__.r(__webpack_exports__); 246/* harmony export */ __webpack_require__.d(__webpack_exports__, { 247/* harmony export */ "default": function() { return /* binding */ setBreakpoint; } 248/* harmony export */ }); 249/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 250 251const isGridEnabled = (swiper, params) => { 252 return swiper.grid && params.grid && params.grid.rows > 1; 253}; 254function setBreakpoint() { 255 const swiper = this; 256 const { 257 realIndex, 258 initialized, 259 params, 260 el 261 } = swiper; 262 const breakpoints = params.breakpoints; 263 if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; 264 265 // Get breakpoint for window width and update parameters 266 const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el); 267 if (!breakpoint || swiper.currentBreakpoint === breakpoint) return; 268 const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; 269 const breakpointParams = breakpointOnlyParams || swiper.originalParams; 270 const wasMultiRow = isGridEnabled(swiper, params); 271 const isMultiRow = isGridEnabled(swiper, breakpointParams); 272 const wasEnabled = params.enabled; 273 if (wasMultiRow && !isMultiRow) { 274 el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`); 275 swiper.emitContainerClasses(); 276 } else if (!wasMultiRow && isMultiRow) { 277 el.classList.add(`${params.containerModifierClass}grid`); 278 if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') { 279 el.classList.add(`${params.containerModifierClass}grid-column`); 280 } 281 swiper.emitContainerClasses(); 282 } 283 284 // Toggle navigation, pagination, scrollbar 285 ['navigation', 'pagination', 'scrollbar'].forEach(prop => { 286 const wasModuleEnabled = params[prop] && params[prop].enabled; 287 const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled; 288 if (wasModuleEnabled && !isModuleEnabled) { 289 swiper[prop].disable(); 290 } 291 if (!wasModuleEnabled && isModuleEnabled) { 292 swiper[prop].enable(); 293 } 294 }); 295 const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; 296 const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); 297 if (directionChanged && initialized) { 298 swiper.changeDirection(); 299 } 300 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(swiper.params, breakpointParams); 301 const isEnabled = swiper.params.enabled; 302 Object.assign(swiper, { 303 allowTouchMove: swiper.params.allowTouchMove, 304 allowSlideNext: swiper.params.allowSlideNext, 305 allowSlidePrev: swiper.params.allowSlidePrev 306 }); 307 if (wasEnabled && !isEnabled) { 308 swiper.disable(); 309 } else if (!wasEnabled && isEnabled) { 310 swiper.enable(); 311 } 312 swiper.currentBreakpoint = breakpoint; 313 swiper.emit('_beforeBreakpoint', breakpointParams); 314 if (needsReLoop && initialized) { 315 swiper.loopDestroy(); 316 swiper.loopCreate(realIndex); 317 swiper.updateSlides(); 318 } 319 swiper.emit('breakpoint', breakpointParams); 320} 321 322/***/ }), 323
vendor: 1,344 bytes, lines 324-365
324/***/ "./node_modules/swiper/core/check-overflow/index.js": 325/*!**********************************************************!*\ 326 !*** ./node_modules/swiper/core/check-overflow/index.js ***! 327 \**********************************************************/ 328/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 329 330__webpack_require__.r(__webpack_exports__); 331function checkOverflow() { 332 const swiper = this; 333 const { 334 isLocked: wasLocked, 335 params 336 } = swiper; 337 const { 338 slidesOffsetBefore 339 } = params; 340 if (slidesOffsetBefore) { 341 const lastSlideIndex = swiper.slides.length - 1; 342 const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2; 343 swiper.isLocked = swiper.size > lastSlideRightEdge; 344 } else { 345 swiper.isLocked = swiper.snapGrid.length === 1; 346 } 347 if (params.allowSlideNext === true) { 348 swiper.allowSlideNext = !swiper.isLocked; 349 } 350 if (params.allowSlidePrev === true) { 351 swiper.allowSlidePrev = !swiper.isLocked; 352 } 353 if (wasLocked && wasLocked !== swiper.isLocked) { 354 swiper.isEnd = false; 355 } 356 if (wasLocked !== swiper.isLocked) { 357 swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); 358 } 359} 360/* harmony default export */ __webpack_exports__["default"] = ({ 361 checkOverflow 362}); 363 364/***/ }), 365
vendor: 1,841 bytes, lines 366-428
366/***/ "./node_modules/swiper/core/classes/addClasses.js": 367/*!********************************************************!*\ 368 !*** ./node_modules/swiper/core/classes/addClasses.js ***! 369 \********************************************************/ 370/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 371 372__webpack_require__.r(__webpack_exports__); 373/* harmony export */ __webpack_require__.d(__webpack_exports__, { 374/* harmony export */ "default": function() { return /* binding */ addClasses; } 375/* harmony export */ }); 376function prepareClasses(entries, prefix) { 377 const resultClasses = []; 378 entries.forEach(item => { 379 if (typeof item === 'object') { 380 Object.keys(item).forEach(classNames => { 381 if (item[classNames]) { 382 resultClasses.push(prefix + classNames); 383 } 384 }); 385 } else if (typeof item === 'string') { 386 resultClasses.push(prefix + item); 387 } 388 }); 389 return resultClasses; 390} 391function addClasses() { 392 const swiper = this; 393 const { 394 classNames, 395 params, 396 rtl, 397 el, 398 device 399 } = swiper; 400 // prettier-ignore 401 const suffixes = prepareClasses(['initialized', params.direction, { 402 'free-mode': swiper.params.freeMode && params.freeMode.enabled 403 }, { 404 'autoheight': params.autoHeight 405 }, { 406 'rtl': rtl 407 }, { 408 'grid': params.grid && params.grid.rows > 1 409 }, { 410 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' 411 }, { 412 'android': device.android 413 }, { 414 'ios': device.ios 415 }, { 416 'css-mode': params.cssMode 417 }, { 418 'centered': params.cssMode && params.centeredSlides 419 }, { 420 'watch-progress': params.watchSlidesProgress 421 }], params.containerModifierClass); 422 classNames.push(...suffixes); 423 el.classList.add(...classNames); 424 swiper.emitContainerClasses(); 425} 426 427/***/ }), 428
vendor: 936 bytes, lines 429-446
429/***/ "./node_modules/swiper/core/classes/index.js": 430/*!***************************************************!*\ 431 !*** ./node_modules/swiper/core/classes/index.js ***! 432 \***************************************************/ 433/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 434 435__webpack_require__.r(__webpack_exports__); 436/* harmony import */ var _addClasses_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addClasses.js */ "./node_modules/swiper/core/classes/addClasses.js"); 437/* harmony import */ var _removeClasses_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./removeClasses.js */ "./node_modules/swiper/core/classes/removeClasses.js"); 438 439 440/* harmony default export */ __webpack_exports__["default"] = ({ 441 addClasses: _addClasses_js__WEBPACK_IMPORTED_MODULE_0__["default"], 442 removeClasses: _removeClasses_js__WEBPACK_IMPORTED_MODULE_1__["default"] 443}); 444 445/***/ }), 446
vendor: 755 bytes, lines 447-468
447/***/ "./node_modules/swiper/core/classes/removeClasses.js": 448/*!***********************************************************!*\ 449 !*** ./node_modules/swiper/core/classes/removeClasses.js ***! 450 \***********************************************************/ 451/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 452 453__webpack_require__.r(__webpack_exports__); 454/* harmony export */ __webpack_require__.d(__webpack_exports__, { 455/* harmony export */ "default": function() { return /* binding */ removeClasses; } 456/* harmony export */ }); 457function removeClasses() { 458 const swiper = this; 459 const { 460 el, 461 classNames 462 } = swiper; 463 el.classList.remove(...classNames); 464 swiper.emitContainerClasses(); 465} 466 467/***/ }), 468
vendor: 23,627 bytes, lines 469-1097
469/***/ "./node_modules/swiper/core/core.js": 470/*!******************************************!*\ 471 !*** ./node_modules/swiper/core/core.js ***! 472 \******************************************/ 473/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 474 475__webpack_require__.r(__webpack_exports__); 476/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 477/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 478/* harmony import */ var _shared_get_support_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/get-support.js */ "./node_modules/swiper/shared/get-support.js"); 479/* harmony import */ var _shared_get_device_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/get-device.js */ "./node_modules/swiper/shared/get-device.js"); 480/* harmony import */ var _shared_get_browser_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/get-browser.js */ "./node_modules/swiper/shared/get-browser.js"); 481/* harmony import */ var _modules_resize_resize_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/resize/resize.js */ "./node_modules/swiper/core/modules/resize/resize.js"); 482/* harmony import */ var _modules_observer_observer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/observer/observer.js */ "./node_modules/swiper/core/modules/observer/observer.js"); 483/* harmony import */ var _events_emitter_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./events-emitter.js */ "./node_modules/swiper/core/events-emitter.js"); 484/* harmony import */ var _update_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./update/index.js */ "./node_modules/swiper/core/update/index.js"); 485/* harmony import */ var _translate_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./translate/index.js */ "./node_modules/swiper/core/translate/index.js"); 486/* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./transition/index.js */ "./node_modules/swiper/core/transition/index.js"); 487/* harmony import */ var _slide_index_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./slide/index.js */ "./node_modules/swiper/core/slide/index.js"); 488/* harmony import */ var _loop_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./loop/index.js */ "./node_modules/swiper/core/loop/index.js"); 489/* harmony import */ var _grab_cursor_index_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./grab-cursor/index.js */ "./node_modules/swiper/core/grab-cursor/index.js"); 490/* harmony import */ var _events_index_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./events/index.js */ "./node_modules/swiper/core/events/index.js"); 491/* harmony import */ var _breakpoints_index_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./breakpoints/index.js */ "./node_modules/swiper/core/breakpoints/index.js"); 492/* harmony import */ var _classes_index_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./classes/index.js */ "./node_modules/swiper/core/classes/index.js"); 493/* harmony import */ var _check_overflow_index_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./check-overflow/index.js */ "./node_modules/swiper/core/check-overflow/index.js"); 494/* harmony import */ var _defaults_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./defaults.js */ "./node_modules/swiper/core/defaults.js"); 495/* harmony import */ var _moduleExtendParams_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./moduleExtendParams.js */ "./node_modules/swiper/core/moduleExtendParams.js"); 496/* harmony import */ var _shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../shared/process-lazy-preloader.js */ "./node_modules/swiper/shared/process-lazy-preloader.js"); 497/* eslint no-param-reassign: "off" */ 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519const prototypes = { 520 eventsEmitter: _events_emitter_js__WEBPACK_IMPORTED_MODULE_7__["default"], 521 update: _update_index_js__WEBPACK_IMPORTED_MODULE_8__["default"], 522 translate: _translate_index_js__WEBPACK_IMPORTED_MODULE_9__["default"], 523 transition: _transition_index_js__WEBPACK_IMPORTED_MODULE_10__["default"], 524 slide: _slide_index_js__WEBPACK_IMPORTED_MODULE_11__["default"], 525 loop: _loop_index_js__WEBPACK_IMPORTED_MODULE_12__["default"], 526 grabCursor: _grab_cursor_index_js__WEBPACK_IMPORTED_MODULE_13__["default"], 527 events: _events_index_js__WEBPACK_IMPORTED_MODULE_14__["default"], 528 breakpoints: _breakpoints_index_js__WEBPACK_IMPORTED_MODULE_15__["default"], 529 checkOverflow: _check_overflow_index_js__WEBPACK_IMPORTED_MODULE_17__["default"], 530 classes: _classes_index_js__WEBPACK_IMPORTED_MODULE_16__["default"] 531}; 532const extendedDefaults = {}; 533class Swiper { 534 constructor(...args) { 535 let el; 536 let params; 537 if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') { 538 params = args[0]; 539 } else { 540 [el, params] = args; 541 } 542 if (!params) params = {}; 543 params = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, params); 544 if (el && !params.el) params.el = el; 545 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 546 if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) { 547 const swipers = []; 548 document.querySelectorAll(params.el).forEach(containerEl => { 549 const newParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, params, { 550 el: containerEl 551 }); 552 swipers.push(new Swiper(newParams)); 553 }); 554 // eslint-disable-next-line no-constructor-return 555 return swipers; 556 } 557 558 // Swiper Instance 559 const swiper = this; 560 swiper.__swiper__ = true; 561 swiper.support = (0,_shared_get_support_js__WEBPACK_IMPORTED_MODULE_2__.getSupport)(); 562 swiper.device = (0,_shared_get_device_js__WEBPACK_IMPORTED_MODULE_3__.getDevice)({ 563 userAgent: params.userAgent 564 }); 565 swiper.browser = (0,_shared_get_browser_js__WEBPACK_IMPORTED_MODULE_4__.getBrowser)(); 566 swiper.eventsListeners = {}; 567 swiper.eventsAnyListeners = []; 568 swiper.modules = [...swiper.__modules__]; 569 if (params.modules && Array.isArray(params.modules)) { 570 swiper.modules.push(...params.modules); 571 } 572 const allModulesParams = {}; 573 swiper.modules.forEach(mod => { 574 mod({ 575 params, 576 swiper, 577 extendParams: (0,_moduleExtendParams_js__WEBPACK_IMPORTED_MODULE_19__["default"])(params, allModulesParams), 578 on: swiper.on.bind(swiper), 579 once: swiper.once.bind(swiper), 580 off: swiper.off.bind(swiper), 581 emit: swiper.emit.bind(swiper) 582 }); 583 }); 584 585 // Extend defaults with modules params 586 const swiperParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, _defaults_js__WEBPACK_IMPORTED_MODULE_18__["default"], allModulesParams); 587 588 // Extend defaults with passed params 589 swiper.params = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, swiperParams, extendedDefaults, params); 590 swiper.originalParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, swiper.params); 591 swiper.passedParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, params); 592 593 // add event listeners 594 if (swiper.params && swiper.params.on) { 595 Object.keys(swiper.params.on).forEach(eventName => { 596 swiper.on(eventName, swiper.params.on[eventName]); 597 }); 598 } 599 if (swiper.params && swiper.params.onAny) { 600 swiper.onAny(swiper.params.onAny); 601 } 602 603 // Extend Swiper 604 Object.assign(swiper, { 605 enabled: swiper.params.enabled, 606 el, 607 // Classes 608 classNames: [], 609 // Slides 610 slides: [], 611 slidesGrid: [], 612 snapGrid: [], 613 slidesSizesGrid: [], 614 // isDirection 615 isHorizontal() { 616 return swiper.params.direction === 'horizontal'; 617 }, 618 isVertical() { 619 return swiper.params.direction === 'vertical'; 620 }, 621 // Indexes 622 activeIndex: 0, 623 realIndex: 0, 624 // 625 isBeginning: true, 626 isEnd: false, 627 // Props 628 translate: 0, 629 previousTranslate: 0, 630 progress: 0, 631 velocity: 0, 632 animating: false, 633 cssOverflowAdjustment() { 634 // Returns 0 unless `translate` is > 2**23 635 // Should be subtracted from css values to prevent overflow 636 return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; 637 }, 638 // Locks 639 allowSlideNext: swiper.params.allowSlideNext, 640 allowSlidePrev: swiper.params.allowSlidePrev, 641 // Touch Events 642 touchEventsData: { 643 isTouched: undefined, 644 isMoved: undefined, 645 allowTouchCallbacks: undefined, 646 touchStartTime: undefined, 647 isScrolling: undefined, 648 currentTranslate: undefined, 649 startTranslate: undefined, 650 allowThresholdMove: undefined, 651 // Form elements to match 652 focusableElements: swiper.params.focusableElements, 653 // Last click time 654 lastClickTime: 0, 655 clickTimeout: undefined, 656 // Velocities 657 velocities: [], 658 allowMomentumBounce: undefined, 659 startMoving: undefined, 660 evCache: [] 661 }, 662 // Clicks 663 allowClick: true, 664 // Touches 665 allowTouchMove: swiper.params.allowTouchMove, 666 touches: { 667 startX: 0, 668 startY: 0, 669 currentX: 0, 670 currentY: 0, 671 diff: 0 672 }, 673 // Images 674 imagesToLoad: [], 675 imagesLoaded: 0 676 }); 677 swiper.emit('_swiper'); 678 679 // Init 680 if (swiper.params.init) { 681 swiper.init(); 682 } 683 684 // Return app instance 685 // eslint-disable-next-line no-constructor-return 686 return swiper; 687 } 688 getSlideIndex(slideEl) { 689 const { 690 slidesEl, 691 params 692 } = this; 693 const slides = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(slidesEl, `.${params.slideClass}, swiper-slide`); 694 const firstSlideIndex = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementIndex)(slides[0]); 695 return (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementIndex)(slideEl) - firstSlideIndex; 696 } 697 getSlideIndexByData(index) { 698 return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]); 699 } 700 recalcSlides() { 701 const swiper = this; 702 const { 703 slidesEl, 704 params 705 } = swiper; 706 swiper.slides = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(slidesEl, `.${params.slideClass}, swiper-slide`); 707 } 708 enable() { 709 const swiper = this; 710 if (swiper.enabled) return; 711 swiper.enabled = true; 712 if (swiper.params.grabCursor) { 713 swiper.setGrabCursor(); 714 } 715 swiper.emit('enable'); 716 } 717 disable() { 718 const swiper = this; 719 if (!swiper.enabled) return; 720 swiper.enabled = false; 721 if (swiper.params.grabCursor) { 722 swiper.unsetGrabCursor(); 723 } 724 swiper.emit('disable'); 725 } 726 setProgress(progress, speed) { 727 const swiper = this; 728 progress = Math.min(Math.max(progress, 0), 1); 729 const min = swiper.minTranslate(); 730 const max = swiper.maxTranslate(); 731 const current = (max - min) * progress + min; 732 swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed); 733 swiper.updateActiveIndex(); 734 swiper.updateSlidesClasses(); 735 } 736 emitContainerClasses() { 737 const swiper = this; 738 if (!swiper.params._emitClasses || !swiper.el) return; 739 const cls = swiper.el.className.split(' ').filter(className => { 740 return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0; 741 }); 742 swiper.emit('_containerClasses', cls.join(' ')); 743 } 744 getSlideClasses(slideEl) { 745 const swiper = this; 746 if (swiper.destroyed) return ''; 747 return slideEl.className.split(' ').filter(className => { 748 return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0; 749 }).join(' '); 750 } 751 emitSlidesClasses() { 752 const swiper = this; 753 if (!swiper.params._emitClasses || !swiper.el) return; 754 const updates = []; 755 swiper.slides.forEach(slideEl => { 756 const classNames = swiper.getSlideClasses(slideEl); 757 updates.push({ 758 slideEl, 759 classNames 760 }); 761 swiper.emit('_slideClass', slideEl, classNames); 762 }); 763 swiper.emit('_slideClasses', updates); 764 } 765 slidesPerViewDynamic(view = 'current', exact = false) { 766 const swiper = this; 767 const { 768 params, 769 slides, 770 slidesGrid, 771 slidesSizesGrid, 772 size: swiperSize, 773 activeIndex 774 } = swiper; 775 let spv = 1; 776 if (params.centeredSlides) { 777 let slideSize = slides[activeIndex].swiperSlideSize; 778 let breakLoop; 779 for (let i = activeIndex + 1; i < slides.length; i += 1) { 780 if (slides[i] && !breakLoop) { 781 slideSize += slides[i].swiperSlideSize; 782 spv += 1; 783 if (slideSize > swiperSize) breakLoop = true; 784 } 785 } 786 for (let i = activeIndex - 1; i >= 0; i -= 1) { 787 if (slides[i] && !breakLoop) { 788 slideSize += slides[i].swiperSlideSize; 789 spv += 1; 790 if (slideSize > swiperSize) breakLoop = true; 791 } 792 } 793 } else { 794 // eslint-disable-next-line 795 if (view === 'current') { 796 for (let i = activeIndex + 1; i < slides.length; i += 1) { 797 const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize; 798 if (slideInView) { 799 spv += 1; 800 } 801 } 802 } else { 803 // previous 804 for (let i = activeIndex - 1; i >= 0; i -= 1) { 805 const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize; 806 if (slideInView) { 807 spv += 1; 808 } 809 } 810 } 811 } 812 return spv; 813 } 814 update() { 815 const swiper = this; 816 if (!swiper || swiper.destroyed) return; 817 const { 818 snapGrid, 819 params 820 } = swiper; 821 // Breakpoints 822 if (params.breakpoints) { 823 swiper.setBreakpoint(); 824 } 825 [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => { 826 if (imageEl.complete) { 827 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_20__.processLazyPreloader)(swiper, imageEl); 828 } 829 }); 830 swiper.updateSize(); 831 swiper.updateSlides(); 832 swiper.updateProgress(); 833 swiper.updateSlidesClasses(); 834 function setTranslate() { 835 const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; 836 const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); 837 swiper.setTranslate(newTranslate); 838 swiper.updateActiveIndex(); 839 swiper.updateSlidesClasses(); 840 } 841 let translated; 842 if (swiper.params.freeMode && swiper.params.freeMode.enabled) { 843 setTranslate(); 844 if (swiper.params.autoHeight) { 845 swiper.updateAutoHeight(); 846 } 847 } else { 848 if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { 849 const slides = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides : swiper.slides; 850 translated = swiper.slideTo(slides.length - 1, 0, false, true); 851 } else { 852 translated = swiper.slideTo(swiper.activeIndex, 0, false, true); 853 } 854 if (!translated) { 855 setTranslate(); 856 } 857 } 858 if (params.watchOverflow && snapGrid !== swiper.snapGrid) { 859 swiper.checkOverflow(); 860 } 861 swiper.emit('update'); 862 } 863 changeDirection(newDirection, needUpdate = true) { 864 const swiper = this; 865 const currentDirection = swiper.params.direction; 866 if (!newDirection) { 867 // eslint-disable-next-line 868 newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal'; 869 } 870 if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') { 871 return swiper; 872 } 873 swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`); 874 swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`); 875 swiper.emitContainerClasses(); 876 swiper.params.direction = newDirection; 877 swiper.slides.forEach(slideEl => { 878 if (newDirection === 'vertical') { 879 slideEl.style.width = ''; 880 } else { 881 slideEl.style.height = ''; 882 } 883 }); 884 swiper.emit('changeDirection'); 885 if (needUpdate) swiper.update(); 886 return swiper; 887 } 888 changeLanguageDirection(direction) { 889 const swiper = this; 890 if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return; 891 swiper.rtl = direction === 'rtl'; 892 swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl; 893 if (swiper.rtl) { 894 swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`); 895 swiper.el.dir = 'rtl'; 896 } else { 897 swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`); 898 swiper.el.dir = 'ltr'; 899 } 900 swiper.update(); 901 } 902 mount(element) { 903 const swiper = this; 904 if (swiper.mounted) return true; 905 906 // Find el 907 let el = element || swiper.params.el; 908 if (typeof el === 'string') { 909 el = document.querySelector(el); 910 } 911 if (!el) { 912 return false; 913 } 914 el.swiper = swiper; 915 if (el.shadowEl) { 916 swiper.isElement = true; 917 } 918 const getWrapperSelector = () => { 919 return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`; 920 }; 921 const getWrapper = () => { 922 if (el && el.shadowRoot && el.shadowRoot.querySelector) { 923 const res = el.shadowRoot.querySelector(getWrapperSelector()); 924 // Children needs to return slot items 925 return res; 926 } 927 return (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(el, getWrapperSelector())[0]; 928 }; 929 // Find Wrapper 930 let wrapperEl = getWrapper(); 931 if (!wrapperEl && swiper.params.createElements) { 932 wrapperEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', swiper.params.wrapperClass); 933 el.append(wrapperEl); 934 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(el, `.${swiper.params.slideClass}`).forEach(slideEl => { 935 wrapperEl.append(slideEl); 936 }); 937 } 938 Object.assign(swiper, { 939 el, 940 wrapperEl, 941 slidesEl: swiper.isElement ? el : wrapperEl, 942 mounted: true, 943 // RTL 944 rtl: el.dir.toLowerCase() === 'rtl' || (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementStyle)(el, 'direction') === 'rtl', 945 rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementStyle)(el, 'direction') === 'rtl'), 946 wrongRTL: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementStyle)(wrapperEl, 'display') === '-webkit-box' 947 }); 948 return true; 949 } 950 init(el) { 951 const swiper = this; 952 if (swiper.initialized) return swiper; 953 const mounted = swiper.mount(el); 954 if (mounted === false) return swiper; 955 swiper.emit('beforeInit'); 956 957 // Set breakpoint 958 if (swiper.params.breakpoints) { 959 swiper.setBreakpoint(); 960 } 961 962 // Add Classes 963 swiper.addClasses(); 964 965 // Update size 966 swiper.updateSize(); 967 968 // Update slides 969 swiper.updateSlides(); 970 if (swiper.params.watchOverflow) { 971 swiper.checkOverflow(); 972 } 973 974 // Set Grab Cursor 975 if (swiper.params.grabCursor && swiper.enabled) { 976 swiper.setGrabCursor(); 977 } 978 979 // Slide To Initial Slide 980 if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { 981 swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true); 982 } else { 983 swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true); 984 } 985 986 // Create loop 987 if (swiper.params.loop) { 988 swiper.loopCreate(); 989 } 990 991 // Attach events 992 swiper.attachEvents(); 993 [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => { 994 if (imageEl.complete) { 995 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_20__.processLazyPreloader)(swiper, imageEl); 996 } else { 997 imageEl.addEventListener('load', e => { 998 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_20__.processLazyPreloader)(swiper, e.target); 999 }); 1000 } 1001 }); 1002 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_20__.preload)(swiper); 1003 1004 // Init Flag 1005 swiper.initialized = true; 1006 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_20__.preload)(swiper); 1007 1008 // Emit 1009 swiper.emit('init'); 1010 swiper.emit('afterInit'); 1011 return swiper; 1012 } 1013 destroy(deleteInstance = true, cleanStyles = true) { 1014 const swiper = this; 1015 const { 1016 params, 1017 el, 1018 wrapperEl, 1019 slides 1020 } = swiper; 1021 if (typeof swiper.params === 'undefined' || swiper.destroyed) { 1022 return null; 1023 } 1024 swiper.emit('beforeDestroy'); 1025 1026 // Init Flag 1027 swiper.initialized = false; 1028 1029 // Detach events 1030 swiper.detachEvents(); 1031 1032 // Destroy loop 1033 if (params.loop) { 1034 swiper.loopDestroy(); 1035 } 1036 1037 // Cleanup styles 1038 if (cleanStyles) { 1039 swiper.removeClasses(); 1040 el.removeAttribute('style'); 1041 wrapperEl.removeAttribute('style'); 1042 if (slides && slides.length) { 1043 slides.forEach(slideEl => { 1044 slideEl.classList.remove(params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass); 1045 slideEl.removeAttribute('style'); 1046 slideEl.removeAttribute('data-swiper-slide-index'); 1047 }); 1048 } 1049 } 1050 swiper.emit('destroy'); 1051 1052 // Detach emitter events 1053 Object.keys(swiper.eventsListeners).forEach(eventName => { 1054 swiper.off(eventName); 1055 }); 1056 if (deleteInstance !== false) { 1057 swiper.el.swiper = null; 1058 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.deleteProps)(swiper); 1059 } 1060 swiper.destroyed = true; 1061 return null; 1062 } 1063 static extendDefaults(newDefaults) { 1064 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)(extendedDefaults, newDefaults); 1065 } 1066 static get extendedDefaults() { 1067 return extendedDefaults; 1068 } 1069 static get defaults() { 1070 return _defaults_js__WEBPACK_IMPORTED_MODULE_18__["default"]; 1071 } 1072 static installModule(mod) { 1073 if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = []; 1074 const modules = Swiper.prototype.__modules__; 1075 if (typeof mod === 'function' && modules.indexOf(mod) < 0) { 1076 modules.push(mod); 1077 } 1078 } 1079 static use(module) { 1080 if (Array.isArray(module)) { 1081 module.forEach(m => Swiper.installModule(m)); 1082 return Swiper; 1083 } 1084 Swiper.installModule(module); 1085 return Swiper; 1086 } 1087} 1088Object.keys(prototypes).forEach(prototypeGroup => { 1089 Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => { 1090 Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; 1091 }); 1092}); 1093Swiper.use([_modules_resize_resize_js__WEBPACK_IMPORTED_MODULE_5__["default"], _modules_observer_observer_js__WEBPACK_IMPORTED_MODULE_6__["default"]]); 1094/* harmony default export */ __webpack_exports__["default"] = (Swiper); 1095 1096/***/ }), 1097
vendor: 3,257 bytes, lines 1098-1224
1098/***/ "./node_modules/swiper/core/defaults.js": 1099/*!**********************************************!*\ 1100 !*** ./node_modules/swiper/core/defaults.js ***! 1101 \**********************************************/ 1102/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1103 1104__webpack_require__.r(__webpack_exports__); 1105/* harmony default export */ __webpack_exports__["default"] = ({ 1106 init: true, 1107 direction: 'horizontal', 1108 oneWayMovement: false, 1109 touchEventsTarget: 'wrapper', 1110 initialSlide: 0, 1111 speed: 300, 1112 cssMode: false, 1113 updateOnWindowResize: true, 1114 resizeObserver: true, 1115 nested: false, 1116 createElements: false, 1117 enabled: true, 1118 focusableElements: 'input, select, option, textarea, button, video, label', 1119 // Overrides 1120 width: null, 1121 height: null, 1122 // 1123 preventInteractionOnTransition: false, 1124 // ssr 1125 userAgent: null, 1126 url: null, 1127 // To support iOS's swipe-to-go-back gesture (when being used in-app). 1128 edgeSwipeDetection: false, 1129 edgeSwipeThreshold: 20, 1130 // Autoheight 1131 autoHeight: false, 1132 // Set wrapper width 1133 setWrapperSize: false, 1134 // Virtual Translate 1135 virtualTranslate: false, 1136 // Effects 1137 effect: 'slide', 1138 // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' 1139 1140 // Breakpoints 1141 breakpoints: undefined, 1142 breakpointsBase: 'window', 1143 // Slides grid 1144 spaceBetween: 0, 1145 slidesPerView: 1, 1146 slidesPerGroup: 1, 1147 slidesPerGroupSkip: 0, 1148 slidesPerGroupAuto: false, 1149 centeredSlides: false, 1150 centeredSlidesBounds: false, 1151 slidesOffsetBefore: 0, 1152 // in px 1153 slidesOffsetAfter: 0, 1154 // in px 1155 normalizeSlideIndex: true, 1156 centerInsufficientSlides: false, 1157 // Disable swiper and hide navigation when container not overflow 1158 watchOverflow: true, 1159 // Round length 1160 roundLengths: false, 1161 // Touches 1162 touchRatio: 1, 1163 touchAngle: 45, 1164 simulateTouch: true, 1165 shortSwipes: true, 1166 longSwipes: true, 1167 longSwipesRatio: 0.5, 1168 longSwipesMs: 300, 1169 followFinger: true, 1170 allowTouchMove: true, 1171 threshold: 5, 1172 touchMoveStopPropagation: false, 1173 touchStartPreventDefault: true, 1174 touchStartForcePreventDefault: false, 1175 touchReleaseOnEdges: false, 1176 // Unique Navigation Elements 1177 uniqueNavElements: true, 1178 // Resistance 1179 resistance: true, 1180 resistanceRatio: 0.85, 1181 // Progress 1182 watchSlidesProgress: false, 1183 // Cursor 1184 grabCursor: false, 1185 // Clicks 1186 preventClicks: true, 1187 preventClicksPropagation: true, 1188 slideToClickedSlide: false, 1189 // loop 1190 loop: false, 1191 loopedSlides: null, 1192 loopPreventsSliding: true, 1193 // rewind 1194 rewind: false, 1195 // Swiping/no swiping 1196 allowSlidePrev: true, 1197 allowSlideNext: true, 1198 swipeHandler: null, 1199 // '.swipe-handler', 1200 noSwiping: true, 1201 noSwipingClass: 'swiper-no-swiping', 1202 noSwipingSelector: null, 1203 // Passive Listeners 1204 passiveListeners: true, 1205 maxBackfaceHiddenSlides: 10, 1206 // NS 1207 containerModifierClass: 'swiper-', 1208 // NEW 1209 slideClass: 'swiper-slide', 1210 slideActiveClass: 'swiper-slide-active', 1211 slideVisibleClass: 'swiper-slide-visible', 1212 slideNextClass: 'swiper-slide-next', 1213 slidePrevClass: 'swiper-slide-prev', 1214 wrapperClass: 'swiper-wrapper', 1215 lazyPreloaderClass: 'swiper-lazy-preloader', 1216 lazyPreloadPrevNext: 0, 1217 // Callbacks 1218 runCallbacksOnInit: true, 1219 // Internals 1220 _emitClasses: false 1221}); 1222 1223/***/ }), 1224
vendor: 3,708 bytes, lines 1225-1332
1225/***/ "./node_modules/swiper/core/events-emitter.js": 1226/*!****************************************************!*\ 1227 !*** ./node_modules/swiper/core/events-emitter.js ***! 1228 \****************************************************/ 1229/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1230 1231__webpack_require__.r(__webpack_exports__); 1232/* eslint-disable no-underscore-dangle */ 1233 1234/* harmony default export */ __webpack_exports__["default"] = ({ 1235 on(events, handler, priority) { 1236 const self = this; 1237 if (!self.eventsListeners || self.destroyed) return self; 1238 if (typeof handler !== 'function') return self; 1239 const method = priority ? 'unshift' : 'push'; 1240 events.split(' ').forEach(event => { 1241 if (!self.eventsListeners[event]) self.eventsListeners[event] = []; 1242 self.eventsListeners[event][method](handler); 1243 }); 1244 return self; 1245 }, 1246 once(events, handler, priority) { 1247 const self = this; 1248 if (!self.eventsListeners || self.destroyed) return self; 1249 if (typeof handler !== 'function') return self; 1250 function onceHandler(...args) { 1251 self.off(events, onceHandler); 1252 if (onceHandler.__emitterProxy) { 1253 delete onceHandler.__emitterProxy; 1254 } 1255 handler.apply(self, args); 1256 } 1257 onceHandler.__emitterProxy = handler; 1258 return self.on(events, onceHandler, priority); 1259 }, 1260 onAny(handler, priority) { 1261 const self = this; 1262 if (!self.eventsListeners || self.destroyed) return self; 1263 if (typeof handler !== 'function') return self; 1264 const method = priority ? 'unshift' : 'push'; 1265 if (self.eventsAnyListeners.indexOf(handler) < 0) { 1266 self.eventsAnyListeners[method](handler); 1267 } 1268 return self; 1269 }, 1270 offAny(handler) { 1271 const self = this; 1272 if (!self.eventsListeners || self.destroyed) return self; 1273 if (!self.eventsAnyListeners) return self; 1274 const index = self.eventsAnyListeners.indexOf(handler); 1275 if (index >= 0) { 1276 self.eventsAnyListeners.splice(index, 1); 1277 } 1278 return self; 1279 }, 1280 off(events, handler) { 1281 const self = this; 1282 if (!self.eventsListeners || self.destroyed) return self; 1283 if (!self.eventsListeners) return self; 1284 events.split(' ').forEach(event => { 1285 if (typeof handler === 'undefined') { 1286 self.eventsListeners[event] = []; 1287 } else if (self.eventsListeners[event]) { 1288 self.eventsListeners[event].forEach((eventHandler, index) => { 1289 if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) { 1290 self.eventsListeners[event].splice(index, 1); 1291 } 1292 }); 1293 } 1294 }); 1295 return self; 1296 }, 1297 emit(...args) { 1298 const self = this; 1299 if (!self.eventsListeners || self.destroyed) return self; 1300 if (!self.eventsListeners) return self; 1301 let events; 1302 let data; 1303 let context; 1304 if (typeof args[0] === 'string' || Array.isArray(args[0])) { 1305 events = args[0]; 1306 data = args.slice(1, args.length); 1307 context = self; 1308 } else { 1309 events = args[0].events; 1310 data = args[0].data; 1311 context = args[0].context || self; 1312 } 1313 data.unshift(context); 1314 const eventsArray = Array.isArray(events) ? events : events.split(' '); 1315 eventsArray.forEach(event => { 1316 if (self.eventsAnyListeners && self.eventsAnyListeners.length) { 1317 self.eventsAnyListeners.forEach(eventHandler => { 1318 eventHandler.apply(context, [event, ...data]); 1319 }); 1320 } 1321 if (self.eventsListeners && self.eventsListeners[event]) { 1322 self.eventsListeners[event].forEach(eventHandler => { 1323 eventHandler.apply(context, data); 1324 }); 1325 } 1326 }); 1327 return self; 1328 } 1329}); 1330 1331/***/ }), 1332
vendor: 4,328 bytes, lines 1333-1441
1333/***/ "./node_modules/swiper/core/events/index.js": 1334/*!**************************************************!*\ 1335 !*** ./node_modules/swiper/core/events/index.js ***! 1336 \**************************************************/ 1337/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1338 1339__webpack_require__.r(__webpack_exports__); 1340/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 1341/* harmony import */ var _onTouchStart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./onTouchStart.js */ "./node_modules/swiper/core/events/onTouchStart.js"); 1342/* harmony import */ var _onTouchMove_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./onTouchMove.js */ "./node_modules/swiper/core/events/onTouchMove.js"); 1343/* harmony import */ var _onTouchEnd_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./onTouchEnd.js */ "./node_modules/swiper/core/events/onTouchEnd.js"); 1344/* harmony import */ var _onResize_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./onResize.js */ "./node_modules/swiper/core/events/onResize.js"); 1345/* harmony import */ var _onClick_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./onClick.js */ "./node_modules/swiper/core/events/onClick.js"); 1346/* harmony import */ var _onScroll_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./onScroll.js */ "./node_modules/swiper/core/events/onScroll.js"); 1347/* harmony import */ var _onLoad_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./onLoad.js */ "./node_modules/swiper/core/events/onLoad.js"); 1348 1349 1350 1351 1352 1353 1354 1355 1356let dummyEventAttached = false; 1357function dummyEventListener() {} 1358const events = (swiper, method) => { 1359 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 1360 const { 1361 params, 1362 el, 1363 wrapperEl, 1364 device 1365 } = swiper; 1366 const capture = !!params.nested; 1367 const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; 1368 const swiperMethod = method; 1369 1370 // Touch Events 1371 el[domMethod]('pointerdown', swiper.onTouchStart, { 1372 passive: false 1373 }); 1374 document[domMethod]('pointermove', swiper.onTouchMove, { 1375 passive: false, 1376 capture 1377 }); 1378 document[domMethod]('pointerup', swiper.onTouchEnd, { 1379 passive: true 1380 }); 1381 document[domMethod]('pointercancel', swiper.onTouchEnd, { 1382 passive: true 1383 }); 1384 document[domMethod]('pointerout', swiper.onTouchEnd, { 1385 passive: true 1386 }); 1387 document[domMethod]('pointerleave', swiper.onTouchEnd, { 1388 passive: true 1389 }); 1390 1391 // Prevent Links Clicks 1392 if (params.preventClicks || params.preventClicksPropagation) { 1393 el[domMethod]('click', swiper.onClick, true); 1394 } 1395 if (params.cssMode) { 1396 wrapperEl[domMethod]('scroll', swiper.onScroll); 1397 } 1398 1399 // Resize handler 1400 if (params.updateOnWindowResize) { 1401 swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', _onResize_js__WEBPACK_IMPORTED_MODULE_4__["default"], true); 1402 } else { 1403 swiper[swiperMethod]('observerUpdate', _onResize_js__WEBPACK_IMPORTED_MODULE_4__["default"], true); 1404 } 1405 1406 // Images loader 1407 el[domMethod]('load', swiper.onLoad, { 1408 capture: true 1409 }); 1410}; 1411function attachEvents() { 1412 const swiper = this; 1413 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 1414 const { 1415 params 1416 } = swiper; 1417 swiper.onTouchStart = _onTouchStart_js__WEBPACK_IMPORTED_MODULE_1__["default"].bind(swiper); 1418 swiper.onTouchMove = _onTouchMove_js__WEBPACK_IMPORTED_MODULE_2__["default"].bind(swiper); 1419 swiper.onTouchEnd = _onTouchEnd_js__WEBPACK_IMPORTED_MODULE_3__["default"].bind(swiper); 1420 if (params.cssMode) { 1421 swiper.onScroll = _onScroll_js__WEBPACK_IMPORTED_MODULE_6__["default"].bind(swiper); 1422 } 1423 swiper.onClick = _onClick_js__WEBPACK_IMPORTED_MODULE_5__["default"].bind(swiper); 1424 swiper.onLoad = _onLoad_js__WEBPACK_IMPORTED_MODULE_7__["default"].bind(swiper); 1425 if (!dummyEventAttached) { 1426 document.addEventListener('touchstart', dummyEventListener); 1427 dummyEventAttached = true; 1428 } 1429 events(swiper, 'on'); 1430} 1431function detachEvents() { 1432 const swiper = this; 1433 events(swiper, 'off'); 1434} 1435/* harmony default export */ __webpack_exports__["default"] = ({ 1436 attachEvents, 1437 detachEvents 1438}); 1439 1440/***/ }), 1441
vendor: 857 bytes, lines 1442-1465
1442/***/ "./node_modules/swiper/core/events/onClick.js": 1443/*!****************************************************!*\ 1444 !*** ./node_modules/swiper/core/events/onClick.js ***! 1445 \****************************************************/ 1446/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1447 1448__webpack_require__.r(__webpack_exports__); 1449/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1450/* harmony export */ "default": function() { return /* binding */ onClick; } 1451/* harmony export */ }); 1452function onClick(e) { 1453 const swiper = this; 1454 if (!swiper.enabled) return; 1455 if (!swiper.allowClick) { 1456 if (swiper.params.preventClicks) e.preventDefault(); 1457 if (swiper.params.preventClicksPropagation && swiper.animating) { 1458 e.stopPropagation(); 1459 e.stopImmediatePropagation(); 1460 } 1461 } 1462} 1463 1464/***/ }), 1465
vendor: 1,054 bytes, lines 1466-1488
1466/***/ "./node_modules/swiper/core/events/onLoad.js": 1467/*!***************************************************!*\ 1468 !*** ./node_modules/swiper/core/events/onLoad.js ***! 1469 \***************************************************/ 1470/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1471 1472__webpack_require__.r(__webpack_exports__); 1473/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1474/* harmony export */ "default": function() { return /* binding */ onLoad; } 1475/* harmony export */ }); 1476/* harmony import */ var _shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/process-lazy-preloader.js */ "./node_modules/swiper/shared/process-lazy-preloader.js"); 1477 1478function onLoad(e) { 1479 const swiper = this; 1480 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_0__.processLazyPreloader)(swiper, e.target); 1481 if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) { 1482 return; 1483 } 1484 swiper.update(); 1485} 1486 1487/***/ }), 1488
vendor: 2,111 bytes, lines 1489-1553
1489/***/ "./node_modules/swiper/core/events/onResize.js": 1490/*!*****************************************************!*\ 1491 !*** ./node_modules/swiper/core/events/onResize.js ***! 1492 \*****************************************************/ 1493/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1494 1495__webpack_require__.r(__webpack_exports__); 1496/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1497/* harmony export */ "default": function() { return /* binding */ onResize; } 1498/* harmony export */ }); 1499function onResize() { 1500 const swiper = this; 1501 const { 1502 params, 1503 el 1504 } = swiper; 1505 if (el && el.offsetWidth === 0) return; 1506 1507 // Breakpoints 1508 if (params.breakpoints) { 1509 swiper.setBreakpoint(); 1510 } 1511 1512 // Save locks 1513 const { 1514 allowSlideNext, 1515 allowSlidePrev, 1516 snapGrid 1517 } = swiper; 1518 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 1519 1520 // Disable locks on resize 1521 swiper.allowSlideNext = true; 1522 swiper.allowSlidePrev = true; 1523 swiper.updateSize(); 1524 swiper.updateSlides(); 1525 swiper.updateSlidesClasses(); 1526 const isVirtualLoop = isVirtual && params.loop; 1527 if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) { 1528 swiper.slideTo(swiper.slides.length - 1, 0, false, true); 1529 } else { 1530 if (swiper.params.loop && !isVirtual) { 1531 swiper.slideToLoop(swiper.realIndex, 0, false, true); 1532 } else { 1533 swiper.slideTo(swiper.activeIndex, 0, false, true); 1534 } 1535 } 1536 if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { 1537 clearTimeout(swiper.autoplay.resizeTimeout); 1538 swiper.autoplay.resizeTimeout = setTimeout(() => { 1539 if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { 1540 swiper.autoplay.resume(); 1541 } 1542 }, 500); 1543 } 1544 // Return locks after resize 1545 swiper.allowSlidePrev = allowSlidePrev; 1546 swiper.allowSlideNext = allowSlideNext; 1547 if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { 1548 swiper.checkOverflow(); 1549 } 1550} 1551 1552/***/ }), 1553
vendor: 1,441 bytes, lines 1554-1596
1554/***/ "./node_modules/swiper/core/events/onScroll.js": 1555/*!*****************************************************!*\ 1556 !*** ./node_modules/swiper/core/events/onScroll.js ***! 1557 \*****************************************************/ 1558/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1559 1560__webpack_require__.r(__webpack_exports__); 1561/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1562/* harmony export */ "default": function() { return /* binding */ onScroll; } 1563/* harmony export */ }); 1564function onScroll() { 1565 const swiper = this; 1566 const { 1567 wrapperEl, 1568 rtlTranslate, 1569 enabled 1570 } = swiper; 1571 if (!enabled) return; 1572 swiper.previousTranslate = swiper.translate; 1573 if (swiper.isHorizontal()) { 1574 swiper.translate = -wrapperEl.scrollLeft; 1575 } else { 1576 swiper.translate = -wrapperEl.scrollTop; 1577 } 1578 // eslint-disable-next-line 1579 if (swiper.translate === 0) swiper.translate = 0; 1580 swiper.updateActiveIndex(); 1581 swiper.updateSlidesClasses(); 1582 let newProgress; 1583 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 1584 if (translatesDiff === 0) { 1585 newProgress = 0; 1586 } else { 1587 newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff; 1588 } 1589 if (newProgress !== swiper.progress) { 1590 swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); 1591 } 1592 swiper.emit('setTranslate', swiper.translate, false); 1593} 1594 1595/***/ }), 1596
vendor: 5,978 bytes, lines 1597-1760
1597/***/ "./node_modules/swiper/core/events/onTouchEnd.js": 1598/*!*******************************************************!*\ 1599 !*** ./node_modules/swiper/core/events/onTouchEnd.js ***! 1600 \*******************************************************/ 1601/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1602 1603__webpack_require__.r(__webpack_exports__); 1604/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1605/* harmony export */ "default": function() { return /* binding */ onTouchEnd; } 1606/* harmony export */ }); 1607/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 1608 1609function onTouchEnd(event) { 1610 const swiper = this; 1611 const data = swiper.touchEventsData; 1612 const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId); 1613 if (pointerIndex >= 0) { 1614 data.evCache.splice(pointerIndex, 1); 1615 } 1616 if (['pointercancel', 'pointerout', 'pointerleave'].includes(event.type)) { 1617 const proceed = event.type === 'pointercancel' && (swiper.browser.isSafari || swiper.browser.isWebView); 1618 if (!proceed) { 1619 return; 1620 } 1621 } 1622 const { 1623 params, 1624 touches, 1625 rtlTranslate: rtl, 1626 slidesGrid, 1627 enabled 1628 } = swiper; 1629 if (!enabled) return; 1630 if (!params.simulateTouch && event.pointerType === 'mouse') return; 1631 let e = event; 1632 if (e.originalEvent) e = e.originalEvent; 1633 if (data.allowTouchCallbacks) { 1634 swiper.emit('touchEnd', e); 1635 } 1636 data.allowTouchCallbacks = false; 1637 if (!data.isTouched) { 1638 if (data.isMoved && params.grabCursor) { 1639 swiper.setGrabCursor(false); 1640 } 1641 data.isMoved = false; 1642 data.startMoving = false; 1643 return; 1644 } 1645 // Return Grab Cursor 1646 if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 1647 swiper.setGrabCursor(false); 1648 } 1649 1650 // Time diff 1651 const touchEndTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)(); 1652 const timeDiff = touchEndTime - data.touchStartTime; 1653 1654 // Tap, doubleTap, Click 1655 if (swiper.allowClick) { 1656 const pathTree = e.path || e.composedPath && e.composedPath(); 1657 swiper.updateClickedSlide(pathTree && pathTree[0] || e.target); 1658 swiper.emit('tap click', e); 1659 if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) { 1660 swiper.emit('doubleTap doubleClick', e); 1661 } 1662 } 1663 data.lastClickTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)(); 1664 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => { 1665 if (!swiper.destroyed) swiper.allowClick = true; 1666 }); 1667 if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) { 1668 data.isTouched = false; 1669 data.isMoved = false; 1670 data.startMoving = false; 1671 return; 1672 } 1673 data.isTouched = false; 1674 data.isMoved = false; 1675 data.startMoving = false; 1676 let currentPos; 1677 if (params.followFinger) { 1678 currentPos = rtl ? swiper.translate : -swiper.translate; 1679 } else { 1680 currentPos = -data.currentTranslate; 1681 } 1682 if (params.cssMode) { 1683 return; 1684 } 1685 if (swiper.params.freeMode && params.freeMode.enabled) { 1686 swiper.freeMode.onTouchEnd({ 1687 currentPos 1688 }); 1689 return; 1690 } 1691 1692 // Find current slide 1693 let stopIndex = 0; 1694 let groupSize = swiper.slidesSizesGrid[0]; 1695 for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) { 1696 const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 1697 if (typeof slidesGrid[i + increment] !== 'undefined') { 1698 if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) { 1699 stopIndex = i; 1700 groupSize = slidesGrid[i + increment] - slidesGrid[i]; 1701 } 1702 } else if (currentPos >= slidesGrid[i]) { 1703 stopIndex = i; 1704 groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; 1705 } 1706 } 1707 let rewindFirstIndex = null; 1708 let rewindLastIndex = null; 1709 if (params.rewind) { 1710 if (swiper.isBeginning) { 1711 rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; 1712 } else if (swiper.isEnd) { 1713 rewindFirstIndex = 0; 1714 } 1715 } 1716 // Find current slide size 1717 const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; 1718 const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 1719 if (timeDiff > params.longSwipesMs) { 1720 // Long touches 1721 if (!params.longSwipes) { 1722 swiper.slideTo(swiper.activeIndex); 1723 return; 1724 } 1725 if (swiper.swipeDirection === 'next') { 1726 if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex); 1727 } 1728 if (swiper.swipeDirection === 'prev') { 1729 if (ratio > 1 - params.longSwipesRatio) { 1730 swiper.slideTo(stopIndex + increment); 1731 } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) { 1732 swiper.slideTo(rewindLastIndex); 1733 } else { 1734 swiper.slideTo(stopIndex); 1735 } 1736 } 1737 } else { 1738 // Short swipes 1739 if (!params.shortSwipes) { 1740 swiper.slideTo(swiper.activeIndex); 1741 return; 1742 } 1743 const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl); 1744 if (!isNavButtonTarget) { 1745 if (swiper.swipeDirection === 'next') { 1746 swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment); 1747 } 1748 if (swiper.swipeDirection === 'prev') { 1749 swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex); 1750 } 1751 } else if (e.target === swiper.navigation.nextEl) { 1752 swiper.slideTo(stopIndex + increment); 1753 } else { 1754 swiper.slideTo(stopIndex); 1755 } 1756 } 1757} 1758 1759/***/ }), 1760
vendor: 9,334 bytes, lines 1761-2016
1761/***/ "./node_modules/swiper/core/events/onTouchMove.js": 1762/*!********************************************************!*\ 1763 !*** ./node_modules/swiper/core/events/onTouchMove.js ***! 1764 \********************************************************/ 1765/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1766 1767__webpack_require__.r(__webpack_exports__); 1768/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1769/* harmony export */ "default": function() { return /* binding */ onTouchMove; } 1770/* harmony export */ }); 1771/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 1772/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 1773 1774 1775function onTouchMove(event) { 1776 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 1777 const swiper = this; 1778 const data = swiper.touchEventsData; 1779 const { 1780 params, 1781 touches, 1782 rtlTranslate: rtl, 1783 enabled 1784 } = swiper; 1785 if (!enabled) return; 1786 if (!params.simulateTouch && event.pointerType === 'mouse') return; 1787 let e = event; 1788 if (e.originalEvent) e = e.originalEvent; 1789 if (!data.isTouched) { 1790 if (data.startMoving && data.isScrolling) { 1791 swiper.emit('touchMoveOpposite', e); 1792 } 1793 return; 1794 } 1795 const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); 1796 if (pointerIndex >= 0) data.evCache[pointerIndex] = e; 1797 const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e; 1798 const pageX = targetTouch.pageX; 1799 const pageY = targetTouch.pageY; 1800 if (e.preventedByNestedSwiper) { 1801 touches.startX = pageX; 1802 touches.startY = pageY; 1803 return; 1804 } 1805 if (!swiper.allowTouchMove) { 1806 if (!e.target.matches(data.focusableElements)) { 1807 swiper.allowClick = false; 1808 } 1809 if (data.isTouched) { 1810 Object.assign(touches, { 1811 startX: pageX, 1812 startY: pageY, 1813 prevX: swiper.touches.currentX, 1814 prevY: swiper.touches.currentY, 1815 currentX: pageX, 1816 currentY: pageY 1817 }); 1818 data.touchStartTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)(); 1819 } 1820 return; 1821 } 1822 if (params.touchReleaseOnEdges && !params.loop) { 1823 if (swiper.isVertical()) { 1824 // Vertical 1825 if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) { 1826 data.isTouched = false; 1827 data.isMoved = false; 1828 return; 1829 } 1830 } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) { 1831 return; 1832 } 1833 } 1834 if (document.activeElement) { 1835 if (e.target === document.activeElement && e.target.matches(data.focusableElements)) { 1836 data.isMoved = true; 1837 swiper.allowClick = false; 1838 return; 1839 } 1840 } 1841 if (data.allowTouchCallbacks) { 1842 swiper.emit('touchMove', e); 1843 } 1844 if (e.targetTouches && e.targetTouches.length > 1) return; 1845 touches.currentX = pageX; 1846 touches.currentY = pageY; 1847 const diffX = touches.currentX - touches.startX; 1848 const diffY = touches.currentY - touches.startY; 1849 if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return; 1850 if (typeof data.isScrolling === 'undefined') { 1851 let touchAngle; 1852 if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) { 1853 data.isScrolling = false; 1854 } else { 1855 // eslint-disable-next-line 1856 if (diffX * diffX + diffY * diffY >= 25) { 1857 touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI; 1858 data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle; 1859 } 1860 } 1861 } 1862 if (data.isScrolling) { 1863 swiper.emit('touchMoveOpposite', e); 1864 } 1865 if (typeof data.startMoving === 'undefined') { 1866 if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { 1867 data.startMoving = true; 1868 } 1869 } 1870 if (data.isScrolling || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) { 1871 data.isTouched = false; 1872 return; 1873 } 1874 if (!data.startMoving) { 1875 return; 1876 } 1877 swiper.allowClick = false; 1878 if (!params.cssMode && e.cancelable) { 1879 e.preventDefault(); 1880 } 1881 if (params.touchMoveStopPropagation && !params.nested) { 1882 e.stopPropagation(); 1883 } 1884 let diff = swiper.isHorizontal() ? diffX : diffY; 1885 let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY; 1886 if (params.oneWayMovement) { 1887 diff = Math.abs(diff) * (rtl ? 1 : -1); 1888 touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1); 1889 } 1890 touches.diff = diff; 1891 diff *= params.touchRatio; 1892 if (rtl) { 1893 diff = -diff; 1894 touchesDiff = -touchesDiff; 1895 } 1896 const prevTouchesDirection = swiper.touchesDirection; 1897 swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; 1898 swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next'; 1899 const isLoop = swiper.params.loop && !params.cssMode; 1900 if (!data.isMoved) { 1901 if (isLoop) { 1902 swiper.loopFix({ 1903 direction: swiper.swipeDirection 1904 }); 1905 } 1906 data.startTranslate = swiper.getTranslate(); 1907 swiper.setTransition(0); 1908 if (swiper.animating) { 1909 const evt = new window.CustomEvent('transitionend', { 1910 bubbles: true, 1911 cancelable: true 1912 }); 1913 swiper.wrapperEl.dispatchEvent(evt); 1914 } 1915 data.allowMomentumBounce = false; 1916 // Grab Cursor 1917 if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 1918 swiper.setGrabCursor(true); 1919 } 1920 swiper.emit('sliderFirstMove', e); 1921 } 1922 let loopFixed; 1923 if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && Math.abs(diff) >= 1) { 1924 // need another loop fix 1925 swiper.loopFix({ 1926 direction: swiper.swipeDirection, 1927 setTranslate: true 1928 }); 1929 loopFixed = true; 1930 } 1931 swiper.emit('sliderMove', e); 1932 data.isMoved = true; 1933 data.currentTranslate = diff + data.startTranslate; 1934 let disableParentSwiper = true; 1935 let resistanceRatio = params.resistanceRatio; 1936 if (params.touchReleaseOnEdges) { 1937 resistanceRatio = 0; 1938 } 1939 if (diff > 0) { 1940 if (isLoop && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : swiper.minTranslate())) { 1941 swiper.loopFix({ 1942 direction: 'prev', 1943 setTranslate: true, 1944 activeSlideIndex: 0 1945 }); 1946 } 1947 if (data.currentTranslate > swiper.minTranslate()) { 1948 disableParentSwiper = false; 1949 if (params.resistance) { 1950 data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio; 1951 } 1952 } 1953 } else if (diff < 0) { 1954 if (isLoop && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : swiper.maxTranslate())) { 1955 swiper.loopFix({ 1956 direction: 'next', 1957 setTranslate: true, 1958 activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10))) 1959 }); 1960 } 1961 if (data.currentTranslate < swiper.maxTranslate()) { 1962 disableParentSwiper = false; 1963 if (params.resistance) { 1964 data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio; 1965 } 1966 } 1967 } 1968 if (disableParentSwiper) { 1969 e.preventedByNestedSwiper = true; 1970 } 1971 1972 // Directions locks 1973 if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { 1974 data.currentTranslate = data.startTranslate; 1975 } 1976 if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { 1977 data.currentTranslate = data.startTranslate; 1978 } 1979 if (!swiper.allowSlidePrev && !swiper.allowSlideNext) { 1980 data.currentTranslate = data.startTranslate; 1981 } 1982 1983 // Threshold 1984 if (params.threshold > 0) { 1985 if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { 1986 if (!data.allowThresholdMove) { 1987 data.allowThresholdMove = true; 1988 touches.startX = touches.currentX; 1989 touches.startY = touches.currentY; 1990 data.currentTranslate = data.startTranslate; 1991 touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; 1992 return; 1993 } 1994 } else { 1995 data.currentTranslate = data.startTranslate; 1996 return; 1997 } 1998 } 1999 if (!params.followFinger || params.cssMode) return; 2000 2001 // Update active index in free mode 2002 if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) { 2003 swiper.updateActiveIndex(); 2004 swiper.updateSlidesClasses(); 2005 } 2006 if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) { 2007 swiper.freeMode.onTouchMove(); 2008 } 2009 // Update progress 2010 swiper.updateProgress(data.currentTranslate); 2011 // Update translate 2012 swiper.setTranslate(data.currentTranslate); 2013} 2014 2015/***/ }), 2016
vendor: 5,209 bytes, lines 2017-2143
2017/***/ "./node_modules/swiper/core/events/onTouchStart.js": 2018/*!*********************************************************!*\ 2019 !*** ./node_modules/swiper/core/events/onTouchStart.js ***! 2020 \*********************************************************/ 2021/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2022 2023__webpack_require__.r(__webpack_exports__); 2024/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2025/* harmony export */ "default": function() { return /* binding */ onTouchStart; } 2026/* harmony export */ }); 2027/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 2028/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 2029 2030 2031 2032// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd 2033function closestElement(selector, base = this) { 2034 function __closestFrom(el) { 2035 if (!el || el === (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)() || el === (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)()) return null; 2036 if (el.assignedSlot) el = el.assignedSlot; 2037 const found = el.closest(selector); 2038 if (!found && !el.getRootNode) { 2039 return null; 2040 } 2041 return found || __closestFrom(el.getRootNode().host); 2042 } 2043 return __closestFrom(base); 2044} 2045function onTouchStart(event) { 2046 const swiper = this; 2047 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 2048 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 2049 const data = swiper.touchEventsData; 2050 data.evCache.push(event); 2051 const { 2052 params, 2053 touches, 2054 enabled 2055 } = swiper; 2056 if (!enabled) return; 2057 if (!params.simulateTouch && event.pointerType === 'mouse') return; 2058 if (swiper.animating && params.preventInteractionOnTransition) { 2059 return; 2060 } 2061 if (!swiper.animating && params.cssMode && params.loop) { 2062 swiper.loopFix(); 2063 } 2064 let e = event; 2065 if (e.originalEvent) e = e.originalEvent; 2066 let targetEl = e.target; 2067 if (params.touchEventsTarget === 'wrapper') { 2068 if (!swiper.wrapperEl.contains(targetEl)) return; 2069 } 2070 if ('which' in e && e.which === 3) return; 2071 if ('button' in e && e.button > 0) return; 2072 if (data.isTouched && data.isMoved) return; 2073 2074 // change target el for shadow root component 2075 const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; 2076 // eslint-disable-next-line 2077 const eventPath = event.composedPath ? event.composedPath() : event.path; 2078 if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) { 2079 targetEl = eventPath[0]; 2080 } 2081 const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`; 2082 const isTargetShadow = !!(e.target && e.target.shadowRoot); 2083 2084 // use closestElement for shadow root element to get the actual closest for nested shadow root element 2085 if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) { 2086 swiper.allowClick = true; 2087 return; 2088 } 2089 if (params.swipeHandler) { 2090 if (!targetEl.closest(params.swipeHandler)) return; 2091 } 2092 touches.currentX = e.pageX; 2093 touches.currentY = e.pageY; 2094 const startX = touches.currentX; 2095 const startY = touches.currentY; 2096 2097 // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore 2098 2099 const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection; 2100 const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold; 2101 if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) { 2102 if (edgeSwipeDetection === 'prevent') { 2103 event.preventDefault(); 2104 } else { 2105 return; 2106 } 2107 } 2108 Object.assign(data, { 2109 isTouched: true, 2110 isMoved: false, 2111 allowTouchCallbacks: true, 2112 isScrolling: undefined, 2113 startMoving: undefined 2114 }); 2115 touches.startX = startX; 2116 touches.startY = startY; 2117 data.touchStartTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)(); 2118 swiper.allowClick = true; 2119 swiper.updateSize(); 2120 swiper.swipeDirection = undefined; 2121 if (params.threshold > 0) data.allowThresholdMove = false; 2122 let preventDefault = true; 2123 if (targetEl.matches(data.focusableElements)) { 2124 preventDefault = false; 2125 if (targetEl.nodeName === 'SELECT') { 2126 data.isTouched = false; 2127 } 2128 } 2129 if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) { 2130 document.activeElement.blur(); 2131 } 2132 const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; 2133 if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) { 2134 e.preventDefault(); 2135 } 2136 if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) { 2137 swiper.freeMode.onTouchStart(); 2138 } 2139 swiper.emit('touchStart', e); 2140} 2141 2142/***/ }), 2143
vendor: 985 bytes, lines 2144-2161
2144/***/ "./node_modules/swiper/core/grab-cursor/index.js": 2145/*!*******************************************************!*\ 2146 !*** ./node_modules/swiper/core/grab-cursor/index.js ***! 2147 \*******************************************************/ 2148/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2149 2150__webpack_require__.r(__webpack_exports__); 2151/* harmony import */ var _setGrabCursor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setGrabCursor.js */ "./node_modules/swiper/core/grab-cursor/setGrabCursor.js"); 2152/* harmony import */ var _unsetGrabCursor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./unsetGrabCursor.js */ "./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js"); 2153 2154 2155/* harmony default export */ __webpack_exports__["default"] = ({ 2156 setGrabCursor: _setGrabCursor_js__WEBPACK_IMPORTED_MODULE_0__["default"], 2157 unsetGrabCursor: _unsetGrabCursor_js__WEBPACK_IMPORTED_MODULE_1__["default"] 2158}); 2159 2160/***/ }), 2161
vendor: 1,132 bytes, lines 2162-2189
2162/***/ "./node_modules/swiper/core/grab-cursor/setGrabCursor.js": 2163/*!***************************************************************!*\ 2164 !*** ./node_modules/swiper/core/grab-cursor/setGrabCursor.js ***! 2165 \***************************************************************/ 2166/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2167 2168__webpack_require__.r(__webpack_exports__); 2169/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2170/* harmony export */ "default": function() { return /* binding */ setGrabCursor; } 2171/* harmony export */ }); 2172function setGrabCursor(moving) { 2173 const swiper = this; 2174 if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return; 2175 const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl; 2176 if (swiper.isElement) { 2177 swiper.__preventObserver__ = true; 2178 } 2179 el.style.cursor = 'move'; 2180 el.style.cursor = moving ? 'grabbing' : 'grab'; 2181 if (swiper.isElement) { 2182 requestAnimationFrame(() => { 2183 swiper.__preventObserver__ = false; 2184 }); 2185 } 2186} 2187 2188/***/ }), 2189
vendor: 1,043 bytes, lines 2190-2217
2190/***/ "./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js": 2191/*!*****************************************************************!*\ 2192 !*** ./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js ***! 2193 \*****************************************************************/ 2194/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2195 2196__webpack_require__.r(__webpack_exports__); 2197/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2198/* harmony export */ "default": function() { return /* binding */ unsetGrabCursor; } 2199/* harmony export */ }); 2200function unsetGrabCursor() { 2201 const swiper = this; 2202 if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) { 2203 return; 2204 } 2205 if (swiper.isElement) { 2206 swiper.__preventObserver__ = true; 2207 } 2208 swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = ''; 2209 if (swiper.isElement) { 2210 requestAnimationFrame(() => { 2211 swiper.__preventObserver__ = false; 2212 }); 2213 } 2214} 2215 2216/***/ }), 2217
vendor: 1,128 bytes, lines 2218-2238
2218/***/ "./node_modules/swiper/core/loop/index.js": 2219/*!************************************************!*\ 2220 !*** ./node_modules/swiper/core/loop/index.js ***! 2221 \************************************************/ 2222/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2223 2224__webpack_require__.r(__webpack_exports__); 2225/* harmony import */ var _loopCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loopCreate.js */ "./node_modules/swiper/core/loop/loopCreate.js"); 2226/* harmony import */ var _loopFix_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loopFix.js */ "./node_modules/swiper/core/loop/loopFix.js"); 2227/* harmony import */ var _loopDestroy_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loopDestroy.js */ "./node_modules/swiper/core/loop/loopDestroy.js"); 2228 2229 2230 2231/* harmony default export */ __webpack_exports__["default"] = ({ 2232 loopCreate: _loopCreate_js__WEBPACK_IMPORTED_MODULE_0__["default"], 2233 loopFix: _loopFix_js__WEBPACK_IMPORTED_MODULE_1__["default"], 2234 loopDestroy: _loopDestroy_js__WEBPACK_IMPORTED_MODULE_2__["default"] 2235}); 2236 2237/***/ }), 2238
vendor: 1,245 bytes, lines 2239-2269
2239/***/ "./node_modules/swiper/core/loop/loopCreate.js": 2240/*!*****************************************************!*\ 2241 !*** ./node_modules/swiper/core/loop/loopCreate.js ***! 2242 \*****************************************************/ 2243/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2244 2245__webpack_require__.r(__webpack_exports__); 2246/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2247/* harmony export */ "default": function() { return /* binding */ loopCreate; } 2248/* harmony export */ }); 2249/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 2250 2251function loopCreate(slideRealIndex) { 2252 const swiper = this; 2253 const { 2254 params, 2255 slidesEl 2256 } = swiper; 2257 if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; 2258 const slides = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementChildren)(slidesEl, `.${params.slideClass}, swiper-slide`); 2259 slides.forEach((el, index) => { 2260 el.setAttribute('data-swiper-slide-index', index); 2261 }); 2262 swiper.loopFix({ 2263 slideRealIndex, 2264 direction: params.centeredSlides ? undefined : 'next' 2265 }); 2266} 2267 2268/***/ }), 2269
vendor: 1,260 bytes, lines 2270-2304
2270/***/ "./node_modules/swiper/core/loop/loopDestroy.js": 2271/*!******************************************************!*\ 2272 !*** ./node_modules/swiper/core/loop/loopDestroy.js ***! 2273 \******************************************************/ 2274/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2275 2276__webpack_require__.r(__webpack_exports__); 2277/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2278/* harmony export */ "default": function() { return /* binding */ loopDestroy; } 2279/* harmony export */ }); 2280function loopDestroy() { 2281 const swiper = this; 2282 const { 2283 params, 2284 slidesEl 2285 } = swiper; 2286 if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; 2287 swiper.recalcSlides(); 2288 const newSlidesOrder = []; 2289 swiper.slides.forEach(slideEl => { 2290 const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex; 2291 newSlidesOrder[index] = slideEl; 2292 }); 2293 swiper.slides.forEach(slideEl => { 2294 slideEl.removeAttribute('data-swiper-slide-index'); 2295 }); 2296 newSlidesOrder.forEach(slideEl => { 2297 slidesEl.append(slideEl); 2298 }); 2299 swiper.recalcSlides(); 2300 swiper.slideTo(swiper.realIndex, 0); 2301} 2302 2303/***/ }), 2304
vendor: 6,034 bytes, lines 2305-2464
2305/***/ "./node_modules/swiper/core/loop/loopFix.js": 2306/*!**************************************************!*\ 2307 !*** ./node_modules/swiper/core/loop/loopFix.js ***! 2308 \**************************************************/ 2309/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2310 2311__webpack_require__.r(__webpack_exports__); 2312/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2313/* harmony export */ "default": function() { return /* binding */ loopFix; } 2314/* harmony export */ }); 2315function loopFix({ 2316 slideRealIndex, 2317 slideTo = true, 2318 direction, 2319 setTranslate, 2320 activeSlideIndex, 2321 byController, 2322 byMousewheel 2323} = {}) { 2324 const swiper = this; 2325 if (!swiper.params.loop) return; 2326 swiper.emit('beforeLoopFix'); 2327 const { 2328 slides, 2329 allowSlidePrev, 2330 allowSlideNext, 2331 slidesEl, 2332 params 2333 } = swiper; 2334 swiper.allowSlidePrev = true; 2335 swiper.allowSlideNext = true; 2336 if (swiper.virtual && params.virtual.enabled) { 2337 if (slideTo) { 2338 if (!params.centeredSlides && swiper.snapIndex === 0) { 2339 swiper.slideTo(swiper.virtual.slides.length, 0, false, true); 2340 } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) { 2341 swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true); 2342 } else if (swiper.snapIndex === swiper.snapGrid.length - 1) { 2343 swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true); 2344 } 2345 } 2346 swiper.allowSlidePrev = allowSlidePrev; 2347 swiper.allowSlideNext = allowSlideNext; 2348 swiper.emit('loopFix'); 2349 return; 2350 } 2351 const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)); 2352 let loopedSlides = params.loopedSlides || slidesPerView; 2353 if (loopedSlides % params.slidesPerGroup !== 0) { 2354 loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup; 2355 } 2356 swiper.loopedSlides = loopedSlides; 2357 const prependSlidesIndexes = []; 2358 const appendSlidesIndexes = []; 2359 let activeIndex = swiper.activeIndex; 2360 if (typeof activeSlideIndex === 'undefined') { 2361 activeSlideIndex = swiper.getSlideIndex(swiper.slides.filter(el => el.classList.contains(params.slideActiveClass))[0]); 2362 } else { 2363 activeIndex = activeSlideIndex; 2364 } 2365 const isNext = direction === 'next' || !direction; 2366 const isPrev = direction === 'prev' || !direction; 2367 let slidesPrepended = 0; 2368 let slidesAppended = 0; 2369 // prepend last slides before start 2370 if (activeSlideIndex < loopedSlides) { 2371 slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup); 2372 for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) { 2373 const index = i - Math.floor(i / slides.length) * slides.length; 2374 prependSlidesIndexes.push(slides.length - index - 1); 2375 } 2376 } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) { 2377 slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup); 2378 for (let i = 0; i < slidesAppended; i += 1) { 2379 const index = i - Math.floor(i / slides.length) * slides.length; 2380 appendSlidesIndexes.push(index); 2381 } 2382 } 2383 if (isPrev) { 2384 prependSlidesIndexes.forEach(index => { 2385 swiper.slides[index].swiperLoopMoveDOM = true; 2386 slidesEl.prepend(swiper.slides[index]); 2387 swiper.slides[index].swiperLoopMoveDOM = false; 2388 }); 2389 } 2390 if (isNext) { 2391 appendSlidesIndexes.forEach(index => { 2392 swiper.slides[index].swiperLoopMoveDOM = true; 2393 slidesEl.append(swiper.slides[index]); 2394 swiper.slides[index].swiperLoopMoveDOM = false; 2395 }); 2396 } 2397 swiper.recalcSlides(); 2398 if (params.slidesPerView === 'auto') { 2399 swiper.updateSlides(); 2400 } 2401 if (params.watchSlidesProgress) { 2402 swiper.updateSlidesOffset(); 2403 } 2404 if (slideTo) { 2405 if (prependSlidesIndexes.length > 0 && isPrev) { 2406 if (typeof slideRealIndex === 'undefined') { 2407 const currentSlideTranslate = swiper.slidesGrid[activeIndex]; 2408 const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended]; 2409 const diff = newSlideTranslate - currentSlideTranslate; 2410 if (byMousewheel) { 2411 swiper.setTranslate(swiper.translate - diff); 2412 } else { 2413 swiper.slideTo(activeIndex + slidesPrepended, 0, false, true); 2414 if (setTranslate) { 2415 swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff; 2416 } 2417 } 2418 } else { 2419 if (setTranslate) { 2420 swiper.slideToLoop(slideRealIndex, 0, false, true); 2421 } 2422 } 2423 } else if (appendSlidesIndexes.length > 0 && isNext) { 2424 if (typeof slideRealIndex === 'undefined') { 2425 const currentSlideTranslate = swiper.slidesGrid[activeIndex]; 2426 const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended]; 2427 const diff = newSlideTranslate - currentSlideTranslate; 2428 if (byMousewheel) { 2429 swiper.setTranslate(swiper.translate - diff); 2430 } else { 2431 swiper.slideTo(activeIndex - slidesAppended, 0, false, true); 2432 if (setTranslate) { 2433 swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff; 2434 } 2435 } 2436 } else { 2437 swiper.slideToLoop(slideRealIndex, 0, false, true); 2438 } 2439 } 2440 } 2441 swiper.allowSlidePrev = allowSlidePrev; 2442 swiper.allowSlideNext = allowSlideNext; 2443 if (swiper.controller && swiper.controller.control && !byController) { 2444 const loopParams = { 2445 slideRealIndex, 2446 slideTo: false, 2447 direction, 2448 setTranslate, 2449 activeSlideIndex, 2450 byController: true 2451 }; 2452 if (Array.isArray(swiper.controller.control)) { 2453 swiper.controller.control.forEach(c => { 2454 if (!c.destroyed && c.params.loop) c.loopFix(loopParams); 2455 }); 2456 } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) { 2457 swiper.controller.control.loopFix(loopParams); 2458 } 2459 } 2460 swiper.emit('loopFix'); 2461} 2462 2463/***/ }), 2464
vendor: 1,921 bytes, lines 2465-2510
2465/***/ "./node_modules/swiper/core/moduleExtendParams.js": 2466/*!********************************************************!*\ 2467 !*** ./node_modules/swiper/core/moduleExtendParams.js ***! 2468 \********************************************************/ 2469/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2470 2471__webpack_require__.r(__webpack_exports__); 2472/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2473/* harmony export */ "default": function() { return /* binding */ moduleExtendParams; } 2474/* harmony export */ }); 2475/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 2476 2477function moduleExtendParams(params, allModulesParams) { 2478 return function extendParams(obj = {}) { 2479 const moduleParamName = Object.keys(obj)[0]; 2480 const moduleParams = obj[moduleParamName]; 2481 if (typeof moduleParams !== 'object' || moduleParams === null) { 2482 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj); 2483 return; 2484 } 2485 if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) { 2486 params[moduleParamName] = { 2487 auto: true 2488 }; 2489 } 2490 if (!(moduleParamName in params && 'enabled' in moduleParams)) { 2491 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj); 2492 return; 2493 } 2494 if (params[moduleParamName] === true) { 2495 params[moduleParamName] = { 2496 enabled: true 2497 }; 2498 } 2499 if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) { 2500 params[moduleParamName].enabled = true; 2501 } 2502 if (!params[moduleParamName]) params[moduleParamName] = { 2503 enabled: false 2504 }; 2505 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj); 2506 }; 2507} 2508 2509/***/ }), 2510
vendor: 3,037 bytes, lines 2511-2594
2511/***/ "./node_modules/swiper/core/modules/observer/observer.js": 2512/*!***************************************************************!*\ 2513 !*** ./node_modules/swiper/core/modules/observer/observer.js ***! 2514 \***************************************************************/ 2515/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2516 2517__webpack_require__.r(__webpack_exports__); 2518/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2519/* harmony export */ "default": function() { return /* binding */ Observer; } 2520/* harmony export */ }); 2521/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 2522/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 2523 2524 2525function Observer({ 2526 swiper, 2527 extendParams, 2528 on, 2529 emit 2530}) { 2531 const observers = []; 2532 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 2533 const attach = (target, options = {}) => { 2534 const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver; 2535 const observer = new ObserverFunc(mutations => { 2536 // The observerUpdate event should only be triggered 2537 // once despite the number of mutations. Additional 2538 // triggers are redundant and are very costly 2539 if (swiper.__preventObserver__) return; 2540 if (mutations.length === 1) { 2541 emit('observerUpdate', mutations[0]); 2542 return; 2543 } 2544 const observerUpdate = function observerUpdate() { 2545 emit('observerUpdate', mutations[0]); 2546 }; 2547 if (window.requestAnimationFrame) { 2548 window.requestAnimationFrame(observerUpdate); 2549 } else { 2550 window.setTimeout(observerUpdate, 0); 2551 } 2552 }); 2553 observer.observe(target, { 2554 attributes: typeof options.attributes === 'undefined' ? true : options.attributes, 2555 childList: typeof options.childList === 'undefined' ? true : options.childList, 2556 characterData: typeof options.characterData === 'undefined' ? true : options.characterData 2557 }); 2558 observers.push(observer); 2559 }; 2560 const init = () => { 2561 if (!swiper.params.observer) return; 2562 if (swiper.params.observeParents) { 2563 const containerParents = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementParents)(swiper.el); 2564 for (let i = 0; i < containerParents.length; i += 1) { 2565 attach(containerParents[i]); 2566 } 2567 } 2568 // Observe container 2569 attach(swiper.el, { 2570 childList: swiper.params.observeSlideChildren 2571 }); 2572 2573 // Observe wrapper 2574 attach(swiper.wrapperEl, { 2575 attributes: false 2576 }); 2577 }; 2578 const destroy = () => { 2579 observers.forEach(observer => { 2580 observer.disconnect(); 2581 }); 2582 observers.splice(0, observers.length); 2583 }; 2584 extendParams({ 2585 observer: false, 2586 observeParents: false, 2587 observeSlideChildren: false 2588 }); 2589 on('init', init); 2590 on('destroy', destroy); 2591} 2592 2593/***/ }), 2594
vendor: 2,800 bytes, lines 2595-2675
2595/***/ "./node_modules/swiper/core/modules/resize/resize.js": 2596/*!***********************************************************!*\ 2597 !*** ./node_modules/swiper/core/modules/resize/resize.js ***! 2598 \***********************************************************/ 2599/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2600 2601__webpack_require__.r(__webpack_exports__); 2602/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2603/* harmony export */ "default": function() { return /* binding */ Resize; } 2604/* harmony export */ }); 2605/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 2606 2607function Resize({ 2608 swiper, 2609 on, 2610 emit 2611}) { 2612 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 2613 let observer = null; 2614 let animationFrame = null; 2615 const resizeHandler = () => { 2616 if (!swiper || swiper.destroyed || !swiper.initialized) return; 2617 emit('beforeResize'); 2618 emit('resize'); 2619 }; 2620 const createObserver = () => { 2621 if (!swiper || swiper.destroyed || !swiper.initialized) return; 2622 observer = new ResizeObserver(entries => { 2623 animationFrame = window.requestAnimationFrame(() => { 2624 const { 2625 width, 2626 height 2627 } = swiper; 2628 let newWidth = width; 2629 let newHeight = height; 2630 entries.forEach(({ 2631 contentBoxSize, 2632 contentRect, 2633 target 2634 }) => { 2635 if (target && target !== swiper.el) return; 2636 newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize; 2637 newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize; 2638 }); 2639 if (newWidth !== width || newHeight !== height) { 2640 resizeHandler(); 2641 } 2642 }); 2643 }); 2644 observer.observe(swiper.el); 2645 }; 2646 const removeObserver = () => { 2647 if (animationFrame) { 2648 window.cancelAnimationFrame(animationFrame); 2649 } 2650 if (observer && observer.unobserve && swiper.el) { 2651 observer.unobserve(swiper.el); 2652 observer = null; 2653 } 2654 }; 2655 const orientationChangeHandler = () => { 2656 if (!swiper || swiper.destroyed || !swiper.initialized) return; 2657 emit('orientationchange'); 2658 }; 2659 on('init', () => { 2660 if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') { 2661 createObserver(); 2662 return; 2663 } 2664 window.addEventListener('resize', resizeHandler); 2665 window.addEventListener('orientationchange', orientationChangeHandler); 2666 }); 2667 on('destroy', () => { 2668 removeObserver(); 2669 window.removeEventListener('resize', resizeHandler); 2670 window.removeEventListener('orientationchange', orientationChangeHandler); 2671 }); 2672} 2673 2674/***/ }), 2675
vendor: 2,134 bytes, lines 2676-2708
2676/***/ "./node_modules/swiper/core/slide/index.js": 2677/*!*************************************************!*\ 2678 !*** ./node_modules/swiper/core/slide/index.js ***! 2679 \*************************************************/ 2680/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2681 2682__webpack_require__.r(__webpack_exports__); 2683/* harmony import */ var _slideTo_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./slideTo.js */ "./node_modules/swiper/core/slide/slideTo.js"); 2684/* harmony import */ var _slideToLoop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slideToLoop.js */ "./node_modules/swiper/core/slide/slideToLoop.js"); 2685/* harmony import */ var _slideNext_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slideNext.js */ "./node_modules/swiper/core/slide/slideNext.js"); 2686/* harmony import */ var _slidePrev_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slidePrev.js */ "./node_modules/swiper/core/slide/slidePrev.js"); 2687/* harmony import */ var _slideReset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./slideReset.js */ "./node_modules/swiper/core/slide/slideReset.js"); 2688/* harmony import */ var _slideToClosest_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./slideToClosest.js */ "./node_modules/swiper/core/slide/slideToClosest.js"); 2689/* harmony import */ var _slideToClickedSlide_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./slideToClickedSlide.js */ "./node_modules/swiper/core/slide/slideToClickedSlide.js"); 2690 2691 2692 2693 2694 2695 2696 2697/* harmony default export */ __webpack_exports__["default"] = ({ 2698 slideTo: _slideTo_js__WEBPACK_IMPORTED_MODULE_0__["default"], 2699 slideToLoop: _slideToLoop_js__WEBPACK_IMPORTED_MODULE_1__["default"], 2700 slideNext: _slideNext_js__WEBPACK_IMPORTED_MODULE_2__["default"], 2701 slidePrev: _slidePrev_js__WEBPACK_IMPORTED_MODULE_3__["default"], 2702 slideReset: _slideReset_js__WEBPACK_IMPORTED_MODULE_4__["default"], 2703 slideToClosest: _slideToClosest_js__WEBPACK_IMPORTED_MODULE_5__["default"], 2704 slideToClickedSlide: _slideToClickedSlide_js__WEBPACK_IMPORTED_MODULE_6__["default"] 2705}); 2706 2707/***/ }), 2708
vendor: 1,587 bytes, lines 2709-2749
2709/***/ "./node_modules/swiper/core/slide/slideNext.js": 2710/*!*****************************************************!*\ 2711 !*** ./node_modules/swiper/core/slide/slideNext.js ***! 2712 \*****************************************************/ 2713/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2714 2715__webpack_require__.r(__webpack_exports__); 2716/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2717/* harmony export */ "default": function() { return /* binding */ slideNext; } 2718/* harmony export */ }); 2719/* eslint no-unused-vars: "off" */ 2720function slideNext(speed = this.params.speed, runCallbacks = true, internal) { 2721 const swiper = this; 2722 const { 2723 enabled, 2724 params, 2725 animating 2726 } = swiper; 2727 if (!enabled) return swiper; 2728 let perGroup = params.slidesPerGroup; 2729 if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { 2730 perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1); 2731 } 2732 const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup; 2733 const isVirtual = swiper.virtual && params.virtual.enabled; 2734 if (params.loop) { 2735 if (animating && !isVirtual && params.loopPreventsSliding) return false; 2736 swiper.loopFix({ 2737 direction: 'next' 2738 }); 2739 // eslint-disable-next-line 2740 swiper._clientLeft = swiper.wrapperEl.clientLeft; 2741 } 2742 if (params.rewind && swiper.isEnd) { 2743 return swiper.slideTo(0, speed, runCallbacks, internal); 2744 } 2745 return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); 2746} 2747 2748/***/ }), 2749
vendor: 2,656 bytes, lines 2750-2818
2750/***/ "./node_modules/swiper/core/slide/slidePrev.js": 2751/*!*****************************************************!*\ 2752 !*** ./node_modules/swiper/core/slide/slidePrev.js ***! 2753 \*****************************************************/ 2754/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2755 2756__webpack_require__.r(__webpack_exports__); 2757/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2758/* harmony export */ "default": function() { return /* binding */ slidePrev; } 2759/* harmony export */ }); 2760/* eslint no-unused-vars: "off" */ 2761function slidePrev(speed = this.params.speed, runCallbacks = true, internal) { 2762 const swiper = this; 2763 const { 2764 params, 2765 snapGrid, 2766 slidesGrid, 2767 rtlTranslate, 2768 enabled, 2769 animating 2770 } = swiper; 2771 if (!enabled) return swiper; 2772 const isVirtual = swiper.virtual && params.virtual.enabled; 2773 if (params.loop) { 2774 if (animating && !isVirtual && params.loopPreventsSliding) return false; 2775 swiper.loopFix({ 2776 direction: 'prev' 2777 }); 2778 // eslint-disable-next-line 2779 swiper._clientLeft = swiper.wrapperEl.clientLeft; 2780 } 2781 const translate = rtlTranslate ? swiper.translate : -swiper.translate; 2782 function normalize(val) { 2783 if (val < 0) return -Math.floor(Math.abs(val)); 2784 return Math.floor(val); 2785 } 2786 const normalizedTranslate = normalize(translate); 2787 const normalizedSnapGrid = snapGrid.map(val => normalize(val)); 2788 let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; 2789 if (typeof prevSnap === 'undefined' && params.cssMode) { 2790 let prevSnapIndex; 2791 snapGrid.forEach((snap, snapIndex) => { 2792 if (normalizedTranslate >= snap) { 2793 // prevSnap = snap; 2794 prevSnapIndex = snapIndex; 2795 } 2796 }); 2797 if (typeof prevSnapIndex !== 'undefined') { 2798 prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex]; 2799 } 2800 } 2801 let prevIndex = 0; 2802 if (typeof prevSnap !== 'undefined') { 2803 prevIndex = slidesGrid.indexOf(prevSnap); 2804 if (prevIndex < 0) prevIndex = swiper.activeIndex - 1; 2805 if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { 2806 prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1; 2807 prevIndex = Math.max(prevIndex, 0); 2808 } 2809 } 2810 if (params.rewind && swiper.isBeginning) { 2811 const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; 2812 return swiper.slideTo(lastIndex, speed, runCallbacks, internal); 2813 } 2814 return swiper.slideTo(prevIndex, speed, runCallbacks, internal); 2815} 2816 2817/***/ }), 2818
vendor: 778 bytes, lines 2819-2836
2819/***/ "./node_modules/swiper/core/slide/slideReset.js": 2820/*!******************************************************!*\ 2821 !*** ./node_modules/swiper/core/slide/slideReset.js ***! 2822 \******************************************************/ 2823/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2824 2825__webpack_require__.r(__webpack_exports__); 2826/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2827/* harmony export */ "default": function() { return /* binding */ slideReset; } 2828/* harmony export */ }); 2829/* eslint no-unused-vars: "off" */ 2830function slideReset(speed = this.params.speed, runCallbacks = true, internal) { 2831 const swiper = this; 2832 return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); 2833} 2834 2835/***/ }), 2836
vendor: 5,741 bytes, lines 2837-2992
2837/***/ "./node_modules/swiper/core/slide/slideTo.js": 2838/*!***************************************************!*\ 2839 !*** ./node_modules/swiper/core/slide/slideTo.js ***! 2840 \***************************************************/ 2841/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2842 2843__webpack_require__.r(__webpack_exports__); 2844/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2845/* harmony export */ "default": function() { return /* binding */ slideTo; } 2846/* harmony export */ }); 2847/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 2848 2849function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) { 2850 if (typeof index === 'string') { 2851 index = parseInt(index, 10); 2852 } 2853 const swiper = this; 2854 let slideIndex = index; 2855 if (slideIndex < 0) slideIndex = 0; 2856 const { 2857 params, 2858 snapGrid, 2859 slidesGrid, 2860 previousIndex, 2861 activeIndex, 2862 rtlTranslate: rtl, 2863 wrapperEl, 2864 enabled 2865 } = swiper; 2866 if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) { 2867 return false; 2868 } 2869 const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); 2870 let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); 2871 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 2872 const translate = -snapGrid[snapIndex]; 2873 // Normalize slideIndex 2874 if (params.normalizeSlideIndex) { 2875 for (let i = 0; i < slidesGrid.length; i += 1) { 2876 const normalizedTranslate = -Math.floor(translate * 100); 2877 const normalizedGrid = Math.floor(slidesGrid[i] * 100); 2878 const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100); 2879 if (typeof slidesGrid[i + 1] !== 'undefined') { 2880 if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) { 2881 slideIndex = i; 2882 } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) { 2883 slideIndex = i + 1; 2884 } 2885 } else if (normalizedTranslate >= normalizedGrid) { 2886 slideIndex = i; 2887 } 2888 } 2889 } 2890 // Directions locks 2891 if (swiper.initialized && slideIndex !== activeIndex) { 2892 if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) { 2893 return false; 2894 } 2895 if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { 2896 if ((activeIndex || 0) !== slideIndex) { 2897 return false; 2898 } 2899 } 2900 } 2901 if (slideIndex !== (previousIndex || 0) && runCallbacks) { 2902 swiper.emit('beforeSlideChangeStart'); 2903 } 2904 2905 // Update progress 2906 swiper.updateProgress(translate); 2907 let direction; 2908 if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; 2909 2910 // Update Index 2911 if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) { 2912 swiper.updateActiveIndex(slideIndex); 2913 // Update Height 2914 if (params.autoHeight) { 2915 swiper.updateAutoHeight(); 2916 } 2917 swiper.updateSlidesClasses(); 2918 if (params.effect !== 'slide') { 2919 swiper.setTranslate(translate); 2920 } 2921 if (direction !== 'reset') { 2922 swiper.transitionStart(runCallbacks, direction); 2923 swiper.transitionEnd(runCallbacks, direction); 2924 } 2925 return false; 2926 } 2927 if (params.cssMode) { 2928 const isH = swiper.isHorizontal(); 2929 const t = rtl ? translate : -translate; 2930 if (speed === 0) { 2931 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 2932 if (isVirtual) { 2933 swiper.wrapperEl.style.scrollSnapType = 'none'; 2934 swiper._immediateVirtual = true; 2935 } 2936 if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) { 2937 swiper._cssModeVirtualInitialSet = true; 2938 requestAnimationFrame(() => { 2939 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; 2940 }); 2941 } else { 2942 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; 2943 } 2944 if (isVirtual) { 2945 requestAnimationFrame(() => { 2946 swiper.wrapperEl.style.scrollSnapType = ''; 2947 swiper._immediateVirtual = false; 2948 }); 2949 } 2950 } else { 2951 if (!swiper.support.smoothScroll) { 2952 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.animateCSSModeScroll)({ 2953 swiper, 2954 targetPosition: t, 2955 side: isH ? 'left' : 'top' 2956 }); 2957 return true; 2958 } 2959 wrapperEl.scrollTo({ 2960 [isH ? 'left' : 'top']: t, 2961 behavior: 'smooth' 2962 }); 2963 } 2964 return true; 2965 } 2966 swiper.setTransition(speed); 2967 swiper.setTranslate(translate); 2968 swiper.updateActiveIndex(slideIndex); 2969 swiper.updateSlidesClasses(); 2970 swiper.emit('beforeTransitionStart', speed, internal); 2971 swiper.transitionStart(runCallbacks, direction); 2972 if (speed === 0) { 2973 swiper.transitionEnd(runCallbacks, direction); 2974 } else if (!swiper.animating) { 2975 swiper.animating = true; 2976 if (!swiper.onSlideToWrapperTransitionEnd) { 2977 swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) { 2978 if (!swiper || swiper.destroyed) return; 2979 if (e.target !== this) return; 2980 swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 2981 swiper.onSlideToWrapperTransitionEnd = null; 2982 delete swiper.onSlideToWrapperTransitionEnd; 2983 swiper.transitionEnd(runCallbacks, direction); 2984 }; 2985 } 2986 swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 2987 } 2988 return true; 2989} 2990 2991/***/ }), 2992
vendor: 2,364 bytes, lines 2993-3043
2993/***/ "./node_modules/swiper/core/slide/slideToClickedSlide.js": 2994/*!***************************************************************!*\ 2995 !*** ./node_modules/swiper/core/slide/slideToClickedSlide.js ***! 2996 \***************************************************************/ 2997/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2998 2999__webpack_require__.r(__webpack_exports__); 3000/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3001/* harmony export */ "default": function() { return /* binding */ slideToClickedSlide; } 3002/* harmony export */ }); 3003/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 3004 3005function slideToClickedSlide() { 3006 const swiper = this; 3007 const { 3008 params, 3009 slidesEl 3010 } = swiper; 3011 const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; 3012 let slideToIndex = swiper.clickedIndex; 3013 let realIndex; 3014 const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`; 3015 if (params.loop) { 3016 if (swiper.animating) return; 3017 realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); 3018 if (params.centeredSlides) { 3019 if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) { 3020 swiper.loopFix(); 3021 slideToIndex = swiper.getSlideIndex((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementChildren)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); 3022 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => { 3023 swiper.slideTo(slideToIndex); 3024 }); 3025 } else { 3026 swiper.slideTo(slideToIndex); 3027 } 3028 } else if (slideToIndex > swiper.slides.length - slidesPerView) { 3029 swiper.loopFix(); 3030 slideToIndex = swiper.getSlideIndex((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementChildren)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); 3031 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => { 3032 swiper.slideTo(slideToIndex); 3033 }); 3034 } else { 3035 swiper.slideTo(slideToIndex); 3036 } 3037 } else { 3038 swiper.slideTo(slideToIndex); 3039 } 3040} 3041 3042/***/ }), 3043
vendor: 1,957 bytes, lines 3044-3084
3044/***/ "./node_modules/swiper/core/slide/slideToClosest.js": 3045/*!**********************************************************!*\ 3046 !*** ./node_modules/swiper/core/slide/slideToClosest.js ***! 3047 \**********************************************************/ 3048/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3049 3050__webpack_require__.r(__webpack_exports__); 3051/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3052/* harmony export */ "default": function() { return /* binding */ slideToClosest; } 3053/* harmony export */ }); 3054/* eslint no-unused-vars: "off" */ 3055function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) { 3056 const swiper = this; 3057 let index = swiper.activeIndex; 3058 const skip = Math.min(swiper.params.slidesPerGroupSkip, index); 3059 const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup); 3060 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 3061 if (translate >= swiper.snapGrid[snapIndex]) { 3062 // The current translate is on or after the current snap index, so the choice 3063 // is between the current index and the one after it. 3064 const currentSnap = swiper.snapGrid[snapIndex]; 3065 const nextSnap = swiper.snapGrid[snapIndex + 1]; 3066 if (translate - currentSnap > (nextSnap - currentSnap) * threshold) { 3067 index += swiper.params.slidesPerGroup; 3068 } 3069 } else { 3070 // The current translate is before the current snap index, so the choice 3071 // is between the current index and the one before it. 3072 const prevSnap = swiper.snapGrid[snapIndex - 1]; 3073 const currentSnap = swiper.snapGrid[snapIndex]; 3074 if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) { 3075 index -= swiper.params.slidesPerGroup; 3076 } 3077 } 3078 index = Math.max(index, 0); 3079 index = Math.min(index, swiper.slidesGrid.length - 1); 3080 return swiper.slideTo(index, speed, runCallbacks, internal); 3081} 3082 3083/***/ }), 3084
vendor: 1,143 bytes, lines 3085-3114
3085/***/ "./node_modules/swiper/core/slide/slideToLoop.js": 3086/*!*******************************************************!*\ 3087 !*** ./node_modules/swiper/core/slide/slideToLoop.js ***! 3088 \*******************************************************/ 3089/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3090 3091__webpack_require__.r(__webpack_exports__); 3092/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3093/* harmony export */ "default": function() { return /* binding */ slideToLoop; } 3094/* harmony export */ }); 3095function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) { 3096 if (typeof index === 'string') { 3097 const indexAsNumber = parseInt(index, 10); 3098 index = indexAsNumber; 3099 } 3100 const swiper = this; 3101 let newIndex = index; 3102 if (swiper.params.loop) { 3103 if (swiper.virtual && swiper.params.virtual.enabled) { 3104 // eslint-disable-next-line 3105 newIndex = newIndex + swiper.virtual.slidesBefore; 3106 } else { 3107 newIndex = swiper.getSlideIndexByData(newIndex); 3108 } 3109 } 3110 return swiper.slideTo(newIndex, speed, runCallbacks, internal); 3111} 3112 3113/***/ }), 3114
vendor: 1,235 bytes, lines 3115-3135
3115/***/ "./node_modules/swiper/core/transition/index.js": 3116/*!******************************************************!*\ 3117 !*** ./node_modules/swiper/core/transition/index.js ***! 3118 \******************************************************/ 3119/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3120 3121__webpack_require__.r(__webpack_exports__); 3122/* harmony import */ var _setTransition_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setTransition.js */ "./node_modules/swiper/core/transition/setTransition.js"); 3123/* harmony import */ var _transitionStart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transitionStart.js */ "./node_modules/swiper/core/transition/transitionStart.js"); 3124/* harmony import */ var _transitionEnd_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transitionEnd.js */ "./node_modules/swiper/core/transition/transitionEnd.js"); 3125 3126 3127 3128/* harmony default export */ __webpack_exports__["default"] = ({ 3129 setTransition: _setTransition_js__WEBPACK_IMPORTED_MODULE_0__["default"], 3130 transitionStart: _transitionStart_js__WEBPACK_IMPORTED_MODULE_1__["default"], 3131 transitionEnd: _transitionEnd_js__WEBPACK_IMPORTED_MODULE_2__["default"] 3132}); 3133 3134/***/ }), 3135
vendor: 828 bytes, lines 3136-3155
3136/***/ "./node_modules/swiper/core/transition/setTransition.js": 3137/*!**************************************************************!*\ 3138 !*** ./node_modules/swiper/core/transition/setTransition.js ***! 3139 \**************************************************************/ 3140/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3141 3142__webpack_require__.r(__webpack_exports__); 3143/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3144/* harmony export */ "default": function() { return /* binding */ setTransition; } 3145/* harmony export */ }); 3146function setTransition(duration, byController) { 3147 const swiper = this; 3148 if (!swiper.params.cssMode) { 3149 swiper.wrapperEl.style.transitionDuration = `${duration}ms`; 3150 } 3151 swiper.emit('setTransition', duration, byController); 3152} 3153 3154/***/ }), 3155
vendor: 1,286 bytes, lines 3156-3196
3156/***/ "./node_modules/swiper/core/transition/transitionEmit.js": 3157/*!***************************************************************!*\ 3158 !*** ./node_modules/swiper/core/transition/transitionEmit.js ***! 3159 \***************************************************************/ 3160/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3161 3162__webpack_require__.r(__webpack_exports__); 3163/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3164/* harmony export */ "default": function() { return /* binding */ transitionEmit; } 3165/* harmony export */ }); 3166function transitionEmit({ 3167 swiper, 3168 runCallbacks, 3169 direction, 3170 step 3171}) { 3172 const { 3173 activeIndex, 3174 previousIndex 3175 } = swiper; 3176 let dir = direction; 3177 if (!dir) { 3178 if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; 3179 } 3180 swiper.emit(`transition${step}`); 3181 if (runCallbacks && activeIndex !== previousIndex) { 3182 if (dir === 'reset') { 3183 swiper.emit(`slideResetTransition${step}`); 3184 return; 3185 } 3186 swiper.emit(`slideChangeTransition${step}`); 3187 if (dir === 'next') { 3188 swiper.emit(`slideNextTransition${step}`); 3189 } else { 3190 swiper.emit(`slidePrevTransition${step}`); 3191 } 3192 } 3193} 3194 3195/***/ }), 3196
vendor: 1,116 bytes, lines 3197-3226
3197/***/ "./node_modules/swiper/core/transition/transitionEnd.js": 3198/*!**************************************************************!*\ 3199 !*** ./node_modules/swiper/core/transition/transitionEnd.js ***! 3200 \**************************************************************/ 3201/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3202 3203__webpack_require__.r(__webpack_exports__); 3204/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3205/* harmony export */ "default": function() { return /* binding */ transitionEnd; } 3206/* harmony export */ }); 3207/* harmony import */ var _transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transitionEmit.js */ "./node_modules/swiper/core/transition/transitionEmit.js"); 3208 3209function transitionEnd(runCallbacks = true, direction) { 3210 const swiper = this; 3211 const { 3212 params 3213 } = swiper; 3214 swiper.animating = false; 3215 if (params.cssMode) return; 3216 swiper.setTransition(0); 3217 (0,_transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 3218 swiper, 3219 runCallbacks, 3220 direction, 3221 step: 'End' 3222 }); 3223} 3224 3225/***/ }), 3226
vendor: 1,137 bytes, lines 3227-3257
3227/***/ "./node_modules/swiper/core/transition/transitionStart.js": 3228/*!****************************************************************!*\ 3229 !*** ./node_modules/swiper/core/transition/transitionStart.js ***! 3230 \****************************************************************/ 3231/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3232 3233__webpack_require__.r(__webpack_exports__); 3234/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3235/* harmony export */ "default": function() { return /* binding */ transitionStart; } 3236/* harmony export */ }); 3237/* harmony import */ var _transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transitionEmit.js */ "./node_modules/swiper/core/transition/transitionEmit.js"); 3238 3239function transitionStart(runCallbacks = true, direction) { 3240 const swiper = this; 3241 const { 3242 params 3243 } = swiper; 3244 if (params.cssMode) return; 3245 if (params.autoHeight) { 3246 swiper.updateAutoHeight(); 3247 } 3248 (0,_transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 3249 swiper, 3250 runCallbacks, 3251 direction, 3252 step: 'Start' 3253 }); 3254} 3255 3256/***/ }), 3257
vendor: 1,311 bytes, lines 3258-3291
3258/***/ "./node_modules/swiper/core/translate/getTranslate.js": 3259/*!************************************************************!*\ 3260 !*** ./node_modules/swiper/core/translate/getTranslate.js ***! 3261 \************************************************************/ 3262/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3263 3264__webpack_require__.r(__webpack_exports__); 3265/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3266/* harmony export */ "default": function() { return /* binding */ getSwiperTranslate; } 3267/* harmony export */ }); 3268/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 3269 3270function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') { 3271 const swiper = this; 3272 const { 3273 params, 3274 rtlTranslate: rtl, 3275 translate, 3276 wrapperEl 3277 } = swiper; 3278 if (params.virtualTranslate) { 3279 return rtl ? -translate : translate; 3280 } 3281 if (params.cssMode) { 3282 return translate; 3283 } 3284 let currentTranslate = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.getTranslate)(wrapperEl, axis); 3285 currentTranslate += swiper.cssOverflowAdjustment(); 3286 if (rtl) currentTranslate = -currentTranslate; 3287 return currentTranslate || 0; 3288} 3289 3290/***/ }), 3291
vendor: 1,698 bytes, lines 3292-3318
3292/***/ "./node_modules/swiper/core/translate/index.js": 3293/*!*****************************************************!*\ 3294 !*** ./node_modules/swiper/core/translate/index.js ***! 3295 \*****************************************************/ 3296/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3297 3298__webpack_require__.r(__webpack_exports__); 3299/* harmony import */ var _getTranslate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getTranslate.js */ "./node_modules/swiper/core/translate/getTranslate.js"); 3300/* harmony import */ var _setTranslate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setTranslate.js */ "./node_modules/swiper/core/translate/setTranslate.js"); 3301/* harmony import */ var _minTranslate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./minTranslate.js */ "./node_modules/swiper/core/translate/minTranslate.js"); 3302/* harmony import */ var _maxTranslate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./maxTranslate.js */ "./node_modules/swiper/core/translate/maxTranslate.js"); 3303/* harmony import */ var _translateTo_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./translateTo.js */ "./node_modules/swiper/core/translate/translateTo.js"); 3304 3305 3306 3307 3308 3309/* harmony default export */ __webpack_exports__["default"] = ({ 3310 getTranslate: _getTranslate_js__WEBPACK_IMPORTED_MODULE_0__["default"], 3311 setTranslate: _setTranslate_js__WEBPACK_IMPORTED_MODULE_1__["default"], 3312 minTranslate: _minTranslate_js__WEBPACK_IMPORTED_MODULE_2__["default"], 3313 maxTranslate: _maxTranslate_js__WEBPACK_IMPORTED_MODULE_3__["default"], 3314 translateTo: _translateTo_js__WEBPACK_IMPORTED_MODULE_4__["default"] 3315}); 3316 3317/***/ }), 3318
vendor: 667 bytes, lines 3319-3334
3319/***/ "./node_modules/swiper/core/translate/maxTranslate.js": 3320/*!************************************************************!*\ 3321 !*** ./node_modules/swiper/core/translate/maxTranslate.js ***! 3322 \************************************************************/ 3323/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3324 3325__webpack_require__.r(__webpack_exports__); 3326/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3327/* harmony export */ "default": function() { return /* binding */ maxTranslate; } 3328/* harmony export */ }); 3329function maxTranslate() { 3330 return -this.snapGrid[this.snapGrid.length - 1]; 3331} 3332 3333/***/ }), 3334
vendor: 644 bytes, lines 3335-3350
3335/***/ "./node_modules/swiper/core/translate/minTranslate.js": 3336/*!************************************************************!*\ 3337 !*** ./node_modules/swiper/core/translate/minTranslate.js ***! 3338 \************************************************************/ 3339/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3340 3341__webpack_require__.r(__webpack_exports__); 3342/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3343/* harmony export */ "default": function() { return /* binding */ minTranslate; } 3344/* harmony export */ }); 3345function minTranslate() { 3346 return -this.snapGrid[0]; 3347} 3348 3349/***/ }), 3350
vendor: 1,860 bytes, lines 3351-3409
3351/***/ "./node_modules/swiper/core/translate/setTranslate.js": 3352/*!************************************************************!*\ 3353 !*** ./node_modules/swiper/core/translate/setTranslate.js ***! 3354 \************************************************************/ 3355/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3356 3357__webpack_require__.r(__webpack_exports__); 3358/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3359/* harmony export */ "default": function() { return /* binding */ setTranslate; } 3360/* harmony export */ }); 3361function setTranslate(translate, byController) { 3362 const swiper = this; 3363 const { 3364 rtlTranslate: rtl, 3365 params, 3366 wrapperEl, 3367 progress 3368 } = swiper; 3369 let x = 0; 3370 let y = 0; 3371 const z = 0; 3372 if (swiper.isHorizontal()) { 3373 x = rtl ? -translate : translate; 3374 } else { 3375 y = translate; 3376 } 3377 if (params.roundLengths) { 3378 x = Math.floor(x); 3379 y = Math.floor(y); 3380 } 3381 swiper.previousTranslate = swiper.translate; 3382 swiper.translate = swiper.isHorizontal() ? x : y; 3383 if (params.cssMode) { 3384 wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y; 3385 } else if (!params.virtualTranslate) { 3386 if (swiper.isHorizontal()) { 3387 x -= swiper.cssOverflowAdjustment(); 3388 } else { 3389 y -= swiper.cssOverflowAdjustment(); 3390 } 3391 wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`; 3392 } 3393 3394 // Check if we need to update progress 3395 let newProgress; 3396 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 3397 if (translatesDiff === 0) { 3398 newProgress = 0; 3399 } else { 3400 newProgress = (translate - swiper.minTranslate()) / translatesDiff; 3401 } 3402 if (newProgress !== progress) { 3403 swiper.updateProgress(translate); 3404 } 3405 swiper.emit('setTranslate', swiper.translate, byController); 3406} 3407 3408/***/ }), 3409
vendor: 3,128 bytes, lines 3410-3493
3410/***/ "./node_modules/swiper/core/translate/translateTo.js": 3411/*!***********************************************************!*\ 3412 !*** ./node_modules/swiper/core/translate/translateTo.js ***! 3413 \***********************************************************/ 3414/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3415 3416__webpack_require__.r(__webpack_exports__); 3417/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3418/* harmony export */ "default": function() { return /* binding */ translateTo; } 3419/* harmony export */ }); 3420/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 3421 3422function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) { 3423 const swiper = this; 3424 const { 3425 params, 3426 wrapperEl 3427 } = swiper; 3428 if (swiper.animating && params.preventInteractionOnTransition) { 3429 return false; 3430 } 3431 const minTranslate = swiper.minTranslate(); 3432 const maxTranslate = swiper.maxTranslate(); 3433 let newTranslate; 3434 if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; 3435 3436 // Update progress 3437 swiper.updateProgress(newTranslate); 3438 if (params.cssMode) { 3439 const isH = swiper.isHorizontal(); 3440 if (speed === 0) { 3441 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; 3442 } else { 3443 if (!swiper.support.smoothScroll) { 3444 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.animateCSSModeScroll)({ 3445 swiper, 3446 targetPosition: -newTranslate, 3447 side: isH ? 'left' : 'top' 3448 }); 3449 return true; 3450 } 3451 wrapperEl.scrollTo({ 3452 [isH ? 'left' : 'top']: -newTranslate, 3453 behavior: 'smooth' 3454 }); 3455 } 3456 return true; 3457 } 3458 if (speed === 0) { 3459 swiper.setTransition(0); 3460 swiper.setTranslate(newTranslate); 3461 if (runCallbacks) { 3462 swiper.emit('beforeTransitionStart', speed, internal); 3463 swiper.emit('transitionEnd'); 3464 } 3465 } else { 3466 swiper.setTransition(speed); 3467 swiper.setTranslate(newTranslate); 3468 if (runCallbacks) { 3469 swiper.emit('beforeTransitionStart', speed, internal); 3470 swiper.emit('transitionStart'); 3471 } 3472 if (!swiper.animating) { 3473 swiper.animating = true; 3474 if (!swiper.onTranslateToWrapperTransitionEnd) { 3475 swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) { 3476 if (!swiper || swiper.destroyed) return; 3477 if (e.target !== this) return; 3478 swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 3479 swiper.onTranslateToWrapperTransitionEnd = null; 3480 delete swiper.onTranslateToWrapperTransitionEnd; 3481 if (runCallbacks) { 3482 swiper.emit('transitionEnd'); 3483 } 3484 }; 3485 } 3486 swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 3487 } 3488 } 3489 return true; 3490} 3491 3492/***/ }), 3493
vendor: 2,844 bytes, lines 3494-3532
3494/***/ "./node_modules/swiper/core/update/index.js": 3495/*!**************************************************!*\ 3496 !*** ./node_modules/swiper/core/update/index.js ***! 3497 \**************************************************/ 3498/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3499 3500__webpack_require__.r(__webpack_exports__); 3501/* harmony import */ var _updateSize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./updateSize.js */ "./node_modules/swiper/core/update/updateSize.js"); 3502/* harmony import */ var _updateSlides_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./updateSlides.js */ "./node_modules/swiper/core/update/updateSlides.js"); 3503/* harmony import */ var _updateAutoHeight_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./updateAutoHeight.js */ "./node_modules/swiper/core/update/updateAutoHeight.js"); 3504/* harmony import */ var _updateSlidesOffset_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./updateSlidesOffset.js */ "./node_modules/swiper/core/update/updateSlidesOffset.js"); 3505/* harmony import */ var _updateSlidesProgress_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./updateSlidesProgress.js */ "./node_modules/swiper/core/update/updateSlidesProgress.js"); 3506/* harmony import */ var _updateProgress_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./updateProgress.js */ "./node_modules/swiper/core/update/updateProgress.js"); 3507/* harmony import */ var _updateSlidesClasses_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./updateSlidesClasses.js */ "./node_modules/swiper/core/update/updateSlidesClasses.js"); 3508/* harmony import */ var _updateActiveIndex_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./updateActiveIndex.js */ "./node_modules/swiper/core/update/updateActiveIndex.js"); 3509/* harmony import */ var _updateClickedSlide_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./updateClickedSlide.js */ "./node_modules/swiper/core/update/updateClickedSlide.js"); 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519/* harmony default export */ __webpack_exports__["default"] = ({ 3520 updateSize: _updateSize_js__WEBPACK_IMPORTED_MODULE_0__["default"], 3521 updateSlides: _updateSlides_js__WEBPACK_IMPORTED_MODULE_1__["default"], 3522 updateAutoHeight: _updateAutoHeight_js__WEBPACK_IMPORTED_MODULE_2__["default"], 3523 updateSlidesOffset: _updateSlidesOffset_js__WEBPACK_IMPORTED_MODULE_3__["default"], 3524 updateSlidesProgress: _updateSlidesProgress_js__WEBPACK_IMPORTED_MODULE_4__["default"], 3525 updateProgress: _updateProgress_js__WEBPACK_IMPORTED_MODULE_5__["default"], 3526 updateSlidesClasses: _updateSlidesClasses_js__WEBPACK_IMPORTED_MODULE_6__["default"], 3527 updateActiveIndex: _updateActiveIndex_js__WEBPACK_IMPORTED_MODULE_7__["default"], 3528 updateClickedSlide: _updateClickedSlide_js__WEBPACK_IMPORTED_MODULE_8__["default"] 3529}); 3530 3531/***/ }), 3532
vendor: 4,024 bytes, lines 3533-3643
3533/***/ "./node_modules/swiper/core/update/updateActiveIndex.js": 3534/*!**************************************************************!*\ 3535 !*** ./node_modules/swiper/core/update/updateActiveIndex.js ***! 3536 \**************************************************************/ 3537/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3538 3539__webpack_require__.r(__webpack_exports__); 3540/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3541/* harmony export */ "default": function() { return /* binding */ updateActiveIndex; }, 3542/* harmony export */ "getActiveIndexByTranslate": function() { return /* binding */ getActiveIndexByTranslate; } 3543/* harmony export */ }); 3544/* harmony import */ var _shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/process-lazy-preloader.js */ "./node_modules/swiper/shared/process-lazy-preloader.js"); 3545 3546function getActiveIndexByTranslate(swiper) { 3547 const { 3548 slidesGrid, 3549 params 3550 } = swiper; 3551 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 3552 let activeIndex; 3553 for (let i = 0; i < slidesGrid.length; i += 1) { 3554 if (typeof slidesGrid[i + 1] !== 'undefined') { 3555 if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) { 3556 activeIndex = i; 3557 } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { 3558 activeIndex = i + 1; 3559 } 3560 } else if (translate >= slidesGrid[i]) { 3561 activeIndex = i; 3562 } 3563 } 3564 // Normalize slideIndex 3565 if (params.normalizeSlideIndex) { 3566 if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; 3567 } 3568 return activeIndex; 3569} 3570function updateActiveIndex(newActiveIndex) { 3571 const swiper = this; 3572 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 3573 const { 3574 snapGrid, 3575 params, 3576 activeIndex: previousIndex, 3577 realIndex: previousRealIndex, 3578 snapIndex: previousSnapIndex 3579 } = swiper; 3580 let activeIndex = newActiveIndex; 3581 let snapIndex; 3582 const getVirtualRealIndex = aIndex => { 3583 let realIndex = aIndex - swiper.virtual.slidesBefore; 3584 if (realIndex < 0) { 3585 realIndex = swiper.virtual.slides.length + realIndex; 3586 } 3587 if (realIndex >= swiper.virtual.slides.length) { 3588 realIndex -= swiper.virtual.slides.length; 3589 } 3590 return realIndex; 3591 }; 3592 if (typeof activeIndex === 'undefined') { 3593 activeIndex = getActiveIndexByTranslate(swiper); 3594 } 3595 if (snapGrid.indexOf(translate) >= 0) { 3596 snapIndex = snapGrid.indexOf(translate); 3597 } else { 3598 const skip = Math.min(params.slidesPerGroupSkip, activeIndex); 3599 snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup); 3600 } 3601 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 3602 if (activeIndex === previousIndex) { 3603 if (snapIndex !== previousSnapIndex) { 3604 swiper.snapIndex = snapIndex; 3605 swiper.emit('snapIndexChange'); 3606 } 3607 if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { 3608 swiper.realIndex = getVirtualRealIndex(activeIndex); 3609 } 3610 return; 3611 } 3612 // Get real index 3613 let realIndex; 3614 if (swiper.virtual && params.virtual.enabled && params.loop) { 3615 realIndex = getVirtualRealIndex(activeIndex); 3616 } else if (swiper.slides[activeIndex]) { 3617 realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10); 3618 } else { 3619 realIndex = activeIndex; 3620 } 3621 Object.assign(swiper, { 3622 previousSnapIndex, 3623 snapIndex, 3624 previousRealIndex, 3625 realIndex, 3626 previousIndex, 3627 activeIndex 3628 }); 3629 if (swiper.initialized) { 3630 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_0__.preload)(swiper); 3631 } 3632 swiper.emit('activeIndexChange'); 3633 swiper.emit('snapIndexChange'); 3634 if (previousRealIndex !== realIndex) { 3635 swiper.emit('realIndexChange'); 3636 } 3637 if (swiper.initialized || swiper.params.runCallbacksOnInit) { 3638 swiper.emit('slideChange'); 3639 } 3640} 3641 3642/***/ }), 3643
vendor: 2,061 bytes, lines 3644-3701
3644/***/ "./node_modules/swiper/core/update/updateAutoHeight.js": 3645/*!*************************************************************!*\ 3646 !*** ./node_modules/swiper/core/update/updateAutoHeight.js ***! 3647 \*************************************************************/ 3648/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3649 3650__webpack_require__.r(__webpack_exports__); 3651/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3652/* harmony export */ "default": function() { return /* binding */ updateAutoHeight; } 3653/* harmony export */ }); 3654function updateAutoHeight(speed) { 3655 const swiper = this; 3656 const activeSlides = []; 3657 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 3658 let newHeight = 0; 3659 let i; 3660 if (typeof speed === 'number') { 3661 swiper.setTransition(speed); 3662 } else if (speed === true) { 3663 swiper.setTransition(swiper.params.speed); 3664 } 3665 const getSlideByIndex = index => { 3666 if (isVirtual) { 3667 return swiper.slides[swiper.getSlideIndexByData(index)]; 3668 } 3669 return swiper.slides[index]; 3670 }; 3671 // Find slides currently in view 3672 if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { 3673 if (swiper.params.centeredSlides) { 3674 (swiper.visibleSlides || []).forEach(slide => { 3675 activeSlides.push(slide); 3676 }); 3677 } else { 3678 for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { 3679 const index = swiper.activeIndex + i; 3680 if (index > swiper.slides.length && !isVirtual) break; 3681 activeSlides.push(getSlideByIndex(index)); 3682 } 3683 } 3684 } else { 3685 activeSlides.push(getSlideByIndex(swiper.activeIndex)); 3686 } 3687 3688 // Find new height from highest slide in view 3689 for (i = 0; i < activeSlides.length; i += 1) { 3690 if (typeof activeSlides[i] !== 'undefined') { 3691 const height = activeSlides[i].offsetHeight; 3692 newHeight = height > newHeight ? height : newHeight; 3693 } 3694 } 3695 3696 // Update Height 3697 if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`; 3698} 3699 3700/***/ }), 3701
vendor: 1,528 bytes, lines 3702-3745
3702/***/ "./node_modules/swiper/core/update/updateClickedSlide.js": 3703/*!***************************************************************!*\ 3704 !*** ./node_modules/swiper/core/update/updateClickedSlide.js ***! 3705 \***************************************************************/ 3706/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3707 3708__webpack_require__.r(__webpack_exports__); 3709/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3710/* harmony export */ "default": function() { return /* binding */ updateClickedSlide; } 3711/* harmony export */ }); 3712function updateClickedSlide(e) { 3713 const swiper = this; 3714 const params = swiper.params; 3715 const slide = e.closest(`.${params.slideClass}, swiper-slide`); 3716 let slideFound = false; 3717 let slideIndex; 3718 if (slide) { 3719 for (let i = 0; i < swiper.slides.length; i += 1) { 3720 if (swiper.slides[i] === slide) { 3721 slideFound = true; 3722 slideIndex = i; 3723 break; 3724 } 3725 } 3726 } 3727 if (slide && slideFound) { 3728 swiper.clickedSlide = slide; 3729 if (swiper.virtual && swiper.params.virtual.enabled) { 3730 swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10); 3731 } else { 3732 swiper.clickedIndex = slideIndex; 3733 } 3734 } else { 3735 swiper.clickedSlide = undefined; 3736 swiper.clickedIndex = undefined; 3737 return; 3738 } 3739 if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { 3740 swiper.slideToClickedSlide(); 3741 } 3742} 3743 3744/***/ }), 3745
vendor: 2,791 bytes, lines 3746-3820
3746/***/ "./node_modules/swiper/core/update/updateProgress.js": 3747/*!***********************************************************!*\ 3748 !*** ./node_modules/swiper/core/update/updateProgress.js ***! 3749 \***********************************************************/ 3750/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3751 3752__webpack_require__.r(__webpack_exports__); 3753/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3754/* harmony export */ "default": function() { return /* binding */ updateProgress; } 3755/* harmony export */ }); 3756function updateProgress(translate) { 3757 const swiper = this; 3758 if (typeof translate === 'undefined') { 3759 const multiplier = swiper.rtlTranslate ? -1 : 1; 3760 // eslint-disable-next-line 3761 translate = swiper && swiper.translate && swiper.translate * multiplier || 0; 3762 } 3763 const params = swiper.params; 3764 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 3765 let { 3766 progress, 3767 isBeginning, 3768 isEnd, 3769 progressLoop 3770 } = swiper; 3771 const wasBeginning = isBeginning; 3772 const wasEnd = isEnd; 3773 if (translatesDiff === 0) { 3774 progress = 0; 3775 isBeginning = true; 3776 isEnd = true; 3777 } else { 3778 progress = (translate - swiper.minTranslate()) / translatesDiff; 3779 const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1; 3780 const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1; 3781 isBeginning = isBeginningRounded || progress <= 0; 3782 isEnd = isEndRounded || progress >= 1; 3783 if (isBeginningRounded) progress = 0; 3784 if (isEndRounded) progress = 1; 3785 } 3786 if (params.loop) { 3787 const firstSlideIndex = swiper.getSlideIndexByData(0); 3788 const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1); 3789 const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex]; 3790 const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex]; 3791 const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1]; 3792 const translateAbs = Math.abs(translate); 3793 if (translateAbs >= firstSlideTranslate) { 3794 progressLoop = (translateAbs - firstSlideTranslate) / translateMax; 3795 } else { 3796 progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax; 3797 } 3798 if (progressLoop > 1) progressLoop -= 1; 3799 } 3800 Object.assign(swiper, { 3801 progress, 3802 progressLoop, 3803 isBeginning, 3804 isEnd 3805 }); 3806 if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate); 3807 if (isBeginning && !wasBeginning) { 3808 swiper.emit('reachBeginning toEdge'); 3809 } 3810 if (isEnd && !wasEnd) { 3811 swiper.emit('reachEnd toEdge'); 3812 } 3813 if (wasBeginning && !isBeginning || wasEnd && !isEnd) { 3814 swiper.emit('fromEdge'); 3815 } 3816 swiper.emit('progress', progress); 3817} 3818 3819/***/ }), 3820
vendor: 1,918 bytes, lines 3821-3865
3821/***/ "./node_modules/swiper/core/update/updateSize.js": 3822/*!*******************************************************!*\ 3823 !*** ./node_modules/swiper/core/update/updateSize.js ***! 3824 \*******************************************************/ 3825/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3826 3827__webpack_require__.r(__webpack_exports__); 3828/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3829/* harmony export */ "default": function() { return /* binding */ updateSize; } 3830/* harmony export */ }); 3831/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 3832 3833function updateSize() { 3834 const swiper = this; 3835 let width; 3836 let height; 3837 const el = swiper.el; 3838 if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) { 3839 width = swiper.params.width; 3840 } else { 3841 width = el.clientWidth; 3842 } 3843 if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) { 3844 height = swiper.params.height; 3845 } else { 3846 height = el.clientHeight; 3847 } 3848 if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) { 3849 return; 3850 } 3851 3852 // Subtract paddings 3853 width = width - parseInt((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementStyle)(el, 'padding-left') || 0, 10) - parseInt((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementStyle)(el, 'padding-right') || 0, 10); 3854 height = height - parseInt((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementStyle)(el, 'padding-top') || 0, 10) - parseInt((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementStyle)(el, 'padding-bottom') || 0, 10); 3855 if (Number.isNaN(width)) width = 0; 3856 if (Number.isNaN(height)) height = 0; 3857 Object.assign(swiper, { 3858 width, 3859 height, 3860 size: swiper.isHorizontal() ? width : height 3861 }); 3862} 3863 3864/***/ }), 3865
vendor: 12,407 bytes, lines 3866-4166
3866/***/ "./node_modules/swiper/core/update/updateSlides.js": 3867/*!*********************************************************!*\ 3868 !*** ./node_modules/swiper/core/update/updateSlides.js ***! 3869 \*********************************************************/ 3870/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3871 3872__webpack_require__.r(__webpack_exports__); 3873/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3874/* harmony export */ "default": function() { return /* binding */ updateSlides; } 3875/* harmony export */ }); 3876/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 3877 3878function updateSlides() { 3879 const swiper = this; 3880 function getDirectionLabel(property) { 3881 if (swiper.isHorizontal()) { 3882 return property; 3883 } 3884 // prettier-ignore 3885 return { 3886 'width': 'height', 3887 'margin-top': 'margin-left', 3888 'margin-bottom ': 'margin-right', 3889 'margin-left': 'margin-top', 3890 'margin-right': 'margin-bottom', 3891 'padding-left': 'padding-top', 3892 'padding-right': 'padding-bottom', 3893 'marginRight': 'marginBottom' 3894 }[property]; 3895 } 3896 function getDirectionPropertyValue(node, label) { 3897 return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0); 3898 } 3899 const params = swiper.params; 3900 const { 3901 wrapperEl, 3902 slidesEl, 3903 size: swiperSize, 3904 rtlTranslate: rtl, 3905 wrongRTL 3906 } = swiper; 3907 const isVirtual = swiper.virtual && params.virtual.enabled; 3908 const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; 3909 const slides = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementChildren)(slidesEl, `.${swiper.params.slideClass}, swiper-slide`); 3910 const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; 3911 let snapGrid = []; 3912 const slidesGrid = []; 3913 const slidesSizesGrid = []; 3914 let offsetBefore = params.slidesOffsetBefore; 3915 if (typeof offsetBefore === 'function') { 3916 offsetBefore = params.slidesOffsetBefore.call(swiper); 3917 } 3918 let offsetAfter = params.slidesOffsetAfter; 3919 if (typeof offsetAfter === 'function') { 3920 offsetAfter = params.slidesOffsetAfter.call(swiper); 3921 } 3922 const previousSnapGridLength = swiper.snapGrid.length; 3923 const previousSlidesGridLength = swiper.slidesGrid.length; 3924 let spaceBetween = params.spaceBetween; 3925 let slidePosition = -offsetBefore; 3926 let prevSlideSize = 0; 3927 let index = 0; 3928 if (typeof swiperSize === 'undefined') { 3929 return; 3930 } 3931 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 3932 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize; 3933 } else if (typeof spaceBetween === 'string') { 3934 spaceBetween = parseFloat(spaceBetween); 3935 } 3936 swiper.virtualSize = -spaceBetween; 3937 3938 // reset margins 3939 slides.forEach(slideEl => { 3940 if (rtl) { 3941 slideEl.style.marginLeft = ''; 3942 } else { 3943 slideEl.style.marginRight = ''; 3944 } 3945 slideEl.style.marginBottom = ''; 3946 slideEl.style.marginTop = ''; 3947 }); 3948 3949 // reset cssMode offsets 3950 if (params.centeredSlides && params.cssMode) { 3951 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(wrapperEl, '--swiper-centered-offset-before', ''); 3952 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(wrapperEl, '--swiper-centered-offset-after', ''); 3953 } 3954 const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid; 3955 if (gridEnabled) { 3956 swiper.grid.initSlides(slidesLength); 3957 } 3958 3959 // Calc slides 3960 let slideSize; 3961 const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => { 3962 return typeof params.breakpoints[key].slidesPerView !== 'undefined'; 3963 }).length > 0; 3964 for (let i = 0; i < slidesLength; i += 1) { 3965 slideSize = 0; 3966 let slide; 3967 if (slides[i]) slide = slides[i]; 3968 if (gridEnabled) { 3969 swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel); 3970 } 3971 if (slides[i] && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementStyle)(slide, 'display') === 'none') continue; // eslint-disable-line 3972 3973 if (params.slidesPerView === 'auto') { 3974 if (shouldResetSlideSize) { 3975 slides[i].style[getDirectionLabel('width')] = ``; 3976 } 3977 const slideStyles = getComputedStyle(slide); 3978 const currentTransform = slide.style.transform; 3979 const currentWebKitTransform = slide.style.webkitTransform; 3980 if (currentTransform) { 3981 slide.style.transform = 'none'; 3982 } 3983 if (currentWebKitTransform) { 3984 slide.style.webkitTransform = 'none'; 3985 } 3986 if (params.roundLengths) { 3987 slideSize = swiper.isHorizontal() ? (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementOuterSize)(slide, 'width', true) : (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementOuterSize)(slide, 'height', true); 3988 } else { 3989 // eslint-disable-next-line 3990 const width = getDirectionPropertyValue(slideStyles, 'width'); 3991 const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left'); 3992 const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right'); 3993 const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left'); 3994 const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right'); 3995 const boxSizing = slideStyles.getPropertyValue('box-sizing'); 3996 if (boxSizing && boxSizing === 'border-box') { 3997 slideSize = width + marginLeft + marginRight; 3998 } else { 3999 const { 4000 clientWidth, 4001 offsetWidth 4002 } = slide; 4003 slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth); 4004 } 4005 } 4006 if (currentTransform) { 4007 slide.style.transform = currentTransform; 4008 } 4009 if (currentWebKitTransform) { 4010 slide.style.webkitTransform = currentWebKitTransform; 4011 } 4012 if (params.roundLengths) slideSize = Math.floor(slideSize); 4013 } else { 4014 slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView; 4015 if (params.roundLengths) slideSize = Math.floor(slideSize); 4016 if (slides[i]) { 4017 slides[i].style[getDirectionLabel('width')] = `${slideSize}px`; 4018 } 4019 } 4020 if (slides[i]) { 4021 slides[i].swiperSlideSize = slideSize; 4022 } 4023 slidesSizesGrid.push(slideSize); 4024 if (params.centeredSlides) { 4025 slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween; 4026 if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 4027 if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 4028 if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; 4029 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 4030 if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition); 4031 slidesGrid.push(slidePosition); 4032 } else { 4033 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 4034 if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition); 4035 slidesGrid.push(slidePosition); 4036 slidePosition = slidePosition + slideSize + spaceBetween; 4037 } 4038 swiper.virtualSize += slideSize + spaceBetween; 4039 prevSlideSize = slideSize; 4040 index += 1; 4041 } 4042 swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; 4043 if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { 4044 wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`; 4045 } 4046 if (params.setWrapperSize) { 4047 wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; 4048 } 4049 if (gridEnabled) { 4050 swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel); 4051 } 4052 4053 // Remove last grid elements depending on width 4054 if (!params.centeredSlides) { 4055 const newSlidesGrid = []; 4056 for (let i = 0; i < snapGrid.length; i += 1) { 4057 let slidesGridItem = snapGrid[i]; 4058 if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem); 4059 if (snapGrid[i] <= swiper.virtualSize - swiperSize) { 4060 newSlidesGrid.push(slidesGridItem); 4061 } 4062 } 4063 snapGrid = newSlidesGrid; 4064 if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { 4065 snapGrid.push(swiper.virtualSize - swiperSize); 4066 } 4067 } 4068 if (isVirtual && params.loop) { 4069 const size = slidesSizesGrid[0] + spaceBetween; 4070 if (params.slidesPerGroup > 1) { 4071 const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup); 4072 const groupSize = size * params.slidesPerGroup; 4073 for (let i = 0; i < groups; i += 1) { 4074 snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize); 4075 } 4076 } 4077 for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) { 4078 if (params.slidesPerGroup === 1) { 4079 snapGrid.push(snapGrid[snapGrid.length - 1] + size); 4080 } 4081 slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size); 4082 swiper.virtualSize += size; 4083 } 4084 } 4085 if (snapGrid.length === 0) snapGrid = [0]; 4086 if (spaceBetween !== 0) { 4087 const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight'); 4088 slides.filter((_, slideIndex) => { 4089 if (!params.cssMode || params.loop) return true; 4090 if (slideIndex === slides.length - 1) { 4091 return false; 4092 } 4093 return true; 4094 }).forEach(slideEl => { 4095 slideEl.style[key] = `${spaceBetween}px`; 4096 }); 4097 } 4098 if (params.centeredSlides && params.centeredSlidesBounds) { 4099 let allSlidesSize = 0; 4100 slidesSizesGrid.forEach(slideSizeValue => { 4101 allSlidesSize += slideSizeValue + (spaceBetween || 0); 4102 }); 4103 allSlidesSize -= spaceBetween; 4104 const maxSnap = allSlidesSize - swiperSize; 4105 snapGrid = snapGrid.map(snap => { 4106 if (snap < 0) return -offsetBefore; 4107 if (snap > maxSnap) return maxSnap + offsetAfter; 4108 return snap; 4109 }); 4110 } 4111 if (params.centerInsufficientSlides) { 4112 let allSlidesSize = 0; 4113 slidesSizesGrid.forEach(slideSizeValue => { 4114 allSlidesSize += slideSizeValue + (spaceBetween || 0); 4115 }); 4116 allSlidesSize -= spaceBetween; 4117 if (allSlidesSize < swiperSize) { 4118 const allSlidesOffset = (swiperSize - allSlidesSize) / 2; 4119 snapGrid.forEach((snap, snapIndex) => { 4120 snapGrid[snapIndex] = snap - allSlidesOffset; 4121 }); 4122 slidesGrid.forEach((snap, snapIndex) => { 4123 slidesGrid[snapIndex] = snap + allSlidesOffset; 4124 }); 4125 } 4126 } 4127 Object.assign(swiper, { 4128 slides, 4129 snapGrid, 4130 slidesGrid, 4131 slidesSizesGrid 4132 }); 4133 if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) { 4134 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`); 4135 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`); 4136 const addToSnapGrid = -swiper.snapGrid[0]; 4137 const addToSlidesGrid = -swiper.slidesGrid[0]; 4138 swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid); 4139 swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid); 4140 } 4141 if (slidesLength !== previousSlidesLength) { 4142 swiper.emit('slidesLengthChange'); 4143 } 4144 if (snapGrid.length !== previousSnapGridLength) { 4145 if (swiper.params.watchOverflow) swiper.checkOverflow(); 4146 swiper.emit('snapGridLengthChange'); 4147 } 4148 if (slidesGrid.length !== previousSlidesGridLength) { 4149 swiper.emit('slidesGridLengthChange'); 4150 } 4151 if (params.watchSlidesProgress) { 4152 swiper.updateSlidesOffset(); 4153 } 4154 if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) { 4155 const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`; 4156 const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass); 4157 if (slidesLength <= params.maxBackfaceHiddenSlides) { 4158 if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass); 4159 } else if (hasClassBackfaceClassAdded) { 4160 swiper.el.classList.remove(backFaceHiddenClass); 4161 } 4162 } 4163} 4164 4165/***/ }), 4166
vendor: 2,636 bytes, lines 4167-4232
4167/***/ "./node_modules/swiper/core/update/updateSlidesClasses.js": 4168/*!****************************************************************!*\ 4169 !*** ./node_modules/swiper/core/update/updateSlidesClasses.js ***! 4170 \****************************************************************/ 4171/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4172 4173__webpack_require__.r(__webpack_exports__); 4174/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4175/* harmony export */ "default": function() { return /* binding */ updateSlidesClasses; } 4176/* harmony export */ }); 4177/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 4178 4179function updateSlidesClasses() { 4180 const swiper = this; 4181 const { 4182 slides, 4183 params, 4184 slidesEl, 4185 activeIndex 4186 } = swiper; 4187 const isVirtual = swiper.virtual && params.virtual.enabled; 4188 const getFilteredSlide = selector => { 4189 return (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementChildren)(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0]; 4190 }; 4191 slides.forEach(slideEl => { 4192 slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass); 4193 }); 4194 let activeSlide; 4195 if (isVirtual) { 4196 if (params.loop) { 4197 let slideIndex = activeIndex - swiper.virtual.slidesBefore; 4198 if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex; 4199 if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length; 4200 activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`); 4201 } else { 4202 activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`); 4203 } 4204 } else { 4205 activeSlide = slides[activeIndex]; 4206 } 4207 if (activeSlide) { 4208 // Active classes 4209 activeSlide.classList.add(params.slideActiveClass); 4210 4211 // Next Slide 4212 let nextSlide = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementNextAll)(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; 4213 if (params.loop && !nextSlide) { 4214 nextSlide = slides[0]; 4215 } 4216 if (nextSlide) { 4217 nextSlide.classList.add(params.slideNextClass); 4218 } 4219 // Prev Slide 4220 let prevSlide = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementPrevAll)(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; 4221 if (params.loop && !prevSlide === 0) { 4222 prevSlide = slides[slides.length - 1]; 4223 } 4224 if (prevSlide) { 4225 prevSlide.classList.add(params.slidePrevClass); 4226 } 4227 } 4228 swiper.emitSlidesClasses(); 4229} 4230 4231/***/ }), 4232
vendor: 1,054 bytes, lines 4233-4254
4233/***/ "./node_modules/swiper/core/update/updateSlidesOffset.js": 4234/*!***************************************************************!*\ 4235 !*** ./node_modules/swiper/core/update/updateSlidesOffset.js ***! 4236 \***************************************************************/ 4237/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4238 4239__webpack_require__.r(__webpack_exports__); 4240/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4241/* harmony export */ "default": function() { return /* binding */ updateSlidesOffset; } 4242/* harmony export */ }); 4243function updateSlidesOffset() { 4244 const swiper = this; 4245 const slides = swiper.slides; 4246 // eslint-disable-next-line 4247 const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0; 4248 for (let i = 0; i < slides.length; i += 1) { 4249 slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment(); 4250 } 4251} 4252 4253/***/ }), 4254
vendor: 2,641 bytes, lines 4255-4312
4255/***/ "./node_modules/swiper/core/update/updateSlidesProgress.js": 4256/*!*****************************************************************!*\ 4257 !*** ./node_modules/swiper/core/update/updateSlidesProgress.js ***! 4258 \*****************************************************************/ 4259/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4260 4261__webpack_require__.r(__webpack_exports__); 4262/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4263/* harmony export */ "default": function() { return /* binding */ updateSlidesProgress; } 4264/* harmony export */ }); 4265function updateSlidesProgress(translate = this && this.translate || 0) { 4266 const swiper = this; 4267 const params = swiper.params; 4268 const { 4269 slides, 4270 rtlTranslate: rtl, 4271 snapGrid 4272 } = swiper; 4273 if (slides.length === 0) return; 4274 if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); 4275 let offsetCenter = -translate; 4276 if (rtl) offsetCenter = translate; 4277 4278 // Visible Slides 4279 slides.forEach(slideEl => { 4280 slideEl.classList.remove(params.slideVisibleClass); 4281 }); 4282 swiper.visibleSlidesIndexes = []; 4283 swiper.visibleSlides = []; 4284 let spaceBetween = params.spaceBetween; 4285 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 4286 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; 4287 } else if (typeof spaceBetween === 'string') { 4288 spaceBetween = parseFloat(spaceBetween); 4289 } 4290 for (let i = 0; i < slides.length; i += 1) { 4291 const slide = slides[i]; 4292 let slideOffset = slide.swiperSlideOffset; 4293 if (params.cssMode && params.centeredSlides) { 4294 slideOffset -= slides[0].swiperSlideOffset; 4295 } 4296 const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); 4297 const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); 4298 const slideBefore = -(offsetCenter - slideOffset); 4299 const slideAfter = slideBefore + swiper.slidesSizesGrid[i]; 4300 const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size; 4301 if (isVisible) { 4302 swiper.visibleSlides.push(slide); 4303 swiper.visibleSlidesIndexes.push(i); 4304 slides[i].classList.add(params.slideVisibleClass); 4305 } 4306 slide.progress = rtl ? -slideProgress : slideProgress; 4307 slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress; 4308 } 4309} 4310 4311/***/ }), 4312
vendor: 12,030 bytes, lines 4313-4670
4313/***/ "./node_modules/swiper/modules/a11y/a11y.js": 4314/*!**************************************************!*\ 4315 !*** ./node_modules/swiper/modules/a11y/a11y.js ***! 4316 \**************************************************/ 4317/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4318 4319__webpack_require__.r(__webpack_exports__); 4320/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4321/* harmony export */ "default": function() { return /* binding */ A11y; } 4322/* harmony export */ }); 4323/* harmony import */ var _shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/classes-to-selector.js */ "./node_modules/swiper/shared/classes-to-selector.js"); 4324/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 4325 4326 4327function A11y({ 4328 swiper, 4329 extendParams, 4330 on 4331}) { 4332 extendParams({ 4333 a11y: { 4334 enabled: true, 4335 notificationClass: 'swiper-notification', 4336 prevSlideMessage: 'Previous slide', 4337 nextSlideMessage: 'Next slide', 4338 firstSlideMessage: 'This is the first slide', 4339 lastSlideMessage: 'This is the last slide', 4340 paginationBulletMessage: 'Go to slide {{index}}', 4341 slideLabelMessage: '{{index}} / {{slidesLength}}', 4342 containerMessage: null, 4343 containerRoleDescriptionMessage: null, 4344 itemRoleDescriptionMessage: null, 4345 slideRole: 'group', 4346 id: null 4347 } 4348 }); 4349 swiper.a11y = { 4350 clicked: false 4351 }; 4352 let liveRegion = null; 4353 function notify(message) { 4354 const notification = liveRegion; 4355 if (notification.length === 0) return; 4356 notification.innerHTML = ''; 4357 notification.innerHTML = message; 4358 } 4359 const makeElementsArray = el => { 4360 if (!Array.isArray(el)) el = [el].filter(e => !!e); 4361 return el; 4362 }; 4363 function getRandomNumber(size = 16) { 4364 const randomChar = () => Math.round(16 * Math.random()).toString(16); 4365 return 'x'.repeat(size).replace(/x/g, randomChar); 4366 } 4367 function makeElFocusable(el) { 4368 el = makeElementsArray(el); 4369 el.forEach(subEl => { 4370 subEl.setAttribute('tabIndex', '0'); 4371 }); 4372 } 4373 function makeElNotFocusable(el) { 4374 el = makeElementsArray(el); 4375 el.forEach(subEl => { 4376 subEl.setAttribute('tabIndex', '-1'); 4377 }); 4378 } 4379 function addElRole(el, role) { 4380 el = makeElementsArray(el); 4381 el.forEach(subEl => { 4382 subEl.setAttribute('role', role); 4383 }); 4384 } 4385 function addElRoleDescription(el, description) { 4386 el = makeElementsArray(el); 4387 el.forEach(subEl => { 4388 subEl.setAttribute('aria-roledescription', description); 4389 }); 4390 } 4391 function addElControls(el, controls) { 4392 el = makeElementsArray(el); 4393 el.forEach(subEl => { 4394 subEl.setAttribute('aria-controls', controls); 4395 }); 4396 } 4397 function addElLabel(el, label) { 4398 el = makeElementsArray(el); 4399 el.forEach(subEl => { 4400 subEl.setAttribute('aria-label', label); 4401 }); 4402 } 4403 function addElId(el, id) { 4404 el = makeElementsArray(el); 4405 el.forEach(subEl => { 4406 subEl.setAttribute('id', id); 4407 }); 4408 } 4409 function addElLive(el, live) { 4410 el = makeElementsArray(el); 4411 el.forEach(subEl => { 4412 subEl.setAttribute('aria-live', live); 4413 }); 4414 } 4415 function disableEl(el) { 4416 el = makeElementsArray(el); 4417 el.forEach(subEl => { 4418 subEl.setAttribute('aria-disabled', true); 4419 }); 4420 } 4421 function enableEl(el) { 4422 el = makeElementsArray(el); 4423 el.forEach(subEl => { 4424 subEl.setAttribute('aria-disabled', false); 4425 }); 4426 } 4427 function onEnterOrSpaceKey(e) { 4428 if (e.keyCode !== 13 && e.keyCode !== 32) return; 4429 const params = swiper.params.a11y; 4430 const targetEl = e.target; 4431 if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) { 4432 if (!e.target.matches((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass))) return; 4433 } 4434 if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) { 4435 if (!(swiper.isEnd && !swiper.params.loop)) { 4436 swiper.slideNext(); 4437 } 4438 if (swiper.isEnd) { 4439 notify(params.lastSlideMessage); 4440 } else { 4441 notify(params.nextSlideMessage); 4442 } 4443 } 4444 if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) { 4445 if (!(swiper.isBeginning && !swiper.params.loop)) { 4446 swiper.slidePrev(); 4447 } 4448 if (swiper.isBeginning) { 4449 notify(params.firstSlideMessage); 4450 } else { 4451 notify(params.prevSlideMessage); 4452 } 4453 } 4454 if (swiper.pagination && targetEl.matches((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass))) { 4455 targetEl.click(); 4456 } 4457 } 4458 function updateNavigation() { 4459 if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return; 4460 const { 4461 nextEl, 4462 prevEl 4463 } = swiper.navigation; 4464 if (prevEl) { 4465 if (swiper.isBeginning) { 4466 disableEl(prevEl); 4467 makeElNotFocusable(prevEl); 4468 } else { 4469 enableEl(prevEl); 4470 makeElFocusable(prevEl); 4471 } 4472 } 4473 if (nextEl) { 4474 if (swiper.isEnd) { 4475 disableEl(nextEl); 4476 makeElNotFocusable(nextEl); 4477 } else { 4478 enableEl(nextEl); 4479 makeElFocusable(nextEl); 4480 } 4481 } 4482 } 4483 function hasPagination() { 4484 return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length; 4485 } 4486 function hasClickablePagination() { 4487 return hasPagination() && swiper.params.pagination.clickable; 4488 } 4489 function updatePagination() { 4490 const params = swiper.params.a11y; 4491 if (!hasPagination()) return; 4492 swiper.pagination.bullets.forEach(bulletEl => { 4493 if (swiper.params.pagination.clickable) { 4494 makeElFocusable(bulletEl); 4495 if (!swiper.params.pagination.renderBullet) { 4496 addElRole(bulletEl, 'button'); 4497 addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementIndex)(bulletEl) + 1)); 4498 } 4499 } 4500 if (bulletEl.matches((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletActiveClass))) { 4501 bulletEl.setAttribute('aria-current', 'true'); 4502 } else { 4503 bulletEl.removeAttribute('aria-current'); 4504 } 4505 }); 4506 } 4507 const initNavEl = (el, wrapperId, message) => { 4508 makeElFocusable(el); 4509 if (el.tagName !== 'BUTTON') { 4510 addElRole(el, 'button'); 4511 el.addEventListener('keydown', onEnterOrSpaceKey); 4512 } 4513 addElLabel(el, message); 4514 addElControls(el, wrapperId); 4515 }; 4516 const handlePointerDown = () => { 4517 swiper.a11y.clicked = true; 4518 }; 4519 const handlePointerUp = () => { 4520 requestAnimationFrame(() => { 4521 requestAnimationFrame(() => { 4522 if (!swiper.destroyed) { 4523 swiper.a11y.clicked = false; 4524 } 4525 }); 4526 }); 4527 }; 4528 const handleFocus = e => { 4529 if (swiper.a11y.clicked) return; 4530 const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); 4531 if (!slideEl || !swiper.slides.includes(slideEl)) return; 4532 const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex; 4533 const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl); 4534 if (isActive || isVisible) return; 4535 if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return; 4536 if (swiper.isHorizontal()) { 4537 swiper.el.scrollLeft = 0; 4538 } else { 4539 swiper.el.scrollTop = 0; 4540 } 4541 swiper.slideTo(swiper.slides.indexOf(slideEl), 0); 4542 }; 4543 const initSlides = () => { 4544 const params = swiper.params.a11y; 4545 if (params.itemRoleDescriptionMessage) { 4546 addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage); 4547 } 4548 if (params.slideRole) { 4549 addElRole(swiper.slides, params.slideRole); 4550 } 4551 const slidesLength = swiper.slides.length; 4552 if (params.slideLabelMessage) { 4553 swiper.slides.forEach((slideEl, index) => { 4554 const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index; 4555 const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength); 4556 addElLabel(slideEl, ariaLabelMessage); 4557 }); 4558 } 4559 }; 4560 const init = () => { 4561 const params = swiper.params.a11y; 4562 if (swiper.isElement) { 4563 swiper.el.shadowEl.append(liveRegion); 4564 } else { 4565 swiper.el.append(liveRegion); 4566 } 4567 4568 // Container 4569 const containerEl = swiper.el; 4570 if (params.containerRoleDescriptionMessage) { 4571 addElRoleDescription(containerEl, params.containerRoleDescriptionMessage); 4572 } 4573 if (params.containerMessage) { 4574 addElLabel(containerEl, params.containerMessage); 4575 } 4576 4577 // Wrapper 4578 const wrapperEl = swiper.wrapperEl; 4579 const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`; 4580 const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite'; 4581 addElId(wrapperEl, wrapperId); 4582 addElLive(wrapperEl, live); 4583 4584 // Slide 4585 initSlides(); 4586 4587 // Navigation 4588 let { 4589 nextEl, 4590 prevEl 4591 } = swiper.navigation ? swiper.navigation : {}; 4592 nextEl = makeElementsArray(nextEl); 4593 prevEl = makeElementsArray(prevEl); 4594 if (nextEl) { 4595 nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage)); 4596 } 4597 if (prevEl) { 4598 prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage)); 4599 } 4600 4601 // Pagination 4602 if (hasClickablePagination()) { 4603 const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el]; 4604 paginationEl.forEach(el => { 4605 el.addEventListener('keydown', onEnterOrSpaceKey); 4606 }); 4607 } 4608 4609 // Tab focus 4610 swiper.el.addEventListener('focus', handleFocus, true); 4611 swiper.el.addEventListener('pointerdown', handlePointerDown, true); 4612 swiper.el.addEventListener('pointerup', handlePointerUp, true); 4613 }; 4614 function destroy() { 4615 if (liveRegion) liveRegion.remove(); 4616 let { 4617 nextEl, 4618 prevEl 4619 } = swiper.navigation ? swiper.navigation : {}; 4620 nextEl = makeElementsArray(nextEl); 4621 prevEl = makeElementsArray(prevEl); 4622 if (nextEl) { 4623 nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); 4624 } 4625 if (prevEl) { 4626 prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); 4627 } 4628 4629 // Pagination 4630 if (hasClickablePagination()) { 4631 const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el]; 4632 paginationEl.forEach(el => { 4633 el.removeEventListener('keydown', onEnterOrSpaceKey); 4634 }); 4635 } 4636 4637 // Tab focus 4638 swiper.el.removeEventListener('focus', handleFocus, true); 4639 swiper.el.removeEventListener('pointerdown', handlePointerDown, true); 4640 swiper.el.removeEventListener('pointerup', handlePointerUp, true); 4641 } 4642 on('beforeInit', () => { 4643 liveRegion = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('span', swiper.params.a11y.notificationClass); 4644 liveRegion.setAttribute('aria-live', 'assertive'); 4645 liveRegion.setAttribute('aria-atomic', 'true'); 4646 }); 4647 on('afterInit', () => { 4648 if (!swiper.params.a11y.enabled) return; 4649 init(); 4650 }); 4651 on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => { 4652 if (!swiper.params.a11y.enabled) return; 4653 initSlides(); 4654 }); 4655 on('fromEdge toEdge afterInit lock unlock', () => { 4656 if (!swiper.params.a11y.enabled) return; 4657 updateNavigation(); 4658 }); 4659 on('paginationUpdate', () => { 4660 if (!swiper.params.a11y.enabled) return; 4661 updatePagination(); 4662 }); 4663 on('destroy', () => { 4664 if (!swiper.params.a11y.enabled) return; 4665 destroy(); 4666 }); 4667} 4668 4669/***/ }), 4670
vendor: 9,404 bytes, lines 4671-4963
4671/***/ "./node_modules/swiper/modules/autoplay/autoplay.js": 4672/*!**********************************************************!*\ 4673 !*** ./node_modules/swiper/modules/autoplay/autoplay.js ***! 4674 \**********************************************************/ 4675/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4676 4677__webpack_require__.r(__webpack_exports__); 4678/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4679/* harmony export */ "default": function() { return /* binding */ Autoplay; } 4680/* harmony export */ }); 4681/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 4682/* eslint no-underscore-dangle: "off" */ 4683/* eslint no-use-before-define: "off" */ 4684 4685function Autoplay({ 4686 swiper, 4687 extendParams, 4688 on, 4689 emit, 4690 params 4691}) { 4692 swiper.autoplay = { 4693 running: false, 4694 paused: false, 4695 timeLeft: 0 4696 }; 4697 extendParams({ 4698 autoplay: { 4699 enabled: false, 4700 delay: 3000, 4701 waitForTransition: true, 4702 disableOnInteraction: true, 4703 stopOnLastSlide: false, 4704 reverseDirection: false, 4705 pauseOnMouseEnter: false 4706 } 4707 }); 4708 let timeout; 4709 let raf; 4710 let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000; 4711 let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000; 4712 let autoplayTimeLeft; 4713 let autoplayStartTime = new Date().getTime; 4714 let wasPaused; 4715 let isTouched; 4716 let pausedByTouch; 4717 let touchStartTimeout; 4718 let slideChanged; 4719 let pausedByInteraction; 4720 function onTransitionEnd(e) { 4721 if (!swiper || swiper.destroyed || !swiper.wrapperEl) return; 4722 if (e.target !== swiper.wrapperEl) return; 4723 swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd); 4724 resume(); 4725 } 4726 const calcTimeLeft = () => { 4727 if (swiper.destroyed || !swiper.autoplay.running) return; 4728 if (swiper.autoplay.paused) { 4729 wasPaused = true; 4730 } else if (wasPaused) { 4731 autoplayDelayCurrent = autoplayTimeLeft; 4732 wasPaused = false; 4733 } 4734 const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime(); 4735 swiper.autoplay.timeLeft = timeLeft; 4736 emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal); 4737 raf = requestAnimationFrame(() => { 4738 calcTimeLeft(); 4739 }); 4740 }; 4741 const getSlideDelay = () => { 4742 let activeSlideEl; 4743 if (swiper.virtual && swiper.params.virtual.enabled) { 4744 activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0]; 4745 } else { 4746 activeSlideEl = swiper.slides[swiper.activeIndex]; 4747 } 4748 if (!activeSlideEl) return undefined; 4749 const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10); 4750 return currentSlideDelay; 4751 }; 4752 const run = delayForce => { 4753 if (swiper.destroyed || !swiper.autoplay.running) return; 4754 cancelAnimationFrame(raf); 4755 calcTimeLeft(); 4756 let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce; 4757 autoplayDelayTotal = swiper.params.autoplay.delay; 4758 autoplayDelayCurrent = swiper.params.autoplay.delay; 4759 const currentSlideDelay = getSlideDelay(); 4760 if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') { 4761 delay = currentSlideDelay; 4762 autoplayDelayTotal = currentSlideDelay; 4763 autoplayDelayCurrent = currentSlideDelay; 4764 } 4765 autoplayTimeLeft = delay; 4766 const speed = swiper.params.speed; 4767 const proceed = () => { 4768 if (!swiper || swiper.destroyed) return; 4769 if (swiper.params.autoplay.reverseDirection) { 4770 if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) { 4771 swiper.slidePrev(speed, true, true); 4772 emit('autoplay'); 4773 } else if (!swiper.params.autoplay.stopOnLastSlide) { 4774 swiper.slideTo(swiper.slides.length - 1, speed, true, true); 4775 emit('autoplay'); 4776 } 4777 } else { 4778 if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) { 4779 swiper.slideNext(speed, true, true); 4780 emit('autoplay'); 4781 } else if (!swiper.params.autoplay.stopOnLastSlide) { 4782 swiper.slideTo(0, speed, true, true); 4783 emit('autoplay'); 4784 } 4785 } 4786 if (swiper.params.cssMode) { 4787 autoplayStartTime = new Date().getTime(); 4788 requestAnimationFrame(() => { 4789 run(); 4790 }); 4791 } 4792 }; 4793 if (delay > 0) { 4794 clearTimeout(timeout); 4795 timeout = setTimeout(() => { 4796 proceed(); 4797 }, delay); 4798 } else { 4799 requestAnimationFrame(() => { 4800 proceed(); 4801 }); 4802 } 4803 4804 // eslint-disable-next-line 4805 return delay; 4806 }; 4807 const start = () => { 4808 swiper.autoplay.running = true; 4809 run(); 4810 emit('autoplayStart'); 4811 }; 4812 const stop = () => { 4813 swiper.autoplay.running = false; 4814 clearTimeout(timeout); 4815 cancelAnimationFrame(raf); 4816 emit('autoplayStop'); 4817 }; 4818 const pause = (internal, reset) => { 4819 if (swiper.destroyed || !swiper.autoplay.running) return; 4820 clearTimeout(timeout); 4821 if (!internal) { 4822 pausedByInteraction = true; 4823 } 4824 const proceed = () => { 4825 emit('autoplayPause'); 4826 if (swiper.params.autoplay.waitForTransition) { 4827 swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd); 4828 } else { 4829 resume(); 4830 } 4831 }; 4832 swiper.autoplay.paused = true; 4833 if (reset) { 4834 if (slideChanged) { 4835 autoplayTimeLeft = swiper.params.autoplay.delay; 4836 } 4837 slideChanged = false; 4838 proceed(); 4839 return; 4840 } 4841 const delay = autoplayTimeLeft || swiper.params.autoplay.delay; 4842 autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime); 4843 if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return; 4844 if (autoplayTimeLeft < 0) autoplayTimeLeft = 0; 4845 proceed(); 4846 }; 4847 const resume = () => { 4848 if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return; 4849 autoplayStartTime = new Date().getTime(); 4850 if (pausedByInteraction) { 4851 pausedByInteraction = false; 4852 run(autoplayTimeLeft); 4853 } else { 4854 run(); 4855 } 4856 swiper.autoplay.paused = false; 4857 emit('autoplayResume'); 4858 }; 4859 const onVisibilityChange = () => { 4860 if (swiper.destroyed || !swiper.autoplay.running) return; 4861 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 4862 if (document.visibilityState === 'hidden') { 4863 pausedByInteraction = true; 4864 pause(true); 4865 } 4866 if (document.visibilityState === 'visible') { 4867 resume(); 4868 } 4869 }; 4870 const onPointerEnter = e => { 4871 if (e.pointerType !== 'mouse') return; 4872 pausedByInteraction = true; 4873 pause(true); 4874 }; 4875 const onPointerLeave = e => { 4876 if (e.pointerType !== 'mouse') return; 4877 if (swiper.autoplay.paused) { 4878 resume(); 4879 } 4880 }; 4881 const attachMouseEvents = () => { 4882 if (swiper.params.autoplay.pauseOnMouseEnter) { 4883 swiper.el.addEventListener('pointerenter', onPointerEnter); 4884 swiper.el.addEventListener('pointerleave', onPointerLeave); 4885 } 4886 }; 4887 const detachMouseEvents = () => { 4888 swiper.el.removeEventListener('pointerenter', onPointerEnter); 4889 swiper.el.removeEventListener('pointerleave', onPointerLeave); 4890 }; 4891 const attachDocumentEvents = () => { 4892 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 4893 document.addEventListener('visibilitychange', onVisibilityChange); 4894 }; 4895 const detachDocumentEvents = () => { 4896 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 4897 document.removeEventListener('visibilitychange', onVisibilityChange); 4898 }; 4899 on('init', () => { 4900 if (swiper.params.autoplay.enabled) { 4901 attachMouseEvents(); 4902 attachDocumentEvents(); 4903 autoplayStartTime = new Date().getTime(); 4904 start(); 4905 } 4906 }); 4907 on('destroy', () => { 4908 detachMouseEvents(); 4909 detachDocumentEvents(); 4910 if (swiper.autoplay.running) { 4911 stop(); 4912 } 4913 }); 4914 on('beforeTransitionStart', (_s, speed, internal) => { 4915 if (swiper.destroyed || !swiper.autoplay.running) return; 4916 if (internal || !swiper.params.autoplay.disableOnInteraction) { 4917 pause(true, true); 4918 } else { 4919 stop(); 4920 } 4921 }); 4922 on('sliderFirstMove', () => { 4923 if (swiper.destroyed || !swiper.autoplay.running) return; 4924 if (swiper.params.autoplay.disableOnInteraction) { 4925 stop(); 4926 return; 4927 } 4928 isTouched = true; 4929 pausedByTouch = false; 4930 pausedByInteraction = false; 4931 touchStartTimeout = setTimeout(() => { 4932 pausedByInteraction = true; 4933 pausedByTouch = true; 4934 pause(true); 4935 }, 200); 4936 }); 4937 on('touchEnd', () => { 4938 if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return; 4939 clearTimeout(touchStartTimeout); 4940 clearTimeout(timeout); 4941 if (swiper.params.autoplay.disableOnInteraction) { 4942 pausedByTouch = false; 4943 isTouched = false; 4944 return; 4945 } 4946 if (pausedByTouch && swiper.params.cssMode) resume(); 4947 pausedByTouch = false; 4948 isTouched = false; 4949 }); 4950 on('slideChange', () => { 4951 if (swiper.destroyed || !swiper.autoplay.running) return; 4952 slideChanged = true; 4953 }); 4954 Object.assign(swiper.autoplay, { 4955 start, 4956 stop, 4957 pause, 4958 resume 4959 }); 4960} 4961 4962/***/ }), 4963
vendor: 7,220 bytes, lines 4964-5160
4964/***/ "./node_modules/swiper/modules/controller/controller.js": 4965/*!**************************************************************!*\ 4966 !*** ./node_modules/swiper/modules/controller/controller.js ***! 4967 \**************************************************************/ 4968/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4969 4970__webpack_require__.r(__webpack_exports__); 4971/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4972/* harmony export */ "default": function() { return /* binding */ Controller; } 4973/* harmony export */ }); 4974/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 4975/* eslint no-bitwise: ["error", { "allow": [">>"] }] */ 4976 4977function Controller({ 4978 swiper, 4979 extendParams, 4980 on 4981}) { 4982 extendParams({ 4983 controller: { 4984 control: undefined, 4985 inverse: false, 4986 by: 'slide' // or 'container' 4987 } 4988 }); 4989 4990 swiper.controller = { 4991 control: undefined 4992 }; 4993 function LinearSpline(x, y) { 4994 const binarySearch = function search() { 4995 let maxIndex; 4996 let minIndex; 4997 let guess; 4998 return (array, val) => { 4999 minIndex = -1; 5000 maxIndex = array.length; 5001 while (maxIndex - minIndex > 1) { 5002 guess = maxIndex + minIndex >> 1; 5003 if (array[guess] <= val) { 5004 minIndex = guess; 5005 } else { 5006 maxIndex = guess; 5007 } 5008 } 5009 return maxIndex; 5010 }; 5011 }(); 5012 this.x = x; 5013 this.y = y; 5014 this.lastIndex = x.length - 1; 5015 // Given an x value (x2), return the expected y2 value: 5016 // (x1,y1) is the known point before given value, 5017 // (x3,y3) is the known point after given value. 5018 let i1; 5019 let i3; 5020 this.interpolate = function interpolate(x2) { 5021 if (!x2) return 0; 5022 5023 // Get the indexes of x1 and x3 (the array indexes before and after given x2): 5024 i3 = binarySearch(this.x, x2); 5025 i1 = i3 - 1; 5026 5027 // We have our indexes i1 & i3, so we can calculate already: 5028 // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1 5029 return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1]; 5030 }; 5031 return this; 5032 } 5033 function getInterpolateFunction(c) { 5034 swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid); 5035 } 5036 function setTranslate(_t, byController) { 5037 const controlled = swiper.controller.control; 5038 let multiplier; 5039 let controlledTranslate; 5040 const Swiper = swiper.constructor; 5041 function setControlledTranslate(c) { 5042 if (c.destroyed) return; 5043 5044 // this will create an Interpolate function based on the snapGrids 5045 // x is the Grid of the scrolled scroller and y will be the controlled scroller 5046 // it makes sense to create this only once and recall it for the interpolation 5047 // the function does a lot of value caching for performance 5048 const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate; 5049 if (swiper.params.controller.by === 'slide') { 5050 getInterpolateFunction(c); 5051 // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid 5052 // but it did not work out 5053 controlledTranslate = -swiper.controller.spline.interpolate(-translate); 5054 } 5055 if (!controlledTranslate || swiper.params.controller.by === 'container') { 5056 multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); 5057 if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) { 5058 multiplier = 1; 5059 } 5060 controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate(); 5061 } 5062 if (swiper.params.controller.inverse) { 5063 controlledTranslate = c.maxTranslate() - controlledTranslate; 5064 } 5065 c.updateProgress(controlledTranslate); 5066 c.setTranslate(controlledTranslate, swiper); 5067 c.updateActiveIndex(); 5068 c.updateSlidesClasses(); 5069 } 5070 if (Array.isArray(controlled)) { 5071 for (let i = 0; i < controlled.length; i += 1) { 5072 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 5073 setControlledTranslate(controlled[i]); 5074 } 5075 } 5076 } else if (controlled instanceof Swiper && byController !== controlled) { 5077 setControlledTranslate(controlled); 5078 } 5079 } 5080 function setTransition(duration, byController) { 5081 const Swiper = swiper.constructor; 5082 const controlled = swiper.controller.control; 5083 let i; 5084 function setControlledTransition(c) { 5085 if (c.destroyed) return; 5086 c.setTransition(duration, swiper); 5087 if (duration !== 0) { 5088 c.transitionStart(); 5089 if (c.params.autoHeight) { 5090 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => { 5091 c.updateAutoHeight(); 5092 }); 5093 } 5094 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementTransitionEnd)(c.wrapperEl, () => { 5095 if (!controlled) return; 5096 c.transitionEnd(); 5097 }); 5098 } 5099 } 5100 if (Array.isArray(controlled)) { 5101 for (i = 0; i < controlled.length; i += 1) { 5102 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 5103 setControlledTransition(controlled[i]); 5104 } 5105 } 5106 } else if (controlled instanceof Swiper && byController !== controlled) { 5107 setControlledTransition(controlled); 5108 } 5109 } 5110 function removeSpline() { 5111 if (!swiper.controller.control) return; 5112 if (swiper.controller.spline) { 5113 swiper.controller.spline = undefined; 5114 delete swiper.controller.spline; 5115 } 5116 } 5117 on('beforeInit', () => { 5118 if (typeof window !== 'undefined' && ( 5119 // eslint-disable-line 5120 typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) { 5121 const controlElement = document.querySelector(swiper.params.controller.control); 5122 if (controlElement && controlElement.swiper) { 5123 swiper.controller.control = controlElement.swiper; 5124 } else if (controlElement) { 5125 const onControllerSwiper = e => { 5126 swiper.controller.control = e.detail[0]; 5127 swiper.update(); 5128 controlElement.removeEventListener('init', onControllerSwiper); 5129 }; 5130 controlElement.addEventListener('init', onControllerSwiper); 5131 } 5132 return; 5133 } 5134 swiper.controller.control = swiper.params.controller.control; 5135 }); 5136 on('update', () => { 5137 removeSpline(); 5138 }); 5139 on('resize', () => { 5140 removeSpline(); 5141 }); 5142 on('observerUpdate', () => { 5143 removeSpline(); 5144 }); 5145 on('setTranslate', (_s, translate, byController) => { 5146 if (!swiper.controller.control || swiper.controller.control.destroyed) return; 5147 swiper.controller.setTranslate(translate, byController); 5148 }); 5149 on('setTransition', (_s, duration, byController) => { 5150 if (!swiper.controller.control || swiper.controller.control.destroyed) return; 5151 swiper.controller.setTransition(duration, byController); 5152 }); 5153 Object.assign(swiper.controller, { 5154 setTranslate, 5155 setTransition 5156 }); 5157} 5158 5159/***/ }), 5160
vendor: 5,825 bytes, lines 5161-5294
5161/***/ "./node_modules/swiper/modules/effect-cards/effect-cards.js": 5162/*!******************************************************************!*\ 5163 !*** ./node_modules/swiper/modules/effect-cards/effect-cards.js ***! 5164 \******************************************************************/ 5165/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 5166 5167__webpack_require__.r(__webpack_exports__); 5168/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5169/* harmony export */ "default": function() { return /* binding */ EffectCards; } 5170/* harmony export */ }); 5171/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js"); 5172/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 5173/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 5174/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js"); 5175/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 5176 5177 5178 5179 5180 5181function EffectCards({ 5182 swiper, 5183 extendParams, 5184 on 5185}) { 5186 extendParams({ 5187 cardsEffect: { 5188 slideShadows: true, 5189 rotate: true, 5190 perSlideRotate: 2, 5191 perSlideOffset: 8 5192 } 5193 }); 5194 const setTranslate = () => { 5195 const { 5196 slides, 5197 activeIndex 5198 } = swiper; 5199 const params = swiper.params.cardsEffect; 5200 const { 5201 startTranslate, 5202 isTouched 5203 } = swiper.touchEventsData; 5204 const currentTranslate = swiper.translate; 5205 for (let i = 0; i < slides.length; i += 1) { 5206 const slideEl = slides[i]; 5207 const slideProgress = slideEl.progress; 5208 const progress = Math.min(Math.max(slideProgress, -4), 4); 5209 let offset = slideEl.swiperSlideOffset; 5210 if (swiper.params.centeredSlides && !swiper.params.cssMode) { 5211 swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`; 5212 } 5213 if (swiper.params.centeredSlides && swiper.params.cssMode) { 5214 offset -= slides[0].swiperSlideOffset; 5215 } 5216 let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset; 5217 let tY = 0; 5218 const tZ = -100 * Math.abs(progress); 5219 let scale = 1; 5220 let rotate = -params.perSlideRotate * progress; 5221 let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75; 5222 const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i; 5223 const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate; 5224 const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate; 5225 if (isSwipeToNext || isSwipeToPrev) { 5226 const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5; 5227 rotate += -28 * progress * subProgress; 5228 scale += -0.5 * subProgress; 5229 tXAdd += 96 * subProgress; 5230 tY = `${-25 * subProgress * Math.abs(progress)}%`; 5231 } 5232 if (progress < 0) { 5233 // next 5234 tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`; 5235 } else if (progress > 0) { 5236 // prev 5237 tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`; 5238 } else { 5239 tX = `${tX}px`; 5240 } 5241 if (!swiper.isHorizontal()) { 5242 const prevY = tY; 5243 tY = tX; 5244 tX = prevY; 5245 } 5246 const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`; 5247 const transform = ` 5248 translate3d(${tX}, ${tY}, ${tZ}px) 5249 rotateZ(${params.rotate ? rotate : 0}deg) 5250 scale(${scaleString}) 5251 `; 5252 if (params.slideShadows) { 5253 // Set shadows 5254 let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); 5255 if (!shadowEl) { 5256 shadowEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, slideEl); 5257 } 5258 if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1); 5259 } 5260 slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; 5261 const targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, slideEl); 5262 targetEl.style.transform = transform; 5263 } 5264 }; 5265 const setTransition = duration => { 5266 const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_4__.getSlideTransformEl)(slideEl)); 5267 transformElements.forEach(el => { 5268 el.style.transitionDuration = `${duration}ms`; 5269 el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { 5270 shadowEl.style.transitionDuration = `${duration}ms`; 5271 }); 5272 }); 5273 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__["default"])({ 5274 swiper, 5275 duration, 5276 transformElements 5277 }); 5278 }; 5279 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 5280 effect: 'cards', 5281 swiper, 5282 on, 5283 setTranslate, 5284 setTransition, 5285 perspective: () => true, 5286 overwriteParams: () => ({ 5287 watchSlidesProgress: true, 5288 virtualTranslate: !swiper.params.cssMode 5289 }) 5290 }); 5291} 5292 5293/***/ }), 5294
vendor: 5,690 bytes, lines 5295-5410
5295/***/ "./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js": 5296/*!**************************************************************************!*\ 5297 !*** ./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js ***! 5298 \**************************************************************************/ 5299/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 5300 5301__webpack_require__.r(__webpack_exports__); 5302/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5303/* harmony export */ "default": function() { return /* binding */ EffectCoverflow; } 5304/* harmony export */ }); 5305/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js"); 5306/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 5307/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 5308/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 5309 5310 5311 5312 5313function EffectCoverflow({ 5314 swiper, 5315 extendParams, 5316 on 5317}) { 5318 extendParams({ 5319 coverflowEffect: { 5320 rotate: 50, 5321 stretch: 0, 5322 depth: 100, 5323 scale: 1, 5324 modifier: 1, 5325 slideShadows: true 5326 } 5327 }); 5328 const setTranslate = () => { 5329 const { 5330 width: swiperWidth, 5331 height: swiperHeight, 5332 slides, 5333 slidesSizesGrid 5334 } = swiper; 5335 const params = swiper.params.coverflowEffect; 5336 const isHorizontal = swiper.isHorizontal(); 5337 const transform = swiper.translate; 5338 const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2; 5339 const rotate = isHorizontal ? params.rotate : -params.rotate; 5340 const translate = params.depth; 5341 // Each slide offset from center 5342 for (let i = 0, length = slides.length; i < length; i += 1) { 5343 const slideEl = slides[i]; 5344 const slideSize = slidesSizesGrid[i]; 5345 const slideOffset = slideEl.swiperSlideOffset; 5346 const centerOffset = (center - slideOffset - slideSize / 2) / slideSize; 5347 const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier; 5348 let rotateY = isHorizontal ? rotate * offsetMultiplier : 0; 5349 let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; 5350 // var rotateZ = 0 5351 let translateZ = -translate * Math.abs(offsetMultiplier); 5352 let stretch = params.stretch; 5353 // Allow percentage to make a relative stretch for responsive sliders 5354 if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) { 5355 stretch = parseFloat(params.stretch) / 100 * slideSize; 5356 } 5357 let translateY = isHorizontal ? 0 : stretch * offsetMultiplier; 5358 let translateX = isHorizontal ? stretch * offsetMultiplier : 0; 5359 let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); 5360 5361 // Fix for ultra small values 5362 if (Math.abs(translateX) < 0.001) translateX = 0; 5363 if (Math.abs(translateY) < 0.001) translateY = 0; 5364 if (Math.abs(translateZ) < 0.001) translateZ = 0; 5365 if (Math.abs(rotateY) < 0.001) rotateY = 0; 5366 if (Math.abs(rotateX) < 0.001) rotateX = 0; 5367 if (Math.abs(scale) < 0.001) scale = 0; 5368 const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`; 5369 const targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, slideEl); 5370 targetEl.style.transform = slideTransform; 5371 slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; 5372 if (params.slideShadows) { 5373 // Set shadows 5374 let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); 5375 let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); 5376 if (!shadowBeforeEl) { 5377 shadowBeforeEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, slideEl, isHorizontal ? 'left' : 'top'); 5378 } 5379 if (!shadowAfterEl) { 5380 shadowAfterEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, slideEl, isHorizontal ? 'right' : 'bottom'); 5381 } 5382 if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; 5383 if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0; 5384 } 5385 } 5386 }; 5387 const setTransition = duration => { 5388 const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_3__.getSlideTransformEl)(slideEl)); 5389 transformElements.forEach(el => { 5390 el.style.transitionDuration = `${duration}ms`; 5391 el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { 5392 shadowEl.style.transitionDuration = `${duration}ms`; 5393 }); 5394 }); 5395 }; 5396 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 5397 effect: 'coverflow', 5398 swiper, 5399 on, 5400 setTranslate, 5401 setTransition, 5402 perspective: () => true, 5403 overwriteParams: () => ({ 5404 watchSlidesProgress: true 5405 }) 5406 }); 5407} 5408 5409/***/ }), 5410
vendor: 6,403 bytes, lines 5411-5568
5411/***/ "./node_modules/swiper/modules/effect-creative/effect-creative.js": 5412/*!************************************************************************!*\ 5413 !*** ./node_modules/swiper/modules/effect-creative/effect-creative.js ***! 5414 \************************************************************************/ 5415/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 5416 5417__webpack_require__.r(__webpack_exports__); 5418/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5419/* harmony export */ "default": function() { return /* binding */ EffectCreative; } 5420/* harmony export */ }); 5421/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js"); 5422/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 5423/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 5424/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js"); 5425/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 5426 5427 5428 5429 5430 5431function EffectCreative({ 5432 swiper, 5433 extendParams, 5434 on 5435}) { 5436 extendParams({ 5437 creativeEffect: { 5438 limitProgress: 1, 5439 shadowPerProgress: false, 5440 progressMultiplier: 1, 5441 perspective: true, 5442 prev: { 5443 translate: [0, 0, 0], 5444 rotate: [0, 0, 0], 5445 opacity: 1, 5446 scale: 1 5447 }, 5448 next: { 5449 translate: [0, 0, 0], 5450 rotate: [0, 0, 0], 5451 opacity: 1, 5452 scale: 1 5453 } 5454 } 5455 }); 5456 const getTranslateValue = value => { 5457 if (typeof value === 'string') return value; 5458 return `${value}px`; 5459 }; 5460 const setTranslate = () => { 5461 const { 5462 slides, 5463 wrapperEl, 5464 slidesSizesGrid 5465 } = swiper; 5466 const params = swiper.params.creativeEffect; 5467 const { 5468 progressMultiplier: multiplier 5469 } = params; 5470 const isCenteredSlides = swiper.params.centeredSlides; 5471 if (isCenteredSlides) { 5472 const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0; 5473 wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`; 5474 } 5475 for (let i = 0; i < slides.length; i += 1) { 5476 const slideEl = slides[i]; 5477 const slideProgress = slideEl.progress; 5478 const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress); 5479 let originalProgress = progress; 5480 if (!isCenteredSlides) { 5481 originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress); 5482 } 5483 const offset = slideEl.swiperSlideOffset; 5484 const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0]; 5485 const r = [0, 0, 0]; 5486 let custom = false; 5487 if (!swiper.isHorizontal()) { 5488 t[1] = t[0]; 5489 t[0] = 0; 5490 } 5491 let data = { 5492 translate: [0, 0, 0], 5493 rotate: [0, 0, 0], 5494 scale: 1, 5495 opacity: 1 5496 }; 5497 if (progress < 0) { 5498 data = params.next; 5499 custom = true; 5500 } else if (progress > 0) { 5501 data = params.prev; 5502 custom = true; 5503 } 5504 // set translate 5505 t.forEach((value, index) => { 5506 t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`; 5507 }); 5508 // set rotates 5509 r.forEach((value, index) => { 5510 r[index] = data.rotate[index] * Math.abs(progress * multiplier); 5511 }); 5512 slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; 5513 const translateString = t.join(', '); 5514 const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`; 5515 const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`; 5516 const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier; 5517 const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; 5518 5519 // Set shadows 5520 if (custom && data.shadow || !custom) { 5521 let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); 5522 if (!shadowEl && data.shadow) { 5523 shadowEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, slideEl); 5524 } 5525 if (shadowEl) { 5526 const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress; 5527 shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1); 5528 } 5529 } 5530 const targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, slideEl); 5531 targetEl.style.transform = transform; 5532 targetEl.style.opacity = opacityString; 5533 if (data.origin) { 5534 targetEl.style.transformOrigin = data.origin; 5535 } 5536 } 5537 }; 5538 const setTransition = duration => { 5539 const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_4__.getSlideTransformEl)(slideEl)); 5540 transformElements.forEach(el => { 5541 el.style.transitionDuration = `${duration}ms`; 5542 el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { 5543 shadowEl.style.transitionDuration = `${duration}ms`; 5544 }); 5545 }); 5546 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__["default"])({ 5547 swiper, 5548 duration, 5549 transformElements, 5550 allSlides: true 5551 }); 5552 }; 5553 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 5554 effect: 'creative', 5555 swiper, 5556 on, 5557 setTranslate, 5558 setTransition, 5559 perspective: () => swiper.params.creativeEffect.perspective, 5560 overwriteParams: () => ({ 5561 watchSlidesProgress: true, 5562 virtualTranslate: !swiper.params.cssMode 5563 }) 5564 }); 5565} 5566 5567/***/ }), 5568
vendor: 7,519 bytes, lines 5569-5752
5569/***/ "./node_modules/swiper/modules/effect-cube/effect-cube.js": 5570/*!****************************************************************!*\ 5571 !*** ./node_modules/swiper/modules/effect-cube/effect-cube.js ***! 5572 \****************************************************************/ 5573/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 5574 5575__webpack_require__.r(__webpack_exports__); 5576/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5577/* harmony export */ "default": function() { return /* binding */ EffectCube; } 5578/* harmony export */ }); 5579/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 5580/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 5581 5582 5583function EffectCube({ 5584 swiper, 5585 extendParams, 5586 on 5587}) { 5588 extendParams({ 5589 cubeEffect: { 5590 slideShadows: true, 5591 shadow: true, 5592 shadowOffset: 20, 5593 shadowScale: 0.94 5594 } 5595 }); 5596 const createSlideShadows = (slideEl, progress, isHorizontal) => { 5597 let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); 5598 let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); 5599 if (!shadowBefore) { 5600 shadowBefore = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', `swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`); 5601 slideEl.append(shadowBefore); 5602 } 5603 if (!shadowAfter) { 5604 shadowAfter = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', `swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`); 5605 slideEl.append(shadowAfter); 5606 } 5607 if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); 5608 if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); 5609 }; 5610 const recreateShadows = () => { 5611 // create new ones 5612 const isHorizontal = swiper.isHorizontal(); 5613 swiper.slides.forEach(slideEl => { 5614 const progress = Math.max(Math.min(slideEl.progress, 1), -1); 5615 createSlideShadows(slideEl, progress, isHorizontal); 5616 }); 5617 }; 5618 const setTranslate = () => { 5619 const { 5620 el, 5621 wrapperEl, 5622 slides, 5623 width: swiperWidth, 5624 height: swiperHeight, 5625 rtlTranslate: rtl, 5626 size: swiperSize, 5627 browser 5628 } = swiper; 5629 const params = swiper.params.cubeEffect; 5630 const isHorizontal = swiper.isHorizontal(); 5631 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 5632 let wrapperRotate = 0; 5633 let cubeShadowEl; 5634 if (params.shadow) { 5635 if (isHorizontal) { 5636 cubeShadowEl = swiper.slidesEl.querySelector('.swiper-cube-shadow'); 5637 if (!cubeShadowEl) { 5638 cubeShadowEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', 'swiper-cube-shadow'); 5639 swiper.slidesEl.append(cubeShadowEl); 5640 } 5641 cubeShadowEl.style.height = `${swiperWidth}px`; 5642 } else { 5643 cubeShadowEl = el.querySelector('.swiper-cube-shadow'); 5644 if (!cubeShadowEl) { 5645 cubeShadowEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', 'swiper-cube-shadow'); 5646 el.append(cubeShadowEl); 5647 } 5648 } 5649 } 5650 for (let i = 0; i < slides.length; i += 1) { 5651 const slideEl = slides[i]; 5652 let slideIndex = i; 5653 if (isVirtual) { 5654 slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10); 5655 } 5656 let slideAngle = slideIndex * 90; 5657 let round = Math.floor(slideAngle / 360); 5658 if (rtl) { 5659 slideAngle = -slideAngle; 5660 round = Math.floor(-slideAngle / 360); 5661 } 5662 const progress = Math.max(Math.min(slideEl.progress, 1), -1); 5663 let tx = 0; 5664 let ty = 0; 5665 let tz = 0; 5666 if (slideIndex % 4 === 0) { 5667 tx = -round * 4 * swiperSize; 5668 tz = 0; 5669 } else if ((slideIndex - 1) % 4 === 0) { 5670 tx = 0; 5671 tz = -round * 4 * swiperSize; 5672 } else if ((slideIndex - 2) % 4 === 0) { 5673 tx = swiperSize + round * 4 * swiperSize; 5674 tz = swiperSize; 5675 } else if ((slideIndex - 3) % 4 === 0) { 5676 tx = -swiperSize; 5677 tz = 3 * swiperSize + swiperSize * 4 * round; 5678 } 5679 if (rtl) { 5680 tx = -tx; 5681 } 5682 if (!isHorizontal) { 5683 ty = tx; 5684 tx = 0; 5685 } 5686 const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`; 5687 if (progress <= 1 && progress > -1) { 5688 wrapperRotate = slideIndex * 90 + progress * 90; 5689 if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90; 5690 } 5691 slideEl.style.transform = transform; 5692 if (params.slideShadows) { 5693 createSlideShadows(slideEl, progress, isHorizontal); 5694 } 5695 } 5696 wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`; 5697 wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`; 5698 if (params.shadow) { 5699 if (isHorizontal) { 5700 cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`; 5701 } else { 5702 const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90; 5703 const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2); 5704 const scale1 = params.shadowScale; 5705 const scale2 = params.shadowScale / multiplier; 5706 const offset = params.shadowOffset; 5707 cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`; 5708 } 5709 } 5710 const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0; 5711 wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`; 5712 wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`); 5713 }; 5714 const setTransition = duration => { 5715 const { 5716 el, 5717 slides 5718 } = swiper; 5719 slides.forEach(slideEl => { 5720 slideEl.style.transitionDuration = `${duration}ms`; 5721 slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => { 5722 subEl.style.transitionDuration = `${duration}ms`; 5723 }); 5724 }); 5725 if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { 5726 const shadowEl = el.querySelector('.swiper-cube-shadow'); 5727 if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`; 5728 } 5729 }; 5730 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 5731 effect: 'cube', 5732 swiper, 5733 on, 5734 setTranslate, 5735 setTransition, 5736 recreateShadows, 5737 getEffectParams: () => swiper.params.cubeEffect, 5738 perspective: () => true, 5739 overwriteParams: () => ({ 5740 slidesPerView: 1, 5741 slidesPerGroup: 1, 5742 watchSlidesProgress: true, 5743 resistanceRatio: 0, 5744 spaceBetween: 0, 5745 centeredSlides: false, 5746 virtualTranslate: true 5747 }) 5748 }); 5749} 5750 5751/***/ }), 5752
vendor: 3,143 bytes, lines 5753-5831
5753/***/ "./node_modules/swiper/modules/effect-fade/effect-fade.js": 5754/*!****************************************************************!*\ 5755 !*** ./node_modules/swiper/modules/effect-fade/effect-fade.js ***! 5756 \****************************************************************/ 5757/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 5758 5759__webpack_require__.r(__webpack_exports__); 5760/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5761/* harmony export */ "default": function() { return /* binding */ EffectFade; } 5762/* harmony export */ }); 5763/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 5764/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 5765/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js"); 5766/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 5767 5768 5769 5770 5771function EffectFade({ 5772 swiper, 5773 extendParams, 5774 on 5775}) { 5776 extendParams({ 5777 fadeEffect: { 5778 crossFade: false 5779 } 5780 }); 5781 const setTranslate = () => { 5782 const { 5783 slides 5784 } = swiper; 5785 const params = swiper.params.fadeEffect; 5786 for (let i = 0; i < slides.length; i += 1) { 5787 const slideEl = swiper.slides[i]; 5788 const offset = slideEl.swiperSlideOffset; 5789 let tx = -offset; 5790 if (!swiper.params.virtualTranslate) tx -= swiper.translate; 5791 let ty = 0; 5792 if (!swiper.isHorizontal()) { 5793 ty = tx; 5794 tx = 0; 5795 } 5796 const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0); 5797 const targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params, slideEl); 5798 targetEl.style.opacity = slideOpacity; 5799 targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`; 5800 } 5801 }; 5802 const setTransition = duration => { 5803 const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_3__.getSlideTransformEl)(slideEl)); 5804 transformElements.forEach(el => { 5805 el.style.transitionDuration = `${duration}ms`; 5806 }); 5807 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_2__["default"])({ 5808 swiper, 5809 duration, 5810 transformElements, 5811 allSlides: true 5812 }); 5813 }; 5814 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 5815 effect: 'fade', 5816 swiper, 5817 on, 5818 setTranslate, 5819 setTransition, 5820 overwriteParams: () => ({ 5821 slidesPerView: 1, 5822 slidesPerGroup: 1, 5823 watchSlidesProgress: true, 5824 spaceBetween: 0, 5825 virtualTranslate: !swiper.params.cssMode 5826 }) 5827 }); 5828} 5829 5830/***/ }), 5831
vendor: 5,325 bytes, lines 5832-5955
5832/***/ "./node_modules/swiper/modules/effect-flip/effect-flip.js": 5833/*!****************************************************************!*\ 5834 !*** ./node_modules/swiper/modules/effect-flip/effect-flip.js ***! 5835 \****************************************************************/ 5836/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 5837 5838__webpack_require__.r(__webpack_exports__); 5839/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5840/* harmony export */ "default": function() { return /* binding */ EffectFlip; } 5841/* harmony export */ }); 5842/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js"); 5843/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 5844/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 5845/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js"); 5846/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 5847 5848 5849 5850 5851 5852function EffectFlip({ 5853 swiper, 5854 extendParams, 5855 on 5856}) { 5857 extendParams({ 5858 flipEffect: { 5859 slideShadows: true, 5860 limitRotation: true 5861 } 5862 }); 5863 const createSlideShadows = (slideEl, progress, params) => { 5864 let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); 5865 let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); 5866 if (!shadowBefore) { 5867 shadowBefore = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, slideEl, swiper.isHorizontal() ? 'left' : 'top'); 5868 } 5869 if (!shadowAfter) { 5870 shadowAfter = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, slideEl, swiper.isHorizontal() ? 'right' : 'bottom'); 5871 } 5872 if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); 5873 if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); 5874 }; 5875 const recreateShadows = () => { 5876 // Set shadows 5877 const params = swiper.params.flipEffect; 5878 swiper.slides.forEach(slideEl => { 5879 let progress = slideEl.progress; 5880 if (swiper.params.flipEffect.limitRotation) { 5881 progress = Math.max(Math.min(slideEl.progress, 1), -1); 5882 } 5883 createSlideShadows(slideEl, progress, params); 5884 }); 5885 }; 5886 const setTranslate = () => { 5887 const { 5888 slides, 5889 rtlTranslate: rtl 5890 } = swiper; 5891 const params = swiper.params.flipEffect; 5892 for (let i = 0; i < slides.length; i += 1) { 5893 const slideEl = slides[i]; 5894 let progress = slideEl.progress; 5895 if (swiper.params.flipEffect.limitRotation) { 5896 progress = Math.max(Math.min(slideEl.progress, 1), -1); 5897 } 5898 const offset = slideEl.swiperSlideOffset; 5899 const rotate = -180 * progress; 5900 let rotateY = rotate; 5901 let rotateX = 0; 5902 let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset; 5903 let ty = 0; 5904 if (!swiper.isHorizontal()) { 5905 ty = tx; 5906 tx = 0; 5907 rotateX = -rotateY; 5908 rotateY = 0; 5909 } else if (rtl) { 5910 rotateY = -rotateY; 5911 } 5912 slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length; 5913 if (params.slideShadows) { 5914 createSlideShadows(slideEl, progress, params); 5915 } 5916 const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; 5917 const targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, slideEl); 5918 targetEl.style.transform = transform; 5919 } 5920 }; 5921 const setTransition = duration => { 5922 const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_4__.getSlideTransformEl)(slideEl)); 5923 transformElements.forEach(el => { 5924 el.style.transitionDuration = `${duration}ms`; 5925 el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { 5926 shadowEl.style.transitionDuration = `${duration}ms`; 5927 }); 5928 }); 5929 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__["default"])({ 5930 swiper, 5931 duration, 5932 transformElements 5933 }); 5934 }; 5935 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 5936 effect: 'flip', 5937 swiper, 5938 on, 5939 setTranslate, 5940 setTransition, 5941 recreateShadows, 5942 getEffectParams: () => swiper.params.flipEffect, 5943 perspective: () => true, 5944 overwriteParams: () => ({ 5945 slidesPerView: 1, 5946 slidesPerGroup: 1, 5947 watchSlidesProgress: true, 5948 spaceBetween: 0, 5949 virtualTranslate: !swiper.params.cssMode 5950 }) 5951 }); 5952} 5953 5954/***/ }), 5955
vendor: 9,125 bytes, lines 5956-6197
5956/***/ "./node_modules/swiper/modules/free-mode/free-mode.js": 5957/*!************************************************************!*\ 5958 !*** ./node_modules/swiper/modules/free-mode/free-mode.js ***! 5959 \************************************************************/ 5960/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 5961 5962__webpack_require__.r(__webpack_exports__); 5963/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5964/* harmony export */ "default": function() { return /* binding */ freeMode; } 5965/* harmony export */ }); 5966/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 5967 5968function freeMode({ 5969 swiper, 5970 extendParams, 5971 emit, 5972 once 5973}) { 5974 extendParams({ 5975 freeMode: { 5976 enabled: false, 5977 momentum: true, 5978 momentumRatio: 1, 5979 momentumBounce: true, 5980 momentumBounceRatio: 1, 5981 momentumVelocityRatio: 1, 5982 sticky: false, 5983 minimumVelocity: 0.02 5984 } 5985 }); 5986 function onTouchStart() { 5987 const translate = swiper.getTranslate(); 5988 swiper.setTranslate(translate); 5989 swiper.setTransition(0); 5990 swiper.touchEventsData.velocities.length = 0; 5991 swiper.freeMode.onTouchEnd({ 5992 currentPos: swiper.rtl ? swiper.translate : -swiper.translate 5993 }); 5994 } 5995 function onTouchMove() { 5996 const { 5997 touchEventsData: data, 5998 touches 5999 } = swiper; 6000 // Velocity 6001 if (data.velocities.length === 0) { 6002 data.velocities.push({ 6003 position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], 6004 time: data.touchStartTime 6005 }); 6006 } 6007 data.velocities.push({ 6008 position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], 6009 time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)() 6010 }); 6011 } 6012 function onTouchEnd({ 6013 currentPos 6014 }) { 6015 const { 6016 params, 6017 wrapperEl, 6018 rtlTranslate: rtl, 6019 snapGrid, 6020 touchEventsData: data 6021 } = swiper; 6022 // Time diff 6023 const touchEndTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)(); 6024 const timeDiff = touchEndTime - data.touchStartTime; 6025 if (currentPos < -swiper.minTranslate()) { 6026 swiper.slideTo(swiper.activeIndex); 6027 return; 6028 } 6029 if (currentPos > -swiper.maxTranslate()) { 6030 if (swiper.slides.length < snapGrid.length) { 6031 swiper.slideTo(snapGrid.length - 1); 6032 } else { 6033 swiper.slideTo(swiper.slides.length - 1); 6034 } 6035 return; 6036 } 6037 if (params.freeMode.momentum) { 6038 if (data.velocities.length > 1) { 6039 const lastMoveEvent = data.velocities.pop(); 6040 const velocityEvent = data.velocities.pop(); 6041 const distance = lastMoveEvent.position - velocityEvent.position; 6042 const time = lastMoveEvent.time - velocityEvent.time; 6043 swiper.velocity = distance / time; 6044 swiper.velocity /= 2; 6045 if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) { 6046 swiper.velocity = 0; 6047 } 6048 // this implies that the user stopped moving a finger then released. 6049 // There would be no events with distance zero, so the last event is stale. 6050 if (time > 150 || (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)() - lastMoveEvent.time > 300) { 6051 swiper.velocity = 0; 6052 } 6053 } else { 6054 swiper.velocity = 0; 6055 } 6056 swiper.velocity *= params.freeMode.momentumVelocityRatio; 6057 data.velocities.length = 0; 6058 let momentumDuration = 1000 * params.freeMode.momentumRatio; 6059 const momentumDistance = swiper.velocity * momentumDuration; 6060 let newPosition = swiper.translate + momentumDistance; 6061 if (rtl) newPosition = -newPosition; 6062 let doBounce = false; 6063 let afterBouncePosition; 6064 const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio; 6065 let needsLoopFix; 6066 if (newPosition < swiper.maxTranslate()) { 6067 if (params.freeMode.momentumBounce) { 6068 if (newPosition + swiper.maxTranslate() < -bounceAmount) { 6069 newPosition = swiper.maxTranslate() - bounceAmount; 6070 } 6071 afterBouncePosition = swiper.maxTranslate(); 6072 doBounce = true; 6073 data.allowMomentumBounce = true; 6074 } else { 6075 newPosition = swiper.maxTranslate(); 6076 } 6077 if (params.loop && params.centeredSlides) needsLoopFix = true; 6078 } else if (newPosition > swiper.minTranslate()) { 6079 if (params.freeMode.momentumBounce) { 6080 if (newPosition - swiper.minTranslate() > bounceAmount) { 6081 newPosition = swiper.minTranslate() + bounceAmount; 6082 } 6083 afterBouncePosition = swiper.minTranslate(); 6084 doBounce = true; 6085 data.allowMomentumBounce = true; 6086 } else { 6087 newPosition = swiper.minTranslate(); 6088 } 6089 if (params.loop && params.centeredSlides) needsLoopFix = true; 6090 } else if (params.freeMode.sticky) { 6091 let nextSlide; 6092 for (let j = 0; j < snapGrid.length; j += 1) { 6093 if (snapGrid[j] > -newPosition) { 6094 nextSlide = j; 6095 break; 6096 } 6097 } 6098 if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { 6099 newPosition = snapGrid[nextSlide]; 6100 } else { 6101 newPosition = snapGrid[nextSlide - 1]; 6102 } 6103 newPosition = -newPosition; 6104 } 6105 if (needsLoopFix) { 6106 once('transitionEnd', () => { 6107 swiper.loopFix(); 6108 }); 6109 } 6110 // Fix duration 6111 if (swiper.velocity !== 0) { 6112 if (rtl) { 6113 momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); 6114 } else { 6115 momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); 6116 } 6117 if (params.freeMode.sticky) { 6118 // If freeMode.sticky is active and the user ends a swipe with a slow-velocity 6119 // event, then durations can be 20+ seconds to slide one (or zero!) slides. 6120 // It's easy to see this when simulating touch with mouse events. To fix this, 6121 // limit single-slide swipes to the default slide duration. This also has the 6122 // nice side effect of matching slide speed if the user stopped moving before 6123 // lifting finger or mouse vs. moving slowly before lifting the finger/mouse. 6124 // For faster swipes, also apply limits (albeit higher ones). 6125 const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate); 6126 const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex]; 6127 if (moveDistance < currentSlideSize) { 6128 momentumDuration = params.speed; 6129 } else if (moveDistance < 2 * currentSlideSize) { 6130 momentumDuration = params.speed * 1.5; 6131 } else { 6132 momentumDuration = params.speed * 2.5; 6133 } 6134 } 6135 } else if (params.freeMode.sticky) { 6136 swiper.slideToClosest(); 6137 return; 6138 } 6139 if (params.freeMode.momentumBounce && doBounce) { 6140 swiper.updateProgress(afterBouncePosition); 6141 swiper.setTransition(momentumDuration); 6142 swiper.setTranslate(newPosition); 6143 swiper.transitionStart(true, swiper.swipeDirection); 6144 swiper.animating = true; 6145 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementTransitionEnd)(wrapperEl, () => { 6146 if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return; 6147 emit('momentumBounce'); 6148 swiper.setTransition(params.speed); 6149 setTimeout(() => { 6150 swiper.setTranslate(afterBouncePosition); 6151 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementTransitionEnd)(wrapperEl, () => { 6152 if (!swiper || swiper.destroyed) return; 6153 swiper.transitionEnd(); 6154 }); 6155 }, 0); 6156 }); 6157 } else if (swiper.velocity) { 6158 emit('_freeModeNoMomentumRelease'); 6159 swiper.updateProgress(newPosition); 6160 swiper.setTransition(momentumDuration); 6161 swiper.setTranslate(newPosition); 6162 swiper.transitionStart(true, swiper.swipeDirection); 6163 if (!swiper.animating) { 6164 swiper.animating = true; 6165 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementTransitionEnd)(wrapperEl, () => { 6166 if (!swiper || swiper.destroyed) return; 6167 swiper.transitionEnd(); 6168 }); 6169 } 6170 } else { 6171 swiper.updateProgress(newPosition); 6172 } 6173 swiper.updateActiveIndex(); 6174 swiper.updateSlidesClasses(); 6175 } else if (params.freeMode.sticky) { 6176 swiper.slideToClosest(); 6177 return; 6178 } else if (params.freeMode) { 6179 emit('_freeModeNoMomentumRelease'); 6180 } 6181 if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) { 6182 swiper.updateProgress(); 6183 swiper.updateActiveIndex(); 6184 swiper.updateSlidesClasses(); 6185 } 6186 } 6187 Object.assign(swiper, { 6188 freeMode: { 6189 onTouchStart, 6190 onTouchMove, 6191 onTouchEnd 6192 } 6193 }); 6194} 6195 6196/***/ }), 6197
vendor: 4,165 bytes, lines 6198-6317
6198/***/ "./node_modules/swiper/modules/grid/grid.js": 6199/*!**************************************************!*\ 6200 !*** ./node_modules/swiper/modules/grid/grid.js ***! 6201 \**************************************************/ 6202/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6203 6204__webpack_require__.r(__webpack_exports__); 6205/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6206/* harmony export */ "default": function() { return /* binding */ Grid; } 6207/* harmony export */ }); 6208function Grid({ 6209 swiper, 6210 extendParams 6211}) { 6212 extendParams({ 6213 grid: { 6214 rows: 1, 6215 fill: 'column' 6216 } 6217 }); 6218 let slidesNumberEvenToRows; 6219 let slidesPerRow; 6220 let numFullColumns; 6221 const getSpaceBetween = () => { 6222 let spaceBetween = swiper.params.spaceBetween; 6223 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 6224 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; 6225 } else if (typeof spaceBetween === 'string') { 6226 spaceBetween = parseFloat(spaceBetween); 6227 } 6228 return spaceBetween; 6229 }; 6230 const initSlides = slidesLength => { 6231 const { 6232 slidesPerView 6233 } = swiper.params; 6234 const { 6235 rows, 6236 fill 6237 } = swiper.params.grid; 6238 slidesPerRow = slidesNumberEvenToRows / rows; 6239 numFullColumns = Math.floor(slidesLength / rows); 6240 if (Math.floor(slidesLength / rows) === slidesLength / rows) { 6241 slidesNumberEvenToRows = slidesLength; 6242 } else { 6243 slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows; 6244 } 6245 if (slidesPerView !== 'auto' && fill === 'row') { 6246 slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows); 6247 } 6248 }; 6249 const updateSlide = (i, slide, slidesLength, getDirectionLabel) => { 6250 const { 6251 slidesPerGroup 6252 } = swiper.params; 6253 const spaceBetween = getSpaceBetween(); 6254 const { 6255 rows, 6256 fill 6257 } = swiper.params.grid; 6258 // Set slides order 6259 let newSlideOrderIndex; 6260 let column; 6261 let row; 6262 if (fill === 'row' && slidesPerGroup > 1) { 6263 const groupIndex = Math.floor(i / (slidesPerGroup * rows)); 6264 const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex; 6265 const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup); 6266 row = Math.floor(slideIndexInGroup / columnsInGroup); 6267 column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup; 6268 newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows; 6269 slide.style.order = newSlideOrderIndex; 6270 } else if (fill === 'column') { 6271 column = Math.floor(i / rows); 6272 row = i - column * rows; 6273 if (column > numFullColumns || column === numFullColumns && row === rows - 1) { 6274 row += 1; 6275 if (row >= rows) { 6276 row = 0; 6277 column += 1; 6278 } 6279 } 6280 } else { 6281 row = Math.floor(i / slidesPerRow); 6282 column = i - row * slidesPerRow; 6283 } 6284 slide.style[getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : ''; 6285 }; 6286 const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => { 6287 const { 6288 centeredSlides, 6289 roundLengths 6290 } = swiper.params; 6291 const spaceBetween = getSpaceBetween(); 6292 const { 6293 rows 6294 } = swiper.params.grid; 6295 swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows; 6296 swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween; 6297 swiper.wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; 6298 if (centeredSlides) { 6299 const newSlidesGrid = []; 6300 for (let i = 0; i < snapGrid.length; i += 1) { 6301 let slidesGridItem = snapGrid[i]; 6302 if (roundLengths) slidesGridItem = Math.floor(slidesGridItem); 6303 if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem); 6304 } 6305 snapGrid.splice(0, snapGrid.length); 6306 snapGrid.push(...newSlidesGrid); 6307 } 6308 }; 6309 swiper.grid = { 6310 initSlides, 6311 updateSlide, 6312 updateWrapperSize 6313 }; 6314} 6315 6316/***/ }), 6317
vendor: 4,234 bytes, lines 6318-6421
6318/***/ "./node_modules/swiper/modules/hash-navigation/hash-navigation.js": 6319/*!************************************************************************!*\ 6320 !*** ./node_modules/swiper/modules/hash-navigation/hash-navigation.js ***! 6321 \************************************************************************/ 6322/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6323 6324__webpack_require__.r(__webpack_exports__); 6325/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6326/* harmony export */ "default": function() { return /* binding */ HashNavigation; } 6327/* harmony export */ }); 6328/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 6329/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 6330 6331 6332function HashNavigation({ 6333 swiper, 6334 extendParams, 6335 emit, 6336 on 6337}) { 6338 let initialized = false; 6339 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 6340 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 6341 extendParams({ 6342 hashNavigation: { 6343 enabled: false, 6344 replaceState: false, 6345 watchState: false, 6346 getSlideIndex(_s, hash) { 6347 if (swiper.virtual && swiper.params.virtual.enabled) { 6348 const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0]; 6349 if (!slideWithHash) return 0; 6350 const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10); 6351 return index; 6352 } 6353 return swiper.getSlideIndex((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash="${hash}"], swiper-slide[data-hash="${hash}"]`)[0]); 6354 } 6355 } 6356 }); 6357 const onHashChange = () => { 6358 emit('hashChange'); 6359 const newHash = document.location.hash.replace('#', ''); 6360 const activeSlideEl = swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`); 6361 const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : ''; 6362 if (newHash !== activeSlideHash) { 6363 const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash); 6364 if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return; 6365 swiper.slideTo(newIndex); 6366 } 6367 }; 6368 const setHash = () => { 6369 if (!initialized || !swiper.params.hashNavigation.enabled) return; 6370 const activeSlideEl = swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`); 6371 const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : ''; 6372 if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) { 6373 window.history.replaceState(null, null, `#${activeSlideHash}` || ''); 6374 emit('hashSet'); 6375 } else { 6376 document.location.hash = activeSlideHash || ''; 6377 emit('hashSet'); 6378 } 6379 }; 6380 const init = () => { 6381 if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return; 6382 initialized = true; 6383 const hash = document.location.hash.replace('#', ''); 6384 if (hash) { 6385 const speed = 0; 6386 const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash); 6387 swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true); 6388 } 6389 if (swiper.params.hashNavigation.watchState) { 6390 window.addEventListener('hashchange', onHashChange); 6391 } 6392 }; 6393 const destroy = () => { 6394 if (swiper.params.hashNavigation.watchState) { 6395 window.removeEventListener('hashchange', onHashChange); 6396 } 6397 }; 6398 on('init', () => { 6399 if (swiper.params.hashNavigation.enabled) { 6400 init(); 6401 } 6402 }); 6403 on('destroy', () => { 6404 if (swiper.params.hashNavigation.enabled) { 6405 destroy(); 6406 } 6407 }); 6408 on('transitionEnd _freeModeNoMomentumRelease', () => { 6409 if (initialized) { 6410 setHash(); 6411 } 6412 }); 6413 on('slideChange', () => { 6414 if (initialized && swiper.params.cssMode) { 6415 setHash(); 6416 } 6417 }); 6418} 6419 6420/***/ }), 6421
vendor: 4,935 bytes, lines 6422-6573
6422/***/ "./node_modules/swiper/modules/history/history.js": 6423/*!********************************************************!*\ 6424 !*** ./node_modules/swiper/modules/history/history.js ***! 6425 \********************************************************/ 6426/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6427 6428__webpack_require__.r(__webpack_exports__); 6429/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6430/* harmony export */ "default": function() { return /* binding */ History; } 6431/* harmony export */ }); 6432/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 6433 6434function History({ 6435 swiper, 6436 extendParams, 6437 on 6438}) { 6439 extendParams({ 6440 history: { 6441 enabled: false, 6442 root: '', 6443 replaceState: false, 6444 key: 'slides', 6445 keepQuery: false 6446 } 6447 }); 6448 let initialized = false; 6449 let paths = {}; 6450 const slugify = text => { 6451 return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, ''); 6452 }; 6453 const getPathValues = urlOverride => { 6454 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 6455 let location; 6456 if (urlOverride) { 6457 location = new URL(urlOverride); 6458 } else { 6459 location = window.location; 6460 } 6461 const pathArray = location.pathname.slice(1).split('/').filter(part => part !== ''); 6462 const total = pathArray.length; 6463 const key = pathArray[total - 2]; 6464 const value = pathArray[total - 1]; 6465 return { 6466 key, 6467 value 6468 }; 6469 }; 6470 const setHistory = (key, index) => { 6471 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 6472 if (!initialized || !swiper.params.history.enabled) return; 6473 let location; 6474 if (swiper.params.url) { 6475 location = new URL(swiper.params.url); 6476 } else { 6477 location = window.location; 6478 } 6479 const slide = swiper.slides[index]; 6480 let value = slugify(slide.getAttribute('data-history')); 6481 if (swiper.params.history.root.length > 0) { 6482 let root = swiper.params.history.root; 6483 if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1); 6484 value = `${root}/${key ? `${key}/` : ''}${value}`; 6485 } else if (!location.pathname.includes(key)) { 6486 value = `${key ? `${key}/` : ''}${value}`; 6487 } 6488 if (swiper.params.history.keepQuery) { 6489 value += location.search; 6490 } 6491 const currentState = window.history.state; 6492 if (currentState && currentState.value === value) { 6493 return; 6494 } 6495 if (swiper.params.history.replaceState) { 6496 window.history.replaceState({ 6497 value 6498 }, null, value); 6499 } else { 6500 window.history.pushState({ 6501 value 6502 }, null, value); 6503 } 6504 }; 6505 const scrollToSlide = (speed, value, runCallbacks) => { 6506 if (value) { 6507 for (let i = 0, length = swiper.slides.length; i < length; i += 1) { 6508 const slide = swiper.slides[i]; 6509 const slideHistory = slugify(slide.getAttribute('data-history')); 6510 if (slideHistory === value) { 6511 const index = swiper.getSlideIndex(slide); 6512 swiper.slideTo(index, speed, runCallbacks); 6513 } 6514 } 6515 } else { 6516 swiper.slideTo(0, speed, runCallbacks); 6517 } 6518 }; 6519 const setHistoryPopState = () => { 6520 paths = getPathValues(swiper.params.url); 6521 scrollToSlide(swiper.params.speed, paths.value, false); 6522 }; 6523 const init = () => { 6524 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 6525 if (!swiper.params.history) return; 6526 if (!window.history || !window.history.pushState) { 6527 swiper.params.history.enabled = false; 6528 swiper.params.hashNavigation.enabled = true; 6529 return; 6530 } 6531 initialized = true; 6532 paths = getPathValues(swiper.params.url); 6533 if (!paths.key && !paths.value) { 6534 if (!swiper.params.history.replaceState) { 6535 window.addEventListener('popstate', setHistoryPopState); 6536 } 6537 return; 6538 } 6539 scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit); 6540 if (!swiper.params.history.replaceState) { 6541 window.addEventListener('popstate', setHistoryPopState); 6542 } 6543 }; 6544 const destroy = () => { 6545 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 6546 if (!swiper.params.history.replaceState) { 6547 window.removeEventListener('popstate', setHistoryPopState); 6548 } 6549 }; 6550 on('init', () => { 6551 if (swiper.params.history.enabled) { 6552 init(); 6553 } 6554 }); 6555 on('destroy', () => { 6556 if (swiper.params.history.enabled) { 6557 destroy(); 6558 } 6559 }); 6560 on('transitionEnd _freeModeNoMomentumRelease', () => { 6561 if (initialized) { 6562 setHistory(swiper.params.history.key, swiper.activeIndex); 6563 } 6564 }); 6565 on('slideChange', () => { 6566 if (initialized && swiper.params.cssMode) { 6567 setHistory(swiper.params.history.key, swiper.activeIndex); 6568 } 6569 }); 6570} 6571 6572/***/ }), 6573
vendor: 5,261 bytes, lines 6574-6701
6574/***/ "./node_modules/swiper/modules/keyboard/keyboard.js": 6575/*!**********************************************************!*\ 6576 !*** ./node_modules/swiper/modules/keyboard/keyboard.js ***! 6577 \**********************************************************/ 6578/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6579 6580__webpack_require__.r(__webpack_exports__); 6581/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6582/* harmony export */ "default": function() { return /* binding */ Keyboard; } 6583/* harmony export */ }); 6584/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 6585/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 6586/* eslint-disable consistent-return */ 6587 6588 6589function Keyboard({ 6590 swiper, 6591 extendParams, 6592 on, 6593 emit 6594}) { 6595 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 6596 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 6597 swiper.keyboard = { 6598 enabled: false 6599 }; 6600 extendParams({ 6601 keyboard: { 6602 enabled: false, 6603 onlyInViewport: true, 6604 pageUpDown: true 6605 } 6606 }); 6607 function handle(event) { 6608 if (!swiper.enabled) return; 6609 const { 6610 rtlTranslate: rtl 6611 } = swiper; 6612 let e = event; 6613 if (e.originalEvent) e = e.originalEvent; // jquery fix 6614 const kc = e.keyCode || e.charCode; 6615 const pageUpDown = swiper.params.keyboard.pageUpDown; 6616 const isPageUp = pageUpDown && kc === 33; 6617 const isPageDown = pageUpDown && kc === 34; 6618 const isArrowLeft = kc === 37; 6619 const isArrowRight = kc === 39; 6620 const isArrowUp = kc === 38; 6621 const isArrowDown = kc === 40; 6622 // Directions locks 6623 if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) { 6624 return false; 6625 } 6626 if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) { 6627 return false; 6628 } 6629 if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { 6630 return undefined; 6631 } 6632 if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) { 6633 return undefined; 6634 } 6635 if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) { 6636 let inView = false; 6637 // Check that swiper should be inside of visible area of window 6638 if ((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementParents)(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementParents)(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) { 6639 return undefined; 6640 } 6641 const el = swiper.el; 6642 const swiperWidth = el.clientWidth; 6643 const swiperHeight = el.clientHeight; 6644 const windowWidth = window.innerWidth; 6645 const windowHeight = window.innerHeight; 6646 const swiperOffset = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementOffset)(el); 6647 if (rtl) swiperOffset.left -= el.scrollLeft; 6648 const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]]; 6649 for (let i = 0; i < swiperCoord.length; i += 1) { 6650 const point = swiperCoord[i]; 6651 if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) { 6652 if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line 6653 inView = true; 6654 } 6655 } 6656 if (!inView) return undefined; 6657 } 6658 if (swiper.isHorizontal()) { 6659 if (isPageUp || isPageDown || isArrowLeft || isArrowRight) { 6660 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 6661 } 6662 if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext(); 6663 if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev(); 6664 } else { 6665 if (isPageUp || isPageDown || isArrowUp || isArrowDown) { 6666 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 6667 } 6668 if (isPageDown || isArrowDown) swiper.slideNext(); 6669 if (isPageUp || isArrowUp) swiper.slidePrev(); 6670 } 6671 emit('keyPress', kc); 6672 return undefined; 6673 } 6674 function enable() { 6675 if (swiper.keyboard.enabled) return; 6676 document.addEventListener('keydown', handle); 6677 swiper.keyboard.enabled = true; 6678 } 6679 function disable() { 6680 if (!swiper.keyboard.enabled) return; 6681 document.removeEventListener('keydown', handle); 6682 swiper.keyboard.enabled = false; 6683 } 6684 on('init', () => { 6685 if (swiper.params.keyboard.enabled) { 6686 enable(); 6687 } 6688 }); 6689 on('destroy', () => { 6690 if (swiper.keyboard.enabled) { 6691 disable(); 6692 } 6693 }); 6694 Object.assign(swiper.keyboard, { 6695 enable, 6696 disable 6697 }); 6698} 6699 6700/***/ }), 6701
vendor: 2,183 bytes, lines 6702-6735
6702/***/ "./node_modules/swiper/modules/manipulation/manipulation.js": 6703/*!******************************************************************!*\ 6704 !*** ./node_modules/swiper/modules/manipulation/manipulation.js ***! 6705 \******************************************************************/ 6706/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6707 6708__webpack_require__.r(__webpack_exports__); 6709/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6710/* harmony export */ "default": function() { return /* binding */ Manipulation; } 6711/* harmony export */ }); 6712/* harmony import */ var _methods_appendSlide_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./methods/appendSlide.js */ "./node_modules/swiper/modules/manipulation/methods/appendSlide.js"); 6713/* harmony import */ var _methods_prependSlide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./methods/prependSlide.js */ "./node_modules/swiper/modules/manipulation/methods/prependSlide.js"); 6714/* harmony import */ var _methods_addSlide_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./methods/addSlide.js */ "./node_modules/swiper/modules/manipulation/methods/addSlide.js"); 6715/* harmony import */ var _methods_removeSlide_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./methods/removeSlide.js */ "./node_modules/swiper/modules/manipulation/methods/removeSlide.js"); 6716/* harmony import */ var _methods_removeAllSlides_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./methods/removeAllSlides.js */ "./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js"); 6717 6718 6719 6720 6721 6722function Manipulation({ 6723 swiper 6724}) { 6725 Object.assign(swiper, { 6726 appendSlide: _methods_appendSlide_js__WEBPACK_IMPORTED_MODULE_0__["default"].bind(swiper), 6727 prependSlide: _methods_prependSlide_js__WEBPACK_IMPORTED_MODULE_1__["default"].bind(swiper), 6728 addSlide: _methods_addSlide_js__WEBPACK_IMPORTED_MODULE_2__["default"].bind(swiper), 6729 removeSlide: _methods_removeSlide_js__WEBPACK_IMPORTED_MODULE_3__["default"].bind(swiper), 6730 removeAllSlides: _methods_removeAllSlides_js__WEBPACK_IMPORTED_MODULE_4__["default"].bind(swiper) 6731 }); 6732} 6733 6734/***/ }), 6735
vendor: 2,091 bytes, lines 6736-6801
6736/***/ "./node_modules/swiper/modules/manipulation/methods/addSlide.js": 6737/*!**********************************************************************!*\ 6738 !*** ./node_modules/swiper/modules/manipulation/methods/addSlide.js ***! 6739 \**********************************************************************/ 6740/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6741 6742__webpack_require__.r(__webpack_exports__); 6743/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6744/* harmony export */ "default": function() { return /* binding */ addSlide; } 6745/* harmony export */ }); 6746function addSlide(index, slides) { 6747 const swiper = this; 6748 const { 6749 params, 6750 activeIndex, 6751 slidesEl 6752 } = swiper; 6753 let activeIndexBuffer = activeIndex; 6754 if (params.loop) { 6755 activeIndexBuffer -= swiper.loopedSlides; 6756 swiper.loopDestroy(); 6757 swiper.recalcSlides(); 6758 } 6759 const baseLength = swiper.slides.length; 6760 if (index <= 0) { 6761 swiper.prependSlide(slides); 6762 return; 6763 } 6764 if (index >= baseLength) { 6765 swiper.appendSlide(slides); 6766 return; 6767 } 6768 let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer; 6769 const slidesBuffer = []; 6770 for (let i = baseLength - 1; i >= index; i -= 1) { 6771 const currentSlide = swiper.slides[i]; 6772 currentSlide.remove(); 6773 slidesBuffer.unshift(currentSlide); 6774 } 6775 if (typeof slides === 'object' && 'length' in slides) { 6776 for (let i = 0; i < slides.length; i += 1) { 6777 if (slides[i]) slidesEl.append(slides[i]); 6778 } 6779 newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer; 6780 } else { 6781 slidesEl.append(slides); 6782 } 6783 for (let i = 0; i < slidesBuffer.length; i += 1) { 6784 slidesEl.append(slidesBuffer[i]); 6785 } 6786 swiper.recalcSlides(); 6787 if (params.loop) { 6788 swiper.loopCreate(); 6789 } 6790 if (!params.observer || swiper.isElement) { 6791 swiper.update(); 6792 } 6793 if (params.loop) { 6794 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 6795 } else { 6796 swiper.slideTo(newActiveIndex, 0, false); 6797 } 6798} 6799 6800/***/ }), 6801
vendor: 1,437 bytes, lines 6802-6848
6802/***/ "./node_modules/swiper/modules/manipulation/methods/appendSlide.js": 6803/*!*************************************************************************!*\ 6804 !*** ./node_modules/swiper/modules/manipulation/methods/appendSlide.js ***! 6805 \*************************************************************************/ 6806/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6807 6808__webpack_require__.r(__webpack_exports__); 6809/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6810/* harmony export */ "default": function() { return /* binding */ appendSlide; } 6811/* harmony export */ }); 6812function appendSlide(slides) { 6813 const swiper = this; 6814 const { 6815 params, 6816 slidesEl 6817 } = swiper; 6818 if (params.loop) { 6819 swiper.loopDestroy(); 6820 } 6821 const appendElement = slideEl => { 6822 if (typeof slideEl === 'string') { 6823 const tempDOM = document.createElement('div'); 6824 tempDOM.innerHTML = slideEl; 6825 slidesEl.append(tempDOM.children[0]); 6826 tempDOM.innerHTML = ''; 6827 } else { 6828 slidesEl.append(slideEl); 6829 } 6830 }; 6831 if (typeof slides === 'object' && 'length' in slides) { 6832 for (let i = 0; i < slides.length; i += 1) { 6833 if (slides[i]) appendElement(slides[i]); 6834 } 6835 } else { 6836 appendElement(slides); 6837 } 6838 swiper.recalcSlides(); 6839 if (params.loop) { 6840 swiper.loopCreate(); 6841 } 6842 if (!params.observer || swiper.isElement) { 6843 swiper.update(); 6844 } 6845} 6846 6847/***/ }), 6848
vendor: 1,599 bytes, lines 6849-6899
6849/***/ "./node_modules/swiper/modules/manipulation/methods/prependSlide.js": 6850/*!**************************************************************************!*\ 6851 !*** ./node_modules/swiper/modules/manipulation/methods/prependSlide.js ***! 6852 \**************************************************************************/ 6853/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6854 6855__webpack_require__.r(__webpack_exports__); 6856/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6857/* harmony export */ "default": function() { return /* binding */ prependSlide; } 6858/* harmony export */ }); 6859function prependSlide(slides) { 6860 const swiper = this; 6861 const { 6862 params, 6863 activeIndex, 6864 slidesEl 6865 } = swiper; 6866 if (params.loop) { 6867 swiper.loopDestroy(); 6868 } 6869 let newActiveIndex = activeIndex + 1; 6870 const prependElement = slideEl => { 6871 if (typeof slideEl === 'string') { 6872 const tempDOM = document.createElement('div'); 6873 tempDOM.innerHTML = slideEl; 6874 slidesEl.prepend(tempDOM.children[0]); 6875 tempDOM.innerHTML = ''; 6876 } else { 6877 slidesEl.prepend(slideEl); 6878 } 6879 }; 6880 if (typeof slides === 'object' && 'length' in slides) { 6881 for (let i = 0; i < slides.length; i += 1) { 6882 if (slides[i]) prependElement(slides[i]); 6883 } 6884 newActiveIndex = activeIndex + slides.length; 6885 } else { 6886 prependElement(slides); 6887 } 6888 swiper.recalcSlides(); 6889 if (params.loop) { 6890 swiper.loopCreate(); 6891 } 6892 if (!params.observer || swiper.isElement) { 6893 swiper.update(); 6894 } 6895 swiper.slideTo(newActiveIndex, 0, false); 6896} 6897 6898/***/ }), 6899
vendor: 863 bytes, lines 6900-6920
6900/***/ "./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js": 6901/*!*****************************************************************************!*\ 6902 !*** ./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js ***! 6903 \*****************************************************************************/ 6904/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6905 6906__webpack_require__.r(__webpack_exports__); 6907/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6908/* harmony export */ "default": function() { return /* binding */ removeAllSlides; } 6909/* harmony export */ }); 6910function removeAllSlides() { 6911 const swiper = this; 6912 const slidesIndexes = []; 6913 for (let i = 0; i < swiper.slides.length; i += 1) { 6914 slidesIndexes.push(i); 6915 } 6916 swiper.removeSlide(slidesIndexes); 6917} 6918 6919/***/ }), 6920
vendor: 1,853 bytes, lines 6921-6972
6921/***/ "./node_modules/swiper/modules/manipulation/methods/removeSlide.js": 6922/*!*************************************************************************!*\ 6923 !*** ./node_modules/swiper/modules/manipulation/methods/removeSlide.js ***! 6924 \*************************************************************************/ 6925/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6926 6927__webpack_require__.r(__webpack_exports__); 6928/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6929/* harmony export */ "default": function() { return /* binding */ removeSlide; } 6930/* harmony export */ }); 6931function removeSlide(slidesIndexes) { 6932 const swiper = this; 6933 const { 6934 params, 6935 activeIndex 6936 } = swiper; 6937 let activeIndexBuffer = activeIndex; 6938 if (params.loop) { 6939 activeIndexBuffer -= swiper.loopedSlides; 6940 swiper.loopDestroy(); 6941 } 6942 let newActiveIndex = activeIndexBuffer; 6943 let indexToRemove; 6944 if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) { 6945 for (let i = 0; i < slidesIndexes.length; i += 1) { 6946 indexToRemove = slidesIndexes[i]; 6947 if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove(); 6948 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 6949 } 6950 newActiveIndex = Math.max(newActiveIndex, 0); 6951 } else { 6952 indexToRemove = slidesIndexes; 6953 if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove(); 6954 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 6955 newActiveIndex = Math.max(newActiveIndex, 0); 6956 } 6957 swiper.recalcSlides(); 6958 if (params.loop) { 6959 swiper.loopCreate(); 6960 } 6961 if (!params.observer || swiper.isElement) { 6962 swiper.update(); 6963 } 6964 if (params.loop) { 6965 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 6966 } else { 6967 swiper.slideTo(newActiveIndex, 0, false); 6968 } 6969} 6970 6971/***/ }), 6972
vendor: 15,819 bytes, lines 6973-7374
6973/***/ "./node_modules/swiper/modules/mousewheel/mousewheel.js": 6974/*!**************************************************************!*\ 6975 !*** ./node_modules/swiper/modules/mousewheel/mousewheel.js ***! 6976 \**************************************************************/ 6977/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6978 6979__webpack_require__.r(__webpack_exports__); 6980/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6981/* harmony export */ "default": function() { return /* binding */ Mousewheel; } 6982/* harmony export */ }); 6983/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 6984/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 6985/* eslint-disable consistent-return */ 6986 6987 6988function Mousewheel({ 6989 swiper, 6990 extendParams, 6991 on, 6992 emit 6993}) { 6994 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 6995 extendParams({ 6996 mousewheel: { 6997 enabled: false, 6998 releaseOnEdges: false, 6999 invert: false, 7000 forceToAxis: false, 7001 sensitivity: 1, 7002 eventsTarget: 'container', 7003 thresholdDelta: null, 7004 thresholdTime: null, 7005 noMousewheelClass: 'swiper-no-mousewheel' 7006 } 7007 }); 7008 swiper.mousewheel = { 7009 enabled: false 7010 }; 7011 let timeout; 7012 let lastScrollTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)(); 7013 let lastEventBeforeSnap; 7014 const recentWheelEvents = []; 7015 function normalize(e) { 7016 // Reasonable defaults 7017 const PIXEL_STEP = 10; 7018 const LINE_HEIGHT = 40; 7019 const PAGE_HEIGHT = 800; 7020 let sX = 0; 7021 let sY = 0; // spinX, spinY 7022 let pX = 0; 7023 let pY = 0; // pixelX, pixelY 7024 7025 // Legacy 7026 if ('detail' in e) { 7027 sY = e.detail; 7028 } 7029 if ('wheelDelta' in e) { 7030 sY = -e.wheelDelta / 120; 7031 } 7032 if ('wheelDeltaY' in e) { 7033 sY = -e.wheelDeltaY / 120; 7034 } 7035 if ('wheelDeltaX' in e) { 7036 sX = -e.wheelDeltaX / 120; 7037 } 7038 7039 // side scrolling on FF with DOMMouseScroll 7040 if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { 7041 sX = sY; 7042 sY = 0; 7043 } 7044 pX = sX * PIXEL_STEP; 7045 pY = sY * PIXEL_STEP; 7046 if ('deltaY' in e) { 7047 pY = e.deltaY; 7048 } 7049 if ('deltaX' in e) { 7050 pX = e.deltaX; 7051 } 7052 if (e.shiftKey && !pX) { 7053 // if user scrolls with shift he wants horizontal scroll 7054 pX = pY; 7055 pY = 0; 7056 } 7057 if ((pX || pY) && e.deltaMode) { 7058 if (e.deltaMode === 1) { 7059 // delta in LINE units 7060 pX *= LINE_HEIGHT; 7061 pY *= LINE_HEIGHT; 7062 } else { 7063 // delta in PAGE units 7064 pX *= PAGE_HEIGHT; 7065 pY *= PAGE_HEIGHT; 7066 } 7067 } 7068 7069 // Fall-back if spin cannot be determined 7070 if (pX && !sX) { 7071 sX = pX < 1 ? -1 : 1; 7072 } 7073 if (pY && !sY) { 7074 sY = pY < 1 ? -1 : 1; 7075 } 7076 return { 7077 spinX: sX, 7078 spinY: sY, 7079 pixelX: pX, 7080 pixelY: pY 7081 }; 7082 } 7083 function handleMouseEnter() { 7084 if (!swiper.enabled) return; 7085 swiper.mouseEntered = true; 7086 } 7087 function handleMouseLeave() { 7088 if (!swiper.enabled) return; 7089 swiper.mouseEntered = false; 7090 } 7091 function animateSlider(newEvent) { 7092 if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) { 7093 // Prevent if delta of wheel scroll delta is below configured threshold 7094 return false; 7095 } 7096 if (swiper.params.mousewheel.thresholdTime && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)() - lastScrollTime < swiper.params.mousewheel.thresholdTime) { 7097 // Prevent if time between scrolls is below configured threshold 7098 return false; 7099 } 7100 7101 // If the movement is NOT big enough and 7102 // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider): 7103 // Don't go any further (avoid insignificant scroll movement). 7104 if (newEvent.delta >= 6 && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)() - lastScrollTime < 60) { 7105 // Return false as a default 7106 return true; 7107 } 7108 // If user is scrolling towards the end: 7109 // If the slider hasn't hit the latest slide or 7110 // if the slider is a loop and 7111 // if the slider isn't moving right now: 7112 // Go to next slide and 7113 // emit a scroll event. 7114 // Else (the user is scrolling towards the beginning) and 7115 // if the slider hasn't hit the first slide or 7116 // if the slider is a loop and 7117 // if the slider isn't moving right now: 7118 // Go to prev slide and 7119 // emit a scroll event. 7120 if (newEvent.direction < 0) { 7121 if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { 7122 swiper.slideNext(); 7123 emit('scroll', newEvent.raw); 7124 } 7125 } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { 7126 swiper.slidePrev(); 7127 emit('scroll', newEvent.raw); 7128 } 7129 // If you got here is because an animation has been triggered so store the current time 7130 lastScrollTime = new window.Date().getTime(); 7131 // Return false as a default 7132 return false; 7133 } 7134 function releaseScroll(newEvent) { 7135 const params = swiper.params.mousewheel; 7136 if (newEvent.direction < 0) { 7137 if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) { 7138 // Return true to animate scroll on edges 7139 return true; 7140 } 7141 } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) { 7142 // Return true to animate scroll on edges 7143 return true; 7144 } 7145 return false; 7146 } 7147 function handle(event) { 7148 let e = event; 7149 let disableParentSwiper = true; 7150 if (!swiper.enabled) return; 7151 7152 // Ignore event if the target or its parents have the swiper-no-mousewheel class 7153 if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return; 7154 const params = swiper.params.mousewheel; 7155 if (swiper.params.cssMode) { 7156 e.preventDefault(); 7157 } 7158 let targetEl = swiper.el; 7159 if (swiper.params.mousewheel.eventsTarget !== 'container') { 7160 targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); 7161 } 7162 const targetElContainsTarget = targetEl && targetEl.contains(e.target); 7163 if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true; 7164 if (e.originalEvent) e = e.originalEvent; // jquery fix 7165 let delta = 0; 7166 const rtlFactor = swiper.rtlTranslate ? -1 : 1; 7167 const data = normalize(e); 7168 if (params.forceToAxis) { 7169 if (swiper.isHorizontal()) { 7170 if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true; 7171 } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true; 7172 } else { 7173 delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY; 7174 } 7175 if (delta === 0) return true; 7176 if (params.invert) delta = -delta; 7177 7178 // Get the scroll positions 7179 let positions = swiper.getTranslate() + delta * params.sensitivity; 7180 if (positions >= swiper.minTranslate()) positions = swiper.minTranslate(); 7181 if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); 7182 7183 // When loop is true: 7184 // the disableParentSwiper will be true. 7185 // When loop is false: 7186 // if the scroll positions is not on edge, 7187 // then the disableParentSwiper will be true. 7188 // if the scroll on edge positions, 7189 // then the disableParentSwiper will be false. 7190 disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate()); 7191 if (disableParentSwiper && swiper.params.nested) e.stopPropagation(); 7192 if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) { 7193 // Register the new event in a variable which stores the relevant data 7194 const newEvent = { 7195 time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)(), 7196 delta: Math.abs(delta), 7197 direction: Math.sign(delta), 7198 raw: event 7199 }; 7200 7201 // Keep the most recent events 7202 if (recentWheelEvents.length >= 2) { 7203 recentWheelEvents.shift(); // only store the last N events 7204 } 7205 7206 const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; 7207 recentWheelEvents.push(newEvent); 7208 7209 // If there is at least one previous recorded event: 7210 // If direction has changed or 7211 // if the scroll is quicker than the previous one: 7212 // Animate the slider. 7213 // Else (this is the first time the wheel is moved): 7214 // Animate the slider. 7215 if (prevEvent) { 7216 if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) { 7217 animateSlider(newEvent); 7218 } 7219 } else { 7220 animateSlider(newEvent); 7221 } 7222 7223 // If it's time to release the scroll: 7224 // Return now so you don't hit the preventDefault. 7225 if (releaseScroll(newEvent)) { 7226 return true; 7227 } 7228 } else { 7229 // Freemode or scrollContainer: 7230 7231 // If we recently snapped after a momentum scroll, then ignore wheel events 7232 // to give time for the deceleration to finish. Stop ignoring after 500 msecs 7233 // or if it's a new scroll (larger delta or inverse sign as last event before 7234 // an end-of-momentum snap). 7235 const newEvent = { 7236 time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)(), 7237 delta: Math.abs(delta), 7238 direction: Math.sign(delta) 7239 }; 7240 const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction; 7241 if (!ignoreWheelEvents) { 7242 lastEventBeforeSnap = undefined; 7243 let position = swiper.getTranslate() + delta * params.sensitivity; 7244 const wasBeginning = swiper.isBeginning; 7245 const wasEnd = swiper.isEnd; 7246 if (position >= swiper.minTranslate()) position = swiper.minTranslate(); 7247 if (position <= swiper.maxTranslate()) position = swiper.maxTranslate(); 7248 swiper.setTransition(0); 7249 swiper.setTranslate(position); 7250 swiper.updateProgress(); 7251 swiper.updateActiveIndex(); 7252 swiper.updateSlidesClasses(); 7253 if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) { 7254 swiper.updateSlidesClasses(); 7255 } 7256 if (swiper.params.loop) { 7257 swiper.loopFix({ 7258 direction: newEvent.direction < 0 ? 'next' : 'prev', 7259 byMousewheel: true 7260 }); 7261 } 7262 if (swiper.params.freeMode.sticky) { 7263 // When wheel scrolling starts with sticky (aka snap) enabled, then detect 7264 // the end of a momentum scroll by storing recent (N=15?) wheel events. 7265 // 1. do all N events have decreasing or same (absolute value) delta? 7266 // 2. did all N events arrive in the last M (M=500?) msecs? 7267 // 3. does the earliest event have an (absolute value) delta that's 7268 // at least P (P=1?) larger than the most recent event's delta? 7269 // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels? 7270 // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration. 7271 // Snap immediately and ignore remaining wheel events in this scroll. 7272 // See comment above for "remaining wheel events in this scroll" determination. 7273 // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event. 7274 clearTimeout(timeout); 7275 timeout = undefined; 7276 if (recentWheelEvents.length >= 15) { 7277 recentWheelEvents.shift(); // only store the last N events 7278 } 7279 7280 const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; 7281 const firstEvent = recentWheelEvents[0]; 7282 recentWheelEvents.push(newEvent); 7283 if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) { 7284 // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log. 7285 recentWheelEvents.splice(0); 7286 } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) { 7287 // We're at the end of the deceleration of a momentum scroll, so there's no need 7288 // to wait for more events. Snap ASAP on the next tick. 7289 // Also, because there's some remaining momentum we'll bias the snap in the 7290 // direction of the ongoing scroll because it's better UX for the scroll to snap 7291 // in the same direction as the scroll instead of reversing to snap. Therefore, 7292 // if it's already scrolled more than 20% in the current direction, keep going. 7293 const snapToThreshold = delta > 0 ? 0.8 : 0.2; 7294 lastEventBeforeSnap = newEvent; 7295 recentWheelEvents.splice(0); 7296 timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => { 7297 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 7298 }, 0); // no delay; move on next tick 7299 } 7300 7301 if (!timeout) { 7302 // if we get here, then we haven't detected the end of a momentum scroll, so 7303 // we'll consider a scroll "complete" when there haven't been any wheel events 7304 // for 500ms. 7305 timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => { 7306 const snapToThreshold = 0.5; 7307 lastEventBeforeSnap = newEvent; 7308 recentWheelEvents.splice(0); 7309 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 7310 }, 500); 7311 } 7312 } 7313 7314 // Emit event 7315 if (!ignoreWheelEvents) emit('scroll', e); 7316 7317 // Stop autoplay 7318 if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); 7319 // Return page scroll on edge positions 7320 if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true; 7321 } 7322 } 7323 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 7324 return false; 7325 } 7326 function events(method) { 7327 let targetEl = swiper.el; 7328 if (swiper.params.mousewheel.eventsTarget !== 'container') { 7329 targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); 7330 } 7331 targetEl[method]('mouseenter', handleMouseEnter); 7332 targetEl[method]('mouseleave', handleMouseLeave); 7333 targetEl[method]('wheel', handle); 7334 } 7335 function enable() { 7336 if (swiper.params.cssMode) { 7337 swiper.wrapperEl.removeEventListener('wheel', handle); 7338 return true; 7339 } 7340 if (swiper.mousewheel.enabled) return false; 7341 events('addEventListener'); 7342 swiper.mousewheel.enabled = true; 7343 return true; 7344 } 7345 function disable() { 7346 if (swiper.params.cssMode) { 7347 swiper.wrapperEl.addEventListener(event, handle); 7348 return true; 7349 } 7350 if (!swiper.mousewheel.enabled) return false; 7351 events('removeEventListener'); 7352 swiper.mousewheel.enabled = false; 7353 return true; 7354 } 7355 on('init', () => { 7356 if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) { 7357 disable(); 7358 } 7359 if (swiper.params.mousewheel.enabled) enable(); 7360 }); 7361 on('destroy', () => { 7362 if (swiper.params.cssMode) { 7363 enable(); 7364 } 7365 if (swiper.mousewheel.enabled) disable(); 7366 }); 7367 Object.assign(swiper.mousewheel, { 7368 enable, 7369 disable 7370 }); 7371} 7372 7373/***/ }), 7374
vendor: 6,665 bytes, lines 7375-7574
7375/***/ "./node_modules/swiper/modules/navigation/navigation.js": 7376/*!**************************************************************!*\ 7377 !*** ./node_modules/swiper/modules/navigation/navigation.js ***! 7378 \**************************************************************/ 7379/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 7380 7381__webpack_require__.r(__webpack_exports__); 7382/* harmony export */ __webpack_require__.d(__webpack_exports__, { 7383/* harmony export */ "default": function() { return /* binding */ Navigation; } 7384/* harmony export */ }); 7385/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ "./node_modules/swiper/shared/create-element-if-not-defined.js"); 7386 7387function Navigation({ 7388 swiper, 7389 extendParams, 7390 on, 7391 emit 7392}) { 7393 extendParams({ 7394 navigation: { 7395 nextEl: null, 7396 prevEl: null, 7397 hideOnClick: false, 7398 disabledClass: 'swiper-button-disabled', 7399 hiddenClass: 'swiper-button-hidden', 7400 lockClass: 'swiper-button-lock', 7401 navigationDisabledClass: 'swiper-navigation-disabled' 7402 } 7403 }); 7404 swiper.navigation = { 7405 nextEl: null, 7406 prevEl: null 7407 }; 7408 const makeElementsArray = el => { 7409 if (!Array.isArray(el)) el = [el].filter(e => !!e); 7410 return el; 7411 }; 7412 function getEl(el) { 7413 let res; 7414 if (el && typeof el === 'string' && swiper.isElement) { 7415 res = swiper.el.shadowRoot.querySelector(el); 7416 if (res) return res; 7417 } 7418 if (el) { 7419 if (typeof el === 'string') res = [...document.querySelectorAll(el)]; 7420 if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) { 7421 res = swiper.el.querySelector(el); 7422 } 7423 } 7424 if (el && !res) return el; 7425 // if (Array.isArray(res) && res.length === 1) res = res[0]; 7426 return res; 7427 } 7428 function toggleEl(el, disabled) { 7429 const params = swiper.params.navigation; 7430 el = makeElementsArray(el); 7431 el.forEach(subEl => { 7432 if (subEl) { 7433 subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' ')); 7434 if (subEl.tagName === 'BUTTON') subEl.disabled = disabled; 7435 if (swiper.params.watchOverflow && swiper.enabled) { 7436 subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); 7437 } 7438 } 7439 }); 7440 } 7441 function update() { 7442 // Update Navigation Buttons 7443 const { 7444 nextEl, 7445 prevEl 7446 } = swiper.navigation; 7447 if (swiper.params.loop) { 7448 toggleEl(prevEl, false); 7449 toggleEl(nextEl, false); 7450 return; 7451 } 7452 toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind); 7453 toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind); 7454 } 7455 function onPrevClick(e) { 7456 e.preventDefault(); 7457 if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return; 7458 swiper.slidePrev(); 7459 emit('navigationPrev'); 7460 } 7461 function onNextClick(e) { 7462 e.preventDefault(); 7463 if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return; 7464 swiper.slideNext(); 7465 emit('navigationNext'); 7466 } 7467 function init() { 7468 const params = swiper.params.navigation; 7469 swiper.params.navigation = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper, swiper.originalParams.navigation, swiper.params.navigation, { 7470 nextEl: 'swiper-button-next', 7471 prevEl: 'swiper-button-prev' 7472 }); 7473 if (!(params.nextEl || params.prevEl)) return; 7474 let nextEl = getEl(params.nextEl); 7475 let prevEl = getEl(params.prevEl); 7476 Object.assign(swiper.navigation, { 7477 nextEl, 7478 prevEl 7479 }); 7480 nextEl = makeElementsArray(nextEl); 7481 prevEl = makeElementsArray(prevEl); 7482 const initButton = (el, dir) => { 7483 if (el) { 7484 el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick); 7485 } 7486 if (!swiper.enabled && el) { 7487 el.classList.add(...params.lockClass.split(' ')); 7488 } 7489 }; 7490 nextEl.forEach(el => initButton(el, 'next')); 7491 prevEl.forEach(el => initButton(el, 'prev')); 7492 } 7493 function destroy() { 7494 let { 7495 nextEl, 7496 prevEl 7497 } = swiper.navigation; 7498 nextEl = makeElementsArray(nextEl); 7499 prevEl = makeElementsArray(prevEl); 7500 const destroyButton = (el, dir) => { 7501 el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick); 7502 el.classList.remove(...swiper.params.navigation.disabledClass.split(' ')); 7503 }; 7504 nextEl.forEach(el => destroyButton(el, 'next')); 7505 prevEl.forEach(el => destroyButton(el, 'prev')); 7506 } 7507 on('init', () => { 7508 if (swiper.params.navigation.enabled === false) { 7509 // eslint-disable-next-line 7510 disable(); 7511 } else { 7512 init(); 7513 update(); 7514 } 7515 }); 7516 on('toEdge fromEdge lock unlock', () => { 7517 update(); 7518 }); 7519 on('destroy', () => { 7520 destroy(); 7521 }); 7522 on('enable disable', () => { 7523 let { 7524 nextEl, 7525 prevEl 7526 } = swiper.navigation; 7527 nextEl = makeElementsArray(nextEl); 7528 prevEl = makeElementsArray(prevEl); 7529 [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.navigation.lockClass)); 7530 }); 7531 on('click', (_s, e) => { 7532 let { 7533 nextEl, 7534 prevEl 7535 } = swiper.navigation; 7536 nextEl = makeElementsArray(nextEl); 7537 prevEl = makeElementsArray(prevEl); 7538 const targetEl = e.target; 7539 if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) { 7540 if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return; 7541 let isHidden; 7542 if (nextEl.length) { 7543 isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass); 7544 } else if (prevEl.length) { 7545 isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass); 7546 } 7547 if (isHidden === true) { 7548 emit('navigationShow'); 7549 } else { 7550 emit('navigationHide'); 7551 } 7552 [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass)); 7553 } 7554 }); 7555 const enable = () => { 7556 swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' ')); 7557 init(); 7558 update(); 7559 }; 7560 const disable = () => { 7561 swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' ')); 7562 destroy(); 7563 }; 7564 Object.assign(swiper.navigation, { 7565 enable, 7566 disable, 7567 update, 7568 init, 7569 destroy 7570 }); 7571} 7572 7573/***/ }), 7574
vendor: 18,303 bytes, lines 7575-8036
7575/***/ "./node_modules/swiper/modules/pagination/pagination.js": 7576/*!**************************************************************!*\ 7577 !*** ./node_modules/swiper/modules/pagination/pagination.js ***! 7578 \**************************************************************/ 7579/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 7580 7581__webpack_require__.r(__webpack_exports__); 7582/* harmony export */ __webpack_require__.d(__webpack_exports__, { 7583/* harmony export */ "default": function() { return /* binding */ Pagination; } 7584/* harmony export */ }); 7585/* harmony import */ var _shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/classes-to-selector.js */ "./node_modules/swiper/shared/classes-to-selector.js"); 7586/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ "./node_modules/swiper/shared/create-element-if-not-defined.js"); 7587/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 7588 7589 7590 7591function Pagination({ 7592 swiper, 7593 extendParams, 7594 on, 7595 emit 7596}) { 7597 const pfx = 'swiper-pagination'; 7598 extendParams({ 7599 pagination: { 7600 el: null, 7601 bulletElement: 'span', 7602 clickable: false, 7603 hideOnClick: false, 7604 renderBullet: null, 7605 renderProgressbar: null, 7606 renderFraction: null, 7607 renderCustom: null, 7608 progressbarOpposite: false, 7609 type: 'bullets', 7610 // 'bullets' or 'progressbar' or 'fraction' or 'custom' 7611 dynamicBullets: false, 7612 dynamicMainBullets: 1, 7613 formatFractionCurrent: number => number, 7614 formatFractionTotal: number => number, 7615 bulletClass: `${pfx}-bullet`, 7616 bulletActiveClass: `${pfx}-bullet-active`, 7617 modifierClass: `${pfx}-`, 7618 currentClass: `${pfx}-current`, 7619 totalClass: `${pfx}-total`, 7620 hiddenClass: `${pfx}-hidden`, 7621 progressbarFillClass: `${pfx}-progressbar-fill`, 7622 progressbarOppositeClass: `${pfx}-progressbar-opposite`, 7623 clickableClass: `${pfx}-clickable`, 7624 lockClass: `${pfx}-lock`, 7625 horizontalClass: `${pfx}-horizontal`, 7626 verticalClass: `${pfx}-vertical`, 7627 paginationDisabledClass: `${pfx}-disabled` 7628 } 7629 }); 7630 swiper.pagination = { 7631 el: null, 7632 bullets: [] 7633 }; 7634 let bulletSize; 7635 let dynamicBulletIndex = 0; 7636 const makeElementsArray = el => { 7637 if (!Array.isArray(el)) el = [el].filter(e => !!e); 7638 return el; 7639 }; 7640 function isPaginationDisabled() { 7641 return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0; 7642 } 7643 function setSideBullets(bulletEl, position) { 7644 const { 7645 bulletActiveClass 7646 } = swiper.params.pagination; 7647 if (!bulletEl) return; 7648 bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; 7649 if (bulletEl) { 7650 bulletEl.classList.add(`${bulletActiveClass}-${position}`); 7651 bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; 7652 if (bulletEl) { 7653 bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`); 7654 } 7655 } 7656 } 7657 function onBulletClick(e) { 7658 const bulletEl = e.target.closest((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass)); 7659 if (!bulletEl) { 7660 return; 7661 } 7662 e.preventDefault(); 7663 const index = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.elementIndex)(bulletEl) * swiper.params.slidesPerGroup; 7664 if (swiper.params.loop) { 7665 if (swiper.realIndex === index) return; 7666 const newSlideIndex = swiper.getSlideIndexByData(index); 7667 const currentSlideIndex = swiper.getSlideIndexByData(swiper.realIndex); 7668 if (newSlideIndex > swiper.slides.length - swiper.loopedSlides) { 7669 swiper.loopFix({ 7670 direction: newSlideIndex > currentSlideIndex ? 'next' : 'prev', 7671 activeSlideIndex: newSlideIndex, 7672 slideTo: false 7673 }); 7674 } 7675 swiper.slideToLoop(index); 7676 } else { 7677 swiper.slideTo(index); 7678 } 7679 } 7680 function update() { 7681 // Render || Update Pagination bullets/items 7682 const rtl = swiper.rtl; 7683 const params = swiper.params.pagination; 7684 if (isPaginationDisabled()) return; 7685 let el = swiper.pagination.el; 7686 el = makeElementsArray(el); 7687 // Current/Total 7688 let current; 7689 let previousIndex; 7690 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 7691 const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 7692 if (swiper.params.loop) { 7693 previousIndex = swiper.previousRealIndex || 0; 7694 current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex; 7695 } else if (typeof swiper.snapIndex !== 'undefined') { 7696 current = swiper.snapIndex; 7697 previousIndex = swiper.previousSnapIndex; 7698 } else { 7699 previousIndex = swiper.previousIndex || 0; 7700 current = swiper.activeIndex || 0; 7701 } 7702 // Types 7703 if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { 7704 const bullets = swiper.pagination.bullets; 7705 let firstIndex; 7706 let lastIndex; 7707 let midIndex; 7708 if (params.dynamicBullets) { 7709 bulletSize = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.elementOuterSize)(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true); 7710 el.forEach(subEl => { 7711 subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`; 7712 }); 7713 if (params.dynamicMainBullets > 1 && previousIndex !== undefined) { 7714 dynamicBulletIndex += current - (previousIndex || 0); 7715 if (dynamicBulletIndex > params.dynamicMainBullets - 1) { 7716 dynamicBulletIndex = params.dynamicMainBullets - 1; 7717 } else if (dynamicBulletIndex < 0) { 7718 dynamicBulletIndex = 0; 7719 } 7720 } 7721 firstIndex = Math.max(current - dynamicBulletIndex, 0); 7722 lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1); 7723 midIndex = (lastIndex + firstIndex) / 2; 7724 } 7725 bullets.forEach(bulletEl => { 7726 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(); 7727 bulletEl.classList.remove(...classesToRemove); 7728 }); 7729 if (el.length > 1) { 7730 bullets.forEach(bullet => { 7731 const bulletIndex = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.elementIndex)(bullet); 7732 if (bulletIndex === current) { 7733 bullet.classList.add(...params.bulletActiveClass.split(' ')); 7734 } 7735 if (params.dynamicBullets) { 7736 if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { 7737 bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' ')); 7738 } 7739 if (bulletIndex === firstIndex) { 7740 setSideBullets(bullet, 'prev'); 7741 } 7742 if (bulletIndex === lastIndex) { 7743 setSideBullets(bullet, 'next'); 7744 } 7745 } 7746 }); 7747 } else { 7748 const bullet = bullets[current]; 7749 if (bullet) { 7750 bullet.classList.add(...params.bulletActiveClass.split(' ')); 7751 } 7752 if (params.dynamicBullets) { 7753 const firstDisplayedBullet = bullets[firstIndex]; 7754 const lastDisplayedBullet = bullets[lastIndex]; 7755 for (let i = firstIndex; i <= lastIndex; i += 1) { 7756 if (bullets[i]) { 7757 bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' ')); 7758 } 7759 } 7760 setSideBullets(firstDisplayedBullet, 'prev'); 7761 setSideBullets(lastDisplayedBullet, 'next'); 7762 } 7763 } 7764 if (params.dynamicBullets) { 7765 const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); 7766 const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize; 7767 const offsetProp = rtl ? 'right' : 'left'; 7768 bullets.forEach(bullet => { 7769 bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`; 7770 }); 7771 } 7772 } 7773 el.forEach((subEl, subElIndex) => { 7774 if (params.type === 'fraction') { 7775 subEl.querySelectorAll((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.currentClass)).forEach(fractionEl => { 7776 fractionEl.textContent = params.formatFractionCurrent(current + 1); 7777 }); 7778 subEl.querySelectorAll((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.totalClass)).forEach(totalEl => { 7779 totalEl.textContent = params.formatFractionTotal(total); 7780 }); 7781 } 7782 if (params.type === 'progressbar') { 7783 let progressbarDirection; 7784 if (params.progressbarOpposite) { 7785 progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal'; 7786 } else { 7787 progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical'; 7788 } 7789 const scale = (current + 1) / total; 7790 let scaleX = 1; 7791 let scaleY = 1; 7792 if (progressbarDirection === 'horizontal') { 7793 scaleX = scale; 7794 } else { 7795 scaleY = scale; 7796 } 7797 subEl.querySelectorAll((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.progressbarFillClass)).forEach(progressEl => { 7798 progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`; 7799 progressEl.style.transitionDuration = `${swiper.params.speed}ms`; 7800 }); 7801 } 7802 if (params.type === 'custom' && params.renderCustom) { 7803 subEl.innerHTML = params.renderCustom(swiper, current + 1, total); 7804 if (subElIndex === 0) emit('paginationRender', subEl); 7805 } else { 7806 if (subElIndex === 0) emit('paginationRender', subEl); 7807 emit('paginationUpdate', subEl); 7808 } 7809 if (swiper.params.watchOverflow && swiper.enabled) { 7810 subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); 7811 } 7812 }); 7813 } 7814 function render() { 7815 // Render Container 7816 const params = swiper.params.pagination; 7817 if (isPaginationDisabled()) return; 7818 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 7819 let el = swiper.pagination.el; 7820 el = makeElementsArray(el); 7821 let paginationHTML = ''; 7822 if (params.type === 'bullets') { 7823 let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 7824 if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) { 7825 numberOfBullets = slidesLength; 7826 } 7827 for (let i = 0; i < numberOfBullets; i += 1) { 7828 if (params.renderBullet) { 7829 paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); 7830 } else { 7831 paginationHTML += `<${params.bulletElement} class="${params.bulletClass}"></${params.bulletElement}>`; 7832 } 7833 } 7834 } 7835 if (params.type === 'fraction') { 7836 if (params.renderFraction) { 7837 paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); 7838 } else { 7839 paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`; 7840 } 7841 } 7842 if (params.type === 'progressbar') { 7843 if (params.renderProgressbar) { 7844 paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); 7845 } else { 7846 paginationHTML = `<span class="${params.progressbarFillClass}"></span>`; 7847 } 7848 } 7849 swiper.pagination.bullets = []; 7850 el.forEach(subEl => { 7851 if (params.type !== 'custom') { 7852 subEl.innerHTML = paginationHTML || ''; 7853 } 7854 if (params.type === 'bullets') { 7855 swiper.pagination.bullets.push(...subEl.querySelectorAll((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.bulletClass))); 7856 } 7857 }); 7858 if (params.type !== 'custom') { 7859 emit('paginationRender', el[0]); 7860 } 7861 } 7862 function init() { 7863 swiper.params.pagination = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper, swiper.originalParams.pagination, swiper.params.pagination, { 7864 el: 'swiper-pagination' 7865 }); 7866 const params = swiper.params.pagination; 7867 if (!params.el) return; 7868 let el; 7869 if (typeof params.el === 'string' && swiper.isElement) { 7870 el = swiper.el.shadowRoot.querySelector(params.el); 7871 } 7872 if (!el && typeof params.el === 'string') { 7873 el = [...document.querySelectorAll(params.el)]; 7874 } 7875 if (!el) { 7876 el = params.el; 7877 } 7878 if (!el || el.length === 0) return; 7879 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) { 7880 el = [...swiper.el.querySelectorAll(params.el)]; 7881 // check if it belongs to another nested Swiper 7882 if (el.length > 1) { 7883 el = el.filter(subEl => { 7884 if ((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.elementParents)(subEl, '.swiper')[0] !== swiper.el) return false; 7885 return true; 7886 })[0]; 7887 } 7888 } 7889 if (Array.isArray(el) && el.length === 1) el = el[0]; 7890 Object.assign(swiper.pagination, { 7891 el 7892 }); 7893 el = makeElementsArray(el); 7894 el.forEach(subEl => { 7895 if (params.type === 'bullets' && params.clickable) { 7896 subEl.classList.add(params.clickableClass); 7897 } 7898 subEl.classList.add(params.modifierClass + params.type); 7899 subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 7900 if (params.type === 'bullets' && params.dynamicBullets) { 7901 subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`); 7902 dynamicBulletIndex = 0; 7903 if (params.dynamicMainBullets < 1) { 7904 params.dynamicMainBullets = 1; 7905 } 7906 } 7907 if (params.type === 'progressbar' && params.progressbarOpposite) { 7908 subEl.classList.add(params.progressbarOppositeClass); 7909 } 7910 if (params.clickable) { 7911 subEl.addEventListener('click', onBulletClick); 7912 } 7913 if (!swiper.enabled) { 7914 subEl.classList.add(params.lockClass); 7915 } 7916 }); 7917 } 7918 function destroy() { 7919 const params = swiper.params.pagination; 7920 if (isPaginationDisabled()) return; 7921 let el = swiper.pagination.el; 7922 if (el) { 7923 el = makeElementsArray(el); 7924 el.forEach(subEl => { 7925 subEl.classList.remove(params.hiddenClass); 7926 subEl.classList.remove(params.modifierClass + params.type); 7927 subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 7928 if (params.clickable) { 7929 subEl.removeEventListener('click', onBulletClick); 7930 } 7931 }); 7932 } 7933 if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' '))); 7934 } 7935 on('changeDirection', () => { 7936 if (!swiper.pagination || !swiper.pagination.el) return; 7937 const params = swiper.params.pagination; 7938 let { 7939 el 7940 } = swiper.pagination; 7941 el = makeElementsArray(el); 7942 el.forEach(subEl => { 7943 subEl.classList.remove(params.horizontalClass, params.verticalClass); 7944 subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 7945 }); 7946 }); 7947 on('init', () => { 7948 if (swiper.params.pagination.enabled === false) { 7949 // eslint-disable-next-line 7950 disable(); 7951 } else { 7952 init(); 7953 render(); 7954 update(); 7955 } 7956 }); 7957 on('activeIndexChange', () => { 7958 if (typeof swiper.snapIndex === 'undefined') { 7959 update(); 7960 } 7961 }); 7962 on('snapIndexChange', () => { 7963 update(); 7964 }); 7965 on('snapGridLengthChange', () => { 7966 render(); 7967 update(); 7968 }); 7969 on('destroy', () => { 7970 destroy(); 7971 }); 7972 on('enable disable', () => { 7973 let { 7974 el 7975 } = swiper.pagination; 7976 if (el) { 7977 el = makeElementsArray(el); 7978 el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass)); 7979 } 7980 }); 7981 on('lock unlock', () => { 7982 update(); 7983 }); 7984 on('click', (_s, e) => { 7985 const targetEl = e.target; 7986 let { 7987 el 7988 } = swiper.pagination; 7989 if (!Array.isArray(el)) el = [el].filter(element => !!element); 7990 if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) { 7991 if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return; 7992 const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass); 7993 if (isHidden === true) { 7994 emit('paginationShow'); 7995 } else { 7996 emit('paginationHide'); 7997 } 7998 el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass)); 7999 } 8000 }); 8001 const enable = () => { 8002 swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass); 8003 let { 8004 el 8005 } = swiper.pagination; 8006 if (el) { 8007 el = makeElementsArray(el); 8008 el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass)); 8009 } 8010 init(); 8011 render(); 8012 update(); 8013 }; 8014 const disable = () => { 8015 swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass); 8016 let { 8017 el 8018 } = swiper.pagination; 8019 if (el) { 8020 el = makeElementsArray(el); 8021 el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass)); 8022 } 8023 destroy(); 8024 }; 8025 Object.assign(swiper.pagination, { 8026 enable, 8027 disable, 8028 render, 8029 update, 8030 init, 8031 destroy 8032 }); 8033} 8034 8035/***/ }), 8036
vendor: 4,509 bytes, lines 8037-8156
8037/***/ "./node_modules/swiper/modules/parallax/parallax.js": 8038/*!**********************************************************!*\ 8039 !*** ./node_modules/swiper/modules/parallax/parallax.js ***! 8040 \**********************************************************/ 8041/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 8042 8043__webpack_require__.r(__webpack_exports__); 8044/* harmony export */ __webpack_require__.d(__webpack_exports__, { 8045/* harmony export */ "default": function() { return /* binding */ Parallax; } 8046/* harmony export */ }); 8047/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 8048 8049function Parallax({ 8050 swiper, 8051 extendParams, 8052 on 8053}) { 8054 extendParams({ 8055 parallax: { 8056 enabled: false 8057 } 8058 }); 8059 const setTransform = (el, progress) => { 8060 const { 8061 rtl 8062 } = swiper; 8063 const rtlFactor = rtl ? -1 : 1; 8064 const p = el.getAttribute('data-swiper-parallax') || '0'; 8065 let x = el.getAttribute('data-swiper-parallax-x'); 8066 let y = el.getAttribute('data-swiper-parallax-y'); 8067 const scale = el.getAttribute('data-swiper-parallax-scale'); 8068 const opacity = el.getAttribute('data-swiper-parallax-opacity'); 8069 const rotate = el.getAttribute('data-swiper-parallax-rotate'); 8070 if (x || y) { 8071 x = x || '0'; 8072 y = y || '0'; 8073 } else if (swiper.isHorizontal()) { 8074 x = p; 8075 y = '0'; 8076 } else { 8077 y = p; 8078 x = '0'; 8079 } 8080 if (x.indexOf('%') >= 0) { 8081 x = `${parseInt(x, 10) * progress * rtlFactor}%`; 8082 } else { 8083 x = `${x * progress * rtlFactor}px`; 8084 } 8085 if (y.indexOf('%') >= 0) { 8086 y = `${parseInt(y, 10) * progress}%`; 8087 } else { 8088 y = `${y * progress}px`; 8089 } 8090 if (typeof opacity !== 'undefined' && opacity !== null) { 8091 const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress)); 8092 el.style.opacity = currentOpacity; 8093 } 8094 let transform = `translate3d(${x}, ${y}, 0px)`; 8095 if (typeof scale !== 'undefined' && scale !== null) { 8096 const currentScale = scale - (scale - 1) * (1 - Math.abs(progress)); 8097 transform += ` scale(${currentScale})`; 8098 } 8099 if (rotate && typeof rotate !== 'undefined' && rotate !== null) { 8100 const currentRotate = rotate * progress * -1; 8101 transform += ` rotate(${currentRotate}deg)`; 8102 } 8103 el.style.transform = transform; 8104 }; 8105 const setTranslate = () => { 8106 const { 8107 el, 8108 slides, 8109 progress, 8110 snapGrid 8111 } = swiper; 8112 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementChildren)(el, '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').forEach(subEl => { 8113 setTransform(subEl, progress); 8114 }); 8115 slides.forEach((slideEl, slideIndex) => { 8116 let slideProgress = slideEl.progress; 8117 if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { 8118 slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1); 8119 } 8120 slideProgress = Math.min(Math.max(slideProgress, -1), 1); 8121 slideEl.querySelectorAll('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale], [data-swiper-parallax-rotate]').forEach(subEl => { 8122 setTransform(subEl, slideProgress); 8123 }); 8124 }); 8125 }; 8126 const setTransition = (duration = swiper.params.speed) => { 8127 const { 8128 el 8129 } = swiper; 8130 el.querySelectorAll('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').forEach(parallaxEl => { 8131 let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration; 8132 if (duration === 0) parallaxDuration = 0; 8133 parallaxEl.style.transitionDuration = `${parallaxDuration}ms`; 8134 }); 8135 }; 8136 on('beforeInit', () => { 8137 if (!swiper.params.parallax.enabled) return; 8138 swiper.params.watchSlidesProgress = true; 8139 swiper.originalParams.watchSlidesProgress = true; 8140 }); 8141 on('init', () => { 8142 if (!swiper.params.parallax.enabled) return; 8143 setTranslate(); 8144 }); 8145 on('setTranslate', () => { 8146 if (!swiper.params.parallax.enabled) return; 8147 setTranslate(); 8148 }); 8149 on('setTransition', (_swiper, duration) => { 8150 if (!swiper.params.parallax.enabled) return; 8151 setTransition(duration); 8152 }); 8153} 8154 8155/***/ }), 8156
vendor: 11,352 bytes, lines 8157-8520
8157/***/ "./node_modules/swiper/modules/scrollbar/scrollbar.js": 8158/*!************************************************************!*\ 8159 !*** ./node_modules/swiper/modules/scrollbar/scrollbar.js ***! 8160 \************************************************************/ 8161/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 8162 8163__webpack_require__.r(__webpack_exports__); 8164/* harmony export */ __webpack_require__.d(__webpack_exports__, { 8165/* harmony export */ "default": function() { return /* binding */ Scrollbar; } 8166/* harmony export */ }); 8167/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 8168/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 8169/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ "./node_modules/swiper/shared/create-element-if-not-defined.js"); 8170 8171 8172 8173function Scrollbar({ 8174 swiper, 8175 extendParams, 8176 on, 8177 emit 8178}) { 8179 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 8180 let isTouched = false; 8181 let timeout = null; 8182 let dragTimeout = null; 8183 let dragStartPos; 8184 let dragSize; 8185 let trackSize; 8186 let divider; 8187 extendParams({ 8188 scrollbar: { 8189 el: null, 8190 dragSize: 'auto', 8191 hide: false, 8192 draggable: false, 8193 snapOnRelease: true, 8194 lockClass: 'swiper-scrollbar-lock', 8195 dragClass: 'swiper-scrollbar-drag', 8196 scrollbarDisabledClass: 'swiper-scrollbar-disabled', 8197 horizontalClass: `swiper-scrollbar-horizontal`, 8198 verticalClass: `swiper-scrollbar-vertical` 8199 } 8200 }); 8201 swiper.scrollbar = { 8202 el: null, 8203 dragEl: null 8204 }; 8205 function setTranslate() { 8206 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 8207 const { 8208 scrollbar, 8209 rtlTranslate: rtl 8210 } = swiper; 8211 const { 8212 dragEl, 8213 el 8214 } = scrollbar; 8215 const params = swiper.params.scrollbar; 8216 const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress; 8217 let newSize = dragSize; 8218 let newPos = (trackSize - dragSize) * progress; 8219 if (rtl) { 8220 newPos = -newPos; 8221 if (newPos > 0) { 8222 newSize = dragSize - newPos; 8223 newPos = 0; 8224 } else if (-newPos + dragSize > trackSize) { 8225 newSize = trackSize + newPos; 8226 } 8227 } else if (newPos < 0) { 8228 newSize = dragSize + newPos; 8229 newPos = 0; 8230 } else if (newPos + dragSize > trackSize) { 8231 newSize = trackSize - newPos; 8232 } 8233 if (swiper.isHorizontal()) { 8234 dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`; 8235 dragEl.style.width = `${newSize}px`; 8236 } else { 8237 dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`; 8238 dragEl.style.height = `${newSize}px`; 8239 } 8240 if (params.hide) { 8241 clearTimeout(timeout); 8242 el.style.opacity = 1; 8243 timeout = setTimeout(() => { 8244 el.style.opacity = 0; 8245 el.style.transitionDuration = '400ms'; 8246 }, 1000); 8247 } 8248 } 8249 function setTransition(duration) { 8250 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 8251 swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`; 8252 } 8253 function updateSize() { 8254 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 8255 const { 8256 scrollbar 8257 } = swiper; 8258 const { 8259 dragEl, 8260 el 8261 } = scrollbar; 8262 dragEl.style.width = ''; 8263 dragEl.style.height = ''; 8264 trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight; 8265 divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0)); 8266 if (swiper.params.scrollbar.dragSize === 'auto') { 8267 dragSize = trackSize * divider; 8268 } else { 8269 dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); 8270 } 8271 if (swiper.isHorizontal()) { 8272 dragEl.style.width = `${dragSize}px`; 8273 } else { 8274 dragEl.style.height = `${dragSize}px`; 8275 } 8276 if (divider >= 1) { 8277 el.style.display = 'none'; 8278 } else { 8279 el.style.display = ''; 8280 } 8281 if (swiper.params.scrollbar.hide) { 8282 el.style.opacity = 0; 8283 } 8284 if (swiper.params.watchOverflow && swiper.enabled) { 8285 scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass); 8286 } 8287 } 8288 function getPointerPosition(e) { 8289 return swiper.isHorizontal() ? e.clientX : e.clientY; 8290 } 8291 function setDragPosition(e) { 8292 const { 8293 scrollbar, 8294 rtlTranslate: rtl 8295 } = swiper; 8296 const { 8297 el 8298 } = scrollbar; 8299 let positionRatio; 8300 positionRatio = (getPointerPosition(e) - (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementOffset)(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize); 8301 positionRatio = Math.max(Math.min(positionRatio, 1), 0); 8302 if (rtl) { 8303 positionRatio = 1 - positionRatio; 8304 } 8305 const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio; 8306 swiper.updateProgress(position); 8307 swiper.setTranslate(position); 8308 swiper.updateActiveIndex(); 8309 swiper.updateSlidesClasses(); 8310 } 8311 function onDragStart(e) { 8312 const params = swiper.params.scrollbar; 8313 const { 8314 scrollbar, 8315 wrapperEl 8316 } = swiper; 8317 const { 8318 el, 8319 dragEl 8320 } = scrollbar; 8321 isTouched = true; 8322 dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null; 8323 e.preventDefault(); 8324 e.stopPropagation(); 8325 wrapperEl.style.transitionDuration = '100ms'; 8326 dragEl.style.transitionDuration = '100ms'; 8327 setDragPosition(e); 8328 clearTimeout(dragTimeout); 8329 el.style.transitionDuration = '0ms'; 8330 if (params.hide) { 8331 el.style.opacity = 1; 8332 } 8333 if (swiper.params.cssMode) { 8334 swiper.wrapperEl.style['scroll-snap-type'] = 'none'; 8335 } 8336 emit('scrollbarDragStart', e); 8337 } 8338 function onDragMove(e) { 8339 const { 8340 scrollbar, 8341 wrapperEl 8342 } = swiper; 8343 const { 8344 el, 8345 dragEl 8346 } = scrollbar; 8347 if (!isTouched) return; 8348 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 8349 setDragPosition(e); 8350 wrapperEl.style.transitionDuration = '0ms'; 8351 el.style.transitionDuration = '0ms'; 8352 dragEl.style.transitionDuration = '0ms'; 8353 emit('scrollbarDragMove', e); 8354 } 8355 function onDragEnd(e) { 8356 const params = swiper.params.scrollbar; 8357 const { 8358 scrollbar, 8359 wrapperEl 8360 } = swiper; 8361 const { 8362 el 8363 } = scrollbar; 8364 if (!isTouched) return; 8365 isTouched = false; 8366 if (swiper.params.cssMode) { 8367 swiper.wrapperEl.style['scroll-snap-type'] = ''; 8368 wrapperEl.style.transitionDuration = ''; 8369 } 8370 if (params.hide) { 8371 clearTimeout(dragTimeout); 8372 dragTimeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => { 8373 el.style.opacity = 0; 8374 el.style.transitionDuration = '400ms'; 8375 }, 1000); 8376 } 8377 emit('scrollbarDragEnd', e); 8378 if (params.snapOnRelease) { 8379 swiper.slideToClosest(); 8380 } 8381 } 8382 function events(method) { 8383 const { 8384 scrollbar, 8385 params 8386 } = swiper; 8387 const el = scrollbar.el; 8388 if (!el) return; 8389 const target = el; 8390 const activeListener = params.passiveListeners ? { 8391 passive: false, 8392 capture: false 8393 } : false; 8394 const passiveListener = params.passiveListeners ? { 8395 passive: true, 8396 capture: false 8397 } : false; 8398 if (!target) return; 8399 const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; 8400 target[eventMethod]('pointerdown', onDragStart, activeListener); 8401 document[eventMethod]('pointermove', onDragMove, activeListener); 8402 document[eventMethod]('pointerup', onDragEnd, passiveListener); 8403 } 8404 function enableDraggable() { 8405 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 8406 events('on'); 8407 } 8408 function disableDraggable() { 8409 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 8410 events('off'); 8411 } 8412 function init() { 8413 const { 8414 scrollbar, 8415 el: swiperEl 8416 } = swiper; 8417 swiper.params.scrollbar = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_2__["default"])(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, { 8418 el: 'swiper-scrollbar' 8419 }); 8420 const params = swiper.params.scrollbar; 8421 if (!params.el) return; 8422 let el; 8423 if (typeof params.el === 'string' && swiper.isElement) { 8424 el = swiper.el.shadowRoot.querySelector(params.el); 8425 } 8426 if (!el && typeof params.el === 'string') { 8427 el = document.querySelectorAll(params.el); 8428 } else if (!el) { 8429 el = params.el; 8430 } 8431 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) { 8432 el = swiperEl.querySelector(params.el); 8433 } 8434 if (el.length > 0) el = el[0]; 8435 el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 8436 let dragEl; 8437 if (el) { 8438 dragEl = el.querySelector(`.${swiper.params.scrollbar.dragClass}`); 8439 if (!dragEl) { 8440 dragEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', swiper.params.scrollbar.dragClass); 8441 el.append(dragEl); 8442 } 8443 } 8444 Object.assign(scrollbar, { 8445 el, 8446 dragEl 8447 }); 8448 if (params.draggable) { 8449 enableDraggable(); 8450 } 8451 if (el) { 8452 el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass); 8453 } 8454 } 8455 function destroy() { 8456 const params = swiper.params.scrollbar; 8457 const el = swiper.scrollbar.el; 8458 if (el) { 8459 el.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 8460 } 8461 disableDraggable(); 8462 } 8463 on('init', () => { 8464 if (swiper.params.scrollbar.enabled === false) { 8465 // eslint-disable-next-line 8466 disable(); 8467 } else { 8468 init(); 8469 updateSize(); 8470 setTranslate(); 8471 } 8472 }); 8473 on('update resize observerUpdate lock unlock', () => { 8474 updateSize(); 8475 }); 8476 on('setTranslate', () => { 8477 setTranslate(); 8478 }); 8479 on('setTransition', (_s, duration) => { 8480 setTransition(duration); 8481 }); 8482 on('enable disable', () => { 8483 const { 8484 el 8485 } = swiper.scrollbar; 8486 if (el) { 8487 el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass); 8488 } 8489 }); 8490 on('destroy', () => { 8491 destroy(); 8492 }); 8493 const enable = () => { 8494 swiper.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass); 8495 if (swiper.scrollbar.el) { 8496 swiper.scrollbar.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass); 8497 } 8498 init(); 8499 updateSize(); 8500 setTranslate(); 8501 }; 8502 const disable = () => { 8503 swiper.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass); 8504 if (swiper.scrollbar.el) { 8505 swiper.scrollbar.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass); 8506 } 8507 destroy(); 8508 }; 8509 Object.assign(swiper.scrollbar, { 8510 enable, 8511 disable, 8512 updateSize, 8513 setTranslate, 8514 init, 8515 destroy 8516 }); 8517} 8518 8519/***/ }), 8520
vendor: 8,075 bytes, lines 8521-8725
8521/***/ "./node_modules/swiper/modules/thumbs/thumbs.js": 8522/*!******************************************************!*\ 8523 !*** ./node_modules/swiper/modules/thumbs/thumbs.js ***! 8524 \******************************************************/ 8525/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 8526 8527__webpack_require__.r(__webpack_exports__); 8528/* harmony export */ __webpack_require__.d(__webpack_exports__, { 8529/* harmony export */ "default": function() { return /* binding */ Thumb; } 8530/* harmony export */ }); 8531/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 8532/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 8533 8534 8535function Thumb({ 8536 swiper, 8537 extendParams, 8538 on 8539}) { 8540 extendParams({ 8541 thumbs: { 8542 swiper: null, 8543 multipleActiveThumbs: true, 8544 autoScrollOffset: 0, 8545 slideThumbActiveClass: 'swiper-slide-thumb-active', 8546 thumbsContainerClass: 'swiper-thumbs' 8547 } 8548 }); 8549 let initialized = false; 8550 let swiperCreated = false; 8551 swiper.thumbs = { 8552 swiper: null 8553 }; 8554 function onThumbClick() { 8555 const thumbsSwiper = swiper.thumbs.swiper; 8556 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 8557 const clickedIndex = thumbsSwiper.clickedIndex; 8558 const clickedSlide = thumbsSwiper.clickedSlide; 8559 if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return; 8560 if (typeof clickedIndex === 'undefined' || clickedIndex === null) return; 8561 let slideToIndex; 8562 if (thumbsSwiper.params.loop) { 8563 slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); 8564 } else { 8565 slideToIndex = clickedIndex; 8566 } 8567 if (swiper.params.loop) { 8568 swiper.slideToLoop(slideToIndex); 8569 } else { 8570 swiper.slideTo(slideToIndex); 8571 } 8572 } 8573 function init() { 8574 const { 8575 thumbs: thumbsParams 8576 } = swiper.params; 8577 if (initialized) return false; 8578 initialized = true; 8579 const SwiperClass = swiper.constructor; 8580 if (thumbsParams.swiper instanceof SwiperClass) { 8581 swiper.thumbs.swiper = thumbsParams.swiper; 8582 Object.assign(swiper.thumbs.swiper.originalParams, { 8583 watchSlidesProgress: true, 8584 slideToClickedSlide: false 8585 }); 8586 Object.assign(swiper.thumbs.swiper.params, { 8587 watchSlidesProgress: true, 8588 slideToClickedSlide: false 8589 }); 8590 swiper.thumbs.swiper.update(); 8591 } else if ((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.isObject)(thumbsParams.swiper)) { 8592 const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper); 8593 Object.assign(thumbsSwiperParams, { 8594 watchSlidesProgress: true, 8595 slideToClickedSlide: false 8596 }); 8597 swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams); 8598 swiperCreated = true; 8599 } 8600 swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass); 8601 swiper.thumbs.swiper.on('tap', onThumbClick); 8602 return true; 8603 } 8604 function update(initial) { 8605 const thumbsSwiper = swiper.thumbs.swiper; 8606 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 8607 const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; 8608 8609 // Activate thumbs 8610 let thumbsToActivate = 1; 8611 const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass; 8612 if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) { 8613 thumbsToActivate = swiper.params.slidesPerView; 8614 } 8615 if (!swiper.params.thumbs.multipleActiveThumbs) { 8616 thumbsToActivate = 1; 8617 } 8618 thumbsToActivate = Math.floor(thumbsToActivate); 8619 thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass)); 8620 if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) { 8621 for (let i = 0; i < thumbsToActivate; i += 1) { 8622 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => { 8623 slideEl.classList.add(thumbActiveClass); 8624 }); 8625 } 8626 } else { 8627 for (let i = 0; i < thumbsToActivate; i += 1) { 8628 if (thumbsSwiper.slides[swiper.realIndex + i]) { 8629 thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass); 8630 } 8631 } 8632 } 8633 const autoScrollOffset = swiper.params.thumbs.autoScrollOffset; 8634 const useOffset = autoScrollOffset && !thumbsSwiper.params.loop; 8635 if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) { 8636 const currentThumbsIndex = thumbsSwiper.activeIndex; 8637 let newThumbsIndex; 8638 let direction; 8639 if (thumbsSwiper.params.loop) { 8640 const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0]; 8641 newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide); 8642 direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev'; 8643 } else { 8644 newThumbsIndex = swiper.realIndex; 8645 direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev'; 8646 } 8647 if (useOffset) { 8648 newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset; 8649 } 8650 if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) { 8651 if (thumbsSwiper.params.centeredSlides) { 8652 if (newThumbsIndex > currentThumbsIndex) { 8653 newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1; 8654 } else { 8655 newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1; 8656 } 8657 } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) { 8658 // newThumbsIndex = newThumbsIndex - slidesPerView + 1; 8659 } 8660 thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined); 8661 } 8662 } 8663 } 8664 on('beforeInit', () => { 8665 const { 8666 thumbs 8667 } = swiper.params; 8668 if (!thumbs || !thumbs.swiper) return; 8669 if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) { 8670 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 8671 const getThumbsElementAndInit = () => { 8672 const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper; 8673 if (thumbsElement && thumbsElement.swiper) { 8674 thumbs.swiper = thumbsElement.swiper; 8675 init(); 8676 update(true); 8677 } else if (thumbsElement) { 8678 const onThumbsSwiper = e => { 8679 thumbs.swiper = e.detail[0]; 8680 thumbsElement.removeEventListener('init', onThumbsSwiper); 8681 init(); 8682 update(true); 8683 thumbs.swiper.update(); 8684 swiper.update(); 8685 }; 8686 thumbsElement.addEventListener('init', onThumbsSwiper); 8687 } 8688 return thumbsElement; 8689 }; 8690 const watchForThumbsToAppear = () => { 8691 if (swiper.destroyed) return; 8692 const thumbsElement = getThumbsElementAndInit(); 8693 if (!thumbsElement) { 8694 requestAnimationFrame(watchForThumbsToAppear); 8695 } 8696 }; 8697 requestAnimationFrame(watchForThumbsToAppear); 8698 } else { 8699 init(); 8700 update(true); 8701 } 8702 }); 8703 on('slideChange update resize observerUpdate', () => { 8704 update(); 8705 }); 8706 on('setTransition', (_s, duration) => { 8707 const thumbsSwiper = swiper.thumbs.swiper; 8708 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 8709 thumbsSwiper.setTransition(duration); 8710 }); 8711 on('beforeDestroy', () => { 8712 const thumbsSwiper = swiper.thumbs.swiper; 8713 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 8714 if (swiperCreated) { 8715 thumbsSwiper.destroy(); 8716 } 8717 }); 8718 Object.assign(swiper.thumbs, { 8719 init, 8720 update 8721 }); 8722} 8723 8724/***/ }), 8725
vendor: 11,576 bytes, lines 8726-9065
8726/***/ "./node_modules/swiper/modules/virtual/virtual.js": 8727/*!********************************************************!*\ 8728 !*** ./node_modules/swiper/modules/virtual/virtual.js ***! 8729 \********************************************************/ 8730/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 8731 8732__webpack_require__.r(__webpack_exports__); 8733/* harmony export */ __webpack_require__.d(__webpack_exports__, { 8734/* harmony export */ "default": function() { return /* binding */ Virtual; } 8735/* harmony export */ }); 8736/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 8737/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 8738 8739 8740function Virtual({ 8741 swiper, 8742 extendParams, 8743 on, 8744 emit 8745}) { 8746 extendParams({ 8747 virtual: { 8748 enabled: false, 8749 slides: [], 8750 cache: true, 8751 renderSlide: null, 8752 renderExternal: null, 8753 renderExternalUpdate: true, 8754 addSlidesBefore: 0, 8755 addSlidesAfter: 0 8756 } 8757 }); 8758 let cssModeTimeout; 8759 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 8760 swiper.virtual = { 8761 cache: {}, 8762 from: undefined, 8763 to: undefined, 8764 slides: [], 8765 offset: 0, 8766 slidesGrid: [] 8767 }; 8768 const tempDOM = document.createElement('div'); 8769 function renderSlide(slide, index) { 8770 const params = swiper.params.virtual; 8771 if (params.cache && swiper.virtual.cache[index]) { 8772 return swiper.virtual.cache[index]; 8773 } 8774 // eslint-disable-next-line 8775 let slideEl; 8776 if (params.renderSlide) { 8777 slideEl = params.renderSlide.call(swiper, slide, index); 8778 if (typeof slideEl === 'string') { 8779 tempDOM.innerHTML = slideEl; 8780 slideEl = tempDOM.children[0]; 8781 } 8782 } else if (swiper.isElement) { 8783 slideEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('swiper-slide'); 8784 } else { 8785 slideEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', swiper.params.slideClass); 8786 } 8787 slideEl.setAttribute('data-swiper-slide-index', index); 8788 if (!params.renderSlide) { 8789 slideEl.innerHTML = slide; 8790 } 8791 if (params.cache) swiper.virtual.cache[index] = slideEl; 8792 return slideEl; 8793 } 8794 function update(force) { 8795 const { 8796 slidesPerView, 8797 slidesPerGroup, 8798 centeredSlides, 8799 loop: isLoop 8800 } = swiper.params; 8801 const { 8802 addSlidesBefore, 8803 addSlidesAfter 8804 } = swiper.params.virtual; 8805 const { 8806 from: previousFrom, 8807 to: previousTo, 8808 slides, 8809 slidesGrid: previousSlidesGrid, 8810 offset: previousOffset 8811 } = swiper.virtual; 8812 if (!swiper.params.cssMode) { 8813 swiper.updateActiveIndex(); 8814 } 8815 const activeIndex = swiper.activeIndex || 0; 8816 let offsetProp; 8817 if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top'; 8818 let slidesAfter; 8819 let slidesBefore; 8820 if (centeredSlides) { 8821 slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter; 8822 slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore; 8823 } else { 8824 slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter; 8825 slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore; 8826 } 8827 let from = activeIndex - slidesBefore; 8828 let to = activeIndex + slidesAfter; 8829 if (!isLoop) { 8830 from = Math.max(from, 0); 8831 to = Math.min(to, slides.length - 1); 8832 } 8833 let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); 8834 if (isLoop && activeIndex >= slidesBefore) { 8835 from -= slidesBefore; 8836 if (!centeredSlides) offset += swiper.slidesGrid[0]; 8837 } else if (isLoop && activeIndex < slidesBefore) { 8838 from = -slidesBefore; 8839 if (centeredSlides) offset += swiper.slidesGrid[0]; 8840 } 8841 Object.assign(swiper.virtual, { 8842 from, 8843 to, 8844 offset, 8845 slidesGrid: swiper.slidesGrid, 8846 slidesBefore, 8847 slidesAfter 8848 }); 8849 function onRendered() { 8850 swiper.updateSlides(); 8851 swiper.updateProgress(); 8852 swiper.updateSlidesClasses(); 8853 emit('virtualUpdate'); 8854 } 8855 if (previousFrom === from && previousTo === to && !force) { 8856 if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) { 8857 swiper.slides.forEach(slideEl => { 8858 slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; 8859 }); 8860 } 8861 swiper.updateProgress(); 8862 emit('virtualUpdate'); 8863 return; 8864 } 8865 if (swiper.params.virtual.renderExternal) { 8866 swiper.params.virtual.renderExternal.call(swiper, { 8867 offset, 8868 from, 8869 to, 8870 slides: function getSlides() { 8871 const slidesToRender = []; 8872 for (let i = from; i <= to; i += 1) { 8873 slidesToRender.push(slides[i]); 8874 } 8875 return slidesToRender; 8876 }() 8877 }); 8878 if (swiper.params.virtual.renderExternalUpdate) { 8879 onRendered(); 8880 } else { 8881 emit('virtualUpdate'); 8882 } 8883 return; 8884 } 8885 const prependIndexes = []; 8886 const appendIndexes = []; 8887 const getSlideIndex = index => { 8888 let slideIndex = index; 8889 if (index < 0) { 8890 slideIndex = slides.length + index; 8891 } else if (slideIndex >= slides.length) { 8892 // eslint-disable-next-line 8893 slideIndex = slideIndex - slides.length; 8894 } 8895 return slideIndex; 8896 }; 8897 if (force) { 8898 swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}, swiper-slide`).forEach(slideEl => { 8899 slideEl.remove(); 8900 }); 8901 } else { 8902 for (let i = previousFrom; i <= previousTo; i += 1) { 8903 if (i < from || i > to) { 8904 const slideIndex = getSlideIndex(i); 8905 swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`).forEach(slideEl => { 8906 slideEl.remove(); 8907 }); 8908 } 8909 } 8910 } 8911 const loopFrom = isLoop ? -slides.length : 0; 8912 const loopTo = isLoop ? slides.length * 2 : slides.length; 8913 for (let i = loopFrom; i < loopTo; i += 1) { 8914 if (i >= from && i <= to) { 8915 const slideIndex = getSlideIndex(i); 8916 if (typeof previousTo === 'undefined' || force) { 8917 appendIndexes.push(slideIndex); 8918 } else { 8919 if (i > previousTo) appendIndexes.push(slideIndex); 8920 if (i < previousFrom) prependIndexes.push(slideIndex); 8921 } 8922 } 8923 } 8924 appendIndexes.forEach(index => { 8925 swiper.slidesEl.append(renderSlide(slides[index], index)); 8926 }); 8927 if (isLoop) { 8928 for (let i = prependIndexes.length - 1; i >= 0; i -= 1) { 8929 const index = prependIndexes[i]; 8930 swiper.slidesEl.prepend(renderSlide(slides[index], index)); 8931 } 8932 } else { 8933 prependIndexes.sort((a, b) => b - a); 8934 prependIndexes.forEach(index => { 8935 swiper.slidesEl.prepend(renderSlide(slides[index], index)); 8936 }); 8937 } 8938 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => { 8939 slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; 8940 }); 8941 onRendered(); 8942 } 8943 function appendSlide(slides) { 8944 if (typeof slides === 'object' && 'length' in slides) { 8945 for (let i = 0; i < slides.length; i += 1) { 8946 if (slides[i]) swiper.virtual.slides.push(slides[i]); 8947 } 8948 } else { 8949 swiper.virtual.slides.push(slides); 8950 } 8951 update(true); 8952 } 8953 function prependSlide(slides) { 8954 const activeIndex = swiper.activeIndex; 8955 let newActiveIndex = activeIndex + 1; 8956 let numberOfNewSlides = 1; 8957 if (Array.isArray(slides)) { 8958 for (let i = 0; i < slides.length; i += 1) { 8959 if (slides[i]) swiper.virtual.slides.unshift(slides[i]); 8960 } 8961 newActiveIndex = activeIndex + slides.length; 8962 numberOfNewSlides = slides.length; 8963 } else { 8964 swiper.virtual.slides.unshift(slides); 8965 } 8966 if (swiper.params.virtual.cache) { 8967 const cache = swiper.virtual.cache; 8968 const newCache = {}; 8969 Object.keys(cache).forEach(cachedIndex => { 8970 const cachedEl = cache[cachedIndex]; 8971 const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index'); 8972 if (cachedElIndex) { 8973 cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides); 8974 } 8975 newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl; 8976 }); 8977 swiper.virtual.cache = newCache; 8978 } 8979 update(true); 8980 swiper.slideTo(newActiveIndex, 0); 8981 } 8982 function removeSlide(slidesIndexes) { 8983 if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return; 8984 let activeIndex = swiper.activeIndex; 8985 if (Array.isArray(slidesIndexes)) { 8986 for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) { 8987 swiper.virtual.slides.splice(slidesIndexes[i], 1); 8988 if (swiper.params.virtual.cache) { 8989 delete swiper.virtual.cache[slidesIndexes[i]]; 8990 } 8991 if (slidesIndexes[i] < activeIndex) activeIndex -= 1; 8992 activeIndex = Math.max(activeIndex, 0); 8993 } 8994 } else { 8995 swiper.virtual.slides.splice(slidesIndexes, 1); 8996 if (swiper.params.virtual.cache) { 8997 delete swiper.virtual.cache[slidesIndexes]; 8998 } 8999 if (slidesIndexes < activeIndex) activeIndex -= 1; 9000 activeIndex = Math.max(activeIndex, 0); 9001 } 9002 update(true); 9003 swiper.slideTo(activeIndex, 0); 9004 } 9005 function removeAllSlides() { 9006 swiper.virtual.slides = []; 9007 if (swiper.params.virtual.cache) { 9008 swiper.virtual.cache = {}; 9009 } 9010 update(true); 9011 swiper.slideTo(0, 0); 9012 } 9013 on('beforeInit', () => { 9014 if (!swiper.params.virtual.enabled) return; 9015 let domSlidesAssigned; 9016 if (typeof swiper.passedParams.virtual.slides === 'undefined') { 9017 const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)); 9018 if (slides && slides.length) { 9019 swiper.virtual.slides = [...slides]; 9020 domSlidesAssigned = true; 9021 slides.forEach((slideEl, slideIndex) => { 9022 slideEl.setAttribute('data-swiper-slide-index', slideIndex); 9023 swiper.virtual.cache[slideIndex] = slideEl; 9024 slideEl.remove(); 9025 }); 9026 } 9027 } 9028 if (!domSlidesAssigned) { 9029 swiper.virtual.slides = swiper.params.virtual.slides; 9030 } 9031 swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`); 9032 swiper.params.watchSlidesProgress = true; 9033 swiper.originalParams.watchSlidesProgress = true; 9034 if (!swiper.params.initialSlide) { 9035 update(); 9036 } 9037 }); 9038 on('setTranslate', () => { 9039 if (!swiper.params.virtual.enabled) return; 9040 if (swiper.params.cssMode && !swiper._immediateVirtual) { 9041 clearTimeout(cssModeTimeout); 9042 cssModeTimeout = setTimeout(() => { 9043 update(); 9044 }, 100); 9045 } else { 9046 update(); 9047 } 9048 }); 9049 on('init update resize', () => { 9050 if (!swiper.params.virtual.enabled) return; 9051 if (swiper.params.cssMode) { 9052 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.setCSSProperty)(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`); 9053 } 9054 }); 9055 Object.assign(swiper.virtual, { 9056 appendSlide, 9057 prependSlide, 9058 removeSlide, 9059 removeAllSlides, 9060 update 9061 }); 9062} 9063 9064/***/ }), 9065
vendor: 22,571 bytes, lines 9066-9667
9066/***/ "./node_modules/swiper/modules/zoom/zoom.js": 9067/*!**************************************************!*\ 9068 !*** ./node_modules/swiper/modules/zoom/zoom.js ***! 9069 \**************************************************/ 9070/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 9071 9072__webpack_require__.r(__webpack_exports__); 9073/* harmony export */ __webpack_require__.d(__webpack_exports__, { 9074/* harmony export */ "default": function() { return /* binding */ Zoom; } 9075/* harmony export */ }); 9076/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 9077/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 9078 9079 9080function Zoom({ 9081 swiper, 9082 extendParams, 9083 on, 9084 emit 9085}) { 9086 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 9087 extendParams({ 9088 zoom: { 9089 enabled: false, 9090 maxRatio: 3, 9091 minRatio: 1, 9092 toggle: true, 9093 containerClass: 'swiper-zoom-container', 9094 zoomedSlideClass: 'swiper-slide-zoomed' 9095 } 9096 }); 9097 swiper.zoom = { 9098 enabled: false 9099 }; 9100 let currentScale = 1; 9101 let isScaling = false; 9102 let fakeGestureTouched; 9103 let fakeGestureMoved; 9104 const evCache = []; 9105 const gesture = { 9106 originX: 0, 9107 originY: 0, 9108 slideEl: undefined, 9109 slideWidth: undefined, 9110 slideHeight: undefined, 9111 imageEl: undefined, 9112 imageWrapEl: undefined, 9113 maxRatio: 3 9114 }; 9115 const image = { 9116 isTouched: undefined, 9117 isMoved: undefined, 9118 currentX: undefined, 9119 currentY: undefined, 9120 minX: undefined, 9121 minY: undefined, 9122 maxX: undefined, 9123 maxY: undefined, 9124 width: undefined, 9125 height: undefined, 9126 startX: undefined, 9127 startY: undefined, 9128 touchesStart: {}, 9129 touchesCurrent: {} 9130 }; 9131 const velocity = { 9132 x: undefined, 9133 y: undefined, 9134 prevPositionX: undefined, 9135 prevPositionY: undefined, 9136 prevTime: undefined 9137 }; 9138 let scale = 1; 9139 Object.defineProperty(swiper.zoom, 'scale', { 9140 get() { 9141 return scale; 9142 }, 9143 set(value) { 9144 if (scale !== value) { 9145 const imageEl = gesture.imageEl; 9146 const slideEl = gesture.slideEl; 9147 emit('zoomChange', value, imageEl, slideEl); 9148 } 9149 scale = value; 9150 } 9151 }); 9152 function getDistanceBetweenTouches() { 9153 if (evCache.length < 2) return 1; 9154 const x1 = evCache[0].pageX; 9155 const y1 = evCache[0].pageY; 9156 const x2 = evCache[1].pageX; 9157 const y2 = evCache[1].pageY; 9158 const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2); 9159 return distance; 9160 } 9161 function getScaleOrigin() { 9162 if (evCache.length < 2) return { 9163 x: null, 9164 y: null 9165 }; 9166 const box = gesture.imageEl.getBoundingClientRect(); 9167 return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y) / currentScale]; 9168 } 9169 function getSlideSelector() { 9170 return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; 9171 } 9172 function eventWithinSlide(e) { 9173 const slideSelector = getSlideSelector(); 9174 if (e.target.matches(slideSelector)) return true; 9175 if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true; 9176 return false; 9177 } 9178 function eventWithinZoomContainer(e) { 9179 const selector = `.${swiper.params.zoom.containerClass}`; 9180 if (e.target.matches(selector)) return true; 9181 if ([...swiper.el.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true; 9182 return false; 9183 } 9184 9185 // Events 9186 function onGestureStart(e) { 9187 if (e.pointerType === 'mouse') { 9188 evCache.splice(0, evCache.length); 9189 } 9190 if (!eventWithinSlide(e)) return; 9191 const params = swiper.params.zoom; 9192 fakeGestureTouched = false; 9193 fakeGestureMoved = false; 9194 evCache.push(e); 9195 if (evCache.length < 2) { 9196 return; 9197 } 9198 fakeGestureTouched = true; 9199 gesture.scaleStart = getDistanceBetweenTouches(); 9200 if (!gesture.slideEl) { 9201 gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); 9202 if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex]; 9203 let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); 9204 if (imageEl) { 9205 imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; 9206 } 9207 gesture.imageEl = imageEl; 9208 if (imageEl) { 9209 gesture.imageWrapEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementParents)(gesture.imageEl, `.${params.containerClass}`)[0]; 9210 } else { 9211 gesture.imageWrapEl = undefined; 9212 } 9213 if (!gesture.imageWrapEl) { 9214 gesture.imageEl = undefined; 9215 return; 9216 } 9217 gesture.maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; 9218 } 9219 if (gesture.imageEl) { 9220 const [originX, originY] = getScaleOrigin(); 9221 gesture.originX = originX; 9222 gesture.originY = originY; 9223 gesture.imageEl.style.transitionDuration = '0ms'; 9224 } 9225 isScaling = true; 9226 } 9227 function onGestureChange(e) { 9228 if (!eventWithinSlide(e)) return; 9229 const params = swiper.params.zoom; 9230 const zoom = swiper.zoom; 9231 const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); 9232 if (pointerIndex >= 0) evCache[pointerIndex] = e; 9233 if (evCache.length < 2) { 9234 return; 9235 } 9236 fakeGestureMoved = true; 9237 gesture.scaleMove = getDistanceBetweenTouches(); 9238 if (!gesture.imageEl) { 9239 return; 9240 } 9241 zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale; 9242 if (zoom.scale > gesture.maxRatio) { 9243 zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5; 9244 } 9245 if (zoom.scale < params.minRatio) { 9246 zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5; 9247 } 9248 gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; 9249 } 9250 function onGestureEnd(e) { 9251 if (!eventWithinSlide(e)) return; 9252 if (e.pointerType === 'mouse' && e.type === 'pointerout') return; 9253 const params = swiper.params.zoom; 9254 const zoom = swiper.zoom; 9255 const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); 9256 if (pointerIndex >= 0) evCache.splice(pointerIndex, 1); 9257 if (!fakeGestureTouched || !fakeGestureMoved) { 9258 return; 9259 } 9260 fakeGestureTouched = false; 9261 fakeGestureMoved = false; 9262 if (!gesture.imageEl) return; 9263 zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); 9264 gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`; 9265 gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; 9266 currentScale = zoom.scale; 9267 isScaling = false; 9268 if (zoom.scale > 1 && gesture.slideEl) { 9269 gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); 9270 } else if (zoom.scale <= 1 && gesture.slideEl) { 9271 gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); 9272 } 9273 if (zoom.scale === 1) { 9274 gesture.originX = 0; 9275 gesture.originY = 0; 9276 gesture.slideEl = undefined; 9277 } 9278 } 9279 function onTouchStart(e) { 9280 const device = swiper.device; 9281 if (!gesture.imageEl) return; 9282 if (image.isTouched) return; 9283 if (device.android && e.cancelable) e.preventDefault(); 9284 image.isTouched = true; 9285 const event = evCache.length > 0 ? evCache[0] : e; 9286 image.touchesStart.x = event.pageX; 9287 image.touchesStart.y = event.pageY; 9288 } 9289 function onTouchMove(e) { 9290 if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return; 9291 const zoom = swiper.zoom; 9292 if (!gesture.imageEl) return; 9293 if (!image.isTouched || !gesture.slideEl) return; 9294 if (!image.isMoved) { 9295 image.width = gesture.imageEl.offsetWidth; 9296 image.height = gesture.imageEl.offsetHeight; 9297 image.startX = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.getTranslate)(gesture.imageWrapEl, 'x') || 0; 9298 image.startY = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.getTranslate)(gesture.imageWrapEl, 'y') || 0; 9299 gesture.slideWidth = gesture.slideEl.offsetWidth; 9300 gesture.slideHeight = gesture.slideEl.offsetHeight; 9301 gesture.imageWrapEl.style.transitionDuration = '0ms'; 9302 } 9303 // Define if we need image drag 9304 const scaledWidth = image.width * zoom.scale; 9305 const scaledHeight = image.height * zoom.scale; 9306 if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return; 9307 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 9308 image.maxX = -image.minX; 9309 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 9310 image.maxY = -image.minY; 9311 image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX; 9312 image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY; 9313 const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y)); 9314 if (touchesDiff > 5) { 9315 swiper.allowClick = false; 9316 } 9317 if (!image.isMoved && !isScaling) { 9318 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)) { 9319 image.isTouched = false; 9320 return; 9321 } 9322 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)) { 9323 image.isTouched = false; 9324 return; 9325 } 9326 } 9327 if (e.cancelable) { 9328 e.preventDefault(); 9329 } 9330 e.stopPropagation(); 9331 image.isMoved = true; 9332 const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio); 9333 const { 9334 originX, 9335 originY 9336 } = gesture; 9337 image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2); 9338 image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2); 9339 if (image.currentX < image.minX) { 9340 image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8; 9341 } 9342 if (image.currentX > image.maxX) { 9343 image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8; 9344 } 9345 if (image.currentY < image.minY) { 9346 image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8; 9347 } 9348 if (image.currentY > image.maxY) { 9349 image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8; 9350 } 9351 9352 // Velocity 9353 if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x; 9354 if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y; 9355 if (!velocity.prevTime) velocity.prevTime = Date.now(); 9356 velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; 9357 velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; 9358 if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0; 9359 if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0; 9360 velocity.prevPositionX = image.touchesCurrent.x; 9361 velocity.prevPositionY = image.touchesCurrent.y; 9362 velocity.prevTime = Date.now(); 9363 gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; 9364 } 9365 function onTouchEnd() { 9366 const zoom = swiper.zoom; 9367 if (!gesture.imageEl) return; 9368 if (!image.isTouched || !image.isMoved) { 9369 image.isTouched = false; 9370 image.isMoved = false; 9371 return; 9372 } 9373 image.isTouched = false; 9374 image.isMoved = false; 9375 let momentumDurationX = 300; 9376 let momentumDurationY = 300; 9377 const momentumDistanceX = velocity.x * momentumDurationX; 9378 const newPositionX = image.currentX + momentumDistanceX; 9379 const momentumDistanceY = velocity.y * momentumDurationY; 9380 const newPositionY = image.currentY + momentumDistanceY; 9381 9382 // Fix duration 9383 if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); 9384 if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); 9385 const momentumDuration = Math.max(momentumDurationX, momentumDurationY); 9386 image.currentX = newPositionX; 9387 image.currentY = newPositionY; 9388 // Define if we need image drag 9389 const scaledWidth = image.width * zoom.scale; 9390 const scaledHeight = image.height * zoom.scale; 9391 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 9392 image.maxX = -image.minX; 9393 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 9394 image.maxY = -image.minY; 9395 image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); 9396 image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); 9397 gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`; 9398 gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; 9399 } 9400 function onTransitionEnd() { 9401 const zoom = swiper.zoom; 9402 if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) { 9403 if (gesture.imageEl) { 9404 gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; 9405 } 9406 if (gesture.imageWrapEl) { 9407 gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; 9408 } 9409 gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`); 9410 zoom.scale = 1; 9411 currentScale = 1; 9412 gesture.slideEl = undefined; 9413 gesture.imageEl = undefined; 9414 gesture.imageWrapEl = undefined; 9415 gesture.originX = 0; 9416 gesture.originY = 0; 9417 } 9418 } 9419 function zoomIn(e) { 9420 const zoom = swiper.zoom; 9421 const params = swiper.params.zoom; 9422 if (!gesture.slideEl) { 9423 if (e && e.target) { 9424 gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); 9425 } 9426 if (!gesture.slideEl) { 9427 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 9428 gesture.slideEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; 9429 } else { 9430 gesture.slideEl = swiper.slides[swiper.activeIndex]; 9431 } 9432 } 9433 let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); 9434 if (imageEl) { 9435 imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; 9436 } 9437 gesture.imageEl = imageEl; 9438 if (imageEl) { 9439 gesture.imageWrapEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementParents)(gesture.imageEl, `.${params.containerClass}`)[0]; 9440 } else { 9441 gesture.imageWrapEl = undefined; 9442 } 9443 } 9444 if (!gesture.imageEl || !gesture.imageWrapEl) return; 9445 if (swiper.params.cssMode) { 9446 swiper.wrapperEl.style.overflow = 'hidden'; 9447 swiper.wrapperEl.style.touchAction = 'none'; 9448 } 9449 gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); 9450 let touchX; 9451 let touchY; 9452 let offsetX; 9453 let offsetY; 9454 let diffX; 9455 let diffY; 9456 let translateX; 9457 let translateY; 9458 let imageWidth; 9459 let imageHeight; 9460 let scaledWidth; 9461 let scaledHeight; 9462 let translateMinX; 9463 let translateMinY; 9464 let translateMaxX; 9465 let translateMaxY; 9466 let slideWidth; 9467 let slideHeight; 9468 if (typeof image.touchesStart.x === 'undefined' && e) { 9469 touchX = e.pageX; 9470 touchY = e.pageY; 9471 } else { 9472 touchX = image.touchesStart.x; 9473 touchY = image.touchesStart.y; 9474 } 9475 const forceZoomRatio = typeof e === 'number' ? e : null; 9476 if (currentScale === 1 && forceZoomRatio) { 9477 touchX = undefined; 9478 touchY = undefined; 9479 } 9480 zoom.scale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; 9481 currentScale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; 9482 if (e && !(currentScale === 1 && forceZoomRatio)) { 9483 slideWidth = gesture.slideEl.offsetWidth; 9484 slideHeight = gesture.slideEl.offsetHeight; 9485 offsetX = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementOffset)(gesture.slideEl).left + window.scrollX; 9486 offsetY = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementOffset)(gesture.slideEl).top + window.scrollY; 9487 diffX = offsetX + slideWidth / 2 - touchX; 9488 diffY = offsetY + slideHeight / 2 - touchY; 9489 imageWidth = gesture.imageEl.offsetWidth; 9490 imageHeight = gesture.imageEl.offsetHeight; 9491 scaledWidth = imageWidth * zoom.scale; 9492 scaledHeight = imageHeight * zoom.scale; 9493 translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0); 9494 translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0); 9495 translateMaxX = -translateMinX; 9496 translateMaxY = -translateMinY; 9497 translateX = diffX * zoom.scale; 9498 translateY = diffY * zoom.scale; 9499 if (translateX < translateMinX) { 9500 translateX = translateMinX; 9501 } 9502 if (translateX > translateMaxX) { 9503 translateX = translateMaxX; 9504 } 9505 if (translateY < translateMinY) { 9506 translateY = translateMinY; 9507 } 9508 if (translateY > translateMaxY) { 9509 translateY = translateMaxY; 9510 } 9511 } else { 9512 translateX = 0; 9513 translateY = 0; 9514 } 9515 if (forceZoomRatio && zoom.scale === 1) { 9516 gesture.originX = 0; 9517 gesture.originY = 0; 9518 } 9519 gesture.imageWrapEl.style.transitionDuration = '300ms'; 9520 gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`; 9521 gesture.imageEl.style.transitionDuration = '300ms'; 9522 gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; 9523 } 9524 function zoomOut() { 9525 const zoom = swiper.zoom; 9526 const params = swiper.params.zoom; 9527 if (!gesture.slideEl) { 9528 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 9529 gesture.slideEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; 9530 } else { 9531 gesture.slideEl = swiper.slides[swiper.activeIndex]; 9532 } 9533 let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); 9534 if (imageEl) { 9535 imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; 9536 } 9537 gesture.imageEl = imageEl; 9538 if (imageEl) { 9539 gesture.imageWrapEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementParents)(gesture.imageEl, `.${params.containerClass}`)[0]; 9540 } else { 9541 gesture.imageWrapEl = undefined; 9542 } 9543 } 9544 if (!gesture.imageEl || !gesture.imageWrapEl) return; 9545 if (swiper.params.cssMode) { 9546 swiper.wrapperEl.style.overflow = ''; 9547 swiper.wrapperEl.style.touchAction = ''; 9548 } 9549 zoom.scale = 1; 9550 currentScale = 1; 9551 gesture.imageWrapEl.style.transitionDuration = '300ms'; 9552 gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; 9553 gesture.imageEl.style.transitionDuration = '300ms'; 9554 gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; 9555 gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); 9556 gesture.slideEl = undefined; 9557 gesture.originX = 0; 9558 gesture.originY = 0; 9559 } 9560 9561 // Toggle Zoom 9562 function zoomToggle(e) { 9563 const zoom = swiper.zoom; 9564 if (zoom.scale && zoom.scale !== 1) { 9565 // Zoom Out 9566 zoomOut(); 9567 } else { 9568 // Zoom In 9569 zoomIn(e); 9570 } 9571 } 9572 function getListeners() { 9573 const passiveListener = swiper.params.passiveListeners ? { 9574 passive: true, 9575 capture: false 9576 } : false; 9577 const activeListenerWithCapture = swiper.params.passiveListeners ? { 9578 passive: false, 9579 capture: true 9580 } : true; 9581 return { 9582 passiveListener, 9583 activeListenerWithCapture 9584 }; 9585 } 9586 9587 // Attach/Detach Events 9588 function enable() { 9589 const zoom = swiper.zoom; 9590 if (zoom.enabled) return; 9591 zoom.enabled = true; 9592 const { 9593 passiveListener, 9594 activeListenerWithCapture 9595 } = getListeners(); 9596 9597 // Scale image 9598 swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener); 9599 swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture); 9600 ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { 9601 swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener); 9602 }); 9603 9604 // Move image 9605 swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture); 9606 } 9607 function disable() { 9608 const zoom = swiper.zoom; 9609 if (!zoom.enabled) return; 9610 zoom.enabled = false; 9611 const { 9612 passiveListener, 9613 activeListenerWithCapture 9614 } = getListeners(); 9615 9616 // Scale image 9617 swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener); 9618 swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture); 9619 ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { 9620 swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener); 9621 }); 9622 9623 // Move image 9624 swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture); 9625 } 9626 on('init', () => { 9627 if (swiper.params.zoom.enabled) { 9628 enable(); 9629 } 9630 }); 9631 on('destroy', () => { 9632 disable(); 9633 }); 9634 on('touchStart', (_s, e) => { 9635 if (!swiper.zoom.enabled) return; 9636 onTouchStart(e); 9637 }); 9638 on('touchEnd', (_s, e) => { 9639 if (!swiper.zoom.enabled) return; 9640 onTouchEnd(e); 9641 }); 9642 on('doubleTap', (_s, e) => { 9643 if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { 9644 zoomToggle(e); 9645 } 9646 }); 9647 on('transitionEnd', () => { 9648 if (swiper.zoom.enabled && swiper.params.zoom.enabled) { 9649 onTransitionEnd(); 9650 } 9651 }); 9652 on('slideChange', () => { 9653 if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) { 9654 onTransitionEnd(); 9655 } 9656 }); 9657 Object.assign(swiper.zoom, { 9658 enable, 9659 disable, 9660 in: zoomIn, 9661 out: zoomOut, 9662 toggle: zoomToggle 9663 }); 9664} 9665 9666/***/ }), 9667
vendor: 742 bytes, lines 9668-9684
9668/***/ "./node_modules/swiper/shared/classes-to-selector.js": 9669/*!***********************************************************!*\ 9670 !*** ./node_modules/swiper/shared/classes-to-selector.js ***! 9671 \***********************************************************/ 9672/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 9673 9674__webpack_require__.r(__webpack_exports__); 9675/* harmony export */ __webpack_require__.d(__webpack_exports__, { 9676/* harmony export */ "default": function() { return /* binding */ classesToSelector; } 9677/* harmony export */ }); 9678function classesToSelector(classes = '') { 9679 return `.${classes.trim().replace(/([\.:!+\/])/g, '\\$1') // eslint-disable-line 9680 .replace(/ /g, '.')}`; 9681} 9682 9683/***/ }), 9684
vendor: 1,446 bytes, lines 9685-9716
9685/***/ "./node_modules/swiper/shared/create-element-if-not-defined.js": 9686/*!*********************************************************************!*\ 9687 !*** ./node_modules/swiper/shared/create-element-if-not-defined.js ***! 9688 \*********************************************************************/ 9689/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 9690 9691__webpack_require__.r(__webpack_exports__); 9692/* harmony export */ __webpack_require__.d(__webpack_exports__, { 9693/* harmony export */ "default": function() { return /* binding */ createElementIfNotDefined; } 9694/* harmony export */ }); 9695/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "./node_modules/swiper/shared/utils.js"); 9696 9697function createElementIfNotDefined(swiper, originalParams, params, checkProps) { 9698 if (swiper.params.createElements) { 9699 Object.keys(checkProps).forEach(key => { 9700 if (!params[key] && params.auto === true) { 9701 let element = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementChildren)(swiper.el, `.${checkProps[key]}`)[0]; 9702 if (!element) { 9703 element = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.createElement)('div', checkProps[key]); 9704 element.className = checkProps[key]; 9705 swiper.el.append(element); 9706 } 9707 params[key] = element; 9708 originalParams[key] = element; 9709 } 9710 }); 9711 } 9712 return params; 9713} 9714 9715/***/ }), 9716
vendor: 1,200 bytes, lines 9717-9741
9717/***/ "./node_modules/swiper/shared/create-shadow.js": 9718/*!*****************************************************!*\ 9719 !*** ./node_modules/swiper/shared/create-shadow.js ***! 9720 \*****************************************************/ 9721/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 9722 9723__webpack_require__.r(__webpack_exports__); 9724/* harmony export */ __webpack_require__.d(__webpack_exports__, { 9725/* harmony export */ "default": function() { return /* binding */ createShadow; } 9726/* harmony export */ }); 9727/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "./node_modules/swiper/shared/utils.js"); 9728 9729function createShadow(params, slideEl, side) { 9730 const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`; 9731 const shadowContainer = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.getSlideTransformEl)(slideEl); 9732 let shadowEl = shadowContainer.querySelector(`.${shadowClass}`); 9733 if (!shadowEl) { 9734 shadowEl = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.createElement)('div', `swiper-slide-shadow${side ? `-${side}` : ''}`); 9735 shadowContainer.append(shadowEl); 9736 } 9737 return shadowEl; 9738} 9739 9740/***/ }), 9741
vendor: 2,345 bytes, lines 9742-9810
9742/***/ "./node_modules/swiper/shared/effect-init.js": 9743/*!***************************************************!*\ 9744 !*** ./node_modules/swiper/shared/effect-init.js ***! 9745 \***************************************************/ 9746/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 9747 9748__webpack_require__.r(__webpack_exports__); 9749/* harmony export */ __webpack_require__.d(__webpack_exports__, { 9750/* harmony export */ "default": function() { return /* binding */ effectInit; } 9751/* harmony export */ }); 9752function effectInit(params) { 9753 const { 9754 effect, 9755 swiper, 9756 on, 9757 setTranslate, 9758 setTransition, 9759 overwriteParams, 9760 perspective, 9761 recreateShadows, 9762 getEffectParams 9763 } = params; 9764 on('beforeInit', () => { 9765 if (swiper.params.effect !== effect) return; 9766 swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`); 9767 if (perspective && perspective()) { 9768 swiper.classNames.push(`${swiper.params.containerModifierClass}3d`); 9769 } 9770 const overwriteParamsResult = overwriteParams ? overwriteParams() : {}; 9771 Object.assign(swiper.params, overwriteParamsResult); 9772 Object.assign(swiper.originalParams, overwriteParamsResult); 9773 }); 9774 on('setTranslate', () => { 9775 if (swiper.params.effect !== effect) return; 9776 setTranslate(); 9777 }); 9778 on('setTransition', (_s, duration) => { 9779 if (swiper.params.effect !== effect) return; 9780 setTransition(duration); 9781 }); 9782 on('transitionEnd', () => { 9783 if (swiper.params.effect !== effect) return; 9784 if (recreateShadows) { 9785 if (!getEffectParams || !getEffectParams().slideShadows) return; 9786 // remove shadows 9787 swiper.slides.forEach(slideEl => { 9788 slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove()); 9789 }); 9790 // create new one 9791 recreateShadows(); 9792 } 9793 }); 9794 let requireUpdateOnVirtual; 9795 on('virtualUpdate', () => { 9796 if (swiper.params.effect !== effect) return; 9797 if (!swiper.slides.length) { 9798 requireUpdateOnVirtual = true; 9799 } 9800 requestAnimationFrame(() => { 9801 if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) { 9802 setTranslate(); 9803 requireUpdateOnVirtual = false; 9804 } 9805 }); 9806 }); 9807} 9808 9809/***/ }), 9810
vendor: 1,028 bytes, lines 9811-9833
9811/***/ "./node_modules/swiper/shared/effect-target.js": 9812/*!*****************************************************!*\ 9813 !*** ./node_modules/swiper/shared/effect-target.js ***! 9814 \*****************************************************/ 9815/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 9816 9817__webpack_require__.r(__webpack_exports__); 9818/* harmony export */ __webpack_require__.d(__webpack_exports__, { 9819/* harmony export */ "default": function() { return /* binding */ effectTarget; } 9820/* harmony export */ }); 9821/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "./node_modules/swiper/shared/utils.js"); 9822 9823function effectTarget(effectParams, slideEl) { 9824 const transformEl = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.getSlideTransformEl)(slideEl); 9825 if (transformEl !== slideEl) { 9826 transformEl.style.backfaceVisibility = 'hidden'; 9827 transformEl.style['-webkit-backface-visibility'] = 'hidden'; 9828 } 9829 return transformEl; 9830} 9831 9832/***/ }), 9833
vendor: 2,104 bytes, lines 9834-9891
9834/***/ "./node_modules/swiper/shared/effect-virtual-transition-end.js": 9835/*!*********************************************************************!*\ 9836 !*** ./node_modules/swiper/shared/effect-virtual-transition-end.js ***! 9837 \*********************************************************************/ 9838/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 9839 9840__webpack_require__.r(__webpack_exports__); 9841/* harmony export */ __webpack_require__.d(__webpack_exports__, { 9842/* harmony export */ "default": function() { return /* binding */ effectVirtualTransitionEnd; } 9843/* harmony export */ }); 9844/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "./node_modules/swiper/shared/utils.js"); 9845 9846function effectVirtualTransitionEnd({ 9847 swiper, 9848 duration, 9849 transformElements, 9850 allSlides 9851}) { 9852 const { 9853 activeIndex 9854 } = swiper; 9855 const getSlide = el => { 9856 if (!el.parentElement) { 9857 // assume shadow root 9858 const slide = swiper.slides.filter(slideEl => slideEl.shadowEl && slideEl.shadowEl === el.parentNode)[0]; 9859 return slide; 9860 } 9861 return el.parentElement; 9862 }; 9863 if (swiper.params.virtualTranslate && duration !== 0) { 9864 let eventTriggered = false; 9865 let transitionEndTarget; 9866 if (allSlides) { 9867 transitionEndTarget = transformElements; 9868 } else { 9869 transitionEndTarget = transformElements.filter(transformEl => { 9870 const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl; 9871 return swiper.getSlideIndex(el) === activeIndex; 9872 }); 9873 } 9874 transitionEndTarget.forEach(el => { 9875 (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementTransitionEnd)(el, () => { 9876 if (eventTriggered) return; 9877 if (!swiper || swiper.destroyed) return; 9878 eventTriggered = true; 9879 swiper.animating = false; 9880 const evt = new window.CustomEvent('transitionend', { 9881 bubbles: true, 9882 cancelable: true 9883 }); 9884 swiper.wrapperEl.dispatchEvent(evt); 9885 }); 9886 }); 9887 } 9888} 9889 9890/***/ }), 9891
vendor: 1,601 bytes, lines 9892-9934
9892/***/ "./node_modules/swiper/shared/get-browser.js": 9893/*!***************************************************!*\ 9894 !*** ./node_modules/swiper/shared/get-browser.js ***! 9895 \***************************************************/ 9896/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 9897 9898__webpack_require__.r(__webpack_exports__); 9899/* harmony export */ __webpack_require__.d(__webpack_exports__, { 9900/* harmony export */ "getBrowser": function() { return /* binding */ getBrowser; } 9901/* harmony export */ }); 9902/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 9903 9904let browser; 9905function calcBrowser() { 9906 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 9907 let needPerspectiveFix = false; 9908 function isSafari() { 9909 const ua = window.navigator.userAgent.toLowerCase(); 9910 return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0; 9911 } 9912 if (isSafari()) { 9913 const ua = String(window.navigator.userAgent); 9914 if (ua.includes('Version/')) { 9915 const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num)); 9916 needPerspectiveFix = major < 16 || major === 16 && minor < 2; 9917 } 9918 } 9919 return { 9920 isSafari: needPerspectiveFix || isSafari(), 9921 needPerspectiveFix, 9922 isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent) 9923 }; 9924} 9925function getBrowser() { 9926 if (!browser) { 9927 browser = calcBrowser(); 9928 } 9929 return browser; 9930} 9931 9932 9933/***/ }), 9934
vendor: 2,410 bytes, lines 9935-10000
9935/***/ "./node_modules/swiper/shared/get-device.js": 9936/*!**************************************************!*\ 9937 !*** ./node_modules/swiper/shared/get-device.js ***! 9938 \**************************************************/ 9939/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 9940 9941__webpack_require__.r(__webpack_exports__); 9942/* harmony export */ __webpack_require__.d(__webpack_exports__, { 9943/* harmony export */ "getDevice": function() { return /* binding */ getDevice; } 9944/* harmony export */ }); 9945/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 9946/* harmony import */ var _get_support_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-support.js */ "./node_modules/swiper/shared/get-support.js"); 9947 9948 9949let deviceCached; 9950function calcDevice({ 9951 userAgent 9952} = {}) { 9953 const support = (0,_get_support_js__WEBPACK_IMPORTED_MODULE_1__.getSupport)(); 9954 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 9955 const platform = window.navigator.platform; 9956 const ua = userAgent || window.navigator.userAgent; 9957 const device = { 9958 ios: false, 9959 android: false 9960 }; 9961 const screenWidth = window.screen.width; 9962 const screenHeight = window.screen.height; 9963 const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line 9964 let ipad = ua.match(/(iPad).*OS\s([\d_]+)/); 9965 const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); 9966 const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); 9967 const windows = platform === 'Win32'; 9968 let macos = platform === 'MacIntel'; 9969 9970 // iPadOs 13 fix 9971 const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810']; 9972 if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) { 9973 ipad = ua.match(/(Version)\/([\d.]+)/); 9974 if (!ipad) ipad = [0, 1, '13_0_0']; 9975 macos = false; 9976 } 9977 9978 // Android 9979 if (android && !windows) { 9980 device.os = 'android'; 9981 device.android = true; 9982 } 9983 if (ipad || iphone || ipod) { 9984 device.os = 'ios'; 9985 device.ios = true; 9986 } 9987 9988 // Export object 9989 return device; 9990} 9991function getDevice(overrides = {}) { 9992 if (!deviceCached) { 9993 deviceCached = calcDevice(overrides); 9994 } 9995 return deviceCached; 9996} 9997 9998 9999/***/ }), 10000
vendor: 1,251 bytes, lines 10001-10031
10001/***/ "./node_modules/swiper/shared/get-support.js": 10002/*!***************************************************!*\ 10003 !*** ./node_modules/swiper/shared/get-support.js ***! 10004 \***************************************************/ 10005/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10006 10007__webpack_require__.r(__webpack_exports__); 10008/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10009/* harmony export */ "getSupport": function() { return /* binding */ getSupport; } 10010/* harmony export */ }); 10011/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 10012 10013let support; 10014function calcSupport() { 10015 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10016 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 10017 return { 10018 smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style, 10019 touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch) 10020 }; 10021} 10022function getSupport() { 10023 if (!support) { 10024 support = calcSupport(); 10025 } 10026 return support; 10027} 10028 10029 10030/***/ }), 10031
vendor: 2,291 bytes, lines 10032-10079
10032/***/ "./node_modules/swiper/shared/process-lazy-preloader.js": 10033/*!**************************************************************!*\ 10034 !*** ./node_modules/swiper/shared/process-lazy-preloader.js ***! 10035 \**************************************************************/ 10036/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10037 10038__webpack_require__.r(__webpack_exports__); 10039/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10040/* harmony export */ "preload": function() { return /* binding */ preload; }, 10041/* harmony export */ "processLazyPreloader": function() { return /* binding */ processLazyPreloader; } 10042/* harmony export */ }); 10043const processLazyPreloader = (swiper, imageEl) => { 10044 if (!swiper || swiper.destroyed || !swiper.params) return; 10045 const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; 10046 const slideEl = imageEl.closest(slideSelector()); 10047 if (slideEl) { 10048 const lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`); 10049 if (lazyEl) lazyEl.remove(); 10050 } 10051}; 10052const unlazy = (swiper, index) => { 10053 if (!swiper.slides[index]) return; 10054 const imageEl = swiper.slides[index].querySelector('[loading="lazy"]'); 10055 if (imageEl) imageEl.removeAttribute('loading'); 10056}; 10057const preload = swiper => { 10058 if (!swiper || swiper.destroyed || !swiper.params) return; 10059 let amount = swiper.params.lazyPreloadPrevNext; 10060 const len = swiper.slides.length; 10061 if (!len || !amount || amount < 0) return; 10062 amount = Math.min(amount, len); 10063 const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView); 10064 const activeIndex = swiper.activeIndex; 10065 const slideIndexLastInView = activeIndex + slidesPerView - 1; 10066 if (swiper.params.rewind) { 10067 for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) { 10068 const realIndex = (i % len + len) % len; 10069 if (realIndex !== activeIndex && realIndex > slideIndexLastInView) unlazy(swiper, realIndex); 10070 } 10071 } else { 10072 for (let i = Math.max(slideIndexLastInView - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) { 10073 if (i !== activeIndex && i > slideIndexLastInView) unlazy(swiper, i); 10074 } 10075 } 10076}; 10077 10078/***/ }), 10079
vendor: 11,684 bytes, lines 10080-10379
10080/***/ "./node_modules/swiper/shared/utils.js": 10081/*!*********************************************!*\ 10082 !*** ./node_modules/swiper/shared/utils.js ***! 10083 \*********************************************/ 10084/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10085 10086__webpack_require__.r(__webpack_exports__); 10087/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10088/* harmony export */ "animateCSSModeScroll": function() { return /* binding */ animateCSSModeScroll; }, 10089/* harmony export */ "createElement": function() { return /* binding */ createElement; }, 10090/* harmony export */ "deleteProps": function() { return /* binding */ deleteProps; }, 10091/* harmony export */ "elementChildren": function() { return /* binding */ elementChildren; }, 10092/* harmony export */ "elementIndex": function() { return /* binding */ elementIndex; }, 10093/* harmony export */ "elementNextAll": function() { return /* binding */ elementNextAll; }, 10094/* harmony export */ "elementOffset": function() { return /* binding */ elementOffset; }, 10095/* harmony export */ "elementOuterSize": function() { return /* binding */ elementOuterSize; }, 10096/* harmony export */ "elementParents": function() { return /* binding */ elementParents; }, 10097/* harmony export */ "elementPrevAll": function() { return /* binding */ elementPrevAll; }, 10098/* harmony export */ "elementStyle": function() { return /* binding */ elementStyle; }, 10099/* harmony export */ "elementTransitionEnd": function() { return /* binding */ elementTransitionEnd; }, 10100/* harmony export */ "extend": function() { return /* binding */ extend; }, 10101/* harmony export */ "findElementsInElements": function() { return /* binding */ findElementsInElements; }, 10102/* harmony export */ "getComputedStyle": function() { return /* binding */ getComputedStyle; }, 10103/* harmony export */ "getSlideTransformEl": function() { return /* binding */ getSlideTransformEl; }, 10104/* harmony export */ "getTranslate": function() { return /* binding */ getTranslate; }, 10105/* harmony export */ "isObject": function() { return /* binding */ isObject; }, 10106/* harmony export */ "nextTick": function() { return /* binding */ nextTick; }, 10107/* harmony export */ "now": function() { return /* binding */ now; }, 10108/* harmony export */ "setCSSProperty": function() { return /* binding */ setCSSProperty; } 10109/* harmony export */ }); 10110/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 10111 10112function deleteProps(obj) { 10113 const object = obj; 10114 Object.keys(object).forEach(key => { 10115 try { 10116 object[key] = null; 10117 } catch (e) { 10118 // no getter for object 10119 } 10120 try { 10121 delete object[key]; 10122 } catch (e) { 10123 // something got wrong 10124 } 10125 }); 10126} 10127function nextTick(callback, delay = 0) { 10128 return setTimeout(callback, delay); 10129} 10130function now() { 10131 return Date.now(); 10132} 10133function getComputedStyle(el) { 10134 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10135 let style; 10136 if (window.getComputedStyle) { 10137 style = window.getComputedStyle(el, null); 10138 } 10139 if (!style && el.currentStyle) { 10140 style = el.currentStyle; 10141 } 10142 if (!style) { 10143 style = el.style; 10144 } 10145 return style; 10146} 10147function getTranslate(el, axis = 'x') { 10148 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10149 let matrix; 10150 let curTransform; 10151 let transformMatrix; 10152 const curStyle = getComputedStyle(el, null); 10153 if (window.WebKitCSSMatrix) { 10154 curTransform = curStyle.transform || curStyle.webkitTransform; 10155 if (curTransform.split(',').length > 6) { 10156 curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', '); 10157 } 10158 // Some old versions of Webkit choke when 'none' is passed; pass 10159 // empty string instead in this case 10160 transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); 10161 } else { 10162 transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); 10163 matrix = transformMatrix.toString().split(','); 10164 } 10165 if (axis === 'x') { 10166 // Latest Chrome and webkits Fix 10167 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; 10168 // Crazy IE10 Matrix 10169 else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); 10170 // Normal Browsers 10171 else curTransform = parseFloat(matrix[4]); 10172 } 10173 if (axis === 'y') { 10174 // Latest Chrome and webkits Fix 10175 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; 10176 // Crazy IE10 Matrix 10177 else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); 10178 // Normal Browsers 10179 else curTransform = parseFloat(matrix[5]); 10180 } 10181 return curTransform || 0; 10182} 10183function isObject(o) { 10184 return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object'; 10185} 10186function isNode(node) { 10187 // eslint-disable-next-line 10188 if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') { 10189 return node instanceof HTMLElement; 10190 } 10191 return node && (node.nodeType === 1 || node.nodeType === 11); 10192} 10193function extend(...args) { 10194 const to = Object(args[0]); 10195 const noExtend = ['__proto__', 'constructor', 'prototype']; 10196 for (let i = 1; i < args.length; i += 1) { 10197 const nextSource = args[i]; 10198 if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) { 10199 const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0); 10200 for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { 10201 const nextKey = keysArray[nextIndex]; 10202 const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); 10203 if (desc !== undefined && desc.enumerable) { 10204 if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) { 10205 if (nextSource[nextKey].__swiper__) { 10206 to[nextKey] = nextSource[nextKey]; 10207 } else { 10208 extend(to[nextKey], nextSource[nextKey]); 10209 } 10210 } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) { 10211 to[nextKey] = {}; 10212 if (nextSource[nextKey].__swiper__) { 10213 to[nextKey] = nextSource[nextKey]; 10214 } else { 10215 extend(to[nextKey], nextSource[nextKey]); 10216 } 10217 } else { 10218 to[nextKey] = nextSource[nextKey]; 10219 } 10220 } 10221 } 10222 } 10223 } 10224 return to; 10225} 10226function setCSSProperty(el, varName, varValue) { 10227 el.style.setProperty(varName, varValue); 10228} 10229function animateCSSModeScroll({ 10230 swiper, 10231 targetPosition, 10232 side 10233}) { 10234 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10235 const startPosition = -swiper.translate; 10236 let startTime = null; 10237 let time; 10238 const duration = swiper.params.speed; 10239 swiper.wrapperEl.style.scrollSnapType = 'none'; 10240 window.cancelAnimationFrame(swiper.cssModeFrameID); 10241 const dir = targetPosition > startPosition ? 'next' : 'prev'; 10242 const isOutOfBound = (current, target) => { 10243 return dir === 'next' && current >= target || dir === 'prev' && current <= target; 10244 }; 10245 const animate = () => { 10246 time = new Date().getTime(); 10247 if (startTime === null) { 10248 startTime = time; 10249 } 10250 const progress = Math.max(Math.min((time - startTime) / duration, 1), 0); 10251 const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2; 10252 let currentPosition = startPosition + easeProgress * (targetPosition - startPosition); 10253 if (isOutOfBound(currentPosition, targetPosition)) { 10254 currentPosition = targetPosition; 10255 } 10256 swiper.wrapperEl.scrollTo({ 10257 [side]: currentPosition 10258 }); 10259 if (isOutOfBound(currentPosition, targetPosition)) { 10260 swiper.wrapperEl.style.overflow = 'hidden'; 10261 swiper.wrapperEl.style.scrollSnapType = ''; 10262 setTimeout(() => { 10263 swiper.wrapperEl.style.overflow = ''; 10264 swiper.wrapperEl.scrollTo({ 10265 [side]: currentPosition 10266 }); 10267 }); 10268 window.cancelAnimationFrame(swiper.cssModeFrameID); 10269 return; 10270 } 10271 swiper.cssModeFrameID = window.requestAnimationFrame(animate); 10272 }; 10273 animate(); 10274} 10275function getSlideTransformEl(slideEl) { 10276 return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowEl && slideEl.shadowEl.querySelector('.swiper-slide-transform') || slideEl; 10277} 10278function findElementsInElements(elements = [], selector = '') { 10279 const found = []; 10280 elements.forEach(el => { 10281 found.push(...el.querySelectorAll(selector)); 10282 }); 10283 return found; 10284} 10285function elementChildren(element, selector = '') { 10286 return [...element.children].filter(el => el.matches(selector)); 10287} 10288function createElement(tag, classes = []) { 10289 const el = document.createElement(tag); 10290 el.classList.add(...(Array.isArray(classes) ? classes : [classes])); 10291 return el; 10292} 10293function elementOffset(el) { 10294 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10295 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 10296 const box = el.getBoundingClientRect(); 10297 const body = document.body; 10298 const clientTop = el.clientTop || body.clientTop || 0; 10299 const clientLeft = el.clientLeft || body.clientLeft || 0; 10300 const scrollTop = el === window ? window.scrollY : el.scrollTop; 10301 const scrollLeft = el === window ? window.scrollX : el.scrollLeft; 10302 return { 10303 top: box.top + scrollTop - clientTop, 10304 left: box.left + scrollLeft - clientLeft 10305 }; 10306} 10307function elementPrevAll(el, selector) { 10308 const prevEls = []; 10309 while (el.previousElementSibling) { 10310 const prev = el.previousElementSibling; // eslint-disable-line 10311 if (selector) { 10312 if (prev.matches(selector)) prevEls.push(prev); 10313 } else prevEls.push(prev); 10314 el = prev; 10315 } 10316 return prevEls; 10317} 10318function elementNextAll(el, selector) { 10319 const nextEls = []; 10320 while (el.nextElementSibling) { 10321 const next = el.nextElementSibling; // eslint-disable-line 10322 if (selector) { 10323 if (next.matches(selector)) nextEls.push(next); 10324 } else nextEls.push(next); 10325 el = next; 10326 } 10327 return nextEls; 10328} 10329function elementStyle(el, prop) { 10330 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10331 return window.getComputedStyle(el, null).getPropertyValue(prop); 10332} 10333function elementIndex(el) { 10334 let child = el; 10335 let i; 10336 if (child) { 10337 i = 0; 10338 // eslint-disable-next-line 10339 while ((child = child.previousSibling) !== null) { 10340 if (child.nodeType === 1) i += 1; 10341 } 10342 return i; 10343 } 10344 return undefined; 10345} 10346function elementParents(el, selector) { 10347 const parents = []; // eslint-disable-line 10348 let parent = el.parentElement; // eslint-disable-line 10349 while (parent) { 10350 if (selector) { 10351 if (parent.matches(selector)) parents.push(parent); 10352 } else { 10353 parents.push(parent); 10354 } 10355 parent = parent.parentElement; 10356 } 10357 return parents; 10358} 10359function elementTransitionEnd(el, callback) { 10360 function fireCallBack(e) { 10361 if (e.target !== el) return; 10362 callback.call(el, e); 10363 el.removeEventListener('transitionend', fireCallBack); 10364 } 10365 if (callback) { 10366 el.addEventListener('transitionend', fireCallBack); 10367 } 10368} 10369function elementOuterSize(el, size, includeMargins) { 10370 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10371 if (includeMargins) { 10372 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')); 10373 } 10374 return el.offsetWidth; 10375} 10376 10377 10378/***/ }), 10379
vendor: 9,443 bytes, lines 10380-10475
10380/***/ "./node_modules/swiper/swiper.esm.js": 10381/*!*******************************************!*\ 10382 !*** ./node_modules/swiper/swiper.esm.js ***! 10383 \*******************************************/ 10384/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10385 10386__webpack_require__.r(__webpack_exports__); 10387/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10388/* harmony export */ "A11y": function() { return /* reexport safe */ _modules_a11y_a11y_js__WEBPACK_IMPORTED_MODULE_10__["default"]; }, 10389/* harmony export */ "Autoplay": function() { return /* reexport safe */ _modules_autoplay_autoplay_js__WEBPACK_IMPORTED_MODULE_13__["default"]; }, 10390/* harmony export */ "Controller": function() { return /* reexport safe */ _modules_controller_controller_js__WEBPACK_IMPORTED_MODULE_9__["default"]; }, 10391/* harmony export */ "EffectCards": function() { return /* reexport safe */ _modules_effect_cards_effect_cards_js__WEBPACK_IMPORTED_MODULE_23__["default"]; }, 10392/* harmony export */ "EffectCoverflow": function() { return /* reexport safe */ _modules_effect_coverflow_effect_coverflow_js__WEBPACK_IMPORTED_MODULE_21__["default"]; }, 10393/* harmony export */ "EffectCreative": function() { return /* reexport safe */ _modules_effect_creative_effect_creative_js__WEBPACK_IMPORTED_MODULE_22__["default"]; }, 10394/* harmony export */ "EffectCube": function() { return /* reexport safe */ _modules_effect_cube_effect_cube_js__WEBPACK_IMPORTED_MODULE_19__["default"]; }, 10395/* harmony export */ "EffectFade": function() { return /* reexport safe */ _modules_effect_fade_effect_fade_js__WEBPACK_IMPORTED_MODULE_18__["default"]; }, 10396/* harmony export */ "EffectFlip": function() { return /* reexport safe */ _modules_effect_flip_effect_flip_js__WEBPACK_IMPORTED_MODULE_20__["default"]; }, 10397/* harmony export */ "FreeMode": function() { return /* reexport safe */ _modules_free_mode_free_mode_js__WEBPACK_IMPORTED_MODULE_15__["default"]; }, 10398/* harmony export */ "Grid": function() { return /* reexport safe */ _modules_grid_grid_js__WEBPACK_IMPORTED_MODULE_16__["default"]; }, 10399/* harmony export */ "HashNavigation": function() { return /* reexport safe */ _modules_hash_navigation_hash_navigation_js__WEBPACK_IMPORTED_MODULE_12__["default"]; }, 10400/* harmony export */ "History": function() { return /* reexport safe */ _modules_history_history_js__WEBPACK_IMPORTED_MODULE_11__["default"]; }, 10401/* harmony export */ "Keyboard": function() { return /* reexport safe */ _modules_keyboard_keyboard_js__WEBPACK_IMPORTED_MODULE_2__["default"]; }, 10402/* harmony export */ "Manipulation": function() { return /* reexport safe */ _modules_manipulation_manipulation_js__WEBPACK_IMPORTED_MODULE_17__["default"]; }, 10403/* harmony export */ "Mousewheel": function() { return /* reexport safe */ _modules_mousewheel_mousewheel_js__WEBPACK_IMPORTED_MODULE_3__["default"]; }, 10404/* harmony export */ "Navigation": function() { return /* reexport safe */ _modules_navigation_navigation_js__WEBPACK_IMPORTED_MODULE_4__["default"]; }, 10405/* harmony export */ "Pagination": function() { return /* reexport safe */ _modules_pagination_pagination_js__WEBPACK_IMPORTED_MODULE_5__["default"]; }, 10406/* harmony export */ "Parallax": function() { return /* reexport safe */ _modules_parallax_parallax_js__WEBPACK_IMPORTED_MODULE_7__["default"]; }, 10407/* harmony export */ "Scrollbar": function() { return /* reexport safe */ _modules_scrollbar_scrollbar_js__WEBPACK_IMPORTED_MODULE_6__["default"]; }, 10408/* harmony export */ "Swiper": function() { return /* reexport safe */ _core_core_js__WEBPACK_IMPORTED_MODULE_0__["default"]; }, 10409/* harmony export */ "Thumbs": function() { return /* reexport safe */ _modules_thumbs_thumbs_js__WEBPACK_IMPORTED_MODULE_14__["default"]; }, 10410/* harmony export */ "Virtual": function() { return /* reexport safe */ _modules_virtual_virtual_js__WEBPACK_IMPORTED_MODULE_1__["default"]; }, 10411/* harmony export */ "Zoom": function() { return /* reexport safe */ _modules_zoom_zoom_js__WEBPACK_IMPORTED_MODULE_8__["default"]; }, 10412/* harmony export */ "default": function() { return /* reexport safe */ _core_core_js__WEBPACK_IMPORTED_MODULE_0__["default"]; } 10413/* harmony export */ }); 10414/* harmony import */ var _core_core_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/core.js */ "./node_modules/swiper/core/core.js"); 10415/* harmony import */ var _modules_virtual_virtual_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/virtual/virtual.js */ "./node_modules/swiper/modules/virtual/virtual.js"); 10416/* harmony import */ var _modules_keyboard_keyboard_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/keyboard/keyboard.js */ "./node_modules/swiper/modules/keyboard/keyboard.js"); 10417/* harmony import */ var _modules_mousewheel_mousewheel_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/mousewheel/mousewheel.js */ "./node_modules/swiper/modules/mousewheel/mousewheel.js"); 10418/* harmony import */ var _modules_navigation_navigation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/navigation/navigation.js */ "./node_modules/swiper/modules/navigation/navigation.js"); 10419/* harmony import */ var _modules_pagination_pagination_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/pagination/pagination.js */ "./node_modules/swiper/modules/pagination/pagination.js"); 10420/* harmony import */ var _modules_scrollbar_scrollbar_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/scrollbar/scrollbar.js */ "./node_modules/swiper/modules/scrollbar/scrollbar.js"); 10421/* harmony import */ var _modules_parallax_parallax_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/parallax/parallax.js */ "./node_modules/swiper/modules/parallax/parallax.js"); 10422/* harmony import */ var _modules_zoom_zoom_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/zoom/zoom.js */ "./node_modules/swiper/modules/zoom/zoom.js"); 10423/* harmony import */ var _modules_controller_controller_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/controller/controller.js */ "./node_modules/swiper/modules/controller/controller.js"); 10424/* harmony import */ var _modules_a11y_a11y_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/a11y/a11y.js */ "./node_modules/swiper/modules/a11y/a11y.js"); 10425/* harmony import */ var _modules_history_history_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/history/history.js */ "./node_modules/swiper/modules/history/history.js"); 10426/* harmony import */ var _modules_hash_navigation_hash_navigation_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modules/hash-navigation/hash-navigation.js */ "./node_modules/swiper/modules/hash-navigation/hash-navigation.js"); 10427/* harmony import */ var _modules_autoplay_autoplay_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./modules/autoplay/autoplay.js */ "./node_modules/swiper/modules/autoplay/autoplay.js"); 10428/* harmony import */ var _modules_thumbs_thumbs_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modules/thumbs/thumbs.js */ "./node_modules/swiper/modules/thumbs/thumbs.js"); 10429/* harmony import */ var _modules_free_mode_free_mode_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./modules/free-mode/free-mode.js */ "./node_modules/swiper/modules/free-mode/free-mode.js"); 10430/* harmony import */ var _modules_grid_grid_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./modules/grid/grid.js */ "./node_modules/swiper/modules/grid/grid.js"); 10431/* harmony import */ var _modules_manipulation_manipulation_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./modules/manipulation/manipulation.js */ "./node_modules/swiper/modules/manipulation/manipulation.js"); 10432/* harmony import */ var _modules_effect_fade_effect_fade_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./modules/effect-fade/effect-fade.js */ "./node_modules/swiper/modules/effect-fade/effect-fade.js"); 10433/* harmony import */ var _modules_effect_cube_effect_cube_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./modules/effect-cube/effect-cube.js */ "./node_modules/swiper/modules/effect-cube/effect-cube.js"); 10434/* harmony import */ var _modules_effect_flip_effect_flip_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./modules/effect-flip/effect-flip.js */ "./node_modules/swiper/modules/effect-flip/effect-flip.js"); 10435/* harmony import */ var _modules_effect_coverflow_effect_coverflow_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./modules/effect-coverflow/effect-coverflow.js */ "./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js"); 10436/* harmony import */ var _modules_effect_creative_effect_creative_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./modules/effect-creative/effect-creative.js */ "./node_modules/swiper/modules/effect-creative/effect-creative.js"); 10437/* harmony import */ var _modules_effect_cards_effect_cards_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./modules/effect-cards/effect-cards.js */ "./node_modules/swiper/modules/effect-cards/effect-cards.js"); 10438/** 10439 * Swiper 9.3.2 10440 * Most modern mobile touch slider and framework with hardware accelerated transitions 10441 * https://swiperjs.com 10442 * 10443 * Copyright 2014-2023 Vladimir Kharlampidi 10444 * 10445 * Released under the MIT License 10446 * 10447 * Released on: May 15, 2023 10448 */ 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475/***/ })
10475 10476 10477/******/ }); 10478/************************************************************************/ 10479/******/ // The module cache 10480/******/ var __webpack_module_cache__ = {}; 10481/******/ 10482/******/ // The require function 10483/******/ function __webpack_require__(moduleId) { 10484/******/ // Check if module is in cache 10485/******/ var cachedModule = __webpack_module_cache__[moduleId]; 10486/******/ if (cachedModule !== undefined) { 10487/******/ return cachedModule.exports; 10488/******/ } 10489/******/ // Create a new module (and put it into the cache) 10490/******/ var module = __webpack_module_cache__[moduleId] = { 10491/******/ // no module.id needed 10492/******/ // no module.loaded needed 10493/******/ exports: {} 10494/******/ }; 10495/******/ 10496/******/ // Execute the module function 10497/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); 10498/******/ 10499/******/ // Return the exports of the module 10500/******/ return module.exports; 10501/******/ } 10502/******/ 10503/************************************************************************/ 10504/******/ /* webpack/runtime/define property getters */ 10505/******/ !function() { 10506/******/ // define getter functions for harmony exports 10507/******/ __webpack_require__.d = function(exports, definition) { 10508/******/ for(var key in definition) { 10509/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 10510/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 10511/******/ } 10512/******/ } 10513/******/ }; 10514/******/ }(); 10515/******/ 10516/******/ /* webpack/runtime/hasOwnProperty shorthand */ 10517/******/ !function() { 10518/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } 10519/******/ }(); 10520/******/ 10521/******/ /* webpack/runtime/make namespace object */ 10522/******/ !function() { 10523/******/ // define __esModule on exports 10524/******/ __webpack_require__.r = function(exports) { 10525/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 10526/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 10527/******/ } 10528/******/ Object.defineProperty(exports, '__esModule', { value: true }); 10529/******/ }; 10530/******/ }(); 10531/******/ 10532/************************************************************************/ 10533var __webpack_exports__ = {}; 10534// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. 10535!function() { 10536/*!***********************************************************************************!*\ 10537 !*** ./cartridges/app_purina_core/cartridge/client/default/js/productCarousel.js ***! 10538 \***********************************************************************************/ 10539__webpack_require__.r(__webpack_exports__); 10540/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! swiper */ "./node_modules/swiper/swiper.esm.js"); 10541 10542 10543 10544 10545window.addEventListener("load", () => { 10546 let swiper; 10547 const Navigation = (__webpack_require__(/*! swiper */ "./node_modules/swiper/swiper.esm.js").Navigation); 10548 const Pagination = (__webpack_require__(/*! swiper */ "./node_modules/swiper/swiper.esm.js").Pagination); 10549 if (!window.einsteinCarouselInitialized) { 10550 const carousels = $(".product-carousel-swiper"); 10551 10552 carousels.each(function (index, carousel) { 10553 const selector = "." + $(carousel).data().id + " .swiper"; 10554 const prevButton = "." + $(carousel).data().id + " .swiper-button-prev"; 10555 const nextButton = "." + $(carousel).data().id + " .swiper-button-next"; 10556 const paginationSelector = "." + $(carousel).data().id + " .swiper-pagination"; 10557 10558 // eslint-disable-next-line no-unused-vars 10559 const einsteinCarousel = new swiper__WEBPACK_IMPORTED_MODULE_0__.Swiper(selector, { 10560 loop: false, 10561 modules: [Navigation, Pagination], 10562 pagination: { 10563 el: paginationSelector, 10564 clickable: true, 10565 }, 10566 autoHeight: true, 10567 setWrapperSize: true, 10568 freeMode: true, 10569 slidesPerView: "auto", 10570 direction: 'horizontal', 10571 parallax: true, 10572 navigation: { 10573 nextEl: nextButton, 10574 prevEl: prevButton, 10575 }, 10576 breakpoints: { 10577 0: { 10578 slidesPerView: 2, 10579 spaceBetween: 10, 10580 }, 10581 1024: { 10582 slidesPerView: 4, 10583 spaceBetween: 10, 10584 }, 10585 }, 10586 on: { 10587 init: function () { 10588 $(carousel).closest('.up-4-products-carousel').removeClass('invisible'); 10589 } 10590 } 10591 }); 10592 }); 10593 window.einsteinCarousellInitialized = true; 10594 } 10595}); 10596 10597}(); 10598/******/ })() 10599; 10600//# sourceMappingURL=productCarousel.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.