1/******/ (function() { // webpackBootstrap 2/******/ "use strict"; 3/******/ var __webpack_modules__ = ({ 4
vendor: 2,053 bytes, lines 5-16
5/***/ "./scripts/source/scripts.js": 6/*!***********************************!*\ 7 !*** ./scripts/source/scripts.js ***! 8 \***********************************/ 9/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 10 11__webpack_require__.r(__webpack_exports__); 12/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! swiper */ "../../node_modules/swiper/swiper.esm.js"); 13/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "jquery"); 14/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "jquery"); 15function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 16function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap;
vendor: 5,439 bytes, line 16
16 var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEac
16h(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } 17function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } 18function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } 19 20swiper__WEBPACK_IMPORTED_MODULE_0__.Swiper.use([swiper__WEBPACK_IMPORTED_MODULE_0__.Parallax, swiper__WEBPACK_IMPORTED_MODULE_0__.Navigation]); 21var subscribed; 22function checkLocalStorageUpdates() { 23 subscribed = localStorage.getItem('subscribed'); 24} 25window.addEventListener('popstate', checkLocalStorageUpdates); 26window.addEventListener('pageshow', function (event) { 27 if (event.persisted) { 28 checkLocalStorageUpdates(); 29 } 30}); 31document.addEventListener('DOMContentLoaded', checkLocalStorageUpdates); 32window.addEventListener('storage', function (event) { 33 if (event.key === 'subscribed') { 34 checkLocalStorageUpdates(); 35 } 36}); 37window.addEventListener('DOMContentLoaded', function () { 38 if (document.querySelector('.experts .swiper')) { 39 var swiper = new swiper__WEBPACK_IMPORTED_MODULE_0__.Swiper('.experts .swiper', { 40 slidesPerView: 1, 41 spaceBetween: 50, 42 grabCursor: true, 43 navigation: { 44 nextEl: '.swiper-button-next', 45 prevEl: '.swiper-button-prev' 46 }, 47 breakpoints: { 48 1440: { 49 slidesPerView: 2.1 50 }, 51 1200: { 52 slidesPerView: 2.3 53 }, 54 992: { 55 slidesPerView: 1.5 56 }, 57 768: { 58 slidesPerView: 1.15 59 } 60 } 61 }); 62 } 63 if (document.querySelector('.b-awards .swiper')) { 64 var _swiper = new swiper__WEBPACK_IMPORTED_MODULE_0__.Swiper('.b-awards .swiper', { 65 slidesPerView: 1, 66 spaceBetween: 50, 67 grabCursor: true, 68 navigation: { 69 nextEl: '.swiper-button-next', 70 prevEl: '.swiper-button-prev' 71 }, 72 breakpoints: { 73 1600: { 74 slidesPerView: 2.5 75 }, 76 1440: { 77 slidesPerView: 2.2 78 }, 79 992: { 80 slidesPerView: 2 81 }, 82 768: { 83 slidesPerView: 1.15 84 } 85 } 86 }); 87 } 88 if (document.querySelector('#video')) { 89 var playButton = document.getElementById('play-button'); 90 var video = document.getElementById('video'); 91 if (playButton && video) { 92 playButton.addEventListener('click', function () { 93 video.querySelectorAll('source').forEach(function (source) { 94 if (source.getAttribute('data-src')) { 95 source.setAttribute('src', source.getAttribute('data-src')); 96 } 97 }); 98 video.load(); 99 video.play(); 100 playButton.style.display = 'none'; 101 video.setAttribute('controls', ''); 102 }); 103 } 104 } 105 if (document.querySelector('.testimonials .swiper')) { 106 var _swiper2 = new swiper__WEBPACK_IMPORTED_MODULE_0__.Swiper('.testimonials .swiper', { 107 slidesPerView: 1, 108 grabCursor: true, 109 autoHeight: true, 110 navigation: { 111 nextEl: '.swiper-button-next', 112 prevEl: '.swiper-button-prev' 113 } 114 }); 115 } 116 if (document.querySelector('.questions')) { 117 var questions = document.querySelectorAll('.question-item'); 118 questions.forEach(function (question) { 119 question.addEventListener('click', function (e) { 120 if (e.target.tagName.toLowerCase() === 'a') { 121 return; 122 } 123 this.classList.toggle('opened'); 124 if (this.classList.contains('opened')) { 125 window.dataLayer = window.dataLayer || []; 126 window.dataLayer.push({ 127 'event': 'moonlock', 128 'eventCategory': 'Moonlock', 129 'eventAction': this.getAttribute('data-event-action') ? this.getAttribute('data-event-action') : this.textContent.trim(), 130 'eventLabel': this.getAttribute('data-event-label') 131 }); 132 } 133 }); 134 }); 135 } 136 if (document.querySelector('.years-swiper .swiper')) { 137 var _swiper3 = new swiper__WEBPACK_IMPORTED_MODULE_0__.Swiper('.years-swiper .swiper', { 138 slidesPerView: 1.5, 139 spaceBetween: 20, 140 grabCursor: true, 141 navigation: { 142 nextEl: '.swiper-button-next', 143 prevEl: '.swiper-button-prev' 144 }, 145 breakpoints: { 146 568: { 147 slidesPerView: 3 148 }, 149 992: { 150 slidesPerView: 4 151 }, 152 1200: { 153 slidesPerView: 5 154 } 155 } 156 }); 157 } 158 if (window.innerWidth <= 567) { 159 if (document.querySelector('.awards .swiper')) { 160 var _swiper4 = new swiper__WEBPACK_IMPORTED_MODULE_0__.Swiper('.awards .swiper', { 161 slidesPerView: 1, 162 navigation: { 163 nextEl: '.swiper-button-next', 164 prevEl: '.swiper-button-prev' 165 } 166 }); 167 } 168 } 169 document.querySelectorAll('a[href^="#"]').forEach(function (internalLink) { 170 if (internalLink) { 171 var href = internalLink.getAttribute('href'); 172 if (href === '#' || href === '#0') { 173 return; 174 } 175 var targetElement = document.getElementById(href.replace(/^#/, '')); 176 if (targetElement) { 177 internalLink.addEventListener('click', function (e) { 178 var y = targetElement.getBoundingClientRect().top + window.scrollY - 75; 179 window.scrollTo({ 180 top: y, 181 behavior: 'smooth' 182 }); 183 e.preventDefault(); 184 }); 185 } 186 } 187 }); 188 var lastEntry = null; 189 var queueEntry = []; 190 var observer = new IntersectionObserver(function (entries) {
191 entries.forEach(function (entry) { 192 var id = entry.target.getAttribute('id'); 193 var navLink = document.querySelector("nav.table-of-contents li a[href=\"#".concat(id, "\"]")); 194 195 // console.log(id, lastEntry ? entry.intersectionRatio > 0.8 && entry.boundingClientRect.top < lastEntry.boundingClientRect.top : ''); 196 // check if entry is fully in viewport and has no active class 197 if (entry.intersectionRatio > 0.8 && navLink && !navLink.classList.contains('active')) { 198 // scroll top - make previous section active again 199 if (lastEntry && entry.intersectionRatio > 0.8 && entry.boundingClientRect.top < lastEntry.boundingClientRect.top) { 200 var lastId = lastEntry.target.getAttribute('id'); 201 var lastNavLink = document.querySelector("nav.table-of-contents li a[href=\"#".concat(lastId, "\"]")); 202 lastNavLink.classList.remove('active'); 203 navLink.classList.add('active'); 204 lastEntry = entry; 205 queueEntry = []; 206 } 207 // If we have another active entry push current entry to queue 208 else if (lastEntry) { 209 queueEntry.push(entry); 210 } else { 211 navLink.classList.add('active'); 212 lastEntry = entry; 213 } 214 } 215 // check if entry leaves viewport and has active class 216 else if (entry.intersectionRatio == 0 && navLink && navLink.classList.contains('active')) { 217 // If the entry is not intersecting but its nav link still has the active class, it means the element has just left the viewport 218 navLink.classList.remove('active'); 219 if (queueEntry.length > 0) { 220 // If there is a last entry, remove the active class from its nav link 221 lastEntry = queueEntry.shift(); 222 if (lastEntry) { 223 var _lastId = lastEntry.target.getAttribute('id'); 224 var _lastNavLink = document.querySelector("nav.table-of-contents li a[href=\"#".concat(_lastId, "\"]")); 225 _lastNavLink.classList.add('active'); 226 } 227 } else { 228 lastEntry = null; 229 } 230 } 231 }); 232 }, { 233 threshold: [0, 0.8] 234 }); 235 document.querySelectorAll('h2[id], h3[id]').forEach(function (section) { 236 observer.observe(section); 237 }); 238 var copyButton = document.querySelector('[data-copy]'); 239 if (copyButton) { 240 var copied = document.querySelector('[data-copied]'); 241 copyButton.addEventListener('click', function (e) { 242 copied.style.display = 'block'; 243 copyButton.firstChild.nextElementSibling.classList.add('pink'); 244 navigator.clipboard.writeText(window.location.href); 245 setTimeout(function () { 246 copyButton.firstChild.nextElementSibling.classList.remove('pink'); 247 copied.style.display = 'none'; 248 }, 2000); 249 }); 250 } 251 var menuButton = document.querySelector('[data-menu]'); 252 var menuPopup = document.querySelector('[data-popup-menu]'); 253 var menuBackdrop = document.querySelector('.header-mobile-backdrop'); 254 menuButton.addEventListener('click', function (e) { 255 menuButton.classList.toggle('open'); 256 menuPopup.classList.toggle('show'); 257 menuBackdrop.classList.toggle('show'); 258 }); 259 window.addEventListener('resize', function () { 260 menuPopup.classList.remove('show'); 261 menuButton.classList.remove('open'); 262 menuBackdrop.classList.remove('show'); 263 }); 264 window.addEventListener('beforeunload', function () { 265 menuPopup.classList.remove('show'); 266 menuButton.classList.remove('open'); 267 menuBackdrop.classList.remove('show'); 268 }); 269 270 // const menuButton = menuDropdownButton.find('[data-menu]'); 271 // const menuPopup = document.querySelector('[data-popup-menu]'); 272 // const body = document.body; 273 menuButton.addEventListener('click', function (e) { 274 document.querySelectorAll('[data-popup-menu] .sub-menu').forEach(function (item) { 275 item.classList.remove('show'); 276 }); 277 document.querySelectorAll('[data-popup-menu] [data-arrow]').forEach(function (item) { 278 item.classList.remove('show'); 279 }); 280 }); 281 window.addEventListener('resize', function () { 282 document.querySelectorAll('[data-popup-menu] .sub-menu').forEach(function (item) { 283 item.classList.remove('show'); 284 }); 285 document.querySelectorAll('[data-popup-menu] [data-arrow]').forEach(function (item) { 286 item.classList.remove('show'); 287 }); 288 }); 289 var menuDropdownButtons = document.querySelectorAll('[data-popup-menu] .menu-item-has-children,[data-popup-menu] [data-blog-menu]'); 290 menuDropdownButtons.forEach(function (menuDropdownButton) { 291 var menuDropdownPopup = $(menuDropdownButton).find('.sub-menu'); 292 var menuArrow = $(menuDropdownButton).find('[data-arrow]'); 293 menuDropdownButton.addEventListener('click', function () { 294 if (window.innerWidth <= 1366) { 295 $(menuDropdownButton).siblings().find('.sub-menu').removeClass('show'); 296 $(menuDropdownButton).siblings().find('[data-arrow]').removeClass('show'); 297 if (menuDropdownPopup.hasClass('show')) { 298 menuDropdownPopup.removeClass('show'); 299 } else { 300 menuDropdownPopup.addClass('show'); 301 } 302 if (menuArrow.hasClass('show')) { 303 menuArrow.removeClass('show'); 304 } else { 305 menuArrow.addClass('show'); 306 } 307 } 308 }); 309 }); 310 if (document.querySelector('[data-play-button]')) { 311 var _playButton = document.querySelector('[data-play-button]'); 312 var iframeVideo = document.querySelector('#video'); 313 var src = iframeVideo.getAttribute('src'); 314 _playButton.addEventListener('click', function () { 315 _playButton.style.display = 'none'; 316 iframeVideo.style.zIndex = '2'; 317 iframeVideo.setAttribute('src', src + '&autoplay=1'); 318 }); 319 } 320 if (document.querySelector('.subscribing')) { 321 localStorage.setItem('subscribed', 'true'); 322 setTimeout(function () { 323 var referrer = localStorage.getItem('referrer'); 324 if (referrer) { 325 window.location.href = referrer; 326 localStorage.removeItem('referrer'); 327 } else { 328 window.history.back(); 329 } 330 }, 2500); 331 } 332 subscribed = localStorage.getItem('subscribed'); 333 var subscribeBannerIndex = localStorage.getItem('subscribeBannerIndex'); 334 if (subscribeBannerIndex && subscribed) { 335 var subscribeBannerElement = $('.subscribe-banner').eq(parseInt(subscribeBannerIndex)); 336 if (subscribeBannerElement.length > 0) { 337 subscribeBannerElement.scrollTop(100); 338 subscribeBannerElement.addClass('subscribed'); 339 scrollTo(subscribeBannerElement); 340 localStorage.removeItem('subscribeBannerIndex'); 341 } 342 } 343 if (subscribed) { 344 document.querySelectorAll('.subscribe-banner').forEach(function (subscribeBanner, index) { 345 if (subscribed && subscribeBanner) { 346 subscribeBanner.scrollTop = 100; 347 subscribeBanner.classList.add('subscribed'); 348 localStorage.removeItem('subscribed'); 349 if (!index && !subscribeBannerIndex) { 350 scrollTo(subscribeBanner); 351 localStorage.removeItem('subscribeBannerIndex'); 352 } 353 } 354 }); 355 } 356 var shareDownloadLinkButtons = document.querySelectorAll('#download-native-share,.download-native-share'); 357 if (shareDownloadLinkButtons.length > 0) { 358 shareDownloadLinkButtons.forEach(function (shareDownloadLinkButton) { 359 shareDownloadLinkButton.addEventListener('click', /*#__PURE__*/function () { 360 var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(e) { 361 return _regeneratorRuntime().wrap(function _callee$(_context) { 362 while (1) switch (_context.prev = _context.next) { 363 case 0: 364 if (!(window.innerWidth > 768 || !navigator.share)) { 365 _context.next = 2; 366 break; 367 } 368 return _context.abrupt("return"); 369 case 2: 370 _context.prev = 2; 371 e.preventDefault(); 372 _context.next = 6; 373 return navigator.share({ 374 title: shareDownloadLinkButton.getAttribute('data-title'), 375 text: shareDownloadLinkButton.getAttribute('data-text'), 376 url: shareDownloadLinkButton.getAttribute('data-url-mobile') || shareDownloadLinkButton.getAttribute('data-url') 377 }); 378 case 6: 379 _context.next = 11; 380 break; 381 case 8: 382 _context.prev = 8; 383 _context.t0 = _context["catch"](2); 384 console.error('Error sharing:', _context.t0); 385 case 11: 386 case "end": 387 return _context.stop(); 388 } 389 }, _callee, null, [[2, 8]]); 390 })); 391 return function (_x) { 392 return _ref.apply(this, arguments); 393 }; 394 }()); 395 }); 396 } 397 function getCookie(name) { 398 var value = "; ".concat(document.cookie); 399 var parts = value.split("; ".concat(name, "=")); 400 if (parts.length === 2) return parts.pop().split(';').shift(); 401 } 402 function setCookie(name, value, days) { 403 var expires = ''; 404 if (days) { 405 var date = new Date(); 406 date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); 407 expires = '; expires=' + date.toUTCString(); 408 } 409 document.cookie = "".concat(name, "=").concat(value || '').concat(expires, "; path=/; SameSite=Lax"); 410 } 411 var download = function download(downloadUrl) { 412 var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3000; 413 return setTimeout(function () { 414 window.location.href = downloadUrl; 415 window.dataLayer.push({ 416 'event': 'moonlock', 417 'eventCategory': 'Moonlock', 418 'eventAction': 'Easy Trial Download DMG', 419 'eventLabel': 'Auto Download' 420 }); 421 var allowDownload = document.querySelector('[data-allow-download]'); 422 if (getCookie('safari_allow_download') !== '1' && allowDownload) { 423 allowDownload.onmousemove = function () {
424 setCookie('safari_allow_download', 1); 425 }; 426 } 427 }, timeout); 428 }; 429 function isActualMacOS() { 430 var nav = window.navigator; 431 432 // 1. Check Modern Client Hints (Chrome, Edge, Opera) 433 if (nav.userAgentData) { 434 return nav.userAgentData.platform === 'macOS'; 435 } 436 437 // 2. Check Legacy Platform string 438 var isMacPlatform = /Mac/.test(nav.platform); 439 440 // 3. Exclude iOS/iPadOS 441 // iPads (especially on Safari) claim to be 'MacIntel' but have touch points. 442 // iPhones also report touch points. MacOS devices (laptops/desktops) do not. 443 var isTouchDevice = nav.maxTouchPoints > 0; 444 return isMacPlatform && !isTouchDevice; 445 } 446 if (isActualMacOS() && document.querySelector('.page-download')) { 447 download(window.download_url); 448 } 449}); 450function validateEmail(email) { 451 var re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 452 return re.test(String(email).toLowerCase()); 453} 454function showErrorMessage() { 455 var errorMessage = document.querySelector('.error-message'); 456 if (errorMessage) { 457 errorMessage.style.display = 'block'; 458 $(errorMessage).first().siblings('form').addClass('error'); 459 } 460} 461function scrollTo(element) { 462 var y = $(element).offset().top - 100; 463 window.scrollTo({ 464 top: y, 465 behavior: 'smooth' 466 }); 467} 468var formAnalyticsTrigger = false; 469var SUBSCRIBE_CONFIG = window.MOONLOCK_SUBSCRIBE || {}; 470var SUBSCRIBE_PATH = '/api/v2/site-subscribe'; 471var SUBSCRIBE_ENDPOINT = (SUBSCRIBE_CONFIG.gatewayUrl || '').replace(/\/+$/, '') + SUBSCRIBE_PATH; 472var SUBSCRIBE_CLIENT_ID = SUBSCRIBE_CONFIG.clientId || ''; 473var SUBSCRIBE_PRODUCT = 'moonlock'; 474jQuery(function ($) { 475 $('body').on('submit', '.subscribe-form', function () { 476 var email = $(this).find('input[type="email"]').val(); 477 if (!formAnalyticsTrigger && validateEmail(email)) { 478 var $subscribeBanner = $(this).closest('.subscribe-banner'); 479 var source = 'mlkWebsite'; 480 var tag = 'mlkBlogFooter'; 481 if ($(this).closest('.subscribe-footer').length > 0) { 482 source = 'mlkWebsite'; 483 tag = 'mlkBlogFooter'; 484 window.dataLayer = window.dataLayer || []; 485 window.dataLayer.push({ 486 'event': 'moonlock', 487 'eventCategory': 'general', 488 'eventAction': 'on-page subscribe form bottom', 489 'eventLabel': 'email opt-in' 490 }); 491 } else if ($(this).closest('.blog-form-wrapper').length > 0) { 492 source = 'mlkWebsite'; 493 tag = 'mlkBlogTop'; 494 window.dataLayer = window.dataLayer || []; 495 window.dataLayer.push({ 496 'event': 'moonlock', 497 'eventCategory': 'general', 498 'eventAction': 'on-page subscribe form top', 499 'eventLabel': 'email opt-in' 500 }); 501 } else if ($(this).closest('.content-text').length > 0) { 502 source = 'mlkWebsite'; 503 tag = 'mlkBlogArticle'; 504 window.dataLayer = window.dataLayer || []; 505 if ($('.subscribe-form').index($(this)) > 0) { 506 window.dataLayer.push({ 507 'event': 'moonlock', 508 'eventCategory': 'blog', 509 'eventAction': 'blog-page subscribe form bottom', 510 'eventLabel': 'email opt-in' 511 }); 512 } else { 513 window.dataLayer.push({ 514 'event': 'moonlock', 515 'eventCategory': 'blog', 516 'eventAction': 'blog-page subscribe form top', 517 'eventLabel': 'email opt-in' 518 }); 519 } 520 } 521 formAnalyticsTrigger = true; 522 localStorage.setItem('referrer', window.location.href); 523 if ($subscribeBanner.length > 0) { 524 localStorage.setItem('subscribeBannerIndex', $('.subscribe-banner').index($subscribeBanner)); 525 } 526 var payload = { 527 email: email, 528 product: SUBSCRIBE_PRODUCT, 529 tag: tag, 530 source: source 531 }; 532 fetch(SUBSCRIBE_ENDPOINT, { 533 method: 'POST', 534 headers: { 535 'Content-Type': 'application/json', 536 'CLIENT-ID': SUBSCRIBE_CLIENT_ID, 537 'Accept-Language': (document.documentElement.lang || 'en').slice(0, 2) 538 }, 539 body: JSON.stringify(payload) 540 }).then(function (res) { 541 if (res.status === 200) { 542 window.location = window.location.origin + '/subscribing'; 543 } else { 544 showErrorMessage(); 545 } 546 }).catch(function () { 547 showErrorMessage(); 548 }); 549 return false;
550 } else if (!formAnalyticsTrigger) { 551 $(this).siblings('.error-message').show(); 552 $(this).addClass('error'); 553 return false; 554 } 555 }); 556 $('body').on('focus', '.subscribe-form input', function () { 557 $(this).closest('form').siblings('.error-message').hide(); 558 $(this).closest('form').removeClass('error'); 559 }); 560 $('body').on('click', '.btn-load-more', function () { 561 var _this = $(this); 562 if (_this.hasClass('active')) { 563 _this.removeClass('active'); 564 _this.siblings('.load-more-wrapper').removeClass('active'); 565 _this.closest('.articles').find('.items .dynamic').addClass('hidden'); 566 scrollTo(_this.closest('.load-more')); 567 } else { 568 _this.siblings('.load-more-wrapper').addClass('active'); 569 var posts2 = _this.closest('.articles').find('.load-more .hidden'); 570 var posts3 = _this.closest('.articles').find('.items .hidden'); 571 if (posts2.length > 0) { 572 posts2.slice(0, 3).removeClass('hidden'); 573 if (posts2.length <= 3) { 574 _this.addClass('active'); 575 } 576 } else if (posts3.length > 0) { 577 posts3.slice(0, 2).removeClass('hidden'); 578 if (posts3.length <= 2) { 579 _this.addClass('active'); 580 } 581 } else { 582 _this.addClass('active'); 583 } 584 } 585 }); 586 if (typeof FsLightbox !== 'undefined' && $('.wp-block-image img').length > 0) { 587 // eslint-disable-next-line no-undef 588 var lightbox = new FsLightbox(); 589 lightbox.props.type = 'image'; 590 var sources = []; 591 $('.wp-block-image img').each(function (index, element) { 592 if ($(element).attr('src')) { 593 sources.push($(element).attr('src')); 594 } 595 }); 596 if (sources.length > 0) { 597 lightbox.props.sources = sources; 598 $('.wp-block-image img').each(function (index, element) { 599 $(element).on('click', function (e) { 600 lightbox.open(index); 601 }); 602 }); 603 } 604 } 605 $('.trck-button').on('click', function () { 606 window.dataLayer = window.dataLayer || []; 607 window.dataLayer.push({ 608 'event': 'moonlock', 609 'eventCategory': 'Moonlock', 610 'eventAction': $(this).attr('data-event-action') ? $(this).attr('data-event-action') : $(this).text().trim(), 611 'eventLabel': $(this).attr('data-event-label') 612 }); 613 }); 614 $('.article-snippet-block .cta-button,.wp-block-article-snippet-block .cta-button').on('click', function () { 615 window.dataLayer = window.dataLayer || []; 616 window.dataLayer.push({ 617 'event': 'moonlock', 618 'eventCategory': 'Moonlock', 619 'eventAction': 'Click Banner - ' + $(this).siblings('.title').text().trim(), 620 'eventLabel': 'In-article' 621 }); 622 }); 623}); 624 625/***/ }), 626 627/***/ "jquery": 628/*!*************************!*\ 629 !*** external "jQuery" ***! 630 \*************************/ 631/***/ (function(module) { 632 633module.exports = jQuery; 634 635/***/ }), 636
vendor: 4,015 bytes, lines 637-802
637/***/ "../../node_modules/ssr-window/ssr-window.esm.js": 638/*!*******************************************************!*\ 639 !*** ../../node_modules/ssr-window/ssr-window.esm.js ***! 640 \*******************************************************/ 641/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 642 643__webpack_require__.r(__webpack_exports__); 644/* harmony export */ __webpack_require__.d(__webpack_exports__, { 645/* harmony export */ extend: function() { return /* binding */ extend; }, 646/* harmony export */ getDocument: function() { return /* binding */ getDocument; }, 647/* harmony export */ getWindow: function() { return /* binding */ getWindow; }, 648/* harmony export */ ssrDocument: function() { return /* binding */ ssrDocument; }, 649/* harmony export */ ssrWindow: function() { return /* binding */ ssrWindow; } 650/* harmony export */ }); 651/** 652 * SSR Window 4.0.2 653 * Better handling for window object in SSR environment 654 * https://github.com/nolimits4web/ssr-window 655 * 656 * Copyright 2021, Vladimir Kharlampidi 657 * 658 * Licensed under MIT 659 * 660 * Released on: December 13, 2021 661 */ 662/* eslint-disable no-param-reassign */ 663function isObject(obj) { 664 return (obj !== null && 665 typeof obj === 'object' && 666 'constructor' in obj && 667 obj.constructor === Object); 668} 669function extend(target = {}, src = {}) { 670 Object.keys(src).forEach((key) => { 671 if (typeof target[key] === 'undefined') 672 target[key] = src[key]; 673 else if (isObject(src[key]) && 674 isObject(target[key]) && 675 Object.keys(src[key]).length > 0) { 676 extend(target[key], src[key]); 677 } 678 }); 679} 680 681const ssrDocument = { 682 body: {}, 683 addEventListener() { }, 684 removeEventListener() { }, 685 activeElement: { 686 blur() { }, 687 nodeName: '', 688 }, 689 querySelector() { 690 return null; 691 }, 692 querySelectorAll() { 693 return []; 694 }, 695 getElementById() { 696 return null; 697 }, 698 createEvent() { 699 return { 700 initEvent() { }, 701 }; 702 }, 703 createElement() { 704 return { 705 children: [], 706 childNodes: [], 707 style: {}, 708 setAttribute() { }, 709 getElementsByTagName() { 710 return []; 711 }, 712 }; 713 }, 714 createElementNS() { 715 return {}; 716 }, 717 importNode() { 718 return null; 719 }, 720 location: { 721 hash: '', 722 host: '', 723 hostname: '', 724 href: '', 725 origin: '', 726 pathname: '', 727 protocol: '', 728 search: '', 729 }, 730}; 731function getDocument() { 732 const doc = typeof document !== 'undefined' ? document : {}; 733 extend(doc, ssrDocument); 734 return doc; 735} 736 737const ssrWindow = { 738 document: ssrDocument, 739 navigator: { 740 userAgent: '', 741 }, 742 location: { 743 hash: '', 744 host: '', 745 hostname: '', 746 href: '', 747 origin: '', 748 pathname: '', 749 protocol: '', 750 search: '', 751 }, 752 history: { 753 replaceState() { }, 754 pushState() { }, 755 go() { }, 756 back() { }, 757 }, 758 CustomEvent: function CustomEvent() { 759 return this; 760 }, 761 addEventListener() { }, 762 removeEventListener() { }, 763 getComputedStyle() { 764 return { 765 getPropertyValue() { 766 return ''; 767 }, 768 }; 769 }, 770 Image() { }, 771 Date() { }, 772 screen: {}, 773 setTimeout() { }, 774 clearTimeout() { }, 775 matchMedia() { 776 return {}; 777 }, 778 requestAnimationFrame(callback) { 779 if (typeof setTimeout === 'undefined') { 780 callback(); 781 return null; 782 } 783 return setTimeout(callback, 0); 784 }, 785 cancelAnimationFrame(id) { 786 if (typeof setTimeout === 'undefined') { 787 return; 788 } 789 clearTimeout(id); 790 }, 791}; 792function getWindow() { 793 const win = typeof window !== 'undefined' ? window : {}; 794 extend(win, ssrWindow); 795 return win; 796} 797 798 799 800 801/***/ }), 802
vendor: 1,874 bytes, lines 803-852
803/***/ "../../node_modules/swiper/core/breakpoints/getBreakpoint.js": 804/*!*******************************************************************!*\ 805 !*** ../../node_modules/swiper/core/breakpoints/getBreakpoint.js ***! 806 \*******************************************************************/ 807/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 808 809__webpack_require__.r(__webpack_exports__); 810/* harmony export */ __webpack_require__.d(__webpack_exports__, { 811/* harmony export */ "default": function() { return /* binding */ getBreakpoint; } 812/* harmony export */ }); 813/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 814 815function getBreakpoint(breakpoints, base = 'window', containerEl) { 816 if (!breakpoints || base === 'container' && !containerEl) return undefined; 817 let breakpoint = false; 818 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 819 const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight; 820 const points = Object.keys(breakpoints).map(point => { 821 if (typeof point === 'string' && point.indexOf('@') === 0) { 822 const minRatio = parseFloat(point.substr(1)); 823 const value = currentHeight * minRatio; 824 return { 825 value, 826 point 827 }; 828 } 829 return { 830 value: point, 831 point 832 }; 833 }); 834 points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10)); 835 for (let i = 0; i < points.length; i += 1) { 836 const { 837 point, 838 value 839 } = points[i]; 840 if (base === 'window') { 841 if (window.matchMedia(`(min-width: ${value}px)`).matches) { 842 breakpoint = point; 843 } 844 } else if (value <= containerEl.clientWidth) { 845 breakpoint = point; 846 } 847 } 848 return breakpoint || 'max'; 849} 850 851/***/ }), 852
vendor: 999 bytes, lines 853-870
853/***/ "../../node_modules/swiper/core/breakpoints/index.js": 854/*!***********************************************************!*\ 855 !*** ../../node_modules/swiper/core/breakpoints/index.js ***! 856 \***********************************************************/ 857/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 858 859__webpack_require__.r(__webpack_exports__); 860/* harmony import */ var _setBreakpoint_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setBreakpoint.js */ "../../node_modules/swiper/core/breakpoints/setBreakpoint.js"); 861/* harmony import */ var _getBreakpoint_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getBreakpoint.js */ "../../node_modules/swiper/core/breakpoints/getBreakpoint.js"); 862 863 864/* harmony default export */ __webpack_exports__["default"] = ({ 865 setBreakpoint: _setBreakpoint_js__WEBPACK_IMPORTED_MODULE_0__["default"], 866 getBreakpoint: _getBreakpoint_js__WEBPACK_IMPORTED_MODULE_1__["default"] 867}); 868 869/***/ }), 870
vendor: 3,749 bytes, lines 871-956
871/***/ "../../node_modules/swiper/core/breakpoints/setBreakpoint.js": 872/*!*******************************************************************!*\ 873 !*** ../../node_modules/swiper/core/breakpoints/setBreakpoint.js ***! 874 \*******************************************************************/ 875/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 876 877__webpack_require__.r(__webpack_exports__); 878/* harmony export */ __webpack_require__.d(__webpack_exports__, { 879/* harmony export */ "default": function() { return /* binding */ setBreakpoint; } 880/* harmony export */ }); 881/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 882 883const isGridEnabled = (swiper, params) => { 884 return swiper.grid && params.grid && params.grid.rows > 1; 885}; 886function setBreakpoint() { 887 const swiper = this; 888 const { 889 realIndex, 890 initialized, 891 params, 892 el 893 } = swiper; 894 const breakpoints = params.breakpoints; 895 if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; 896 897 // Get breakpoint for window width and update parameters 898 const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el); 899 if (!breakpoint || swiper.currentBreakpoint === breakpoint) return; 900 const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; 901 const breakpointParams = breakpointOnlyParams || swiper.originalParams; 902 const wasMultiRow = isGridEnabled(swiper, params); 903 const isMultiRow = isGridEnabled(swiper, breakpointParams); 904 const wasEnabled = params.enabled; 905 if (wasMultiRow && !isMultiRow) { 906 el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`); 907 swiper.emitContainerClasses(); 908 } else if (!wasMultiRow && isMultiRow) { 909 el.classList.add(`${params.containerModifierClass}grid`); 910 if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') { 911 el.classList.add(`${params.containerModifierClass}grid-column`); 912 } 913 swiper.emitContainerClasses(); 914 } 915 916 // Toggle navigation, pagination, scrollbar 917 ['navigation', 'pagination', 'scrollbar'].forEach(prop => { 918 if (typeof breakpointParams[prop] === 'undefined') return; 919 const wasModuleEnabled = params[prop] && params[prop].enabled; 920 const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled; 921 if (wasModuleEnabled && !isModuleEnabled) { 922 swiper[prop].disable(); 923 } 924 if (!wasModuleEnabled && isModuleEnabled) { 925 swiper[prop].enable(); 926 } 927 }); 928 const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; 929 const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); 930 if (directionChanged && initialized) { 931 swiper.changeDirection(); 932 } 933 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(swiper.params, breakpointParams); 934 const isEnabled = swiper.params.enabled; 935 Object.assign(swiper, { 936 allowTouchMove: swiper.params.allowTouchMove, 937 allowSlideNext: swiper.params.allowSlideNext, 938 allowSlidePrev: swiper.params.allowSlidePrev 939 }); 940 if (wasEnabled && !isEnabled) { 941 swiper.disable(); 942 } else if (!wasEnabled && isEnabled) { 943 swiper.enable(); 944 } 945 swiper.currentBreakpoint = breakpoint; 946 swiper.emit('_beforeBreakpoint', breakpointParams); 947 if (needsReLoop && initialized) { 948 swiper.loopDestroy(); 949 swiper.loopCreate(realIndex); 950 swiper.updateSlides(); 951 } 952 swiper.emit('breakpoint', breakpointParams); 953} 954 955/***/ }), 956
vendor: 1,360 bytes, lines 957-998
957/***/ "../../node_modules/swiper/core/check-overflow/index.js": 958/*!**************************************************************!*\ 959 !*** ../../node_modules/swiper/core/check-overflow/index.js ***! 960 \**************************************************************/ 961/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 962 963__webpack_require__.r(__webpack_exports__); 964function checkOverflow() { 965 const swiper = this; 966 const { 967 isLocked: wasLocked, 968 params 969 } = swiper; 970 const { 971 slidesOffsetBefore 972 } = params; 973 if (slidesOffsetBefore) { 974 const lastSlideIndex = swiper.slides.length - 1; 975 const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2; 976 swiper.isLocked = swiper.size > lastSlideRightEdge; 977 } else { 978 swiper.isLocked = swiper.snapGrid.length === 1; 979 } 980 if (params.allowSlideNext === true) { 981 swiper.allowSlideNext = !swiper.isLocked; 982 } 983 if (params.allowSlidePrev === true) { 984 swiper.allowSlidePrev = !swiper.isLocked; 985 } 986 if (wasLocked && wasLocked !== swiper.isLocked) { 987 swiper.isEnd = false; 988 } 989 if (wasLocked !== swiper.isLocked) { 990 swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); 991 } 992} 993/* harmony default export */ __webpack_exports__["default"] = ({ 994 checkOverflow 995}); 996 997/***/ }), 998
vendor: 1,857 bytes, lines 999-1061
999/***/ "../../node_modules/swiper/core/classes/addClasses.js": 1000/*!************************************************************!*\ 1001 !*** ../../node_modules/swiper/core/classes/addClasses.js ***! 1002 \************************************************************/ 1003/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1004 1005__webpack_require__.r(__webpack_exports__); 1006/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1007/* harmony export */ "default": function() { return /* binding */ addClasses; } 1008/* harmony export */ }); 1009function prepareClasses(entries, prefix) { 1010 const resultClasses = []; 1011 entries.forEach(item => { 1012 if (typeof item === 'object') { 1013 Object.keys(item).forEach(classNames => { 1014 if (item[classNames]) { 1015 resultClasses.push(prefix + classNames); 1016 } 1017 }); 1018 } else if (typeof item === 'string') { 1019 resultClasses.push(prefix + item); 1020 } 1021 }); 1022 return resultClasses; 1023} 1024function addClasses() { 1025 const swiper = this; 1026 const { 1027 classNames, 1028 params, 1029 rtl, 1030 el, 1031 device 1032 } = swiper; 1033 // prettier-ignore 1034 const suffixes = prepareClasses(['initialized', params.direction, { 1035 'free-mode': swiper.params.freeMode && params.freeMode.enabled 1036 }, { 1037 'autoheight': params.autoHeight 1038 }, { 1039 'rtl': rtl 1040 }, { 1041 'grid': params.grid && params.grid.rows > 1 1042 }, { 1043 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' 1044 }, { 1045 'android': device.android 1046 }, { 1047 'ios': device.ios 1048 }, { 1049 'css-mode': params.cssMode 1050 }, { 1051 'centered': params.cssMode && params.centeredSlides 1052 }, { 1053 'watch-progress': params.watchSlidesProgress 1054 }], params.containerModifierClass); 1055 classNames.push(...suffixes); 1056 el.classList.add(...classNames); 1057 swiper.emitContainerClasses(); 1058} 1059 1060/***/ }), 1061
vendor: 960 bytes, lines 1062-1079
1062/***/ "../../node_modules/swiper/core/classes/index.js": 1063/*!*******************************************************!*\ 1064 !*** ../../node_modules/swiper/core/classes/index.js ***! 1065 \*******************************************************/ 1066/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1067 1068__webpack_require__.r(__webpack_exports__); 1069/* harmony import */ var _addClasses_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addClasses.js */ "../../node_modules/swiper/core/classes/addClasses.js"); 1070/* harmony import */ var _removeClasses_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./removeClasses.js */ "../../node_modules/swiper/core/classes/removeClasses.js"); 1071 1072 1073/* harmony default export */ __webpack_exports__["default"] = ({ 1074 addClasses: _addClasses_js__WEBPACK_IMPORTED_MODULE_0__["default"], 1075 removeClasses: _removeClasses_js__WEBPACK_IMPORTED_MODULE_1__["default"] 1076}); 1077 1078/***/ }), 1079
vendor: 771 bytes, lines 1080-1101
1080/***/ "../../node_modules/swiper/core/classes/removeClasses.js": 1081/*!***************************************************************!*\ 1082 !*** ../../node_modules/swiper/core/classes/removeClasses.js ***! 1083 \***************************************************************/ 1084/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1085 1086__webpack_require__.r(__webpack_exports__); 1087/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1088/* harmony export */ "default": function() { return /* binding */ removeClasses; } 1089/* harmony export */ }); 1090function removeClasses() { 1091 const swiper = this; 1092 const { 1093 el, 1094 classNames 1095 } = swiper; 1096 el.classList.remove(...classNames); 1097 swiper.emitContainerClasses(); 1098} 1099 1100/***/ }), 1101
vendor: 23,723 bytes, lines 1102-1730
1102/***/ "../../node_modules/swiper/core/core.js": 1103/*!**********************************************!*\ 1104 !*** ../../node_modules/swiper/core/core.js ***! 1105 \**********************************************/ 1106/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1107 1108__webpack_require__.r(__webpack_exports__); 1109/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 1110/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 1111/* harmony import */ var _shared_get_support_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/get-support.js */ "../../node_modules/swiper/shared/get-support.js"); 1112/* harmony import */ var _shared_get_device_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/get-device.js */ "../../node_modules/swiper/shared/get-device.js"); 1113/* harmony import */ var _shared_get_browser_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/get-browser.js */ "../../node_modules/swiper/shared/get-browser.js"); 1114/* 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"); 1115/* 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"); 1116/* harmony import */ var _events_emitter_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./events-emitter.js */ "../../node_modules/swiper/core/events-emitter.js"); 1117/* harmony import */ var _update_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./update/index.js */ "../../node_modules/swiper/core/update/index.js"); 1118/* harmony import */ var _translate_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./translate/index.js */ "../../node_modules/swiper/core/translate/index.js"); 1119/* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./transition/index.js */ "../../node_modules/swiper/core/transition/index.js"); 1120/* harmony import */ var _slide_index_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./slide/index.js */ "../../node_modules/swiper/core/slide/index.js"); 1121/* harmony import */ var _loop_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./loop/index.js */ "../../node_modules/swiper/core/loop/index.js"); 1122/* 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"); 1123/* harmony import */ var _events_index_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./events/index.js */ "../../node_modules/swiper/core/events/index.js"); 1124/* harmony import */ var _breakpoints_index_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./breakpoints/index.js */ "../../node_modules/swiper/core/breakpoints/index.js"); 1125/* harmony import */ var _classes_index_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./classes/index.js */ "../../node_modules/swiper/core/classes/index.js"); 1126/* 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"); 1127/* harmony import */ var _defaults_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./defaults.js */ "../../node_modules/swiper/core/defaults.js"); 1128/* harmony import */ var _moduleExtendParams_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./moduleExtendParams.js */ "../../node_modules/swiper/core/moduleExtendParams.js"); 1129/* 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"); 1130/* eslint no-param-reassign: "off" */ 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152const prototypes = { 1153 eventsEmitter: _events_emitter_js__WEBPACK_IMPORTED_MODULE_7__["default"], 1154 update: _update_index_js__WEBPACK_IMPORTED_MODULE_8__["default"], 1155 translate: _translate_index_js__WEBPACK_IMPORTED_MODULE_9__["default"], 1156 transition: _transition_index_js__WEBPACK_IMPORTED_MODULE_10__["default"], 1157 slide: _slide_index_js__WEBPACK_IMPORTED_MODULE_11__["default"], 1158 loop: _loop_index_js__WEBPACK_IMPORTED_MODULE_12__["default"], 1159 grabCursor: _grab_cursor_index_js__WEBPACK_IMPORTED_MODULE_13__["default"], 1160 events: _events_index_js__WEBPACK_IMPORTED_MODULE_14__["default"], 1161 breakpoints: _breakpoints_index_js__WEBPACK_IMPORTED_MODULE_15__["default"], 1162 checkOverflow: _check_overflow_index_js__WEBPACK_IMPORTED_MODULE_17__["default"], 1163 classes: _classes_index_js__WEBPACK_IMPORTED_MODULE_16__["default"] 1164}; 1165const extendedDefaults = {}; 1166class Swiper { 1167 constructor(...args) { 1168 let el; 1169 let params; 1170 if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') { 1171 params = args[0]; 1172 } else { 1173 [el, params] = args; 1174 } 1175 if (!params) params = {}; 1176 params = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, params); 1177 if (el && !params.el) params.el = el; 1178 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 1179 if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) { 1180 const swipers = []; 1181 document.querySelectorAll(params.el).forEach(containerEl => { 1182 const newParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, params, { 1183 el: containerEl 1184 }); 1185 swipers.push(new Swiper(newParams)); 1186 }); 1187 // eslint-disable-next-line no-constructor-return 1188 return swipers; 1189 } 1190 1191 // Swiper Instance 1192 const swiper = this; 1193 swiper.__swiper__ = true; 1194 swiper.support = (0,_shared_get_support_js__WEBPACK_IMPORTED_MODULE_2__.getSupport)(); 1195 swiper.device = (0,_shared_get_device_js__WEBPACK_IMPORTED_MODULE_3__.getDevice)({ 1196 userAgent: params.userAgent 1197 }); 1198 swiper.browser = (0,_shared_get_browser_js__WEBPACK_IMPORTED_MODULE_4__.getBrowser)(); 1199 swiper.eventsListeners = {}; 1200 swiper.eventsAnyListeners = []; 1201 swiper.modules = [...swiper.__modules__]; 1202 if (params.modules && Array.isArray(params.modules)) { 1203 swiper.modules.push(...params.modules); 1204 } 1205 const allModulesParams = {}; 1206 swiper.modules.forEach(mod => { 1207 mod({ 1208 params, 1209 swiper, 1210 extendParams: (0,_moduleExtendParams_js__WEBPACK_IMPORTED_MODULE_19__["default"])(params, allModulesParams), 1211 on: swiper.on.bind(swiper), 1212 once: swiper.once.bind(swiper), 1213 off: swiper.off.bind(swiper), 1214 emit: swiper.emit.bind(swiper) 1215 }); 1216 }); 1217 1218 // Extend defaults with modules params 1219 const swiperParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, _defaults_js__WEBPACK_IMPORTED_MODULE_18__["default"], allModulesParams); 1220 1221 // Extend defaults with passed params 1222 swiper.params = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, swiperParams, extendedDefaults, params); 1223 swiper.originalParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, swiper.params); 1224 swiper.passedParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, params); 1225 1226 // add event listeners 1227 if (swiper.params && swiper.params.on) { 1228 Object.keys(swiper.params.on).forEach(eventName => { 1229 swiper.on(eventName, swiper.params.on[eventName]); 1230 }); 1231 } 1232 if (swiper.params && swiper.params.onAny) { 1233 swiper.onAny(swiper.params.onAny); 1234 } 1235 1236 // Extend Swiper 1237 Object.assign(swiper, { 1238 enabled: swiper.params.enabled, 1239 el, 1240 // Classes 1241 classNames: [], 1242 // Slides 1243 slides: [], 1244 slidesGrid: [], 1245 snapGrid: [], 1246 slidesSizesGrid: [], 1247 // isDirection 1248 isHorizontal() { 1249 return swiper.params.direction === 'horizontal'; 1250 }, 1251 isVertical() { 1252 return swiper.params.direction === 'vertical'; 1253 }, 1254 // Indexes 1255 activeIndex: 0, 1256 realIndex: 0, 1257 // 1258 isBeginning: true, 1259 isEnd: false, 1260 // Props 1261 translate: 0, 1262 previousTranslate: 0, 1263 progress: 0, 1264 velocity: 0, 1265 animating: false, 1266 cssOverflowAdjustment() { 1267 // Returns 0 unless `translate` is > 2**23 1268 // Should be subtracted from css values to prevent overflow 1269 return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; 1270 }, 1271 // Locks 1272 allowSlideNext: swiper.params.allowSlideNext, 1273 allowSlidePrev: swiper.params.allowSlidePrev, 1274 // Touch Events 1275 touchEventsData: { 1276 isTouched: undefined, 1277 isMoved: undefined, 1278 allowTouchCallbacks: undefined, 1279 touchStartTime: undefined, 1280 isScrolling: undefined, 1281 currentTranslate: undefined, 1282 startTranslate: undefined, 1283 allowThresholdMove: undefined, 1284 // Form elements to match 1285 focusableElements: swiper.params.focusableElements, 1286 // Last click time 1287 lastClickTime: 0, 1288 clickTimeout: undefined, 1289 // Velocities 1290 velocities: [], 1291 allowMomentumBounce: undefined, 1292 startMoving: undefined, 1293 evCache: [] 1294 }, 1295 // Clicks 1296 allowClick: true, 1297 // Touches 1298 allowTouchMove: swiper.params.allowTouchMove, 1299 touches: { 1300 startX: 0, 1301 startY: 0, 1302 currentX: 0, 1303 currentY: 0, 1304 diff: 0 1305 }, 1306 // Images 1307 imagesToLoad: [], 1308 imagesLoaded: 0 1309 }); 1310 swiper.emit('_swiper'); 1311 1312 // Init 1313 if (swiper.params.init) { 1314 swiper.init(); 1315 } 1316 1317 // Return app instance 1318 // eslint-disable-next-line no-constructor-return 1319 return swiper; 1320 } 1321 getSlideIndex(slideEl) { 1322 const { 1323 slidesEl, 1324 params 1325 } = this; 1326 const slides = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(slidesEl, `.${params.slideClass}, swiper-slide`); 1327 const firstSlideIndex = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementIndex)(slides[0]); 1328 return (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementIndex)(slideEl) - firstSlideIndex; 1329 } 1330 getSlideIndexByData(index) { 1331 return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]); 1332 } 1333 recalcSlides() { 1334 const swiper = this; 1335 const { 1336 slidesEl, 1337 params 1338 } = swiper; 1339 swiper.slides = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(slidesEl, `.${params.slideClass}, swiper-slide`); 1340 } 1341 enable() { 1342 const swiper = this; 1343 if (swiper.enabled) return; 1344 swiper.enabled = true; 1345 if (swiper.params.grabCursor) { 1346 swiper.setGrabCursor(); 1347 } 1348 swiper.emit('enable'); 1349 } 1350 disable() { 1351 const swiper = this; 1352 if (!swiper.enabled) return; 1353 swiper.enabled = false; 1354 if (swiper.params.grabCursor) { 1355 swiper.unsetGrabCursor(); 1356 } 1357 swiper.emit('disable'); 1358 } 1359 setProgress(progress, speed) { 1360 const swiper = this; 1361 progress = Math.min(Math.max(progress, 0), 1); 1362 const min = swiper.minTranslate(); 1363 const max = swiper.maxTranslate(); 1364 const current = (max - min) * progress + min; 1365 swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed); 1366 swiper.updateActiveIndex(); 1367 swiper.updateSlidesClasses(); 1368 } 1369 emitContainerClasses() { 1370 const swiper = this; 1371 if (!swiper.params._emitClasses || !swiper.el) return; 1372 const cls = swiper.el.className.split(' ').filter(className => { 1373 return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0; 1374 }); 1375 swiper.emit('_containerClasses', cls.join(' ')); 1376 } 1377 getSlideClasses(slideEl) { 1378 const swiper = this; 1379 if (swiper.destroyed) return ''; 1380 return slideEl.className.split(' ').filter(className => { 1381 return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0; 1382 }).join(' '); 1383 } 1384 emitSlidesClasses() { 1385 const swiper = this; 1386 if (!swiper.params._emitClasses || !swiper.el) return; 1387 const updates = []; 1388 swiper.slides.forEach(slideEl => { 1389 const classNames = swiper.getSlideClasses(slideEl); 1390 updates.push({ 1391 slideEl, 1392 classNames 1393 }); 1394 swiper.emit('_slideClass', slideEl, classNames); 1395 }); 1396 swiper.emit('_slideClasses', updates); 1397 } 1398 slidesPerViewDynamic(view = 'current', exact = false) { 1399 const swiper = this; 1400 const { 1401 params, 1402 slides, 1403 slidesGrid, 1404 slidesSizesGrid, 1405 size: swiperSize, 1406 activeIndex 1407 } = swiper; 1408 let spv = 1; 1409 if (params.centeredSlides) { 1410 let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0; 1411 let breakLoop; 1412 for (let i = activeIndex + 1; i < slides.length; i += 1) { 1413 if (slides[i] && !breakLoop) { 1414 slideSize += slides[i].swiperSlideSize; 1415 spv += 1; 1416 if (slideSize > swiperSize) breakLoop = true; 1417 } 1418 } 1419 for (let i = activeIndex - 1; i >= 0; i -= 1) { 1420 if (slides[i] && !breakLoop) { 1421 slideSize += slides[i].swiperSlideSize; 1422 spv += 1; 1423 if (slideSize > swiperSize) breakLoop = true; 1424 } 1425 } 1426 } else { 1427 // eslint-disable-next-line 1428 if (view === 'current') { 1429 for (let i = activeIndex + 1; i < slides.length; i += 1) { 1430 const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize; 1431 if (slideInView) { 1432 spv += 1; 1433 } 1434 } 1435 } else { 1436 // previous 1437 for (let i = activeIndex - 1; i >= 0; i -= 1) { 1438 const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize; 1439 if (slideInView) { 1440 spv += 1; 1441 } 1442 } 1443 } 1444 } 1445 return spv; 1446 } 1447 update() { 1448 const swiper = this; 1449 if (!swiper || swiper.destroyed) return; 1450 const { 1451 snapGrid, 1452 params 1453 } = swiper; 1454 // Breakpoints 1455 if (params.breakpoints) { 1456 swiper.setBreakpoint(); 1457 } 1458 [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => { 1459 if (imageEl.complete) { 1460 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_20__.processLazyPreloader)(swiper, imageEl); 1461 } 1462 }); 1463 swiper.updateSize(); 1464 swiper.updateSlides(); 1465 swiper.updateProgress(); 1466 swiper.updateSlidesClasses(); 1467 function setTranslate() { 1468 const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; 1469 const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); 1470 swiper.setTranslate(newTranslate); 1471 swiper.updateActiveIndex(); 1472 swiper.updateSlidesClasses(); 1473 } 1474 let translated; 1475 if (params.freeMode && params.freeMode.enabled && !params.cssMode) { 1476 setTranslate(); 1477 if (params.autoHeight) { 1478 swiper.updateAutoHeight(); 1479 } 1480 } else { 1481 if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) { 1482 const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides; 1483 translated = swiper.slideTo(slides.length - 1, 0, false, true); 1484 } else { 1485 translated = swiper.slideTo(swiper.activeIndex, 0, false, true); 1486 } 1487 if (!translated) { 1488 setTranslate(); 1489 } 1490 } 1491 if (params.watchOverflow && snapGrid !== swiper.snapGrid) { 1492 swiper.checkOverflow(); 1493 } 1494 swiper.emit('update'); 1495 } 1496 changeDirection(newDirection, needUpdate = true) { 1497 const swiper = this; 1498 const currentDirection = swiper.params.direction; 1499 if (!newDirection) { 1500 // eslint-disable-next-line 1501 newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal'; 1502 } 1503 if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') { 1504 return swiper; 1505 } 1506 swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`); 1507 swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`); 1508 swiper.emitContainerClasses(); 1509 swiper.params.direction = newDirection; 1510 swiper.slides.forEach(slideEl => { 1511 if (newDirection === 'vertical') { 1512 slideEl.style.width = ''; 1513 } else { 1514 slideEl.style.height = ''; 1515 } 1516 }); 1517 swiper.emit('changeDirection'); 1518 if (needUpdate) swiper.update(); 1519 return swiper; 1520 } 1521 changeLanguageDirection(direction) { 1522 const swiper = this; 1523 if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return; 1524 swiper.rtl = direction === 'rtl'; 1525 swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl; 1526 if (swiper.rtl) { 1527 swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`); 1528 swiper.el.dir = 'rtl'; 1529 } else { 1530 swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`); 1531 swiper.el.dir = 'ltr'; 1532 } 1533 swiper.update(); 1534 } 1535 mount(element) { 1536 const swiper = this; 1537 if (swiper.mounted) return true; 1538 1539 // Find el 1540 let el = element || swiper.params.el; 1541 if (typeof el === 'string') { 1542 el = document.querySelector(el); 1543 } 1544 if (!el) { 1545 return false; 1546 } 1547 el.swiper = swiper; 1548 if (el.shadowEl) { 1549 swiper.isElement = true; 1550 } 1551 const getWrapperSelector = () => { 1552 return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`; 1553 }; 1554 const getWrapper = () => { 1555 if (el && el.shadowRoot && el.shadowRoot.querySelector) { 1556 const res = el.shadowRoot.querySelector(getWrapperSelector()); 1557 // Children needs to return slot items 1558 return res; 1559 } 1560 return (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(el, getWrapperSelector())[0]; 1561 }; 1562 // Find Wrapper 1563 let wrapperEl = getWrapper(); 1564 if (!wrapperEl && swiper.params.createElements) { 1565 wrapperEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', swiper.params.wrapperClass); 1566 el.append(wrapperEl); 1567 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(el, `.${swiper.params.slideClass}`).forEach(slideEl => { 1568 wrapperEl.append(slideEl); 1569 }); 1570 } 1571 Object.assign(swiper, { 1572 el, 1573 wrapperEl, 1574 slidesEl: swiper.isElement ? el : wrapperEl, 1575 mounted: true, 1576 // RTL 1577 rtl: el.dir.toLowerCase() === 'rtl' || (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementStyle)(el, 'direction') === 'rtl', 1578 rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementStyle)(el, 'direction') === 'rtl'), 1579 wrongRTL: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementStyle)(wrapperEl, 'display') === '-webkit-box' 1580 }); 1581 return true; 1582 } 1583 init(el) { 1584 const swiper = this; 1585 if (swiper.initialized) return swiper; 1586 const mounted = swiper.mount(el); 1587 if (mounted === false) return swiper; 1588 swiper.emit('beforeInit'); 1589 1590 // Set breakpoint 1591 if (swiper.params.breakpoints) { 1592 swiper.setBreakpoint(); 1593 } 1594 1595 // Add Classes 1596 swiper.addClasses(); 1597 1598 // Update size 1599 swiper.updateSize(); 1600 1601 // Update slides 1602 swiper.updateSlides(); 1603 if (swiper.params.watchOverflow) { 1604 swiper.checkOverflow(); 1605 } 1606 1607 // Set Grab Cursor 1608 if (swiper.params.grabCursor && swiper.enabled) { 1609 swiper.setGrabCursor(); 1610 } 1611 1612 // Slide To Initial Slide 1613 if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { 1614 swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true); 1615 } else { 1616 swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true); 1617 } 1618 1619 // Create loop 1620 if (swiper.params.loop) { 1621 swiper.loopCreate(); 1622 } 1623 1624 // Attach events 1625 swiper.attachEvents(); 1626 [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => { 1627 if (imageEl.complete) { 1628 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_20__.processLazyPreloader)(swiper, imageEl); 1629 } else { 1630 imageEl.addEventListener('load', e => { 1631 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_20__.processLazyPreloader)(swiper, e.target); 1632 }); 1633 } 1634 }); 1635 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_20__.preload)(swiper); 1636 1637 // Init Flag 1638 swiper.initialized = true; 1639 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_20__.preload)(swiper); 1640 1641 // Emit 1642 swiper.emit('init'); 1643 swiper.emit('afterInit'); 1644 return swiper; 1645 } 1646 destroy(deleteInstance = true, cleanStyles = true) { 1647 const swiper = this; 1648 const { 1649 params, 1650 el, 1651 wrapperEl, 1652 slides 1653 } = swiper; 1654 if (typeof swiper.params === 'undefined' || swiper.destroyed) { 1655 return null; 1656 } 1657 swiper.emit('beforeDestroy'); 1658 1659 // Init Flag 1660 swiper.initialized = false; 1661 1662 // Detach events 1663 swiper.detachEvents(); 1664 1665 // Destroy loop 1666 if (params.loop) { 1667 swiper.loopDestroy(); 1668 } 1669 1670 // Cleanup styles 1671 if (cleanStyles) { 1672 swiper.removeClasses(); 1673 el.removeAttribute('style'); 1674 wrapperEl.removeAttribute('style'); 1675 if (slides && slides.length) { 1676 slides.forEach(slideEl => { 1677 slideEl.classList.remove(params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass); 1678 slideEl.removeAttribute('style'); 1679 slideEl.removeAttribute('data-swiper-slide-index'); 1680 }); 1681 } 1682 } 1683 swiper.emit('destroy'); 1684 1685 // Detach emitter events 1686 Object.keys(swiper.eventsListeners).forEach(eventName => { 1687 swiper.off(eventName); 1688 }); 1689 if (deleteInstance !== false) { 1690 swiper.el.swiper = null; 1691 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.deleteProps)(swiper); 1692 } 1693 swiper.destroyed = true; 1694 return null; 1695 } 1696 static extendDefaults(newDefaults) { 1697 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)(extendedDefaults, newDefaults); 1698 } 1699 static get extendedDefaults() { 1700 return extendedDefaults; 1701 } 1702 static get defaults() { 1703 return _defaults_js__WEBPACK_IMPORTED_MODULE_18__["default"]; 1704 } 1705 static installModule(mod) { 1706 if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = []; 1707 const modules = Swiper.prototype.__modules__; 1708 if (typeof mod === 'function' && modules.indexOf(mod) < 0) { 1709 modules.push(mod); 1710 } 1711 } 1712 static use(module) { 1713 if (Array.isArray(module)) { 1714 module.forEach(m => Swiper.installModule(m)); 1715 return Swiper; 1716 } 1717 Swiper.installModule(module); 1718 return Swiper; 1719 } 1720} 1721Object.keys(prototypes).forEach(prototypeGroup => { 1722 Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => { 1723 Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; 1724 }); 1725}); 1726Swiper.use([_modules_resize_resize_js__WEBPACK_IMPORTED_MODULE_5__["default"], _modules_observer_observer_js__WEBPACK_IMPORTED_MODULE_6__["default"]]); 1727/* harmony default export */ __webpack_exports__["default"] = (Swiper); 1728 1729/***/ }), 1730
vendor: 3,273 bytes, lines 1731-1857
1731/***/ "../../node_modules/swiper/core/defaults.js": 1732/*!**************************************************!*\ 1733 !*** ../../node_modules/swiper/core/defaults.js ***! 1734 \**************************************************/ 1735/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1736 1737__webpack_require__.r(__webpack_exports__); 1738/* harmony default export */ __webpack_exports__["default"] = ({ 1739 init: true, 1740 direction: 'horizontal', 1741 oneWayMovement: false, 1742 touchEventsTarget: 'wrapper', 1743 initialSlide: 0, 1744 speed: 300, 1745 cssMode: false, 1746 updateOnWindowResize: true, 1747 resizeObserver: true, 1748 nested: false, 1749 createElements: false, 1750 enabled: true, 1751 focusableElements: 'input, select, option, textarea, button, video, label', 1752 // Overrides 1753 width: null, 1754 height: null, 1755 // 1756 preventInteractionOnTransition: false, 1757 // ssr 1758 userAgent: null, 1759 url: null, 1760 // To support iOS's swipe-to-go-back gesture (when being used in-app). 1761 edgeSwipeDetection: false, 1762 edgeSwipeThreshold: 20, 1763 // Autoheight 1764 autoHeight: false, 1765 // Set wrapper width 1766 setWrapperSize: false, 1767 // Virtual Translate 1768 virtualTranslate: false, 1769 // Effects 1770 effect: 'slide', 1771 // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' 1772 1773 // Breakpoints 1774 breakpoints: undefined, 1775 breakpointsBase: 'window', 1776 // Slides grid 1777 spaceBetween: 0, 1778 slidesPerView: 1, 1779 slidesPerGroup: 1, 1780 slidesPerGroupSkip: 0, 1781 slidesPerGroupAuto: false, 1782 centeredSlides: false, 1783 centeredSlidesBounds: false, 1784 slidesOffsetBefore: 0, 1785 // in px 1786 slidesOffsetAfter: 0, 1787 // in px 1788 normalizeSlideIndex: true, 1789 centerInsufficientSlides: false, 1790 // Disable swiper and hide navigation when container not overflow 1791 watchOverflow: true, 1792 // Round length 1793 roundLengths: false, 1794 // Touches 1795 touchRatio: 1, 1796 touchAngle: 45, 1797 simulateTouch: true, 1798 shortSwipes: true, 1799 longSwipes: true, 1800 longSwipesRatio: 0.5, 1801 longSwipesMs: 300, 1802 followFinger: true, 1803 allowTouchMove: true, 1804 threshold: 5, 1805 touchMoveStopPropagation: false, 1806 touchStartPreventDefault: true, 1807 touchStartForcePreventDefault: false, 1808 touchReleaseOnEdges: false, 1809 // Unique Navigation Elements 1810 uniqueNavElements: true, 1811 // Resistance 1812 resistance: true, 1813 resistanceRatio: 0.85, 1814 // Progress 1815 watchSlidesProgress: false, 1816 // Cursor 1817 grabCursor: false, 1818 // Clicks 1819 preventClicks: true, 1820 preventClicksPropagation: true, 1821 slideToClickedSlide: false, 1822 // loop 1823 loop: false, 1824 loopedSlides: null, 1825 loopPreventsSliding: true, 1826 // rewind 1827 rewind: false, 1828 // Swiping/no swiping 1829 allowSlidePrev: true, 1830 allowSlideNext: true, 1831 swipeHandler: null, 1832 // '.swipe-handler', 1833 noSwiping: true, 1834 noSwipingClass: 'swiper-no-swiping', 1835 noSwipingSelector: null, 1836 // Passive Listeners 1837 passiveListeners: true, 1838 maxBackfaceHiddenSlides: 10, 1839 // NS 1840 containerModifierClass: 'swiper-', 1841 // NEW 1842 slideClass: 'swiper-slide', 1843 slideActiveClass: 'swiper-slide-active', 1844 slideVisibleClass: 'swiper-slide-visible', 1845 slideNextClass: 'swiper-slide-next', 1846 slidePrevClass: 'swiper-slide-prev', 1847 wrapperClass: 'swiper-wrapper', 1848 lazyPreloaderClass: 'swiper-lazy-preloader', 1849 lazyPreloadPrevNext: 0, 1850 // Callbacks 1851 runCallbacksOnInit: true, 1852 // Internals 1853 _emitClasses: false 1854}); 1855 1856/***/ }), 1857
vendor: 3,724 bytes, lines 1858-1965
1858/***/ "../../node_modules/swiper/core/events-emitter.js": 1859/*!********************************************************!*\ 1860 !*** ../../node_modules/swiper/core/events-emitter.js ***! 1861 \********************************************************/ 1862/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1863 1864__webpack_require__.r(__webpack_exports__); 1865/* eslint-disable no-underscore-dangle */ 1866 1867/* harmony default export */ __webpack_exports__["default"] = ({ 1868 on(events, handler, priority) { 1869 const self = this; 1870 if (!self.eventsListeners || self.destroyed) return self; 1871 if (typeof handler !== 'function') return self; 1872 const method = priority ? 'unshift' : 'push'; 1873 events.split(' ').forEach(event => { 1874 if (!self.eventsListeners[event]) self.eventsListeners[event] = []; 1875 self.eventsListeners[event][method](handler); 1876 }); 1877 return self; 1878 }, 1879 once(events, handler, priority) { 1880 const self = this; 1881 if (!self.eventsListeners || self.destroyed) return self; 1882 if (typeof handler !== 'function') return self; 1883 function onceHandler(...args) { 1884 self.off(events, onceHandler); 1885 if (onceHandler.__emitterProxy) { 1886 delete onceHandler.__emitterProxy; 1887 } 1888 handler.apply(self, args); 1889 } 1890 onceHandler.__emitterProxy = handler; 1891 return self.on(events, onceHandler, priority); 1892 }, 1893 onAny(handler, priority) { 1894 const self = this; 1895 if (!self.eventsListeners || self.destroyed) return self; 1896 if (typeof handler !== 'function') return self; 1897 const method = priority ? 'unshift' : 'push'; 1898 if (self.eventsAnyListeners.indexOf(handler) < 0) { 1899 self.eventsAnyListeners[method](handler); 1900 } 1901 return self; 1902 }, 1903 offAny(handler) { 1904 const self = this; 1905 if (!self.eventsListeners || self.destroyed) return self; 1906 if (!self.eventsAnyListeners) return self; 1907 const index = self.eventsAnyListeners.indexOf(handler); 1908 if (index >= 0) { 1909 self.eventsAnyListeners.splice(index, 1); 1910 } 1911 return self; 1912 }, 1913 off(events, handler) { 1914 const self = this; 1915 if (!self.eventsListeners || self.destroyed) return self; 1916 if (!self.eventsListeners) return self; 1917 events.split(' ').forEach(event => { 1918 if (typeof handler === 'undefined') { 1919 self.eventsListeners[event] = []; 1920 } else if (self.eventsListeners[event]) { 1921 self.eventsListeners[event].forEach((eventHandler, index) => { 1922 if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) { 1923 self.eventsListeners[event].splice(index, 1); 1924 } 1925 }); 1926 } 1927 }); 1928 return self; 1929 }, 1930 emit(...args) { 1931 const self = this; 1932 if (!self.eventsListeners || self.destroyed) return self; 1933 if (!self.eventsListeners) return self; 1934 let events; 1935 let data; 1936 let context; 1937 if (typeof args[0] === 'string' || Array.isArray(args[0])) { 1938 events = args[0]; 1939 data = args.slice(1, args.length); 1940 context = self; 1941 } else { 1942 events = args[0].events; 1943 data = args[0].data; 1944 context = args[0].context || self; 1945 } 1946 data.unshift(context); 1947 const eventsArray = Array.isArray(events) ? events : events.split(' '); 1948 eventsArray.forEach(event => { 1949 if (self.eventsAnyListeners && self.eventsAnyListeners.length) { 1950 self.eventsAnyListeners.forEach(eventHandler => { 1951 eventHandler.apply(context, [event, ...data]); 1952 }); 1953 } 1954 if (self.eventsListeners && self.eventsListeners[event]) { 1955 self.eventsListeners[event].forEach(eventHandler => { 1956 eventHandler.apply(context, data); 1957 }); 1958 } 1959 }); 1960 return self; 1961 } 1962}); 1963 1964/***/ }), 1965
vendor: 4,376 bytes, lines 1966-2074
1966/***/ "../../node_modules/swiper/core/events/index.js": 1967/*!******************************************************!*\ 1968 !*** ../../node_modules/swiper/core/events/index.js ***! 1969 \******************************************************/ 1970/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 1971 1972__webpack_require__.r(__webpack_exports__); 1973/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 1974/* harmony import */ var _onTouchStart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./onTouchStart.js */ "../../node_modules/swiper/core/events/onTouchStart.js"); 1975/* harmony import */ var _onTouchMove_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./onTouchMove.js */ "../../node_modules/swiper/core/events/onTouchMove.js"); 1976/* harmony import */ var _onTouchEnd_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./onTouchEnd.js */ "../../node_modules/swiper/core/events/onTouchEnd.js"); 1977/* harmony import */ var _onResize_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./onResize.js */ "../../node_modules/swiper/core/events/onResize.js"); 1978/* harmony import */ var _onClick_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./onClick.js */ "../../node_modules/swiper/core/events/onClick.js"); 1979/* harmony import */ var _onScroll_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./onScroll.js */ "../../node_modules/swiper/core/events/onScroll.js"); 1980/* harmony import */ var _onLoad_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./onLoad.js */ "../../node_modules/swiper/core/events/onLoad.js"); 1981 1982 1983 1984 1985 1986 1987 1988 1989let dummyEventAttached = false; 1990function dummyEventListener() {} 1991const events = (swiper, method) => { 1992 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 1993 const { 1994 params, 1995 el, 1996 wrapperEl, 1997 device 1998 } = swiper; 1999 const capture = !!params.nested; 2000 const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; 2001 const swiperMethod = method; 2002 2003 // Touch Events 2004 el[domMethod]('pointerdown', swiper.onTouchStart, { 2005 passive: false 2006 }); 2007 document[domMethod]('pointermove', swiper.onTouchMove, { 2008 passive: false, 2009 capture 2010 }); 2011 document[domMethod]('pointerup', swiper.onTouchEnd, { 2012 passive: true 2013 }); 2014 document[domMethod]('pointercancel', swiper.onTouchEnd, { 2015 passive: true 2016 }); 2017 document[domMethod]('pointerout', swiper.onTouchEnd, { 2018 passive: true 2019 }); 2020 document[domMethod]('pointerleave', swiper.onTouchEnd, { 2021 passive: true 2022 }); 2023 2024 // Prevent Links Clicks 2025 if (params.preventClicks || params.preventClicksPropagation) { 2026 el[domMethod]('click', swiper.onClick, true); 2027 } 2028 if (params.cssMode) { 2029 wrapperEl[domMethod]('scroll', swiper.onScroll); 2030 } 2031 2032 // Resize handler 2033 if (params.updateOnWindowResize) { 2034 swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', _onResize_js__WEBPACK_IMPORTED_MODULE_4__["default"], true); 2035 } else { 2036 swiper[swiperMethod]('observerUpdate', _onResize_js__WEBPACK_IMPORTED_MODULE_4__["default"], true); 2037 } 2038 2039 // Images loader 2040 el[domMethod]('load', swiper.onLoad, { 2041 capture: true 2042 }); 2043}; 2044function attachEvents() { 2045 const swiper = this; 2046 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 2047 const { 2048 params 2049 } = swiper; 2050 swiper.onTouchStart = _onTouchStart_js__WEBPACK_IMPORTED_MODULE_1__["default"].bind(swiper); 2051 swiper.onTouchMove = _onTouchMove_js__WEBPACK_IMPORTED_MODULE_2__["default"].bind(swiper); 2052 swiper.onTouchEnd = _onTouchEnd_js__WEBPACK_IMPORTED_MODULE_3__["default"].bind(swiper); 2053 if (params.cssMode) { 2054 swiper.onScroll = _onScroll_js__WEBPACK_IMPORTED_MODULE_6__["default"].bind(swiper); 2055 } 2056 swiper.onClick = _onClick_js__WEBPACK_IMPORTED_MODULE_5__["default"].bind(swiper); 2057 swiper.onLoad = _onLoad_js__WEBPACK_IMPORTED_MODULE_7__["default"].bind(swiper); 2058 if (!dummyEventAttached) { 2059 document.addEventListener('touchstart', dummyEventListener); 2060 dummyEventAttached = true; 2061 } 2062 events(swiper, 'on'); 2063} 2064function detachEvents() { 2065 const swiper = this; 2066 events(swiper, 'off'); 2067} 2068/* harmony default export */ __webpack_exports__["default"] = ({ 2069 attachEvents, 2070 detachEvents 2071}); 2072 2073/***/ }), 2074
vendor: 873 bytes, lines 2075-2098
2075/***/ "../../node_modules/swiper/core/events/onClick.js": 2076/*!********************************************************!*\ 2077 !*** ../../node_modules/swiper/core/events/onClick.js ***! 2078 \********************************************************/ 2079/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2080 2081__webpack_require__.r(__webpack_exports__); 2082/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2083/* harmony export */ "default": function() { return /* binding */ onClick; } 2084/* harmony export */ }); 2085function onClick(e) { 2086 const swiper = this; 2087 if (!swiper.enabled) return; 2088 if (!swiper.allowClick) { 2089 if (swiper.params.preventClicks) e.preventDefault(); 2090 if (swiper.params.preventClicksPropagation && swiper.animating) { 2091 e.stopPropagation(); 2092 e.stopImmediatePropagation(); 2093 } 2094 } 2095} 2096 2097/***/ }), 2098
vendor: 1,074 bytes, lines 2099-2121
2099/***/ "../../node_modules/swiper/core/events/onLoad.js": 2100/*!*******************************************************!*\ 2101 !*** ../../node_modules/swiper/core/events/onLoad.js ***! 2102 \*******************************************************/ 2103/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2104 2105__webpack_require__.r(__webpack_exports__); 2106/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2107/* harmony export */ "default": function() { return /* binding */ onLoad; } 2108/* harmony export */ }); 2109/* 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"); 2110 2111function onLoad(e) { 2112 const swiper = this; 2113 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_0__.processLazyPreloader)(swiper, e.target); 2114 if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) { 2115 return; 2116 } 2117 swiper.update(); 2118} 2119 2120/***/ }), 2121
vendor: 2,127 bytes, lines 2122-2186
2122/***/ "../../node_modules/swiper/core/events/onResize.js": 2123/*!*********************************************************!*\ 2124 !*** ../../node_modules/swiper/core/events/onResize.js ***! 2125 \*********************************************************/ 2126/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2127 2128__webpack_require__.r(__webpack_exports__); 2129/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2130/* harmony export */ "default": function() { return /* binding */ onResize; } 2131/* harmony export */ }); 2132function onResize() { 2133 const swiper = this; 2134 const { 2135 params, 2136 el 2137 } = swiper; 2138 if (el && el.offsetWidth === 0) return; 2139 2140 // Breakpoints 2141 if (params.breakpoints) { 2142 swiper.setBreakpoint(); 2143 } 2144 2145 // Save locks 2146 const { 2147 allowSlideNext, 2148 allowSlidePrev, 2149 snapGrid 2150 } = swiper; 2151 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 2152 2153 // Disable locks on resize 2154 swiper.allowSlideNext = true; 2155 swiper.allowSlidePrev = true; 2156 swiper.updateSize(); 2157 swiper.updateSlides(); 2158 swiper.updateSlidesClasses(); 2159 const isVirtualLoop = isVirtual && params.loop; 2160 if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) { 2161 swiper.slideTo(swiper.slides.length - 1, 0, false, true); 2162 } else { 2163 if (swiper.params.loop && !isVirtual) { 2164 swiper.slideToLoop(swiper.realIndex, 0, false, true); 2165 } else { 2166 swiper.slideTo(swiper.activeIndex, 0, false, true); 2167 } 2168 } 2169 if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { 2170 clearTimeout(swiper.autoplay.resizeTimeout); 2171 swiper.autoplay.resizeTimeout = setTimeout(() => { 2172 if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { 2173 swiper.autoplay.resume(); 2174 } 2175 }, 500); 2176 } 2177 // Return locks after resize 2178 swiper.allowSlidePrev = allowSlidePrev; 2179 swiper.allowSlideNext = allowSlideNext; 2180 if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { 2181 swiper.checkOverflow(); 2182 } 2183} 2184 2185/***/ }), 2186
vendor: 1,457 bytes, lines 2187-2229
2187/***/ "../../node_modules/swiper/core/events/onScroll.js": 2188/*!*********************************************************!*\ 2189 !*** ../../node_modules/swiper/core/events/onScroll.js ***! 2190 \*********************************************************/ 2191/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2192 2193__webpack_require__.r(__webpack_exports__); 2194/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2195/* harmony export */ "default": function() { return /* binding */ onScroll; } 2196/* harmony export */ }); 2197function onScroll() { 2198 const swiper = this; 2199 const { 2200 wrapperEl, 2201 rtlTranslate, 2202 enabled 2203 } = swiper; 2204 if (!enabled) return; 2205 swiper.previousTranslate = swiper.translate; 2206 if (swiper.isHorizontal()) { 2207 swiper.translate = -wrapperEl.scrollLeft; 2208 } else { 2209 swiper.translate = -wrapperEl.scrollTop; 2210 } 2211 // eslint-disable-next-line 2212 if (swiper.translate === 0) swiper.translate = 0; 2213 swiper.updateActiveIndex(); 2214 swiper.updateSlidesClasses(); 2215 let newProgress; 2216 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 2217 if (translatesDiff === 0) { 2218 newProgress = 0; 2219 } else { 2220 newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff; 2221 } 2222 if (newProgress !== swiper.progress) { 2223 swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); 2224 } 2225 swiper.emit('setTranslate', swiper.translate, false); 2226} 2227 2228/***/ }), 2229
vendor: 5,977 bytes, lines 2230-2393
2230/***/ "../../node_modules/swiper/core/events/onTouchEnd.js": 2231/*!***********************************************************!*\ 2232 !*** ../../node_modules/swiper/core/events/onTouchEnd.js ***! 2233 \***********************************************************/ 2234/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2235 2236__webpack_require__.r(__webpack_exports__); 2237/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2238/* harmony export */ "default": function() { return /* binding */ onTouchEnd; } 2239/* harmony export */ }); 2240/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 2241 2242function onTouchEnd(event) { 2243 const swiper = this; 2244 const data = swiper.touchEventsData; 2245 const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId); 2246 if (pointerIndex >= 0) { 2247 data.evCache.splice(pointerIndex, 1); 2248 } 2249 if (['pointercancel', 'pointerout', 'pointerleave'].includes(event.type)) { 2250 const proceed = event.type === 'pointercancel' && (swiper.browser.isSafari || swiper.browser.isWebView); 2251 if (!proceed) { 2252 return; 2253 } 2254 } 2255 const { 2256 params, 2257 touches, 2258 rtlTranslate: rtl, 2259 slidesGrid, 2260 enabled 2261 } = swiper; 2262 if (!enabled) return; 2263 if (!params.simulateTouch && event.pointerType === 'mouse') return; 2264 let e = event; 2265 if (e.originalEvent) e = e.originalEvent; 2266 if (data.allowTouchCallbacks) { 2267 swiper.emit('touchEnd', e); 2268 } 2269 data.allowTouchCallbacks = false; 2270 if (!data.isTouched) { 2271 if (data.isMoved && params.grabCursor) { 2272 swiper.setGrabCursor(false); 2273 } 2274 data.isMoved = false; 2275 data.startMoving = false; 2276 return; 2277 } 2278 // Return Grab Cursor 2279 if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 2280 swiper.setGrabCursor(false); 2281 } 2282 2283 // Time diff 2284 const touchEndTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)(); 2285 const timeDiff = touchEndTime - data.touchStartTime; 2286 2287 // Tap, doubleTap, Click 2288 if (swiper.allowClick) { 2289 const pathTree = e.path || e.composedPath && e.composedPath(); 2290 swiper.updateClickedSlide(pathTree && pathTree[0] || e.target); 2291 swiper.emit('tap click', e); 2292 if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) { 2293 swiper.emit('doubleTap doubleClick', e); 2294 } 2295 } 2296 data.lastClickTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)(); 2297 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => { 2298 if (!swiper.destroyed) swiper.allowClick = true; 2299 }); 2300 if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) { 2301 data.isTouched = false; 2302 data.isMoved = false; 2303 data.startMoving = false; 2304 return; 2305 } 2306 data.isTouched = false; 2307 data.isMoved = false; 2308 data.startMoving = false; 2309 let currentPos; 2310 if (params.followFinger) { 2311 currentPos = rtl ? swiper.translate : -swiper.translate; 2312 } else { 2313 currentPos = -data.currentTranslate; 2314 } 2315 if (params.cssMode) { 2316 return; 2317 } 2318 if (params.freeMode && params.freeMode.enabled) { 2319 swiper.freeMode.onTouchEnd({ 2320 currentPos 2321 }); 2322 return; 2323 } 2324 2325 // Find current slide 2326 let stopIndex = 0; 2327 let groupSize = swiper.slidesSizesGrid[0]; 2328 for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) { 2329 const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 2330 if (typeof slidesGrid[i + increment] !== 'undefined') { 2331 if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) { 2332 stopIndex = i; 2333 groupSize = slidesGrid[i + increment] - slidesGrid[i]; 2334 } 2335 } else if (currentPos >= slidesGrid[i]) { 2336 stopIndex = i; 2337 groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; 2338 } 2339 } 2340 let rewindFirstIndex = null; 2341 let rewindLastIndex = null; 2342 if (params.rewind) { 2343 if (swiper.isBeginning) { 2344 rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; 2345 } else if (swiper.isEnd) { 2346 rewindFirstIndex = 0; 2347 } 2348 } 2349 // Find current slide size 2350 const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; 2351 const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 2352 if (timeDiff > params.longSwipesMs) { 2353 // Long touches 2354 if (!params.longSwipes) { 2355 swiper.slideTo(swiper.activeIndex); 2356 return; 2357 } 2358 if (swiper.swipeDirection === 'next') { 2359 if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex); 2360 } 2361 if (swiper.swipeDirection === 'prev') { 2362 if (ratio > 1 - params.longSwipesRatio) { 2363 swiper.slideTo(stopIndex + increment); 2364 } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) { 2365 swiper.slideTo(rewindLastIndex); 2366 } else { 2367 swiper.slideTo(stopIndex); 2368 } 2369 } 2370 } else { 2371 // Short swipes 2372 if (!params.shortSwipes) { 2373 swiper.slideTo(swiper.activeIndex); 2374 return; 2375 } 2376 const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl); 2377 if (!isNavButtonTarget) { 2378 if (swiper.swipeDirection === 'next') { 2379 swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment); 2380 } 2381 if (swiper.swipeDirection === 'prev') { 2382 swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex); 2383 } 2384 } else if (e.target === swiper.navigation.nextEl) { 2385 swiper.slideTo(stopIndex + increment); 2386 } else { 2387 swiper.slideTo(stopIndex); 2388 } 2389 } 2390} 2391 2392/***/ }), 2393
vendor: 9,351 bytes, lines 2394-2649
2394/***/ "../../node_modules/swiper/core/events/onTouchMove.js": 2395/*!************************************************************!*\ 2396 !*** ../../node_modules/swiper/core/events/onTouchMove.js ***! 2397 \************************************************************/ 2398/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2399 2400__webpack_require__.r(__webpack_exports__); 2401/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2402/* harmony export */ "default": function() { return /* binding */ onTouchMove; } 2403/* harmony export */ }); 2404/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 2405/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 2406 2407 2408function onTouchMove(event) { 2409 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 2410 const swiper = this; 2411 const data = swiper.touchEventsData; 2412 const { 2413 params, 2414 touches, 2415 rtlTranslate: rtl, 2416 enabled 2417 } = swiper; 2418 if (!enabled) return; 2419 if (!params.simulateTouch && event.pointerType === 'mouse') return; 2420 let e = event; 2421 if (e.originalEvent) e = e.originalEvent; 2422 if (!data.isTouched) { 2423 if (data.startMoving && data.isScrolling) { 2424 swiper.emit('touchMoveOpposite', e); 2425 } 2426 return; 2427 } 2428 const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); 2429 if (pointerIndex >= 0) data.evCache[pointerIndex] = e; 2430 const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e; 2431 const pageX = targetTouch.pageX; 2432 const pageY = targetTouch.pageY; 2433 if (e.preventedByNestedSwiper) { 2434 touches.startX = pageX; 2435 touches.startY = pageY; 2436 return; 2437 } 2438 if (!swiper.allowTouchMove) { 2439 if (!e.target.matches(data.focusableElements)) { 2440 swiper.allowClick = false; 2441 } 2442 if (data.isTouched) { 2443 Object.assign(touches, { 2444 startX: pageX, 2445 startY: pageY, 2446 prevX: swiper.touches.currentX, 2447 prevY: swiper.touches.currentY, 2448 currentX: pageX, 2449 currentY: pageY 2450 }); 2451 data.touchStartTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)(); 2452 } 2453 return; 2454 } 2455 if (params.touchReleaseOnEdges && !params.loop) { 2456 if (swiper.isVertical()) { 2457 // Vertical 2458 if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) { 2459 data.isTouched = false; 2460 data.isMoved = false; 2461 return; 2462 } 2463 } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) { 2464 return; 2465 } 2466 } 2467 if (document.activeElement) { 2468 if (e.target === document.activeElement && e.target.matches(data.focusableElements)) { 2469 data.isMoved = true; 2470 swiper.allowClick = false; 2471 return; 2472 } 2473 } 2474 if (data.allowTouchCallbacks) { 2475 swiper.emit('touchMove', e); 2476 } 2477 if (e.targetTouches && e.targetTouches.length > 1) return; 2478 touches.currentX = pageX; 2479 touches.currentY = pageY; 2480 const diffX = touches.currentX - touches.startX; 2481 const diffY = touches.currentY - touches.startY; 2482 if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return; 2483 if (typeof data.isScrolling === 'undefined') { 2484 let touchAngle; 2485 if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) { 2486 data.isScrolling = false; 2487 } else { 2488 // eslint-disable-next-line 2489 if (diffX * diffX + diffY * diffY >= 25) { 2490 touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI; 2491 data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle; 2492 } 2493 } 2494 } 2495 if (data.isScrolling) { 2496 swiper.emit('touchMoveOpposite', e); 2497 } 2498 if (typeof data.startMoving === 'undefined') { 2499 if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { 2500 data.startMoving = true; 2501 } 2502 } 2503 if (data.isScrolling || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) { 2504 data.isTouched = false; 2505 return; 2506 } 2507 if (!data.startMoving) { 2508 return; 2509 } 2510 swiper.allowClick = false; 2511 if (!params.cssMode && e.cancelable) { 2512 e.preventDefault(); 2513 } 2514 if (params.touchMoveStopPropagation && !params.nested) { 2515 e.stopPropagation(); 2516 } 2517 let diff = swiper.isHorizontal() ? diffX : diffY; 2518 let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY; 2519 if (params.oneWayMovement) { 2520 diff = Math.abs(diff) * (rtl ? 1 : -1); 2521 touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1); 2522 } 2523 touches.diff = diff; 2524 diff *= params.touchRatio; 2525 if (rtl) { 2526 diff = -diff; 2527 touchesDiff = -touchesDiff; 2528 } 2529 const prevTouchesDirection = swiper.touchesDirection; 2530 swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; 2531 swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next'; 2532 const isLoop = swiper.params.loop && !params.cssMode; 2533 if (!data.isMoved) { 2534 if (isLoop) { 2535 swiper.loopFix({ 2536 direction: swiper.swipeDirection 2537 }); 2538 } 2539 data.startTranslate = swiper.getTranslate(); 2540 swiper.setTransition(0); 2541 if (swiper.animating) { 2542 const evt = new window.CustomEvent('transitionend', { 2543 bubbles: true, 2544 cancelable: true 2545 }); 2546 swiper.wrapperEl.dispatchEvent(evt); 2547 } 2548 data.allowMomentumBounce = false; 2549 // Grab Cursor 2550 if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 2551 swiper.setGrabCursor(true); 2552 } 2553 swiper.emit('sliderFirstMove', e); 2554 } 2555 let loopFixed; 2556 if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && Math.abs(diff) >= 1) { 2557 // need another loop fix 2558 swiper.loopFix({ 2559 direction: swiper.swipeDirection, 2560 setTranslate: true 2561 }); 2562 loopFixed = true; 2563 } 2564 swiper.emit('sliderMove', e); 2565 data.isMoved = true; 2566 data.currentTranslate = diff + data.startTranslate; 2567 let disableParentSwiper = true; 2568 let resistanceRatio = params.resistanceRatio; 2569 if (params.touchReleaseOnEdges) { 2570 resistanceRatio = 0; 2571 } 2572 if (diff > 0) { 2573 if (isLoop && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : swiper.minTranslate())) { 2574 swiper.loopFix({ 2575 direction: 'prev', 2576 setTranslate: true, 2577 activeSlideIndex: 0 2578 }); 2579 } 2580 if (data.currentTranslate > swiper.minTranslate()) { 2581 disableParentSwiper = false; 2582 if (params.resistance) { 2583 data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio; 2584 } 2585 } 2586 } else if (diff < 0) { 2587 if (isLoop && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : swiper.maxTranslate())) { 2588 swiper.loopFix({ 2589 direction: 'next', 2590 setTranslate: true, 2591 activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10))) 2592 }); 2593 } 2594 if (data.currentTranslate < swiper.maxTranslate()) { 2595 disableParentSwiper = false; 2596 if (params.resistance) { 2597 data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio; 2598 } 2599 } 2600 } 2601 if (disableParentSwiper) { 2602 e.preventedByNestedSwiper = true; 2603 } 2604 2605 // Directions locks 2606 if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { 2607 data.currentTranslate = data.startTranslate; 2608 } 2609 if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { 2610 data.currentTranslate = data.startTranslate; 2611 } 2612 if (!swiper.allowSlidePrev && !swiper.allowSlideNext) { 2613 data.currentTranslate = data.startTranslate; 2614 } 2615 2616 // Threshold 2617 if (params.threshold > 0) { 2618 if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { 2619 if (!data.allowThresholdMove) { 2620 data.allowThresholdMove = true; 2621 touches.startX = touches.currentX; 2622 touches.startY = touches.currentY; 2623 data.currentTranslate = data.startTranslate; 2624 touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; 2625 return; 2626 } 2627 } else { 2628 data.currentTranslate = data.startTranslate; 2629 return; 2630 } 2631 } 2632 if (!params.followFinger || params.cssMode) return; 2633 2634 // Update active index in free mode 2635 if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) { 2636 swiper.updateActiveIndex(); 2637 swiper.updateSlidesClasses(); 2638 } 2639 if (params.freeMode && params.freeMode.enabled && swiper.freeMode) { 2640 swiper.freeMode.onTouchMove(); 2641 } 2642 // Update progress 2643 swiper.updateProgress(data.currentTranslate); 2644 // Update translate 2645 swiper.setTranslate(data.currentTranslate); 2646} 2647 2648/***/ }), 2649
vendor: 5,219 bytes, lines 2650-2776
2650/***/ "../../node_modules/swiper/core/events/onTouchStart.js": 2651/*!*************************************************************!*\ 2652 !*** ../../node_modules/swiper/core/events/onTouchStart.js ***! 2653 \*************************************************************/ 2654/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2655 2656__webpack_require__.r(__webpack_exports__); 2657/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2658/* harmony export */ "default": function() { return /* binding */ onTouchStart; } 2659/* harmony export */ }); 2660/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 2661/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 2662 2663 2664 2665// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd 2666function closestElement(selector, base = this) { 2667 function __closestFrom(el) { 2668 if (!el || el === (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)() || el === (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)()) return null; 2669 if (el.assignedSlot) el = el.assignedSlot; 2670 const found = el.closest(selector); 2671 if (!found && !el.getRootNode) { 2672 return null; 2673 } 2674 return found || __closestFrom(el.getRootNode().host); 2675 } 2676 return __closestFrom(base); 2677} 2678function onTouchStart(event) { 2679 const swiper = this; 2680 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 2681 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 2682 const data = swiper.touchEventsData; 2683 data.evCache.push(event); 2684 const { 2685 params, 2686 touches, 2687 enabled 2688 } = swiper; 2689 if (!enabled) return; 2690 if (!params.simulateTouch && event.pointerType === 'mouse') return; 2691 if (swiper.animating && params.preventInteractionOnTransition) { 2692 return; 2693 } 2694 if (!swiper.animating && params.cssMode && params.loop) { 2695 swiper.loopFix(); 2696 } 2697 let e = event; 2698 if (e.originalEvent) e = e.originalEvent; 2699 let targetEl = e.target; 2700 if (params.touchEventsTarget === 'wrapper') { 2701 if (!swiper.wrapperEl.contains(targetEl)) return; 2702 } 2703 if ('which' in e && e.which === 3) return; 2704 if ('button' in e && e.button > 0) return; 2705 if (data.isTouched && data.isMoved) return; 2706 2707 // change target el for shadow root component 2708 const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; 2709 // eslint-disable-next-line 2710 const eventPath = event.composedPath ? event.composedPath() : event.path; 2711 if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) { 2712 targetEl = eventPath[0]; 2713 } 2714 const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`; 2715 const isTargetShadow = !!(e.target && e.target.shadowRoot); 2716 2717 // use closestElement for shadow root element to get the actual closest for nested shadow root element 2718 if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) { 2719 swiper.allowClick = true; 2720 return; 2721 } 2722 if (params.swipeHandler) { 2723 if (!targetEl.closest(params.swipeHandler)) return; 2724 } 2725 touches.currentX = e.pageX; 2726 touches.currentY = e.pageY; 2727 const startX = touches.currentX; 2728 const startY = touches.currentY; 2729 2730 // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore 2731 2732 const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection; 2733 const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold; 2734 if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) { 2735 if (edgeSwipeDetection === 'prevent') { 2736 event.preventDefault(); 2737 } else { 2738 return; 2739 } 2740 } 2741 Object.assign(data, { 2742 isTouched: true, 2743 isMoved: false, 2744 allowTouchCallbacks: true, 2745 isScrolling: undefined, 2746 startMoving: undefined 2747 }); 2748 touches.startX = startX; 2749 touches.startY = startY; 2750 data.touchStartTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)(); 2751 swiper.allowClick = true; 2752 swiper.updateSize(); 2753 swiper.swipeDirection = undefined; 2754 if (params.threshold > 0) data.allowThresholdMove = false; 2755 let preventDefault = true; 2756 if (targetEl.matches(data.focusableElements)) { 2757 preventDefault = false; 2758 if (targetEl.nodeName === 'SELECT') { 2759 data.isTouched = false; 2760 } 2761 } 2762 if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) { 2763 document.activeElement.blur(); 2764 } 2765 const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; 2766 if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) { 2767 e.preventDefault(); 2768 } 2769 if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) { 2770 swiper.freeMode.onTouchStart(); 2771 } 2772 swiper.emit('touchStart', e); 2773} 2774 2775/***/ }), 2776
vendor: 1,009 bytes, lines 2777-2794
2777/***/ "../../node_modules/swiper/core/grab-cursor/index.js": 2778/*!***********************************************************!*\ 2779 !*** ../../node_modules/swiper/core/grab-cursor/index.js ***! 2780 \***********************************************************/ 2781/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2782 2783__webpack_require__.r(__webpack_exports__); 2784/* harmony import */ var _setGrabCursor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setGrabCursor.js */ "../../node_modules/swiper/core/grab-cursor/setGrabCursor.js"); 2785/* harmony import */ var _unsetGrabCursor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./unsetGrabCursor.js */ "../../node_modules/swiper/core/grab-cursor/unsetGrabCursor.js"); 2786 2787 2788/* harmony default export */ __webpack_exports__["default"] = ({ 2789 setGrabCursor: _setGrabCursor_js__WEBPACK_IMPORTED_MODULE_0__["default"], 2790 unsetGrabCursor: _unsetGrabCursor_js__WEBPACK_IMPORTED_MODULE_1__["default"] 2791}); 2792 2793/***/ }), 2794
vendor: 1,148 bytes, lines 2795-2822
2795/***/ "../../node_modules/swiper/core/grab-cursor/setGrabCursor.js": 2796/*!*******************************************************************!*\ 2797 !*** ../../node_modules/swiper/core/grab-cursor/setGrabCursor.js ***! 2798 \*******************************************************************/ 2799/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2800 2801__webpack_require__.r(__webpack_exports__); 2802/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2803/* harmony export */ "default": function() { return /* binding */ setGrabCursor; } 2804/* harmony export */ }); 2805function setGrabCursor(moving) { 2806 const swiper = this; 2807 if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return; 2808 const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl; 2809 if (swiper.isElement) { 2810 swiper.__preventObserver__ = true; 2811 } 2812 el.style.cursor = 'move'; 2813 el.style.cursor = moving ? 'grabbing' : 'grab'; 2814 if (swiper.isElement) { 2815 requestAnimationFrame(() => { 2816 swiper.__preventObserver__ = false; 2817 }); 2818 } 2819} 2820 2821/***/ }), 2822
vendor: 1,059 bytes, lines 2823-2850
2823/***/ "../../node_modules/swiper/core/grab-cursor/unsetGrabCursor.js": 2824/*!*********************************************************************!*\ 2825 !*** ../../node_modules/swiper/core/grab-cursor/unsetGrabCursor.js ***! 2826 \*********************************************************************/ 2827/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2828 2829__webpack_require__.r(__webpack_exports__); 2830/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2831/* harmony export */ "default": function() { return /* binding */ unsetGrabCursor; } 2832/* harmony export */ }); 2833function unsetGrabCursor() { 2834 const swiper = this; 2835 if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) { 2836 return; 2837 } 2838 if (swiper.isElement) { 2839 swiper.__preventObserver__ = true; 2840 } 2841 swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = ''; 2842 if (swiper.isElement) { 2843 requestAnimationFrame(() => { 2844 swiper.__preventObserver__ = false; 2845 }); 2846 } 2847} 2848 2849/***/ }), 2850
vendor: 1,156 bytes, lines 2851-2871
2851/***/ "../../node_modules/swiper/core/loop/index.js": 2852/*!****************************************************!*\ 2853 !*** ../../node_modules/swiper/core/loop/index.js ***! 2854 \****************************************************/ 2855/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2856 2857__webpack_require__.r(__webpack_exports__); 2858/* harmony import */ var _loopCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loopCreate.js */ "../../node_modules/swiper/core/loop/loopCreate.js"); 2859/* harmony import */ var _loopFix_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loopFix.js */ "../../node_modules/swiper/core/loop/loopFix.js"); 2860/* harmony import */ var _loopDestroy_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loopDestroy.js */ "../../node_modules/swiper/core/loop/loopDestroy.js"); 2861 2862 2863 2864/* harmony default export */ __webpack_exports__["default"] = ({ 2865 loopCreate: _loopCreate_js__WEBPACK_IMPORTED_MODULE_0__["default"], 2866 loopFix: _loopFix_js__WEBPACK_IMPORTED_MODULE_1__["default"], 2867 loopDestroy: _loopDestroy_js__WEBPACK_IMPORTED_MODULE_2__["default"] 2868}); 2869 2870/***/ }), 2871
vendor: 1,265 bytes, lines 2872-2902
2872/***/ "../../node_modules/swiper/core/loop/loopCreate.js": 2873/*!*********************************************************!*\ 2874 !*** ../../node_modules/swiper/core/loop/loopCreate.js ***! 2875 \*********************************************************/ 2876/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2877 2878__webpack_require__.r(__webpack_exports__); 2879/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2880/* harmony export */ "default": function() { return /* binding */ loopCreate; } 2881/* harmony export */ }); 2882/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 2883 2884function loopCreate(slideRealIndex) { 2885 const swiper = this; 2886 const { 2887 params, 2888 slidesEl 2889 } = swiper; 2890 if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; 2891 const slides = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementChildren)(slidesEl, `.${params.slideClass}, swiper-slide`); 2892 slides.forEach((el, index) => { 2893 el.setAttribute('data-swiper-slide-index', index); 2894 }); 2895 swiper.loopFix({ 2896 slideRealIndex, 2897 direction: params.centeredSlides ? undefined : 'next' 2898 }); 2899} 2900 2901/***/ }), 2902
vendor: 1,276 bytes, lines 2903-2937
2903/***/ "../../node_modules/swiper/core/loop/loopDestroy.js": 2904/*!**********************************************************!*\ 2905 !*** ../../node_modules/swiper/core/loop/loopDestroy.js ***! 2906 \**********************************************************/ 2907/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2908 2909__webpack_require__.r(__webpack_exports__); 2910/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2911/* harmony export */ "default": function() { return /* binding */ loopDestroy; } 2912/* harmony export */ }); 2913function loopDestroy() { 2914 const swiper = this; 2915 const { 2916 params, 2917 slidesEl 2918 } = swiper; 2919 if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; 2920 swiper.recalcSlides(); 2921 const newSlidesOrder = []; 2922 swiper.slides.forEach(slideEl => { 2923 const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex; 2924 newSlidesOrder[index] = slideEl; 2925 }); 2926 swiper.slides.forEach(slideEl => { 2927 slideEl.removeAttribute('data-swiper-slide-index'); 2928 }); 2929 newSlidesOrder.forEach(slideEl => { 2930 slidesEl.append(slideEl); 2931 }); 2932 swiper.recalcSlides(); 2933 swiper.slideTo(swiper.realIndex, 0); 2934} 2935 2936/***/ }), 2937
vendor: 6,050 bytes, lines 2938-3097
2938/***/ "../../node_modules/swiper/core/loop/loopFix.js": 2939/*!******************************************************!*\ 2940 !*** ../../node_modules/swiper/core/loop/loopFix.js ***! 2941 \******************************************************/ 2942/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 2943 2944__webpack_require__.r(__webpack_exports__); 2945/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2946/* harmony export */ "default": function() { return /* binding */ loopFix; } 2947/* harmony export */ }); 2948function loopFix({ 2949 slideRealIndex, 2950 slideTo = true, 2951 direction, 2952 setTranslate, 2953 activeSlideIndex, 2954 byController, 2955 byMousewheel 2956} = {}) { 2957 const swiper = this; 2958 if (!swiper.params.loop) return; 2959 swiper.emit('beforeLoopFix'); 2960 const { 2961 slides, 2962 allowSlidePrev, 2963 allowSlideNext, 2964 slidesEl, 2965 params 2966 } = swiper; 2967 swiper.allowSlidePrev = true; 2968 swiper.allowSlideNext = true; 2969 if (swiper.virtual && params.virtual.enabled) { 2970 if (slideTo) { 2971 if (!params.centeredSlides && swiper.snapIndex === 0) { 2972 swiper.slideTo(swiper.virtual.slides.length, 0, false, true); 2973 } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) { 2974 swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true); 2975 } else if (swiper.snapIndex === swiper.snapGrid.length - 1) { 2976 swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true); 2977 } 2978 } 2979 swiper.allowSlidePrev = allowSlidePrev; 2980 swiper.allowSlideNext = allowSlideNext; 2981 swiper.emit('loopFix'); 2982 return; 2983 } 2984 const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)); 2985 let loopedSlides = params.loopedSlides || slidesPerView; 2986 if (loopedSlides % params.slidesPerGroup !== 0) { 2987 loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup; 2988 } 2989 swiper.loopedSlides = loopedSlides; 2990 const prependSlidesIndexes = []; 2991 const appendSlidesIndexes = []; 2992 let activeIndex = swiper.activeIndex; 2993 if (typeof activeSlideIndex === 'undefined') { 2994 activeSlideIndex = swiper.getSlideIndex(swiper.slides.filter(el => el.classList.contains(params.slideActiveClass))[0]); 2995 } else { 2996 activeIndex = activeSlideIndex; 2997 } 2998 const isNext = direction === 'next' || !direction; 2999 const isPrev = direction === 'prev' || !direction; 3000 let slidesPrepended = 0; 3001 let slidesAppended = 0; 3002 // prepend last slides before start 3003 if (activeSlideIndex < loopedSlides) { 3004 slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup); 3005 for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) { 3006 const index = i - Math.floor(i / slides.length) * slides.length; 3007 prependSlidesIndexes.push(slides.length - index - 1); 3008 } 3009 } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) { 3010 slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup); 3011 for (let i = 0; i < slidesAppended; i += 1) { 3012 const index = i - Math.floor(i / slides.length) * slides.length; 3013 appendSlidesIndexes.push(index); 3014 } 3015 } 3016 if (isPrev) { 3017 prependSlidesIndexes.forEach(index => { 3018 swiper.slides[index].swiperLoopMoveDOM = true; 3019 slidesEl.prepend(swiper.slides[index]); 3020 swiper.slides[index].swiperLoopMoveDOM = false; 3021 }); 3022 } 3023 if (isNext) { 3024 appendSlidesIndexes.forEach(index => { 3025 swiper.slides[index].swiperLoopMoveDOM = true; 3026 slidesEl.append(swiper.slides[index]); 3027 swiper.slides[index].swiperLoopMoveDOM = false; 3028 }); 3029 } 3030 swiper.recalcSlides(); 3031 if (params.slidesPerView === 'auto') { 3032 swiper.updateSlides(); 3033 } 3034 if (params.watchSlidesProgress) { 3035 swiper.updateSlidesOffset(); 3036 } 3037 if (slideTo) { 3038 if (prependSlidesIndexes.length > 0 && isPrev) { 3039 if (typeof slideRealIndex === 'undefined') { 3040 const currentSlideTranslate = swiper.slidesGrid[activeIndex]; 3041 const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended]; 3042 const diff = newSlideTranslate - currentSlideTranslate; 3043 if (byMousewheel) { 3044 swiper.setTranslate(swiper.translate - diff); 3045 } else { 3046 swiper.slideTo(activeIndex + slidesPrepended, 0, false, true); 3047 if (setTranslate) { 3048 swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff; 3049 } 3050 } 3051 } else { 3052 if (setTranslate) { 3053 swiper.slideToLoop(slideRealIndex, 0, false, true); 3054 } 3055 } 3056 } else if (appendSlidesIndexes.length > 0 && isNext) { 3057 if (typeof slideRealIndex === 'undefined') { 3058 const currentSlideTranslate = swiper.slidesGrid[activeIndex]; 3059 const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended]; 3060 const diff = newSlideTranslate - currentSlideTranslate; 3061 if (byMousewheel) { 3062 swiper.setTranslate(swiper.translate - diff); 3063 } else { 3064 swiper.slideTo(activeIndex - slidesAppended, 0, false, true); 3065 if (setTranslate) { 3066 swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff; 3067 } 3068 } 3069 } else { 3070 swiper.slideToLoop(slideRealIndex, 0, false, true); 3071 } 3072 } 3073 } 3074 swiper.allowSlidePrev = allowSlidePrev; 3075 swiper.allowSlideNext = allowSlideNext; 3076 if (swiper.controller && swiper.controller.control && !byController) { 3077 const loopParams = { 3078 slideRealIndex, 3079 slideTo: false, 3080 direction, 3081 setTranslate, 3082 activeSlideIndex, 3083 byController: true 3084 }; 3085 if (Array.isArray(swiper.controller.control)) { 3086 swiper.controller.control.forEach(c => { 3087 if (!c.destroyed && c.params.loop) c.loopFix(loopParams); 3088 }); 3089 } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) { 3090 swiper.controller.control.loopFix(loopParams); 3091 } 3092 } 3093 swiper.emit('loopFix'); 3094} 3095 3096/***/ }), 3097
vendor: 1,941 bytes, lines 3098-3143
3098/***/ "../../node_modules/swiper/core/moduleExtendParams.js": 3099/*!************************************************************!*\ 3100 !*** ../../node_modules/swiper/core/moduleExtendParams.js ***! 3101 \************************************************************/ 3102/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3103 3104__webpack_require__.r(__webpack_exports__); 3105/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3106/* harmony export */ "default": function() { return /* binding */ moduleExtendParams; } 3107/* harmony export */ }); 3108/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 3109 3110function moduleExtendParams(params, allModulesParams) { 3111 return function extendParams(obj = {}) { 3112 const moduleParamName = Object.keys(obj)[0]; 3113 const moduleParams = obj[moduleParamName]; 3114 if (typeof moduleParams !== 'object' || moduleParams === null) { 3115 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj); 3116 return; 3117 } 3118 if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) { 3119 params[moduleParamName] = { 3120 auto: true 3121 }; 3122 } 3123 if (!(moduleParamName in params && 'enabled' in moduleParams)) { 3124 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj); 3125 return; 3126 } 3127 if (params[moduleParamName] === true) { 3128 params[moduleParamName] = { 3129 enabled: true 3130 }; 3131 } 3132 if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) { 3133 params[moduleParamName].enabled = true; 3134 } 3135 if (!params[moduleParamName]) params[moduleParamName] = { 3136 enabled: false 3137 }; 3138 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj); 3139 }; 3140} 3141 3142/***/ }), 3143
vendor: 3,061 bytes, lines 3144-3227
3144/***/ "../../node_modules/swiper/core/modules/observer/observer.js": 3145/*!*******************************************************************!*\ 3146 !*** ../../node_modules/swiper/core/modules/observer/observer.js ***! 3147 \*******************************************************************/ 3148/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3149 3150__webpack_require__.r(__webpack_exports__); 3151/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3152/* harmony export */ "default": function() { return /* binding */ Observer; } 3153/* harmony export */ }); 3154/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 3155/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 3156 3157 3158function Observer({ 3159 swiper, 3160 extendParams, 3161 on, 3162 emit 3163}) { 3164 const observers = []; 3165 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 3166 const attach = (target, options = {}) => { 3167 const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver; 3168 const observer = new ObserverFunc(mutations => { 3169 // The observerUpdate event should only be triggered 3170 // once despite the number of mutations. Additional 3171 // triggers are redundant and are very costly 3172 if (swiper.__preventObserver__) return; 3173 if (mutations.length === 1) { 3174 emit('observerUpdate', mutations[0]); 3175 return; 3176 } 3177 const observerUpdate = function observerUpdate() { 3178 emit('observerUpdate', mutations[0]); 3179 }; 3180 if (window.requestAnimationFrame) { 3181 window.requestAnimationFrame(observerUpdate); 3182 } else { 3183 window.setTimeout(observerUpdate, 0); 3184 } 3185 }); 3186 observer.observe(target, { 3187 attributes: typeof options.attributes === 'undefined' ? true : options.attributes, 3188 childList: typeof options.childList === 'undefined' ? true : options.childList, 3189 characterData: typeof options.characterData === 'undefined' ? true : options.characterData 3190 }); 3191 observers.push(observer); 3192 }; 3193 const init = () => { 3194 if (!swiper.params.observer) return; 3195 if (swiper.params.observeParents) { 3196 const containerParents = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementParents)(swiper.el); 3197 for (let i = 0; i < containerParents.length; i += 1) { 3198 attach(containerParents[i]); 3199 } 3200 } 3201 // Observe container 3202 attach(swiper.el, { 3203 childList: swiper.params.observeSlideChildren 3204 }); 3205 3206 // Observe wrapper 3207 attach(swiper.wrapperEl, { 3208 attributes: false 3209 }); 3210 }; 3211 const destroy = () => { 3212 observers.forEach(observer => { 3213 observer.disconnect(); 3214 }); 3215 observers.splice(0, observers.length); 3216 }; 3217 extendParams({ 3218 observer: false, 3219 observeParents: false, 3220 observeSlideChildren: false 3221 }); 3222 on('init', init); 3223 on('destroy', destroy); 3224} 3225 3226/***/ }), 3227
vendor: 2,820 bytes, lines 3228-3308
3228/***/ "../../node_modules/swiper/core/modules/resize/resize.js": 3229/*!***************************************************************!*\ 3230 !*** ../../node_modules/swiper/core/modules/resize/resize.js ***! 3231 \***************************************************************/ 3232/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3233 3234__webpack_require__.r(__webpack_exports__); 3235/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3236/* harmony export */ "default": function() { return /* binding */ Resize; } 3237/* harmony export */ }); 3238/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 3239 3240function Resize({ 3241 swiper, 3242 on, 3243 emit 3244}) { 3245 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 3246 let observer = null; 3247 let animationFrame = null; 3248 const resizeHandler = () => { 3249 if (!swiper || swiper.destroyed || !swiper.initialized) return; 3250 emit('beforeResize'); 3251 emit('resize'); 3252 }; 3253 const createObserver = () => { 3254 if (!swiper || swiper.destroyed || !swiper.initialized) return; 3255 observer = new ResizeObserver(entries => { 3256 animationFrame = window.requestAnimationFrame(() => { 3257 const { 3258 width, 3259 height 3260 } = swiper; 3261 let newWidth = width; 3262 let newHeight = height; 3263 entries.forEach(({ 3264 contentBoxSize, 3265 contentRect, 3266 target 3267 }) => { 3268 if (target && target !== swiper.el) return; 3269 newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize; 3270 newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize; 3271 }); 3272 if (newWidth !== width || newHeight !== height) { 3273 resizeHandler(); 3274 } 3275 }); 3276 }); 3277 observer.observe(swiper.el); 3278 }; 3279 const removeObserver = () => { 3280 if (animationFrame) { 3281 window.cancelAnimationFrame(animationFrame); 3282 } 3283 if (observer && observer.unobserve && swiper.el) { 3284 observer.unobserve(swiper.el); 3285 observer = null; 3286 } 3287 }; 3288 const orientationChangeHandler = () => { 3289 if (!swiper || swiper.destroyed || !swiper.initialized) return; 3290 emit('orientationchange'); 3291 }; 3292 on('init', () => { 3293 if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') { 3294 createObserver(); 3295 return; 3296 } 3297 window.addEventListener('resize', resizeHandler); 3298 window.addEventListener('orientationchange', orientationChangeHandler); 3299 }); 3300 on('destroy', () => { 3301 removeObserver(); 3302 window.removeEventListener('resize', resizeHandler); 3303 window.removeEventListener('orientationchange', orientationChangeHandler); 3304 }); 3305} 3306 3307/***/ }), 3308
vendor: 2,178 bytes, lines 3309-3341
3309/***/ "../../node_modules/swiper/core/slide/index.js": 3310/*!*****************************************************!*\ 3311 !*** ../../node_modules/swiper/core/slide/index.js ***! 3312 \*****************************************************/ 3313/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3314 3315__webpack_require__.r(__webpack_exports__); 3316/* harmony import */ var _slideTo_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./slideTo.js */ "../../node_modules/swiper/core/slide/slideTo.js"); 3317/* harmony import */ var _slideToLoop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slideToLoop.js */ "../../node_modules/swiper/core/slide/slideToLoop.js"); 3318/* harmony import */ var _slideNext_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slideNext.js */ "../../node_modules/swiper/core/slide/slideNext.js"); 3319/* harmony import */ var _slidePrev_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slidePrev.js */ "../../node_modules/swiper/core/slide/slidePrev.js"); 3320/* harmony import */ var _slideReset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./slideReset.js */ "../../node_modules/swiper/core/slide/slideReset.js"); 3321/* harmony import */ var _slideToClosest_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./slideToClosest.js */ "../../node_modules/swiper/core/slide/slideToClosest.js"); 3322/* harmony import */ var _slideToClickedSlide_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./slideToClickedSlide.js */ "../../node_modules/swiper/core/slide/slideToClickedSlide.js"); 3323 3324 3325 3326 3327 3328 3329 3330/* harmony default export */ __webpack_exports__["default"] = ({ 3331 slideTo: _slideTo_js__WEBPACK_IMPORTED_MODULE_0__["default"], 3332 slideToLoop: _slideToLoop_js__WEBPACK_IMPORTED_MODULE_1__["default"], 3333 slideNext: _slideNext_js__WEBPACK_IMPORTED_MODULE_2__["default"], 3334 slidePrev: _slidePrev_js__WEBPACK_IMPORTED_MODULE_3__["default"], 3335 slideReset: _slideReset_js__WEBPACK_IMPORTED_MODULE_4__["default"], 3336 slideToClosest: _slideToClosest_js__WEBPACK_IMPORTED_MODULE_5__["default"], 3337 slideToClickedSlide: _slideToClickedSlide_js__WEBPACK_IMPORTED_MODULE_6__["default"] 3338}); 3339 3340/***/ }), 3341
vendor: 1,603 bytes, lines 3342-3382
3342/***/ "../../node_modules/swiper/core/slide/slideNext.js": 3343/*!*********************************************************!*\ 3344 !*** ../../node_modules/swiper/core/slide/slideNext.js ***! 3345 \*********************************************************/ 3346/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3347 3348__webpack_require__.r(__webpack_exports__); 3349/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3350/* harmony export */ "default": function() { return /* binding */ slideNext; } 3351/* harmony export */ }); 3352/* eslint no-unused-vars: "off" */ 3353function slideNext(speed = this.params.speed, runCallbacks = true, internal) { 3354 const swiper = this; 3355 const { 3356 enabled, 3357 params, 3358 animating 3359 } = swiper; 3360 if (!enabled) return swiper; 3361 let perGroup = params.slidesPerGroup; 3362 if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { 3363 perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1); 3364 } 3365 const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup; 3366 const isVirtual = swiper.virtual && params.virtual.enabled; 3367 if (params.loop) { 3368 if (animating && !isVirtual && params.loopPreventsSliding) return false; 3369 swiper.loopFix({ 3370 direction: 'next' 3371 }); 3372 // eslint-disable-next-line 3373 swiper._clientLeft = swiper.wrapperEl.clientLeft; 3374 } 3375 if (params.rewind && swiper.isEnd) { 3376 return swiper.slideTo(0, speed, runCallbacks, internal); 3377 } 3378 return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); 3379} 3380 3381/***/ }), 3382
vendor: 2,672 bytes, lines 3383-3451
3383/***/ "../../node_modules/swiper/core/slide/slidePrev.js": 3384/*!*********************************************************!*\ 3385 !*** ../../node_modules/swiper/core/slide/slidePrev.js ***! 3386 \*********************************************************/ 3387/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3388 3389__webpack_require__.r(__webpack_exports__); 3390/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3391/* harmony export */ "default": function() { return /* binding */ slidePrev; } 3392/* harmony export */ }); 3393/* eslint no-unused-vars: "off" */ 3394function slidePrev(speed = this.params.speed, runCallbacks = true, internal) { 3395 const swiper = this; 3396 const { 3397 params, 3398 snapGrid, 3399 slidesGrid, 3400 rtlTranslate, 3401 enabled, 3402 animating 3403 } = swiper; 3404 if (!enabled) return swiper; 3405 const isVirtual = swiper.virtual && params.virtual.enabled; 3406 if (params.loop) { 3407 if (animating && !isVirtual && params.loopPreventsSliding) return false; 3408 swiper.loopFix({ 3409 direction: 'prev' 3410 }); 3411 // eslint-disable-next-line 3412 swiper._clientLeft = swiper.wrapperEl.clientLeft; 3413 } 3414 const translate = rtlTranslate ? swiper.translate : -swiper.translate; 3415 function normalize(val) { 3416 if (val < 0) return -Math.floor(Math.abs(val)); 3417 return Math.floor(val); 3418 } 3419 const normalizedTranslate = normalize(translate); 3420 const normalizedSnapGrid = snapGrid.map(val => normalize(val)); 3421 let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; 3422 if (typeof prevSnap === 'undefined' && params.cssMode) { 3423 let prevSnapIndex; 3424 snapGrid.forEach((snap, snapIndex) => { 3425 if (normalizedTranslate >= snap) { 3426 // prevSnap = snap; 3427 prevSnapIndex = snapIndex; 3428 } 3429 }); 3430 if (typeof prevSnapIndex !== 'undefined') { 3431 prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex]; 3432 } 3433 } 3434 let prevIndex = 0; 3435 if (typeof prevSnap !== 'undefined') { 3436 prevIndex = slidesGrid.indexOf(prevSnap); 3437 if (prevIndex < 0) prevIndex = swiper.activeIndex - 1; 3438 if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { 3439 prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1; 3440 prevIndex = Math.max(prevIndex, 0); 3441 } 3442 } 3443 if (params.rewind && swiper.isBeginning) { 3444 const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; 3445 return swiper.slideTo(lastIndex, speed, runCallbacks, internal); 3446 } 3447 return swiper.slideTo(prevIndex, speed, runCallbacks, internal); 3448} 3449 3450/***/ }), 3451
vendor: 794 bytes, lines 3452-3469
3452/***/ "../../node_modules/swiper/core/slide/slideReset.js": 3453/*!**********************************************************!*\ 3454 !*** ../../node_modules/swiper/core/slide/slideReset.js ***! 3455 \**********************************************************/ 3456/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3457 3458__webpack_require__.r(__webpack_exports__); 3459/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3460/* harmony export */ "default": function() { return /* binding */ slideReset; } 3461/* harmony export */ }); 3462/* eslint no-unused-vars: "off" */ 3463function slideReset(speed = this.params.speed, runCallbacks = true, internal) { 3464 const swiper = this; 3465 return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); 3466} 3467 3468/***/ }), 3469
vendor: 5,837 bytes, lines 3470-3625
3470/***/ "../../node_modules/swiper/core/slide/slideTo.js": 3471/*!*******************************************************!*\ 3472 !*** ../../node_modules/swiper/core/slide/slideTo.js ***! 3473 \*******************************************************/ 3474/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3475 3476__webpack_require__.r(__webpack_exports__); 3477/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3478/* harmony export */ "default": function() { return /* binding */ slideTo; } 3479/* harmony export */ }); 3480/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 3481 3482function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) { 3483 if (typeof index === 'string') { 3484 index = parseInt(index, 10); 3485 } 3486 const swiper = this; 3487 let slideIndex = index; 3488 if (slideIndex < 0) slideIndex = 0; 3489 const { 3490 params, 3491 snapGrid, 3492 slidesGrid, 3493 previousIndex, 3494 activeIndex, 3495 rtlTranslate: rtl, 3496 wrapperEl, 3497 enabled 3498 } = swiper; 3499 if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) { 3500 return false; 3501 } 3502 const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); 3503 let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); 3504 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 3505 const translate = -snapGrid[snapIndex]; 3506 // Normalize slideIndex 3507 if (params.normalizeSlideIndex) { 3508 for (let i = 0; i < slidesGrid.length; i += 1) { 3509 const normalizedTranslate = -Math.floor(translate * 100); 3510 const normalizedGrid = Math.floor(slidesGrid[i] * 100); 3511 const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100); 3512 if (typeof slidesGrid[i + 1] !== 'undefined') { 3513 if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) { 3514 slideIndex = i; 3515 } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) { 3516 slideIndex = i + 1; 3517 } 3518 } else if (normalizedTranslate >= normalizedGrid) { 3519 slideIndex = i; 3520 } 3521 } 3522 } 3523 // Directions locks 3524 if (swiper.initialized && slideIndex !== activeIndex) { 3525 if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) { 3526 return false; 3527 } 3528 if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { 3529 if ((activeIndex || 0) !== slideIndex) { 3530 return false; 3531 } 3532 } 3533 } 3534 if (slideIndex !== (previousIndex || 0) && runCallbacks) { 3535 swiper.emit('beforeSlideChangeStart'); 3536 } 3537 3538 // Update progress 3539 swiper.updateProgress(translate); 3540 let direction; 3541 if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; 3542 3543 // Update Index 3544 if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) { 3545 swiper.updateActiveIndex(slideIndex); 3546 // Update Height 3547 if (params.autoHeight) { 3548 swiper.updateAutoHeight(); 3549 } 3550 swiper.updateSlidesClasses(); 3551 if (params.effect !== 'slide') { 3552 swiper.setTranslate(translate); 3553 } 3554 if (direction !== 'reset') { 3555 swiper.transitionStart(runCallbacks, direction); 3556 swiper.transitionEnd(runCallbacks, direction); 3557 } 3558 return false; 3559 } 3560 if (params.cssMode) { 3561 const isH = swiper.isHorizontal(); 3562 const t = rtl ? translate : -translate; 3563 if (speed === 0) { 3564 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 3565 if (isVirtual) { 3566 swiper.wrapperEl.style.scrollSnapType = 'none'; 3567 swiper._immediateVirtual = true; 3568 } 3569 if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) { 3570 swiper._cssModeVirtualInitialSet = true; 3571 requestAnimationFrame(() => { 3572 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; 3573 }); 3574 } else { 3575 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; 3576 } 3577 if (isVirtual) { 3578 requestAnimationFrame(() => { 3579 swiper.wrapperEl.style.scrollSnapType = ''; 3580 swiper._immediateVirtual = false; 3581 }); 3582 } 3583 } else { 3584 if (!swiper.support.smoothScroll) { 3585 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.animateCSSModeScroll)({ 3586 swiper, 3587 targetPosition: t, 3588 side: isH ? 'left' : 'top' 3589 }); 3590 return true; 3591 } 3592 wrapperEl.scrollTo({ 3593 [isH ? 'left' : 'top']: t, 3594 behavior: 'smooth' 3595 }); 3596 } 3597 return true; 3598 } 3599 swiper.setTransition(speed); 3600 swiper.setTranslate(translate); 3601 swiper.updateActiveIndex(slideIndex); 3602 swiper.updateSlidesClasses(); 3603 swiper.emit('beforeTransitionStart', speed, internal); 3604 swiper.transitionStart(runCallbacks, direction); 3605 if (speed === 0) { 3606 swiper.transitionEnd(runCallbacks, direction); 3607 } else if (!swiper.animating) { 3608 swiper.animating = true; 3609 if (!swiper.onSlideToWrapperTransitionEnd) { 3610 swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) { 3611 if (!swiper || swiper.destroyed) return; 3612 if (e.target !== this) return; 3613 swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 3614 swiper.onSlideToWrapperTransitionEnd = null; 3615 delete swiper.onSlideToWrapperTransitionEnd; 3616 swiper.transitionEnd(runCallbacks, direction); 3617 }; 3618 } 3619 swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 3620 } 3621 return true; 3622} 3623 3624/***/ }), 3625
vendor: 2,384 bytes, lines 3626-3676
3626/***/ "../../node_modules/swiper/core/slide/slideToClickedSlide.js": 3627/*!*******************************************************************!*\ 3628 !*** ../../node_modules/swiper/core/slide/slideToClickedSlide.js ***! 3629 \*******************************************************************/ 3630/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3631 3632__webpack_require__.r(__webpack_exports__); 3633/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3634/* harmony export */ "default": function() { return /* binding */ slideToClickedSlide; } 3635/* harmony export */ }); 3636/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 3637 3638function slideToClickedSlide() { 3639 const swiper = this; 3640 const { 3641 params, 3642 slidesEl 3643 } = swiper; 3644 const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; 3645 let slideToIndex = swiper.clickedIndex; 3646 let realIndex; 3647 const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`; 3648 if (params.loop) { 3649 if (swiper.animating) return; 3650 realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); 3651 if (params.centeredSlides) { 3652 if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) { 3653 swiper.loopFix(); 3654 slideToIndex = swiper.getSlideIndex((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementChildren)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); 3655 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => { 3656 swiper.slideTo(slideToIndex); 3657 }); 3658 } else { 3659 swiper.slideTo(slideToIndex); 3660 } 3661 } else if (slideToIndex > swiper.slides.length - slidesPerView) { 3662 swiper.loopFix(); 3663 slideToIndex = swiper.getSlideIndex((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementChildren)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); 3664 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => { 3665 swiper.slideTo(slideToIndex); 3666 }); 3667 } else { 3668 swiper.slideTo(slideToIndex); 3669 } 3670 } else { 3671 swiper.slideTo(slideToIndex); 3672 } 3673} 3674 3675/***/ }), 3676
vendor: 1,973 bytes, lines 3677-3717
3677/***/ "../../node_modules/swiper/core/slide/slideToClosest.js": 3678/*!**************************************************************!*\ 3679 !*** ../../node_modules/swiper/core/slide/slideToClosest.js ***! 3680 \**************************************************************/ 3681/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3682 3683__webpack_require__.r(__webpack_exports__); 3684/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3685/* harmony export */ "default": function() { return /* binding */ slideToClosest; } 3686/* harmony export */ }); 3687/* eslint no-unused-vars: "off" */ 3688function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) { 3689 const swiper = this; 3690 let index = swiper.activeIndex; 3691 const skip = Math.min(swiper.params.slidesPerGroupSkip, index); 3692 const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup); 3693 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 3694 if (translate >= swiper.snapGrid[snapIndex]) { 3695 // The current translate is on or after the current snap index, so the choice 3696 // is between the current index and the one after it. 3697 const currentSnap = swiper.snapGrid[snapIndex]; 3698 const nextSnap = swiper.snapGrid[snapIndex + 1]; 3699 if (translate - currentSnap > (nextSnap - currentSnap) * threshold) { 3700 index += swiper.params.slidesPerGroup; 3701 } 3702 } else { 3703 // The current translate is before the current snap index, so the choice 3704 // is between the current index and the one before it. 3705 const prevSnap = swiper.snapGrid[snapIndex - 1]; 3706 const currentSnap = swiper.snapGrid[snapIndex]; 3707 if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) { 3708 index -= swiper.params.slidesPerGroup; 3709 } 3710 } 3711 index = Math.max(index, 0); 3712 index = Math.min(index, swiper.slidesGrid.length - 1); 3713 return swiper.slideTo(index, speed, runCallbacks, internal); 3714} 3715 3716/***/ }), 3717
vendor: 1,159 bytes, lines 3718-3747
3718/***/ "../../node_modules/swiper/core/slide/slideToLoop.js": 3719/*!***********************************************************!*\ 3720 !*** ../../node_modules/swiper/core/slide/slideToLoop.js ***! 3721 \***********************************************************/ 3722/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3723 3724__webpack_require__.r(__webpack_exports__); 3725/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3726/* harmony export */ "default": function() { return /* binding */ slideToLoop; } 3727/* harmony export */ }); 3728function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) { 3729 if (typeof index === 'string') { 3730 const indexAsNumber = parseInt(index, 10); 3731 index = indexAsNumber; 3732 } 3733 const swiper = this; 3734 let newIndex = index; 3735 if (swiper.params.loop) { 3736 if (swiper.virtual && swiper.params.virtual.enabled) { 3737 // eslint-disable-next-line 3738 newIndex = newIndex + swiper.virtual.slidesBefore; 3739 } else { 3740 newIndex = swiper.getSlideIndexByData(newIndex); 3741 } 3742 } 3743 return swiper.slideTo(newIndex, speed, runCallbacks, internal); 3744} 3745 3746/***/ }), 3747
vendor: 1,263 bytes, lines 3748-3768
3748/***/ "../../node_modules/swiper/core/transition/index.js": 3749/*!**********************************************************!*\ 3750 !*** ../../node_modules/swiper/core/transition/index.js ***! 3751 \**********************************************************/ 3752/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3753 3754__webpack_require__.r(__webpack_exports__); 3755/* harmony import */ var _setTransition_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setTransition.js */ "../../node_modules/swiper/core/transition/setTransition.js"); 3756/* harmony import */ var _transitionStart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transitionStart.js */ "../../node_modules/swiper/core/transition/transitionStart.js"); 3757/* harmony import */ var _transitionEnd_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transitionEnd.js */ "../../node_modules/swiper/core/transition/transitionEnd.js"); 3758 3759 3760 3761/* harmony default export */ __webpack_exports__["default"] = ({ 3762 setTransition: _setTransition_js__WEBPACK_IMPORTED_MODULE_0__["default"], 3763 transitionStart: _transitionStart_js__WEBPACK_IMPORTED_MODULE_1__["default"], 3764 transitionEnd: _transitionEnd_js__WEBPACK_IMPORTED_MODULE_2__["default"] 3765}); 3766 3767/***/ }), 3768
vendor: 844 bytes, lines 3769-3788
3769/***/ "../../node_modules/swiper/core/transition/setTransition.js": 3770/*!******************************************************************!*\ 3771 !*** ../../node_modules/swiper/core/transition/setTransition.js ***! 3772 \******************************************************************/ 3773/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3774 3775__webpack_require__.r(__webpack_exports__); 3776/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3777/* harmony export */ "default": function() { return /* binding */ setTransition; } 3778/* harmony export */ }); 3779function setTransition(duration, byController) { 3780 const swiper = this; 3781 if (!swiper.params.cssMode) { 3782 swiper.wrapperEl.style.transitionDuration = `${duration}ms`; 3783 } 3784 swiper.emit('setTransition', duration, byController); 3785} 3786 3787/***/ }), 3788
vendor: 1,302 bytes, lines 3789-3829
3789/***/ "../../node_modules/swiper/core/transition/transitionEmit.js": 3790/*!*******************************************************************!*\ 3791 !*** ../../node_modules/swiper/core/transition/transitionEmit.js ***! 3792 \*******************************************************************/ 3793/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3794 3795__webpack_require__.r(__webpack_exports__); 3796/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3797/* harmony export */ "default": function() { return /* binding */ transitionEmit; } 3798/* harmony export */ }); 3799function transitionEmit({ 3800 swiper, 3801 runCallbacks, 3802 direction, 3803 step 3804}) { 3805 const { 3806 activeIndex, 3807 previousIndex 3808 } = swiper; 3809 let dir = direction; 3810 if (!dir) { 3811 if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; 3812 } 3813 swiper.emit(`transition${step}`); 3814 if (runCallbacks && activeIndex !== previousIndex) { 3815 if (dir === 'reset') { 3816 swiper.emit(`slideResetTransition${step}`); 3817 return; 3818 } 3819 swiper.emit(`slideChangeTransition${step}`); 3820 if (dir === 'next') { 3821 swiper.emit(`slideNextTransition${step}`); 3822 } else { 3823 swiper.emit(`slidePrevTransition${step}`); 3824 } 3825 } 3826} 3827 3828/***/ }), 3829
vendor: 1,136 bytes, lines 3830-3859
3830/***/ "../../node_modules/swiper/core/transition/transitionEnd.js": 3831/*!******************************************************************!*\ 3832 !*** ../../node_modules/swiper/core/transition/transitionEnd.js ***! 3833 \******************************************************************/ 3834/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3835 3836__webpack_require__.r(__webpack_exports__); 3837/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3838/* harmony export */ "default": function() { return /* binding */ transitionEnd; } 3839/* harmony export */ }); 3840/* harmony import */ var _transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transitionEmit.js */ "../../node_modules/swiper/core/transition/transitionEmit.js"); 3841 3842function transitionEnd(runCallbacks = true, direction) { 3843 const swiper = this; 3844 const { 3845 params 3846 } = swiper; 3847 swiper.animating = false; 3848 if (params.cssMode) return; 3849 swiper.setTransition(0); 3850 (0,_transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 3851 swiper, 3852 runCallbacks, 3853 direction, 3854 step: 'End' 3855 }); 3856} 3857 3858/***/ }), 3859
vendor: 1,157 bytes, lines 3860-3890
3860/***/ "../../node_modules/swiper/core/transition/transitionStart.js": 3861/*!********************************************************************!*\ 3862 !*** ../../node_modules/swiper/core/transition/transitionStart.js ***! 3863 \********************************************************************/ 3864/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3865 3866__webpack_require__.r(__webpack_exports__); 3867/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3868/* harmony export */ "default": function() { return /* binding */ transitionStart; } 3869/* harmony export */ }); 3870/* harmony import */ var _transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transitionEmit.js */ "../../node_modules/swiper/core/transition/transitionEmit.js"); 3871 3872function transitionStart(runCallbacks = true, direction) { 3873 const swiper = this; 3874 const { 3875 params 3876 } = swiper; 3877 if (params.cssMode) return; 3878 if (params.autoHeight) { 3879 swiper.updateAutoHeight(); 3880 } 3881 (0,_transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 3882 swiper, 3883 runCallbacks, 3884 direction, 3885 step: 'Start' 3886 }); 3887} 3888 3889/***/ }), 3890
vendor: 1,331 bytes, lines 3891-3924
3891/***/ "../../node_modules/swiper/core/translate/getTranslate.js": 3892/*!****************************************************************!*\ 3893 !*** ../../node_modules/swiper/core/translate/getTranslate.js ***! 3894 \****************************************************************/ 3895/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3896 3897__webpack_require__.r(__webpack_exports__); 3898/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3899/* harmony export */ "default": function() { return /* binding */ getSwiperTranslate; } 3900/* harmony export */ }); 3901/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 3902 3903function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') { 3904 const swiper = this; 3905 const { 3906 params, 3907 rtlTranslate: rtl, 3908 translate, 3909 wrapperEl 3910 } = swiper; 3911 if (params.virtualTranslate) { 3912 return rtl ? -translate : translate; 3913 } 3914 if (params.cssMode) { 3915 return translate; 3916 } 3917 let currentTranslate = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.getTranslate)(wrapperEl, axis); 3918 currentTranslate += swiper.cssOverflowAdjustment(); 3919 if (rtl) currentTranslate = -currentTranslate; 3920 return currentTranslate || 0; 3921} 3922 3923/***/ }), 3924
vendor: 1,734 bytes, lines 3925-3951
3925/***/ "../../node_modules/swiper/core/translate/index.js": 3926/*!*********************************************************!*\ 3927 !*** ../../node_modules/swiper/core/translate/index.js ***! 3928 \*********************************************************/ 3929/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3930 3931__webpack_require__.r(__webpack_exports__); 3932/* harmony import */ var _getTranslate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getTranslate.js */ "../../node_modules/swiper/core/translate/getTranslate.js"); 3933/* harmony import */ var _setTranslate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setTranslate.js */ "../../node_modules/swiper/core/translate/setTranslate.js"); 3934/* harmony import */ var _minTranslate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./minTranslate.js */ "../../node_modules/swiper/core/translate/minTranslate.js"); 3935/* harmony import */ var _maxTranslate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./maxTranslate.js */ "../../node_modules/swiper/core/translate/maxTranslate.js"); 3936/* harmony import */ var _translateTo_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./translateTo.js */ "../../node_modules/swiper/core/translate/translateTo.js"); 3937 3938 3939 3940 3941 3942/* harmony default export */ __webpack_exports__["default"] = ({ 3943 getTranslate: _getTranslate_js__WEBPACK_IMPORTED_MODULE_0__["default"], 3944 setTranslate: _setTranslate_js__WEBPACK_IMPORTED_MODULE_1__["default"], 3945 minTranslate: _minTranslate_js__WEBPACK_IMPORTED_MODULE_2__["default"], 3946 maxTranslate: _maxTranslate_js__WEBPACK_IMPORTED_MODULE_3__["default"], 3947 translateTo: _translateTo_js__WEBPACK_IMPORTED_MODULE_4__["default"] 3948}); 3949 3950/***/ }), 3951
vendor: 683 bytes, lines 3952-3967
3952/***/ "../../node_modules/swiper/core/translate/maxTranslate.js": 3953/*!****************************************************************!*\ 3954 !*** ../../node_modules/swiper/core/translate/maxTranslate.js ***! 3955 \****************************************************************/ 3956/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3957 3958__webpack_require__.r(__webpack_exports__); 3959/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3960/* harmony export */ "default": function() { return /* binding */ maxTranslate; } 3961/* harmony export */ }); 3962function maxTranslate() { 3963 return -this.snapGrid[this.snapGrid.length - 1]; 3964} 3965 3966/***/ }), 3967
vendor: 660 bytes, lines 3968-3983
3968/***/ "../../node_modules/swiper/core/translate/minTranslate.js": 3969/*!****************************************************************!*\ 3970 !*** ../../node_modules/swiper/core/translate/minTranslate.js ***! 3971 \****************************************************************/ 3972/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3973 3974__webpack_require__.r(__webpack_exports__); 3975/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3976/* harmony export */ "default": function() { return /* binding */ minTranslate; } 3977/* harmony export */ }); 3978function minTranslate() { 3979 return -this.snapGrid[0]; 3980} 3981 3982/***/ }), 3983
vendor: 1,876 bytes, lines 3984-4042
3984/***/ "../../node_modules/swiper/core/translate/setTranslate.js": 3985/*!****************************************************************!*\ 3986 !*** ../../node_modules/swiper/core/translate/setTranslate.js ***! 3987 \****************************************************************/ 3988/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 3989 3990__webpack_require__.r(__webpack_exports__); 3991/* harmony export */ __webpack_require__.d(__webpack_exports__, { 3992/* harmony export */ "default": function() { return /* binding */ setTranslate; } 3993/* harmony export */ }); 3994function setTranslate(translate, byController) { 3995 const swiper = this; 3996 const { 3997 rtlTranslate: rtl, 3998 params, 3999 wrapperEl, 4000 progress 4001 } = swiper; 4002 let x = 0; 4003 let y = 0; 4004 const z = 0; 4005 if (swiper.isHorizontal()) { 4006 x = rtl ? -translate : translate; 4007 } else { 4008 y = translate; 4009 } 4010 if (params.roundLengths) { 4011 x = Math.floor(x); 4012 y = Math.floor(y); 4013 } 4014 swiper.previousTranslate = swiper.translate; 4015 swiper.translate = swiper.isHorizontal() ? x : y; 4016 if (params.cssMode) { 4017 wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y; 4018 } else if (!params.virtualTranslate) { 4019 if (swiper.isHorizontal()) { 4020 x -= swiper.cssOverflowAdjustment(); 4021 } else { 4022 y -= swiper.cssOverflowAdjustment(); 4023 } 4024 wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`; 4025 } 4026 4027 // Check if we need to update progress 4028 let newProgress; 4029 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 4030 if (translatesDiff === 0) { 4031 newProgress = 0; 4032 } else { 4033 newProgress = (translate - swiper.minTranslate()) / translatesDiff; 4034 } 4035 if (newProgress !== progress) { 4036 swiper.updateProgress(translate); 4037 } 4038 swiper.emit('setTranslate', swiper.translate, byController); 4039} 4040 4041/***/ }), 4042
vendor: 3,148 bytes, lines 4043-4126
4043/***/ "../../node_modules/swiper/core/translate/translateTo.js": 4044/*!***************************************************************!*\ 4045 !*** ../../node_modules/swiper/core/translate/translateTo.js ***! 4046 \***************************************************************/ 4047/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4048 4049__webpack_require__.r(__webpack_exports__); 4050/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4051/* harmony export */ "default": function() { return /* binding */ translateTo; } 4052/* harmony export */ }); 4053/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 4054 4055function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) { 4056 const swiper = this; 4057 const { 4058 params, 4059 wrapperEl 4060 } = swiper; 4061 if (swiper.animating && params.preventInteractionOnTransition) { 4062 return false; 4063 } 4064 const minTranslate = swiper.minTranslate(); 4065 const maxTranslate = swiper.maxTranslate(); 4066 let newTranslate; 4067 if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; 4068 4069 // Update progress 4070 swiper.updateProgress(newTranslate); 4071 if (params.cssMode) { 4072 const isH = swiper.isHorizontal(); 4073 if (speed === 0) { 4074 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; 4075 } else { 4076 if (!swiper.support.smoothScroll) { 4077 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.animateCSSModeScroll)({ 4078 swiper, 4079 targetPosition: -newTranslate, 4080 side: isH ? 'left' : 'top' 4081 }); 4082 return true; 4083 } 4084 wrapperEl.scrollTo({ 4085 [isH ? 'left' : 'top']: -newTranslate, 4086 behavior: 'smooth' 4087 }); 4088 } 4089 return true; 4090 } 4091 if (speed === 0) { 4092 swiper.setTransition(0); 4093 swiper.setTranslate(newTranslate); 4094 if (runCallbacks) { 4095 swiper.emit('beforeTransitionStart', speed, internal); 4096 swiper.emit('transitionEnd'); 4097 } 4098 } else { 4099 swiper.setTransition(speed); 4100 swiper.setTranslate(newTranslate); 4101 if (runCallbacks) { 4102 swiper.emit('beforeTransitionStart', speed, internal); 4103 swiper.emit('transitionStart'); 4104 } 4105 if (!swiper.animating) { 4106 swiper.animating = true; 4107 if (!swiper.onTranslateToWrapperTransitionEnd) { 4108 swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) { 4109 if (!swiper || swiper.destroyed) return; 4110 if (e.target !== this) return; 4111 swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 4112 swiper.onTranslateToWrapperTransitionEnd = null; 4113 delete swiper.onTranslateToWrapperTransitionEnd; 4114 if (runCallbacks) { 4115 swiper.emit('transitionEnd'); 4116 } 4117 }; 4118 } 4119 swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 4120 } 4121 } 4122 return true; 4123} 4124 4125/***/ }), 4126
vendor: 2,896 bytes, lines 4127-4165
4127/***/ "../../node_modules/swiper/core/update/index.js": 4128/*!******************************************************!*\ 4129 !*** ../../node_modules/swiper/core/update/index.js ***! 4130 \******************************************************/ 4131/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4132 4133__webpack_require__.r(__webpack_exports__); 4134/* harmony import */ var _updateSize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./updateSize.js */ "../../node_modules/swiper/core/update/updateSize.js"); 4135/* harmony import */ var _updateSlides_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./updateSlides.js */ "../../node_modules/swiper/core/update/updateSlides.js"); 4136/* harmony import */ var _updateAutoHeight_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./updateAutoHeight.js */ "../../node_modules/swiper/core/update/updateAutoHeight.js"); 4137/* harmony import */ var _updateSlidesOffset_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./updateSlidesOffset.js */ "../../node_modules/swiper/core/update/updateSlidesOffset.js"); 4138/* harmony import */ var _updateSlidesProgress_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./updateSlidesProgress.js */ "../../node_modules/swiper/core/update/updateSlidesProgress.js"); 4139/* harmony import */ var _updateProgress_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./updateProgress.js */ "../../node_modules/swiper/core/update/updateProgress.js"); 4140/* harmony import */ var _updateSlidesClasses_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./updateSlidesClasses.js */ "../../node_modules/swiper/core/update/updateSlidesClasses.js"); 4141/* harmony import */ var _updateActiveIndex_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./updateActiveIndex.js */ "../../node_modules/swiper/core/update/updateActiveIndex.js"); 4142/* harmony import */ var _updateClickedSlide_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./updateClickedSlide.js */ "../../node_modules/swiper/core/update/updateClickedSlide.js"); 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152/* harmony default export */ __webpack_exports__["default"] = ({ 4153 updateSize: _updateSize_js__WEBPACK_IMPORTED_MODULE_0__["default"], 4154 updateSlides: _updateSlides_js__WEBPACK_IMPORTED_MODULE_1__["default"], 4155 updateAutoHeight: _updateAutoHeight_js__WEBPACK_IMPORTED_MODULE_2__["default"], 4156 updateSlidesOffset: _updateSlidesOffset_js__WEBPACK_IMPORTED_MODULE_3__["default"], 4157 updateSlidesProgress: _updateSlidesProgress_js__WEBPACK_IMPORTED_MODULE_4__["default"], 4158 updateProgress: _updateProgress_js__WEBPACK_IMPORTED_MODULE_5__["default"], 4159 updateSlidesClasses: _updateSlidesClasses_js__WEBPACK_IMPORTED_MODULE_6__["default"], 4160 updateActiveIndex: _updateActiveIndex_js__WEBPACK_IMPORTED_MODULE_7__["default"], 4161 updateClickedSlide: _updateClickedSlide_js__WEBPACK_IMPORTED_MODULE_8__["default"] 4162}); 4163 4164/***/ }), 4165
vendor: 4,042 bytes, lines 4166-4276
4166/***/ "../../node_modules/swiper/core/update/updateActiveIndex.js": 4167/*!******************************************************************!*\ 4168 !*** ../../node_modules/swiper/core/update/updateActiveIndex.js ***! 4169 \******************************************************************/ 4170/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4171 4172__webpack_require__.r(__webpack_exports__); 4173/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4174/* harmony export */ "default": function() { return /* binding */ updateActiveIndex; }, 4175/* harmony export */ getActiveIndexByTranslate: function() { return /* binding */ getActiveIndexByTranslate; } 4176/* harmony export */ }); 4177/* 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"); 4178 4179function getActiveIndexByTranslate(swiper) { 4180 const { 4181 slidesGrid, 4182 params 4183 } = swiper; 4184 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 4185 let activeIndex; 4186 for (let i = 0; i < slidesGrid.length; i += 1) { 4187 if (typeof slidesGrid[i + 1] !== 'undefined') { 4188 if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) { 4189 activeIndex = i; 4190 } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { 4191 activeIndex = i + 1; 4192 } 4193 } else if (translate >= slidesGrid[i]) { 4194 activeIndex = i; 4195 } 4196 } 4197 // Normalize slideIndex 4198 if (params.normalizeSlideIndex) { 4199 if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; 4200 } 4201 return activeIndex; 4202} 4203function updateActiveIndex(newActiveIndex) { 4204 const swiper = this; 4205 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 4206 const { 4207 snapGrid, 4208 params, 4209 activeIndex: previousIndex, 4210 realIndex: previousRealIndex, 4211 snapIndex: previousSnapIndex 4212 } = swiper; 4213 let activeIndex = newActiveIndex; 4214 let snapIndex; 4215 const getVirtualRealIndex = aIndex => { 4216 let realIndex = aIndex - swiper.virtual.slidesBefore; 4217 if (realIndex < 0) { 4218 realIndex = swiper.virtual.slides.length + realIndex; 4219 } 4220 if (realIndex >= swiper.virtual.slides.length) { 4221 realIndex -= swiper.virtual.slides.length; 4222 } 4223 return realIndex; 4224 }; 4225 if (typeof activeIndex === 'undefined') { 4226 activeIndex = getActiveIndexByTranslate(swiper); 4227 } 4228 if (snapGrid.indexOf(translate) >= 0) { 4229 snapIndex = snapGrid.indexOf(translate); 4230 } else { 4231 const skip = Math.min(params.slidesPerGroupSkip, activeIndex); 4232 snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup); 4233 } 4234 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 4235 if (activeIndex === previousIndex) { 4236 if (snapIndex !== previousSnapIndex) { 4237 swiper.snapIndex = snapIndex; 4238 swiper.emit('snapIndexChange'); 4239 } 4240 if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { 4241 swiper.realIndex = getVirtualRealIndex(activeIndex); 4242 } 4243 return; 4244 } 4245 // Get real index 4246 let realIndex; 4247 if (swiper.virtual && params.virtual.enabled && params.loop) { 4248 realIndex = getVirtualRealIndex(activeIndex); 4249 } else if (swiper.slides[activeIndex]) { 4250 realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10); 4251 } else { 4252 realIndex = activeIndex; 4253 } 4254 Object.assign(swiper, { 4255 previousSnapIndex, 4256 snapIndex, 4257 previousRealIndex, 4258 realIndex, 4259 previousIndex, 4260 activeIndex 4261 }); 4262 if (swiper.initialized) { 4263 (0,_shared_process_lazy_preloader_js__WEBPACK_IMPORTED_MODULE_0__.preload)(swiper); 4264 } 4265 swiper.emit('activeIndexChange'); 4266 swiper.emit('snapIndexChange'); 4267 if (previousRealIndex !== realIndex) { 4268 swiper.emit('realIndexChange'); 4269 } 4270 if (swiper.initialized || swiper.params.runCallbacksOnInit) { 4271 swiper.emit('slideChange'); 4272 } 4273} 4274 4275/***/ }), 4276
vendor: 2,077 bytes, lines 4277-4334
4277/***/ "../../node_modules/swiper/core/update/updateAutoHeight.js": 4278/*!*****************************************************************!*\ 4279 !*** ../../node_modules/swiper/core/update/updateAutoHeight.js ***! 4280 \*****************************************************************/ 4281/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4282 4283__webpack_require__.r(__webpack_exports__); 4284/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4285/* harmony export */ "default": function() { return /* binding */ updateAutoHeight; } 4286/* harmony export */ }); 4287function updateAutoHeight(speed) { 4288 const swiper = this; 4289 const activeSlides = []; 4290 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 4291 let newHeight = 0; 4292 let i; 4293 if (typeof speed === 'number') { 4294 swiper.setTransition(speed); 4295 } else if (speed === true) { 4296 swiper.setTransition(swiper.params.speed); 4297 } 4298 const getSlideByIndex = index => { 4299 if (isVirtual) { 4300 return swiper.slides[swiper.getSlideIndexByData(index)]; 4301 } 4302 return swiper.slides[index]; 4303 }; 4304 // Find slides currently in view 4305 if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { 4306 if (swiper.params.centeredSlides) { 4307 (swiper.visibleSlides || []).forEach(slide => { 4308 activeSlides.push(slide); 4309 }); 4310 } else { 4311 for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { 4312 const index = swiper.activeIndex + i; 4313 if (index > swiper.slides.length && !isVirtual) break; 4314 activeSlides.push(getSlideByIndex(index)); 4315 } 4316 } 4317 } else { 4318 activeSlides.push(getSlideByIndex(swiper.activeIndex)); 4319 } 4320 4321 // Find new height from highest slide in view 4322 for (i = 0; i < activeSlides.length; i += 1) { 4323 if (typeof activeSlides[i] !== 'undefined') { 4324 const height = activeSlides[i].offsetHeight; 4325 newHeight = height > newHeight ? height : newHeight; 4326 } 4327 } 4328 4329 // Update Height 4330 if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`; 4331} 4332 4333/***/ }), 4334
vendor: 1,544 bytes, lines 4335-4378
4335/***/ "../../node_modules/swiper/core/update/updateClickedSlide.js": 4336/*!*******************************************************************!*\ 4337 !*** ../../node_modules/swiper/core/update/updateClickedSlide.js ***! 4338 \*******************************************************************/ 4339/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4340 4341__webpack_require__.r(__webpack_exports__); 4342/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4343/* harmony export */ "default": function() { return /* binding */ updateClickedSlide; } 4344/* harmony export */ }); 4345function updateClickedSlide(e) { 4346 const swiper = this; 4347 const params = swiper.params; 4348 const slide = e.closest(`.${params.slideClass}, swiper-slide`); 4349 let slideFound = false; 4350 let slideIndex; 4351 if (slide) { 4352 for (let i = 0; i < swiper.slides.length; i += 1) { 4353 if (swiper.slides[i] === slide) { 4354 slideFound = true; 4355 slideIndex = i; 4356 break; 4357 } 4358 } 4359 } 4360 if (slide && slideFound) { 4361 swiper.clickedSlide = slide; 4362 if (swiper.virtual && swiper.params.virtual.enabled) { 4363 swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10); 4364 } else { 4365 swiper.clickedIndex = slideIndex; 4366 } 4367 } else { 4368 swiper.clickedSlide = undefined; 4369 swiper.clickedIndex = undefined; 4370 return; 4371 } 4372 if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { 4373 swiper.slideToClickedSlide(); 4374 } 4375} 4376 4377/***/ }), 4378
vendor: 2,807 bytes, lines 4379-4453
4379/***/ "../../node_modules/swiper/core/update/updateProgress.js": 4380/*!***************************************************************!*\ 4381 !*** ../../node_modules/swiper/core/update/updateProgress.js ***! 4382 \***************************************************************/ 4383/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4384 4385__webpack_require__.r(__webpack_exports__); 4386/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4387/* harmony export */ "default": function() { return /* binding */ updateProgress; } 4388/* harmony export */ }); 4389function updateProgress(translate) { 4390 const swiper = this; 4391 if (typeof translate === 'undefined') { 4392 const multiplier = swiper.rtlTranslate ? -1 : 1; 4393 // eslint-disable-next-line 4394 translate = swiper && swiper.translate && swiper.translate * multiplier || 0; 4395 } 4396 const params = swiper.params; 4397 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 4398 let { 4399 progress, 4400 isBeginning, 4401 isEnd, 4402 progressLoop 4403 } = swiper; 4404 const wasBeginning = isBeginning; 4405 const wasEnd = isEnd; 4406 if (translatesDiff === 0) { 4407 progress = 0; 4408 isBeginning = true; 4409 isEnd = true; 4410 } else { 4411 progress = (translate - swiper.minTranslate()) / translatesDiff; 4412 const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1; 4413 const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1; 4414 isBeginning = isBeginningRounded || progress <= 0; 4415 isEnd = isEndRounded || progress >= 1; 4416 if (isBeginningRounded) progress = 0; 4417 if (isEndRounded) progress = 1; 4418 } 4419 if (params.loop) { 4420 const firstSlideIndex = swiper.getSlideIndexByData(0); 4421 const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1); 4422 const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex]; 4423 const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex]; 4424 const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1]; 4425 const translateAbs = Math.abs(translate); 4426 if (translateAbs >= firstSlideTranslate) { 4427 progressLoop = (translateAbs - firstSlideTranslate) / translateMax; 4428 } else { 4429 progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax; 4430 } 4431 if (progressLoop > 1) progressLoop -= 1; 4432 } 4433 Object.assign(swiper, { 4434 progress, 4435 progressLoop, 4436 isBeginning, 4437 isEnd 4438 }); 4439 if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate); 4440 if (isBeginning && !wasBeginning) { 4441 swiper.emit('reachBeginning toEdge'); 4442 } 4443 if (isEnd && !wasEnd) { 4444 swiper.emit('reachEnd toEdge'); 4445 } 4446 if (wasBeginning && !isBeginning || wasEnd && !isEnd) { 4447 swiper.emit('fromEdge'); 4448 } 4449 swiper.emit('progress', progress); 4450} 4451 4452/***/ }), 4453
vendor: 1,938 bytes, lines 4454-4498
4454/***/ "../../node_modules/swiper/core/update/updateSize.js": 4455/*!***********************************************************!*\ 4456 !*** ../../node_modules/swiper/core/update/updateSize.js ***! 4457 \***********************************************************/ 4458/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4459 4460__webpack_require__.r(__webpack_exports__); 4461/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4462/* harmony export */ "default": function() { return /* binding */ updateSize; } 4463/* harmony export */ }); 4464/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 4465 4466function updateSize() { 4467 const swiper = this; 4468 let width; 4469 let height; 4470 const el = swiper.el; 4471 if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) { 4472 width = swiper.params.width; 4473 } else { 4474 width = el.clientWidth; 4475 } 4476 if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) { 4477 height = swiper.params.height; 4478 } else { 4479 height = el.clientHeight; 4480 } 4481 if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) { 4482 return; 4483 } 4484 4485 // Subtract paddings 4486 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); 4487 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); 4488 if (Number.isNaN(width)) width = 0; 4489 if (Number.isNaN(height)) height = 0; 4490 Object.assign(swiper, { 4491 width, 4492 height, 4493 size: swiper.isHorizontal() ? width : height 4494 }); 4495} 4496 4497/***/ }), 4498
vendor: 12,428 bytes, lines 4499-4799
4499/***/ "../../node_modules/swiper/core/update/updateSlides.js": 4500/*!*************************************************************!*\ 4501 !*** ../../node_modules/swiper/core/update/updateSlides.js ***! 4502 \*************************************************************/ 4503/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4504 4505__webpack_require__.r(__webpack_exports__); 4506/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4507/* harmony export */ "default": function() { return /* binding */ updateSlides; } 4508/* harmony export */ }); 4509/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 4510 4511function updateSlides() { 4512 const swiper = this; 4513 function getDirectionLabel(property) { 4514 if (swiper.isHorizontal()) { 4515 return property; 4516 } 4517 // prettier-ignore 4518 return { 4519 'width': 'height', 4520 'margin-top': 'margin-left', 4521 'margin-bottom ': 'margin-right', 4522 'margin-left': 'margin-top', 4523 'margin-right': 'margin-bottom', 4524 'padding-left': 'padding-top', 4525 'padding-right': 'padding-bottom', 4526 'marginRight': 'marginBottom' 4527 }[property]; 4528 } 4529 function getDirectionPropertyValue(node, label) { 4530 return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0); 4531 } 4532 const params = swiper.params; 4533 const { 4534 wrapperEl, 4535 slidesEl, 4536 size: swiperSize, 4537 rtlTranslate: rtl, 4538 wrongRTL 4539 } = swiper; 4540 const isVirtual = swiper.virtual && params.virtual.enabled; 4541 const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; 4542 const slides = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementChildren)(slidesEl, `.${swiper.params.slideClass}, swiper-slide`); 4543 const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; 4544 let snapGrid = []; 4545 const slidesGrid = []; 4546 const slidesSizesGrid = []; 4547 let offsetBefore = params.slidesOffsetBefore; 4548 if (typeof offsetBefore === 'function') { 4549 offsetBefore = params.slidesOffsetBefore.call(swiper); 4550 } 4551 let offsetAfter = params.slidesOffsetAfter; 4552 if (typeof offsetAfter === 'function') { 4553 offsetAfter = params.slidesOffsetAfter.call(swiper); 4554 } 4555 const previousSnapGridLength = swiper.snapGrid.length; 4556 const previousSlidesGridLength = swiper.slidesGrid.length; 4557 let spaceBetween = params.spaceBetween; 4558 let slidePosition = -offsetBefore; 4559 let prevSlideSize = 0; 4560 let index = 0; 4561 if (typeof swiperSize === 'undefined') { 4562 return; 4563 } 4564 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 4565 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize; 4566 } else if (typeof spaceBetween === 'string') { 4567 spaceBetween = parseFloat(spaceBetween); 4568 } 4569 swiper.virtualSize = -spaceBetween; 4570 4571 // reset margins 4572 slides.forEach(slideEl => { 4573 if (rtl) { 4574 slideEl.style.marginLeft = ''; 4575 } else { 4576 slideEl.style.marginRight = ''; 4577 } 4578 slideEl.style.marginBottom = ''; 4579 slideEl.style.marginTop = ''; 4580 }); 4581 4582 // reset cssMode offsets 4583 if (params.centeredSlides && params.cssMode) { 4584 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(wrapperEl, '--swiper-centered-offset-before', ''); 4585 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(wrapperEl, '--swiper-centered-offset-after', ''); 4586 } 4587 const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid; 4588 if (gridEnabled) { 4589 swiper.grid.initSlides(slidesLength); 4590 } 4591 4592 // Calc slides 4593 let slideSize; 4594 const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => { 4595 return typeof params.breakpoints[key].slidesPerView !== 'undefined'; 4596 }).length > 0; 4597 for (let i = 0; i < slidesLength; i += 1) { 4598 slideSize = 0; 4599 let slide; 4600 if (slides[i]) slide = slides[i]; 4601 if (gridEnabled) { 4602 swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel); 4603 } 4604 if (slides[i] && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementStyle)(slide, 'display') === 'none') continue; // eslint-disable-line 4605 4606 if (params.slidesPerView === 'auto') { 4607 if (shouldResetSlideSize) { 4608 slides[i].style[getDirectionLabel('width')] = ``; 4609 } 4610 const slideStyles = getComputedStyle(slide); 4611 const currentTransform = slide.style.transform; 4612 const currentWebKitTransform = slide.style.webkitTransform; 4613 if (currentTransform) { 4614 slide.style.transform = 'none'; 4615 } 4616 if (currentWebKitTransform) { 4617 slide.style.webkitTransform = 'none'; 4618 } 4619 if (params.roundLengths) { 4620 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); 4621 } else { 4622 // eslint-disable-next-line 4623 const width = getDirectionPropertyValue(slideStyles, 'width'); 4624 const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left'); 4625 const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right'); 4626 const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left'); 4627 const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right'); 4628 const boxSizing = slideStyles.getPropertyValue('box-sizing'); 4629 if (boxSizing && boxSizing === 'border-box') { 4630 slideSize = width + marginLeft + marginRight; 4631 } else { 4632 const { 4633 clientWidth, 4634 offsetWidth 4635 } = slide; 4636 slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth); 4637 } 4638 } 4639 if (currentTransform) { 4640 slide.style.transform = currentTransform; 4641 } 4642 if (currentWebKitTransform) { 4643 slide.style.webkitTransform = currentWebKitTransform; 4644 } 4645 if (params.roundLengths) slideSize = Math.floor(slideSize); 4646 } else { 4647 slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView; 4648 if (params.roundLengths) slideSize = Math.floor(slideSize); 4649 if (slides[i]) { 4650 slides[i].style[getDirectionLabel('width')] = `${slideSize}px`; 4651 } 4652 } 4653 if (slides[i]) { 4654 slides[i].swiperSlideSize = slideSize; 4655 } 4656 slidesSizesGrid.push(slideSize); 4657 if (params.centeredSlides) { 4658 slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween; 4659 if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 4660 if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 4661 if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; 4662 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 4663 if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition); 4664 slidesGrid.push(slidePosition); 4665 } else { 4666 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 4667 if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition); 4668 slidesGrid.push(slidePosition); 4669 slidePosition = slidePosition + slideSize + spaceBetween; 4670 } 4671 swiper.virtualSize += slideSize + spaceBetween; 4672 prevSlideSize = slideSize; 4673 index += 1; 4674 } 4675 swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; 4676 if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { 4677 wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`; 4678 } 4679 if (params.setWrapperSize) { 4680 wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; 4681 } 4682 if (gridEnabled) { 4683 swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel); 4684 } 4685 4686 // Remove last grid elements depending on width 4687 if (!params.centeredSlides) { 4688 const newSlidesGrid = []; 4689 for (let i = 0; i < snapGrid.length; i += 1) { 4690 let slidesGridItem = snapGrid[i]; 4691 if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem); 4692 if (snapGrid[i] <= swiper.virtualSize - swiperSize) { 4693 newSlidesGrid.push(slidesGridItem); 4694 } 4695 } 4696 snapGrid = newSlidesGrid; 4697 if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { 4698 snapGrid.push(swiper.virtualSize - swiperSize); 4699 } 4700 } 4701 if (isVirtual && params.loop) { 4702 const size = slidesSizesGrid[0] + spaceBetween; 4703 if (params.slidesPerGroup > 1) { 4704 const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup); 4705 const groupSize = size * params.slidesPerGroup; 4706 for (let i = 0; i < groups; i += 1) { 4707 snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize); 4708 } 4709 } 4710 for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) { 4711 if (params.slidesPerGroup === 1) { 4712 snapGrid.push(snapGrid[snapGrid.length - 1] + size); 4713 } 4714 slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size); 4715 swiper.virtualSize += size; 4716 } 4717 } 4718 if (snapGrid.length === 0) snapGrid = [0]; 4719 if (spaceBetween !== 0) { 4720 const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight'); 4721 slides.filter((_, slideIndex) => { 4722 if (!params.cssMode || params.loop) return true; 4723 if (slideIndex === slides.length - 1) { 4724 return false; 4725 } 4726 return true; 4727 }).forEach(slideEl => { 4728 slideEl.style[key] = `${spaceBetween}px`; 4729 }); 4730 } 4731 if (params.centeredSlides && params.centeredSlidesBounds) { 4732 let allSlidesSize = 0; 4733 slidesSizesGrid.forEach(slideSizeValue => { 4734 allSlidesSize += slideSizeValue + (spaceBetween || 0); 4735 }); 4736 allSlidesSize -= spaceBetween; 4737 const maxSnap = allSlidesSize - swiperSize; 4738 snapGrid = snapGrid.map(snap => { 4739 if (snap <= 0) return -offsetBefore; 4740 if (snap > maxSnap) return maxSnap + offsetAfter; 4741 return snap; 4742 }); 4743 } 4744 if (params.centerInsufficientSlides) { 4745 let allSlidesSize = 0; 4746 slidesSizesGrid.forEach(slideSizeValue => { 4747 allSlidesSize += slideSizeValue + (spaceBetween || 0); 4748 }); 4749 allSlidesSize -= spaceBetween; 4750 if (allSlidesSize < swiperSize) { 4751 const allSlidesOffset = (swiperSize - allSlidesSize) / 2; 4752 snapGrid.forEach((snap, snapIndex) => { 4753 snapGrid[snapIndex] = snap - allSlidesOffset; 4754 }); 4755 slidesGrid.forEach((snap, snapIndex) => { 4756 slidesGrid[snapIndex] = snap + allSlidesOffset; 4757 }); 4758 } 4759 } 4760 Object.assign(swiper, { 4761 slides, 4762 snapGrid, 4763 slidesGrid, 4764 slidesSizesGrid 4765 }); 4766 if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) { 4767 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`); 4768 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`); 4769 const addToSnapGrid = -swiper.snapGrid[0]; 4770 const addToSlidesGrid = -swiper.slidesGrid[0]; 4771 swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid); 4772 swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid); 4773 } 4774 if (slidesLength !== previousSlidesLength) { 4775 swiper.emit('slidesLengthChange'); 4776 } 4777 if (snapGrid.length !== previousSnapGridLength) { 4778 if (swiper.params.watchOverflow) swiper.checkOverflow(); 4779 swiper.emit('snapGridLengthChange'); 4780 } 4781 if (slidesGrid.length !== previousSlidesGridLength) { 4782 swiper.emit('slidesGridLengthChange'); 4783 } 4784 if (params.watchSlidesProgress) { 4785 swiper.updateSlidesOffset(); 4786 } 4787 if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) { 4788 const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`; 4789 const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass); 4790 if (slidesLength <= params.maxBackfaceHiddenSlides) { 4791 if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass); 4792 } else if (hasClassBackfaceClassAdded) { 4793 swiper.el.classList.remove(backFaceHiddenClass); 4794 } 4795 } 4796} 4797 4798/***/ }), 4799
vendor: 2,656 bytes, lines 4800-4865
4800/***/ "../../node_modules/swiper/core/update/updateSlidesClasses.js": 4801/*!********************************************************************!*\ 4802 !*** ../../node_modules/swiper/core/update/updateSlidesClasses.js ***! 4803 \********************************************************************/ 4804/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4805 4806__webpack_require__.r(__webpack_exports__); 4807/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4808/* harmony export */ "default": function() { return /* binding */ updateSlidesClasses; } 4809/* harmony export */ }); 4810/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 4811 4812function updateSlidesClasses() { 4813 const swiper = this; 4814 const { 4815 slides, 4816 params, 4817 slidesEl, 4818 activeIndex 4819 } = swiper; 4820 const isVirtual = swiper.virtual && params.virtual.enabled; 4821 const getFilteredSlide = selector => { 4822 return (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementChildren)(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0]; 4823 }; 4824 slides.forEach(slideEl => { 4825 slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass); 4826 }); 4827 let activeSlide; 4828 if (isVirtual) { 4829 if (params.loop) { 4830 let slideIndex = activeIndex - swiper.virtual.slidesBefore; 4831 if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex; 4832 if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length; 4833 activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`); 4834 } else { 4835 activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`); 4836 } 4837 } else { 4838 activeSlide = slides[activeIndex]; 4839 } 4840 if (activeSlide) { 4841 // Active classes 4842 activeSlide.classList.add(params.slideActiveClass); 4843 4844 // Next Slide 4845 let nextSlide = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementNextAll)(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; 4846 if (params.loop && !nextSlide) { 4847 nextSlide = slides[0]; 4848 } 4849 if (nextSlide) { 4850 nextSlide.classList.add(params.slideNextClass); 4851 } 4852 // Prev Slide 4853 let prevSlide = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementPrevAll)(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; 4854 if (params.loop && !prevSlide === 0) { 4855 prevSlide = slides[slides.length - 1]; 4856 } 4857 if (prevSlide) { 4858 prevSlide.classList.add(params.slidePrevClass); 4859 } 4860 } 4861 swiper.emitSlidesClasses(); 4862} 4863 4864/***/ }), 4865
vendor: 1,070 bytes, lines 4866-4887
4866/***/ "../../node_modules/swiper/core/update/updateSlidesOffset.js": 4867/*!*******************************************************************!*\ 4868 !*** ../../node_modules/swiper/core/update/updateSlidesOffset.js ***! 4869 \*******************************************************************/ 4870/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4871 4872__webpack_require__.r(__webpack_exports__); 4873/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4874/* harmony export */ "default": function() { return /* binding */ updateSlidesOffset; } 4875/* harmony export */ }); 4876function updateSlidesOffset() { 4877 const swiper = this; 4878 const slides = swiper.slides; 4879 // eslint-disable-next-line 4880 const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0; 4881 for (let i = 0; i < slides.length; i += 1) { 4882 slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment(); 4883 } 4884} 4885 4886/***/ }), 4887
vendor: 2,657 bytes, lines 4888-4945
4888/***/ "../../node_modules/swiper/core/update/updateSlidesProgress.js": 4889/*!*********************************************************************!*\ 4890 !*** ../../node_modules/swiper/core/update/updateSlidesProgress.js ***! 4891 \*********************************************************************/ 4892/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4893 4894__webpack_require__.r(__webpack_exports__); 4895/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4896/* harmony export */ "default": function() { return /* binding */ updateSlidesProgress; } 4897/* harmony export */ }); 4898function updateSlidesProgress(translate = this && this.translate || 0) { 4899 const swiper = this; 4900 const params = swiper.params; 4901 const { 4902 slides, 4903 rtlTranslate: rtl, 4904 snapGrid 4905 } = swiper; 4906 if (slides.length === 0) return; 4907 if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); 4908 let offsetCenter = -translate; 4909 if (rtl) offsetCenter = translate; 4910 4911 // Visible Slides 4912 slides.forEach(slideEl => { 4913 slideEl.classList.remove(params.slideVisibleClass); 4914 }); 4915 swiper.visibleSlidesIndexes = []; 4916 swiper.visibleSlides = []; 4917 let spaceBetween = params.spaceBetween; 4918 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 4919 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; 4920 } else if (typeof spaceBetween === 'string') { 4921 spaceBetween = parseFloat(spaceBetween); 4922 } 4923 for (let i = 0; i < slides.length; i += 1) { 4924 const slide = slides[i]; 4925 let slideOffset = slide.swiperSlideOffset; 4926 if (params.cssMode && params.centeredSlides) { 4927 slideOffset -= slides[0].swiperSlideOffset; 4928 } 4929 const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); 4930 const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); 4931 const slideBefore = -(offsetCenter - slideOffset); 4932 const slideAfter = slideBefore + swiper.slidesSizesGrid[i]; 4933 const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size; 4934 if (isVisible) { 4935 swiper.visibleSlides.push(slide); 4936 swiper.visibleSlidesIndexes.push(i); 4937 slides[i].classList.add(params.slideVisibleClass); 4938 } 4939 slide.progress = rtl ? -slideProgress : slideProgress; 4940 slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress; 4941 } 4942} 4943 4944/***/ }), 4945
vendor: 12,054 bytes, lines 4946-5303
4946/***/ "../../node_modules/swiper/modules/a11y/a11y.js": 4947/*!******************************************************!*\ 4948 !*** ../../node_modules/swiper/modules/a11y/a11y.js ***! 4949 \******************************************************/ 4950/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 4951 4952__webpack_require__.r(__webpack_exports__); 4953/* harmony export */ __webpack_require__.d(__webpack_exports__, { 4954/* harmony export */ "default": function() { return /* binding */ A11y; } 4955/* harmony export */ }); 4956/* 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"); 4957/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 4958 4959 4960function A11y({ 4961 swiper, 4962 extendParams, 4963 on 4964}) { 4965 extendParams({ 4966 a11y: { 4967 enabled: true, 4968 notificationClass: 'swiper-notification', 4969 prevSlideMessage: 'Previous slide', 4970 nextSlideMessage: 'Next slide', 4971 firstSlideMessage: 'This is the first slide', 4972 lastSlideMessage: 'This is the last slide', 4973 paginationBulletMessage: 'Go to slide {{index}}', 4974 slideLabelMessage: '{{index}} / {{slidesLength}}', 4975 containerMessage: null, 4976 containerRoleDescriptionMessage: null, 4977 itemRoleDescriptionMessage: null, 4978 slideRole: 'group', 4979 id: null 4980 } 4981 }); 4982 swiper.a11y = { 4983 clicked: false 4984 }; 4985 let liveRegion = null; 4986 function notify(message) { 4987 const notification = liveRegion; 4988 if (notification.length === 0) return; 4989 notification.innerHTML = ''; 4990 notification.innerHTML = message; 4991 } 4992 const makeElementsArray = el => { 4993 if (!Array.isArray(el)) el = [el].filter(e => !!e); 4994 return el; 4995 }; 4996 function getRandomNumber(size = 16) { 4997 const randomChar = () => Math.round(16 * Math.random()).toString(16); 4998 return 'x'.repeat(size).replace(/x/g, randomChar); 4999 } 5000 function makeElFocusable(el) { 5001 el = makeElementsArray(el); 5002 el.forEach(subEl => { 5003 subEl.setAttribute('tabIndex', '0'); 5004 }); 5005 } 5006 function makeElNotFocusable(el) { 5007 el = makeElementsArray(el); 5008 el.forEach(subEl => { 5009 subEl.setAttribute('tabIndex', '-1'); 5010 }); 5011 } 5012 function addElRole(el, role) { 5013 el = makeElementsArray(el); 5014 el.forEach(subEl => { 5015 subEl.setAttribute('role', role); 5016 }); 5017 } 5018 function addElRoleDescription(el, description) { 5019 el = makeElementsArray(el); 5020 el.forEach(subEl => { 5021 subEl.setAttribute('aria-roledescription', description); 5022 }); 5023 } 5024 function addElControls(el, controls) { 5025 el = makeElementsArray(el); 5026 el.forEach(subEl => { 5027 subEl.setAttribute('aria-controls', controls); 5028 }); 5029 } 5030 function addElLabel(el, label) { 5031 el = makeElementsArray(el); 5032 el.forEach(subEl => { 5033 subEl.setAttribute('aria-label', label); 5034 }); 5035 } 5036 function addElId(el, id) { 5037 el = makeElementsArray(el); 5038 el.forEach(subEl => { 5039 subEl.setAttribute('id', id); 5040 }); 5041 } 5042 function addElLive(el, live) { 5043 el = makeElementsArray(el); 5044 el.forEach(subEl => { 5045 subEl.setAttribute('aria-live', live); 5046 }); 5047 } 5048 function disableEl(el) { 5049 el = makeElementsArray(el); 5050 el.forEach(subEl => { 5051 subEl.setAttribute('aria-disabled', true); 5052 }); 5053 } 5054 function enableEl(el) { 5055 el = makeElementsArray(el); 5056 el.forEach(subEl => { 5057 subEl.setAttribute('aria-disabled', false); 5058 }); 5059 } 5060 function onEnterOrSpaceKey(e) { 5061 if (e.keyCode !== 13 && e.keyCode !== 32) return; 5062 const params = swiper.params.a11y; 5063 const targetEl = e.target; 5064 if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) { 5065 if (!e.target.matches((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass))) return; 5066 } 5067 if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) { 5068 if (!(swiper.isEnd && !swiper.params.loop)) { 5069 swiper.slideNext(); 5070 } 5071 if (swiper.isEnd) { 5072 notify(params.lastSlideMessage); 5073 } else { 5074 notify(params.nextSlideMessage); 5075 } 5076 } 5077 if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) { 5078 if (!(swiper.isBeginning && !swiper.params.loop)) { 5079 swiper.slidePrev(); 5080 } 5081 if (swiper.isBeginning) { 5082 notify(params.firstSlideMessage); 5083 } else { 5084 notify(params.prevSlideMessage); 5085 } 5086 } 5087 if (swiper.pagination && targetEl.matches((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass))) { 5088 targetEl.click(); 5089 } 5090 } 5091 function updateNavigation() { 5092 if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return; 5093 const { 5094 nextEl, 5095 prevEl 5096 } = swiper.navigation; 5097 if (prevEl) { 5098 if (swiper.isBeginning) { 5099 disableEl(prevEl); 5100 makeElNotFocusable(prevEl); 5101 } else { 5102 enableEl(prevEl); 5103 makeElFocusable(prevEl); 5104 } 5105 } 5106 if (nextEl) { 5107 if (swiper.isEnd) { 5108 disableEl(nextEl); 5109 makeElNotFocusable(nextEl); 5110 } else { 5111 enableEl(nextEl); 5112 makeElFocusable(nextEl); 5113 } 5114 } 5115 } 5116 function hasPagination() { 5117 return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length; 5118 } 5119 function hasClickablePagination() { 5120 return hasPagination() && swiper.params.pagination.clickable; 5121 } 5122 function updatePagination() { 5123 const params = swiper.params.a11y; 5124 if (!hasPagination()) return; 5125 swiper.pagination.bullets.forEach(bulletEl => { 5126 if (swiper.params.pagination.clickable) { 5127 makeElFocusable(bulletEl); 5128 if (!swiper.params.pagination.renderBullet) { 5129 addElRole(bulletEl, 'button'); 5130 addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementIndex)(bulletEl) + 1)); 5131 } 5132 } 5133 if (bulletEl.matches((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletActiveClass))) { 5134 bulletEl.setAttribute('aria-current', 'true'); 5135 } else { 5136 bulletEl.removeAttribute('aria-current'); 5137 } 5138 }); 5139 } 5140 const initNavEl = (el, wrapperId, message) => { 5141 makeElFocusable(el); 5142 if (el.tagName !== 'BUTTON') { 5143 addElRole(el, 'button'); 5144 el.addEventListener('keydown', onEnterOrSpaceKey); 5145 } 5146 addElLabel(el, message); 5147 addElControls(el, wrapperId); 5148 }; 5149 const handlePointerDown = () => { 5150 swiper.a11y.clicked = true; 5151 }; 5152 const handlePointerUp = () => { 5153 requestAnimationFrame(() => { 5154 requestAnimationFrame(() => { 5155 if (!swiper.destroyed) { 5156 swiper.a11y.clicked = false; 5157 } 5158 }); 5159 }); 5160 }; 5161 const handleFocus = e => { 5162 if (swiper.a11y.clicked) return; 5163 const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); 5164 if (!slideEl || !swiper.slides.includes(slideEl)) return; 5165 const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex; 5166 const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl); 5167 if (isActive || isVisible) return; 5168 if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return; 5169 if (swiper.isHorizontal()) { 5170 swiper.el.scrollLeft = 0; 5171 } else { 5172 swiper.el.scrollTop = 0; 5173 } 5174 swiper.slideTo(swiper.slides.indexOf(slideEl), 0); 5175 }; 5176 const initSlides = () => { 5177 const params = swiper.params.a11y; 5178 if (params.itemRoleDescriptionMessage) { 5179 addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage); 5180 } 5181 if (params.slideRole) { 5182 addElRole(swiper.slides, params.slideRole); 5183 } 5184 const slidesLength = swiper.slides.length; 5185 if (params.slideLabelMessage) { 5186 swiper.slides.forEach((slideEl, index) => { 5187 const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index; 5188 const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength); 5189 addElLabel(slideEl, ariaLabelMessage); 5190 }); 5191 } 5192 }; 5193 const init = () => { 5194 const params = swiper.params.a11y; 5195 if (swiper.isElement) { 5196 swiper.el.shadowEl.append(liveRegion); 5197 } else { 5198 swiper.el.append(liveRegion); 5199 } 5200 5201 // Container 5202 const containerEl = swiper.el; 5203 if (params.containerRoleDescriptionMessage) { 5204 addElRoleDescription(containerEl, params.containerRoleDescriptionMessage); 5205 } 5206 if (params.containerMessage) { 5207 addElLabel(containerEl, params.containerMessage); 5208 } 5209 5210 // Wrapper 5211 const wrapperEl = swiper.wrapperEl; 5212 const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`; 5213 const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite'; 5214 addElId(wrapperEl, wrapperId); 5215 addElLive(wrapperEl, live); 5216 5217 // Slide 5218 initSlides(); 5219 5220 // Navigation 5221 let { 5222 nextEl, 5223 prevEl 5224 } = swiper.navigation ? swiper.navigation : {}; 5225 nextEl = makeElementsArray(nextEl); 5226 prevEl = makeElementsArray(prevEl); 5227 if (nextEl) { 5228 nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage)); 5229 } 5230 if (prevEl) { 5231 prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage)); 5232 } 5233 5234 // Pagination 5235 if (hasClickablePagination()) { 5236 const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el]; 5237 paginationEl.forEach(el => { 5238 el.addEventListener('keydown', onEnterOrSpaceKey); 5239 }); 5240 } 5241 5242 // Tab focus 5243 swiper.el.addEventListener('focus', handleFocus, true); 5244 swiper.el.addEventListener('pointerdown', handlePointerDown, true); 5245 swiper.el.addEventListener('pointerup', handlePointerUp, true); 5246 }; 5247 function destroy() { 5248 if (liveRegion) liveRegion.remove(); 5249 let { 5250 nextEl, 5251 prevEl 5252 } = swiper.navigation ? swiper.navigation : {}; 5253 nextEl = makeElementsArray(nextEl); 5254 prevEl = makeElementsArray(prevEl); 5255 if (nextEl) { 5256 nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); 5257 } 5258 if (prevEl) { 5259 prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); 5260 } 5261 5262 // Pagination 5263 if (hasClickablePagination()) { 5264 const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el]; 5265 paginationEl.forEach(el => { 5266 el.removeEventListener('keydown', onEnterOrSpaceKey); 5267 }); 5268 } 5269 5270 // Tab focus 5271 swiper.el.removeEventListener('focus', handleFocus, true); 5272 swiper.el.removeEventListener('pointerdown', handlePointerDown, true); 5273 swiper.el.removeEventListener('pointerup', handlePointerUp, true); 5274 } 5275 on('beforeInit', () => { 5276 liveRegion = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('span', swiper.params.a11y.notificationClass); 5277 liveRegion.setAttribute('aria-live', 'assertive'); 5278 liveRegion.setAttribute('aria-atomic', 'true'); 5279 }); 5280 on('afterInit', () => { 5281 if (!swiper.params.a11y.enabled) return; 5282 init(); 5283 }); 5284 on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => { 5285 if (!swiper.params.a11y.enabled) return; 5286 initSlides(); 5287 }); 5288 on('fromEdge toEdge afterInit lock unlock', () => { 5289 if (!swiper.params.a11y.enabled) return; 5290 updateNavigation(); 5291 }); 5292 on('paginationUpdate', () => { 5293 if (!swiper.params.a11y.enabled) return; 5294 updatePagination(); 5295 }); 5296 on('destroy', () => { 5297 if (!swiper.params.a11y.enabled) return; 5298 destroy(); 5299 }); 5300} 5301 5302/***/ }), 5303
vendor: 9,424 bytes, lines 5304-5596
5304/***/ "../../node_modules/swiper/modules/autoplay/autoplay.js": 5305/*!**************************************************************!*\ 5306 !*** ../../node_modules/swiper/modules/autoplay/autoplay.js ***! 5307 \**************************************************************/ 5308/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 5309 5310__webpack_require__.r(__webpack_exports__); 5311/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5312/* harmony export */ "default": function() { return /* binding */ Autoplay; } 5313/* harmony export */ }); 5314/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 5315/* eslint no-underscore-dangle: "off" */ 5316/* eslint no-use-before-define: "off" */ 5317 5318function Autoplay({ 5319 swiper, 5320 extendParams, 5321 on, 5322 emit, 5323 params 5324}) { 5325 swiper.autoplay = { 5326 running: false, 5327 paused: false, 5328 timeLeft: 0 5329 }; 5330 extendParams({ 5331 autoplay: { 5332 enabled: false, 5333 delay: 3000, 5334 waitForTransition: true, 5335 disableOnInteraction: true, 5336 stopOnLastSlide: false, 5337 reverseDirection: false, 5338 pauseOnMouseEnter: false 5339 } 5340 }); 5341 let timeout; 5342 let raf; 5343 let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000; 5344 let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000; 5345 let autoplayTimeLeft; 5346 let autoplayStartTime = new Date().getTime; 5347 let wasPaused; 5348 let isTouched; 5349 let pausedByTouch; 5350 let touchStartTimeout; 5351 let slideChanged; 5352 let pausedByInteraction; 5353 function onTransitionEnd(e) { 5354 if (!swiper || swiper.destroyed || !swiper.wrapperEl) return; 5355 if (e.target !== swiper.wrapperEl) return; 5356 swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd); 5357 resume(); 5358 } 5359 const calcTimeLeft = () => { 5360 if (swiper.destroyed || !swiper.autoplay.running) return; 5361 if (swiper.autoplay.paused) { 5362 wasPaused = true; 5363 } else if (wasPaused) { 5364 autoplayDelayCurrent = autoplayTimeLeft; 5365 wasPaused = false; 5366 } 5367 const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime(); 5368 swiper.autoplay.timeLeft = timeLeft; 5369 emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal); 5370 raf = requestAnimationFrame(() => { 5371 calcTimeLeft(); 5372 }); 5373 }; 5374 const getSlideDelay = () => { 5375 let activeSlideEl; 5376 if (swiper.virtual && swiper.params.virtual.enabled) { 5377 activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0]; 5378 } else { 5379 activeSlideEl = swiper.slides[swiper.activeIndex]; 5380 } 5381 if (!activeSlideEl) return undefined; 5382 const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10); 5383 return currentSlideDelay; 5384 }; 5385 const run = delayForce => { 5386 if (swiper.destroyed || !swiper.autoplay.running) return; 5387 cancelAnimationFrame(raf); 5388 calcTimeLeft(); 5389 let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce; 5390 autoplayDelayTotal = swiper.params.autoplay.delay; 5391 autoplayDelayCurrent = swiper.params.autoplay.delay; 5392 const currentSlideDelay = getSlideDelay(); 5393 if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') { 5394 delay = currentSlideDelay; 5395 autoplayDelayTotal = currentSlideDelay; 5396 autoplayDelayCurrent = currentSlideDelay; 5397 } 5398 autoplayTimeLeft = delay; 5399 const speed = swiper.params.speed; 5400 const proceed = () => { 5401 if (!swiper || swiper.destroyed) return; 5402 if (swiper.params.autoplay.reverseDirection) { 5403 if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) { 5404 swiper.slidePrev(speed, true, true); 5405 emit('autoplay'); 5406 } else if (!swiper.params.autoplay.stopOnLastSlide) { 5407 swiper.slideTo(swiper.slides.length - 1, speed, true, true); 5408 emit('autoplay'); 5409 } 5410 } else { 5411 if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) { 5412 swiper.slideNext(speed, true, true); 5413 emit('autoplay'); 5414 } else if (!swiper.params.autoplay.stopOnLastSlide) { 5415 swiper.slideTo(0, speed, true, true); 5416 emit('autoplay'); 5417 } 5418 } 5419 if (swiper.params.cssMode) { 5420 autoplayStartTime = new Date().getTime(); 5421 requestAnimationFrame(() => { 5422 run(); 5423 }); 5424 } 5425 }; 5426 if (delay > 0) { 5427 clearTimeout(timeout); 5428 timeout = setTimeout(() => { 5429 proceed(); 5430 }, delay); 5431 } else { 5432 requestAnimationFrame(() => { 5433 proceed(); 5434 }); 5435 } 5436 5437 // eslint-disable-next-line 5438 return delay; 5439 }; 5440 const start = () => { 5441 swiper.autoplay.running = true; 5442 run(); 5443 emit('autoplayStart'); 5444 }; 5445 const stop = () => { 5446 swiper.autoplay.running = false; 5447 clearTimeout(timeout); 5448 cancelAnimationFrame(raf); 5449 emit('autoplayStop'); 5450 }; 5451 const pause = (internal, reset) => { 5452 if (swiper.destroyed || !swiper.autoplay.running) return; 5453 clearTimeout(timeout); 5454 if (!internal) { 5455 pausedByInteraction = true; 5456 } 5457 const proceed = () => { 5458 emit('autoplayPause'); 5459 if (swiper.params.autoplay.waitForTransition) { 5460 swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd); 5461 } else { 5462 resume(); 5463 } 5464 }; 5465 swiper.autoplay.paused = true; 5466 if (reset) { 5467 if (slideChanged) { 5468 autoplayTimeLeft = swiper.params.autoplay.delay; 5469 } 5470 slideChanged = false; 5471 proceed(); 5472 return; 5473 } 5474 const delay = autoplayTimeLeft || swiper.params.autoplay.delay; 5475 autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime); 5476 if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return; 5477 if (autoplayTimeLeft < 0) autoplayTimeLeft = 0; 5478 proceed(); 5479 }; 5480 const resume = () => { 5481 if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return; 5482 autoplayStartTime = new Date().getTime(); 5483 if (pausedByInteraction) { 5484 pausedByInteraction = false; 5485 run(autoplayTimeLeft); 5486 } else { 5487 run(); 5488 } 5489 swiper.autoplay.paused = false; 5490 emit('autoplayResume'); 5491 }; 5492 const onVisibilityChange = () => { 5493 if (swiper.destroyed || !swiper.autoplay.running) return; 5494 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 5495 if (document.visibilityState === 'hidden') { 5496 pausedByInteraction = true; 5497 pause(true); 5498 } 5499 if (document.visibilityState === 'visible') { 5500 resume(); 5501 } 5502 }; 5503 const onPointerEnter = e => { 5504 if (e.pointerType !== 'mouse') return; 5505 pausedByInteraction = true; 5506 pause(true); 5507 }; 5508 const onPointerLeave = e => { 5509 if (e.pointerType !== 'mouse') return; 5510 if (swiper.autoplay.paused) { 5511 resume(); 5512 } 5513 }; 5514 const attachMouseEvents = () => { 5515 if (swiper.params.autoplay.pauseOnMouseEnter) { 5516 swiper.el.addEventListener('pointerenter', onPointerEnter); 5517 swiper.el.addEventListener('pointerleave', onPointerLeave); 5518 } 5519 }; 5520 const detachMouseEvents = () => { 5521 swiper.el.removeEventListener('pointerenter', onPointerEnter); 5522 swiper.el.removeEventListener('pointerleave', onPointerLeave); 5523 }; 5524 const attachDocumentEvents = () => { 5525 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 5526 document.addEventListener('visibilitychange', onVisibilityChange); 5527 }; 5528 const detachDocumentEvents = () => { 5529 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 5530 document.removeEventListener('visibilitychange', onVisibilityChange); 5531 }; 5532 on('init', () => { 5533 if (swiper.params.autoplay.enabled) { 5534 attachMouseEvents(); 5535 attachDocumentEvents(); 5536 autoplayStartTime = new Date().getTime(); 5537 start(); 5538 } 5539 }); 5540 on('destroy', () => { 5541 detachMouseEvents(); 5542 detachDocumentEvents(); 5543 if (swiper.autoplay.running) { 5544 stop(); 5545 } 5546 }); 5547 on('beforeTransitionStart', (_s, speed, internal) => { 5548 if (swiper.destroyed || !swiper.autoplay.running) return; 5549 if (internal || !swiper.params.autoplay.disableOnInteraction) { 5550 pause(true, true); 5551 } else { 5552 stop(); 5553 } 5554 }); 5555 on('sliderFirstMove', () => { 5556 if (swiper.destroyed || !swiper.autoplay.running) return; 5557 if (swiper.params.autoplay.disableOnInteraction) { 5558 stop(); 5559 return; 5560 } 5561 isTouched = true; 5562 pausedByTouch = false; 5563 pausedByInteraction = false; 5564 touchStartTimeout = setTimeout(() => { 5565 pausedByInteraction = true; 5566 pausedByTouch = true; 5567 pause(true); 5568 }, 200); 5569 }); 5570 on('touchEnd', () => { 5571 if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return; 5572 clearTimeout(touchStartTimeout); 5573 clearTimeout(timeout); 5574 if (swiper.params.autoplay.disableOnInteraction) { 5575 pausedByTouch = false; 5576 isTouched = false; 5577 return; 5578 } 5579 if (pausedByTouch && swiper.params.cssMode) resume(); 5580 pausedByTouch = false; 5581 isTouched = false; 5582 }); 5583 on('slideChange', () => { 5584 if (swiper.destroyed || !swiper.autoplay.running) return; 5585 slideChanged = true; 5586 }); 5587 Object.assign(swiper.autoplay, { 5588 start, 5589 stop, 5590 pause, 5591 resume 5592 }); 5593} 5594 5595/***/ }), 5596
vendor: 7,240 bytes, lines 5597-5793
5597/***/ "../../node_modules/swiper/modules/controller/controller.js": 5598/*!******************************************************************!*\ 5599 !*** ../../node_modules/swiper/modules/controller/controller.js ***! 5600 \******************************************************************/ 5601/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 5602 5603__webpack_require__.r(__webpack_exports__); 5604/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5605/* harmony export */ "default": function() { return /* binding */ Controller; } 5606/* harmony export */ }); 5607/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 5608/* eslint no-bitwise: ["error", { "allow": [">>"] }] */ 5609 5610function Controller({ 5611 swiper, 5612 extendParams, 5613 on 5614}) { 5615 extendParams({ 5616 controller: { 5617 control: undefined, 5618 inverse: false, 5619 by: 'slide' // or 'container' 5620 } 5621 }); 5622 5623 swiper.controller = { 5624 control: undefined 5625 }; 5626 function LinearSpline(x, y) { 5627 const binarySearch = function search() { 5628 let maxIndex; 5629 let minIndex; 5630 let guess; 5631 return (array, val) => { 5632 minIndex = -1; 5633 maxIndex = array.length; 5634 while (maxIndex - minIndex > 1) { 5635 guess = maxIndex + minIndex >> 1; 5636 if (array[guess] <= val) { 5637 minIndex = guess; 5638 } else { 5639 maxIndex = guess; 5640 } 5641 } 5642 return maxIndex; 5643 }; 5644 }(); 5645 this.x = x; 5646 this.y = y; 5647 this.lastIndex = x.length - 1; 5648 // Given an x value (x2), return the expected y2 value: 5649 // (x1,y1) is the known point before given value, 5650 // (x3,y3) is the known point after given value. 5651 let i1; 5652 let i3; 5653 this.interpolate = function interpolate(x2) { 5654 if (!x2) return 0; 5655 5656 // Get the indexes of x1 and x3 (the array indexes before and after given x2): 5657 i3 = binarySearch(this.x, x2); 5658 i1 = i3 - 1; 5659 5660 // We have our indexes i1 & i3, so we can calculate already: 5661 // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1 5662 return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1]; 5663 }; 5664 return this; 5665 } 5666 function getInterpolateFunction(c) { 5667 swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid); 5668 } 5669 function setTranslate(_t, byController) { 5670 const controlled = swiper.controller.control; 5671 let multiplier; 5672 let controlledTranslate; 5673 const Swiper = swiper.constructor; 5674 function setControlledTranslate(c) { 5675 if (c.destroyed) return; 5676 5677 // this will create an Interpolate function based on the snapGrids 5678 // x is the Grid of the scrolled scroller and y will be the controlled scroller 5679 // it makes sense to create this only once and recall it for the interpolation 5680 // the function does a lot of value caching for performance 5681 const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate; 5682 if (swiper.params.controller.by === 'slide') { 5683 getInterpolateFunction(c); 5684 // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid 5685 // but it did not work out 5686 controlledTranslate = -swiper.controller.spline.interpolate(-translate); 5687 } 5688 if (!controlledTranslate || swiper.params.controller.by === 'container') { 5689 multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); 5690 if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) { 5691 multiplier = 1; 5692 } 5693 controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate(); 5694 } 5695 if (swiper.params.controller.inverse) { 5696 controlledTranslate = c.maxTranslate() - controlledTranslate; 5697 } 5698 c.updateProgress(controlledTranslate); 5699 c.setTranslate(controlledTranslate, swiper); 5700 c.updateActiveIndex(); 5701 c.updateSlidesClasses(); 5702 } 5703 if (Array.isArray(controlled)) { 5704 for (let i = 0; i < controlled.length; i += 1) { 5705 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 5706 setControlledTranslate(controlled[i]); 5707 } 5708 } 5709 } else if (controlled instanceof Swiper && byController !== controlled) { 5710 setControlledTranslate(controlled); 5711 } 5712 } 5713 function setTransition(duration, byController) { 5714 const Swiper = swiper.constructor; 5715 const controlled = swiper.controller.control; 5716 let i; 5717 function setControlledTransition(c) { 5718 if (c.destroyed) return; 5719 c.setTransition(duration, swiper); 5720 if (duration !== 0) { 5721 c.transitionStart(); 5722 if (c.params.autoHeight) { 5723 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => { 5724 c.updateAutoHeight(); 5725 }); 5726 } 5727 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementTransitionEnd)(c.wrapperEl, () => { 5728 if (!controlled) return; 5729 c.transitionEnd(); 5730 }); 5731 } 5732 } 5733 if (Array.isArray(controlled)) { 5734 for (i = 0; i < controlled.length; i += 1) { 5735 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 5736 setControlledTransition(controlled[i]); 5737 } 5738 } 5739 } else if (controlled instanceof Swiper && byController !== controlled) { 5740 setControlledTransition(controlled); 5741 } 5742 } 5743 function removeSpline() { 5744 if (!swiper.controller.control) return; 5745 if (swiper.controller.spline) { 5746 swiper.controller.spline = undefined; 5747 delete swiper.controller.spline; 5748 } 5749 } 5750 on('beforeInit', () => { 5751 if (typeof window !== 'undefined' && ( 5752 // eslint-disable-line 5753 typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) { 5754 const controlElement = document.querySelector(swiper.params.controller.control); 5755 if (controlElement && controlElement.swiper) { 5756 swiper.controller.control = controlElement.swiper; 5757 } else if (controlElement) { 5758 const onControllerSwiper = e => { 5759 swiper.controller.control = e.detail[0]; 5760 swiper.update(); 5761 controlElement.removeEventListener('init', onControllerSwiper); 5762 }; 5763 controlElement.addEventListener('init', onControllerSwiper); 5764 } 5765 return; 5766 } 5767 swiper.controller.control = swiper.params.controller.control; 5768 }); 5769 on('update', () => { 5770 removeSpline(); 5771 }); 5772 on('resize', () => { 5773 removeSpline(); 5774 }); 5775 on('observerUpdate', () => { 5776 removeSpline(); 5777 }); 5778 on('setTranslate', (_s, translate, byController) => { 5779 if (!swiper.controller.control || swiper.controller.control.destroyed) return; 5780 swiper.controller.setTranslate(translate, byController); 5781 }); 5782 on('setTransition', (_s, duration, byController) => { 5783 if (!swiper.controller.control || swiper.controller.control.destroyed) return; 5784 swiper.controller.setTransition(duration, byController); 5785 }); 5786 Object.assign(swiper.controller, { 5787 setTranslate, 5788 setTransition 5789 }); 5790} 5791 5792/***/ }), 5793
vendor: 6,017 bytes, lines 5794-5932
5794/***/ "../../node_modules/swiper/modules/effect-cards/effect-cards.js": 5795/*!**********************************************************************!*\ 5796 !*** ../../node_modules/swiper/modules/effect-cards/effect-cards.js ***! 5797 \**********************************************************************/ 5798/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 5799 5800__webpack_require__.r(__webpack_exports__); 5801/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5802/* harmony export */ "default": function() { return /* binding */ EffectCards; } 5803/* harmony export */ }); 5804/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "../../node_modules/swiper/shared/create-shadow.js"); 5805/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "../../node_modules/swiper/shared/effect-init.js"); 5806/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "../../node_modules/swiper/shared/effect-target.js"); 5807/* 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"); 5808/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 5809 5810 5811 5812 5813 5814function EffectCards({ 5815 swiper, 5816 extendParams, 5817 on 5818}) { 5819 extendParams({ 5820 cardsEffect: { 5821 slideShadows: true, 5822 rotate: true, 5823 perSlideRotate: 2, 5824 perSlideOffset: 8 5825 } 5826 }); 5827 const setTranslate = () => { 5828 const { 5829 slides, 5830 activeIndex, 5831 rtlTranslate: rtl 5832 } = swiper; 5833 const params = swiper.params.cardsEffect; 5834 const { 5835 startTranslate, 5836 isTouched 5837 } = swiper.touchEventsData; 5838 const currentTranslate = rtl ? -swiper.translate : swiper.translate; 5839 for (let i = 0; i < slides.length; i += 1) { 5840 const slideEl = slides[i]; 5841 const slideProgress = slideEl.progress; 5842 const progress = Math.min(Math.max(slideProgress, -4), 4); 5843 let offset = slideEl.swiperSlideOffset; 5844 if (swiper.params.centeredSlides && !swiper.params.cssMode) { 5845 swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`; 5846 } 5847 if (swiper.params.centeredSlides && swiper.params.cssMode) { 5848 offset -= slides[0].swiperSlideOffset; 5849 } 5850 let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset; 5851 let tY = 0; 5852 const tZ = -100 * Math.abs(progress); 5853 let scale = 1; 5854 let rotate = -params.perSlideRotate * progress; 5855 let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75; 5856 const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i; 5857 const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate; 5858 const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate; 5859 if (isSwipeToNext || isSwipeToPrev) { 5860 const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5; 5861 rotate += -28 * progress * subProgress; 5862 scale += -0.5 * subProgress; 5863 tXAdd += 96 * subProgress; 5864 tY = `${-25 * subProgress * Math.abs(progress)}%`; 5865 } 5866 if (progress < 0) { 5867 // next 5868 tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`; 5869 } else if (progress > 0) { 5870 // prev 5871 tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`; 5872 } else { 5873 tX = `${tX}px`; 5874 } 5875 if (!swiper.isHorizontal()) { 5876 const prevY = tY; 5877 tY = tX; 5878 tX = prevY; 5879 } 5880 const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`; 5881 5882 /* eslint-disable */ 5883 const transform = ` 5884 translate3d(${tX}, ${tY}, ${tZ}px) 5885 rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg) 5886 scale(${scaleString}) 5887 `; 5888 /* eslint-enable */ 5889 5890 if (params.slideShadows) { 5891 // Set shadows 5892 let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); 5893 if (!shadowEl) { 5894 shadowEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, slideEl); 5895 } 5896 if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1); 5897 } 5898 slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; 5899 const targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, slideEl); 5900 targetEl.style.transform = transform; 5901 } 5902 }; 5903 const setTransition = duration => { 5904 const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_4__.getSlideTransformEl)(slideEl)); 5905 transformElements.forEach(el => { 5906 el.style.transitionDuration = `${duration}ms`; 5907 el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { 5908 shadowEl.style.transitionDuration = `${duration}ms`; 5909 }); 5910 }); 5911 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__["default"])({ 5912 swiper, 5913 duration, 5914 transformElements 5915 }); 5916 }; 5917 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 5918 effect: 'cards', 5919 swiper, 5920 on, 5921 setTranslate, 5922 setTransition, 5923 perspective: () => true, 5924 overwriteParams: () => ({ 5925 watchSlidesProgress: true, 5926 virtualTranslate: !swiper.params.cssMode 5927 }) 5928 }); 5929} 5930 5931/***/ }), 5932
vendor: 5,722 bytes, lines 5933-6048
5933/***/ "../../node_modules/swiper/modules/effect-coverflow/effect-coverflow.js": 5934/*!******************************************************************************!*\ 5935 !*** ../../node_modules/swiper/modules/effect-coverflow/effect-coverflow.js ***! 5936 \******************************************************************************/ 5937/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 5938 5939__webpack_require__.r(__webpack_exports__); 5940/* harmony export */ __webpack_require__.d(__webpack_exports__, { 5941/* harmony export */ "default": function() { return /* binding */ EffectCoverflow; } 5942/* harmony export */ }); 5943/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "../../node_modules/swiper/shared/create-shadow.js"); 5944/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "../../node_modules/swiper/shared/effect-init.js"); 5945/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "../../node_modules/swiper/shared/effect-target.js"); 5946/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 5947 5948 5949 5950 5951function EffectCoverflow({ 5952 swiper, 5953 extendParams, 5954 on 5955}) { 5956 extendParams({ 5957 coverflowEffect: { 5958 rotate: 50, 5959 stretch: 0, 5960 depth: 100, 5961 scale: 1, 5962 modifier: 1, 5963 slideShadows: true 5964 } 5965 }); 5966 const setTranslate = () => { 5967 const { 5968 width: swiperWidth, 5969 height: swiperHeight, 5970 slides, 5971 slidesSizesGrid 5972 } = swiper; 5973 const params = swiper.params.coverflowEffect; 5974 const isHorizontal = swiper.isHorizontal(); 5975 const transform = swiper.translate; 5976 const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2; 5977 const rotate = isHorizontal ? params.rotate : -params.rotate; 5978 const translate = params.depth; 5979 // Each slide offset from center 5980 for (let i = 0, length = slides.length; i < length; i += 1) { 5981 const slideEl = slides[i]; 5982 const slideSize = slidesSizesGrid[i]; 5983 const slideOffset = slideEl.swiperSlideOffset; 5984 const centerOffset = (center - slideOffset - slideSize / 2) / slideSize; 5985 const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier; 5986 let rotateY = isHorizontal ? rotate * offsetMultiplier : 0; 5987 let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; 5988 // var rotateZ = 0 5989 let translateZ = -translate * Math.abs(offsetMultiplier); 5990 let stretch = params.stretch; 5991 // Allow percentage to make a relative stretch for responsive sliders 5992 if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) { 5993 stretch = parseFloat(params.stretch) / 100 * slideSize; 5994 } 5995 let translateY = isHorizontal ? 0 : stretch * offsetMultiplier; 5996 let translateX = isHorizontal ? stretch * offsetMultiplier : 0; 5997 let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); 5998 5999 // Fix for ultra small values 6000 if (Math.abs(translateX) < 0.001) translateX = 0; 6001 if (Math.abs(translateY) < 0.001) translateY = 0; 6002 if (Math.abs(translateZ) < 0.001) translateZ = 0; 6003 if (Math.abs(rotateY) < 0.001) rotateY = 0; 6004 if (Math.abs(rotateX) < 0.001) rotateX = 0; 6005 if (Math.abs(scale) < 0.001) scale = 0; 6006 const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`; 6007 const targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, slideEl); 6008 targetEl.style.transform = slideTransform; 6009 slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; 6010 if (params.slideShadows) { 6011 // Set shadows 6012 let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); 6013 let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); 6014 if (!shadowBeforeEl) { 6015 shadowBeforeEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, slideEl, isHorizontal ? 'left' : 'top'); 6016 } 6017 if (!shadowAfterEl) { 6018 shadowAfterEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, slideEl, isHorizontal ? 'right' : 'bottom'); 6019 } 6020 if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; 6021 if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0; 6022 } 6023 } 6024 }; 6025 const setTransition = duration => { 6026 const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_3__.getSlideTransformEl)(slideEl)); 6027 transformElements.forEach(el => { 6028 el.style.transitionDuration = `${duration}ms`; 6029 el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { 6030 shadowEl.style.transitionDuration = `${duration}ms`; 6031 }); 6032 }); 6033 }; 6034 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 6035 effect: 'coverflow', 6036 swiper, 6037 on, 6038 setTranslate, 6039 setTransition, 6040 perspective: () => true, 6041 overwriteParams: () => ({ 6042 watchSlidesProgress: true 6043 }) 6044 }); 6045} 6046 6047/***/ }), 6048
vendor: 6,439 bytes, lines 6049-6206
6049/***/ "../../node_modules/swiper/modules/effect-creative/effect-creative.js": 6050/*!****************************************************************************!*\ 6051 !*** ../../node_modules/swiper/modules/effect-creative/effect-creative.js ***! 6052 \****************************************************************************/ 6053/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6054 6055__webpack_require__.r(__webpack_exports__); 6056/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6057/* harmony export */ "default": function() { return /* binding */ EffectCreative; } 6058/* harmony export */ }); 6059/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "../../node_modules/swiper/shared/create-shadow.js"); 6060/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "../../node_modules/swiper/shared/effect-init.js"); 6061/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "../../node_modules/swiper/shared/effect-target.js"); 6062/* 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"); 6063/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 6064 6065 6066 6067 6068 6069function EffectCreative({ 6070 swiper, 6071 extendParams, 6072 on 6073}) { 6074 extendParams({ 6075 creativeEffect: { 6076 limitProgress: 1, 6077 shadowPerProgress: false, 6078 progressMultiplier: 1, 6079 perspective: true, 6080 prev: { 6081 translate: [0, 0, 0], 6082 rotate: [0, 0, 0], 6083 opacity: 1, 6084 scale: 1 6085 }, 6086 next: { 6087 translate: [0, 0, 0], 6088 rotate: [0, 0, 0], 6089 opacity: 1, 6090 scale: 1 6091 } 6092 } 6093 }); 6094 const getTranslateValue = value => { 6095 if (typeof value === 'string') return value; 6096 return `${value}px`; 6097 }; 6098 const setTranslate = () => { 6099 const { 6100 slides, 6101 wrapperEl, 6102 slidesSizesGrid 6103 } = swiper; 6104 const params = swiper.params.creativeEffect; 6105 const { 6106 progressMultiplier: multiplier 6107 } = params; 6108 const isCenteredSlides = swiper.params.centeredSlides; 6109 if (isCenteredSlides) { 6110 const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0; 6111 wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`; 6112 } 6113 for (let i = 0; i < slides.length; i += 1) { 6114 const slideEl = slides[i]; 6115 const slideProgress = slideEl.progress; 6116 const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress); 6117 let originalProgress = progress; 6118 if (!isCenteredSlides) { 6119 originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress); 6120 } 6121 const offset = slideEl.swiperSlideOffset; 6122 const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0]; 6123 const r = [0, 0, 0]; 6124 let custom = false; 6125 if (!swiper.isHorizontal()) { 6126 t[1] = t[0]; 6127 t[0] = 0; 6128 } 6129 let data = { 6130 translate: [0, 0, 0], 6131 rotate: [0, 0, 0], 6132 scale: 1, 6133 opacity: 1 6134 }; 6135 if (progress < 0) { 6136 data = params.next; 6137 custom = true; 6138 } else if (progress > 0) { 6139 data = params.prev; 6140 custom = true; 6141 } 6142 // set translate 6143 t.forEach((value, index) => { 6144 t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`; 6145 }); 6146 // set rotates 6147 r.forEach((value, index) => { 6148 r[index] = data.rotate[index] * Math.abs(progress * multiplier); 6149 }); 6150 slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; 6151 const translateString = t.join(', '); 6152 const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`; 6153 const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`; 6154 const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier; 6155 const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; 6156 6157 // Set shadows 6158 if (custom && data.shadow || !custom) { 6159 let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); 6160 if (!shadowEl && data.shadow) { 6161 shadowEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, slideEl); 6162 } 6163 if (shadowEl) { 6164 const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress; 6165 shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1); 6166 } 6167 } 6168 const targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, slideEl); 6169 targetEl.style.transform = transform; 6170 targetEl.style.opacity = opacityString; 6171 if (data.origin) { 6172 targetEl.style.transformOrigin = data.origin; 6173 } 6174 } 6175 }; 6176 const setTransition = duration => { 6177 const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_4__.getSlideTransformEl)(slideEl)); 6178 transformElements.forEach(el => { 6179 el.style.transitionDuration = `${duration}ms`; 6180 el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { 6181 shadowEl.style.transitionDuration = `${duration}ms`; 6182 }); 6183 }); 6184 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__["default"])({ 6185 swiper, 6186 duration, 6187 transformElements, 6188 allSlides: true 6189 }); 6190 }; 6191 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 6192 effect: 'creative', 6193 swiper, 6194 on, 6195 setTranslate, 6196 setTransition, 6197 perspective: () => swiper.params.creativeEffect.perspective, 6198 overwriteParams: () => ({ 6199 watchSlidesProgress: true, 6200 virtualTranslate: !swiper.params.cssMode 6201 }) 6202 }); 6203} 6204 6205/***/ }), 6206
vendor: 7,543 bytes, lines 6207-6390
6207/***/ "../../node_modules/swiper/modules/effect-cube/effect-cube.js": 6208/*!********************************************************************!*\ 6209 !*** ../../node_modules/swiper/modules/effect-cube/effect-cube.js ***! 6210 \********************************************************************/ 6211/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6212 6213__webpack_require__.r(__webpack_exports__); 6214/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6215/* harmony export */ "default": function() { return /* binding */ EffectCube; } 6216/* harmony export */ }); 6217/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/effect-init.js */ "../../node_modules/swiper/shared/effect-init.js"); 6218/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 6219 6220 6221function EffectCube({ 6222 swiper, 6223 extendParams, 6224 on 6225}) { 6226 extendParams({ 6227 cubeEffect: { 6228 slideShadows: true, 6229 shadow: true, 6230 shadowOffset: 20, 6231 shadowScale: 0.94 6232 } 6233 }); 6234 const createSlideShadows = (slideEl, progress, isHorizontal) => { 6235 let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); 6236 let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); 6237 if (!shadowBefore) { 6238 shadowBefore = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', `swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`); 6239 slideEl.append(shadowBefore); 6240 } 6241 if (!shadowAfter) { 6242 shadowAfter = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', `swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`); 6243 slideEl.append(shadowAfter); 6244 } 6245 if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); 6246 if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); 6247 }; 6248 const recreateShadows = () => { 6249 // create new ones 6250 const isHorizontal = swiper.isHorizontal(); 6251 swiper.slides.forEach(slideEl => { 6252 const progress = Math.max(Math.min(slideEl.progress, 1), -1); 6253 createSlideShadows(slideEl, progress, isHorizontal); 6254 }); 6255 }; 6256 const setTranslate = () => { 6257 const { 6258 el, 6259 wrapperEl, 6260 slides, 6261 width: swiperWidth, 6262 height: swiperHeight, 6263 rtlTranslate: rtl, 6264 size: swiperSize, 6265 browser 6266 } = swiper; 6267 const params = swiper.params.cubeEffect; 6268 const isHorizontal = swiper.isHorizontal(); 6269 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 6270 let wrapperRotate = 0; 6271 let cubeShadowEl; 6272 if (params.shadow) { 6273 if (isHorizontal) { 6274 cubeShadowEl = swiper.slidesEl.querySelector('.swiper-cube-shadow'); 6275 if (!cubeShadowEl) { 6276 cubeShadowEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', 'swiper-cube-shadow'); 6277 swiper.slidesEl.append(cubeShadowEl); 6278 } 6279 cubeShadowEl.style.height = `${swiperWidth}px`; 6280 } else { 6281 cubeShadowEl = el.querySelector('.swiper-cube-shadow'); 6282 if (!cubeShadowEl) { 6283 cubeShadowEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', 'swiper-cube-shadow'); 6284 el.append(cubeShadowEl); 6285 } 6286 } 6287 } 6288 for (let i = 0; i < slides.length; i += 1) { 6289 const slideEl = slides[i]; 6290 let slideIndex = i; 6291 if (isVirtual) { 6292 slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10); 6293 } 6294 let slideAngle = slideIndex * 90; 6295 let round = Math.floor(slideAngle / 360); 6296 if (rtl) { 6297 slideAngle = -slideAngle; 6298 round = Math.floor(-slideAngle / 360); 6299 } 6300 const progress = Math.max(Math.min(slideEl.progress, 1), -1); 6301 let tx = 0; 6302 let ty = 0; 6303 let tz = 0; 6304 if (slideIndex % 4 === 0) { 6305 tx = -round * 4 * swiperSize; 6306 tz = 0; 6307 } else if ((slideIndex - 1) % 4 === 0) { 6308 tx = 0; 6309 tz = -round * 4 * swiperSize; 6310 } else if ((slideIndex - 2) % 4 === 0) { 6311 tx = swiperSize + round * 4 * swiperSize; 6312 tz = swiperSize; 6313 } else if ((slideIndex - 3) % 4 === 0) { 6314 tx = -swiperSize; 6315 tz = 3 * swiperSize + swiperSize * 4 * round; 6316 } 6317 if (rtl) { 6318 tx = -tx; 6319 } 6320 if (!isHorizontal) { 6321 ty = tx; 6322 tx = 0; 6323 } 6324 const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`; 6325 if (progress <= 1 && progress > -1) { 6326 wrapperRotate = slideIndex * 90 + progress * 90; 6327 if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90; 6328 } 6329 slideEl.style.transform = transform; 6330 if (params.slideShadows) { 6331 createSlideShadows(slideEl, progress, isHorizontal); 6332 } 6333 } 6334 wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`; 6335 wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`; 6336 if (params.shadow) { 6337 if (isHorizontal) { 6338 cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`; 6339 } else { 6340 const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90; 6341 const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2); 6342 const scale1 = params.shadowScale; 6343 const scale2 = params.shadowScale / multiplier; 6344 const offset = params.shadowOffset; 6345 cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`; 6346 } 6347 } 6348 const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0; 6349 wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`; 6350 wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`); 6351 }; 6352 const setTransition = duration => { 6353 const { 6354 el, 6355 slides 6356 } = swiper; 6357 slides.forEach(slideEl => { 6358 slideEl.style.transitionDuration = `${duration}ms`; 6359 slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => { 6360 subEl.style.transitionDuration = `${duration}ms`; 6361 }); 6362 }); 6363 if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { 6364 const shadowEl = el.querySelector('.swiper-cube-shadow'); 6365 if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`; 6366 } 6367 }; 6368 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 6369 effect: 'cube', 6370 swiper, 6371 on, 6372 setTranslate, 6373 setTransition, 6374 recreateShadows, 6375 getEffectParams: () => swiper.params.cubeEffect, 6376 perspective: () => true, 6377 overwriteParams: () => ({ 6378 slidesPerView: 1, 6379 slidesPerGroup: 1, 6380 watchSlidesProgress: true, 6381 resistanceRatio: 0, 6382 spaceBetween: 0, 6383 centeredSlides: false, 6384 virtualTranslate: true 6385 }) 6386 }); 6387} 6388 6389/***/ }), 6390
vendor: 3,175 bytes, lines 6391-6469
6391/***/ "../../node_modules/swiper/modules/effect-fade/effect-fade.js": 6392/*!********************************************************************!*\ 6393 !*** ../../node_modules/swiper/modules/effect-fade/effect-fade.js ***! 6394 \********************************************************************/ 6395/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6396 6397__webpack_require__.r(__webpack_exports__); 6398/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6399/* harmony export */ "default": function() { return /* binding */ EffectFade; } 6400/* harmony export */ }); 6401/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/effect-init.js */ "../../node_modules/swiper/shared/effect-init.js"); 6402/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-target.js */ "../../node_modules/swiper/shared/effect-target.js"); 6403/* 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"); 6404/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 6405 6406 6407 6408 6409function EffectFade({ 6410 swiper, 6411 extendParams, 6412 on 6413}) { 6414 extendParams({ 6415 fadeEffect: { 6416 crossFade: false 6417 } 6418 }); 6419 const setTranslate = () => { 6420 const { 6421 slides 6422 } = swiper; 6423 const params = swiper.params.fadeEffect; 6424 for (let i = 0; i < slides.length; i += 1) { 6425 const slideEl = swiper.slides[i]; 6426 const offset = slideEl.swiperSlideOffset; 6427 let tx = -offset; 6428 if (!swiper.params.virtualTranslate) tx -= swiper.translate; 6429 let ty = 0; 6430 if (!swiper.isHorizontal()) { 6431 ty = tx; 6432 tx = 0; 6433 } 6434 const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0); 6435 const targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params, slideEl); 6436 targetEl.style.opacity = slideOpacity; 6437 targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`; 6438 } 6439 }; 6440 const setTransition = duration => { 6441 const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_3__.getSlideTransformEl)(slideEl)); 6442 transformElements.forEach(el => { 6443 el.style.transitionDuration = `${duration}ms`; 6444 }); 6445 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_2__["default"])({ 6446 swiper, 6447 duration, 6448 transformElements, 6449 allSlides: true 6450 }); 6451 }; 6452 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 6453 effect: 'fade', 6454 swiper, 6455 on, 6456 setTranslate, 6457 setTransition, 6458 overwriteParams: () => ({ 6459 slidesPerView: 1, 6460 slidesPerGroup: 1, 6461 watchSlidesProgress: true, 6462 spaceBetween: 0, 6463 virtualTranslate: !swiper.params.cssMode 6464 }) 6465 }); 6466} 6467 6468/***/ }), 6469
vendor: 5,361 bytes, lines 6470-6593
6470/***/ "../../node_modules/swiper/modules/effect-flip/effect-flip.js": 6471/*!********************************************************************!*\ 6472 !*** ../../node_modules/swiper/modules/effect-flip/effect-flip.js ***! 6473 \********************************************************************/ 6474/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6475 6476__webpack_require__.r(__webpack_exports__); 6477/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6478/* harmony export */ "default": function() { return /* binding */ EffectFlip; } 6479/* harmony export */ }); 6480/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "../../node_modules/swiper/shared/create-shadow.js"); 6481/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "../../node_modules/swiper/shared/effect-init.js"); 6482/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "../../node_modules/swiper/shared/effect-target.js"); 6483/* 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"); 6484/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 6485 6486 6487 6488 6489 6490function EffectFlip({ 6491 swiper, 6492 extendParams, 6493 on 6494}) { 6495 extendParams({ 6496 flipEffect: { 6497 slideShadows: true, 6498 limitRotation: true 6499 } 6500 }); 6501 const createSlideShadows = (slideEl, progress, params) => { 6502 let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); 6503 let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); 6504 if (!shadowBefore) { 6505 shadowBefore = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, slideEl, swiper.isHorizontal() ? 'left' : 'top'); 6506 } 6507 if (!shadowAfter) { 6508 shadowAfter = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, slideEl, swiper.isHorizontal() ? 'right' : 'bottom'); 6509 } 6510 if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); 6511 if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); 6512 }; 6513 const recreateShadows = () => { 6514 // Set shadows 6515 const params = swiper.params.flipEffect; 6516 swiper.slides.forEach(slideEl => { 6517 let progress = slideEl.progress; 6518 if (swiper.params.flipEffect.limitRotation) { 6519 progress = Math.max(Math.min(slideEl.progress, 1), -1); 6520 } 6521 createSlideShadows(slideEl, progress, params); 6522 }); 6523 }; 6524 const setTranslate = () => { 6525 const { 6526 slides, 6527 rtlTranslate: rtl 6528 } = swiper; 6529 const params = swiper.params.flipEffect; 6530 for (let i = 0; i < slides.length; i += 1) { 6531 const slideEl = slides[i]; 6532 let progress = slideEl.progress; 6533 if (swiper.params.flipEffect.limitRotation) { 6534 progress = Math.max(Math.min(slideEl.progress, 1), -1); 6535 } 6536 const offset = slideEl.swiperSlideOffset; 6537 const rotate = -180 * progress; 6538 let rotateY = rotate; 6539 let rotateX = 0; 6540 let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset; 6541 let ty = 0; 6542 if (!swiper.isHorizontal()) { 6543 ty = tx; 6544 tx = 0; 6545 rotateX = -rotateY; 6546 rotateY = 0; 6547 } else if (rtl) { 6548 rotateY = -rotateY; 6549 } 6550 slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length; 6551 if (params.slideShadows) { 6552 createSlideShadows(slideEl, progress, params); 6553 } 6554 const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; 6555 const targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, slideEl); 6556 targetEl.style.transform = transform; 6557 } 6558 }; 6559 const setTransition = duration => { 6560 const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_4__.getSlideTransformEl)(slideEl)); 6561 transformElements.forEach(el => { 6562 el.style.transitionDuration = `${duration}ms`; 6563 el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { 6564 shadowEl.style.transitionDuration = `${duration}ms`; 6565 }); 6566 }); 6567 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__["default"])({ 6568 swiper, 6569 duration, 6570 transformElements 6571 }); 6572 }; 6573 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 6574 effect: 'flip', 6575 swiper, 6576 on, 6577 setTranslate, 6578 setTransition, 6579 recreateShadows, 6580 getEffectParams: () => swiper.params.flipEffect, 6581 perspective: () => true, 6582 overwriteParams: () => ({ 6583 slidesPerView: 1, 6584 slidesPerGroup: 1, 6585 watchSlidesProgress: true, 6586 spaceBetween: 0, 6587 virtualTranslate: !swiper.params.cssMode 6588 }) 6589 }); 6590} 6591 6592/***/ }), 6593
vendor: 9,262 bytes, lines 6594-6838
6594/***/ "../../node_modules/swiper/modules/free-mode/free-mode.js": 6595/*!****************************************************************!*\ 6596 !*** ../../node_modules/swiper/modules/free-mode/free-mode.js ***! 6597 \****************************************************************/ 6598/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6599 6600__webpack_require__.r(__webpack_exports__); 6601/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6602/* harmony export */ "default": function() { return /* binding */ freeMode; } 6603/* harmony export */ }); 6604/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 6605 6606function freeMode({ 6607 swiper, 6608 extendParams, 6609 emit, 6610 once 6611}) { 6612 extendParams({ 6613 freeMode: { 6614 enabled: false, 6615 momentum: true, 6616 momentumRatio: 1, 6617 momentumBounce: true, 6618 momentumBounceRatio: 1, 6619 momentumVelocityRatio: 1, 6620 sticky: false, 6621 minimumVelocity: 0.02 6622 } 6623 }); 6624 function onTouchStart() { 6625 if (swiper.params.cssMode) return; 6626 const translate = swiper.getTranslate(); 6627 swiper.setTranslate(translate); 6628 swiper.setTransition(0); 6629 swiper.touchEventsData.velocities.length = 0; 6630 swiper.freeMode.onTouchEnd({ 6631 currentPos: swiper.rtl ? swiper.translate : -swiper.translate 6632 }); 6633 } 6634 function onTouchMove() { 6635 if (swiper.params.cssMode) return; 6636 const { 6637 touchEventsData: data, 6638 touches 6639 } = swiper; 6640 // Velocity 6641 if (data.velocities.length === 0) { 6642 data.velocities.push({ 6643 position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], 6644 time: data.touchStartTime 6645 }); 6646 } 6647 data.velocities.push({ 6648 position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], 6649 time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)() 6650 }); 6651 } 6652 function onTouchEnd({ 6653 currentPos 6654 }) { 6655 if (swiper.params.cssMode) return; 6656 const { 6657 params, 6658 wrapperEl, 6659 rtlTranslate: rtl, 6660 snapGrid, 6661 touchEventsData: data 6662 } = swiper; 6663 // Time diff 6664 const touchEndTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)(); 6665 const timeDiff = touchEndTime - data.touchStartTime; 6666 if (currentPos < -swiper.minTranslate()) { 6667 swiper.slideTo(swiper.activeIndex); 6668 return; 6669 } 6670 if (currentPos > -swiper.maxTranslate()) { 6671 if (swiper.slides.length < snapGrid.length) { 6672 swiper.slideTo(snapGrid.length - 1); 6673 } else { 6674 swiper.slideTo(swiper.slides.length - 1); 6675 } 6676 return; 6677 } 6678 if (params.freeMode.momentum) { 6679 if (data.velocities.length > 1) { 6680 const lastMoveEvent = data.velocities.pop(); 6681 const velocityEvent = data.velocities.pop(); 6682 const distance = lastMoveEvent.position - velocityEvent.position; 6683 const time = lastMoveEvent.time - velocityEvent.time; 6684 swiper.velocity = distance / time; 6685 swiper.velocity /= 2; 6686 if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) { 6687 swiper.velocity = 0; 6688 } 6689 // this implies that the user stopped moving a finger then released. 6690 // There would be no events with distance zero, so the last event is stale. 6691 if (time > 150 || (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)() - lastMoveEvent.time > 300) { 6692 swiper.velocity = 0; 6693 } 6694 } else { 6695 swiper.velocity = 0; 6696 } 6697 swiper.velocity *= params.freeMode.momentumVelocityRatio; 6698 data.velocities.length = 0; 6699 let momentumDuration = 1000 * params.freeMode.momentumRatio; 6700 const momentumDistance = swiper.velocity * momentumDuration; 6701 let newPosition = swiper.translate + momentumDistance; 6702 if (rtl) newPosition = -newPosition; 6703 let doBounce = false; 6704 let afterBouncePosition; 6705 const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio; 6706 let needsLoopFix; 6707 if (newPosition < swiper.maxTranslate()) { 6708 if (params.freeMode.momentumBounce) { 6709 if (newPosition + swiper.maxTranslate() < -bounceAmount) { 6710 newPosition = swiper.maxTranslate() - bounceAmount; 6711 } 6712 afterBouncePosition = swiper.maxTranslate(); 6713 doBounce = true; 6714 data.allowMomentumBounce = true; 6715 } else { 6716 newPosition = swiper.maxTranslate(); 6717 } 6718 if (params.loop && params.centeredSlides) needsLoopFix = true; 6719 } else if (newPosition > swiper.minTranslate()) { 6720 if (params.freeMode.momentumBounce) { 6721 if (newPosition - swiper.minTranslate() > bounceAmount) { 6722 newPosition = swiper.minTranslate() + bounceAmount; 6723 } 6724 afterBouncePosition = swiper.minTranslate(); 6725 doBounce = true; 6726 data.allowMomentumBounce = true; 6727 } else { 6728 newPosition = swiper.minTranslate(); 6729 } 6730 if (params.loop && params.centeredSlides) needsLoopFix = true; 6731 } else if (params.freeMode.sticky) { 6732 let nextSlide; 6733 for (let j = 0; j < snapGrid.length; j += 1) { 6734 if (snapGrid[j] > -newPosition) { 6735 nextSlide = j; 6736 break; 6737 } 6738 } 6739 if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { 6740 newPosition = snapGrid[nextSlide]; 6741 } else { 6742 newPosition = snapGrid[nextSlide - 1]; 6743 } 6744 newPosition = -newPosition; 6745 } 6746 if (needsLoopFix) { 6747 once('transitionEnd', () => { 6748 swiper.loopFix(); 6749 }); 6750 } 6751 // Fix duration 6752 if (swiper.velocity !== 0) { 6753 if (rtl) { 6754 momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); 6755 } else { 6756 momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); 6757 } 6758 if (params.freeMode.sticky) { 6759 // If freeMode.sticky is active and the user ends a swipe with a slow-velocity 6760 // event, then durations can be 20+ seconds to slide one (or zero!) slides. 6761 // It's easy to see this when simulating touch with mouse events. To fix this, 6762 // limit single-slide swipes to the default slide duration. This also has the 6763 // nice side effect of matching slide speed if the user stopped moving before 6764 // lifting finger or mouse vs. moving slowly before lifting the finger/mouse. 6765 // For faster swipes, also apply limits (albeit higher ones). 6766 const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate); 6767 const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex]; 6768 if (moveDistance < currentSlideSize) { 6769 momentumDuration = params.speed; 6770 } else if (moveDistance < 2 * currentSlideSize) { 6771 momentumDuration = params.speed * 1.5; 6772 } else { 6773 momentumDuration = params.speed * 2.5; 6774 } 6775 } 6776 } else if (params.freeMode.sticky) { 6777 swiper.slideToClosest(); 6778 return; 6779 } 6780 if (params.freeMode.momentumBounce && doBounce) { 6781 swiper.updateProgress(afterBouncePosition); 6782 swiper.setTransition(momentumDuration); 6783 swiper.setTranslate(newPosition); 6784 swiper.transitionStart(true, swiper.swipeDirection); 6785 swiper.animating = true; 6786 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementTransitionEnd)(wrapperEl, () => { 6787 if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return; 6788 emit('momentumBounce'); 6789 swiper.setTransition(params.speed); 6790 setTimeout(() => { 6791 swiper.setTranslate(afterBouncePosition); 6792 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementTransitionEnd)(wrapperEl, () => { 6793 if (!swiper || swiper.destroyed) return; 6794 swiper.transitionEnd(); 6795 }); 6796 }, 0); 6797 }); 6798 } else if (swiper.velocity) { 6799 emit('_freeModeNoMomentumRelease'); 6800 swiper.updateProgress(newPosition); 6801 swiper.setTransition(momentumDuration); 6802 swiper.setTranslate(newPosition); 6803 swiper.transitionStart(true, swiper.swipeDirection); 6804 if (!swiper.animating) { 6805 swiper.animating = true; 6806 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementTransitionEnd)(wrapperEl, () => { 6807 if (!swiper || swiper.destroyed) return; 6808 swiper.transitionEnd(); 6809 }); 6810 } 6811 } else { 6812 swiper.updateProgress(newPosition); 6813 } 6814 swiper.updateActiveIndex(); 6815 swiper.updateSlidesClasses(); 6816 } else if (params.freeMode.sticky) { 6817 swiper.slideToClosest(); 6818 return; 6819 } else if (params.freeMode) { 6820 emit('_freeModeNoMomentumRelease'); 6821 } 6822 if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) { 6823 swiper.updateProgress(); 6824 swiper.updateActiveIndex(); 6825 swiper.updateSlidesClasses(); 6826 } 6827 } 6828 Object.assign(swiper, { 6829 freeMode: { 6830 onTouchStart, 6831 onTouchMove, 6832 onTouchEnd 6833 } 6834 }); 6835} 6836 6837/***/ }), 6838
vendor: 4,229 bytes, lines 6839-6960
6839/***/ "../../node_modules/swiper/modules/grid/grid.js": 6840/*!******************************************************!*\ 6841 !*** ../../node_modules/swiper/modules/grid/grid.js ***! 6842 \******************************************************/ 6843/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6844 6845__webpack_require__.r(__webpack_exports__); 6846/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6847/* harmony export */ "default": function() { return /* binding */ Grid; } 6848/* harmony export */ }); 6849function Grid({ 6850 swiper, 6851 extendParams 6852}) { 6853 extendParams({ 6854 grid: { 6855 rows: 1, 6856 fill: 'column' 6857 } 6858 }); 6859 let slidesNumberEvenToRows; 6860 let slidesPerRow; 6861 let numFullColumns; 6862 const getSpaceBetween = () => { 6863 let spaceBetween = swiper.params.spaceBetween; 6864 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 6865 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; 6866 } else if (typeof spaceBetween === 'string') { 6867 spaceBetween = parseFloat(spaceBetween); 6868 } 6869 return spaceBetween; 6870 }; 6871 const initSlides = slidesLength => { 6872 const { 6873 slidesPerView 6874 } = swiper.params; 6875 const { 6876 rows, 6877 fill 6878 } = swiper.params.grid; 6879 numFullColumns = Math.floor(slidesLength / rows); 6880 if (Math.floor(slidesLength / rows) === slidesLength / rows) { 6881 slidesNumberEvenToRows = slidesLength; 6882 } else { 6883 slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows; 6884 } 6885 if (slidesPerView !== 'auto' && fill === 'row') { 6886 slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows); 6887 } 6888 slidesPerRow = slidesNumberEvenToRows / rows; 6889 }; 6890 const updateSlide = (i, slide, slidesLength, getDirectionLabel) => { 6891 const { 6892 slidesPerGroup 6893 } = swiper.params; 6894 const spaceBetween = getSpaceBetween(); 6895 const { 6896 rows, 6897 fill 6898 } = swiper.params.grid; 6899 // Set slides order 6900 let newSlideOrderIndex; 6901 let column; 6902 let row; 6903 if (fill === 'row' && slidesPerGroup > 1) { 6904 const groupIndex = Math.floor(i / (slidesPerGroup * rows)); 6905 const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex; 6906 const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup); 6907 row = Math.floor(slideIndexInGroup / columnsInGroup); 6908 column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup; 6909 newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows; 6910 slide.style.order = newSlideOrderIndex; 6911 } else if (fill === 'column') { 6912 column = Math.floor(i / rows); 6913 row = i - column * rows; 6914 if (column > numFullColumns || column === numFullColumns && row === rows - 1) { 6915 row += 1; 6916 if (row >= rows) { 6917 row = 0; 6918 column += 1; 6919 } 6920 } 6921 } else { 6922 row = Math.floor(i / slidesPerRow); 6923 column = i - row * slidesPerRow; 6924 } 6925 slide.row = row; 6926 slide.column = column; 6927 slide.style[getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : ''; 6928 }; 6929 const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => { 6930 const { 6931 centeredSlides, 6932 roundLengths 6933 } = swiper.params; 6934 const spaceBetween = getSpaceBetween(); 6935 const { 6936 rows 6937 } = swiper.params.grid; 6938 swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows; 6939 swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween; 6940 swiper.wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; 6941 if (centeredSlides) { 6942 const newSlidesGrid = []; 6943 for (let i = 0; i < snapGrid.length; i += 1) { 6944 let slidesGridItem = snapGrid[i]; 6945 if (roundLengths) slidesGridItem = Math.floor(slidesGridItem); 6946 if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem); 6947 } 6948 snapGrid.splice(0, snapGrid.length); 6949 snapGrid.push(...newSlidesGrid); 6950 } 6951 }; 6952 swiper.grid = { 6953 initSlides, 6954 updateSlide, 6955 updateWrapperSize 6956 }; 6957} 6958 6959/***/ }), 6960
vendor: 4,430 bytes, lines 6961-7064
6961/***/ "../../node_modules/swiper/modules/hash-navigation/hash-navigation.js": 6962/*!****************************************************************************!*\ 6963 !*** ../../node_modules/swiper/modules/hash-navigation/hash-navigation.js ***! 6964 \****************************************************************************/ 6965/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 6966 6967__webpack_require__.r(__webpack_exports__); 6968/* harmony export */ __webpack_require__.d(__webpack_exports__, { 6969/* harmony export */ "default": function() { return /* binding */ HashNavigation; } 6970/* harmony export */ }); 6971/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 6972/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 6973 6974 6975function HashNavigation({ 6976 swiper, 6977 extendParams, 6978 emit, 6979 on 6980}) { 6981 let initialized = false; 6982 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 6983 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 6984 extendParams({ 6985 hashNavigation: { 6986 enabled: false, 6987 replaceState: false, 6988 watchState: false, 6989 getSlideIndex(_s, hash) { 6990 if (swiper.virtual && swiper.params.virtual.enabled) { 6991 const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0]; 6992 if (!slideWithHash) return 0; 6993 const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10); 6994 return index; 6995 } 6996 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]); 6997 } 6998 } 6999 }); 7000 const onHashChange = () => { 7001 emit('hashChange'); 7002 const newHash = document.location.hash.replace('#', ''); 7003 const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex]; 7004 const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : ''; 7005 if (newHash !== activeSlideHash) { 7006 const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash); 7007 if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return; 7008 swiper.slideTo(newIndex); 7009 } 7010 }; 7011 const setHash = () => { 7012 if (!initialized || !swiper.params.hashNavigation.enabled) return; 7013 const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex]; 7014 const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : ''; 7015 if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) { 7016 window.history.replaceState(null, null, `#${activeSlideHash}` || ''); 7017 emit('hashSet'); 7018 } else { 7019 document.location.hash = activeSlideHash || ''; 7020 emit('hashSet'); 7021 } 7022 }; 7023 const init = () => { 7024 if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return; 7025 initialized = true; 7026 const hash = document.location.hash.replace('#', ''); 7027 if (hash) { 7028 const speed = 0; 7029 const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash); 7030 swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true); 7031 } 7032 if (swiper.params.hashNavigation.watchState) { 7033 window.addEventListener('hashchange', onHashChange); 7034 } 7035 }; 7036 const destroy = () => { 7037 if (swiper.params.hashNavigation.watchState) { 7038 window.removeEventListener('hashchange', onHashChange); 7039 } 7040 }; 7041 on('init', () => { 7042 if (swiper.params.hashNavigation.enabled) { 7043 init(); 7044 } 7045 }); 7046 on('destroy', () => { 7047 if (swiper.params.hashNavigation.enabled) { 7048 destroy(); 7049 } 7050 }); 7051 on('transitionEnd _freeModeNoMomentumRelease', () => { 7052 if (initialized) { 7053 setHash(); 7054 } 7055 }); 7056 on('slideChange', () => { 7057 if (initialized && swiper.params.cssMode) { 7058 setHash(); 7059 } 7060 }); 7061} 7062 7063/***/ }), 7064
vendor: 4,955 bytes, lines 7065-7216
7065/***/ "../../node_modules/swiper/modules/history/history.js": 7066/*!************************************************************!*\ 7067 !*** ../../node_modules/swiper/modules/history/history.js ***! 7068 \************************************************************/ 7069/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 7070 7071__webpack_require__.r(__webpack_exports__); 7072/* harmony export */ __webpack_require__.d(__webpack_exports__, { 7073/* harmony export */ "default": function() { return /* binding */ History; } 7074/* harmony export */ }); 7075/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 7076 7077function History({ 7078 swiper, 7079 extendParams, 7080 on 7081}) { 7082 extendParams({ 7083 history: { 7084 enabled: false, 7085 root: '', 7086 replaceState: false, 7087 key: 'slides', 7088 keepQuery: false 7089 } 7090 }); 7091 let initialized = false; 7092 let paths = {}; 7093 const slugify = text => { 7094 return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, ''); 7095 }; 7096 const getPathValues = urlOverride => { 7097 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 7098 let location; 7099 if (urlOverride) { 7100 location = new URL(urlOverride); 7101 } else { 7102 location = window.location; 7103 } 7104 const pathArray = location.pathname.slice(1).split('/').filter(part => part !== ''); 7105 const total = pathArray.length; 7106 const key = pathArray[total - 2]; 7107 const value = pathArray[total - 1]; 7108 return { 7109 key, 7110 value 7111 }; 7112 }; 7113 const setHistory = (key, index) => { 7114 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 7115 if (!initialized || !swiper.params.history.enabled) return; 7116 let location; 7117 if (swiper.params.url) { 7118 location = new URL(swiper.params.url); 7119 } else { 7120 location = window.location; 7121 } 7122 const slide = swiper.slides[index]; 7123 let value = slugify(slide.getAttribute('data-history')); 7124 if (swiper.params.history.root.length > 0) { 7125 let root = swiper.params.history.root; 7126 if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1); 7127 value = `${root}/${key ? `${key}/` : ''}${value}`; 7128 } else if (!location.pathname.includes(key)) { 7129 value = `${key ? `${key}/` : ''}${value}`; 7130 } 7131 if (swiper.params.history.keepQuery) { 7132 value += location.search; 7133 } 7134 const currentState = window.history.state; 7135 if (currentState && currentState.value === value) { 7136 return; 7137 } 7138 if (swiper.params.history.replaceState) { 7139 window.history.replaceState({ 7140 value 7141 }, null, value); 7142 } else { 7143 window.history.pushState({ 7144 value 7145 }, null, value); 7146 } 7147 }; 7148 const scrollToSlide = (speed, value, runCallbacks) => { 7149 if (value) { 7150 for (let i = 0, length = swiper.slides.length; i < length; i += 1) { 7151 const slide = swiper.slides[i]; 7152 const slideHistory = slugify(slide.getAttribute('data-history')); 7153 if (slideHistory === value) { 7154 const index = swiper.getSlideIndex(slide); 7155 swiper.slideTo(index, speed, runCallbacks); 7156 } 7157 } 7158 } else { 7159 swiper.slideTo(0, speed, runCallbacks); 7160 } 7161 }; 7162 const setHistoryPopState = () => { 7163 paths = getPathValues(swiper.params.url); 7164 scrollToSlide(swiper.params.speed, paths.value, false); 7165 }; 7166 const init = () => { 7167 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 7168 if (!swiper.params.history) return; 7169 if (!window.history || !window.history.pushState) { 7170 swiper.params.history.enabled = false; 7171 swiper.params.hashNavigation.enabled = true; 7172 return; 7173 } 7174 initialized = true; 7175 paths = getPathValues(swiper.params.url); 7176 if (!paths.key && !paths.value) { 7177 if (!swiper.params.history.replaceState) { 7178 window.addEventListener('popstate', setHistoryPopState); 7179 } 7180 return; 7181 } 7182 scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit); 7183 if (!swiper.params.history.replaceState) { 7184 window.addEventListener('popstate', setHistoryPopState); 7185 } 7186 }; 7187 const destroy = () => { 7188 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 7189 if (!swiper.params.history.replaceState) { 7190 window.removeEventListener('popstate', setHistoryPopState); 7191 } 7192 }; 7193 on('init', () => { 7194 if (swiper.params.history.enabled) { 7195 init(); 7196 } 7197 }); 7198 on('destroy', () => { 7199 if (swiper.params.history.enabled) { 7200 destroy(); 7201 } 7202 }); 7203 on('transitionEnd _freeModeNoMomentumRelease', () => { 7204 if (initialized) { 7205 setHistory(swiper.params.history.key, swiper.activeIndex); 7206 } 7207 }); 7208 on('slideChange', () => { 7209 if (initialized && swiper.params.cssMode) { 7210 setHistory(swiper.params.history.key, swiper.activeIndex); 7211 } 7212 }); 7213} 7214 7215/***/ }), 7216
vendor: 5,285 bytes, lines 7217-7344
7217/***/ "../../node_modules/swiper/modules/keyboard/keyboard.js": 7218/*!**************************************************************!*\ 7219 !*** ../../node_modules/swiper/modules/keyboard/keyboard.js ***! 7220 \**************************************************************/ 7221/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 7222 7223__webpack_require__.r(__webpack_exports__); 7224/* harmony export */ __webpack_require__.d(__webpack_exports__, { 7225/* harmony export */ "default": function() { return /* binding */ Keyboard; } 7226/* harmony export */ }); 7227/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 7228/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 7229/* eslint-disable consistent-return */ 7230 7231 7232function Keyboard({ 7233 swiper, 7234 extendParams, 7235 on, 7236 emit 7237}) { 7238 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 7239 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 7240 swiper.keyboard = { 7241 enabled: false 7242 }; 7243 extendParams({ 7244 keyboard: { 7245 enabled: false, 7246 onlyInViewport: true, 7247 pageUpDown: true 7248 } 7249 }); 7250 function handle(event) { 7251 if (!swiper.enabled) return; 7252 const { 7253 rtlTranslate: rtl 7254 } = swiper; 7255 let e = event; 7256 if (e.originalEvent) e = e.originalEvent; // jquery fix 7257 const kc = e.keyCode || e.charCode; 7258 const pageUpDown = swiper.params.keyboard.pageUpDown; 7259 const isPageUp = pageUpDown && kc === 33; 7260 const isPageDown = pageUpDown && kc === 34; 7261 const isArrowLeft = kc === 37; 7262 const isArrowRight = kc === 39; 7263 const isArrowUp = kc === 38; 7264 const isArrowDown = kc === 40; 7265 // Directions locks 7266 if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) { 7267 return false; 7268 } 7269 if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) { 7270 return false; 7271 } 7272 if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { 7273 return undefined; 7274 } 7275 if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) { 7276 return undefined; 7277 } 7278 if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) { 7279 let inView = false; 7280 // Check that swiper should be inside of visible area of window 7281 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) { 7282 return undefined; 7283 } 7284 const el = swiper.el; 7285 const swiperWidth = el.clientWidth; 7286 const swiperHeight = el.clientHeight; 7287 const windowWidth = window.innerWidth; 7288 const windowHeight = window.innerHeight; 7289 const swiperOffset = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementOffset)(el); 7290 if (rtl) swiperOffset.left -= el.scrollLeft; 7291 const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]]; 7292 for (let i = 0; i < swiperCoord.length; i += 1) { 7293 const point = swiperCoord[i]; 7294 if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) { 7295 if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line 7296 inView = true; 7297 } 7298 } 7299 if (!inView) return undefined; 7300 } 7301 if (swiper.isHorizontal()) { 7302 if (isPageUp || isPageDown || isArrowLeft || isArrowRight) { 7303 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 7304 } 7305 if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext(); 7306 if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev(); 7307 } else { 7308 if (isPageUp || isPageDown || isArrowUp || isArrowDown) { 7309 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 7310 } 7311 if (isPageDown || isArrowDown) swiper.slideNext(); 7312 if (isPageUp || isArrowUp) swiper.slidePrev(); 7313 } 7314 emit('keyPress', kc); 7315 return undefined; 7316 } 7317 function enable() { 7318 if (swiper.keyboard.enabled) return; 7319 document.addEventListener('keydown', handle); 7320 swiper.keyboard.enabled = true; 7321 } 7322 function disable() { 7323 if (!swiper.keyboard.enabled) return; 7324 document.removeEventListener('keydown', handle); 7325 swiper.keyboard.enabled = false; 7326 } 7327 on('init', () => { 7328 if (swiper.params.keyboard.enabled) { 7329 enable(); 7330 } 7331 }); 7332 on('destroy', () => { 7333 if (swiper.keyboard.enabled) { 7334 disable(); 7335 } 7336 }); 7337 Object.assign(swiper.keyboard, { 7338 enable, 7339 disable 7340 }); 7341} 7342 7343/***/ }), 7344
vendor: 2,219 bytes, lines 7345-7378
7345/***/ "../../node_modules/swiper/modules/manipulation/manipulation.js": 7346/*!**********************************************************************!*\ 7347 !*** ../../node_modules/swiper/modules/manipulation/manipulation.js ***! 7348 \**********************************************************************/ 7349/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 7350 7351__webpack_require__.r(__webpack_exports__); 7352/* harmony export */ __webpack_require__.d(__webpack_exports__, { 7353/* harmony export */ "default": function() { return /* binding */ Manipulation; } 7354/* harmony export */ }); 7355/* harmony import */ var _methods_appendSlide_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./methods/appendSlide.js */ "../../node_modules/swiper/modules/manipulation/methods/appendSlide.js"); 7356/* harmony import */ var _methods_prependSlide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./methods/prependSlide.js */ "../../node_modules/swiper/modules/manipulation/methods/prependSlide.js"); 7357/* harmony import */ var _methods_addSlide_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./methods/addSlide.js */ "../../node_modules/swiper/modules/manipulation/methods/addSlide.js"); 7358/* harmony import */ var _methods_removeSlide_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./methods/removeSlide.js */ "../../node_modules/swiper/modules/manipulation/methods/removeSlide.js"); 7359/* harmony import */ var _methods_removeAllSlides_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./methods/removeAllSlides.js */ "../../node_modules/swiper/modules/manipulation/methods/removeAllSlides.js"); 7360 7361 7362 7363 7364 7365function Manipulation({ 7366 swiper 7367}) { 7368 Object.assign(swiper, { 7369 appendSlide: _methods_appendSlide_js__WEBPACK_IMPORTED_MODULE_0__["default"].bind(swiper), 7370 prependSlide: _methods_prependSlide_js__WEBPACK_IMPORTED_MODULE_1__["default"].bind(swiper), 7371 addSlide: _methods_addSlide_js__WEBPACK_IMPORTED_MODULE_2__["default"].bind(swiper), 7372 removeSlide: _methods_removeSlide_js__WEBPACK_IMPORTED_MODULE_3__["default"].bind(swiper), 7373 removeAllSlides: _methods_removeAllSlides_js__WEBPACK_IMPORTED_MODULE_4__["default"].bind(swiper) 7374 }); 7375} 7376 7377/***/ }), 7378
vendor: 2,107 bytes, lines 7379-7444
7379/***/ "../../node_modules/swiper/modules/manipulation/methods/addSlide.js": 7380/*!**************************************************************************!*\ 7381 !*** ../../node_modules/swiper/modules/manipulation/methods/addSlide.js ***! 7382 \**************************************************************************/ 7383/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 7384 7385__webpack_require__.r(__webpack_exports__); 7386/* harmony export */ __webpack_require__.d(__webpack_exports__, { 7387/* harmony export */ "default": function() { return /* binding */ addSlide; } 7388/* harmony export */ }); 7389function addSlide(index, slides) { 7390 const swiper = this; 7391 const { 7392 params, 7393 activeIndex, 7394 slidesEl 7395 } = swiper; 7396 let activeIndexBuffer = activeIndex; 7397 if (params.loop) { 7398 activeIndexBuffer -= swiper.loopedSlides; 7399 swiper.loopDestroy(); 7400 swiper.recalcSlides(); 7401 } 7402 const baseLength = swiper.slides.length; 7403 if (index <= 0) { 7404 swiper.prependSlide(slides); 7405 return; 7406 } 7407 if (index >= baseLength) { 7408 swiper.appendSlide(slides); 7409 return; 7410 } 7411 let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer; 7412 const slidesBuffer = []; 7413 for (let i = baseLength - 1; i >= index; i -= 1) { 7414 const currentSlide = swiper.slides[i]; 7415 currentSlide.remove(); 7416 slidesBuffer.unshift(currentSlide); 7417 } 7418 if (typeof slides === 'object' && 'length' in slides) { 7419 for (let i = 0; i < slides.length; i += 1) { 7420 if (slides[i]) slidesEl.append(slides[i]); 7421 } 7422 newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer; 7423 } else { 7424 slidesEl.append(slides); 7425 } 7426 for (let i = 0; i < slidesBuffer.length; i += 1) { 7427 slidesEl.append(slidesBuffer[i]); 7428 } 7429 swiper.recalcSlides(); 7430 if (params.loop) { 7431 swiper.loopCreate(); 7432 } 7433 if (!params.observer || swiper.isElement) { 7434 swiper.update(); 7435 } 7436 if (params.loop) { 7437 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 7438 } else { 7439 swiper.slideTo(newActiveIndex, 0, false); 7440 } 7441} 7442 7443/***/ }), 7444
vendor: 1,453 bytes, lines 7445-7491
7445/***/ "../../node_modules/swiper/modules/manipulation/methods/appendSlide.js": 7446/*!*****************************************************************************!*\ 7447 !*** ../../node_modules/swiper/modules/manipulation/methods/appendSlide.js ***! 7448 \*****************************************************************************/ 7449/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 7450 7451__webpack_require__.r(__webpack_exports__); 7452/* harmony export */ __webpack_require__.d(__webpack_exports__, { 7453/* harmony export */ "default": function() { return /* binding */ appendSlide; } 7454/* harmony export */ }); 7455function appendSlide(slides) { 7456 const swiper = this; 7457 const { 7458 params, 7459 slidesEl 7460 } = swiper; 7461 if (params.loop) { 7462 swiper.loopDestroy(); 7463 } 7464 const appendElement = slideEl => { 7465 if (typeof slideEl === 'string') { 7466 const tempDOM = document.createElement('div'); 7467 tempDOM.innerHTML = slideEl; 7468 slidesEl.append(tempDOM.children[0]); 7469 tempDOM.innerHTML = ''; 7470 } else { 7471 slidesEl.append(slideEl); 7472 } 7473 }; 7474 if (typeof slides === 'object' && 'length' in slides) { 7475 for (let i = 0; i < slides.length; i += 1) { 7476 if (slides[i]) appendElement(slides[i]); 7477 } 7478 } else { 7479 appendElement(slides); 7480 } 7481 swiper.recalcSlides(); 7482 if (params.loop) { 7483 swiper.loopCreate(); 7484 } 7485 if (!params.observer || swiper.isElement) { 7486 swiper.update(); 7487 } 7488} 7489 7490/***/ }), 7491
vendor: 1,615 bytes, lines 7492-7542
7492/***/ "../../node_modules/swiper/modules/manipulation/methods/prependSlide.js": 7493/*!******************************************************************************!*\ 7494 !*** ../../node_modules/swiper/modules/manipulation/methods/prependSlide.js ***! 7495 \******************************************************************************/ 7496/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 7497 7498__webpack_require__.r(__webpack_exports__); 7499/* harmony export */ __webpack_require__.d(__webpack_exports__, { 7500/* harmony export */ "default": function() { return /* binding */ prependSlide; } 7501/* harmony export */ }); 7502function prependSlide(slides) { 7503 const swiper = this; 7504 const { 7505 params, 7506 activeIndex, 7507 slidesEl 7508 } = swiper; 7509 if (params.loop) { 7510 swiper.loopDestroy(); 7511 } 7512 let newActiveIndex = activeIndex + 1; 7513 const prependElement = slideEl => { 7514 if (typeof slideEl === 'string') { 7515 const tempDOM = document.createElement('div'); 7516 tempDOM.innerHTML = slideEl; 7517 slidesEl.prepend(tempDOM.children[0]); 7518 tempDOM.innerHTML = ''; 7519 } else { 7520 slidesEl.prepend(slideEl); 7521 } 7522 }; 7523 if (typeof slides === 'object' && 'length' in slides) { 7524 for (let i = 0; i < slides.length; i += 1) { 7525 if (slides[i]) prependElement(slides[i]); 7526 } 7527 newActiveIndex = activeIndex + slides.length; 7528 } else { 7529 prependElement(slides); 7530 } 7531 swiper.recalcSlides(); 7532 if (params.loop) { 7533 swiper.loopCreate(); 7534 } 7535 if (!params.observer || swiper.isElement) { 7536 swiper.update(); 7537 } 7538 swiper.slideTo(newActiveIndex, 0, false); 7539} 7540 7541/***/ }), 7542
vendor: 879 bytes, lines 7543-7563
7543/***/ "../../node_modules/swiper/modules/manipulation/methods/removeAllSlides.js": 7544/*!*********************************************************************************!*\ 7545 !*** ../../node_modules/swiper/modules/manipulation/methods/removeAllSlides.js ***! 7546 \*********************************************************************************/ 7547/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 7548 7549__webpack_require__.r(__webpack_exports__); 7550/* harmony export */ __webpack_require__.d(__webpack_exports__, { 7551/* harmony export */ "default": function() { return /* binding */ removeAllSlides; } 7552/* harmony export */ }); 7553function removeAllSlides() { 7554 const swiper = this; 7555 const slidesIndexes = []; 7556 for (let i = 0; i < swiper.slides.length; i += 1) { 7557 slidesIndexes.push(i); 7558 } 7559 swiper.removeSlide(slidesIndexes); 7560} 7561 7562/***/ }), 7563
vendor: 1,869 bytes, lines 7564-7615
7564/***/ "../../node_modules/swiper/modules/manipulation/methods/removeSlide.js": 7565/*!*****************************************************************************!*\ 7566 !*** ../../node_modules/swiper/modules/manipulation/methods/removeSlide.js ***! 7567 \*****************************************************************************/ 7568/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 7569 7570__webpack_require__.r(__webpack_exports__); 7571/* harmony export */ __webpack_require__.d(__webpack_exports__, { 7572/* harmony export */ "default": function() { return /* binding */ removeSlide; } 7573/* harmony export */ }); 7574function removeSlide(slidesIndexes) { 7575 const swiper = this; 7576 const { 7577 params, 7578 activeIndex 7579 } = swiper; 7580 let activeIndexBuffer = activeIndex; 7581 if (params.loop) { 7582 activeIndexBuffer -= swiper.loopedSlides; 7583 swiper.loopDestroy(); 7584 } 7585 let newActiveIndex = activeIndexBuffer; 7586 let indexToRemove; 7587 if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) { 7588 for (let i = 0; i < slidesIndexes.length; i += 1) { 7589 indexToRemove = slidesIndexes[i]; 7590 if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove(); 7591 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 7592 } 7593 newActiveIndex = Math.max(newActiveIndex, 0); 7594 } else { 7595 indexToRemove = slidesIndexes; 7596 if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove(); 7597 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 7598 newActiveIndex = Math.max(newActiveIndex, 0); 7599 } 7600 swiper.recalcSlides(); 7601 if (params.loop) { 7602 swiper.loopCreate(); 7603 } 7604 if (!params.observer || swiper.isElement) { 7605 swiper.update(); 7606 } 7607 if (params.loop) { 7608 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 7609 } else { 7610 swiper.slideTo(newActiveIndex, 0, false); 7611 } 7612} 7613 7614/***/ }), 7615
vendor: 15,843 bytes, lines 7616-8017
7616/***/ "../../node_modules/swiper/modules/mousewheel/mousewheel.js": 7617/*!******************************************************************!*\ 7618 !*** ../../node_modules/swiper/modules/mousewheel/mousewheel.js ***! 7619 \******************************************************************/ 7620/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 7621 7622__webpack_require__.r(__webpack_exports__); 7623/* harmony export */ __webpack_require__.d(__webpack_exports__, { 7624/* harmony export */ "default": function() { return /* binding */ Mousewheel; } 7625/* harmony export */ }); 7626/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 7627/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 7628/* eslint-disable consistent-return */ 7629 7630 7631function Mousewheel({ 7632 swiper, 7633 extendParams, 7634 on, 7635 emit 7636}) { 7637 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 7638 extendParams({ 7639 mousewheel: { 7640 enabled: false, 7641 releaseOnEdges: false, 7642 invert: false, 7643 forceToAxis: false, 7644 sensitivity: 1, 7645 eventsTarget: 'container', 7646 thresholdDelta: null, 7647 thresholdTime: null, 7648 noMousewheelClass: 'swiper-no-mousewheel' 7649 } 7650 }); 7651 swiper.mousewheel = { 7652 enabled: false 7653 }; 7654 let timeout; 7655 let lastScrollTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)(); 7656 let lastEventBeforeSnap; 7657 const recentWheelEvents = []; 7658 function normalize(e) { 7659 // Reasonable defaults 7660 const PIXEL_STEP = 10; 7661 const LINE_HEIGHT = 40; 7662 const PAGE_HEIGHT = 800; 7663 let sX = 0; 7664 let sY = 0; // spinX, spinY 7665 let pX = 0; 7666 let pY = 0; // pixelX, pixelY 7667 7668 // Legacy 7669 if ('detail' in e) { 7670 sY = e.detail; 7671 } 7672 if ('wheelDelta' in e) { 7673 sY = -e.wheelDelta / 120; 7674 } 7675 if ('wheelDeltaY' in e) { 7676 sY = -e.wheelDeltaY / 120; 7677 } 7678 if ('wheelDeltaX' in e) { 7679 sX = -e.wheelDeltaX / 120; 7680 } 7681 7682 // side scrolling on FF with DOMMouseScroll 7683 if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { 7684 sX = sY; 7685 sY = 0; 7686 } 7687 pX = sX * PIXEL_STEP; 7688 pY = sY * PIXEL_STEP; 7689 if ('deltaY' in e) { 7690 pY = e.deltaY; 7691 } 7692 if ('deltaX' in e) { 7693 pX = e.deltaX; 7694 } 7695 if (e.shiftKey && !pX) { 7696 // if user scrolls with shift he wants horizontal scroll 7697 pX = pY; 7698 pY = 0; 7699 } 7700 if ((pX || pY) && e.deltaMode) { 7701 if (e.deltaMode === 1) { 7702 // delta in LINE units 7703 pX *= LINE_HEIGHT; 7704 pY *= LINE_HEIGHT; 7705 } else { 7706 // delta in PAGE units 7707 pX *= PAGE_HEIGHT; 7708 pY *= PAGE_HEIGHT; 7709 } 7710 } 7711 7712 // Fall-back if spin cannot be determined 7713 if (pX && !sX) { 7714 sX = pX < 1 ? -1 : 1; 7715 } 7716 if (pY && !sY) { 7717 sY = pY < 1 ? -1 : 1; 7718 } 7719 return { 7720 spinX: sX, 7721 spinY: sY, 7722 pixelX: pX, 7723 pixelY: pY 7724 }; 7725 } 7726 function handleMouseEnter() { 7727 if (!swiper.enabled) return; 7728 swiper.mouseEntered = true; 7729 } 7730 function handleMouseLeave() { 7731 if (!swiper.enabled) return; 7732 swiper.mouseEntered = false; 7733 } 7734 function animateSlider(newEvent) { 7735 if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) { 7736 // Prevent if delta of wheel scroll delta is below configured threshold 7737 return false; 7738 } 7739 if (swiper.params.mousewheel.thresholdTime && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)() - lastScrollTime < swiper.params.mousewheel.thresholdTime) { 7740 // Prevent if time between scrolls is below configured threshold 7741 return false; 7742 } 7743 7744 // If the movement is NOT big enough and 7745 // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider): 7746 // Don't go any further (avoid insignificant scroll movement). 7747 if (newEvent.delta >= 6 && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)() - lastScrollTime < 60) { 7748 // Return false as a default 7749 return true; 7750 } 7751 // If user is scrolling towards the end: 7752 // If the slider hasn't hit the latest slide or 7753 // if the slider is a loop and 7754 // if the slider isn't moving right now: 7755 // Go to next slide and 7756 // emit a scroll event. 7757 // Else (the user is scrolling towards the beginning) and 7758 // if the slider hasn't hit the first slide or 7759 // if the slider is a loop and 7760 // if the slider isn't moving right now: 7761 // Go to prev slide and 7762 // emit a scroll event. 7763 if (newEvent.direction < 0) { 7764 if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { 7765 swiper.slideNext(); 7766 emit('scroll', newEvent.raw); 7767 } 7768 } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { 7769 swiper.slidePrev(); 7770 emit('scroll', newEvent.raw); 7771 } 7772 // If you got here is because an animation has been triggered so store the current time 7773 lastScrollTime = new window.Date().getTime(); 7774 // Return false as a default 7775 return false; 7776 } 7777 function releaseScroll(newEvent) { 7778 const params = swiper.params.mousewheel; 7779 if (newEvent.direction < 0) { 7780 if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) { 7781 // Return true to animate scroll on edges 7782 return true; 7783 } 7784 } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) { 7785 // Return true to animate scroll on edges 7786 return true; 7787 } 7788 return false; 7789 } 7790 function handle(event) { 7791 let e = event; 7792 let disableParentSwiper = true; 7793 if (!swiper.enabled) return; 7794 7795 // Ignore event if the target or its parents have the swiper-no-mousewheel class 7796 if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return; 7797 const params = swiper.params.mousewheel; 7798 if (swiper.params.cssMode) { 7799 e.preventDefault(); 7800 } 7801 let targetEl = swiper.el; 7802 if (swiper.params.mousewheel.eventsTarget !== 'container') { 7803 targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); 7804 } 7805 const targetElContainsTarget = targetEl && targetEl.contains(e.target); 7806 if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true; 7807 if (e.originalEvent) e = e.originalEvent; // jquery fix 7808 let delta = 0; 7809 const rtlFactor = swiper.rtlTranslate ? -1 : 1; 7810 const data = normalize(e); 7811 if (params.forceToAxis) { 7812 if (swiper.isHorizontal()) { 7813 if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true; 7814 } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true; 7815 } else { 7816 delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY; 7817 } 7818 if (delta === 0) return true; 7819 if (params.invert) delta = -delta; 7820 7821 // Get the scroll positions 7822 let positions = swiper.getTranslate() + delta * params.sensitivity; 7823 if (positions >= swiper.minTranslate()) positions = swiper.minTranslate(); 7824 if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); 7825 7826 // When loop is true: 7827 // the disableParentSwiper will be true. 7828 // When loop is false: 7829 // if the scroll positions is not on edge, 7830 // then the disableParentSwiper will be true. 7831 // if the scroll on edge positions, 7832 // then the disableParentSwiper will be false. 7833 disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate()); 7834 if (disableParentSwiper && swiper.params.nested) e.stopPropagation(); 7835 if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) { 7836 // Register the new event in a variable which stores the relevant data 7837 const newEvent = { 7838 time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)(), 7839 delta: Math.abs(delta), 7840 direction: Math.sign(delta), 7841 raw: event 7842 }; 7843 7844 // Keep the most recent events 7845 if (recentWheelEvents.length >= 2) { 7846 recentWheelEvents.shift(); // only store the last N events 7847 } 7848 7849 const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; 7850 recentWheelEvents.push(newEvent); 7851 7852 // If there is at least one previous recorded event: 7853 // If direction has changed or 7854 // if the scroll is quicker than the previous one: 7855 // Animate the slider. 7856 // Else (this is the first time the wheel is moved): 7857 // Animate the slider. 7858 if (prevEvent) { 7859 if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) { 7860 animateSlider(newEvent); 7861 } 7862 } else { 7863 animateSlider(newEvent); 7864 } 7865 7866 // If it's time to release the scroll: 7867 // Return now so you don't hit the preventDefault. 7868 if (releaseScroll(newEvent)) { 7869 return true; 7870 } 7871 } else { 7872 // Freemode or scrollContainer: 7873 7874 // If we recently snapped after a momentum scroll, then ignore wheel events 7875 // to give time for the deceleration to finish. Stop ignoring after 500 msecs 7876 // or if it's a new scroll (larger delta or inverse sign as last event before 7877 // an end-of-momentum snap). 7878 const newEvent = { 7879 time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.now)(), 7880 delta: Math.abs(delta), 7881 direction: Math.sign(delta) 7882 }; 7883 const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction; 7884 if (!ignoreWheelEvents) { 7885 lastEventBeforeSnap = undefined; 7886 let position = swiper.getTranslate() + delta * params.sensitivity; 7887 const wasBeginning = swiper.isBeginning; 7888 const wasEnd = swiper.isEnd; 7889 if (position >= swiper.minTranslate()) position = swiper.minTranslate(); 7890 if (position <= swiper.maxTranslate()) position = swiper.maxTranslate(); 7891 swiper.setTransition(0); 7892 swiper.setTranslate(position); 7893 swiper.updateProgress(); 7894 swiper.updateActiveIndex(); 7895 swiper.updateSlidesClasses(); 7896 if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) { 7897 swiper.updateSlidesClasses(); 7898 } 7899 if (swiper.params.loop) { 7900 swiper.loopFix({ 7901 direction: newEvent.direction < 0 ? 'next' : 'prev', 7902 byMousewheel: true 7903 }); 7904 } 7905 if (swiper.params.freeMode.sticky) { 7906 // When wheel scrolling starts with sticky (aka snap) enabled, then detect 7907 // the end of a momentum scroll by storing recent (N=15?) wheel events. 7908 // 1. do all N events have decreasing or same (absolute value) delta? 7909 // 2. did all N events arrive in the last M (M=500?) msecs? 7910 // 3. does the earliest event have an (absolute value) delta that's 7911 // at least P (P=1?) larger than the most recent event's delta? 7912 // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels? 7913 // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration. 7914 // Snap immediately and ignore remaining wheel events in this scroll. 7915 // See comment above for "remaining wheel events in this scroll" determination. 7916 // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event. 7917 clearTimeout(timeout); 7918 timeout = undefined; 7919 if (recentWheelEvents.length >= 15) { 7920 recentWheelEvents.shift(); // only store the last N events 7921 } 7922 7923 const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; 7924 const firstEvent = recentWheelEvents[0]; 7925 recentWheelEvents.push(newEvent); 7926 if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) { 7927 // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log. 7928 recentWheelEvents.splice(0); 7929 } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) { 7930 // We're at the end of the deceleration of a momentum scroll, so there's no need 7931 // to wait for more events. Snap ASAP on the next tick. 7932 // Also, because there's some remaining momentum we'll bias the snap in the 7933 // direction of the ongoing scroll because it's better UX for the scroll to snap 7934 // in the same direction as the scroll instead of reversing to snap. Therefore, 7935 // if it's already scrolled more than 20% in the current direction, keep going. 7936 const snapToThreshold = delta > 0 ? 0.8 : 0.2; 7937 lastEventBeforeSnap = newEvent; 7938 recentWheelEvents.splice(0); 7939 timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => { 7940 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 7941 }, 0); // no delay; move on next tick 7942 } 7943 7944 if (!timeout) { 7945 // if we get here, then we haven't detected the end of a momentum scroll, so 7946 // we'll consider a scroll "complete" when there haven't been any wheel events 7947 // for 500ms. 7948 timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => { 7949 const snapToThreshold = 0.5; 7950 lastEventBeforeSnap = newEvent; 7951 recentWheelEvents.splice(0); 7952 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 7953 }, 500); 7954 } 7955 } 7956 7957 // Emit event 7958 if (!ignoreWheelEvents) emit('scroll', e); 7959 7960 // Stop autoplay 7961 if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); 7962 // Return page scroll on edge positions 7963 if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true; 7964 } 7965 } 7966 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 7967 return false; 7968 } 7969 function events(method) { 7970 let targetEl = swiper.el; 7971 if (swiper.params.mousewheel.eventsTarget !== 'container') { 7972 targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); 7973 } 7974 targetEl[method]('mouseenter', handleMouseEnter); 7975 targetEl[method]('mouseleave', handleMouseLeave); 7976 targetEl[method]('wheel', handle); 7977 } 7978 function enable() { 7979 if (swiper.params.cssMode) { 7980 swiper.wrapperEl.removeEventListener('wheel', handle); 7981 return true; 7982 } 7983 if (swiper.mousewheel.enabled) return false; 7984 events('addEventListener'); 7985 swiper.mousewheel.enabled = true; 7986 return true; 7987 } 7988 function disable() { 7989 if (swiper.params.cssMode) { 7990 swiper.wrapperEl.addEventListener(event, handle); 7991 return true; 7992 } 7993 if (!swiper.mousewheel.enabled) return false; 7994 events('removeEventListener'); 7995 swiper.mousewheel.enabled = false; 7996 return true; 7997 } 7998 on('init', () => { 7999 if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) { 8000 disable(); 8001 } 8002 if (swiper.params.mousewheel.enabled) enable(); 8003 }); 8004 on('destroy', () => { 8005 if (swiper.params.cssMode) { 8006 enable(); 8007 } 8008 if (swiper.mousewheel.enabled) disable(); 8009 }); 8010 Object.assign(swiper.mousewheel, { 8011 enable, 8012 disable 8013 }); 8014} 8015 8016/***/ }), 8017
vendor: 6,685 bytes, lines 8018-8217
8018/***/ "../../node_modules/swiper/modules/navigation/navigation.js": 8019/*!******************************************************************!*\ 8020 !*** ../../node_modules/swiper/modules/navigation/navigation.js ***! 8021 \******************************************************************/ 8022/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 8023 8024__webpack_require__.r(__webpack_exports__); 8025/* harmony export */ __webpack_require__.d(__webpack_exports__, { 8026/* harmony export */ "default": function() { return /* binding */ Navigation; } 8027/* harmony export */ }); 8028/* 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"); 8029 8030function Navigation({ 8031 swiper, 8032 extendParams, 8033 on, 8034 emit 8035}) { 8036 extendParams({ 8037 navigation: { 8038 nextEl: null, 8039 prevEl: null, 8040 hideOnClick: false, 8041 disabledClass: 'swiper-button-disabled', 8042 hiddenClass: 'swiper-button-hidden', 8043 lockClass: 'swiper-button-lock', 8044 navigationDisabledClass: 'swiper-navigation-disabled' 8045 } 8046 }); 8047 swiper.navigation = { 8048 nextEl: null, 8049 prevEl: null 8050 }; 8051 const makeElementsArray = el => { 8052 if (!Array.isArray(el)) el = [el].filter(e => !!e); 8053 return el; 8054 }; 8055 function getEl(el) { 8056 let res; 8057 if (el && typeof el === 'string' && swiper.isElement) { 8058 res = swiper.el.shadowRoot.querySelector(el); 8059 if (res) return res; 8060 } 8061 if (el) { 8062 if (typeof el === 'string') res = [...document.querySelectorAll(el)]; 8063 if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) { 8064 res = swiper.el.querySelector(el); 8065 } 8066 } 8067 if (el && !res) return el; 8068 // if (Array.isArray(res) && res.length === 1) res = res[0]; 8069 return res; 8070 } 8071 function toggleEl(el, disabled) { 8072 const params = swiper.params.navigation; 8073 el = makeElementsArray(el); 8074 el.forEach(subEl => { 8075 if (subEl) { 8076 subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' ')); 8077 if (subEl.tagName === 'BUTTON') subEl.disabled = disabled; 8078 if (swiper.params.watchOverflow && swiper.enabled) { 8079 subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); 8080 } 8081 } 8082 }); 8083 } 8084 function update() { 8085 // Update Navigation Buttons 8086 const { 8087 nextEl, 8088 prevEl 8089 } = swiper.navigation; 8090 if (swiper.params.loop) { 8091 toggleEl(prevEl, false); 8092 toggleEl(nextEl, false); 8093 return; 8094 } 8095 toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind); 8096 toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind); 8097 } 8098 function onPrevClick(e) { 8099 e.preventDefault(); 8100 if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return; 8101 swiper.slidePrev(); 8102 emit('navigationPrev'); 8103 } 8104 function onNextClick(e) { 8105 e.preventDefault(); 8106 if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return; 8107 swiper.slideNext(); 8108 emit('navigationNext'); 8109 } 8110 function init() { 8111 const params = swiper.params.navigation; 8112 swiper.params.navigation = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper, swiper.originalParams.navigation, swiper.params.navigation, { 8113 nextEl: 'swiper-button-next', 8114 prevEl: 'swiper-button-prev' 8115 }); 8116 if (!(params.nextEl || params.prevEl)) return; 8117 let nextEl = getEl(params.nextEl); 8118 let prevEl = getEl(params.prevEl); 8119 Object.assign(swiper.navigation, { 8120 nextEl, 8121 prevEl 8122 }); 8123 nextEl = makeElementsArray(nextEl); 8124 prevEl = makeElementsArray(prevEl); 8125 const initButton = (el, dir) => { 8126 if (el) { 8127 el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick); 8128 } 8129 if (!swiper.enabled && el) { 8130 el.classList.add(...params.lockClass.split(' ')); 8131 } 8132 }; 8133 nextEl.forEach(el => initButton(el, 'next')); 8134 prevEl.forEach(el => initButton(el, 'prev')); 8135 } 8136 function destroy() { 8137 let { 8138 nextEl, 8139 prevEl 8140 } = swiper.navigation; 8141 nextEl = makeElementsArray(nextEl); 8142 prevEl = makeElementsArray(prevEl); 8143 const destroyButton = (el, dir) => { 8144 el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick); 8145 el.classList.remove(...swiper.params.navigation.disabledClass.split(' ')); 8146 }; 8147 nextEl.forEach(el => destroyButton(el, 'next')); 8148 prevEl.forEach(el => destroyButton(el, 'prev')); 8149 } 8150 on('init', () => { 8151 if (swiper.params.navigation.enabled === false) { 8152 // eslint-disable-next-line 8153 disable(); 8154 } else { 8155 init(); 8156 update(); 8157 } 8158 }); 8159 on('toEdge fromEdge lock unlock', () => { 8160 update(); 8161 }); 8162 on('destroy', () => { 8163 destroy(); 8164 }); 8165 on('enable disable', () => { 8166 let { 8167 nextEl, 8168 prevEl 8169 } = swiper.navigation; 8170 nextEl = makeElementsArray(nextEl); 8171 prevEl = makeElementsArray(prevEl); 8172 [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.navigation.lockClass)); 8173 }); 8174 on('click', (_s, e) => { 8175 let { 8176 nextEl, 8177 prevEl 8178 } = swiper.navigation; 8179 nextEl = makeElementsArray(nextEl); 8180 prevEl = makeElementsArray(prevEl); 8181 const targetEl = e.target; 8182 if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) { 8183 if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return; 8184 let isHidden; 8185 if (nextEl.length) { 8186 isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass); 8187 } else if (prevEl.length) { 8188 isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass); 8189 } 8190 if (isHidden === true) { 8191 emit('navigationShow'); 8192 } else { 8193 emit('navigationHide'); 8194 } 8195 [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass)); 8196 } 8197 }); 8198 const enable = () => { 8199 swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' ')); 8200 init(); 8201 update(); 8202 }; 8203 const disable = () => { 8204 swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' ')); 8205 destroy(); 8206 }; 8207 Object.assign(swiper.navigation, { 8208 enable, 8209 disable, 8210 update, 8211 init, 8212 destroy 8213 }); 8214} 8215 8216/***/ }), 8217
vendor: 18,703 bytes, lines 8218-8687
8218/***/ "../../node_modules/swiper/modules/pagination/pagination.js": 8219/*!******************************************************************!*\ 8220 !*** ../../node_modules/swiper/modules/pagination/pagination.js ***! 8221 \******************************************************************/ 8222/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 8223 8224__webpack_require__.r(__webpack_exports__); 8225/* harmony export */ __webpack_require__.d(__webpack_exports__, { 8226/* harmony export */ "default": function() { return /* binding */ Pagination; } 8227/* harmony export */ }); 8228/* 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"); 8229/* 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"); 8230/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 8231 8232 8233 8234function Pagination({ 8235 swiper, 8236 extendParams, 8237 on, 8238 emit 8239}) { 8240 const pfx = 'swiper-pagination'; 8241 extendParams({ 8242 pagination: { 8243 el: null, 8244 bulletElement: 'span', 8245 clickable: false, 8246 hideOnClick: false, 8247 renderBullet: null, 8248 renderProgressbar: null, 8249 renderFraction: null, 8250 renderCustom: null, 8251 progressbarOpposite: false, 8252 type: 'bullets', 8253 // 'bullets' or 'progressbar' or 'fraction' or 'custom' 8254 dynamicBullets: false, 8255 dynamicMainBullets: 1, 8256 formatFractionCurrent: number => number, 8257 formatFractionTotal: number => number, 8258 bulletClass: `${pfx}-bullet`, 8259 bulletActiveClass: `${pfx}-bullet-active`, 8260 modifierClass: `${pfx}-`, 8261 currentClass: `${pfx}-current`, 8262 totalClass: `${pfx}-total`, 8263 hiddenClass: `${pfx}-hidden`, 8264 progressbarFillClass: `${pfx}-progressbar-fill`, 8265 progressbarOppositeClass: `${pfx}-progressbar-opposite`, 8266 clickableClass: `${pfx}-clickable`, 8267 lockClass: `${pfx}-lock`, 8268 horizontalClass: `${pfx}-horizontal`, 8269 verticalClass: `${pfx}-vertical`, 8270 paginationDisabledClass: `${pfx}-disabled` 8271 } 8272 }); 8273 swiper.pagination = { 8274 el: null, 8275 bullets: [] 8276 }; 8277 let bulletSize; 8278 let dynamicBulletIndex = 0; 8279 const makeElementsArray = el => { 8280 if (!Array.isArray(el)) el = [el].filter(e => !!e); 8281 return el; 8282 }; 8283 function isPaginationDisabled() { 8284 return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0; 8285 } 8286 function setSideBullets(bulletEl, position) { 8287 const { 8288 bulletActiveClass 8289 } = swiper.params.pagination; 8290 if (!bulletEl) return; 8291 bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; 8292 if (bulletEl) { 8293 bulletEl.classList.add(`${bulletActiveClass}-${position}`); 8294 bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; 8295 if (bulletEl) { 8296 bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`); 8297 } 8298 } 8299 } 8300 function onBulletClick(e) { 8301 const bulletEl = e.target.closest((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass)); 8302 if (!bulletEl) { 8303 return; 8304 } 8305 e.preventDefault(); 8306 const index = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.elementIndex)(bulletEl) * swiper.params.slidesPerGroup; 8307 if (swiper.params.loop) { 8308 if (swiper.realIndex === index) return; 8309 const newSlideIndex = swiper.getSlideIndexByData(index); 8310 const currentSlideIndex = swiper.getSlideIndexByData(swiper.realIndex); 8311 if (newSlideIndex > swiper.slides.length - swiper.loopedSlides) { 8312 swiper.loopFix({ 8313 direction: newSlideIndex > currentSlideIndex ? 'next' : 'prev', 8314 activeSlideIndex: newSlideIndex, 8315 slideTo: false 8316 }); 8317 } 8318 swiper.slideToLoop(index); 8319 } else { 8320 swiper.slideTo(index); 8321 } 8322 } 8323 function update() { 8324 // Render || Update Pagination bullets/items 8325 const rtl = swiper.rtl; 8326 const params = swiper.params.pagination; 8327 if (isPaginationDisabled()) return; 8328 let el = swiper.pagination.el; 8329 el = makeElementsArray(el); 8330 // Current/Total 8331 let current; 8332 let previousIndex; 8333 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 8334 const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 8335 if (swiper.params.loop) { 8336 previousIndex = swiper.previousRealIndex || 0; 8337 current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex; 8338 } else if (typeof swiper.snapIndex !== 'undefined') { 8339 current = swiper.snapIndex; 8340 previousIndex = swiper.previousSnapIndex; 8341 } else { 8342 previousIndex = swiper.previousIndex || 0; 8343 current = swiper.activeIndex || 0; 8344 } 8345 // Types 8346 if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { 8347 const bullets = swiper.pagination.bullets; 8348 let firstIndex; 8349 let lastIndex; 8350 let midIndex; 8351 if (params.dynamicBullets) { 8352 bulletSize = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.elementOuterSize)(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true); 8353 el.forEach(subEl => { 8354 subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`; 8355 }); 8356 if (params.dynamicMainBullets > 1 && previousIndex !== undefined) { 8357 dynamicBulletIndex += current - (previousIndex || 0); 8358 if (dynamicBulletIndex > params.dynamicMainBullets - 1) { 8359 dynamicBulletIndex = params.dynamicMainBullets - 1; 8360 } else if (dynamicBulletIndex < 0) { 8361 dynamicBulletIndex = 0; 8362 } 8363 } 8364 firstIndex = Math.max(current - dynamicBulletIndex, 0); 8365 lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1); 8366 midIndex = (lastIndex + firstIndex) / 2; 8367 } 8368 bullets.forEach(bulletEl => { 8369 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(); 8370 bulletEl.classList.remove(...classesToRemove); 8371 }); 8372 if (el.length > 1) { 8373 bullets.forEach(bullet => { 8374 const bulletIndex = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.elementIndex)(bullet); 8375 if (bulletIndex === current) { 8376 bullet.classList.add(...params.bulletActiveClass.split(' ')); 8377 } else if (swiper.isElement) { 8378 bullet.setAttribute('part', 'bullet'); 8379 } 8380 if (params.dynamicBullets) { 8381 if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { 8382 bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' ')); 8383 } 8384 if (bulletIndex === firstIndex) { 8385 setSideBullets(bullet, 'prev'); 8386 } 8387 if (bulletIndex === lastIndex) { 8388 setSideBullets(bullet, 'next'); 8389 } 8390 } 8391 }); 8392 } else { 8393 const bullet = bullets[current]; 8394 if (bullet) { 8395 bullet.classList.add(...params.bulletActiveClass.split(' ')); 8396 } 8397 if (swiper.isElement) { 8398 bullets.forEach((bulletEl, bulletIndex) => { 8399 bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet'); 8400 }); 8401 } 8402 if (params.dynamicBullets) { 8403 const firstDisplayedBullet = bullets[firstIndex]; 8404 const lastDisplayedBullet = bullets[lastIndex]; 8405 for (let i = firstIndex; i <= lastIndex; i += 1) { 8406 if (bullets[i]) { 8407 bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' ')); 8408 } 8409 } 8410 setSideBullets(firstDisplayedBullet, 'prev'); 8411 setSideBullets(lastDisplayedBullet, 'next'); 8412 } 8413 } 8414 if (params.dynamicBullets) { 8415 const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); 8416 const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize; 8417 const offsetProp = rtl ? 'right' : 'left'; 8418 bullets.forEach(bullet => { 8419 bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`; 8420 }); 8421 } 8422 } 8423 el.forEach((subEl, subElIndex) => { 8424 if (params.type === 'fraction') { 8425 subEl.querySelectorAll((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.currentClass)).forEach(fractionEl => { 8426 fractionEl.textContent = params.formatFractionCurrent(current + 1); 8427 }); 8428 subEl.querySelectorAll((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.totalClass)).forEach(totalEl => { 8429 totalEl.textContent = params.formatFractionTotal(total); 8430 }); 8431 } 8432 if (params.type === 'progressbar') { 8433 let progressbarDirection; 8434 if (params.progressbarOpposite) { 8435 progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal'; 8436 } else { 8437 progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical'; 8438 } 8439 const scale = (current + 1) / total; 8440 let scaleX = 1; 8441 let scaleY = 1; 8442 if (progressbarDirection === 'horizontal') { 8443 scaleX = scale; 8444 } else { 8445 scaleY = scale; 8446 } 8447 subEl.querySelectorAll((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.progressbarFillClass)).forEach(progressEl => { 8448 progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`; 8449 progressEl.style.transitionDuration = `${swiper.params.speed}ms`; 8450 }); 8451 } 8452 if (params.type === 'custom' && params.renderCustom) { 8453 subEl.innerHTML = params.renderCustom(swiper, current + 1, total); 8454 if (subElIndex === 0) emit('paginationRender', subEl); 8455 } else { 8456 if (subElIndex === 0) emit('paginationRender', subEl); 8457 emit('paginationUpdate', subEl); 8458 } 8459 if (swiper.params.watchOverflow && swiper.enabled) { 8460 subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); 8461 } 8462 }); 8463 } 8464 function render() { 8465 // Render Container 8466 const params = swiper.params.pagination; 8467 if (isPaginationDisabled()) return; 8468 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 8469 let el = swiper.pagination.el; 8470 el = makeElementsArray(el); 8471 let paginationHTML = ''; 8472 if (params.type === 'bullets') { 8473 let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 8474 if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) { 8475 numberOfBullets = slidesLength; 8476 } 8477 for (let i = 0; i < numberOfBullets; i += 1) { 8478 if (params.renderBullet) { 8479 paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); 8480 } else { 8481 // prettier-ignore 8482 paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}"></${params.bulletElement}>`; 8483 } 8484 } 8485 } 8486 if (params.type === 'fraction') { 8487 if (params.renderFraction) { 8488 paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); 8489 } else { 8490 paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`; 8491 } 8492 } 8493 if (params.type === 'progressbar') { 8494 if (params.renderProgressbar) { 8495 paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); 8496 } else { 8497 paginationHTML = `<span class="${params.progressbarFillClass}"></span>`; 8498 } 8499 } 8500 swiper.pagination.bullets = []; 8501 el.forEach(subEl => { 8502 if (params.type !== 'custom') { 8503 subEl.innerHTML = paginationHTML || ''; 8504 } 8505 if (params.type === 'bullets') { 8506 swiper.pagination.bullets.push(...subEl.querySelectorAll((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.bulletClass))); 8507 } 8508 }); 8509 if (params.type !== 'custom') { 8510 emit('paginationRender', el[0]); 8511 } 8512 } 8513 function init() { 8514 swiper.params.pagination = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper, swiper.originalParams.pagination, swiper.params.pagination, { 8515 el: 'swiper-pagination' 8516 }); 8517 const params = swiper.params.pagination; 8518 if (!params.el) return; 8519 let el; 8520 if (typeof params.el === 'string' && swiper.isElement) { 8521 el = swiper.el.shadowRoot.querySelector(params.el); 8522 } 8523 if (!el && typeof params.el === 'string') { 8524 el = [...document.querySelectorAll(params.el)]; 8525 } 8526 if (!el) { 8527 el = params.el; 8528 } 8529 if (!el || el.length === 0) return; 8530 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) { 8531 el = [...swiper.el.querySelectorAll(params.el)]; 8532 // check if it belongs to another nested Swiper 8533 if (el.length > 1) { 8534 el = el.filter(subEl => { 8535 if ((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.elementParents)(subEl, '.swiper')[0] !== swiper.el) return false; 8536 return true; 8537 })[0]; 8538 } 8539 } 8540 if (Array.isArray(el) && el.length === 1) el = el[0]; 8541 Object.assign(swiper.pagination, { 8542 el 8543 }); 8544 el = makeElementsArray(el); 8545 el.forEach(subEl => { 8546 if (params.type === 'bullets' && params.clickable) { 8547 subEl.classList.add(params.clickableClass); 8548 } 8549 subEl.classList.add(params.modifierClass + params.type); 8550 subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 8551 if (params.type === 'bullets' && params.dynamicBullets) { 8552 subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`); 8553 dynamicBulletIndex = 0; 8554 if (params.dynamicMainBullets < 1) { 8555 params.dynamicMainBullets = 1; 8556 } 8557 } 8558 if (params.type === 'progressbar' && params.progressbarOpposite) { 8559 subEl.classList.add(params.progressbarOppositeClass); 8560 } 8561 if (params.clickable) { 8562 subEl.addEventListener('click', onBulletClick); 8563 } 8564 if (!swiper.enabled) { 8565 subEl.classList.add(params.lockClass); 8566 } 8567 }); 8568 } 8569 function destroy() { 8570 const params = swiper.params.pagination; 8571 if (isPaginationDisabled()) return; 8572 let el = swiper.pagination.el; 8573 if (el) { 8574 el = makeElementsArray(el); 8575 el.forEach(subEl => { 8576 subEl.classList.remove(params.hiddenClass); 8577 subEl.classList.remove(params.modifierClass + params.type); 8578 subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 8579 if (params.clickable) { 8580 subEl.removeEventListener('click', onBulletClick); 8581 } 8582 }); 8583 } 8584 if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' '))); 8585 } 8586 on('changeDirection', () => { 8587 if (!swiper.pagination || !swiper.pagination.el) return; 8588 const params = swiper.params.pagination; 8589 let { 8590 el 8591 } = swiper.pagination; 8592 el = makeElementsArray(el); 8593 el.forEach(subEl => { 8594 subEl.classList.remove(params.horizontalClass, params.verticalClass); 8595 subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 8596 }); 8597 }); 8598 on('init', () => { 8599 if (swiper.params.pagination.enabled === false) { 8600 // eslint-disable-next-line 8601 disable(); 8602 } else { 8603 init(); 8604 render(); 8605 update(); 8606 } 8607 }); 8608 on('activeIndexChange', () => { 8609 if (typeof swiper.snapIndex === 'undefined') { 8610 update(); 8611 } 8612 }); 8613 on('snapIndexChange', () => { 8614 update(); 8615 }); 8616 on('snapGridLengthChange', () => { 8617 render(); 8618 update(); 8619 }); 8620 on('destroy', () => { 8621 destroy(); 8622 }); 8623 on('enable disable', () => { 8624 let { 8625 el 8626 } = swiper.pagination; 8627 if (el) { 8628 el = makeElementsArray(el); 8629 el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass)); 8630 } 8631 }); 8632 on('lock unlock', () => { 8633 update(); 8634 }); 8635 on('click', (_s, e) => { 8636 const targetEl = e.target; 8637 let { 8638 el 8639 } = swiper.pagination; 8640 if (!Array.isArray(el)) el = [el].filter(element => !!element); 8641 if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) { 8642 if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return; 8643 const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass); 8644 if (isHidden === true) { 8645 emit('paginationShow'); 8646 } else { 8647 emit('paginationHide'); 8648 } 8649 el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass)); 8650 } 8651 }); 8652 const enable = () => { 8653 swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass); 8654 let { 8655 el 8656 } = swiper.pagination; 8657 if (el) { 8658 el = makeElementsArray(el); 8659 el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass)); 8660 } 8661 init(); 8662 render(); 8663 update(); 8664 }; 8665 const disable = () => { 8666 swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass); 8667 let { 8668 el 8669 } = swiper.pagination; 8670 if (el) { 8671 el = makeElementsArray(el); 8672 el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass)); 8673 } 8674 destroy(); 8675 }; 8676 Object.assign(swiper.pagination, { 8677 enable, 8678 disable, 8679 render, 8680 update, 8681 init, 8682 destroy 8683 }); 8684} 8685 8686/***/ }), 8687
vendor: 4,529 bytes, lines 8688-8807
8688/***/ "../../node_modules/swiper/modules/parallax/parallax.js": 8689/*!**************************************************************!*\ 8690 !*** ../../node_modules/swiper/modules/parallax/parallax.js ***! 8691 \**************************************************************/ 8692/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 8693 8694__webpack_require__.r(__webpack_exports__); 8695/* harmony export */ __webpack_require__.d(__webpack_exports__, { 8696/* harmony export */ "default": function() { return /* binding */ Parallax; } 8697/* harmony export */ }); 8698/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 8699 8700function Parallax({ 8701 swiper, 8702 extendParams, 8703 on 8704}) { 8705 extendParams({ 8706 parallax: { 8707 enabled: false 8708 } 8709 }); 8710 const setTransform = (el, progress) => { 8711 const { 8712 rtl 8713 } = swiper; 8714 const rtlFactor = rtl ? -1 : 1; 8715 const p = el.getAttribute('data-swiper-parallax') || '0'; 8716 let x = el.getAttribute('data-swiper-parallax-x'); 8717 let y = el.getAttribute('data-swiper-parallax-y'); 8718 const scale = el.getAttribute('data-swiper-parallax-scale'); 8719 const opacity = el.getAttribute('data-swiper-parallax-opacity'); 8720 const rotate = el.getAttribute('data-swiper-parallax-rotate'); 8721 if (x || y) { 8722 x = x || '0'; 8723 y = y || '0'; 8724 } else if (swiper.isHorizontal()) { 8725 x = p; 8726 y = '0'; 8727 } else { 8728 y = p; 8729 x = '0'; 8730 } 8731 if (x.indexOf('%') >= 0) { 8732 x = `${parseInt(x, 10) * progress * rtlFactor}%`; 8733 } else { 8734 x = `${x * progress * rtlFactor}px`; 8735 } 8736 if (y.indexOf('%') >= 0) { 8737 y = `${parseInt(y, 10) * progress}%`; 8738 } else { 8739 y = `${y * progress}px`; 8740 } 8741 if (typeof opacity !== 'undefined' && opacity !== null) { 8742 const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress)); 8743 el.style.opacity = currentOpacity; 8744 } 8745 let transform = `translate3d(${x}, ${y}, 0px)`; 8746 if (typeof scale !== 'undefined' && scale !== null) { 8747 const currentScale = scale - (scale - 1) * (1 - Math.abs(progress)); 8748 transform += ` scale(${currentScale})`; 8749 } 8750 if (rotate && typeof rotate !== 'undefined' && rotate !== null) { 8751 const currentRotate = rotate * progress * -1; 8752 transform += ` rotate(${currentRotate}deg)`; 8753 } 8754 el.style.transform = transform; 8755 }; 8756 const setTranslate = () => { 8757 const { 8758 el, 8759 slides, 8760 progress, 8761 snapGrid 8762 } = swiper; 8763 (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 => { 8764 setTransform(subEl, progress); 8765 }); 8766 slides.forEach((slideEl, slideIndex) => { 8767 let slideProgress = slideEl.progress; 8768 if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { 8769 slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1); 8770 } 8771 slideProgress = Math.min(Math.max(slideProgress, -1), 1); 8772 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 => { 8773 setTransform(subEl, slideProgress); 8774 }); 8775 }); 8776 }; 8777 const setTransition = (duration = swiper.params.speed) => { 8778 const { 8779 el 8780 } = swiper; 8781 el.querySelectorAll('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').forEach(parallaxEl => { 8782 let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration; 8783 if (duration === 0) parallaxDuration = 0; 8784 parallaxEl.style.transitionDuration = `${parallaxDuration}ms`; 8785 }); 8786 }; 8787 on('beforeInit', () => { 8788 if (!swiper.params.parallax.enabled) return; 8789 swiper.params.watchSlidesProgress = true; 8790 swiper.originalParams.watchSlidesProgress = true; 8791 }); 8792 on('init', () => { 8793 if (!swiper.params.parallax.enabled) return; 8794 setTranslate(); 8795 }); 8796 on('setTranslate', () => { 8797 if (!swiper.params.parallax.enabled) return; 8798 setTranslate(); 8799 }); 8800 on('setTransition', (_swiper, duration) => { 8801 if (!swiper.params.parallax.enabled) return; 8802 setTransition(duration); 8803 }); 8804} 8805 8806/***/ }), 8807
vendor: 11,380 bytes, lines 8808-9171
8808/***/ "../../node_modules/swiper/modules/scrollbar/scrollbar.js": 8809/*!****************************************************************!*\ 8810 !*** ../../node_modules/swiper/modules/scrollbar/scrollbar.js ***! 8811 \****************************************************************/ 8812/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 8813 8814__webpack_require__.r(__webpack_exports__); 8815/* harmony export */ __webpack_require__.d(__webpack_exports__, { 8816/* harmony export */ "default": function() { return /* binding */ Scrollbar; } 8817/* harmony export */ }); 8818/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 8819/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 8820/* 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"); 8821 8822 8823 8824function Scrollbar({ 8825 swiper, 8826 extendParams, 8827 on, 8828 emit 8829}) { 8830 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 8831 let isTouched = false; 8832 let timeout = null; 8833 let dragTimeout = null; 8834 let dragStartPos; 8835 let dragSize; 8836 let trackSize; 8837 let divider; 8838 extendParams({ 8839 scrollbar: { 8840 el: null, 8841 dragSize: 'auto', 8842 hide: false, 8843 draggable: false, 8844 snapOnRelease: true, 8845 lockClass: 'swiper-scrollbar-lock', 8846 dragClass: 'swiper-scrollbar-drag', 8847 scrollbarDisabledClass: 'swiper-scrollbar-disabled', 8848 horizontalClass: `swiper-scrollbar-horizontal`, 8849 verticalClass: `swiper-scrollbar-vertical` 8850 } 8851 }); 8852 swiper.scrollbar = { 8853 el: null, 8854 dragEl: null 8855 }; 8856 function setTranslate() { 8857 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 8858 const { 8859 scrollbar, 8860 rtlTranslate: rtl 8861 } = swiper; 8862 const { 8863 dragEl, 8864 el 8865 } = scrollbar; 8866 const params = swiper.params.scrollbar; 8867 const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress; 8868 let newSize = dragSize; 8869 let newPos = (trackSize - dragSize) * progress; 8870 if (rtl) { 8871 newPos = -newPos; 8872 if (newPos > 0) { 8873 newSize = dragSize - newPos; 8874 newPos = 0; 8875 } else if (-newPos + dragSize > trackSize) { 8876 newSize = trackSize + newPos; 8877 } 8878 } else if (newPos < 0) { 8879 newSize = dragSize + newPos; 8880 newPos = 0; 8881 } else if (newPos + dragSize > trackSize) { 8882 newSize = trackSize - newPos; 8883 } 8884 if (swiper.isHorizontal()) { 8885 dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`; 8886 dragEl.style.width = `${newSize}px`; 8887 } else { 8888 dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`; 8889 dragEl.style.height = `${newSize}px`; 8890 } 8891 if (params.hide) { 8892 clearTimeout(timeout); 8893 el.style.opacity = 1; 8894 timeout = setTimeout(() => { 8895 el.style.opacity = 0; 8896 el.style.transitionDuration = '400ms'; 8897 }, 1000); 8898 } 8899 } 8900 function setTransition(duration) { 8901 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 8902 swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`; 8903 } 8904 function updateSize() { 8905 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 8906 const { 8907 scrollbar 8908 } = swiper; 8909 const { 8910 dragEl, 8911 el 8912 } = scrollbar; 8913 dragEl.style.width = ''; 8914 dragEl.style.height = ''; 8915 trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight; 8916 divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0)); 8917 if (swiper.params.scrollbar.dragSize === 'auto') { 8918 dragSize = trackSize * divider; 8919 } else { 8920 dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); 8921 } 8922 if (swiper.isHorizontal()) { 8923 dragEl.style.width = `${dragSize}px`; 8924 } else { 8925 dragEl.style.height = `${dragSize}px`; 8926 } 8927 if (divider >= 1) { 8928 el.style.display = 'none'; 8929 } else { 8930 el.style.display = ''; 8931 } 8932 if (swiper.params.scrollbar.hide) { 8933 el.style.opacity = 0; 8934 } 8935 if (swiper.params.watchOverflow && swiper.enabled) { 8936 scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass); 8937 } 8938 } 8939 function getPointerPosition(e) { 8940 return swiper.isHorizontal() ? e.clientX : e.clientY; 8941 } 8942 function setDragPosition(e) { 8943 const { 8944 scrollbar, 8945 rtlTranslate: rtl 8946 } = swiper; 8947 const { 8948 el 8949 } = scrollbar; 8950 let positionRatio; 8951 positionRatio = (getPointerPosition(e) - (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementOffset)(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize); 8952 positionRatio = Math.max(Math.min(positionRatio, 1), 0); 8953 if (rtl) { 8954 positionRatio = 1 - positionRatio; 8955 } 8956 const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio; 8957 swiper.updateProgress(position); 8958 swiper.setTranslate(position); 8959 swiper.updateActiveIndex(); 8960 swiper.updateSlidesClasses(); 8961 } 8962 function onDragStart(e) { 8963 const params = swiper.params.scrollbar; 8964 const { 8965 scrollbar, 8966 wrapperEl 8967 } = swiper; 8968 const { 8969 el, 8970 dragEl 8971 } = scrollbar; 8972 isTouched = true; 8973 dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null; 8974 e.preventDefault(); 8975 e.stopPropagation(); 8976 wrapperEl.style.transitionDuration = '100ms'; 8977 dragEl.style.transitionDuration = '100ms'; 8978 setDragPosition(e); 8979 clearTimeout(dragTimeout); 8980 el.style.transitionDuration = '0ms'; 8981 if (params.hide) { 8982 el.style.opacity = 1; 8983 } 8984 if (swiper.params.cssMode) { 8985 swiper.wrapperEl.style['scroll-snap-type'] = 'none'; 8986 } 8987 emit('scrollbarDragStart', e); 8988 } 8989 function onDragMove(e) { 8990 const { 8991 scrollbar, 8992 wrapperEl 8993 } = swiper; 8994 const { 8995 el, 8996 dragEl 8997 } = scrollbar; 8998 if (!isTouched) return; 8999 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 9000 setDragPosition(e); 9001 wrapperEl.style.transitionDuration = '0ms'; 9002 el.style.transitionDuration = '0ms'; 9003 dragEl.style.transitionDuration = '0ms'; 9004 emit('scrollbarDragMove', e); 9005 } 9006 function onDragEnd(e) { 9007 const params = swiper.params.scrollbar; 9008 const { 9009 scrollbar, 9010 wrapperEl 9011 } = swiper; 9012 const { 9013 el 9014 } = scrollbar; 9015 if (!isTouched) return; 9016 isTouched = false; 9017 if (swiper.params.cssMode) { 9018 swiper.wrapperEl.style['scroll-snap-type'] = ''; 9019 wrapperEl.style.transitionDuration = ''; 9020 } 9021 if (params.hide) { 9022 clearTimeout(dragTimeout); 9023 dragTimeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => { 9024 el.style.opacity = 0; 9025 el.style.transitionDuration = '400ms'; 9026 }, 1000); 9027 } 9028 emit('scrollbarDragEnd', e); 9029 if (params.snapOnRelease) { 9030 swiper.slideToClosest(); 9031 } 9032 } 9033 function events(method) { 9034 const { 9035 scrollbar, 9036 params 9037 } = swiper; 9038 const el = scrollbar.el; 9039 if (!el) return; 9040 const target = el; 9041 const activeListener = params.passiveListeners ? { 9042 passive: false, 9043 capture: false 9044 } : false; 9045 const passiveListener = params.passiveListeners ? { 9046 passive: true, 9047 capture: false 9048 } : false; 9049 if (!target) return; 9050 const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; 9051 target[eventMethod]('pointerdown', onDragStart, activeListener); 9052 document[eventMethod]('pointermove', onDragMove, activeListener); 9053 document[eventMethod]('pointerup', onDragEnd, passiveListener); 9054 } 9055 function enableDraggable() { 9056 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 9057 events('on'); 9058 } 9059 function disableDraggable() { 9060 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 9061 events('off'); 9062 } 9063 function init() { 9064 const { 9065 scrollbar, 9066 el: swiperEl 9067 } = swiper; 9068 swiper.params.scrollbar = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_2__["default"])(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, { 9069 el: 'swiper-scrollbar' 9070 }); 9071 const params = swiper.params.scrollbar; 9072 if (!params.el) return; 9073 let el; 9074 if (typeof params.el === 'string' && swiper.isElement) { 9075 el = swiper.el.shadowRoot.querySelector(params.el); 9076 } 9077 if (!el && typeof params.el === 'string') { 9078 el = document.querySelectorAll(params.el); 9079 } else if (!el) { 9080 el = params.el; 9081 } 9082 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) { 9083 el = swiperEl.querySelector(params.el); 9084 } 9085 if (el.length > 0) el = el[0]; 9086 el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 9087 let dragEl; 9088 if (el) { 9089 dragEl = el.querySelector(`.${swiper.params.scrollbar.dragClass}`); 9090 if (!dragEl) { 9091 dragEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', swiper.params.scrollbar.dragClass); 9092 el.append(dragEl); 9093 } 9094 } 9095 Object.assign(scrollbar, { 9096 el, 9097 dragEl 9098 }); 9099 if (params.draggable) { 9100 enableDraggable(); 9101 } 9102 if (el) { 9103 el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass); 9104 } 9105 } 9106 function destroy() { 9107 const params = swiper.params.scrollbar; 9108 const el = swiper.scrollbar.el; 9109 if (el) { 9110 el.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 9111 } 9112 disableDraggable(); 9113 } 9114 on('init', () => { 9115 if (swiper.params.scrollbar.enabled === false) { 9116 // eslint-disable-next-line 9117 disable(); 9118 } else { 9119 init(); 9120 updateSize(); 9121 setTranslate(); 9122 } 9123 }); 9124 on('update resize observerUpdate lock unlock', () => { 9125 updateSize(); 9126 }); 9127 on('setTranslate', () => { 9128 setTranslate(); 9129 }); 9130 on('setTransition', (_s, duration) => { 9131 setTransition(duration); 9132 }); 9133 on('enable disable', () => { 9134 const { 9135 el 9136 } = swiper.scrollbar; 9137 if (el) { 9138 el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass); 9139 } 9140 }); 9141 on('destroy', () => { 9142 destroy(); 9143 }); 9144 const enable = () => { 9145 swiper.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass); 9146 if (swiper.scrollbar.el) { 9147 swiper.scrollbar.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass); 9148 } 9149 init(); 9150 updateSize(); 9151 setTranslate(); 9152 }; 9153 const disable = () => { 9154 swiper.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass); 9155 if (swiper.scrollbar.el) { 9156 swiper.scrollbar.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass); 9157 } 9158 destroy(); 9159 }; 9160 Object.assign(swiper.scrollbar, { 9161 enable, 9162 disable, 9163 updateSize, 9164 setTranslate, 9165 init, 9166 destroy 9167 }); 9168} 9169 9170/***/ }), 9171
vendor: 8,099 bytes, lines 9172-9376
9172/***/ "../../node_modules/swiper/modules/thumbs/thumbs.js": 9173/*!**********************************************************!*\ 9174 !*** ../../node_modules/swiper/modules/thumbs/thumbs.js ***! 9175 \**********************************************************/ 9176/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 9177 9178__webpack_require__.r(__webpack_exports__); 9179/* harmony export */ __webpack_require__.d(__webpack_exports__, { 9180/* harmony export */ "default": function() { return /* binding */ Thumb; } 9181/* harmony export */ }); 9182/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 9183/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 9184 9185 9186function Thumb({ 9187 swiper, 9188 extendParams, 9189 on 9190}) { 9191 extendParams({ 9192 thumbs: { 9193 swiper: null, 9194 multipleActiveThumbs: true, 9195 autoScrollOffset: 0, 9196 slideThumbActiveClass: 'swiper-slide-thumb-active', 9197 thumbsContainerClass: 'swiper-thumbs' 9198 } 9199 }); 9200 let initialized = false; 9201 let swiperCreated = false; 9202 swiper.thumbs = { 9203 swiper: null 9204 }; 9205 function onThumbClick() { 9206 const thumbsSwiper = swiper.thumbs.swiper; 9207 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 9208 const clickedIndex = thumbsSwiper.clickedIndex; 9209 const clickedSlide = thumbsSwiper.clickedSlide; 9210 if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return; 9211 if (typeof clickedIndex === 'undefined' || clickedIndex === null) return; 9212 let slideToIndex; 9213 if (thumbsSwiper.params.loop) { 9214 slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); 9215 } else { 9216 slideToIndex = clickedIndex; 9217 } 9218 if (swiper.params.loop) { 9219 swiper.slideToLoop(slideToIndex); 9220 } else { 9221 swiper.slideTo(slideToIndex); 9222 } 9223 } 9224 function init() { 9225 const { 9226 thumbs: thumbsParams 9227 } = swiper.params; 9228 if (initialized) return false; 9229 initialized = true; 9230 const SwiperClass = swiper.constructor; 9231 if (thumbsParams.swiper instanceof SwiperClass) { 9232 swiper.thumbs.swiper = thumbsParams.swiper; 9233 Object.assign(swiper.thumbs.swiper.originalParams, { 9234 watchSlidesProgress: true, 9235 slideToClickedSlide: false 9236 }); 9237 Object.assign(swiper.thumbs.swiper.params, { 9238 watchSlidesProgress: true, 9239 slideToClickedSlide: false 9240 }); 9241 swiper.thumbs.swiper.update(); 9242 } else if ((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.isObject)(thumbsParams.swiper)) { 9243 const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper); 9244 Object.assign(thumbsSwiperParams, { 9245 watchSlidesProgress: true, 9246 slideToClickedSlide: false 9247 }); 9248 swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams); 9249 swiperCreated = true; 9250 } 9251 swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass); 9252 swiper.thumbs.swiper.on('tap', onThumbClick); 9253 return true; 9254 } 9255 function update(initial) { 9256 const thumbsSwiper = swiper.thumbs.swiper; 9257 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 9258 const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; 9259 9260 // Activate thumbs 9261 let thumbsToActivate = 1; 9262 const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass; 9263 if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) { 9264 thumbsToActivate = swiper.params.slidesPerView; 9265 } 9266 if (!swiper.params.thumbs.multipleActiveThumbs) { 9267 thumbsToActivate = 1; 9268 } 9269 thumbsToActivate = Math.floor(thumbsToActivate); 9270 thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass)); 9271 if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) { 9272 for (let i = 0; i < thumbsToActivate; i += 1) { 9273 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => { 9274 slideEl.classList.add(thumbActiveClass); 9275 }); 9276 } 9277 } else { 9278 for (let i = 0; i < thumbsToActivate; i += 1) { 9279 if (thumbsSwiper.slides[swiper.realIndex + i]) { 9280 thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass); 9281 } 9282 } 9283 } 9284 const autoScrollOffset = swiper.params.thumbs.autoScrollOffset; 9285 const useOffset = autoScrollOffset && !thumbsSwiper.params.loop; 9286 if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) { 9287 const currentThumbsIndex = thumbsSwiper.activeIndex; 9288 let newThumbsIndex; 9289 let direction; 9290 if (thumbsSwiper.params.loop) { 9291 const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0]; 9292 newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide); 9293 direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev'; 9294 } else { 9295 newThumbsIndex = swiper.realIndex; 9296 direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev'; 9297 } 9298 if (useOffset) { 9299 newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset; 9300 } 9301 if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) { 9302 if (thumbsSwiper.params.centeredSlides) { 9303 if (newThumbsIndex > currentThumbsIndex) { 9304 newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1; 9305 } else { 9306 newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1; 9307 } 9308 } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) { 9309 // newThumbsIndex = newThumbsIndex - slidesPerView + 1; 9310 } 9311 thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined); 9312 } 9313 } 9314 } 9315 on('beforeInit', () => { 9316 const { 9317 thumbs 9318 } = swiper.params; 9319 if (!thumbs || !thumbs.swiper) return; 9320 if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) { 9321 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 9322 const getThumbsElementAndInit = () => { 9323 const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper; 9324 if (thumbsElement && thumbsElement.swiper) { 9325 thumbs.swiper = thumbsElement.swiper; 9326 init(); 9327 update(true); 9328 } else if (thumbsElement) { 9329 const onThumbsSwiper = e => { 9330 thumbs.swiper = e.detail[0]; 9331 thumbsElement.removeEventListener('init', onThumbsSwiper); 9332 init(); 9333 update(true); 9334 thumbs.swiper.update(); 9335 swiper.update(); 9336 }; 9337 thumbsElement.addEventListener('init', onThumbsSwiper); 9338 } 9339 return thumbsElement; 9340 }; 9341 const watchForThumbsToAppear = () => { 9342 if (swiper.destroyed) return; 9343 const thumbsElement = getThumbsElementAndInit(); 9344 if (!thumbsElement) { 9345 requestAnimationFrame(watchForThumbsToAppear); 9346 } 9347 }; 9348 requestAnimationFrame(watchForThumbsToAppear); 9349 } else { 9350 init(); 9351 update(true); 9352 } 9353 }); 9354 on('slideChange update resize observerUpdate', () => { 9355 update(); 9356 }); 9357 on('setTransition', (_s, duration) => { 9358 const thumbsSwiper = swiper.thumbs.swiper; 9359 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 9360 thumbsSwiper.setTransition(duration); 9361 }); 9362 on('beforeDestroy', () => { 9363 const thumbsSwiper = swiper.thumbs.swiper; 9364 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 9365 if (swiperCreated) { 9366 thumbsSwiper.destroy(); 9367 } 9368 }); 9369 Object.assign(swiper.thumbs, { 9370 init, 9371 update 9372 }); 9373} 9374 9375/***/ }), 9376
vendor: 11,600 bytes, lines 9377-9716
9377/***/ "../../node_modules/swiper/modules/virtual/virtual.js": 9378/*!************************************************************!*\ 9379 !*** ../../node_modules/swiper/modules/virtual/virtual.js ***! 9380 \************************************************************/ 9381/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 9382 9383__webpack_require__.r(__webpack_exports__); 9384/* harmony export */ __webpack_require__.d(__webpack_exports__, { 9385/* harmony export */ "default": function() { return /* binding */ Virtual; } 9386/* harmony export */ }); 9387/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 9388/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 9389 9390 9391function Virtual({ 9392 swiper, 9393 extendParams, 9394 on, 9395 emit 9396}) { 9397 extendParams({ 9398 virtual: { 9399 enabled: false, 9400 slides: [], 9401 cache: true, 9402 renderSlide: null, 9403 renderExternal: null, 9404 renderExternalUpdate: true, 9405 addSlidesBefore: 0, 9406 addSlidesAfter: 0 9407 } 9408 }); 9409 let cssModeTimeout; 9410 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 9411 swiper.virtual = { 9412 cache: {}, 9413 from: undefined, 9414 to: undefined, 9415 slides: [], 9416 offset: 0, 9417 slidesGrid: [] 9418 }; 9419 const tempDOM = document.createElement('div'); 9420 function renderSlide(slide, index) { 9421 const params = swiper.params.virtual; 9422 if (params.cache && swiper.virtual.cache[index]) { 9423 return swiper.virtual.cache[index]; 9424 } 9425 // eslint-disable-next-line 9426 let slideEl; 9427 if (params.renderSlide) { 9428 slideEl = params.renderSlide.call(swiper, slide, index); 9429 if (typeof slideEl === 'string') { 9430 tempDOM.innerHTML = slideEl; 9431 slideEl = tempDOM.children[0]; 9432 } 9433 } else if (swiper.isElement) { 9434 slideEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('swiper-slide'); 9435 } else { 9436 slideEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', swiper.params.slideClass); 9437 } 9438 slideEl.setAttribute('data-swiper-slide-index', index); 9439 if (!params.renderSlide) { 9440 slideEl.innerHTML = slide; 9441 } 9442 if (params.cache) swiper.virtual.cache[index] = slideEl; 9443 return slideEl; 9444 } 9445 function update(force) { 9446 const { 9447 slidesPerView, 9448 slidesPerGroup, 9449 centeredSlides, 9450 loop: isLoop 9451 } = swiper.params; 9452 const { 9453 addSlidesBefore, 9454 addSlidesAfter 9455 } = swiper.params.virtual; 9456 const { 9457 from: previousFrom, 9458 to: previousTo, 9459 slides, 9460 slidesGrid: previousSlidesGrid, 9461 offset: previousOffset 9462 } = swiper.virtual; 9463 if (!swiper.params.cssMode) { 9464 swiper.updateActiveIndex(); 9465 } 9466 const activeIndex = swiper.activeIndex || 0; 9467 let offsetProp; 9468 if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top'; 9469 let slidesAfter; 9470 let slidesBefore; 9471 if (centeredSlides) { 9472 slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter; 9473 slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore; 9474 } else { 9475 slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter; 9476 slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore; 9477 } 9478 let from = activeIndex - slidesBefore; 9479 let to = activeIndex + slidesAfter; 9480 if (!isLoop) { 9481 from = Math.max(from, 0); 9482 to = Math.min(to, slides.length - 1); 9483 } 9484 let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); 9485 if (isLoop && activeIndex >= slidesBefore) { 9486 from -= slidesBefore; 9487 if (!centeredSlides) offset += swiper.slidesGrid[0]; 9488 } else if (isLoop && activeIndex < slidesBefore) { 9489 from = -slidesBefore; 9490 if (centeredSlides) offset += swiper.slidesGrid[0]; 9491 } 9492 Object.assign(swiper.virtual, { 9493 from, 9494 to, 9495 offset, 9496 slidesGrid: swiper.slidesGrid, 9497 slidesBefore, 9498 slidesAfter 9499 }); 9500 function onRendered() { 9501 swiper.updateSlides(); 9502 swiper.updateProgress(); 9503 swiper.updateSlidesClasses(); 9504 emit('virtualUpdate'); 9505 } 9506 if (previousFrom === from && previousTo === to && !force) { 9507 if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) { 9508 swiper.slides.forEach(slideEl => { 9509 slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; 9510 }); 9511 } 9512 swiper.updateProgress(); 9513 emit('virtualUpdate'); 9514 return; 9515 } 9516 if (swiper.params.virtual.renderExternal) { 9517 swiper.params.virtual.renderExternal.call(swiper, { 9518 offset, 9519 from, 9520 to, 9521 slides: function getSlides() { 9522 const slidesToRender = []; 9523 for (let i = from; i <= to; i += 1) { 9524 slidesToRender.push(slides[i]); 9525 } 9526 return slidesToRender; 9527 }() 9528 }); 9529 if (swiper.params.virtual.renderExternalUpdate) { 9530 onRendered(); 9531 } else { 9532 emit('virtualUpdate'); 9533 } 9534 return; 9535 } 9536 const prependIndexes = []; 9537 const appendIndexes = []; 9538 const getSlideIndex = index => { 9539 let slideIndex = index; 9540 if (index < 0) { 9541 slideIndex = slides.length + index; 9542 } else if (slideIndex >= slides.length) { 9543 // eslint-disable-next-line 9544 slideIndex = slideIndex - slides.length; 9545 } 9546 return slideIndex; 9547 }; 9548 if (force) { 9549 swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}, swiper-slide`).forEach(slideEl => { 9550 slideEl.remove(); 9551 }); 9552 } else { 9553 for (let i = previousFrom; i <= previousTo; i += 1) { 9554 if (i < from || i > to) { 9555 const slideIndex = getSlideIndex(i); 9556 swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`).forEach(slideEl => { 9557 slideEl.remove(); 9558 }); 9559 } 9560 } 9561 } 9562 const loopFrom = isLoop ? -slides.length : 0; 9563 const loopTo = isLoop ? slides.length * 2 : slides.length; 9564 for (let i = loopFrom; i < loopTo; i += 1) { 9565 if (i >= from && i <= to) { 9566 const slideIndex = getSlideIndex(i); 9567 if (typeof previousTo === 'undefined' || force) { 9568 appendIndexes.push(slideIndex); 9569 } else { 9570 if (i > previousTo) appendIndexes.push(slideIndex); 9571 if (i < previousFrom) prependIndexes.push(slideIndex); 9572 } 9573 } 9574 } 9575 appendIndexes.forEach(index => { 9576 swiper.slidesEl.append(renderSlide(slides[index], index)); 9577 }); 9578 if (isLoop) { 9579 for (let i = prependIndexes.length - 1; i >= 0; i -= 1) { 9580 const index = prependIndexes[i]; 9581 swiper.slidesEl.prepend(renderSlide(slides[index], index)); 9582 } 9583 } else { 9584 prependIndexes.sort((a, b) => b - a); 9585 prependIndexes.forEach(index => { 9586 swiper.slidesEl.prepend(renderSlide(slides[index], index)); 9587 }); 9588 } 9589 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => { 9590 slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; 9591 }); 9592 onRendered(); 9593 } 9594 function appendSlide(slides) { 9595 if (typeof slides === 'object' && 'length' in slides) { 9596 for (let i = 0; i < slides.length; i += 1) { 9597 if (slides[i]) swiper.virtual.slides.push(slides[i]); 9598 } 9599 } else { 9600 swiper.virtual.slides.push(slides); 9601 } 9602 update(true); 9603 } 9604 function prependSlide(slides) { 9605 const activeIndex = swiper.activeIndex; 9606 let newActiveIndex = activeIndex + 1; 9607 let numberOfNewSlides = 1; 9608 if (Array.isArray(slides)) { 9609 for (let i = 0; i < slides.length; i += 1) { 9610 if (slides[i]) swiper.virtual.slides.unshift(slides[i]); 9611 } 9612 newActiveIndex = activeIndex + slides.length; 9613 numberOfNewSlides = slides.length; 9614 } else { 9615 swiper.virtual.slides.unshift(slides); 9616 } 9617 if (swiper.params.virtual.cache) { 9618 const cache = swiper.virtual.cache; 9619 const newCache = {}; 9620 Object.keys(cache).forEach(cachedIndex => { 9621 const cachedEl = cache[cachedIndex]; 9622 const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index'); 9623 if (cachedElIndex) { 9624 cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides); 9625 } 9626 newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl; 9627 }); 9628 swiper.virtual.cache = newCache; 9629 } 9630 update(true); 9631 swiper.slideTo(newActiveIndex, 0); 9632 } 9633 function removeSlide(slidesIndexes) { 9634 if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return; 9635 let activeIndex = swiper.activeIndex; 9636 if (Array.isArray(slidesIndexes)) { 9637 for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) { 9638 swiper.virtual.slides.splice(slidesIndexes[i], 1); 9639 if (swiper.params.virtual.cache) { 9640 delete swiper.virtual.cache[slidesIndexes[i]]; 9641 } 9642 if (slidesIndexes[i] < activeIndex) activeIndex -= 1; 9643 activeIndex = Math.max(activeIndex, 0); 9644 } 9645 } else { 9646 swiper.virtual.slides.splice(slidesIndexes, 1); 9647 if (swiper.params.virtual.cache) { 9648 delete swiper.virtual.cache[slidesIndexes]; 9649 } 9650 if (slidesIndexes < activeIndex) activeIndex -= 1; 9651 activeIndex = Math.max(activeIndex, 0); 9652 } 9653 update(true); 9654 swiper.slideTo(activeIndex, 0); 9655 } 9656 function removeAllSlides() { 9657 swiper.virtual.slides = []; 9658 if (swiper.params.virtual.cache) { 9659 swiper.virtual.cache = {}; 9660 } 9661 update(true); 9662 swiper.slideTo(0, 0); 9663 } 9664 on('beforeInit', () => { 9665 if (!swiper.params.virtual.enabled) return; 9666 let domSlidesAssigned; 9667 if (typeof swiper.passedParams.virtual.slides === 'undefined') { 9668 const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)); 9669 if (slides && slides.length) { 9670 swiper.virtual.slides = [...slides]; 9671 domSlidesAssigned = true; 9672 slides.forEach((slideEl, slideIndex) => { 9673 slideEl.setAttribute('data-swiper-slide-index', slideIndex); 9674 swiper.virtual.cache[slideIndex] = slideEl; 9675 slideEl.remove(); 9676 }); 9677 } 9678 } 9679 if (!domSlidesAssigned) { 9680 swiper.virtual.slides = swiper.params.virtual.slides; 9681 } 9682 swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`); 9683 swiper.params.watchSlidesProgress = true; 9684 swiper.originalParams.watchSlidesProgress = true; 9685 if (!swiper.params.initialSlide) { 9686 update(); 9687 } 9688 }); 9689 on('setTranslate', () => { 9690 if (!swiper.params.virtual.enabled) return; 9691 if (swiper.params.cssMode && !swiper._immediateVirtual) { 9692 clearTimeout(cssModeTimeout); 9693 cssModeTimeout = setTimeout(() => { 9694 update(); 9695 }, 100); 9696 } else { 9697 update(); 9698 } 9699 }); 9700 on('init update resize', () => { 9701 if (!swiper.params.virtual.enabled) return; 9702 if (swiper.params.cssMode) { 9703 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.setCSSProperty)(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`); 9704 } 9705 }); 9706 Object.assign(swiper.virtual, { 9707 appendSlide, 9708 prependSlide, 9709 removeSlide, 9710 removeAllSlides, 9711 update 9712 }); 9713} 9714 9715/***/ }), 9716
vendor: 22,595 bytes, lines 9717-10318
9717/***/ "../../node_modules/swiper/modules/zoom/zoom.js": 9718/*!******************************************************!*\ 9719 !*** ../../node_modules/swiper/modules/zoom/zoom.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 */ Zoom; } 9726/* harmony export */ }); 9727/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 9728/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "../../node_modules/swiper/shared/utils.js"); 9729 9730 9731function Zoom({ 9732 swiper, 9733 extendParams, 9734 on, 9735 emit 9736}) { 9737 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 9738 extendParams({ 9739 zoom: { 9740 enabled: false, 9741 maxRatio: 3, 9742 minRatio: 1, 9743 toggle: true, 9744 containerClass: 'swiper-zoom-container', 9745 zoomedSlideClass: 'swiper-slide-zoomed' 9746 } 9747 }); 9748 swiper.zoom = { 9749 enabled: false 9750 }; 9751 let currentScale = 1; 9752 let isScaling = false; 9753 let fakeGestureTouched; 9754 let fakeGestureMoved; 9755 const evCache = []; 9756 const gesture = { 9757 originX: 0, 9758 originY: 0, 9759 slideEl: undefined, 9760 slideWidth: undefined, 9761 slideHeight: undefined, 9762 imageEl: undefined, 9763 imageWrapEl: undefined, 9764 maxRatio: 3 9765 }; 9766 const image = { 9767 isTouched: undefined, 9768 isMoved: undefined, 9769 currentX: undefined, 9770 currentY: undefined, 9771 minX: undefined, 9772 minY: undefined, 9773 maxX: undefined, 9774 maxY: undefined, 9775 width: undefined, 9776 height: undefined, 9777 startX: undefined, 9778 startY: undefined, 9779 touchesStart: {}, 9780 touchesCurrent: {} 9781 }; 9782 const velocity = { 9783 x: undefined, 9784 y: undefined, 9785 prevPositionX: undefined, 9786 prevPositionY: undefined, 9787 prevTime: undefined 9788 }; 9789 let scale = 1; 9790 Object.defineProperty(swiper.zoom, 'scale', { 9791 get() { 9792 return scale; 9793 }, 9794 set(value) { 9795 if (scale !== value) { 9796 const imageEl = gesture.imageEl; 9797 const slideEl = gesture.slideEl; 9798 emit('zoomChange', value, imageEl, slideEl); 9799 } 9800 scale = value; 9801 } 9802 }); 9803 function getDistanceBetweenTouches() { 9804 if (evCache.length < 2) return 1; 9805 const x1 = evCache[0].pageX; 9806 const y1 = evCache[0].pageY; 9807 const x2 = evCache[1].pageX; 9808 const y2 = evCache[1].pageY; 9809 const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2); 9810 return distance; 9811 } 9812 function getScaleOrigin() { 9813 if (evCache.length < 2) return { 9814 x: null, 9815 y: null 9816 }; 9817 const box = gesture.imageEl.getBoundingClientRect(); 9818 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]; 9819 } 9820 function getSlideSelector() { 9821 return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; 9822 } 9823 function eventWithinSlide(e) { 9824 const slideSelector = getSlideSelector(); 9825 if (e.target.matches(slideSelector)) return true; 9826 if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true; 9827 return false; 9828 } 9829 function eventWithinZoomContainer(e) { 9830 const selector = `.${swiper.params.zoom.containerClass}`; 9831 if (e.target.matches(selector)) return true; 9832 if ([...swiper.el.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true; 9833 return false; 9834 } 9835 9836 // Events 9837 function onGestureStart(e) { 9838 if (e.pointerType === 'mouse') { 9839 evCache.splice(0, evCache.length); 9840 } 9841 if (!eventWithinSlide(e)) return; 9842 const params = swiper.params.zoom; 9843 fakeGestureTouched = false; 9844 fakeGestureMoved = false; 9845 evCache.push(e); 9846 if (evCache.length < 2) { 9847 return; 9848 } 9849 fakeGestureTouched = true; 9850 gesture.scaleStart = getDistanceBetweenTouches(); 9851 if (!gesture.slideEl) { 9852 gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); 9853 if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex]; 9854 let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); 9855 if (imageEl) { 9856 imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; 9857 } 9858 gesture.imageEl = imageEl; 9859 if (imageEl) { 9860 gesture.imageWrapEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementParents)(gesture.imageEl, `.${params.containerClass}`)[0]; 9861 } else { 9862 gesture.imageWrapEl = undefined; 9863 } 9864 if (!gesture.imageWrapEl) { 9865 gesture.imageEl = undefined; 9866 return; 9867 } 9868 gesture.maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; 9869 } 9870 if (gesture.imageEl) { 9871 const [originX, originY] = getScaleOrigin(); 9872 gesture.originX = originX; 9873 gesture.originY = originY; 9874 gesture.imageEl.style.transitionDuration = '0ms'; 9875 } 9876 isScaling = true; 9877 } 9878 function onGestureChange(e) { 9879 if (!eventWithinSlide(e)) return; 9880 const params = swiper.params.zoom; 9881 const zoom = swiper.zoom; 9882 const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); 9883 if (pointerIndex >= 0) evCache[pointerIndex] = e; 9884 if (evCache.length < 2) { 9885 return; 9886 } 9887 fakeGestureMoved = true; 9888 gesture.scaleMove = getDistanceBetweenTouches(); 9889 if (!gesture.imageEl) { 9890 return; 9891 } 9892 zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale; 9893 if (zoom.scale > gesture.maxRatio) { 9894 zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5; 9895 } 9896 if (zoom.scale < params.minRatio) { 9897 zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5; 9898 } 9899 gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; 9900 } 9901 function onGestureEnd(e) { 9902 if (!eventWithinSlide(e)) return; 9903 if (e.pointerType === 'mouse' && e.type === 'pointerout') return; 9904 const params = swiper.params.zoom; 9905 const zoom = swiper.zoom; 9906 const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); 9907 if (pointerIndex >= 0) evCache.splice(pointerIndex, 1); 9908 if (!fakeGestureTouched || !fakeGestureMoved) { 9909 return; 9910 } 9911 fakeGestureTouched = false; 9912 fakeGestureMoved = false; 9913 if (!gesture.imageEl) return; 9914 zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); 9915 gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`; 9916 gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; 9917 currentScale = zoom.scale; 9918 isScaling = false; 9919 if (zoom.scale > 1 && gesture.slideEl) { 9920 gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); 9921 } else if (zoom.scale <= 1 && gesture.slideEl) { 9922 gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); 9923 } 9924 if (zoom.scale === 1) { 9925 gesture.originX = 0; 9926 gesture.originY = 0; 9927 gesture.slideEl = undefined; 9928 } 9929 } 9930 function onTouchStart(e) { 9931 const device = swiper.device; 9932 if (!gesture.imageEl) return; 9933 if (image.isTouched) return; 9934 if (device.android && e.cancelable) e.preventDefault(); 9935 image.isTouched = true; 9936 const event = evCache.length > 0 ? evCache[0] : e; 9937 image.touchesStart.x = event.pageX; 9938 image.touchesStart.y = event.pageY; 9939 } 9940 function onTouchMove(e) { 9941 if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return; 9942 const zoom = swiper.zoom; 9943 if (!gesture.imageEl) return; 9944 if (!image.isTouched || !gesture.slideEl) return; 9945 if (!image.isMoved) { 9946 image.width = gesture.imageEl.offsetWidth; 9947 image.height = gesture.imageEl.offsetHeight; 9948 image.startX = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.getTranslate)(gesture.imageWrapEl, 'x') || 0; 9949 image.startY = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.getTranslate)(gesture.imageWrapEl, 'y') || 0; 9950 gesture.slideWidth = gesture.slideEl.offsetWidth; 9951 gesture.slideHeight = gesture.slideEl.offsetHeight; 9952 gesture.imageWrapEl.style.transitionDuration = '0ms'; 9953 } 9954 // Define if we need image drag 9955 const scaledWidth = image.width * zoom.scale; 9956 const scaledHeight = image.height * zoom.scale; 9957 if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return; 9958 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 9959 image.maxX = -image.minX; 9960 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 9961 image.maxY = -image.minY; 9962 image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX; 9963 image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY; 9964 const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y)); 9965 if (touchesDiff > 5) { 9966 swiper.allowClick = false; 9967 } 9968 if (!image.isMoved && !isScaling) { 9969 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)) { 9970 image.isTouched = false; 9971 return; 9972 } 9973 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)) { 9974 image.isTouched = false; 9975 return; 9976 } 9977 } 9978 if (e.cancelable) { 9979 e.preventDefault(); 9980 } 9981 e.stopPropagation(); 9982 image.isMoved = true; 9983 const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio); 9984 const { 9985 originX, 9986 originY 9987 } = gesture; 9988 image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2); 9989 image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2); 9990 if (image.currentX < image.minX) { 9991 image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8; 9992 } 9993 if (image.currentX > image.maxX) { 9994 image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8; 9995 } 9996 if (image.currentY < image.minY) { 9997 image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8; 9998 } 9999 if (image.currentY > image.maxY) { 10000 image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8; 10001 } 10002 10003 // Velocity 10004 if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x; 10005 if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y; 10006 if (!velocity.prevTime) velocity.prevTime = Date.now(); 10007 velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; 10008 velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; 10009 if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0; 10010 if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0; 10011 velocity.prevPositionX = image.touchesCurrent.x; 10012 velocity.prevPositionY = image.touchesCurrent.y; 10013 velocity.prevTime = Date.now(); 10014 gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; 10015 } 10016 function onTouchEnd() { 10017 const zoom = swiper.zoom; 10018 if (!gesture.imageEl) return; 10019 if (!image.isTouched || !image.isMoved) { 10020 image.isTouched = false; 10021 image.isMoved = false; 10022 return; 10023 } 10024 image.isTouched = false; 10025 image.isMoved = false; 10026 let momentumDurationX = 300; 10027 let momentumDurationY = 300; 10028 const momentumDistanceX = velocity.x * momentumDurationX; 10029 const newPositionX = image.currentX + momentumDistanceX; 10030 const momentumDistanceY = velocity.y * momentumDurationY; 10031 const newPositionY = image.currentY + momentumDistanceY; 10032 10033 // Fix duration 10034 if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); 10035 if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); 10036 const momentumDuration = Math.max(momentumDurationX, momentumDurationY); 10037 image.currentX = newPositionX; 10038 image.currentY = newPositionY; 10039 // Define if we need image drag 10040 const scaledWidth = image.width * zoom.scale; 10041 const scaledHeight = image.height * zoom.scale; 10042 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 10043 image.maxX = -image.minX; 10044 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 10045 image.maxY = -image.minY; 10046 image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); 10047 image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); 10048 gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`; 10049 gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; 10050 } 10051 function onTransitionEnd() { 10052 const zoom = swiper.zoom; 10053 if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) { 10054 if (gesture.imageEl) { 10055 gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; 10056 } 10057 if (gesture.imageWrapEl) { 10058 gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; 10059 } 10060 gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`); 10061 zoom.scale = 1; 10062 currentScale = 1; 10063 gesture.slideEl = undefined; 10064 gesture.imageEl = undefined; 10065 gesture.imageWrapEl = undefined; 10066 gesture.originX = 0; 10067 gesture.originY = 0; 10068 } 10069 } 10070 function zoomIn(e) { 10071 const zoom = swiper.zoom; 10072 const params = swiper.params.zoom; 10073 if (!gesture.slideEl) { 10074 if (e && e.target) { 10075 gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); 10076 } 10077 if (!gesture.slideEl) { 10078 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 10079 gesture.slideEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; 10080 } else { 10081 gesture.slideEl = swiper.slides[swiper.activeIndex]; 10082 } 10083 } 10084 let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); 10085 if (imageEl) { 10086 imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; 10087 } 10088 gesture.imageEl = imageEl; 10089 if (imageEl) { 10090 gesture.imageWrapEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementParents)(gesture.imageEl, `.${params.containerClass}`)[0]; 10091 } else { 10092 gesture.imageWrapEl = undefined; 10093 } 10094 } 10095 if (!gesture.imageEl || !gesture.imageWrapEl) return; 10096 if (swiper.params.cssMode) { 10097 swiper.wrapperEl.style.overflow = 'hidden'; 10098 swiper.wrapperEl.style.touchAction = 'none'; 10099 } 10100 gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); 10101 let touchX; 10102 let touchY; 10103 let offsetX; 10104 let offsetY; 10105 let diffX; 10106 let diffY; 10107 let translateX; 10108 let translateY; 10109 let imageWidth; 10110 let imageHeight; 10111 let scaledWidth; 10112 let scaledHeight; 10113 let translateMinX; 10114 let translateMinY; 10115 let translateMaxX; 10116 let translateMaxY; 10117 let slideWidth; 10118 let slideHeight; 10119 if (typeof image.touchesStart.x === 'undefined' && e) { 10120 touchX = e.pageX; 10121 touchY = e.pageY; 10122 } else { 10123 touchX = image.touchesStart.x; 10124 touchY = image.touchesStart.y; 10125 } 10126 const forceZoomRatio = typeof e === 'number' ? e : null; 10127 if (currentScale === 1 && forceZoomRatio) { 10128 touchX = undefined; 10129 touchY = undefined; 10130 } 10131 zoom.scale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; 10132 currentScale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; 10133 if (e && !(currentScale === 1 && forceZoomRatio)) { 10134 slideWidth = gesture.slideEl.offsetWidth; 10135 slideHeight = gesture.slideEl.offsetHeight; 10136 offsetX = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementOffset)(gesture.slideEl).left + window.scrollX; 10137 offsetY = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementOffset)(gesture.slideEl).top + window.scrollY; 10138 diffX = offsetX + slideWidth / 2 - touchX; 10139 diffY = offsetY + slideHeight / 2 - touchY; 10140 imageWidth = gesture.imageEl.offsetWidth; 10141 imageHeight = gesture.imageEl.offsetHeight; 10142 scaledWidth = imageWidth * zoom.scale; 10143 scaledHeight = imageHeight * zoom.scale; 10144 translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0); 10145 translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0); 10146 translateMaxX = -translateMinX; 10147 translateMaxY = -translateMinY; 10148 translateX = diffX * zoom.scale; 10149 translateY = diffY * zoom.scale; 10150 if (translateX < translateMinX) { 10151 translateX = translateMinX; 10152 } 10153 if (translateX > translateMaxX) { 10154 translateX = translateMaxX; 10155 } 10156 if (translateY < translateMinY) { 10157 translateY = translateMinY; 10158 } 10159 if (translateY > translateMaxY) { 10160 translateY = translateMaxY; 10161 } 10162 } else { 10163 translateX = 0; 10164 translateY = 0; 10165 } 10166 if (forceZoomRatio && zoom.scale === 1) { 10167 gesture.originX = 0; 10168 gesture.originY = 0; 10169 } 10170 gesture.imageWrapEl.style.transitionDuration = '300ms'; 10171 gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`; 10172 gesture.imageEl.style.transitionDuration = '300ms'; 10173 gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; 10174 } 10175 function zoomOut() { 10176 const zoom = swiper.zoom; 10177 const params = swiper.params.zoom; 10178 if (!gesture.slideEl) { 10179 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 10180 gesture.slideEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementChildren)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; 10181 } else { 10182 gesture.slideEl = swiper.slides[swiper.activeIndex]; 10183 } 10184 let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); 10185 if (imageEl) { 10186 imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; 10187 } 10188 gesture.imageEl = imageEl; 10189 if (imageEl) { 10190 gesture.imageWrapEl = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.elementParents)(gesture.imageEl, `.${params.containerClass}`)[0]; 10191 } else { 10192 gesture.imageWrapEl = undefined; 10193 } 10194 } 10195 if (!gesture.imageEl || !gesture.imageWrapEl) return; 10196 if (swiper.params.cssMode) { 10197 swiper.wrapperEl.style.overflow = ''; 10198 swiper.wrapperEl.style.touchAction = ''; 10199 } 10200 zoom.scale = 1; 10201 currentScale = 1; 10202 gesture.imageWrapEl.style.transitionDuration = '300ms'; 10203 gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; 10204 gesture.imageEl.style.transitionDuration = '300ms'; 10205 gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; 10206 gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); 10207 gesture.slideEl = undefined; 10208 gesture.originX = 0; 10209 gesture.originY = 0; 10210 } 10211 10212 // Toggle Zoom 10213 function zoomToggle(e) { 10214 const zoom = swiper.zoom; 10215 if (zoom.scale && zoom.scale !== 1) { 10216 // Zoom Out 10217 zoomOut(); 10218 } else { 10219 // Zoom In 10220 zoomIn(e); 10221 } 10222 } 10223 function getListeners() { 10224 const passiveListener = swiper.params.passiveListeners ? { 10225 passive: true, 10226 capture: false 10227 } : false; 10228 const activeListenerWithCapture = swiper.params.passiveListeners ? { 10229 passive: false, 10230 capture: true 10231 } : true; 10232 return { 10233 passiveListener, 10234 activeListenerWithCapture 10235 }; 10236 } 10237 10238 // Attach/Detach Events 10239 function enable() { 10240 const zoom = swiper.zoom; 10241 if (zoom.enabled) return; 10242 zoom.enabled = true; 10243 const { 10244 passiveListener, 10245 activeListenerWithCapture 10246 } = getListeners(); 10247 10248 // Scale image 10249 swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener); 10250 swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture); 10251 ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { 10252 swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener); 10253 }); 10254 10255 // Move image 10256 swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture); 10257 } 10258 function disable() { 10259 const zoom = swiper.zoom; 10260 if (!zoom.enabled) return; 10261 zoom.enabled = false; 10262 const { 10263 passiveListener, 10264 activeListenerWithCapture 10265 } = getListeners(); 10266 10267 // Scale image 10268 swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener); 10269 swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture); 10270 ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { 10271 swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener); 10272 }); 10273 10274 // Move image 10275 swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture); 10276 } 10277 on('init', () => { 10278 if (swiper.params.zoom.enabled) { 10279 enable(); 10280 } 10281 }); 10282 on('destroy', () => { 10283 disable(); 10284 }); 10285 on('touchStart', (_s, e) => { 10286 if (!swiper.zoom.enabled) return; 10287 onTouchStart(e); 10288 }); 10289 on('touchEnd', (_s, e) => { 10290 if (!swiper.zoom.enabled) return; 10291 onTouchEnd(e); 10292 }); 10293 on('doubleTap', (_s, e) => { 10294 if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { 10295 zoomToggle(e); 10296 } 10297 }); 10298 on('transitionEnd', () => { 10299 if (swiper.zoom.enabled && swiper.params.zoom.enabled) { 10300 onTransitionEnd(); 10301 } 10302 }); 10303 on('slideChange', () => { 10304 if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) { 10305 onTransitionEnd(); 10306 } 10307 }); 10308 Object.assign(swiper.zoom, { 10309 enable, 10310 disable, 10311 in: zoomIn, 10312 out: zoomOut, 10313 toggle: zoomToggle 10314 }); 10315} 10316 10317/***/ }), 10318
vendor: 758 bytes, lines 10319-10335
10319/***/ "../../node_modules/swiper/shared/classes-to-selector.js": 10320/*!***************************************************************!*\ 10321 !*** ../../node_modules/swiper/shared/classes-to-selector.js ***! 10322 \***************************************************************/ 10323/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10324 10325__webpack_require__.r(__webpack_exports__); 10326/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10327/* harmony export */ "default": function() { return /* binding */ classesToSelector; } 10328/* harmony export */ }); 10329function classesToSelector(classes = '') { 10330 return `.${classes.trim().replace(/([\.:!+\/])/g, '\\$1') // eslint-disable-line 10331 .replace(/ /g, '.')}`; 10332} 10333 10334/***/ }), 10335
vendor: 1,466 bytes, lines 10336-10367
10336/***/ "../../node_modules/swiper/shared/create-element-if-not-defined.js": 10337/*!*************************************************************************!*\ 10338 !*** ../../node_modules/swiper/shared/create-element-if-not-defined.js ***! 10339 \*************************************************************************/ 10340/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10341 10342__webpack_require__.r(__webpack_exports__); 10343/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10344/* harmony export */ "default": function() { return /* binding */ createElementIfNotDefined; } 10345/* harmony export */ }); 10346/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "../../node_modules/swiper/shared/utils.js"); 10347 10348function createElementIfNotDefined(swiper, originalParams, params, checkProps) { 10349 if (swiper.params.createElements) { 10350 Object.keys(checkProps).forEach(key => { 10351 if (!params[key] && params.auto === true) { 10352 let element = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementChildren)(swiper.el, `.${checkProps[key]}`)[0]; 10353 if (!element) { 10354 element = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.createElement)('div', checkProps[key]); 10355 element.className = checkProps[key]; 10356 swiper.el.append(element); 10357 } 10358 params[key] = element; 10359 originalParams[key] = element; 10360 } 10361 }); 10362 } 10363 return params; 10364} 10365 10366/***/ }), 10367
vendor: 1,220 bytes, lines 10368-10392
10368/***/ "../../node_modules/swiper/shared/create-shadow.js": 10369/*!*********************************************************!*\ 10370 !*** ../../node_modules/swiper/shared/create-shadow.js ***! 10371 \*********************************************************/ 10372/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10373 10374__webpack_require__.r(__webpack_exports__); 10375/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10376/* harmony export */ "default": function() { return /* binding */ createShadow; } 10377/* harmony export */ }); 10378/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "../../node_modules/swiper/shared/utils.js"); 10379 10380function createShadow(params, slideEl, side) { 10381 const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`; 10382 const shadowContainer = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.getSlideTransformEl)(slideEl); 10383 let shadowEl = shadowContainer.querySelector(`.${shadowClass}`); 10384 if (!shadowEl) { 10385 shadowEl = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.createElement)('div', `swiper-slide-shadow${side ? `-${side}` : ''}`); 10386 shadowContainer.append(shadowEl); 10387 } 10388 return shadowEl; 10389} 10390 10391/***/ }), 10392
vendor: 2,361 bytes, lines 10393-10461
10393/***/ "../../node_modules/swiper/shared/effect-init.js": 10394/*!*******************************************************!*\ 10395 !*** ../../node_modules/swiper/shared/effect-init.js ***! 10396 \*******************************************************/ 10397/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10398 10399__webpack_require__.r(__webpack_exports__); 10400/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10401/* harmony export */ "default": function() { return /* binding */ effectInit; } 10402/* harmony export */ }); 10403function effectInit(params) { 10404 const { 10405 effect, 10406 swiper, 10407 on, 10408 setTranslate, 10409 setTransition, 10410 overwriteParams, 10411 perspective, 10412 recreateShadows, 10413 getEffectParams 10414 } = params; 10415 on('beforeInit', () => { 10416 if (swiper.params.effect !== effect) return; 10417 swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`); 10418 if (perspective && perspective()) { 10419 swiper.classNames.push(`${swiper.params.containerModifierClass}3d`); 10420 } 10421 const overwriteParamsResult = overwriteParams ? overwriteParams() : {}; 10422 Object.assign(swiper.params, overwriteParamsResult); 10423 Object.assign(swiper.originalParams, overwriteParamsResult); 10424 }); 10425 on('setTranslate', () => { 10426 if (swiper.params.effect !== effect) return; 10427 setTranslate(); 10428 }); 10429 on('setTransition', (_s, duration) => { 10430 if (swiper.params.effect !== effect) return; 10431 setTransition(duration); 10432 }); 10433 on('transitionEnd', () => { 10434 if (swiper.params.effect !== effect) return; 10435 if (recreateShadows) { 10436 if (!getEffectParams || !getEffectParams().slideShadows) return; 10437 // remove shadows 10438 swiper.slides.forEach(slideEl => { 10439 slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove()); 10440 }); 10441 // create new one 10442 recreateShadows(); 10443 } 10444 }); 10445 let requireUpdateOnVirtual; 10446 on('virtualUpdate', () => { 10447 if (swiper.params.effect !== effect) return; 10448 if (!swiper.slides.length) { 10449 requireUpdateOnVirtual = true; 10450 } 10451 requestAnimationFrame(() => { 10452 if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) { 10453 setTranslate(); 10454 requireUpdateOnVirtual = false; 10455 } 10456 }); 10457 }); 10458} 10459 10460/***/ }), 10461
vendor: 1,048 bytes, lines 10462-10484
10462/***/ "../../node_modules/swiper/shared/effect-target.js": 10463/*!*********************************************************!*\ 10464 !*** ../../node_modules/swiper/shared/effect-target.js ***! 10465 \*********************************************************/ 10466/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10467 10468__webpack_require__.r(__webpack_exports__); 10469/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10470/* harmony export */ "default": function() { return /* binding */ effectTarget; } 10471/* harmony export */ }); 10472/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "../../node_modules/swiper/shared/utils.js"); 10473 10474function effectTarget(effectParams, slideEl) { 10475 const transformEl = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.getSlideTransformEl)(slideEl); 10476 if (transformEl !== slideEl) { 10477 transformEl.style.backfaceVisibility = 'hidden'; 10478 transformEl.style['-webkit-backface-visibility'] = 'hidden'; 10479 } 10480 return transformEl; 10481} 10482 10483/***/ }), 10484
vendor: 2,124 bytes, lines 10485-10542
10485/***/ "../../node_modules/swiper/shared/effect-virtual-transition-end.js": 10486/*!*************************************************************************!*\ 10487 !*** ../../node_modules/swiper/shared/effect-virtual-transition-end.js ***! 10488 \*************************************************************************/ 10489/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10490 10491__webpack_require__.r(__webpack_exports__); 10492/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10493/* harmony export */ "default": function() { return /* binding */ effectVirtualTransitionEnd; } 10494/* harmony export */ }); 10495/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "../../node_modules/swiper/shared/utils.js"); 10496 10497function effectVirtualTransitionEnd({ 10498 swiper, 10499 duration, 10500 transformElements, 10501 allSlides 10502}) { 10503 const { 10504 activeIndex 10505 } = swiper; 10506 const getSlide = el => { 10507 if (!el.parentElement) { 10508 // assume shadow root 10509 const slide = swiper.slides.filter(slideEl => slideEl.shadowEl && slideEl.shadowEl === el.parentNode)[0]; 10510 return slide; 10511 } 10512 return el.parentElement; 10513 }; 10514 if (swiper.params.virtualTranslate && duration !== 0) { 10515 let eventTriggered = false; 10516 let transitionEndTarget; 10517 if (allSlides) { 10518 transitionEndTarget = transformElements; 10519 } else { 10520 transitionEndTarget = transformElements.filter(transformEl => { 10521 const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl; 10522 return swiper.getSlideIndex(el) === activeIndex; 10523 }); 10524 } 10525 transitionEndTarget.forEach(el => { 10526 (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.elementTransitionEnd)(el, () => { 10527 if (eventTriggered) return; 10528 if (!swiper || swiper.destroyed) return; 10529 eventTriggered = true; 10530 swiper.animating = false; 10531 const evt = new window.CustomEvent('transitionend', { 10532 bubbles: true, 10533 cancelable: true 10534 }); 10535 swiper.wrapperEl.dispatchEvent(evt); 10536 }); 10537 }); 10538 } 10539} 10540 10541/***/ }), 10542
vendor: 1,619 bytes, lines 10543-10585
10543/***/ "../../node_modules/swiper/shared/get-browser.js": 10544/*!*******************************************************!*\ 10545 !*** ../../node_modules/swiper/shared/get-browser.js ***! 10546 \*******************************************************/ 10547/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10548 10549__webpack_require__.r(__webpack_exports__); 10550/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10551/* harmony export */ getBrowser: function() { return /* binding */ getBrowser; } 10552/* harmony export */ }); 10553/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 10554 10555let browser; 10556function calcBrowser() { 10557 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10558 let needPerspectiveFix = false; 10559 function isSafari() { 10560 const ua = window.navigator.userAgent.toLowerCase(); 10561 return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0; 10562 } 10563 if (isSafari()) { 10564 const ua = String(window.navigator.userAgent); 10565 if (ua.includes('Version/')) { 10566 const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num)); 10567 needPerspectiveFix = major < 16 || major === 16 && minor < 2; 10568 } 10569 } 10570 return { 10571 isSafari: needPerspectiveFix || isSafari(), 10572 needPerspectiveFix, 10573 isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent) 10574 }; 10575} 10576function getBrowser() { 10577 if (!browser) { 10578 browser = calcBrowser(); 10579 } 10580 return browser; 10581} 10582 10583 10584/***/ }), 10585
vendor: 2,432 bytes, lines 10586-10651
10586/***/ "../../node_modules/swiper/shared/get-device.js": 10587/*!******************************************************!*\ 10588 !*** ../../node_modules/swiper/shared/get-device.js ***! 10589 \******************************************************/ 10590/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10591 10592__webpack_require__.r(__webpack_exports__); 10593/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10594/* harmony export */ getDevice: function() { return /* binding */ getDevice; } 10595/* harmony export */ }); 10596/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 10597/* harmony import */ var _get_support_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-support.js */ "../../node_modules/swiper/shared/get-support.js"); 10598 10599 10600let deviceCached; 10601function calcDevice({ 10602 userAgent 10603} = {}) { 10604 const support = (0,_get_support_js__WEBPACK_IMPORTED_MODULE_1__.getSupport)(); 10605 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10606 const platform = window.navigator.platform; 10607 const ua = userAgent || window.navigator.userAgent; 10608 const device = { 10609 ios: false, 10610 android: false 10611 }; 10612 const screenWidth = window.screen.width; 10613 const screenHeight = window.screen.height; 10614 const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line 10615 let ipad = ua.match(/(iPad).*OS\s([\d_]+)/); 10616 const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); 10617 const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); 10618 const windows = platform === 'Win32'; 10619 let macos = platform === 'MacIntel'; 10620 10621 // iPadOs 13 fix 10622 const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810']; 10623 if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) { 10624 ipad = ua.match(/(Version)\/([\d.]+)/); 10625 if (!ipad) ipad = [0, 1, '13_0_0']; 10626 macos = false; 10627 } 10628 10629 // Android 10630 if (android && !windows) { 10631 device.os = 'android'; 10632 device.android = true; 10633 } 10634 if (ipad || iphone || ipod) { 10635 device.os = 'ios'; 10636 device.ios = true; 10637 } 10638 10639 // Export object 10640 return device; 10641} 10642function getDevice(overrides = {}) { 10643 if (!deviceCached) { 10644 deviceCached = calcDevice(overrides); 10645 } 10646 return deviceCached; 10647} 10648 10649 10650/***/ }), 10651
vendor: 1,269 bytes, lines 10652-10682
10652/***/ "../../node_modules/swiper/shared/get-support.js": 10653/*!*******************************************************!*\ 10654 !*** ../../node_modules/swiper/shared/get-support.js ***! 10655 \*******************************************************/ 10656/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10657 10658__webpack_require__.r(__webpack_exports__); 10659/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10660/* harmony export */ getSupport: function() { return /* binding */ getSupport; } 10661/* harmony export */ }); 10662/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 10663 10664let support; 10665function calcSupport() { 10666 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10667 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 10668 return { 10669 smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style, 10670 touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch) 10671 }; 10672} 10673function getSupport() { 10674 if (!support) { 10675 support = calcSupport(); 10676 } 10677 return support; 10678} 10679 10680 10681/***/ }), 10682
vendor: 2,780 bytes, lines 10683-10745
10683/***/ "../../node_modules/swiper/shared/process-lazy-preloader.js": 10684/*!******************************************************************!*\ 10685 !*** ../../node_modules/swiper/shared/process-lazy-preloader.js ***! 10686 \******************************************************************/ 10687/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10688 10689__webpack_require__.r(__webpack_exports__); 10690/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10691/* harmony export */ preload: function() { return /* binding */ preload; }, 10692/* harmony export */ processLazyPreloader: function() { return /* binding */ processLazyPreloader; } 10693/* harmony export */ }); 10694const processLazyPreloader = (swiper, imageEl) => { 10695 if (!swiper || swiper.destroyed || !swiper.params) return; 10696 const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; 10697 const slideEl = imageEl.closest(slideSelector()); 10698 if (slideEl) { 10699 const lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`); 10700 if (lazyEl) lazyEl.remove(); 10701 } 10702}; 10703const unlazy = (swiper, index) => { 10704 if (!swiper.slides[index]) return; 10705 const imageEl = swiper.slides[index].querySelector('[loading="lazy"]'); 10706 if (imageEl) imageEl.removeAttribute('loading'); 10707}; 10708const preload = swiper => { 10709 if (!swiper || swiper.destroyed || !swiper.params) return; 10710 let amount = swiper.params.lazyPreloadPrevNext; 10711 const len = swiper.slides.length; 10712 if (!len || !amount || amount < 0) return; 10713 amount = Math.min(amount, len); 10714 const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView); 10715 const activeIndex = swiper.activeIndex; 10716 if (swiper.params.grid && swiper.params.grid.rows > 1) { 10717 const activeColumn = activeIndex; 10718 const preloadColumns = [activeColumn - amount]; 10719 preloadColumns.push(...Array.from({ 10720 length: amount 10721 }).map((_, i) => { 10722 return activeColumn + slidesPerView + i; 10723 })); 10724 swiper.slides.forEach((slideEl, i) => { 10725 if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i); 10726 }); 10727 return; 10728 } 10729 const slideIndexLastInView = activeIndex + slidesPerView - 1; 10730 if (swiper.params.rewind || swiper.params.loop) { 10731 for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) { 10732 const realIndex = (i % len + len) % len; 10733 if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex); 10734 } 10735 } else { 10736 for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) { 10737 if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) { 10738 unlazy(swiper, i); 10739 } 10740 } 10741 } 10742}; 10743 10744/***/ }), 10745
vendor: 11,662 bytes, lines 10746-11045
10746/***/ "../../node_modules/swiper/shared/utils.js": 10747/*!*************************************************!*\ 10748 !*** ../../node_modules/swiper/shared/utils.js ***! 10749 \*************************************************/ 10750/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 10751 10752__webpack_require__.r(__webpack_exports__); 10753/* harmony export */ __webpack_require__.d(__webpack_exports__, { 10754/* harmony export */ animateCSSModeScroll: function() { return /* binding */ animateCSSModeScroll; }, 10755/* harmony export */ createElement: function() { return /* binding */ createElement; }, 10756/* harmony export */ deleteProps: function() { return /* binding */ deleteProps; }, 10757/* harmony export */ elementChildren: function() { return /* binding */ elementChildren; }, 10758/* harmony export */ elementIndex: function() { return /* binding */ elementIndex; }, 10759/* harmony export */ elementNextAll: function() { return /* binding */ elementNextAll; }, 10760/* harmony export */ elementOffset: function() { return /* binding */ elementOffset; }, 10761/* harmony export */ elementOuterSize: function() { return /* binding */ elementOuterSize; }, 10762/* harmony export */ elementParents: function() { return /* binding */ elementParents; }, 10763/* harmony export */ elementPrevAll: function() { return /* binding */ elementPrevAll; }, 10764/* harmony export */ elementStyle: function() { return /* binding */ elementStyle; }, 10765/* harmony export */ elementTransitionEnd: function() { return /* binding */ elementTransitionEnd; }, 10766/* harmony export */ extend: function() { return /* binding */ extend; }, 10767/* harmony export */ findElementsInElements: function() { return /* binding */ findElementsInElements; }, 10768/* harmony export */ getComputedStyle: function() { return /* binding */ getComputedStyle; }, 10769/* harmony export */ getSlideTransformEl: function() { return /* binding */ getSlideTransformEl; }, 10770/* harmony export */ getTranslate: function() { return /* binding */ getTranslate; }, 10771/* harmony export */ isObject: function() { return /* binding */ isObject; }, 10772/* harmony export */ nextTick: function() { return /* binding */ nextTick; }, 10773/* harmony export */ now: function() { return /* binding */ now; }, 10774/* harmony export */ setCSSProperty: function() { return /* binding */ setCSSProperty; } 10775/* harmony export */ }); 10776/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "../../node_modules/ssr-window/ssr-window.esm.js"); 10777 10778function deleteProps(obj) { 10779 const object = obj; 10780 Object.keys(object).forEach(key => { 10781 try { 10782 object[key] = null; 10783 } catch (e) { 10784 // no getter for object 10785 } 10786 try { 10787 delete object[key]; 10788 } catch (e) { 10789 // something got wrong 10790 } 10791 }); 10792} 10793function nextTick(callback, delay = 0) { 10794 return setTimeout(callback, delay); 10795} 10796function now() { 10797 return Date.now(); 10798} 10799function getComputedStyle(el) { 10800 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10801 let style; 10802 if (window.getComputedStyle) { 10803 style = window.getComputedStyle(el, null); 10804 } 10805 if (!style && el.currentStyle) { 10806 style = el.currentStyle; 10807 } 10808 if (!style) { 10809 style = el.style; 10810 } 10811 return style; 10812} 10813function getTranslate(el, axis = 'x') { 10814 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10815 let matrix; 10816 let curTransform; 10817 let transformMatrix; 10818 const curStyle = getComputedStyle(el, null); 10819 if (window.WebKitCSSMatrix) { 10820 curTransform = curStyle.transform || curStyle.webkitTransform; 10821 if (curTransform.split(',').length > 6) { 10822 curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', '); 10823 } 10824 // Some old versions of Webkit choke when 'none' is passed; pass 10825 // empty string instead in this case 10826 transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); 10827 } else { 10828 transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); 10829 matrix = transformMatrix.toString().split(','); 10830 } 10831 if (axis === 'x') { 10832 // Latest Chrome and webkits Fix 10833 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; 10834 // Crazy IE10 Matrix 10835 else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); 10836 // Normal Browsers 10837 else curTransform = parseFloat(matrix[4]); 10838 } 10839 if (axis === 'y') { 10840 // Latest Chrome and webkits Fix 10841 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; 10842 // Crazy IE10 Matrix 10843 else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); 10844 // Normal Browsers 10845 else curTransform = parseFloat(matrix[5]); 10846 } 10847 return curTransform || 0; 10848} 10849function isObject(o) { 10850 return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object'; 10851} 10852function isNode(node) { 10853 // eslint-disable-next-line 10854 if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') { 10855 return node instanceof HTMLElement; 10856 } 10857 return node && (node.nodeType === 1 || node.nodeType === 11); 10858} 10859function extend(...args) { 10860 const to = Object(args[0]); 10861 const noExtend = ['__proto__', 'constructor', 'prototype']; 10862 for (let i = 1; i < args.length; i += 1) { 10863 const nextSource = args[i]; 10864 if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) { 10865 const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0); 10866 for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { 10867 const nextKey = keysArray[nextIndex]; 10868 const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); 10869 if (desc !== undefined && desc.enumerable) { 10870 if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) { 10871 if (nextSource[nextKey].__swiper__) { 10872 to[nextKey] = nextSource[nextKey]; 10873 } else { 10874 extend(to[nextKey], nextSource[nextKey]); 10875 } 10876 } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) { 10877 to[nextKey] = {}; 10878 if (nextSource[nextKey].__swiper__) { 10879 to[nextKey] = nextSource[nextKey]; 10880 } else { 10881 extend(to[nextKey], nextSource[nextKey]); 10882 } 10883 } else { 10884 to[nextKey] = nextSource[nextKey]; 10885 } 10886 } 10887 } 10888 } 10889 } 10890 return to; 10891} 10892function setCSSProperty(el, varName, varValue) { 10893 el.style.setProperty(varName, varValue); 10894} 10895function animateCSSModeScroll({ 10896 swiper, 10897 targetPosition, 10898 side 10899}) { 10900 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10901 const startPosition = -swiper.translate; 10902 let startTime = null; 10903 let time; 10904 const duration = swiper.params.speed; 10905 swiper.wrapperEl.style.scrollSnapType = 'none'; 10906 window.cancelAnimationFrame(swiper.cssModeFrameID); 10907 const dir = targetPosition > startPosition ? 'next' : 'prev'; 10908 const isOutOfBound = (current, target) => { 10909 return dir === 'next' && current >= target || dir === 'prev' && current <= target; 10910 }; 10911 const animate = () => { 10912 time = new Date().getTime(); 10913 if (startTime === null) { 10914 startTime = time; 10915 } 10916 const progress = Math.max(Math.min((time - startTime) / duration, 1), 0); 10917 const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2; 10918 let currentPosition = startPosition + easeProgress * (targetPosition - startPosition); 10919 if (isOutOfBound(currentPosition, targetPosition)) { 10920 currentPosition = targetPosition; 10921 } 10922 swiper.wrapperEl.scrollTo({ 10923 [side]: currentPosition 10924 }); 10925 if (isOutOfBound(currentPosition, targetPosition)) { 10926 swiper.wrapperEl.style.overflow = 'hidden'; 10927 swiper.wrapperEl.style.scrollSnapType = ''; 10928 setTimeout(() => { 10929 swiper.wrapperEl.style.overflow = ''; 10930 swiper.wrapperEl.scrollTo({ 10931 [side]: currentPosition 10932 }); 10933 }); 10934 window.cancelAnimationFrame(swiper.cssModeFrameID); 10935 return; 10936 } 10937 swiper.cssModeFrameID = window.requestAnimationFrame(animate); 10938 }; 10939 animate(); 10940} 10941function getSlideTransformEl(slideEl) { 10942 return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowEl && slideEl.shadowEl.querySelector('.swiper-slide-transform') || slideEl; 10943} 10944function findElementsInElements(elements = [], selector = '') { 10945 const found = []; 10946 elements.forEach(el => { 10947 found.push(...el.querySelectorAll(selector)); 10948 }); 10949 return found; 10950} 10951function elementChildren(element, selector = '') { 10952 return [...element.children].filter(el => el.matches(selector)); 10953} 10954function createElement(tag, classes = []) { 10955 const el = document.createElement(tag); 10956 el.classList.add(...(Array.isArray(classes) ? classes : [classes])); 10957 return el; 10958} 10959function elementOffset(el) { 10960 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10961 const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 10962 const box = el.getBoundingClientRect(); 10963 const body = document.body; 10964 const clientTop = el.clientTop || body.clientTop || 0; 10965 const clientLeft = el.clientLeft || body.clientLeft || 0; 10966 const scrollTop = el === window ? window.scrollY : el.scrollTop; 10967 const scrollLeft = el === window ? window.scrollX : el.scrollLeft; 10968 return { 10969 top: box.top + scrollTop - clientTop, 10970 left: box.left + scrollLeft - clientLeft 10971 }; 10972} 10973function elementPrevAll(el, selector) { 10974 const prevEls = []; 10975 while (el.previousElementSibling) { 10976 const prev = el.previousElementSibling; // eslint-disable-line 10977 if (selector) { 10978 if (prev.matches(selector)) prevEls.push(prev); 10979 } else prevEls.push(prev); 10980 el = prev; 10981 } 10982 return prevEls; 10983} 10984function elementNextAll(el, selector) { 10985 const nextEls = []; 10986 while (el.nextElementSibling) { 10987 const next = el.nextElementSibling; // eslint-disable-line 10988 if (selector) { 10989 if (next.matches(selector)) nextEls.push(next); 10990 } else nextEls.push(next); 10991 el = next; 10992 } 10993 return nextEls; 10994} 10995function elementStyle(el, prop) { 10996 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 10997 return window.getComputedStyle(el, null).getPropertyValue(prop); 10998} 10999function elementIndex(el) { 11000 let child = el; 11001 let i; 11002 if (child) { 11003 i = 0; 11004 // eslint-disable-next-line 11005 while ((child = child.previousSibling) !== null) { 11006 if (child.nodeType === 1) i += 1; 11007 } 11008 return i; 11009 } 11010 return undefined; 11011} 11012function elementParents(el, selector) { 11013 const parents = []; // eslint-disable-line 11014 let parent = el.parentElement; // eslint-disable-line 11015 while (parent) { 11016 if (selector) { 11017 if (parent.matches(selector)) parents.push(parent); 11018 } else { 11019 parents.push(parent); 11020 } 11021 parent = parent.parentElement; 11022 } 11023 return parents; 11024} 11025function elementTransitionEnd(el, callback) { 11026 function fireCallBack(e) { 11027 if (e.target !== el) return; 11028 callback.call(el, e); 11029 el.removeEventListener('transitionend', fireCallBack); 11030 } 11031 if (callback) { 11032 el.addEventListener('transitionend', fireCallBack); 11033 } 11034} 11035function elementOuterSize(el, size, includeMargins) { 11036 const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 11037 if (includeMargins) { 11038 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')); 11039 } 11040 return el.offsetWidth; 11041} 11042 11043 11044/***/ }), 11045
vendor: 9,508 bytes, lines 11046-11141
11046/***/ "../../node_modules/swiper/swiper.esm.js": 11047/*!***********************************************!*\ 11048 !*** ../../node_modules/swiper/swiper.esm.js ***! 11049 \***********************************************/ 11050/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 11051 11052__webpack_require__.r(__webpack_exports__); 11053/* harmony export */ __webpack_require__.d(__webpack_exports__, { 11054/* harmony export */ A11y: function() { return /* reexport safe */ _modules_a11y_a11y_js__WEBPACK_IMPORTED_MODULE_10__["default"]; }, 11055/* harmony export */ Autoplay: function() { return /* reexport safe */ _modules_autoplay_autoplay_js__WEBPACK_IMPORTED_MODULE_13__["default"]; }, 11056/* harmony export */ Controller: function() { return /* reexport safe */ _modules_controller_controller_js__WEBPACK_IMPORTED_MODULE_9__["default"]; }, 11057/* harmony export */ EffectCards: function() { return /* reexport safe */ _modules_effect_cards_effect_cards_js__WEBPACK_IMPORTED_MODULE_23__["default"]; }, 11058/* harmony export */ EffectCoverflow: function() { return /* reexport safe */ _modules_effect_coverflow_effect_coverflow_js__WEBPACK_IMPORTED_MODULE_21__["default"]; }, 11059/* harmony export */ EffectCreative: function() { return /* reexport safe */ _modules_effect_creative_effect_creative_js__WEBPACK_IMPORTED_MODULE_22__["default"]; }, 11060/* harmony export */ EffectCube: function() { return /* reexport safe */ _modules_effect_cube_effect_cube_js__WEBPACK_IMPORTED_MODULE_19__["default"]; }, 11061/* harmony export */ EffectFade: function() { return /* reexport safe */ _modules_effect_fade_effect_fade_js__WEBPACK_IMPORTED_MODULE_18__["default"]; }, 11062/* harmony export */ EffectFlip: function() { return /* reexport safe */ _modules_effect_flip_effect_flip_js__WEBPACK_IMPORTED_MODULE_20__["default"]; }, 11063/* harmony export */ FreeMode: function() { return /* reexport safe */ _modules_free_mode_free_mode_js__WEBPACK_IMPORTED_MODULE_15__["default"]; }, 11064/* harmony export */ Grid: function() { return /* reexport safe */ _modules_grid_grid_js__WEBPACK_IMPORTED_MODULE_16__["default"]; }, 11065/* harmony export */ HashNavigation: function() { return /* reexport safe */ _modules_hash_navigation_hash_navigation_js__WEBPACK_IMPORTED_MODULE_12__["default"]; }, 11066/* harmony export */ History: function() { return /* reexport safe */ _modules_history_history_js__WEBPACK_IMPORTED_MODULE_11__["default"]; }, 11067/* harmony export */ Keyboard: function() { return /* reexport safe */ _modules_keyboard_keyboard_js__WEBPACK_IMPORTED_MODULE_2__["default"]; }, 11068/* harmony export */ Manipulation: function() { return /* reexport safe */ _modules_manipulation_manipulation_js__WEBPACK_IMPORTED_MODULE_17__["default"]; }, 11069/* harmony export */ Mousewheel: function() { return /* reexport safe */ _modules_mousewheel_mousewheel_js__WEBPACK_IMPORTED_MODULE_3__["default"]; }, 11070/* harmony export */ Navigation: function() { return /* reexport safe */ _modules_navigation_navigation_js__WEBPACK_IMPORTED_MODULE_4__["default"]; }, 11071/* harmony export */ Pagination: function() { return /* reexport safe */ _modules_pagination_pagination_js__WEBPACK_IMPORTED_MODULE_5__["default"]; }, 11072/* harmony export */ Parallax: function() { return /* reexport safe */ _modules_parallax_parallax_js__WEBPACK_IMPORTED_MODULE_7__["default"]; }, 11073/* harmony export */ Scrollbar: function() { return /* reexport safe */ _modules_scrollbar_scrollbar_js__WEBPACK_IMPORTED_MODULE_6__["default"]; }, 11074/* harmony export */ Swiper: function() { return /* reexport safe */ _core_core_js__WEBPACK_IMPORTED_MODULE_0__["default"]; }, 11075/* harmony export */ Thumbs: function() { return /* reexport safe */ _modules_thumbs_thumbs_js__WEBPACK_IMPORTED_MODULE_14__["default"]; }, 11076/* harmony export */ Virtual: function() { return /* reexport safe */ _modules_virtual_virtual_js__WEBPACK_IMPORTED_MODULE_1__["default"]; }, 11077/* harmony export */ Zoom: function() { return /* reexport safe */ _modules_zoom_zoom_js__WEBPACK_IMPORTED_MODULE_8__["default"]; }, 11078/* harmony export */ "default": function() { return /* reexport safe */ _core_core_js__WEBPACK_IMPORTED_MODULE_0__["default"]; } 11079/* harmony export */ }); 11080/* harmony import */ var _core_core_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/core.js */ "../../node_modules/swiper/core/core.js"); 11081/* harmony import */ var _modules_virtual_virtual_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/virtual/virtual.js */ "../../node_modules/swiper/modules/virtual/virtual.js"); 11082/* harmony import */ var _modules_keyboard_keyboard_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/keyboard/keyboard.js */ "../../node_modules/swiper/modules/keyboard/keyboard.js"); 11083/* harmony import */ var _modules_mousewheel_mousewheel_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/mousewheel/mousewheel.js */ "../../node_modules/swiper/modules/mousewheel/mousewheel.js"); 11084/* harmony import */ var _modules_navigation_navigation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/navigation/navigation.js */ "../../node_modules/swiper/modules/navigation/navigation.js"); 11085/* harmony import */ var _modules_pagination_pagination_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/pagination/pagination.js */ "../../node_modules/swiper/modules/pagination/pagination.js"); 11086/* harmony import */ var _modules_scrollbar_scrollbar_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/scrollbar/scrollbar.js */ "../../node_modules/swiper/modules/scrollbar/scrollbar.js"); 11087/* harmony import */ var _modules_parallax_parallax_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/parallax/parallax.js */ "../../node_modules/swiper/modules/parallax/parallax.js"); 11088/* harmony import */ var _modules_zoom_zoom_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/zoom/zoom.js */ "../../node_modules/swiper/modules/zoom/zoom.js"); 11089/* harmony import */ var _modules_controller_controller_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/controller/controller.js */ "../../node_modules/swiper/modules/controller/controller.js"); 11090/* harmony import */ var _modules_a11y_a11y_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/a11y/a11y.js */ "../../node_modules/swiper/modules/a11y/a11y.js"); 11091/* harmony import */ var _modules_history_history_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/history/history.js */ "../../node_modules/swiper/modules/history/history.js"); 11092/* 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"); 11093/* harmony import */ var _modules_autoplay_autoplay_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./modules/autoplay/autoplay.js */ "../../node_modules/swiper/modules/autoplay/autoplay.js"); 11094/* harmony import */ var _modules_thumbs_thumbs_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modules/thumbs/thumbs.js */ "../../node_modules/swiper/modules/thumbs/thumbs.js"); 11095/* 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"); 11096/* harmony import */ var _modules_grid_grid_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./modules/grid/grid.js */ "../../node_modules/swiper/modules/grid/grid.js"); 11097/* harmony import */ var _modules_manipulation_manipulation_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./modules/manipulation/manipulation.js */ "../../node_modules/swiper/modules/manipulation/manipulation.js"); 11098/* 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"); 11099/* 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"); 11100/* 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"); 11101/* 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"); 11102/* 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"); 11103/* 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"); 11104/** 11105 * Swiper 9.4.1 11106 * Most modern mobile touch slider and framework with hardware accelerated transitions 11107 * https://swiperjs.com 11108 * 11109 * Copyright 2014-2023 Vladimir Kharlampidi 11110 * 11111 * Released under the MIT License 11112 * 11113 * Released on: June 13, 2023 11114 */ 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141/***/ })
11141 11142 11143/******/ }); 11144/************************************************************************/ 11145/******/ // The module cache 11146/******/ var __webpack_module_cache__ = {}; 11147/******/ 11148/******/ // The require function 11149/******/ function __webpack_require__(moduleId) { 11150/******/ // Check if module is in cache 11151/******/ var cachedModule = __webpack_module_cache__[moduleId]; 11152/******/ if (cachedModule !== undefined) { 11153/******/ return cachedModule.exports; 11154/******/ } 11155/******/ // Create a new module (and put it into the cache) 11156/******/ var module = __webpack_module_cache__[moduleId] = { 11157/******/ // no module.id needed 11158/******/ // no module.loaded needed 11159/******/ exports: {} 11160/******/ }; 11161/******/ 11162/******/ // Execute the module function 11163/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); 11164/******/ 11165/******/ // Return the exports of the module 11166/******/ return module.exports; 11167/******/ } 11168/******/ 11169/************************************************************************/ 11170/******/ /* webpack/runtime/define property getters */ 11171/******/ !function() { 11172/******/ // define getter functions for harmony exports 11173/******/ __webpack_require__.d = function(exports, definition) { 11174/******/ for(var key in definition) { 11175/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 11176/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 11177/******/ } 11178/******/ } 11179/******/ }; 11180/******/ }(); 11181/******/ 11182/******/ /* webpack/runtime/hasOwnProperty shorthand */ 11183/******/ !function() { 11184/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } 11185/******/ }(); 11186/******/ 11187/******/ /* webpack/runtime/make namespace object */ 11188/******/ !function() { 11189/******/ // define __esModule on exports 11190/******/ __webpack_require__.r = function(exports) { 11191/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 11192/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 11193/******/ } 11194/******/ Object.defineProperty(exports, '__esModule', { value: true }); 11195/******/ }; 11196/******/ }(); 11197/******/ 11198/************************************************************************/ 11199var __webpack_exports__ = {}; 11200// This entry need to be wrapped in an IIFE because it need to be isolated against other entry modules. 11201!function() { 11202var __webpack_exports__ = {}; 11203/*!************************!*\ 11204 !*** ./scripts/app.js ***! 11205 \************************/ 11206__webpack_require__.r(__webpack_exports__); 11207/* harmony import */ var _source_scripts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./source/scripts */ "./scripts/source/scripts.js"); 11208 11209}(); 11210// This entry need to be wrapped in an IIFE because it need to be isolated against other entry modules. 11211!function() { 11212/*!*************************!*\ 11213 !*** ./styles/app.sass ***! 11214 \*************************/ 11215__webpack_require__.r(__webpack_exports__); 11216// extracted by mini-css-extract-plugin 11217 11218}(); 11219/******/ })() 11220; 11221//# sourceMappingURL=app.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.