framework7 8.0.5 → 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/components/app/app-class.js +2 -3
  2. package/components/app/app.less +1 -15
  3. package/components/breadcrumbs/breadcrumbs-rtl.css +1 -1
  4. package/components/breadcrumbs/breadcrumbs.css +1 -1
  5. package/components/breadcrumbs/breadcrumbs.less +1 -4
  6. package/components/calendar/calendar-rtl.css +1 -1
  7. package/components/calendar/calendar.css +1 -1
  8. package/components/calendar/calendar.d.ts +2 -0
  9. package/components/calendar/calendar.less +4 -0
  10. package/components/input/input-ios.less +3 -0
  11. package/components/input/input-rtl.css +1 -1
  12. package/components/input/input.css +1 -1
  13. package/components/list-index/list-index-rtl.css +1 -1
  14. package/components/list-index/list-index-vars.less +7 -2
  15. package/components/list-index/list-index.css +1 -1
  16. package/components/notification/notification-md.less +4 -4
  17. package/components/notification/notification-rtl.css +1 -1
  18. package/components/notification/notification-vars.less +4 -2
  19. package/components/notification/notification.css +1 -1
  20. package/components/notification/notification.less +1 -1
  21. package/components/panel/panel-class.js +2 -0
  22. package/components/panel/panel-rtl.css +1 -1
  23. package/components/panel/panel.css +1 -1
  24. package/components/panel/panel.less +7 -2
  25. package/components/panel/resizable-panel.js +6 -5
  26. package/components/picker/picker-rtl.css +1 -1
  27. package/components/picker/picker.css +1 -1
  28. package/components/picker/picker.less +4 -4
  29. package/components/pull-to-refresh/pull-to-refresh-md.less +2 -1
  30. package/components/pull-to-refresh/pull-to-refresh-rtl.css +1 -1
  31. package/components/pull-to-refresh/pull-to-refresh-vars.less +4 -0
  32. package/components/pull-to-refresh/pull-to-refresh.css +1 -1
  33. package/components/searchbar/searchbar-md.less +1 -2
  34. package/components/searchbar/searchbar-rtl.css +1 -1
  35. package/components/searchbar/searchbar.css +1 -1
  36. package/components/swiper/swiper-rtl.css +1 -1
  37. package/components/swiper/swiper.css +1 -1
  38. package/components/swiper/swiper.less +1 -1
  39. package/components/text-editor/text-editor-rtl.css +1 -1
  40. package/components/text-editor/text-editor.css +1 -1
  41. package/components/text-editor/text-editor.less +1 -3
  42. package/components/toolbar/toolbar.less +1 -7
  43. package/framework7-bundle-rtl.css +231 -97
  44. package/framework7-bundle-rtl.min.css +5 -5
  45. package/framework7-bundle.css +231 -97
  46. package/framework7-bundle.esm.js +2 -2
  47. package/framework7-bundle.js +875 -687
  48. package/framework7-bundle.js.map +1 -1
  49. package/framework7-bundle.less +2 -2
  50. package/framework7-bundle.min.css +5 -5
  51. package/framework7-bundle.min.js +3 -3
  52. package/framework7-bundle.min.js.map +1 -1
  53. package/framework7-lite-bundle.esm.js +2 -2
  54. package/framework7-lite.esm.js +2 -2
  55. package/framework7-rtl.css +25 -7
  56. package/framework7-rtl.min.css +4 -4
  57. package/framework7.css +25 -7
  58. package/framework7.esm.js +2 -2
  59. package/framework7.less +2 -2
  60. package/framework7.min.css +4 -4
  61. package/less/mixins.less +22 -0
  62. package/modules/router/modal.js +1 -1
  63. package/modules/router/router-class.js +3 -0
  64. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Framework7 8.0.5
2
+ * Framework7 8.2.0
3
3
  * Full featured mobile HTML framework for building iOS & Android apps
4
4
  * https://framework7.io/
5
5
  *
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Released under the MIT License
9
9
  *
10
- * Released on: May 8, 2023
10
+ * Released on: July 6, 2023
11
11
  */
12
12
 
13
13
  (function (global, factory) {
@@ -28,10 +28,10 @@
28
28
  * Released on: December 13, 2021
29
29
  */
30
30
  /* eslint-disable no-param-reassign */
31
- function isObject$3(obj) {
31
+ function isObject$4(obj) {
32
32
  return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;
33
33
  }
34
- function extend$3(target, src) {
34
+ function extend$4(target, src) {
35
35
  if (target === void 0) {
36
36
  target = {};
37
37
  }
@@ -39,12 +39,12 @@
39
39
  src = {};
40
40
  }
41
41
  Object.keys(src).forEach(key => {
42
- if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject$3(src[key]) && isObject$3(target[key]) && Object.keys(src[key]).length > 0) {
43
- extend$3(target[key], src[key]);
42
+ if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject$4(src[key]) && isObject$4(target[key]) && Object.keys(src[key]).length > 0) {
43
+ extend$4(target[key], src[key]);
44
44
  }
45
45
  });
46
46
  }
47
- const ssrDocument = {
47
+ const ssrDocument$1 = {
48
48
  body: {},
49
49
  addEventListener() {},
50
50
  removeEventListener() {},
@@ -94,13 +94,13 @@
94
94
  search: ''
95
95
  }
96
96
  };
97
- function getDocument() {
97
+ function getDocument$1() {
98
98
  const doc = typeof document !== 'undefined' ? document : {};
99
- extend$3(doc, ssrDocument);
99
+ extend$4(doc, ssrDocument$1);
100
100
  return doc;
101
101
  }
102
- const ssrWindow = {
103
- document: ssrDocument,
102
+ const ssrWindow$1 = {
103
+ document: ssrDocument$1,
104
104
  navigator: {
105
105
  userAgent: ''
106
106
  },
@@ -154,9 +154,9 @@
154
154
  clearTimeout(id);
155
155
  }
156
156
  };
157
- function getWindow() {
157
+ function getWindow$1() {
158
158
  const win = typeof window !== 'undefined' ? window : {};
159
- extend$3(win, ssrWindow);
159
+ extend$4(win, ssrWindow$1);
160
160
  return win;
161
161
  }
162
162
 
@@ -236,8 +236,8 @@
236
236
  return a;
237
237
  }
238
238
  function $$1(selector, context) {
239
- const window = getWindow();
240
- const document = getDocument();
239
+ const window = getWindow$1();
240
+ const document = getDocument$1();
241
241
  let arr = [];
242
242
  if (!context && selector instanceof Dom7) {
243
243
  return selector;
@@ -585,7 +585,7 @@
585
585
  return dom.on(eventName, targetSelector, onceHandler, capture);
586
586
  }
587
587
  function trigger() {
588
- const window = getWindow();
588
+ const window = getWindow$1();
589
589
  for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
590
590
  args[_key9] = arguments[_key9];
591
591
  }
@@ -647,7 +647,7 @@
647
647
  return this;
648
648
  }
649
649
  function width() {
650
- const window = getWindow();
650
+ const window = getWindow$1();
651
651
  if (this[0] === window) {
652
652
  return window.innerWidth;
653
653
  }
@@ -667,7 +667,7 @@
667
667
  return null;
668
668
  }
669
669
  function height() {
670
- const window = getWindow();
670
+ const window = getWindow$1();
671
671
  if (this[0] === window) {
672
672
  return window.innerHeight;
673
673
  }
@@ -688,8 +688,8 @@
688
688
  }
689
689
  function offset() {
690
690
  if (this.length > 0) {
691
- const window = getWindow();
692
- const document = getDocument();
691
+ const window = getWindow$1();
692
+ const document = getDocument$1();
693
693
  const el = this[0];
694
694
  const box = el.getBoundingClientRect();
695
695
  const body = document.body;
@@ -711,7 +711,7 @@
711
711
  return this;
712
712
  }
713
713
  function show() {
714
- const window = getWindow();
714
+ const window = getWindow$1();
715
715
  for (let i = 0; i < this.length; i += 1) {
716
716
  const el = this[i];
717
717
  if (el.style.display === 'none') {
@@ -725,12 +725,12 @@
725
725
  return this;
726
726
  }
727
727
  function styles() {
728
- const window = getWindow();
728
+ const window = getWindow$1();
729
729
  if (this[0]) return window.getComputedStyle(this[0], null);
730
730
  return {};
731
731
  }
732
732
  function css(props, value) {
733
- const window = getWindow();
733
+ const window = getWindow$1();
734
734
  let i;
735
735
  if (arguments.length === 1) {
736
736
  if (typeof props === 'string') {
@@ -785,8 +785,8 @@
785
785
  return this;
786
786
  }
787
787
  function is(selector) {
788
- const window = getWindow();
789
- const document = getDocument();
788
+ const window = getWindow$1();
789
+ const document = getDocument$1();
790
790
  const el = this[0];
791
791
  let compareWith;
792
792
  let i;
@@ -844,7 +844,7 @@
844
844
  }
845
845
  function append() {
846
846
  let newChild;
847
- const document = getDocument();
847
+ const document = getDocument$1();
848
848
  for (let k = 0; k < arguments.length; k += 1) {
849
849
  newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];
850
850
  for (let i = 0; i < this.length; i += 1) {
@@ -870,7 +870,7 @@
870
870
  return this;
871
871
  }
872
872
  function prepend(newChild) {
873
- const document = getDocument();
873
+ const document = getDocument$1();
874
874
  let i;
875
875
  let j;
876
876
  for (i = 0; i < this.length; i += 1) {
@@ -1083,7 +1083,7 @@
1083
1083
  // eslint-disable-next-line
1084
1084
 
1085
1085
  function scrollTo() {
1086
- const window = getWindow();
1086
+ const window = getWindow$1();
1087
1087
  for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
1088
1088
  args[_key11] = arguments[_key11];
1089
1089
  }
@@ -1208,7 +1208,7 @@
1208
1208
  // eslint-disable-next-line
1209
1209
 
1210
1210
  function animate(initialProps, initialParams) {
1211
- const window = getWindow();
1211
+ const window = getWindow$1();
1212
1212
  const els = this;
1213
1213
  const a = {
1214
1214
  props: Object.assign({}, initialProps),
@@ -2408,11 +2408,11 @@
2408
2408
  });
2409
2409
  }
2410
2410
  function requestAnimationFrame$1(callback) {
2411
- const window = getWindow();
2411
+ const window = getWindow$1();
2412
2412
  return window.requestAnimationFrame(callback);
2413
2413
  }
2414
2414
  function cancelAnimationFrame$1(frameId) {
2415
- const window = getWindow();
2415
+ const window = getWindow$1();
2416
2416
  return window.cancelAnimationFrame(frameId);
2417
2417
  }
2418
2418
  function nextTick$1(callback, delay) {
@@ -2430,7 +2430,7 @@
2430
2430
  return Date.now();
2431
2431
  }
2432
2432
  function parseUrlQuery(url) {
2433
- const window = getWindow();
2433
+ const window = getWindow$1();
2434
2434
  const query = {};
2435
2435
  let urlToParse = url || window.location.href;
2436
2436
  let i;
@@ -2452,7 +2452,7 @@
2452
2452
  if (axis === void 0) {
2453
2453
  axis = 'x';
2454
2454
  }
2455
- const window = getWindow();
2455
+ const window = getWindow$1();
2456
2456
  let matrix;
2457
2457
  let curTransform;
2458
2458
  let transformMatrix;
@@ -2539,7 +2539,7 @@
2539
2539
 
2540
2540
  return resultArray.join(separator);
2541
2541
  }
2542
- function isObject$2(o) {
2542
+ function isObject$3(o) {
2543
2543
  return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;
2544
2544
  }
2545
2545
  function merge() {
@@ -2564,7 +2564,7 @@
2564
2564
  }
2565
2565
  return to;
2566
2566
  }
2567
- function extend$2() {
2567
+ function extend$3() {
2568
2568
  let deep = true;
2569
2569
  let to;
2570
2570
  let from;
@@ -2591,11 +2591,11 @@
2591
2591
  if (desc !== undefined && desc.enumerable) {
2592
2592
  if (!deep) {
2593
2593
  to[nextKey] = nextSource[nextKey];
2594
- } else if (isObject$2(to[nextKey]) && isObject$2(nextSource[nextKey])) {
2595
- extend$2(to[nextKey], nextSource[nextKey]);
2596
- } else if (!isObject$2(to[nextKey]) && isObject$2(nextSource[nextKey])) {
2594
+ } else if (isObject$3(to[nextKey]) && isObject$3(nextSource[nextKey])) {
2595
+ extend$3(to[nextKey], nextSource[nextKey]);
2596
+ } else if (!isObject$3(to[nextKey]) && isObject$3(nextSource[nextKey])) {
2597
2597
  to[nextKey] = {};
2598
- extend$2(to[nextKey], nextSource[nextKey]);
2598
+ extend$3(to[nextKey], nextSource[nextKey]);
2599
2599
  } else {
2600
2600
  to[nextKey] = nextSource[nextKey];
2601
2601
  }
@@ -2748,7 +2748,7 @@
2748
2748
  }
2749
2749
  function bindMethods(instance, obj) {
2750
2750
  Object.keys(obj).forEach(key => {
2751
- if (isObject$2(obj[key])) {
2751
+ if (isObject$3(obj[key])) {
2752
2752
  Object.keys(obj[key]).forEach(subKey => {
2753
2753
  if (typeof obj[key][subKey] === 'function') {
2754
2754
  obj[key][subKey] = obj[key][subKey].bind(instance);
@@ -2903,12 +2903,12 @@
2903
2903
  colorThemeCSSStyles: colorThemeCSSStyles,
2904
2904
  deleteProps: deleteProps$1,
2905
2905
  eventNameToColonCase: eventNameToColonCase,
2906
- extend: extend$2,
2906
+ extend: extend$3,
2907
2907
  flattenArray: flattenArray,
2908
2908
  getTranslate: getTranslate$1,
2909
2909
  id: id$1,
2910
2910
  iosPreloaderContent: iosPreloaderContent,
2911
- isObject: isObject$2,
2911
+ isObject: isObject$3,
2912
2912
  mdPreloaderContent: mdPreloaderContent,
2913
2913
  merge: merge,
2914
2914
  nextFrame: nextFrame$1,
@@ -2922,8 +2922,8 @@
2922
2922
 
2923
2923
  let support$1;
2924
2924
  function calcSupport$1() {
2925
- const window = getWindow();
2926
- const document = getDocument();
2925
+ const window = getWindow$1();
2926
+ const document = getDocument$1();
2927
2927
  return {
2928
2928
  touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),
2929
2929
  pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,
@@ -2960,7 +2960,7 @@
2960
2960
  userAgent
2961
2961
  } = _temp === void 0 ? {} : _temp;
2962
2962
  const support = getSupport$1();
2963
- const window = getWindow();
2963
+ const window = getWindow$1();
2964
2964
  const platform = window.navigator.platform;
2965
2965
  const ua = userAgent || window.navigator.userAgent;
2966
2966
  const device = {
@@ -3206,11 +3206,11 @@
3206
3206
  const originalParams = {};
3207
3207
  Object.keys(module.params).forEach(paramKey => {
3208
3208
  if (typeof instanceParams[paramKey] === 'undefined') return;
3209
- originalParams[paramKey] = extend$2({}, instanceParams[paramKey]);
3209
+ originalParams[paramKey] = extend$3({}, instanceParams[paramKey]);
3210
3210
  });
3211
- extend$2(instanceParams, module.params);
3211
+ extend$3(instanceParams, module.params);
3212
3212
  Object.keys(originalParams).forEach(paramKey => {
3213
- extend$2(instanceParams[paramKey], originalParams[paramKey]);
3213
+ extend$3(instanceParams[paramKey], originalParams[paramKey]);
3214
3214
  });
3215
3215
  }
3216
3216
  }
@@ -3221,7 +3221,7 @@
3221
3221
  const module = instance.modules[moduleName];
3222
3222
  // Extend params
3223
3223
  if (module.params) {
3224
- extend$2(instanceParams, module.params);
3224
+ extend$3(instanceParams, module.params);
3225
3225
  }
3226
3226
  });
3227
3227
  }
@@ -3387,7 +3387,7 @@
3387
3387
  constructor: Constructor,
3388
3388
  app
3389
3389
  } = parameters;
3390
- const methods = extend$2(ConstructorMethods({
3390
+ const methods = extend$3(ConstructorMethods({
3391
3391
  defaultSelector,
3392
3392
  constructor: Constructor,
3393
3393
  app,
@@ -3459,8 +3459,8 @@
3459
3459
  const fetchedModules = [];
3460
3460
  function loadModule(moduleToLoad) {
3461
3461
  const Framework7 = this;
3462
- const window = getWindow();
3463
- const document = getDocument();
3462
+ const window = getWindow$1();
3463
+ const document = getDocument$1();
3464
3464
  return new Promise((resolve, reject) => {
3465
3465
  const app = Framework7.instance;
3466
3466
  let modulePath;
@@ -3614,14 +3614,14 @@
3614
3614
  userAgent: params.userAgent || undefined
3615
3615
  });
3616
3616
  const support = getSupport$1();
3617
- const passedParams = extend$2({}, params);
3617
+ const passedParams = extend$3({}, params);
3618
3618
 
3619
3619
  // App Instance
3620
3620
  const app = this;
3621
3621
  app.device = device;
3622
3622
  app.support = support;
3623
- const w = getWindow();
3624
- const d = getDocument();
3623
+ const w = getWindow$1();
3624
+ const d = getDocument$1();
3625
3625
  Framework7.instance = app;
3626
3626
 
3627
3627
  // Default
@@ -3663,8 +3663,8 @@
3663
3663
  app.useModulesParams(defaults);
3664
3664
 
3665
3665
  // Extend defaults with passed params
3666
- app.params = extend$2(defaults, params);
3667
- extend$2(app, {
3666
+ app.params = extend$3(defaults, params);
3667
+ extend$3(app, {
3668
3668
  // App Name
3669
3669
  name: app.params.name,
3670
3670
  // Routes
@@ -3718,7 +3718,7 @@
3718
3718
  }
3719
3719
  setColors() {
3720
3720
  const app = this;
3721
- const document = getDocument();
3721
+ const document = getDocument$1();
3722
3722
  if (!app.colorsStyleEl) {
3723
3723
  app.colorsStyleEl = document.createElement('style');
3724
3724
  document.head.appendChild(app.colorsStyleEl);
@@ -3727,8 +3727,8 @@
3727
3727
  }
3728
3728
  mount(rootEl) {
3729
3729
  const app = this;
3730
- const window = getWindow();
3731
- const document = getDocument();
3730
+ const window = getWindow$1();
3731
+ const document = getDocument$1();
3732
3732
  const $rootEl = $(rootEl || app.params.el).eq(0);
3733
3733
  app.$el = $rootEl;
3734
3734
  if (app.$el && app.$el[0]) {
@@ -3775,8 +3775,8 @@
3775
3775
  }
3776
3776
  }
3777
3777
  enableAutoDarkMode() {
3778
- const window = getWindow();
3779
- const document = getDocument();
3778
+ const window = getWindow$1();
3779
+ const document = getDocument$1();
3780
3780
  if (!window.matchMedia) return;
3781
3781
  const app = this;
3782
3782
  const html = document.querySelector('html');
@@ -3795,7 +3795,7 @@
3795
3795
  }
3796
3796
  }
3797
3797
  disableAutoDarkMode() {
3798
- const window = getWindow();
3798
+ const window = getWindow$1();
3799
3799
  if (!window.matchMedia) return;
3800
3800
  const app = this;
3801
3801
  if (app.mq.dark) app.mq.dark.removeListener(app.colorSchemeListener);
@@ -3846,7 +3846,7 @@
3846
3846
  }
3847
3847
 
3848
3848
  // Watch for online/offline state
3849
- const window = getWindow();
3849
+ const window = getWindow$1();
3850
3850
  window.addEventListener('offline', () => {
3851
3851
  app.online = false;
3852
3852
  app.emit('offline');
@@ -3865,11 +3865,10 @@
3865
3865
  $('html').removeClass('ios md').addClass(app.theme);
3866
3866
 
3867
3867
  // iOS Translucent
3868
- const device = app.device;
3869
- if (app.params.iosTranslucentBars && app.theme === 'ios' && device.ios) {
3868
+ if (app.params.iosTranslucentBars && app.theme === 'ios') {
3870
3869
  $('html').addClass('ios-translucent-bars');
3871
3870
  }
3872
- if (app.params.iosTranslucentModals && app.theme === 'ios' && device.ios) {
3871
+ if (app.params.iosTranslucentModals && app.theme === 'ios') {
3873
3872
  $('html').addClass('ios-translucent-modals');
3874
3873
  }
3875
3874
 
@@ -3944,7 +3943,7 @@
3944
3943
  },
3945
3944
  on: {
3946
3945
  init() {
3947
- const document = getDocument();
3946
+ const document = getDocument$1();
3948
3947
  const device = getDevice$1();
3949
3948
  const classNames = [];
3950
3949
  const html = document.querySelector('html');
@@ -4025,7 +4024,7 @@
4025
4024
  on: {
4026
4025
  init() {
4027
4026
  const app = this;
4028
- const window = getWindow();
4027
+ const window = getWindow$1();
4029
4028
 
4030
4029
  // Get Size
4031
4030
  app.getSize();
@@ -4041,7 +4040,7 @@
4041
4040
  });
4042
4041
  },
4043
4042
  orientationchange() {
4044
- const document = getDocument();
4043
+ const document = getDocument$1();
4045
4044
  const device = getDevice$1();
4046
4045
  // Fix iPad weird body scroll
4047
4046
  if (device.ipad) {
@@ -4063,8 +4062,8 @@
4063
4062
  const app = this;
4064
4063
  const device = getDevice$1();
4065
4064
  const support = getSupport$1();
4066
- const window = getWindow();
4067
- const document = getDocument();
4065
+ const window = getWindow$1();
4066
+ const document = getDocument$1();
4068
4067
  const params = app.params.touch;
4069
4068
  const useRipple = params[`${app.theme}TouchRipple`];
4070
4069
  if (device.ios && device.webView) {
@@ -4523,7 +4522,7 @@
4523
4522
  create() {
4524
4523
  const app = this;
4525
4524
  const support = getSupport$1();
4526
- extend$2(app, {
4525
+ extend$3(app, {
4527
4526
  touchEvents: {
4528
4527
  start: support.touch ? 'touchstart' : support.pointerEvents ? 'pointerdown' : 'mousedown',
4529
4528
  move: support.touch ? 'touchmove' : support.pointerEvents ? 'pointermove' : 'mousemove',
@@ -5064,16 +5063,16 @@
5064
5063
  });
5065
5064
  },
5066
5065
  initViewState(viewId, viewState) {
5067
- const window = getWindow();
5068
- const newState = extend$2({}, History$1.state || {}, {
5066
+ const window = getWindow$1();
5067
+ const newState = extend$3({}, History$1.state || {}, {
5069
5068
  [viewId]: viewState
5070
5069
  });
5071
5070
  History$1.state = newState;
5072
5071
  window.history.replaceState(newState, '');
5073
5072
  },
5074
5073
  push(viewId, viewState, url) {
5075
- const window = getWindow();
5076
- const document = getDocument();
5074
+ const window = getWindow$1();
5075
+ const document = getDocument$1();
5077
5076
  /* eslint-disable no-param-reassign */
5078
5077
  if (url.substr(-3) === '#!/') {
5079
5078
  url = url.replace('#!/', '');
@@ -5092,14 +5091,14 @@
5092
5091
  return;
5093
5092
  }
5094
5093
  History$1.previousState = History$1.state;
5095
- const newState = extend$2({}, History$1.previousState || {}, {
5094
+ const newState = extend$3({}, History$1.previousState || {}, {
5096
5095
  [viewId]: viewState
5097
5096
  });
5098
5097
  History$1.state = newState;
5099
5098
  window.history.pushState(newState, '', url);
5100
5099
  },
5101
5100
  replace(viewId, viewState, url) {
5102
- const window = getWindow();
5101
+ const window = getWindow$1();
5103
5102
  if (url.substr(-3) === '#!/') {
5104
5103
  // eslint-disable-next-line
5105
5104
  url = url.replace('#!/', '');
@@ -5111,19 +5110,19 @@
5111
5110
  return;
5112
5111
  }
5113
5112
  History$1.previousState = History$1.state;
5114
- const newState = extend$2({}, History$1.previousState || {}, {
5113
+ const newState = extend$3({}, History$1.previousState || {}, {
5115
5114
  [viewId]: viewState
5116
5115
  });
5117
5116
  History$1.state = newState;
5118
5117
  window.history.replaceState(newState, '', url);
5119
5118
  },
5120
5119
  go(index) {
5121
- const window = getWindow();
5120
+ const window = getWindow$1();
5122
5121
  History$1.allowChange = false;
5123
5122
  window.history.go(index);
5124
5123
  },
5125
5124
  back() {
5126
- const window = getWindow();
5125
+ const window = getWindow$1();
5127
5126
  History$1.allowChange = false;
5128
5127
  window.history.back();
5129
5128
  },
@@ -5132,8 +5131,8 @@
5132
5131
  state: {},
5133
5132
  blockPopstate: true,
5134
5133
  init(app) {
5135
- const window = getWindow();
5136
- const document = getDocument();
5134
+ const window = getWindow$1();
5135
+ const document = getDocument$1();
5137
5136
  History$1.state = window.history.state;
5138
5137
  $(window).on('load', () => {
5139
5138
  setTimeout(() => {
@@ -5745,7 +5744,7 @@
5745
5744
  redirectOptions = {};
5746
5745
  }
5747
5746
  router.allowPageChange = true;
5748
- router[method](redirectUrl, extend$2({}, options, redirectOptions));
5747
+ router[method](redirectUrl, extend$3({}, options, redirectOptions));
5749
5748
  }
5750
5749
  function redirectReject() {
5751
5750
  router.allowPageChange = true;
@@ -5884,11 +5883,11 @@
5884
5883
  if (forwardOptions === void 0) {
5885
5884
  forwardOptions = {};
5886
5885
  }
5887
- const document = getDocument();
5886
+ const document = getDocument$1();
5888
5887
  const $el = $(el);
5889
5888
  const app = router.app;
5890
5889
  const view = router.view;
5891
- const options = extend$2(false, {
5890
+ const options = extend$3(false, {
5892
5891
  animate: router.params.animate,
5893
5892
  browserHistory: true,
5894
5893
  replaceState: false,
@@ -6256,7 +6255,7 @@
6256
6255
 
6257
6256
  // Load Tab
6258
6257
  if (options.route.route.tab) {
6259
- router.tabLoad(options.route.route.tab, extend$2({}, options, {
6258
+ router.tabLoad(options.route.route.tab, extend$3({}, options, {
6260
6259
  history: false,
6261
6260
  browserHistory: false
6262
6261
  }));
@@ -6418,7 +6417,7 @@
6418
6417
  }
6419
6418
  if (!options.route && url) {
6420
6419
  options.route = router.parseRouteUrl(url);
6421
- extend$2(options.route, {
6420
+ extend$3(options.route, {
6422
6421
  route: {
6423
6422
  url,
6424
6423
  path: url
@@ -6428,7 +6427,7 @@
6428
6427
 
6429
6428
  // Component Callbacks
6430
6429
  function resolve(pageEl, newOptions) {
6431
- return forward(router, pageEl, extend$2(options, newOptions));
6430
+ return forward(router, pageEl, extend$3(options, newOptions));
6432
6431
  }
6433
6432
  function reject() {
6434
6433
  router.allowPageChange = true;
@@ -6522,8 +6521,8 @@
6522
6521
  navigateUrl = ((currentPath ? `${currentPath}/` : '/') + navigateUrl).replace('///', '/').replace('//', '/');
6523
6522
  }
6524
6523
  if (createRoute) {
6525
- route = extend$2(router.parseRouteUrl(navigateUrl), {
6526
- route: extend$2({}, createRoute)
6524
+ route = extend$3(router.parseRouteUrl(navigateUrl), {
6525
+ route: extend$3({}, createRoute)
6527
6526
  });
6528
6527
  } else {
6529
6528
  route = router.findMatchingRoute(navigateUrl);
@@ -6546,9 +6545,9 @@
6546
6545
  }
6547
6546
  const options = {};
6548
6547
  if (route.route.options) {
6549
- extend$2(options, route.route.options, navigateOptions);
6548
+ extend$3(options, route.route.options, navigateOptions);
6550
6549
  } else {
6551
- extend$2(options, navigateOptions);
6550
+ extend$3(options, navigateOptions);
6552
6551
  }
6553
6552
  if (options.openIn && (!router.params.ignoreOpenIn || router.params.ignoreOpenIn && router.history.length > 0)) {
6554
6553
  return router.openIn(router, navigateUrl, options);
@@ -6584,15 +6583,15 @@
6584
6583
  'popup popover sheet loginScreen actions customModal panel'.split(' ').forEach(modalLoadProp => {
6585
6584
  if (resolveParams[modalLoadProp]) {
6586
6585
  resolvedAsModal = true;
6587
- const modalRoute = extend$2({}, route, {
6586
+ const modalRoute = extend$3({}, route, {
6588
6587
  route: resolveParams
6589
6588
  });
6590
6589
  router.allowPageChange = true;
6591
- router.modalLoad(modalLoadProp, modalRoute, extend$2(options, resolveOptions), 'forward');
6590
+ router.modalLoad(modalLoadProp, modalRoute, extend$3(options, resolveOptions), 'forward');
6592
6591
  }
6593
6592
  });
6594
6593
  if (resolvedAsModal) return;
6595
- load(router, resolveParams, extend$2(options, resolveOptions), true);
6594
+ load(router, resolveParams, extend$3(options, resolveOptions), true);
6596
6595
  }
6597
6596
  function asyncReject() {
6598
6597
  router.allowPageChange = true;
@@ -6642,7 +6641,7 @@
6642
6641
  history: !navigateOptions.initial,
6643
6642
  once: {
6644
6643
  pageAfterIn() {
6645
- router.navigate(navigateParams, extend$2({}, navigateOptions, {
6644
+ router.navigate(navigateParams, extend$3({}, navigateOptions, {
6646
6645
  animate: false,
6647
6646
  reloadAll: false,
6648
6647
  reloadCurrent: false,
@@ -6679,7 +6678,7 @@
6679
6678
  loadOptions = {};
6680
6679
  }
6681
6680
  const router = this;
6682
- const options = extend$2({
6681
+ const options = extend$3({
6683
6682
  animate: router.params.animate,
6684
6683
  browserHistory: true,
6685
6684
  history: true,
@@ -6858,7 +6857,7 @@
6858
6857
 
6859
6858
  // Async
6860
6859
  function asyncResolve(resolveParams, resolveOptions) {
6861
- loadTab(resolveParams, extend$2(options, resolveOptions));
6860
+ loadTab(resolveParams, extend$3(options, resolveOptions));
6862
6861
  }
6863
6862
  function asyncReject() {
6864
6863
  router.allowPageChange = true;
@@ -6908,14 +6907,14 @@
6908
6907
  const app = router.app;
6909
6908
  const isPanel = modalType === 'panel';
6910
6909
  const modalOrPanel = isPanel ? 'panel' : 'modal';
6911
- const options = extend$2({
6910
+ const options = extend$3({
6912
6911
  animate: router.params.animate,
6913
6912
  browserHistory: true,
6914
6913
  history: true,
6915
6914
  on: {},
6916
6915
  once: {}
6917
6916
  }, loadOptions);
6918
- const modalParams = extend$2({}, route.route[modalType]);
6917
+ const modalParams = extend$3({}, route.route[modalType]);
6919
6918
  const modalRoute = route.route;
6920
6919
  const routeCallback = (modal, name) => {
6921
6920
  const {
@@ -6970,7 +6969,7 @@
6970
6969
  modalComponent.destroy();
6971
6970
  }
6972
6971
  nextTick$1(() => {
6973
- if (modalComponent || modalParams.component || modalParams.asyncComponent) {
6972
+ if (modalComponent || modalParams.component || modalParams.asyncComponent || modalParams.async) {
6974
6973
  router.removeModal(modal.el);
6975
6974
  }
6976
6975
  modal.destroy();
@@ -6989,7 +6988,7 @@
6989
6988
 
6990
6989
  // Set Route
6991
6990
  if (options.route !== router.currentRoute) {
6992
- modal.route = extend$2(options.route, {
6991
+ modal.route = extend$3(options.route, {
6993
6992
  modal
6994
6993
  });
6995
6994
  router.currentRoute = modal.route;
@@ -7092,7 +7091,7 @@
7092
7091
 
7093
7092
  // Async
7094
7093
  function asyncResolve(resolveParams, resolveOptions) {
7095
- loadModal(resolveParams, extend$2(options, resolveOptions));
7094
+ loadModal(resolveParams, extend$3(options, resolveOptions));
7096
7095
  }
7097
7096
  function asyncReject() {
7098
7097
  router.allowPageChange = true;
@@ -7114,7 +7113,7 @@
7114
7113
  return router;
7115
7114
  }
7116
7115
  function modalRemove(modal) {
7117
- extend$2(modal, {
7116
+ extend$3(modal, {
7118
7117
  closeByRouter: true
7119
7118
  });
7120
7119
  modal.close();
@@ -7122,11 +7121,11 @@
7122
7121
 
7123
7122
  function backward(router, el, backwardOptions) {
7124
7123
  const device = getDevice$1();
7125
- const document = getDocument();
7124
+ const document = getDocument$1();
7126
7125
  const $el = $(el);
7127
7126
  const app = router.app;
7128
7127
  const view = router.view;
7129
- const options = extend$2(false, {
7128
+ const options = extend$3(false, {
7130
7129
  animate: router.params.animate,
7131
7130
  browserHistory: true,
7132
7131
  replaceState: false
@@ -7306,7 +7305,7 @@
7306
7305
  insertPage();
7307
7306
  // Tab route
7308
7307
  if (options.route.route.tab) {
7309
- router.tabLoad(options.route.route.tab, extend$2({}, options, {
7308
+ router.tabLoad(options.route.route.tab, extend$3({}, options, {
7310
7309
  history: false,
7311
7310
  browserHistory: false,
7312
7311
  preload: true
@@ -7407,7 +7406,7 @@
7407
7406
 
7408
7407
  // Load Tab
7409
7408
  if (options.route.route.tab) {
7410
- router.tabLoad(options.route.route.tab, extend$2({}, options, {
7409
+ router.tabLoad(options.route.route.tab, extend$3({}, options, {
7411
7410
  history: false,
7412
7411
  browserHistory: false
7413
7412
  }));
@@ -7514,7 +7513,7 @@
7514
7513
 
7515
7514
  // Component Callbacks
7516
7515
  function resolve(pageEl, newOptions) {
7517
- return backward(router, pageEl, extend$2(options, newOptions));
7516
+ return backward(router, pageEl, extend$3(options, newOptions));
7518
7517
  }
7519
7518
  function reject() {
7520
7519
  router.allowPageChange = true;
@@ -7588,7 +7587,7 @@
7588
7587
  query
7589
7588
  });
7590
7589
  if (navigateUrl) {
7591
- return router.back(navigateUrl, extend$2({}, navigateOptions, {
7590
+ return router.back(navigateUrl, extend$3({}, navigateOptions, {
7592
7591
  name: null,
7593
7592
  params: null,
7594
7593
  query: null
@@ -7694,7 +7693,7 @@
7694
7693
  }
7695
7694
  if (!navigateOptions.force && $previousPage.length && !skipMaster) {
7696
7695
  if (router.params.browserHistory && $previousPage[0].f7Page && router.history[router.history.length - 2] !== $previousPage[0].f7Page.route.url) {
7697
- router.back(router.history[router.history.length - 2], extend$2(navigateOptions, {
7696
+ router.back(router.history[router.history.length - 2], extend$3(navigateOptions, {
7698
7697
  force: true,
7699
7698
  props: router.propsHistory[router.propsHistory.length - 2] || {}
7700
7699
  }));
@@ -7704,7 +7703,7 @@
7704
7703
  processRouteQueue.call(router, previousPageRoute, router.currentRoute, () => {
7705
7704
  loadBack(router, {
7706
7705
  el: $previousPage
7707
- }, extend$2(navigateOptions, {
7706
+ }, extend$3(navigateOptions, {
7708
7707
  route: previousPageRoute
7709
7708
  }));
7710
7709
  }, () => {}, 'backward');
@@ -7723,7 +7722,7 @@
7723
7722
  navigateProps = router.propsHistory[router.propsHistory.length - 2] || {};
7724
7723
  }
7725
7724
  if (skipMaster && !navigateOptions.force && router.history[router.history.length - 3]) {
7726
- return router.back(router.history[router.history.length - 3], extend$2({}, navigateOptions || {}, {
7725
+ return router.back(router.history[router.history.length - 3], extend$3({}, navigateOptions || {}, {
7727
7726
  force: true,
7728
7727
  animate: false,
7729
7728
  props: router.propsHistory[router.propsHistory.length - 3] || {}
@@ -7756,11 +7755,11 @@
7756
7755
  }
7757
7756
  const options = {};
7758
7757
  if (route.route.options) {
7759
- extend$2(options, route.route.options, navigateOptions, {
7758
+ extend$3(options, route.route.options, navigateOptions, {
7760
7759
  props: navigateProps || {}
7761
7760
  });
7762
7761
  } else {
7763
- extend$2(options, navigateOptions, {
7762
+ extend$3(options, navigateOptions, {
7764
7763
  props: navigateProps || {}
7765
7764
  });
7766
7765
  }
@@ -7785,7 +7784,7 @@
7785
7784
  // Async
7786
7785
  function asyncResolve(resolveParams, resolveOptions) {
7787
7786
  router.allowPageChange = false;
7788
- loadBack(router, resolveParams, extend$2(options, resolveOptions), true);
7787
+ loadBack(router, resolveParams, extend$3(options, resolveOptions), true);
7789
7788
  }
7790
7789
  function asyncReject() {
7791
7790
  router.allowPageChange = true;
@@ -7870,7 +7869,7 @@
7870
7869
  router.isAppRouter = typeof view === 'undefined';
7871
7870
  if (router.isAppRouter) {
7872
7871
  // App Router
7873
- extend$2(false, router, {
7872
+ extend$3(false, router, {
7874
7873
  app,
7875
7874
  params: app.params.view,
7876
7875
  routes: app.routes || [],
@@ -7878,7 +7877,7 @@
7878
7877
  });
7879
7878
  } else {
7880
7879
  // View Router
7881
- extend$2(false, router, {
7880
+ extend$3(false, router, {
7882
7881
  app,
7883
7882
  view,
7884
7883
  viewId: view.id,
@@ -7911,7 +7910,7 @@
7911
7910
  if (newRoute === void 0) {
7912
7911
  newRoute = {};
7913
7912
  }
7914
- previousRoute = extend$2({}, currentRoute);
7913
+ previousRoute = extend$3({}, currentRoute);
7915
7914
  currentRoute = newRoute;
7916
7915
  if (!currentRoute) return;
7917
7916
  router.url = currentRoute.url;
@@ -7936,8 +7935,8 @@
7936
7935
  mount() {
7937
7936
  const router = this;
7938
7937
  const view = router.view;
7939
- const document = getDocument();
7940
- extend$2(false, router, {
7938
+ const document = getDocument$1();
7939
+ extend$3(false, router, {
7941
7940
  tempDom: document.createElement('div'),
7942
7941
  $el: view.$el,
7943
7942
  el: view.el,
@@ -8264,7 +8263,7 @@
8264
8263
  let hasTabRoutes = false;
8265
8264
  if ('tabs' in route && route.tabs) {
8266
8265
  const mergedPathsRoutes = route.tabs.map(tabRoute => {
8267
- const tRoute = extend$2({}, route, {
8266
+ const tRoute = extend$3({}, route, {
8268
8267
  path: `${route.path}/${tabRoute.path}`.replace('///', '/').replace('//', '/'),
8269
8268
  parentPath: route.path,
8270
8269
  tab: tabRoute
@@ -8278,7 +8277,7 @@
8278
8277
  }
8279
8278
  if ('detailRoutes' in route) {
8280
8279
  const mergedPathsRoutes = route.detailRoutes.map(detailRoute => {
8281
- const dRoute = extend$2({}, detailRoute);
8280
+ const dRoute = extend$3({}, detailRoute);
8282
8281
  dRoute.masterRoute = route;
8283
8282
  dRoute.masterRoutePath = route.path;
8284
8283
  return dRoute;
@@ -8287,7 +8286,7 @@
8287
8286
  }
8288
8287
  if ('routes' in route) {
8289
8288
  const mergedPathsRoutes = route.routes.map(childRoute => {
8290
- const cRoute = extend$2({}, childRoute);
8289
+ const cRoute = extend$3({}, childRoute);
8291
8290
  cRoute.path = `${route.path}/${cRoute.path}`.replace('///', '/').replace('//', '/');
8292
8291
  return cRoute;
8293
8292
  });
@@ -8348,6 +8347,9 @@
8348
8347
  params,
8349
8348
  query
8350
8349
  });
8350
+ if (url === '') {
8351
+ return '/';
8352
+ }
8351
8353
  if (!url) {
8352
8354
  throw new Error(`Framework7: can't construct URL for route with name "${name}"`);
8353
8355
  }
@@ -8672,7 +8674,7 @@
8672
8674
  const colonName = `page:${callback.toLowerCase()}`;
8673
8675
  let page = {};
8674
8676
  if (callback === 'beforeRemove' && $pageEl[0].f7Page) {
8675
- page = extend$2($pageEl[0].f7Page, {
8677
+ page = extend$3($pageEl[0].f7Page, {
8676
8678
  from,
8677
8679
  to,
8678
8680
  position: from
@@ -8686,10 +8688,10 @@
8686
8688
  once = {}
8687
8689
  } = options.route ? options.route.route : {};
8688
8690
  if (options.on) {
8689
- extend$2(on, options.on);
8691
+ extend$3(on, options.on);
8690
8692
  }
8691
8693
  if (options.once) {
8692
- extend$2(once, options.once);
8694
+ extend$3(once, options.once);
8693
8695
  }
8694
8696
  function attachEvents() {
8695
8697
  if ($pageEl[0].f7RouteEventsAttached) return;
@@ -8779,7 +8781,7 @@
8779
8781
  }
8780
8782
  saveHistory() {
8781
8783
  const router = this;
8782
- const window = getWindow();
8784
+ const window = getWindow$1();
8783
8785
  router.view.history = router.history;
8784
8786
  if (router.params.browserHistory && router.params.browserHistoryStoreHistory && window.localStorage) {
8785
8787
  window.localStorage[`f7router-${router.view.id}-history`] = JSON.stringify(router.history);
@@ -8787,7 +8789,7 @@
8787
8789
  }
8788
8790
  restoreHistory() {
8789
8791
  const router = this;
8790
- const window = getWindow();
8792
+ const window = getWindow$1();
8791
8793
  if (router.params.browserHistory && router.params.browserHistoryStoreHistory && window.localStorage && window.localStorage[`f7router-${router.view.id}-history`]) {
8792
8794
  router.history = JSON.parse(window.localStorage[`f7router-${router.view.id}-history`]);
8793
8795
  router.view.history = router.history;
@@ -8818,7 +8820,7 @@
8818
8820
  path
8819
8821
  } = router.parseRouteUrl(newUrl);
8820
8822
  if (router.currentRoute) {
8821
- extend$2(router.currentRoute, {
8823
+ extend$3(router.currentRoute, {
8822
8824
  query,
8823
8825
  hash,
8824
8826
  params,
@@ -8849,8 +8851,8 @@
8849
8851
  app,
8850
8852
  view
8851
8853
  } = router;
8852
- const document = getDocument();
8853
- const window = getWindow();
8854
+ const document = getDocument$1();
8855
+ const window = getWindow$1();
8854
8856
  const location = app.params.url && typeof app.params.url === 'string' && typeof URL !== 'undefined' ? new URL(app.params.url) : document.location;
8855
8857
  let initialUrl = router.params.url;
8856
8858
  let documentUrl = location.href.split(location.origin)[1];
@@ -8918,7 +8920,7 @@
8918
8920
  app,
8919
8921
  view
8920
8922
  } = router;
8921
- const document = getDocument();
8923
+ const document = getDocument$1();
8922
8924
  router.mount();
8923
8925
  const {
8924
8926
  initialUrl,
@@ -8941,7 +8943,7 @@
8941
8943
  const initUrl = browserHistoryInitialMatch ? initialUrl : router.history[0];
8942
8944
  currentRoute = router.findMatchingRoute(initUrl);
8943
8945
  if (!currentRoute) {
8944
- currentRoute = extend$2(router.parseRouteUrl(initUrl), {
8946
+ currentRoute = extend$3(router.parseRouteUrl(initUrl), {
8945
8947
  route: {
8946
8948
  url: initUrl,
8947
8949
  path: initUrl.split('?')[0]
@@ -8952,7 +8954,7 @@
8952
8954
  // Don't load page
8953
8955
  currentRoute = router.findMatchingRoute(initialUrl);
8954
8956
  if (!currentRoute) {
8955
- currentRoute = extend$2(router.parseRouteUrl(initialUrl), {
8957
+ currentRoute = extend$3(router.parseRouteUrl(initialUrl), {
8956
8958
  route: {
8957
8959
  url: initialUrl,
8958
8960
  path: initialUrl.split('?')[0]
@@ -9029,7 +9031,7 @@
9029
9031
  route: router.currentRoute
9030
9032
  };
9031
9033
  if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.options) {
9032
- extend$2(initOptions, router.currentRoute.route.options);
9034
+ extend$3(initOptions, router.currentRoute.route.options);
9033
9035
  }
9034
9036
  router.currentPageEl = $pageEl[0];
9035
9037
  if (router.dynamicNavbar && $navbarEl.length) {
@@ -9041,7 +9043,7 @@
9041
9043
  }
9042
9044
  if (initOptions.route.route.tab) {
9043
9045
  hasTabRoute = true;
9044
- router.tabLoad(initOptions.route.route.tab, extend$2({}, initOptions));
9046
+ router.tabLoad(initOptions.route.route.tab, extend$3({}, initOptions));
9045
9047
  }
9046
9048
  router.pageCallback('init', $pageEl, $navbarEl, 'current', undefined, initOptions);
9047
9049
  router.pageCallback('beforeIn', $pageEl, $navbarEl, 'current', undefined, initOptions);
@@ -9143,7 +9145,7 @@
9143
9145
  const app = view.app;
9144
9146
  const support = getSupport$1();
9145
9147
  if (view.resizableInitialized) return;
9146
- extend$2(view, {
9148
+ extend$3(view, {
9147
9149
  resizable: true,
9148
9150
  resizableWidth: null,
9149
9151
  resizableInitialized: true
@@ -9283,7 +9285,7 @@
9283
9285
  }
9284
9286
 
9285
9287
  // Default View params
9286
- view.params = extend$2({
9288
+ view.params = extend$3({
9287
9289
  el
9288
9290
  }, defaults, app.params.view, viewParams);
9289
9291
 
@@ -9295,7 +9297,7 @@
9295
9297
  }
9296
9298
 
9297
9299
  // View Props
9298
- extend$2(false, view, {
9300
+ extend$3(false, view, {
9299
9301
  app,
9300
9302
  name: view.params.name,
9301
9303
  main: view.params.main,
@@ -9421,7 +9423,7 @@
9421
9423
  $navbarsEl = $('<div class="navbars"></div>');
9422
9424
  }
9423
9425
  }
9424
- extend$2(view, {
9426
+ extend$3(view, {
9425
9427
  $el,
9426
9428
  el: $el[0],
9427
9429
  main: view.main || $el.hasClass('view-main'),
@@ -9464,7 +9466,7 @@
9464
9466
 
9465
9467
  function initClicks(app) {
9466
9468
  function handleClicks(e) {
9467
- const window = getWindow();
9469
+ const window = getWindow$1();
9468
9470
  const $clickedEl = $(e.target);
9469
9471
  const $clickedLinkEl = $clickedEl.closest('a');
9470
9472
  const isLink = $clickedLinkEl.length > 0;
@@ -10118,7 +10120,7 @@
10118
10120
  return slotNodes.map(subTreeNode => treeNodeToVNode(subTreeNode, component, f7, initial));
10119
10121
  };
10120
10122
  const isTreeNode = treeNode => {
10121
- return isObject$2(treeNode) && 'props' in treeNode && 'type' in treeNode && 'children' in treeNode;
10123
+ return isObject$3(treeNode) && 'props' in treeNode && 'type' in treeNode && 'children' in treeNode;
10122
10124
  };
10123
10125
  const treeNodeToVNode = (treeNode, component, f7, initial, isRoot) => {
10124
10126
  if (!isTreeNode(treeNode)) {
@@ -10921,7 +10923,7 @@
10921
10923
  context,
10922
10924
  children
10923
10925
  } = _temp === void 0 ? {} : _temp;
10924
- const document = getDocument();
10926
+ const document = getDocument$1();
10925
10927
  merge(this, {
10926
10928
  f7: app,
10927
10929
  props: props || {},
@@ -11198,7 +11200,7 @@
11198
11200
  });
11199
11201
  }
11200
11202
  startUpdateQueue() {
11201
- const window = getWindow();
11203
+ const window = getWindow$1();
11202
11204
  if (this.__requestAnimationFrameId) return;
11203
11205
  const update = () => {
11204
11206
  this.hook('onBeforeUpdate');
@@ -11264,7 +11266,7 @@
11264
11266
  }
11265
11267
  destroy() {
11266
11268
  if (this.__destroyed) return;
11267
- const window = getWindow();
11269
+ const window = getWindow$1();
11268
11270
  this.hook('onBeforeUnmount');
11269
11271
  if (this.styleEl) $(this.styleEl).remove();
11270
11272
  this.detachEvents();
@@ -11309,8 +11311,8 @@
11309
11311
  Component.$jsx = $jsx;
11310
11312
 
11311
11313
  function parseComponent(componentString) {
11312
- const window = getWindow();
11313
- const document = getDocument();
11314
+ const window = getWindow$1();
11315
+ const document = getDocument$1();
11314
11316
  const componentId = id$1();
11315
11317
  const callbackCreateName = `f7_component_create_callback_${componentId}`;
11316
11318
 
@@ -11440,7 +11442,7 @@
11440
11442
  registrations: [],
11441
11443
  register(path, scope) {
11442
11444
  const app = this;
11443
- const window = getWindow();
11445
+ const window = getWindow$1();
11444
11446
  if (!('serviceWorker' in window.navigator) || !app.serviceWorker.container) {
11445
11447
  return new Promise((resolve, reject) => {
11446
11448
  reject(new Error('Service worker is not supported'));
@@ -11461,7 +11463,7 @@
11461
11463
  },
11462
11464
  unregister(registration) {
11463
11465
  const app = this;
11464
- const window = getWindow();
11466
+ const window = getWindow$1();
11465
11467
  if (!('serviceWorker' in window.navigator) || !app.serviceWorker.container) {
11466
11468
  return new Promise((resolve, reject) => {
11467
11469
  reject(new Error('Service worker is not supported'));
@@ -11493,8 +11495,8 @@
11493
11495
  },
11494
11496
  create() {
11495
11497
  const app = this;
11496
- const window = getWindow();
11497
- extend$2(app, {
11498
+ const window = getWindow$1();
11499
+ extend$3(app, {
11498
11500
  serviceWorker: {
11499
11501
  container: 'serviceWorker' in window.navigator ? window.navigator.serviceWorker : undefined,
11500
11502
  registrations: SW.registrations,
@@ -11505,7 +11507,7 @@
11505
11507
  },
11506
11508
  on: {
11507
11509
  init() {
11508
- const window = getWindow();
11510
+ const window = getWindow$1();
11509
11511
  if (!('serviceWorker' in window.navigator)) return;
11510
11512
  const app = this;
11511
11513
  if (app.device.cordova || window.Capacitor && window.Capacitor.isNative) return;
@@ -11538,7 +11540,7 @@
11538
11540
  const getters = {
11539
11541
  ...(storeParams.getters || {})
11540
11542
  };
11541
- const state = extend$2({}, originalState);
11543
+ const state = extend$3({}, originalState);
11542
11544
  let propsQueue = [];
11543
11545
  const gettersDependencies = {};
11544
11546
  const gettersCallbacks = {};
@@ -11669,12 +11671,12 @@
11669
11671
  };
11670
11672
 
11671
11673
  const isCapacitor = () => {
11672
- const window = getWindow();
11674
+ const window = getWindow$1();
11673
11675
  return window.Capacitor && window.Capacitor.isNative && window.Capacitor.Plugins && window.Capacitor.Plugins.StatusBar;
11674
11676
  };
11675
11677
  const Statusbar = {
11676
11678
  hide() {
11677
- const window = getWindow();
11679
+ const window = getWindow$1();
11678
11680
  const device = getDevice$1();
11679
11681
  if (device.cordova && window.StatusBar) {
11680
11682
  window.StatusBar.hide();
@@ -11684,7 +11686,7 @@
11684
11686
  }
11685
11687
  },
11686
11688
  show() {
11687
- const window = getWindow();
11689
+ const window = getWindow$1();
11688
11690
  const device = getDevice$1();
11689
11691
  if (device.cordova && window.StatusBar) {
11690
11692
  window.StatusBar.show();
@@ -11719,7 +11721,7 @@
11719
11721
  }
11720
11722
  },
11721
11723
  setTextColor(color) {
11722
- const window = getWindow();
11724
+ const window = getWindow$1();
11723
11725
  const device = getDevice$1();
11724
11726
  if (device.cordova && window.StatusBar) {
11725
11727
  if (color === 'white') {
@@ -11741,7 +11743,7 @@
11741
11743
  }
11742
11744
  },
11743
11745
  setBackgroundColor(color) {
11744
- const window = getWindow();
11746
+ const window = getWindow$1();
11745
11747
  const device = getDevice$1();
11746
11748
  if (device.cordova && window.StatusBar) {
11747
11749
  window.StatusBar.backgroundColorByHexString(color);
@@ -11753,7 +11755,7 @@
11753
11755
  }
11754
11756
  },
11755
11757
  isVisible() {
11756
- const window = getWindow();
11758
+ const window = getWindow$1();
11757
11759
  const device = getDevice$1();
11758
11760
  return new Promise(resolve => {
11759
11761
  if (device.cordova && window.StatusBar) {
@@ -11771,7 +11773,7 @@
11771
11773
  if (overlays === void 0) {
11772
11774
  overlays = true;
11773
11775
  }
11774
- const window = getWindow();
11776
+ const window = getWindow$1();
11775
11777
  const device = getDevice$1();
11776
11778
  if (device.cordova && window.StatusBar) {
11777
11779
  window.StatusBar.overlaysWebView(overlays);
@@ -11784,7 +11786,7 @@
11784
11786
  },
11785
11787
  init() {
11786
11788
  const app = this;
11787
- const window = getWindow();
11789
+ const window = getWindow$1();
11788
11790
  const device = getDevice$1();
11789
11791
  const params = app.params.statusbar;
11790
11792
  if (!params.enabled) return;
@@ -11959,8 +11961,8 @@
11959
11961
  },
11960
11962
  create() {
11961
11963
  const app = this;
11962
- extend$2(app, {
11963
- views: extend$2([], {
11964
+ extend$3(app, {
11965
+ views: extend$3([], {
11964
11966
  create(el, params) {
11965
11967
  return new View$1(app, el, params);
11966
11968
  },
@@ -13068,7 +13070,7 @@
13068
13070
 
13069
13071
  // Extend defaults with modules params
13070
13072
  modal.useModulesParams(defaults);
13071
- modal.params = extend$2(defaults, params);
13073
+ modal.params = extend$3(defaults, params);
13072
13074
  modal.opened = false;
13073
13075
  let $containerEl = modal.params.containerEl ? $(modal.params.containerEl).eq(0) : app.$el;
13074
13076
  if (!$containerEl.length) $containerEl = app.$el;
@@ -13114,7 +13116,7 @@
13114
13116
  }
13115
13117
  open(animateModal, force) {
13116
13118
  const modal = this;
13117
- const document = getDocument();
13119
+ const document = getDocument$1();
13118
13120
  const app = modal.app;
13119
13121
  const $el = modal.$el;
13120
13122
  const $backdropEl = modal.$backdropEl;
@@ -13275,7 +13277,7 @@
13275
13277
 
13276
13278
  class CustomModal extends Modal$1 {
13277
13279
  constructor(app, params) {
13278
- const extendedParams = extend$2({
13280
+ const extendedParams = extend$3({
13279
13281
  backdrop: true,
13280
13282
  closeByBackdropClick: true,
13281
13283
  on: {}
@@ -13323,7 +13325,7 @@
13323
13325
  app.off('click', handleClick);
13324
13326
  }
13325
13327
  });
13326
- extend$2(customModal, {
13328
+ extend$3(customModal, {
13327
13329
  app,
13328
13330
  $el,
13329
13331
  el: $el[0],
@@ -13359,7 +13361,7 @@
13359
13361
 
13360
13362
  let Dialog$1 = class Dialog extends Modal$1 {
13361
13363
  constructor(app, params) {
13362
- const extendedParams = extend$2({
13364
+ const extendedParams = extend$3({
13363
13365
  title: app.params.dialog.title,
13364
13366
  text: undefined,
13365
13367
  content: '',
@@ -13381,7 +13383,7 @@
13381
13383
  super(app, extendedParams);
13382
13384
  const dialog = this;
13383
13385
  const device = getDevice$1();
13384
- const document = getDocument();
13386
+ const document = getDocument$1();
13385
13387
  const {
13386
13388
  title,
13387
13389
  text,
@@ -13479,7 +13481,7 @@
13479
13481
  addKeyboardHander = false;
13480
13482
  });
13481
13483
  }
13482
- extend$2(dialog, {
13484
+ extend$3(dialog, {
13483
13485
  app,
13484
13486
  $el,
13485
13487
  el: $el[0],
@@ -13583,7 +13585,7 @@
13583
13585
  }
13584
13586
  } : {};
13585
13587
  const isIosTheme = app.theme === 'ios';
13586
- app.dialog = extend$2(ModalMethods({
13588
+ app.dialog = extend$3(ModalMethods({
13587
13589
  app,
13588
13590
  constructor: Dialog$1,
13589
13591
  defaultSelector: '.dialog.modal-in'
@@ -13788,15 +13790,15 @@
13788
13790
 
13789
13791
  let Popup$1 = class Popup extends Modal$1 {
13790
13792
  constructor(app, params) {
13791
- const extendedParams = extend$2({
13793
+ const extendedParams = extend$3({
13792
13794
  on: {}
13793
13795
  }, app.params.popup, params);
13794
13796
 
13795
13797
  // Extends with open/close Modal methods;
13796
13798
  super(app, extendedParams);
13797
13799
  const popup = this;
13798
- const window = getWindow();
13799
- const document = getDocument();
13800
+ const window = getWindow$1();
13801
+ const document = getDocument$1();
13800
13802
  const support = getSupport$1();
13801
13803
  const device = getDevice$1();
13802
13804
  popup.params = extendedParams;
@@ -13829,7 +13831,7 @@
13829
13831
  popup.$containerEl.append($backdropEl);
13830
13832
  }
13831
13833
  }
13832
- extend$2(popup, {
13834
+ extend$3(popup, {
13833
13835
  app,
13834
13836
  push: $el.hasClass('popup-push') || popup.params.push,
13835
13837
  $el,
@@ -14155,7 +14157,7 @@
14155
14157
 
14156
14158
  let LoginScreen$1 = class LoginScreen extends Modal$1 {
14157
14159
  constructor(app, params) {
14158
- const extendedParams = extend$2({
14160
+ const extendedParams = extend$3({
14159
14161
  on: {}
14160
14162
  }, params);
14161
14163
 
@@ -14177,7 +14179,7 @@
14177
14179
  if ($el.length === 0) {
14178
14180
  return loginScreen.destroy();
14179
14181
  }
14180
- extend$2(loginScreen, {
14182
+ extend$3(loginScreen, {
14181
14183
  app,
14182
14184
  $el,
14183
14185
  el: $el[0],
@@ -14221,7 +14223,7 @@
14221
14223
 
14222
14224
  let Popover$1 = class Popover extends Modal$1 {
14223
14225
  constructor(app, params) {
14224
- const extendedParams = extend$2({
14226
+ const extendedParams = extend$3({
14225
14227
  on: {}
14226
14228
  }, app.params.popover, params);
14227
14229
 
@@ -14229,8 +14231,8 @@
14229
14231
  super(app, extendedParams);
14230
14232
  const popover = this;
14231
14233
  const device = getDevice$1();
14232
- const window = getWindow();
14233
- const document = getDocument();
14234
+ const window = getWindow$1();
14235
+ const document = getDocument$1();
14234
14236
  popover.params = extendedParams;
14235
14237
 
14236
14238
  // Find Element
@@ -14280,7 +14282,7 @@
14280
14282
 
14281
14283
  // Open
14282
14284
  const originalOpen = popover.open;
14283
- extend$2(popover, {
14285
+ extend$3(popover, {
14284
14286
  app,
14285
14287
  $el,
14286
14288
  el: $el[0],
@@ -14527,7 +14529,7 @@
14527
14529
  },
14528
14530
  create() {
14529
14531
  const app = this;
14530
- app.popover = extend$2(ModalMethods({
14532
+ app.popover = extend$3(ModalMethods({
14531
14533
  app,
14532
14534
  constructor: Popover$1,
14533
14535
  defaultSelector: '.popover.modal-in'
@@ -14582,7 +14584,7 @@
14582
14584
  /* eslint indent: ["off"] */
14583
14585
  let Actions$1 = class Actions extends Modal$1 {
14584
14586
  constructor(app, params) {
14585
- const extendedParams = extend$2({
14587
+ const extendedParams = extend$3({
14586
14588
  on: {}
14587
14589
  }, app.params.actions, params);
14588
14590
 
@@ -14590,8 +14592,8 @@
14590
14592
  super(app, extendedParams);
14591
14593
  const actions = this;
14592
14594
  const device = getDevice$1();
14593
- const window = getWindow();
14594
- const document = getDocument();
14595
+ const window = getWindow$1();
14596
+ const document = getDocument$1();
14595
14597
  actions.params = extendedParams;
14596
14598
 
14597
14599
  // Buttons
@@ -14755,7 +14757,7 @@
14755
14757
  }
14756
14758
  return actions;
14757
14759
  };
14758
- extend$2(actions, {
14760
+ extend$3(actions, {
14759
14761
  app,
14760
14762
  $el,
14761
14763
  el: $el ? $el[0] : undefined,
@@ -14945,15 +14947,15 @@
14945
14947
 
14946
14948
  let Sheet$1 = class Sheet extends Modal$1 {
14947
14949
  constructor(app, params) {
14948
- const extendedParams = extend$2({
14950
+ const extendedParams = extend$3({
14949
14951
  on: {}
14950
14952
  }, app.params.sheet, params);
14951
14953
 
14952
14954
  // Extends with open/close Modal methods;
14953
14955
  super(app, extendedParams);
14954
14956
  const sheet = this;
14955
- const window = getWindow();
14956
- const document = getDocument();
14957
+ const window = getWindow$1();
14958
+ const document = getDocument$1();
14957
14959
  const support = getSupport$1();
14958
14960
  const device = getDevice$1();
14959
14961
  sheet.params = extendedParams;
@@ -14989,7 +14991,7 @@
14989
14991
  sheet.$containerEl.append($backdropEl);
14990
14992
  }
14991
14993
  }
14992
- extend$2(sheet, {
14994
+ extend$3(sheet, {
14993
14995
  app,
14994
14996
  push: $el.hasClass('sheet-modal-push') || sheet.params.push,
14995
14997
  $el,
@@ -15434,7 +15436,7 @@
15434
15436
  },
15435
15437
  create() {
15436
15438
  const app = this;
15437
- app.sheet = extend$2({}, ModalMethods({
15439
+ app.sheet = extend$3({}, ModalMethods({
15438
15440
  app,
15439
15441
  constructor: Sheet$1,
15440
15442
  defaultSelector: '.sheet-modal.modal-in'
@@ -15479,14 +15481,14 @@
15479
15481
 
15480
15482
  let Toast$1 = class Toast extends Modal$1 {
15481
15483
  constructor(app, params) {
15482
- const extendedParams = extend$2({
15484
+ const extendedParams = extend$3({
15483
15485
  on: {}
15484
15486
  }, app.params.toast, params);
15485
15487
 
15486
15488
  // Extends with open/close Modal methods;
15487
15489
  super(app, extendedParams);
15488
15490
  const toast = this;
15489
- const window = getWindow();
15491
+ const window = getWindow$1();
15490
15492
  toast.app = app;
15491
15493
  toast.params = extendedParams;
15492
15494
  const {
@@ -15507,7 +15509,7 @@
15507
15509
  if ($el.length === 0) {
15508
15510
  return toast.destroy();
15509
15511
  }
15510
- extend$2(toast, {
15512
+ extend$3(toast, {
15511
15513
  $el,
15512
15514
  el: $el[0],
15513
15515
  type: 'toast'
@@ -15583,14 +15585,14 @@
15583
15585
  },
15584
15586
  create() {
15585
15587
  const app = this;
15586
- app.toast = extend$2({}, ModalMethods({
15588
+ app.toast = extend$3({}, ModalMethods({
15587
15589
  app,
15588
15590
  constructor: Toast$1,
15589
15591
  defaultSelector: '.toast.modal-in'
15590
15592
  }), {
15591
15593
  // Shortcuts
15592
15594
  show(params) {
15593
- extend$2(params, {
15595
+ extend$3(params, {
15594
15596
  destroyOnClose: true
15595
15597
  });
15596
15598
  return new Toast$1(app, params).open();
@@ -15871,7 +15873,7 @@
15871
15873
  const Sortable = {
15872
15874
  init() {
15873
15875
  const app = this;
15874
- const document = getDocument();
15876
+ const document = getDocument$1();
15875
15877
  let isTouched;
15876
15878
  let isMoved;
15877
15879
  let touchStartY;
@@ -16154,7 +16156,7 @@
16154
16156
  const Swipeout = {
16155
16157
  init() {
16156
16158
  const app = this;
16157
- const document = getDocument();
16159
+ const document = getDocument$1();
16158
16160
  const touchesStart = {};
16159
16161
  let isTouched;
16160
16162
  let isMoved;
@@ -16790,7 +16792,7 @@
16790
16792
  super(params, [app]);
16791
16793
  const vl = this;
16792
16794
  const device = getDevice$1();
16793
- const document = getDocument();
16795
+ const document = getDocument$1();
16794
16796
  let defaultHeight;
16795
16797
  if (app.theme === 'md') {
16796
16798
  defaultHeight = 48;
@@ -16826,7 +16828,7 @@
16826
16828
 
16827
16829
  // Extend defaults with modules params
16828
16830
  vl.useModulesParams(defaults);
16829
- vl.params = extend$2(defaults, params);
16831
+ vl.params = extend$3(defaults, params);
16830
16832
  if (vl.params.height === undefined || !vl.params.height) {
16831
16833
  vl.params.height = defaultHeight;
16832
16834
  }
@@ -16869,7 +16871,7 @@
16869
16871
  vl.ul = vl.$ul[0];
16870
16872
  let $itemsWrapEl;
16871
16873
  if (!vl.ul && !vl.params.createUl) $itemsWrapEl = vl.$el;else $itemsWrapEl = vl.$ul;
16872
- extend$2(vl, {
16874
+ extend$3(vl, {
16873
16875
  $itemsWrapEl,
16874
16876
  itemsWrapEl: $itemsWrapEl[0],
16875
16877
  // DOM cached items
@@ -17408,7 +17410,7 @@
17408
17410
 
17409
17411
  // Extend defaults with modules params
17410
17412
  index.useModulesParams(defaults);
17411
- index.params = extend$2(defaults, params);
17413
+ index.params = extend$3(defaults, params);
17412
17414
  let $el;
17413
17415
  let $listEl;
17414
17416
  let $pageContentEl;
@@ -17441,7 +17443,7 @@
17441
17443
  }
17442
17444
  }
17443
17445
  $el[0].f7ListIndex = index;
17444
- extend$2(index, {
17446
+ extend$3(index, {
17445
17447
  app,
17446
17448
  $el,
17447
17449
  el: $el && $el[0],
@@ -17723,7 +17725,7 @@
17723
17725
  tabMounted(tabEl) {
17724
17726
  const app = this;
17725
17727
  $(tabEl).find('.list-index-init').each(listIndexEl => {
17726
- const params = extend$2($(listIndexEl).dataset(), {
17728
+ const params = extend$3($(listIndexEl).dataset(), {
17727
17729
  el: listIndexEl
17728
17730
  });
17729
17731
  app.listIndex.create(params);
@@ -17737,7 +17739,7 @@
17737
17739
  pageInit(page) {
17738
17740
  const app = this;
17739
17741
  page.$el.find('.list-index-init').each(listIndexEl => {
17740
- const params = extend$2($(listIndexEl).dataset(), {
17742
+ const params = extend$3($(listIndexEl).dataset(), {
17741
17743
  el: listIndexEl
17742
17744
  });
17743
17745
  app.listIndex.create(params);
@@ -17754,7 +17756,7 @@
17754
17756
  insert(vnode) {
17755
17757
  const app = this;
17756
17758
  const listIndexEl = vnode.elm;
17757
- const params = extend$2($(listIndexEl).dataset(), {
17759
+ const params = extend$3($(listIndexEl).dataset(), {
17758
17760
  el: listIndexEl
17759
17761
  });
17760
17762
  app.listIndex.create(params);
@@ -17977,7 +17979,7 @@
17977
17979
  name: 'tabs',
17978
17980
  create() {
17979
17981
  const app = this;
17980
- extend$2(app, {
17982
+ extend$3(app, {
17981
17983
  tab: {
17982
17984
  show: Tab.show.bind(app)
17983
17985
  }
@@ -18018,7 +18020,7 @@
18018
18020
  if (panel.swipeInitialized) {
18019
18021
  return;
18020
18022
  }
18021
- extend$2(panel, {
18023
+ extend$3(panel, {
18022
18024
  swipeable: true,
18023
18025
  swipeInitialized: true
18024
18026
  });
@@ -18326,7 +18328,7 @@
18326
18328
  const app = panel.app;
18327
18329
  const support = getSupport$1();
18328
18330
  if (panel.resizableInitialized) return;
18329
- extend$2(panel, {
18331
+ extend$3(panel, {
18330
18332
  resizable: true,
18331
18333
  resizableWidth: null,
18332
18334
  resizableInitialized: true
@@ -18348,6 +18350,7 @@
18348
18350
  let panelMinWidth;
18349
18351
  let panelMaxWidth;
18350
18352
  let visibleByBreakpoint;
18353
+ const isPushingPanel = effect !== 'cover' && effect !== 'floating';
18351
18354
  function transformCSSWidth(v) {
18352
18355
  if (!v) return null;
18353
18356
  if (v.indexOf('%') >= 0 || v.indexOf('vw') >= 0) {
@@ -18378,13 +18381,13 @@
18378
18381
  $el.transition(0);
18379
18382
  $el.addClass('panel-resizing');
18380
18383
  $htmlEl.css('cursor', 'col-resize');
18381
- if (effect !== 'cover' || visibleByBreakpoint) {
18384
+ if (isPushingPanel || visibleByBreakpoint) {
18382
18385
  $viewEl = $(panel.getViewEl());
18383
18386
  if (panel.$containerEl && panel.$containerEl.hasClass('page')) {
18384
18387
  $viewEl.add(panel.$containerEl.children('.page-content, .tabs, .fab'));
18385
18388
  }
18386
18389
  }
18387
- if (effect !== 'cover' && !visibleByBreakpoint) {
18390
+ if (isPushingPanel && !visibleByBreakpoint) {
18388
18391
  $backdropEl.transition(0);
18389
18392
  $viewEl.transition(0);
18390
18393
  }
@@ -18402,7 +18405,7 @@
18402
18405
  newPanelWidth = Math.min(Math.max(newPanelWidth, 0), app.width);
18403
18406
  panel.resizableWidth = newPanelWidth;
18404
18407
  $el[0].style.width = `${newPanelWidth}px`;
18405
- if (effect !== 'cover' && !visibleByBreakpoint) {
18408
+ if (isPushingPanel && !visibleByBreakpoint) {
18406
18409
  if ($viewEl) {
18407
18410
  $viewEl.transform(`translate3d(${side === 'left' ? newPanelWidth : -newPanelWidth}px, 0, 0)`);
18408
18411
  }
@@ -18426,14 +18429,14 @@
18426
18429
  isMoved = false;
18427
18430
  $htmlEl[0].style.setProperty(`--f7-panel-${side}-width`, `${panel.resizableWidth}px`);
18428
18431
  $el[0].style.width = '';
18429
- if (effect !== 'cover' && !visibleByBreakpoint) {
18432
+ if (isPushingPanel && !visibleByBreakpoint) {
18430
18433
  $viewEl.transform('');
18431
18434
  $backdropEl.transform('');
18432
18435
  }
18433
18436
  $el.removeClass('panel-resizing');
18434
18437
  nextFrame$1(() => {
18435
18438
  $el.transition('');
18436
- if (effect !== 'cover') {
18439
+ if (isPushingPanel) {
18437
18440
  $backdropEl.transition('');
18438
18441
  if ($viewEl) $viewEl.transition('');
18439
18442
  }
@@ -18483,7 +18486,7 @@
18483
18486
  if (params === void 0) {
18484
18487
  params = {};
18485
18488
  }
18486
- const extendedParams = extend$2({
18489
+ const extendedParams = extend$3({
18487
18490
  on: {}
18488
18491
  }, app.params.panel, params);
18489
18492
  super(extendedParams, [app]);
@@ -18524,7 +18527,7 @@
18524
18527
  panel.$containerEl.prepend($backdropEl);
18525
18528
  }
18526
18529
  }
18527
- extend$2(panel, {
18530
+ extend$3(panel, {
18528
18531
  app,
18529
18532
  side,
18530
18533
  effect,
@@ -18810,7 +18813,7 @@
18810
18813
  }
18811
18814
  insertToRoot() {
18812
18815
  const panel = this;
18813
- const document = getDocument();
18816
+ const document = getDocument$1();
18814
18817
  const {
18815
18818
  $el,
18816
18819
  $backdropEl,
@@ -18916,6 +18919,8 @@
18916
18919
  $el.removeClass('panel-out').addClass('panel-in not-animated');
18917
18920
  panel.onOpen();
18918
18921
  panel.onOpened();
18922
+ // eslint-disable-next-line
18923
+ panel._openTransitionStarted = true;
18919
18924
  }
18920
18925
  return true;
18921
18926
  }
@@ -19058,7 +19063,7 @@
19058
19063
  },
19059
19064
  create() {
19060
19065
  const app = this;
19061
- extend$2(app, {
19066
+ extend$3(app, {
19062
19067
  panel: {
19063
19068
  allowOpen: true,
19064
19069
  create(params) {
@@ -19224,7 +19229,7 @@
19224
19229
  }
19225
19230
  const app = this;
19226
19231
  const device = getDevice$1();
19227
- const document = getDocument();
19232
+ const document = getDocument$1();
19228
19233
  const support = getSupport$1();
19229
19234
  const $cardEl = $(cardEl).eq(0);
19230
19235
  if (!$cardEl || !$cardEl.length) return;
@@ -19721,7 +19726,7 @@
19721
19726
  const FormData = {
19722
19727
  store(form, data) {
19723
19728
  const app = this;
19724
- const window = getWindow();
19729
+ const window = getWindow$1();
19725
19730
  let formId = form;
19726
19731
  const $formEl = $(form);
19727
19732
  if ($formEl.length && $formEl.is('form') && $formEl.attr('id')) {
@@ -19735,7 +19740,7 @@
19735
19740
  },
19736
19741
  get(form) {
19737
19742
  const app = this;
19738
- const window = getWindow();
19743
+ const window = getWindow$1();
19739
19744
  let formId = form;
19740
19745
  const $formEl = $(form);
19741
19746
  if ($formEl.length && $formEl.is('form') && $formEl.attr('id')) {
@@ -19751,7 +19756,7 @@
19751
19756
  },
19752
19757
  remove(form) {
19753
19758
  const app = this;
19754
- const window = getWindow();
19759
+ const window = getWindow$1();
19755
19760
  let formId = form;
19756
19761
  const $formEl = $(form);
19757
19762
  if ($formEl.length && $formEl.is('form') && $formEl.attr('id')) {
@@ -19912,8 +19917,8 @@
19912
19917
  }
19913
19918
  function initAjaxForm() {
19914
19919
  const app = this;
19915
- const window = getWindow();
19916
- const document = getDocument();
19920
+ const window = getWindow$1();
19921
+ const document = getDocument$1();
19917
19922
  function onSubmitChange(e, fromData) {
19918
19923
  const $formEl = $(this);
19919
19924
  if (e.type === 'change' && !$formEl.hasClass('form-ajax-submit-onchange')) return;
@@ -19978,7 +19983,7 @@
19978
19983
  name: 'form',
19979
19984
  create() {
19980
19985
  const app = this;
19981
- extend$2(app, {
19986
+ extend$3(app, {
19982
19987
  form: {
19983
19988
  data: {},
19984
19989
  storeFormData: FormData.store.bind(app),
@@ -20028,7 +20033,7 @@
20028
20033
  const Input = {
20029
20034
  ignoreTypes: ['checkbox', 'button', 'submit', 'range', 'radio', 'image'],
20030
20035
  createTextareaResizableShadow() {
20031
- const document = getDocument();
20036
+ const document = getDocument$1();
20032
20037
  const $shadowEl = $(document.createElement('textarea'));
20033
20038
  $shadowEl.addClass('textarea-resizable-shadow');
20034
20039
  $shadowEl.prop({
@@ -20040,7 +20045,7 @@
20040
20045
  textareaResizableShadow: undefined,
20041
20046
  resizeTextarea(textareaEl) {
20042
20047
  const app = this;
20043
- const window = getWindow();
20048
+ const window = getWindow$1();
20044
20049
  const $textareaEl = $(textareaEl);
20045
20050
  if (!Input.textareaResizableShadow) {
20046
20051
  Input.createTextareaResizableShadow();
@@ -20216,8 +20221,8 @@
20216
20221
  init() {
20217
20222
  const app = this;
20218
20223
  const device = getDevice$1();
20219
- const window = getWindow();
20220
- const document = getDocument();
20224
+ const window = getWindow$1();
20225
+ const document = getDocument$1();
20221
20226
  Input.createTextareaResizableShadow();
20222
20227
  function onFocus() {
20223
20228
  const inputEl = this;
@@ -20381,14 +20386,14 @@
20381
20386
 
20382
20387
  // Extend defaults with modules params
20383
20388
  toggle.useModulesParams(defaults);
20384
- toggle.params = extend$2(defaults, params);
20389
+ toggle.params = extend$3(defaults, params);
20385
20390
  const el = toggle.params.el;
20386
20391
  if (!el) return toggle;
20387
20392
  const $el = $(el);
20388
20393
  if ($el.length === 0) return toggle;
20389
20394
  if ($el[0].f7Toggle) return $el[0].f7Toggle;
20390
20395
  const $inputEl = $el.children('input[type="checkbox"]');
20391
- extend$2(toggle, {
20396
+ extend$3(toggle, {
20392
20397
  app,
20393
20398
  $el,
20394
20399
  el: $el[0],
@@ -20612,7 +20617,7 @@
20612
20617
 
20613
20618
  // Extend defaults with modules params
20614
20619
  range.useModulesParams(defaults);
20615
- range.params = extend$2(defaults, params);
20620
+ range.params = extend$3(defaults, params);
20616
20621
  const el = range.params.el;
20617
20622
  if (!el) return range;
20618
20623
  const $el = $(el);
@@ -20657,7 +20662,7 @@
20657
20662
  scaleSubSteps,
20658
20663
  limitKnobPosition
20659
20664
  } = range.params;
20660
- extend$2(range, {
20665
+ extend$3(range, {
20661
20666
  app,
20662
20667
  $el,
20663
20668
  el: $el[0],
@@ -20749,7 +20754,7 @@
20749
20754
  `);
20750
20755
  $el.append($scaleEl);
20751
20756
  }
20752
- extend$2(range, {
20757
+ extend$3(range, {
20753
20758
  knobs,
20754
20759
  labels,
20755
20760
  $barEl,
@@ -21162,7 +21167,7 @@
21162
21167
  name: 'range',
21163
21168
  create() {
21164
21169
  const app = this;
21165
- app.range = extend$2(ConstructorMethods({
21170
+ app.range = extend$3(ConstructorMethods({
21166
21171
  defaultSelector: '.range-slider',
21167
21172
  constructor: Range$1,
21168
21173
  app,
@@ -21254,7 +21259,7 @@
21254
21259
 
21255
21260
  // Extend defaults with modules params
21256
21261
  stepper.useModulesParams(defaults);
21257
- stepper.params = extend$2(defaults, params);
21262
+ stepper.params = extend$3(defaults, params);
21258
21263
  if (stepper.params.value < stepper.params.min) {
21259
21264
  stepper.params.value = stepper.params.min;
21260
21265
  }
@@ -21304,7 +21309,7 @@
21304
21309
  value,
21305
21310
  decimalPoint
21306
21311
  } = stepper.params;
21307
- extend$2(stepper, {
21312
+ extend$3(stepper, {
21308
21313
  app,
21309
21314
  $el,
21310
21315
  el: $el[0],
@@ -21634,7 +21639,7 @@
21634
21639
  name: 'stepper',
21635
21640
  create() {
21636
21641
  const app = this;
21637
- app.stepper = extend$2(ConstructorMethods({
21642
+ app.stepper = extend$3(ConstructorMethods({
21638
21643
  defaultSelector: '.stepper',
21639
21644
  constructor: Stepper$1,
21640
21645
  app,
@@ -21666,7 +21671,7 @@
21666
21671
  const app = this;
21667
21672
  $(tabEl).find('.stepper-init').each(stepperEl => {
21668
21673
  const dataset = $(stepperEl).dataset();
21669
- app.stepper.create(extend$2({
21674
+ app.stepper.create(extend$3({
21670
21675
  el: stepperEl
21671
21676
  }, dataset || {}));
21672
21677
  });
@@ -21680,7 +21685,7 @@
21680
21685
  const app = this;
21681
21686
  page.$el.find('.stepper-init').each(stepperEl => {
21682
21687
  const dataset = $(stepperEl).dataset();
21683
- app.stepper.create(extend$2({
21688
+ app.stepper.create(extend$3({
21684
21689
  el: stepperEl
21685
21690
  }, dataset || {}));
21686
21691
  });
@@ -21697,7 +21702,7 @@
21697
21702
  const app = this;
21698
21703
  const stepperEl = vnode.elm;
21699
21704
  const dataset = $(stepperEl).dataset();
21700
- app.stepper.create(extend$2({
21705
+ app.stepper.create(extend$3({
21701
21706
  el: stepperEl
21702
21707
  }, dataset || {}));
21703
21708
  },
@@ -21987,13 +21992,13 @@
21987
21992
  }
21988
21993
  super(params, [app]);
21989
21994
  const ss = this;
21990
- const defaults = extend$2({
21995
+ const defaults = extend$3({
21991
21996
  on: {}
21992
21997
  }, app.params.smartSelect);
21993
21998
 
21994
21999
  // Extend defaults with modules params
21995
22000
  ss.useModulesParams(defaults);
21996
- ss.params = extend$2({}, defaults, params);
22001
+ ss.params = extend$3({}, defaults, params);
21997
22002
  ss.app = app;
21998
22003
  const $el = $(ss.params.el).eq(0);
21999
22004
  if ($el.length === 0) return ss;
@@ -22021,7 +22026,7 @@
22021
22026
  const multiple = $selectEl[0].multiple;
22022
22027
  const inputType = multiple ? 'checkbox' : 'radio';
22023
22028
  const selectId = id$1();
22024
- extend$2(ss, {
22029
+ extend$3(ss, {
22025
22030
  $el,
22026
22031
  el: $el[0],
22027
22032
  $selectEl,
@@ -22587,7 +22592,7 @@
22587
22592
  $containerEl.find('.page-content').append($notFoundEl[0]);
22588
22593
  }
22589
22594
  }
22590
- const searchbarParams = extend$2({
22595
+ const searchbarParams = extend$3({
22591
22596
  el: $searchbarEl,
22592
22597
  backdropEl: $containerEl.find('.searchbar-backdrop'),
22593
22598
  searchContainer: `.smart-select-list-${ss.id}`,
@@ -22902,7 +22907,7 @@
22902
22907
  },
22903
22908
  create() {
22904
22909
  const app = this;
22905
- app.smartSelect = extend$2(ConstructorMethods({
22910
+ app.smartSelect = extend$3(ConstructorMethods({
22906
22911
  defaultSelector: '.smart-select',
22907
22912
  constructor: SmartSelect$1,
22908
22913
  app,
@@ -22924,7 +22929,7 @@
22924
22929
  tabMounted(tabEl) {
22925
22930
  const app = this;
22926
22931
  $(tabEl).find('.smart-select-init').each(smartSelectEl => {
22927
- app.smartSelect.create(extend$2({
22932
+ app.smartSelect.create(extend$3({
22928
22933
  el: smartSelectEl
22929
22934
  }, $(smartSelectEl).dataset()));
22930
22935
  });
@@ -22939,7 +22944,7 @@
22939
22944
  pageInit(page) {
22940
22945
  const app = this;
22941
22946
  page.$el.find('.smart-select-init').each(smartSelectEl => {
22942
- app.smartSelect.create(extend$2({
22947
+ app.smartSelect.create(extend$3({
22943
22948
  el: smartSelectEl
22944
22949
  }, $(smartSelectEl).dataset()));
22945
22950
  });
@@ -22956,7 +22961,7 @@
22956
22961
  '.smart-select': function open($clickedEl, data) {
22957
22962
  const app = this;
22958
22963
  if (!$clickedEl[0].f7SmartSelect) {
22959
- const ss = app.smartSelect.create(extend$2({
22964
+ const ss = app.smartSelect.create(extend$3({
22960
22965
  el: $clickedEl
22961
22966
  }, data));
22962
22967
  ss.open();
@@ -22968,7 +22973,7 @@
22968
22973
  insert(vnode) {
22969
22974
  const app = this;
22970
22975
  const smartSelectEl = vnode.elm;
22971
- app.smartSelect.create(extend$2({
22976
+ app.smartSelect.create(extend$3({
22972
22977
  el: smartSelectEl
22973
22978
  }, $(smartSelectEl).dataset()));
22974
22979
  },
@@ -22993,7 +22998,7 @@
22993
22998
  }
22994
22999
  super(params, [app]);
22995
23000
  const calendar = this;
22996
- calendar.params = extend$2({}, app.params.calendar, params);
23001
+ calendar.params = extend$3({}, app.params.calendar, params);
22997
23002
  let $containerEl;
22998
23003
  if (calendar.params.containerEl) {
22999
23004
  $containerEl = $(calendar.params.containerEl);
@@ -23008,7 +23013,7 @@
23008
23013
  if (isHorizontal) {
23009
23014
  inverter = app.rtl ? -1 : 1;
23010
23015
  }
23011
- extend$2(calendar, {
23016
+ extend$3(calendar, {
23012
23017
  app,
23013
23018
  $containerEl,
23014
23019
  containerEl: $containerEl && $containerEl[0],
@@ -23066,7 +23071,7 @@
23066
23071
  if (monthNamesShort === 'auto') monthNamesShort = monthNamesShortIntl;
23067
23072
  if (dayNames === 'auto') dayNames = dayNamesIntl;
23068
23073
  if (dayNamesShort === 'auto') dayNamesShort = dayNamesShortIntl;
23069
- extend$2(calendar, {
23074
+ extend$3(calendar, {
23070
23075
  monthNames,
23071
23076
  monthNamesShort,
23072
23077
  dayNames,
@@ -23101,7 +23106,7 @@
23101
23106
  }
23102
23107
 
23103
23108
  // Events
23104
- extend$2(calendar, {
23109
+ extend$3(calendar, {
23105
23110
  attachInputEvents() {
23106
23111
  calendar.$inputEl.on('click', onInputClick);
23107
23112
  calendar.$inputEl.on('input:clear', onInputClear);
@@ -25096,8 +25101,8 @@
25096
25101
  super(params, [app]);
25097
25102
  const picker = this;
25098
25103
  const device = getDevice$1();
25099
- const window = getWindow();
25100
- picker.params = extend$2({}, app.params.picker, params);
25104
+ const window = getWindow$1();
25105
+ picker.params = extend$3({}, app.params.picker, params);
25101
25106
  let $containerEl;
25102
25107
  if (picker.params.containerEl) {
25103
25108
  $containerEl = $(picker.params.containerEl);
@@ -25114,7 +25119,7 @@
25114
25119
  $scrollToEl = scrollToEl;
25115
25120
  }
25116
25121
  }
25117
- extend$2(picker, {
25122
+ extend$3(picker, {
25118
25123
  app,
25119
25124
  $containerEl,
25120
25125
  containerEl: $containerEl && $containerEl[0],
@@ -25157,7 +25162,7 @@
25157
25162
  }
25158
25163
 
25159
25164
  // Events
25160
- extend$2(picker, {
25165
+ extend$3(picker, {
25161
25166
  attachResizeEvent() {
25162
25167
  app.on('resize', onResize);
25163
25168
  },
@@ -26328,7 +26333,7 @@
26328
26333
  name: 'pullToRefresh',
26329
26334
  create() {
26330
26335
  const app = this;
26331
- app.ptr = extend$2(ConstructorMethods({
26336
+ app.ptr = extend$3(ConstructorMethods({
26332
26337
  defaultSelector: '.ptr-content',
26333
26338
  constructor: PullToRefresh$1,
26334
26339
  app,
@@ -26394,7 +26399,7 @@
26394
26399
 
26395
26400
  // Extend defaults with modules params
26396
26401
  table.useModulesParams(defaults);
26397
- table.params = extend$2(defaults, params);
26402
+ table.params = extend$3(defaults, params);
26398
26403
 
26399
26404
  // El
26400
26405
  const $el = $(table.params.el);
@@ -26407,7 +26412,7 @@
26407
26412
  return instance;
26408
26413
  }
26409
26414
  table.$el[0].f7DataTable = table;
26410
- extend$2(table, {
26415
+ extend$3(table, {
26411
26416
  collapsible: $el.hasClass('data-table-collapsible'),
26412
26417
  // Headers
26413
26418
  $headerEl: $el.find('.data-table-header'),
@@ -26793,7 +26798,7 @@
26793
26798
 
26794
26799
  // Extend defaults with modules params
26795
26800
  sb.useModulesParams(defaults);
26796
- sb.params = extend$2(defaults, params);
26801
+ sb.params = extend$3(defaults, params);
26797
26802
  const $el = $(sb.params.el);
26798
26803
  if ($el.length === 0) return sb;
26799
26804
  if ($el[0].f7Searchbar) return $el[0].f7Searchbar;
@@ -26880,7 +26885,7 @@
26880
26885
  $disableButtonEl = $el.find('.searchbar-disable-button');
26881
26886
  }
26882
26887
  }
26883
- extend$2(sb, {
26888
+ extend$3(sb, {
26884
26889
  app,
26885
26890
  view: app.views.get($el.parents('.view')),
26886
26891
  $el,
@@ -27026,7 +27031,7 @@
27026
27031
  const sb = this;
27027
27032
  if (sb.enabled) return sb;
27028
27033
  const app = sb.app;
27029
- const document = getDocument();
27034
+ const document = getDocument$1();
27030
27035
  const device = getDevice$1();
27031
27036
  sb.enabled = true;
27032
27037
  function enable() {
@@ -27360,7 +27365,7 @@
27360
27365
  const app = this;
27361
27366
  $(tabEl).find('.searchbar-init').each(searchbarEl => {
27362
27367
  const $searchbarEl = $(searchbarEl);
27363
- app.searchbar.create(extend$2($searchbarEl.dataset(), {
27368
+ app.searchbar.create(extend$3($searchbarEl.dataset(), {
27364
27369
  el: searchbarEl
27365
27370
  }));
27366
27371
  });
@@ -27376,14 +27381,14 @@
27376
27381
  const app = this;
27377
27382
  page.$el.find('.searchbar-init').each(searchbarEl => {
27378
27383
  const $searchbarEl = $(searchbarEl);
27379
- app.searchbar.create(extend$2($searchbarEl.dataset(), {
27384
+ app.searchbar.create(extend$3($searchbarEl.dataset(), {
27380
27385
  el: searchbarEl
27381
27386
  }));
27382
27387
  });
27383
27388
  if (app.theme === 'ios' && page.view && page.view.router.dynamicNavbar && page.$navbarEl && page.$navbarEl.length > 0) {
27384
27389
  page.$navbarEl.find('.searchbar-init').each(searchbarEl => {
27385
27390
  const $searchbarEl = $(searchbarEl);
27386
- app.searchbar.create(extend$2($searchbarEl.dataset(), {
27391
+ app.searchbar.create(extend$3($searchbarEl.dataset(), {
27387
27392
  el: searchbarEl
27388
27393
  }));
27389
27394
  });
@@ -27445,7 +27450,7 @@
27445
27450
  const app = this;
27446
27451
  const searchbarEl = vnode.elm;
27447
27452
  const $searchbarEl = $(searchbarEl);
27448
- app.searchbar.create(extend$2($searchbarEl.dataset(), {
27453
+ app.searchbar.create(extend$3($searchbarEl.dataset(), {
27449
27454
  el: searchbarEl
27450
27455
  }));
27451
27456
  },
@@ -29515,13 +29520,13 @@
29515
29520
 
29516
29521
  // Extend defaults with modules params
29517
29522
  m.useModulesParams(defaults);
29518
- m.params = extend$2(defaults, params);
29523
+ m.params = extend$3(defaults, params);
29519
29524
  const $el = $(params.el).eq(0);
29520
29525
  if ($el.length === 0) return m;
29521
29526
  if ($el[0].f7Messages) return $el[0].f7Messages;
29522
29527
  $el[0].f7Messages = m;
29523
29528
  const $pageContentEl = $el.closest('.page-content').eq(0);
29524
- extend$2(m, {
29529
+ extend$3(m, {
29525
29530
  messages: m.params.messages,
29526
29531
  $el,
29527
29532
  el: $el[0],
@@ -29580,7 +29585,7 @@
29580
29585
  }
29581
29586
  renderMessage(messageToRender) {
29582
29587
  const m = this;
29583
- const message = extend$2({
29588
+ const message = extend$3({
29584
29589
  type: 'sent',
29585
29590
  attrs: {}
29586
29591
  }, messageToRender);
@@ -29886,7 +29891,7 @@
29886
29891
  if (typingMessage) {
29887
29892
  m.removeMessage(m.messages.indexOf(typingMessage));
29888
29893
  }
29889
- m.addMessage(extend$2({
29894
+ m.addMessage(extend$3({
29890
29895
  type: 'received',
29891
29896
  isTyping: true
29892
29897
  }, message));
@@ -30053,7 +30058,7 @@
30053
30058
 
30054
30059
  // Extend defaults with modules params
30055
30060
  messagebar.useModulesParams(defaults);
30056
- messagebar.params = extend$2(defaults, params);
30061
+ messagebar.params = extend$3(defaults, params);
30057
30062
 
30058
30063
  // El
30059
30064
  const $el = $(messagebar.params.el);
@@ -30082,7 +30087,7 @@
30082
30087
  if (messagebar.params.top) {
30083
30088
  $el.addClass('messagebar-top');
30084
30089
  }
30085
- extend$2(messagebar, {
30090
+ extend$3(messagebar, {
30086
30091
  $el,
30087
30092
  el: $el[0],
30088
30093
  $areaEl,
@@ -30265,7 +30270,7 @@
30265
30270
  const messagebar = this;
30266
30271
  const $attachmentsEl = $(`<div class="messagebar-attachments">${innerHTML}</div>`);
30267
30272
  $attachmentsEl.insertBefore(messagebar.$textareaEl);
30268
- extend$2(messagebar, {
30273
+ extend$3(messagebar, {
30269
30274
  $attachmentsEl,
30270
30275
  attachmentsEl: $attachmentsEl[0]
30271
30276
  });
@@ -30338,7 +30343,7 @@
30338
30343
  const messagebar = this;
30339
30344
  const $sheetEl = $(`<div class="messagebar-sheet">${innerHTML}</div>`);
30340
30345
  messagebar.$el.append($sheetEl);
30341
- extend$2(messagebar, {
30346
+ extend$3(messagebar, {
30342
30347
  $sheetEl,
30343
30348
  sheetEl: $sheetEl[0]
30344
30349
  });
@@ -30422,7 +30427,7 @@
30422
30427
  tabMounted(tabEl) {
30423
30428
  const app = this;
30424
30429
  $(tabEl).find('.messagebar-init').each(messagebarEl => {
30425
- app.messagebar.create(extend$2({
30430
+ app.messagebar.create(extend$3({
30426
30431
  el: messagebarEl
30427
30432
  }, $(messagebarEl).dataset()));
30428
30433
  });
@@ -30436,7 +30441,7 @@
30436
30441
  pageInit(page) {
30437
30442
  const app = this;
30438
30443
  page.$el.find('.messagebar-init').each(messagebarEl => {
30439
- app.messagebar.create(extend$2({
30444
+ app.messagebar.create(extend$3({
30440
30445
  el: messagebarEl
30441
30446
  }, $(messagebarEl).dataset()));
30442
30447
  });
@@ -30447,7 +30452,7 @@
30447
30452
  insert(vnode) {
30448
30453
  const app = this;
30449
30454
  const messagebarEl = vnode.elm;
30450
- app.messagebar.create(extend$2({
30455
+ app.messagebar.create(extend$3({
30451
30456
  el: messagebarEl
30452
30457
  }, $(messagebarEl).dataset()));
30453
30458
  },
@@ -30460,6 +30465,150 @@
30460
30465
  }
30461
30466
  };
30462
30467
 
30468
+ /**
30469
+ * SSR Window 4.0.2
30470
+ * Better handling for window object in SSR environment
30471
+ * https://github.com/nolimits4web/ssr-window
30472
+ *
30473
+ * Copyright 2021, Vladimir Kharlampidi
30474
+ *
30475
+ * Licensed under MIT
30476
+ *
30477
+ * Released on: December 13, 2021
30478
+ */
30479
+ /* eslint-disable no-param-reassign */
30480
+ function isObject$2(obj) {
30481
+ return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;
30482
+ }
30483
+ function extend$2(target, src) {
30484
+ if (target === void 0) {
30485
+ target = {};
30486
+ }
30487
+ if (src === void 0) {
30488
+ src = {};
30489
+ }
30490
+ Object.keys(src).forEach(key => {
30491
+ if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject$2(src[key]) && isObject$2(target[key]) && Object.keys(src[key]).length > 0) {
30492
+ extend$2(target[key], src[key]);
30493
+ }
30494
+ });
30495
+ }
30496
+ const ssrDocument = {
30497
+ body: {},
30498
+ addEventListener() {},
30499
+ removeEventListener() {},
30500
+ activeElement: {
30501
+ blur() {},
30502
+ nodeName: ''
30503
+ },
30504
+ querySelector() {
30505
+ return null;
30506
+ },
30507
+ querySelectorAll() {
30508
+ return [];
30509
+ },
30510
+ getElementById() {
30511
+ return null;
30512
+ },
30513
+ createEvent() {
30514
+ return {
30515
+ initEvent() {}
30516
+ };
30517
+ },
30518
+ createElement() {
30519
+ return {
30520
+ children: [],
30521
+ childNodes: [],
30522
+ style: {},
30523
+ setAttribute() {},
30524
+ getElementsByTagName() {
30525
+ return [];
30526
+ }
30527
+ };
30528
+ },
30529
+ createElementNS() {
30530
+ return {};
30531
+ },
30532
+ importNode() {
30533
+ return null;
30534
+ },
30535
+ location: {
30536
+ hash: '',
30537
+ host: '',
30538
+ hostname: '',
30539
+ href: '',
30540
+ origin: '',
30541
+ pathname: '',
30542
+ protocol: '',
30543
+ search: ''
30544
+ }
30545
+ };
30546
+ function getDocument() {
30547
+ const doc = typeof document !== 'undefined' ? document : {};
30548
+ extend$2(doc, ssrDocument);
30549
+ return doc;
30550
+ }
30551
+ const ssrWindow = {
30552
+ document: ssrDocument,
30553
+ navigator: {
30554
+ userAgent: ''
30555
+ },
30556
+ location: {
30557
+ hash: '',
30558
+ host: '',
30559
+ hostname: '',
30560
+ href: '',
30561
+ origin: '',
30562
+ pathname: '',
30563
+ protocol: '',
30564
+ search: ''
30565
+ },
30566
+ history: {
30567
+ replaceState() {},
30568
+ pushState() {},
30569
+ go() {},
30570
+ back() {}
30571
+ },
30572
+ CustomEvent: function CustomEvent() {
30573
+ return this;
30574
+ },
30575
+ addEventListener() {},
30576
+ removeEventListener() {},
30577
+ getComputedStyle() {
30578
+ return {
30579
+ getPropertyValue() {
30580
+ return '';
30581
+ }
30582
+ };
30583
+ },
30584
+ Image() {},
30585
+ Date() {},
30586
+ screen: {},
30587
+ setTimeout() {},
30588
+ clearTimeout() {},
30589
+ matchMedia() {
30590
+ return {};
30591
+ },
30592
+ requestAnimationFrame(callback) {
30593
+ if (typeof setTimeout === 'undefined') {
30594
+ callback();
30595
+ return null;
30596
+ }
30597
+ return setTimeout(callback, 0);
30598
+ },
30599
+ cancelAnimationFrame(id) {
30600
+ if (typeof setTimeout === 'undefined') {
30601
+ return;
30602
+ }
30603
+ clearTimeout(id);
30604
+ }
30605
+ };
30606
+ function getWindow() {
30607
+ const win = typeof window !== 'undefined' ? window : {};
30608
+ extend$2(win, ssrWindow);
30609
+ return win;
30610
+ }
30611
+
30463
30612
  function deleteProps(obj) {
30464
30613
  const object = obj;
30465
30614
  Object.keys(object).forEach(key => {
@@ -30506,7 +30655,7 @@
30506
30655
  let matrix;
30507
30656
  let curTransform;
30508
30657
  let transformMatrix;
30509
- const curStyle = getComputedStyle$1(el, null);
30658
+ const curStyle = getComputedStyle$1(el);
30510
30659
  if (window.WebKitCSSMatrix) {
30511
30660
  curTransform = curStyle.transform || curStyle.webkitTransform;
30512
30661
  if (curTransform.split(',').length > 6) {
@@ -30631,20 +30780,7 @@
30631
30780
  animate();
30632
30781
  }
30633
30782
  function getSlideTransformEl(slideEl) {
30634
- return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowEl && slideEl.shadowEl.querySelector('.swiper-slide-transform') || slideEl;
30635
- }
30636
- function findElementsInElements(elements, selector) {
30637
- if (elements === void 0) {
30638
- elements = [];
30639
- }
30640
- if (selector === void 0) {
30641
- selector = '';
30642
- }
30643
- const found = [];
30644
- elements.forEach(el => {
30645
- found.push(...el.querySelectorAll(selector));
30646
- });
30647
- return found;
30783
+ return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;
30648
30784
  }
30649
30785
  function elementChildren(element, selector) {
30650
30786
  if (selector === void 0) {
@@ -30749,7 +30885,7 @@
30749
30885
  const window = getWindow();
30750
30886
  const document = getDocument();
30751
30887
  return {
30752
- smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,
30888
+ smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,
30753
30889
  touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)
30754
30890
  };
30755
30891
  }
@@ -30759,7 +30895,6 @@
30759
30895
  }
30760
30896
  return support;
30761
30897
  }
30762
-
30763
30898
  let deviceCached;
30764
30899
  function calcDevice(_temp) {
30765
30900
  let {
@@ -30812,7 +30947,6 @@
30812
30947
  }
30813
30948
  return deviceCached;
30814
30949
  }
30815
-
30816
30950
  let browser;
30817
30951
  function calcBrowser() {
30818
30952
  const window = getWindow();
@@ -30840,7 +30974,6 @@
30840
30974
  }
30841
30975
  return browser;
30842
30976
  }
30843
-
30844
30977
  function Resize(_ref) {
30845
30978
  let {
30846
30979
  swiper,
@@ -30909,7 +31042,6 @@
30909
31042
  window.removeEventListener('orientationchange', orientationChangeHandler);
30910
31043
  });
30911
31044
  }
30912
-
30913
31045
  function Observer(_ref) {
30914
31046
  let {
30915
31047
  swiper,
@@ -31086,7 +31218,6 @@
31086
31218
  return self;
31087
31219
  }
31088
31220
  };
31089
-
31090
31221
  function updateSize() {
31091
31222
  const swiper = this;
31092
31223
  let width;
@@ -31117,7 +31248,6 @@
31117
31248
  size: swiper.isHorizontal() ? width : height
31118
31249
  });
31119
31250
  }
31120
-
31121
31251
  function updateSlides() {
31122
31252
  const swiper = this;
31123
31253
  function getDirectionLabel(property) {
@@ -31173,6 +31303,8 @@
31173
31303
  }
31174
31304
  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
31175
31305
  spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;
31306
+ } else if (typeof spaceBetween === 'string') {
31307
+ spaceBetween = parseFloat(spaceBetween);
31176
31308
  }
31177
31309
  swiper.virtualSize = -spaceBetween;
31178
31310
 
@@ -31282,10 +31414,10 @@
31282
31414
  }
31283
31415
  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;
31284
31416
  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {
31285
- wrapperEl.style.width = `${swiper.virtualSize + params.spaceBetween}px`;
31417
+ wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;
31286
31418
  }
31287
31419
  if (params.setWrapperSize) {
31288
- wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + params.spaceBetween}px`;
31420
+ wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
31289
31421
  }
31290
31422
  if (gridEnabled) {
31291
31423
  swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);
@@ -31324,7 +31456,7 @@
31324
31456
  }
31325
31457
  }
31326
31458
  if (snapGrid.length === 0) snapGrid = [0];
31327
- if (params.spaceBetween !== 0) {
31459
+ if (spaceBetween !== 0) {
31328
31460
  const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');
31329
31461
  slides.filter((_, slideIndex) => {
31330
31462
  if (!params.cssMode || params.loop) return true;
@@ -31339,12 +31471,12 @@
31339
31471
  if (params.centeredSlides && params.centeredSlidesBounds) {
31340
31472
  let allSlidesSize = 0;
31341
31473
  slidesSizesGrid.forEach(slideSizeValue => {
31342
- allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);
31474
+ allSlidesSize += slideSizeValue + (spaceBetween || 0);
31343
31475
  });
31344
- allSlidesSize -= params.spaceBetween;
31476
+ allSlidesSize -= spaceBetween;
31345
31477
  const maxSnap = allSlidesSize - swiperSize;
31346
31478
  snapGrid = snapGrid.map(snap => {
31347
- if (snap < 0) return -offsetBefore;
31479
+ if (snap <= 0) return -offsetBefore;
31348
31480
  if (snap > maxSnap) return maxSnap + offsetAfter;
31349
31481
  return snap;
31350
31482
  });
@@ -31352,9 +31484,9 @@
31352
31484
  if (params.centerInsufficientSlides) {
31353
31485
  let allSlidesSize = 0;
31354
31486
  slidesSizesGrid.forEach(slideSizeValue => {
31355
- allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);
31487
+ allSlidesSize += slideSizeValue + (spaceBetween || 0);
31356
31488
  });
31357
- allSlidesSize -= params.spaceBetween;
31489
+ allSlidesSize -= spaceBetween;
31358
31490
  if (allSlidesSize < swiperSize) {
31359
31491
  const allSlidesOffset = (swiperSize - allSlidesSize) / 2;
31360
31492
  snapGrid.forEach((snap, snapIndex) => {
@@ -31402,7 +31534,6 @@
31402
31534
  }
31403
31535
  }
31404
31536
  }
31405
-
31406
31537
  function updateAutoHeight(speed) {
31407
31538
  const swiper = this;
31408
31539
  const activeSlides = [];
@@ -31416,7 +31547,7 @@
31416
31547
  }
31417
31548
  const getSlideByIndex = index => {
31418
31549
  if (isVirtual) {
31419
- return swiper.getSlideIndexByData(index);
31550
+ return swiper.slides[swiper.getSlideIndexByData(index)];
31420
31551
  }
31421
31552
  return swiper.slides[index];
31422
31553
  };
@@ -31448,17 +31579,15 @@
31448
31579
  // Update Height
31449
31580
  if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;
31450
31581
  }
31451
-
31452
31582
  function updateSlidesOffset() {
31453
31583
  const swiper = this;
31454
31584
  const slides = swiper.slides;
31455
31585
  // eslint-disable-next-line
31456
31586
  const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;
31457
31587
  for (let i = 0; i < slides.length; i += 1) {
31458
- slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset;
31588
+ slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();
31459
31589
  }
31460
31590
  }
31461
-
31462
31591
  function updateSlidesProgress(translate) {
31463
31592
  if (translate === void 0) {
31464
31593
  translate = this && this.translate || 0;
@@ -31481,14 +31610,20 @@
31481
31610
  });
31482
31611
  swiper.visibleSlidesIndexes = [];
31483
31612
  swiper.visibleSlides = [];
31613
+ let spaceBetween = params.spaceBetween;
31614
+ if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
31615
+ spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
31616
+ } else if (typeof spaceBetween === 'string') {
31617
+ spaceBetween = parseFloat(spaceBetween);
31618
+ }
31484
31619
  for (let i = 0; i < slides.length; i += 1) {
31485
31620
  const slide = slides[i];
31486
31621
  let slideOffset = slide.swiperSlideOffset;
31487
31622
  if (params.cssMode && params.centeredSlides) {
31488
31623
  slideOffset -= slides[0].swiperSlideOffset;
31489
31624
  }
31490
- const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);
31491
- const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);
31625
+ const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
31626
+ const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
31492
31627
  const slideBefore = -(offsetCenter - slideOffset);
31493
31628
  const slideAfter = slideBefore + swiper.slidesSizesGrid[i];
31494
31629
  const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;
@@ -31501,7 +31636,6 @@
31501
31636
  slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;
31502
31637
  }
31503
31638
  }
31504
-
31505
31639
  function updateProgress(translate) {
31506
31640
  const swiper = this;
31507
31641
  if (typeof translate === 'undefined') {
@@ -31564,7 +31698,6 @@
31564
31698
  }
31565
31699
  swiper.emit('progress', progress);
31566
31700
  }
31567
-
31568
31701
  function updateSlidesClasses() {
31569
31702
  const swiper = this;
31570
31703
  const {
@@ -31616,7 +31749,6 @@
31616
31749
  }
31617
31750
  swiper.emitSlidesClasses();
31618
31751
  }
31619
-
31620
31752
  const processLazyPreloader = (swiper, imageEl) => {
31621
31753
  if (!swiper || swiper.destroyed || !swiper.params) return;
31622
31754
  const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
@@ -31639,19 +31771,33 @@
31639
31771
  amount = Math.min(amount, len);
31640
31772
  const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);
31641
31773
  const activeIndex = swiper.activeIndex;
31774
+ if (swiper.params.grid && swiper.params.grid.rows > 1) {
31775
+ const activeColumn = activeIndex;
31776
+ const preloadColumns = [activeColumn - amount];
31777
+ preloadColumns.push(...Array.from({
31778
+ length: amount
31779
+ }).map((_, i) => {
31780
+ return activeColumn + slidesPerView + i;
31781
+ }));
31782
+ swiper.slides.forEach((slideEl, i) => {
31783
+ if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);
31784
+ });
31785
+ return;
31786
+ }
31642
31787
  const slideIndexLastInView = activeIndex + slidesPerView - 1;
31643
- if (swiper.params.rewind) {
31788
+ if (swiper.params.rewind || swiper.params.loop) {
31644
31789
  for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {
31645
31790
  const realIndex = (i % len + len) % len;
31646
- if (realIndex !== activeIndex && realIndex > slideIndexLastInView) unlazy(swiper, realIndex);
31791
+ if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);
31647
31792
  }
31648
31793
  } else {
31649
- for (let i = Math.max(slideIndexLastInView - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {
31650
- if (i !== activeIndex && i > slideIndexLastInView) unlazy(swiper, i);
31794
+ for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {
31795
+ if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {
31796
+ unlazy(swiper, i);
31797
+ }
31651
31798
  }
31652
31799
  }
31653
31800
  };
31654
-
31655
31801
  function getActiveIndexByTranslate(swiper) {
31656
31802
  const {
31657
31803
  slidesGrid,
@@ -31728,7 +31874,9 @@
31728
31874
  realIndex = activeIndex;
31729
31875
  }
31730
31876
  Object.assign(swiper, {
31877
+ previousSnapIndex,
31731
31878
  snapIndex,
31879
+ previousRealIndex,
31732
31880
  realIndex,
31733
31881
  previousIndex,
31734
31882
  activeIndex
@@ -31745,7 +31893,6 @@
31745
31893
  swiper.emit('slideChange');
31746
31894
  }
31747
31895
  }
31748
-
31749
31896
  function updateClickedSlide(e) {
31750
31897
  const swiper = this;
31751
31898
  const params = swiper.params;
@@ -31777,7 +31924,6 @@
31777
31924
  swiper.slideToClickedSlide();
31778
31925
  }
31779
31926
  }
31780
-
31781
31927
  var update = {
31782
31928
  updateSize,
31783
31929
  updateSlides,
@@ -31789,7 +31935,6 @@
31789
31935
  updateActiveIndex,
31790
31936
  updateClickedSlide
31791
31937
  };
31792
-
31793
31938
  function getSwiperTranslate(axis) {
31794
31939
  if (axis === void 0) {
31795
31940
  axis = this.isHorizontal() ? 'x' : 'y';
@@ -31808,10 +31953,10 @@
31808
31953
  return translate;
31809
31954
  }
31810
31955
  let currentTranslate = getTranslate(wrapperEl, axis);
31956
+ currentTranslate += swiper.cssOverflowAdjustment();
31811
31957
  if (rtl) currentTranslate = -currentTranslate;
31812
31958
  return currentTranslate || 0;
31813
31959
  }
31814
-
31815
31960
  function setTranslate(translate, byController) {
31816
31961
  const swiper = this;
31817
31962
  const {
@@ -31832,13 +31977,18 @@
31832
31977
  x = Math.floor(x);
31833
31978
  y = Math.floor(y);
31834
31979
  }
31980
+ swiper.previousTranslate = swiper.translate;
31981
+ swiper.translate = swiper.isHorizontal() ? x : y;
31835
31982
  if (params.cssMode) {
31836
31983
  wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;
31837
31984
  } else if (!params.virtualTranslate) {
31985
+ if (swiper.isHorizontal()) {
31986
+ x -= swiper.cssOverflowAdjustment();
31987
+ } else {
31988
+ y -= swiper.cssOverflowAdjustment();
31989
+ }
31838
31990
  wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;
31839
31991
  }
31840
- swiper.previousTranslate = swiper.translate;
31841
- swiper.translate = swiper.isHorizontal() ? x : y;
31842
31992
 
31843
31993
  // Check if we need to update progress
31844
31994
  let newProgress;
@@ -31853,15 +32003,12 @@
31853
32003
  }
31854
32004
  swiper.emit('setTranslate', swiper.translate, byController);
31855
32005
  }
31856
-
31857
32006
  function minTranslate() {
31858
32007
  return -this.snapGrid[0];
31859
32008
  }
31860
-
31861
32009
  function maxTranslate() {
31862
32010
  return -this.snapGrid[this.snapGrid.length - 1];
31863
32011
  }
31864
-
31865
32012
  function translateTo(translate, speed, runCallbacks, translateBounds, internal) {
31866
32013
  if (translate === void 0) {
31867
32014
  translate = 0;
@@ -31943,7 +32090,6 @@
31943
32090
  }
31944
32091
  return true;
31945
32092
  }
31946
-
31947
32093
  var translate = {
31948
32094
  getTranslate: getSwiperTranslate,
31949
32095
  setTranslate,
@@ -31951,7 +32097,6 @@
31951
32097
  maxTranslate,
31952
32098
  translateTo
31953
32099
  };
31954
-
31955
32100
  function setTransition(duration, byController) {
31956
32101
  const swiper = this;
31957
32102
  if (!swiper.params.cssMode) {
@@ -31959,7 +32104,6 @@
31959
32104
  }
31960
32105
  swiper.emit('setTransition', duration, byController);
31961
32106
  }
31962
-
31963
32107
  function transitionEmit(_ref) {
31964
32108
  let {
31965
32109
  swiper,
@@ -31989,7 +32133,6 @@
31989
32133
  }
31990
32134
  }
31991
32135
  }
31992
-
31993
32136
  function transitionStart(runCallbacks, direction) {
31994
32137
  if (runCallbacks === void 0) {
31995
32138
  runCallbacks = true;
@@ -32009,7 +32152,6 @@
32009
32152
  step: 'Start'
32010
32153
  });
32011
32154
  }
32012
-
32013
32155
  function transitionEnd(runCallbacks, direction) {
32014
32156
  if (runCallbacks === void 0) {
32015
32157
  runCallbacks = true;
@@ -32028,13 +32170,11 @@
32028
32170
  step: 'End'
32029
32171
  });
32030
32172
  }
32031
-
32032
32173
  var transition = {
32033
32174
  setTransition,
32034
32175
  transitionStart,
32035
32176
  transitionEnd
32036
32177
  };
32037
-
32038
32178
  function slideTo(index, speed, runCallbacks, internal, initial) {
32039
32179
  if (index === void 0) {
32040
32180
  index = 0;
@@ -32087,7 +32227,7 @@
32087
32227
  }
32088
32228
  // Directions locks
32089
32229
  if (swiper.initialized && slideIndex !== activeIndex) {
32090
- if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {
32230
+ if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {
32091
32231
  return false;
32092
32232
  }
32093
32233
  if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {
@@ -32185,7 +32325,6 @@
32185
32325
  }
32186
32326
  return true;
32187
32327
  }
32188
-
32189
32328
  function slideToLoop(index, speed, runCallbacks, internal) {
32190
32329
  if (index === void 0) {
32191
32330
  index = 0;
@@ -32360,7 +32499,6 @@
32360
32499
  index = Math.min(index, swiper.slidesGrid.length - 1);
32361
32500
  return swiper.slideTo(index, speed, runCallbacks, internal);
32362
32501
  }
32363
-
32364
32502
  function slideToClickedSlide() {
32365
32503
  const swiper = this;
32366
32504
  const {
@@ -32397,7 +32535,6 @@
32397
32535
  swiper.slideTo(slideToIndex);
32398
32536
  }
32399
32537
  }
32400
-
32401
32538
  var slide = {
32402
32539
  slideTo,
32403
32540
  slideToLoop,
@@ -32407,7 +32544,6 @@
32407
32544
  slideToClosest,
32408
32545
  slideToClickedSlide
32409
32546
  };
32410
-
32411
32547
  function loopCreate(slideRealIndex) {
32412
32548
  const swiper = this;
32413
32549
  const {
@@ -32424,7 +32560,6 @@
32424
32560
  direction: params.centeredSlides ? undefined : 'next'
32425
32561
  });
32426
32562
  }
32427
-
32428
32563
  function loopFix(_temp) {
32429
32564
  let {
32430
32565
  slideRealIndex,
@@ -32496,15 +32631,22 @@
32496
32631
  }
32497
32632
  if (isPrev) {
32498
32633
  prependSlidesIndexes.forEach(index => {
32634
+ swiper.slides[index].swiperLoopMoveDOM = true;
32499
32635
  slidesEl.prepend(swiper.slides[index]);
32636
+ swiper.slides[index].swiperLoopMoveDOM = false;
32500
32637
  });
32501
32638
  }
32502
32639
  if (isNext) {
32503
32640
  appendSlidesIndexes.forEach(index => {
32641
+ swiper.slides[index].swiperLoopMoveDOM = true;
32504
32642
  slidesEl.append(swiper.slides[index]);
32643
+ swiper.slides[index].swiperLoopMoveDOM = false;
32505
32644
  });
32506
32645
  }
32507
32646
  swiper.recalcSlides();
32647
+ if (params.slidesPerView === 'auto') {
32648
+ swiper.updateSlides();
32649
+ }
32508
32650
  if (params.watchSlidesProgress) {
32509
32651
  swiper.updateSlidesOffset();
32510
32652
  }
@@ -32566,7 +32708,6 @@
32566
32708
  }
32567
32709
  swiper.emit('loopFix');
32568
32710
  }
32569
-
32570
32711
  function loopDestroy() {
32571
32712
  const swiper = this;
32572
32713
  const {
@@ -32589,13 +32730,11 @@
32589
32730
  swiper.recalcSlides();
32590
32731
  swiper.slideTo(swiper.realIndex, 0);
32591
32732
  }
32592
-
32593
32733
  var loop = {
32594
32734
  loopCreate,
32595
32735
  loopFix,
32596
32736
  loopDestroy
32597
32737
  };
32598
-
32599
32738
  function setGrabCursor(moving) {
32600
32739
  const swiper = this;
32601
32740
  if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;
@@ -32611,7 +32750,6 @@
32611
32750
  });
32612
32751
  }
32613
32752
  }
32614
-
32615
32753
  function unsetGrabCursor() {
32616
32754
  const swiper = this;
32617
32755
  if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {
@@ -32627,7 +32765,6 @@
32627
32765
  });
32628
32766
  }
32629
32767
  }
32630
-
32631
32768
  var grabCursor = {
32632
32769
  setGrabCursor,
32633
32770
  unsetGrabCursor
@@ -32740,12 +32877,11 @@
32740
32877
  if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {
32741
32878
  e.preventDefault();
32742
32879
  }
32743
- if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {
32880
+ if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {
32744
32881
  swiper.freeMode.onTouchStart();
32745
32882
  }
32746
32883
  swiper.emit('touchStart', e);
32747
32884
  }
32748
-
32749
32885
  function onTouchMove(event) {
32750
32886
  const document = getDocument();
32751
32887
  const swiper = this;
@@ -32977,7 +33113,7 @@
32977
33113
  swiper.updateActiveIndex();
32978
33114
  swiper.updateSlidesClasses();
32979
33115
  }
32980
- if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {
33116
+ if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {
32981
33117
  swiper.freeMode.onTouchMove();
32982
33118
  }
32983
33119
  // Update progress
@@ -32985,7 +33121,6 @@
32985
33121
  // Update translate
32986
33122
  swiper.setTranslate(data.currentTranslate);
32987
33123
  }
32988
-
32989
33124
  function onTouchEnd(event) {
32990
33125
  const swiper = this;
32991
33126
  const data = swiper.touchEventsData;
@@ -33062,7 +33197,7 @@
33062
33197
  if (params.cssMode) {
33063
33198
  return;
33064
33199
  }
33065
- if (swiper.params.freeMode && params.freeMode.enabled) {
33200
+ if (params.freeMode && params.freeMode.enabled) {
33066
33201
  swiper.freeMode.onTouchEnd({
33067
33202
  currentPos
33068
33203
  });
@@ -33088,7 +33223,7 @@
33088
33223
  let rewindLastIndex = null;
33089
33224
  if (params.rewind) {
33090
33225
  if (swiper.isBeginning) {
33091
- rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
33226
+ rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
33092
33227
  } else if (swiper.isEnd) {
33093
33228
  rewindFirstIndex = 0;
33094
33229
  }
@@ -33135,8 +33270,6 @@
33135
33270
  }
33136
33271
  }
33137
33272
  }
33138
-
33139
- let timeout;
33140
33273
  function onResize() {
33141
33274
  const swiper = this;
33142
33275
  const {
@@ -33175,8 +33308,8 @@
33175
33308
  }
33176
33309
  }
33177
33310
  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
33178
- clearTimeout(timeout);
33179
- timeout = setTimeout(() => {
33311
+ clearTimeout(swiper.autoplay.resizeTimeout);
33312
+ swiper.autoplay.resizeTimeout = setTimeout(() => {
33180
33313
  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
33181
33314
  swiper.autoplay.resume();
33182
33315
  }
@@ -33189,7 +33322,6 @@
33189
33322
  swiper.checkOverflow();
33190
33323
  }
33191
33324
  }
33192
-
33193
33325
  function onClick(e) {
33194
33326
  const swiper = this;
33195
33327
  if (!swiper.enabled) return;
@@ -33201,7 +33333,6 @@
33201
33333
  }
33202
33334
  }
33203
33335
  }
33204
-
33205
33336
  function onScroll() {
33206
33337
  const swiper = this;
33207
33338
  const {
@@ -33232,13 +33363,14 @@
33232
33363
  }
33233
33364
  swiper.emit('setTranslate', swiper.translate, false);
33234
33365
  }
33235
-
33236
33366
  function onLoad(e) {
33237
33367
  const swiper = this;
33238
33368
  processLazyPreloader(swiper, e.target);
33369
+ if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {
33370
+ return;
33371
+ }
33239
33372
  swiper.update();
33240
33373
  }
33241
-
33242
33374
  let dummyEventAttached = false;
33243
33375
  function dummyEventListener() {}
33244
33376
  const events = (swiper, method) => {
@@ -33322,7 +33454,6 @@
33322
33454
  attachEvents,
33323
33455
  detachEvents
33324
33456
  };
33325
-
33326
33457
  const isGridEnabled = (swiper, params) => {
33327
33458
  return swiper.grid && params.grid && params.grid.rows > 1;
33328
33459
  };
@@ -33358,6 +33489,7 @@
33358
33489
 
33359
33490
  // Toggle navigation, pagination, scrollbar
33360
33491
  ['navigation', 'pagination', 'scrollbar'].forEach(prop => {
33492
+ if (typeof breakpointParams[prop] === 'undefined') return;
33361
33493
  const wasModuleEnabled = params[prop] && params[prop].enabled;
33362
33494
  const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;
33363
33495
  if (wasModuleEnabled && !isModuleEnabled) {
@@ -33393,7 +33525,6 @@
33393
33525
  }
33394
33526
  swiper.emit('breakpoint', breakpointParams);
33395
33527
  }
33396
-
33397
33528
  function getBreakpoint(breakpoints, base, containerEl) {
33398
33529
  if (base === void 0) {
33399
33530
  base = 'window';
@@ -33432,12 +33563,10 @@
33432
33563
  }
33433
33564
  return breakpoint || 'max';
33434
33565
  }
33435
-
33436
33566
  var breakpoints = {
33437
33567
  setBreakpoint,
33438
33568
  getBreakpoint
33439
33569
  };
33440
-
33441
33570
  function prepareClasses(entries, prefix) {
33442
33571
  const resultClasses = [];
33443
33572
  entries.forEach(item => {
@@ -33488,7 +33617,6 @@
33488
33617
  el.classList.add(...classNames);
33489
33618
  swiper.emitContainerClasses();
33490
33619
  }
33491
-
33492
33620
  function removeClasses() {
33493
33621
  const swiper = this;
33494
33622
  const {
@@ -33498,12 +33626,10 @@
33498
33626
  el.classList.remove(...classNames);
33499
33627
  swiper.emitContainerClasses();
33500
33628
  }
33501
-
33502
33629
  var classes = {
33503
33630
  addClasses,
33504
33631
  removeClasses
33505
33632
  };
33506
-
33507
33633
  function checkOverflow() {
33508
33634
  const swiper = this;
33509
33635
  const {
@@ -33536,7 +33662,6 @@
33536
33662
  var checkOverflow$1 = {
33537
33663
  checkOverflow
33538
33664
  };
33539
-
33540
33665
  var defaults = {
33541
33666
  init: true,
33542
33667
  direction: 'horizontal',
@@ -33654,7 +33779,6 @@
33654
33779
  // Internals
33655
33780
  _emitClasses: false
33656
33781
  };
33657
-
33658
33782
  function moduleExtendParams(params, allModulesParams) {
33659
33783
  return function extendParams(obj) {
33660
33784
  if (obj === void 0) {
@@ -33808,6 +33932,11 @@
33808
33932
  progress: 0,
33809
33933
  velocity: 0,
33810
33934
  animating: false,
33935
+ cssOverflowAdjustment() {
33936
+ // Returns 0 unless `translate` is > 2**23
33937
+ // Should be subtracted from css values to prevent overflow
33938
+ return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
33939
+ },
33811
33940
  // Locks
33812
33941
  allowSlideNext: swiper.params.allowSlideNext,
33813
33942
  allowSlidePrev: swiper.params.allowSlidePrev,
@@ -33953,7 +34082,7 @@
33953
34082
  } = swiper;
33954
34083
  let spv = 1;
33955
34084
  if (params.centeredSlides) {
33956
- let slideSize = slides[activeIndex].swiperSlideSize;
34085
+ let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0;
33957
34086
  let breakLoop;
33958
34087
  for (let i = activeIndex + 1; i < slides.length; i += 1) {
33959
34088
  if (slides[i] && !breakLoop) {
@@ -34018,14 +34147,15 @@
34018
34147
  swiper.updateSlidesClasses();
34019
34148
  }
34020
34149
  let translated;
34021
- if (swiper.params.freeMode && swiper.params.freeMode.enabled) {
34150
+ if (params.freeMode && params.freeMode.enabled && !params.cssMode) {
34022
34151
  setTranslate();
34023
- if (swiper.params.autoHeight) {
34152
+ if (params.autoHeight) {
34024
34153
  swiper.updateAutoHeight();
34025
34154
  }
34026
34155
  } else {
34027
- if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {
34028
- translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);
34156
+ if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {
34157
+ const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;
34158
+ translated = swiper.slideTo(slides.length - 1, 0, false, true);
34029
34159
  } else {
34030
34160
  translated = swiper.slideTo(swiper.activeIndex, 0, false, true);
34031
34161
  }
@@ -34093,7 +34223,7 @@
34093
34223
  return false;
34094
34224
  }
34095
34225
  el.swiper = swiper;
34096
- if (el.shadowEl) {
34226
+ if (el.parentNode && el.parentNode.host) {
34097
34227
  swiper.isElement = true;
34098
34228
  }
34099
34229
  const getWrapperSelector = () => {
@@ -34119,7 +34249,8 @@
34119
34249
  Object.assign(swiper, {
34120
34250
  el,
34121
34251
  wrapperEl,
34122
- slidesEl: swiper.isElement ? el : wrapperEl,
34252
+ slidesEl: swiper.isElement ? el.parentNode.host : wrapperEl,
34253
+ hostEl: swiper.isElement ? el.parentNode.host : el,
34123
34254
  mounted: true,
34124
34255
  // RTL
34125
34256
  rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',
@@ -34398,7 +34529,7 @@
34398
34529
  if (previousFrom === from && previousTo === to && !force) {
34399
34530
  if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {
34400
34531
  swiper.slides.forEach(slideEl => {
34401
- slideEl.style[offsetProp] = `${offset}px`;
34532
+ slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
34402
34533
  });
34403
34534
  }
34404
34535
  swiper.updateProgress();
@@ -34479,7 +34610,7 @@
34479
34610
  });
34480
34611
  }
34481
34612
  elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {
34482
- slideEl.style[offsetProp] = `${offset}px`;
34613
+ slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
34483
34614
  });
34484
34615
  onRendered();
34485
34616
  }
@@ -34735,7 +34866,8 @@
34735
34866
  sensitivity: 1,
34736
34867
  eventsTarget: 'container',
34737
34868
  thresholdDelta: null,
34738
- thresholdTime: null
34869
+ thresholdTime: null,
34870
+ noMousewheelClass: 'swiper-no-mousewheel'
34739
34871
  }
34740
34872
  });
34741
34873
  swiper.mousewheel = {
@@ -34881,6 +35013,9 @@
34881
35013
  let e = event;
34882
35014
  let disableParentSwiper = true;
34883
35015
  if (!swiper.enabled) return;
35016
+
35017
+ // Ignore event if the target or its parents have the swiper-no-mousewheel class
35018
+ if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;
34884
35019
  const params = swiper.params.mousewheel;
34885
35020
  if (swiper.params.cssMode) {
34886
35021
  e.preventDefault();
@@ -35147,7 +35282,7 @@
35147
35282
  function getEl(el) {
35148
35283
  let res;
35149
35284
  if (el && typeof el === 'string' && swiper.isElement) {
35150
- res = swiper.el.shadowRoot.querySelector(el);
35285
+ res = swiper.el.querySelector(el);
35151
35286
  if (res) return res;
35152
35287
  }
35153
35288
  if (el) {
@@ -35389,10 +35524,12 @@
35389
35524
  const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;
35390
35525
  if (swiper.params.loop) {
35391
35526
  if (swiper.realIndex === index) return;
35392
- if (index < swiper.loopedSlides || index > swiper.slides.length - swiper.loopedSlides) {
35527
+ const newSlideIndex = swiper.getSlideIndexByData(index);
35528
+ const currentSlideIndex = swiper.getSlideIndexByData(swiper.realIndex);
35529
+ if (newSlideIndex > swiper.slides.length - swiper.loopedSlides) {
35393
35530
  swiper.loopFix({
35394
- direction: index < swiper.loopedSlides ? 'prev' : 'next',
35395
- activeSlideIndex: index,
35531
+ direction: newSlideIndex > currentSlideIndex ? 'next' : 'prev',
35532
+ activeSlideIndex: newSlideIndex,
35396
35533
  slideTo: false
35397
35534
  });
35398
35535
  }
@@ -35410,13 +35547,17 @@
35410
35547
  el = makeElementsArray(el);
35411
35548
  // Current/Total
35412
35549
  let current;
35550
+ let previousIndex;
35413
35551
  const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;
35414
35552
  const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
35415
35553
  if (swiper.params.loop) {
35554
+ previousIndex = swiper.previousRealIndex || 0;
35416
35555
  current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;
35417
35556
  } else if (typeof swiper.snapIndex !== 'undefined') {
35418
35557
  current = swiper.snapIndex;
35558
+ previousIndex = swiper.previousSnapIndex;
35419
35559
  } else {
35560
+ previousIndex = swiper.previousIndex || 0;
35420
35561
  current = swiper.activeIndex || 0;
35421
35562
  }
35422
35563
  // Types
@@ -35430,8 +35571,8 @@
35430
35571
  el.forEach(subEl => {
35431
35572
  subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;
35432
35573
  });
35433
- if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {
35434
- dynamicBulletIndex += current - (swiper.previousIndex || 0);
35574
+ if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {
35575
+ dynamicBulletIndex += current - (previousIndex || 0);
35435
35576
  if (dynamicBulletIndex > params.dynamicMainBullets - 1) {
35436
35577
  dynamicBulletIndex = params.dynamicMainBullets - 1;
35437
35578
  } else if (dynamicBulletIndex < 0) {
@@ -35451,6 +35592,8 @@
35451
35592
  const bulletIndex = elementIndex(bullet);
35452
35593
  if (bulletIndex === current) {
35453
35594
  bullet.classList.add(...params.bulletActiveClass.split(' '));
35595
+ } else if (swiper.isElement) {
35596
+ bullet.setAttribute('part', 'bullet');
35454
35597
  }
35455
35598
  if (params.dynamicBullets) {
35456
35599
  if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {
@@ -35469,6 +35612,11 @@
35469
35612
  if (bullet) {
35470
35613
  bullet.classList.add(...params.bulletActiveClass.split(' '));
35471
35614
  }
35615
+ if (swiper.isElement) {
35616
+ bullets.forEach((bulletEl, bulletIndex) => {
35617
+ bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');
35618
+ });
35619
+ }
35472
35620
  if (params.dynamicBullets) {
35473
35621
  const firstDisplayedBullet = bullets[firstIndex];
35474
35622
  const lastDisplayedBullet = bullets[lastIndex];
@@ -35548,7 +35696,8 @@
35548
35696
  if (params.renderBullet) {
35549
35697
  paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);
35550
35698
  } else {
35551
- paginationHTML += `<${params.bulletElement} class="${params.bulletClass}"></${params.bulletElement}>`;
35699
+ // prettier-ignore
35700
+ paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}"></${params.bulletElement}>`;
35552
35701
  }
35553
35702
  }
35554
35703
  }
@@ -35587,7 +35736,7 @@
35587
35736
  if (!params.el) return;
35588
35737
  let el;
35589
35738
  if (typeof params.el === 'string' && swiper.isElement) {
35590
- el = swiper.el.shadowRoot.querySelector(params.el);
35739
+ el = swiper.el.querySelector(params.el);
35591
35740
  }
35592
35741
  if (!el && typeof params.el === 'string') {
35593
35742
  el = [...document.querySelectorAll(params.el)];
@@ -35652,6 +35801,18 @@
35652
35801
  }
35653
35802
  if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));
35654
35803
  }
35804
+ on('changeDirection', () => {
35805
+ if (!swiper.pagination || !swiper.pagination.el) return;
35806
+ const params = swiper.params.pagination;
35807
+ let {
35808
+ el
35809
+ } = swiper.pagination;
35810
+ el = makeElementsArray(el);
35811
+ el.forEach(subEl => {
35812
+ subEl.classList.remove(params.horizontalClass, params.verticalClass);
35813
+ subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
35814
+ });
35815
+ });
35655
35816
  on('init', () => {
35656
35817
  if (swiper.params.pagination.enabled === false) {
35657
35818
  // eslint-disable-next-line
@@ -35691,10 +35852,7 @@
35691
35852
  });
35692
35853
  on('click', (_s, e) => {
35693
35854
  const targetEl = e.target;
35694
- let {
35695
- el
35696
- } = swiper.pagination;
35697
- if (!Array.isArray(el)) el = [el].filter(element => !!element);
35855
+ const el = makeElementsArray(swiper.pagination.el);
35698
35856
  if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {
35699
35857
  if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;
35700
35858
  const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);
@@ -35992,7 +36150,7 @@
35992
36150
  if (!params.el) return;
35993
36151
  let el;
35994
36152
  if (typeof params.el === 'string' && swiper.isElement) {
35995
- el = swiper.el.shadowRoot.querySelector(params.el);
36153
+ el = swiper.el.querySelector(params.el);
35996
36154
  }
35997
36155
  if (!el && typeof params.el === 'string') {
35998
36156
  el = document.querySelectorAll(params.el);
@@ -36758,7 +36916,7 @@
36758
36916
  });
36759
36917
  on('touchEnd', (_s, e) => {
36760
36918
  if (!swiper.zoom.enabled) return;
36761
- onTouchEnd(e);
36919
+ onTouchEnd();
36762
36920
  });
36763
36921
  on('doubleTap', (_s, e) => {
36764
36922
  if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {
@@ -36842,11 +37000,8 @@
36842
37000
  };
36843
37001
  return this;
36844
37002
  }
36845
- // xxx: for now i will just save one spline function to to
36846
37003
  function getInterpolateFunction(c) {
36847
- if (!swiper.controller.spline) {
36848
- swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);
36849
- }
37004
+ swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);
36850
37005
  }
36851
37006
  function setTranslate(_t, byController) {
36852
37007
  const controlled = swiper.controller.control;
@@ -36869,6 +37024,9 @@
36869
37024
  }
36870
37025
  if (!controlledTranslate || swiper.params.controller.by === 'container') {
36871
37026
  multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());
37027
+ if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {
37028
+ multiplier = 1;
37029
+ }
36872
37030
  controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();
36873
37031
  }
36874
37032
  if (swiper.params.controller.inverse) {
@@ -36955,11 +37113,11 @@
36955
37113
  removeSpline();
36956
37114
  });
36957
37115
  on('setTranslate', (_s, translate, byController) => {
36958
- if (!swiper.controller.control) return;
37116
+ if (!swiper.controller.control || swiper.controller.control.destroyed) return;
36959
37117
  swiper.controller.setTranslate(translate, byController);
36960
37118
  });
36961
37119
  on('setTransition', (_s, duration, byController) => {
36962
- if (!swiper.controller.control) return;
37120
+ if (!swiper.controller.control || swiper.controller.control.destroyed) return;
36963
37121
  swiper.controller.setTransition(duration, byController);
36964
37122
  });
36965
37123
  Object.assign(swiper.controller, {
@@ -37256,7 +37414,7 @@
37256
37414
  swiper.el.addEventListener('pointerup', handlePointerUp, true);
37257
37415
  };
37258
37416
  function destroy() {
37259
- if (liveRegion && liveRegion.length > 0) liveRegion.remove();
37417
+ if (liveRegion) liveRegion.remove();
37260
37418
  let {
37261
37419
  nextEl,
37262
37420
  prevEl
@@ -37287,9 +37445,6 @@
37287
37445
  liveRegion = createElement('span', swiper.params.a11y.notificationClass);
37288
37446
  liveRegion.setAttribute('aria-live', 'assertive');
37289
37447
  liveRegion.setAttribute('aria-atomic', 'true');
37290
- if (swiper.isElement) {
37291
- liveRegion.setAttribute('slot', 'container-end');
37292
- }
37293
37448
  });
37294
37449
  on('afterInit', () => {
37295
37450
  if (!swiper.params.a11y.enabled) return;
@@ -37466,28 +37621,38 @@
37466
37621
  hashNavigation: {
37467
37622
  enabled: false,
37468
37623
  replaceState: false,
37469
- watchState: false
37624
+ watchState: false,
37625
+ getSlideIndex(_s, hash) {
37626
+ if (swiper.virtual && swiper.params.virtual.enabled) {
37627
+ const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0];
37628
+ if (!slideWithHash) return 0;
37629
+ const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);
37630
+ return index;
37631
+ }
37632
+ return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash="${hash}"], swiper-slide[data-hash="${hash}"]`)[0]);
37633
+ }
37470
37634
  }
37471
37635
  });
37472
37636
  const onHashChange = () => {
37473
37637
  emit('hashChange');
37474
37638
  const newHash = document.location.hash.replace('#', '');
37475
- const activeSlideHash = swiper.slides[swiper.activeIndex].getAttribute('data-hash');
37639
+ const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
37640
+ const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';
37476
37641
  if (newHash !== activeSlideHash) {
37477
- const newIndex = swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash="${newHash}"], swiper-slide[data-hash="${newHash}"]`)[0]);
37478
- if (typeof newIndex === 'undefined') return;
37642
+ const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);
37643
+ if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;
37479
37644
  swiper.slideTo(newIndex);
37480
37645
  }
37481
37646
  };
37482
37647
  const setHash = () => {
37483
37648
  if (!initialized || !swiper.params.hashNavigation.enabled) return;
37649
+ const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
37650
+ const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';
37484
37651
  if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {
37485
- window.history.replaceState(null, null, `#${swiper.slides[swiper.activeIndex].getAttribute('data-hash')}` || '');
37652
+ window.history.replaceState(null, null, `#${activeSlideHash}` || '');
37486
37653
  emit('hashSet');
37487
37654
  } else {
37488
- const slide = swiper.slides[swiper.activeIndex];
37489
- const hash = slide.getAttribute('data-hash') || slide.getAttribute('data-history');
37490
- document.location.hash = hash || '';
37655
+ document.location.hash = activeSlideHash || '';
37491
37656
  emit('hashSet');
37492
37657
  }
37493
37658
  };
@@ -37497,14 +37662,8 @@
37497
37662
  const hash = document.location.hash.replace('#', '');
37498
37663
  if (hash) {
37499
37664
  const speed = 0;
37500
- for (let i = 0, length = swiper.slides.length; i < length; i += 1) {
37501
- const slide = swiper.slides[i];
37502
- const slideHash = slide.getAttribute('data-hash') || slide.getAttribute('data-history');
37503
- if (slideHash === hash) {
37504
- const index = swiper.getSlideIndex(slide);
37505
- swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);
37506
- }
37507
- }
37665
+ const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);
37666
+ swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);
37508
37667
  }
37509
37668
  if (swiper.params.hashNavigation.watchState) {
37510
37669
  window.addEventListener('hashchange', onHashChange);
@@ -37538,6 +37697,7 @@
37538
37697
  }
37539
37698
 
37540
37699
  /* eslint no-underscore-dangle: "off" */
37700
+ /* eslint no-use-before-define: "off" */
37541
37701
  function Autoplay(_ref) {
37542
37702
  let {
37543
37703
  swiper,
@@ -37939,9 +38099,7 @@
37939
38099
  } else {
37940
38100
  newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;
37941
38101
  }
37942
- } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {
37943
- // newThumbsIndex = newThumbsIndex - slidesPerView + 1;
37944
- }
38102
+ } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;
37945
38103
  thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);
37946
38104
  }
37947
38105
  }
@@ -38026,6 +38184,7 @@
38026
38184
  }
38027
38185
  });
38028
38186
  function onTouchStart() {
38187
+ if (swiper.params.cssMode) return;
38029
38188
  const translate = swiper.getTranslate();
38030
38189
  swiper.setTranslate(translate);
38031
38190
  swiper.setTransition(0);
@@ -38035,6 +38194,7 @@
38035
38194
  });
38036
38195
  }
38037
38196
  function onTouchMove() {
38197
+ if (swiper.params.cssMode) return;
38038
38198
  const {
38039
38199
  touchEventsData: data,
38040
38200
  touches
@@ -38055,6 +38215,7 @@
38055
38215
  let {
38056
38216
  currentPos
38057
38217
  } = _ref2;
38218
+ if (swiper.params.cssMode) return;
38058
38219
  const {
38059
38220
  params,
38060
38221
  wrapperEl,
@@ -38250,6 +38411,15 @@
38250
38411
  let slidesNumberEvenToRows;
38251
38412
  let slidesPerRow;
38252
38413
  let numFullColumns;
38414
+ const getSpaceBetween = () => {
38415
+ let spaceBetween = swiper.params.spaceBetween;
38416
+ if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
38417
+ spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
38418
+ } else if (typeof spaceBetween === 'string') {
38419
+ spaceBetween = parseFloat(spaceBetween);
38420
+ }
38421
+ return spaceBetween;
38422
+ };
38253
38423
  const initSlides = slidesLength => {
38254
38424
  const {
38255
38425
  slidesPerView
@@ -38258,7 +38428,6 @@
38258
38428
  rows,
38259
38429
  fill
38260
38430
  } = swiper.params.grid;
38261
- slidesPerRow = slidesNumberEvenToRows / rows;
38262
38431
  numFullColumns = Math.floor(slidesLength / rows);
38263
38432
  if (Math.floor(slidesLength / rows) === slidesLength / rows) {
38264
38433
  slidesNumberEvenToRows = slidesLength;
@@ -38268,12 +38437,13 @@
38268
38437
  if (slidesPerView !== 'auto' && fill === 'row') {
38269
38438
  slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);
38270
38439
  }
38440
+ slidesPerRow = slidesNumberEvenToRows / rows;
38271
38441
  };
38272
38442
  const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {
38273
38443
  const {
38274
- slidesPerGroup,
38275
- spaceBetween
38444
+ slidesPerGroup
38276
38445
  } = swiper.params;
38446
+ const spaceBetween = getSpaceBetween();
38277
38447
  const {
38278
38448
  rows,
38279
38449
  fill
@@ -38304,14 +38474,16 @@
38304
38474
  row = Math.floor(i / slidesPerRow);
38305
38475
  column = i - row * slidesPerRow;
38306
38476
  }
38477
+ slide.row = row;
38478
+ slide.column = column;
38307
38479
  slide.style[getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';
38308
38480
  };
38309
38481
  const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {
38310
38482
  const {
38311
- spaceBetween,
38312
38483
  centeredSlides,
38313
38484
  roundLengths
38314
38485
  } = swiper.params;
38486
+ const spaceBetween = getSpaceBetween();
38315
38487
  const {
38316
38488
  rows
38317
38489
  } = swiper.params.grid;
@@ -38370,7 +38542,6 @@
38370
38542
  swiper.update();
38371
38543
  }
38372
38544
  }
38373
-
38374
38545
  function prependSlide(slides) {
38375
38546
  const swiper = this;
38376
38547
  const {
@@ -38409,7 +38580,6 @@
38409
38580
  }
38410
38581
  swiper.slideTo(newActiveIndex, 0, false);
38411
38582
  }
38412
-
38413
38583
  function addSlide(index, slides) {
38414
38584
  const swiper = this;
38415
38585
  const {
@@ -38463,7 +38633,6 @@
38463
38633
  swiper.slideTo(newActiveIndex, 0, false);
38464
38634
  }
38465
38635
  }
38466
-
38467
38636
  function removeSlide(slidesIndexes) {
38468
38637
  const swiper = this;
38469
38638
  const {
@@ -38503,7 +38672,6 @@
38503
38672
  swiper.slideTo(newActiveIndex, 0, false);
38504
38673
  }
38505
38674
  }
38506
-
38507
38675
  function removeAllSlides() {
38508
38676
  const swiper = this;
38509
38677
  const slidesIndexes = [];
@@ -38512,7 +38680,6 @@
38512
38680
  }
38513
38681
  swiper.removeSlide(slidesIndexes);
38514
38682
  }
38515
-
38516
38683
  function Manipulation(_ref) {
38517
38684
  let {
38518
38685
  swiper
@@ -38605,7 +38772,7 @@
38605
38772
  const getSlide = el => {
38606
38773
  if (!el.parentElement) {
38607
38774
  // assume shadow root
38608
- const slide = swiper.slides.filter(slideEl => slideEl.shadowEl && slideEl.shadowEl === el.parentNode)[0];
38775
+ const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];
38609
38776
  return slide;
38610
38777
  }
38611
38778
  return el.parentElement;
@@ -38715,11 +38882,11 @@
38715
38882
  let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
38716
38883
  let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
38717
38884
  if (!shadowBefore) {
38718
- shadowBefore = createElement('div', `swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`);
38885
+ shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));
38719
38886
  slideEl.append(shadowBefore);
38720
38887
  }
38721
38888
  if (!shadowAfter) {
38722
- shadowAfter = createElement('div', `swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`);
38889
+ shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));
38723
38890
  slideEl.append(shadowAfter);
38724
38891
  }
38725
38892
  if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
@@ -38751,10 +38918,10 @@
38751
38918
  let cubeShadowEl;
38752
38919
  if (params.shadow) {
38753
38920
  if (isHorizontal) {
38754
- cubeShadowEl = swiper.slidesEl.querySelector('.swiper-cube-shadow');
38921
+ cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');
38755
38922
  if (!cubeShadowEl) {
38756
38923
  cubeShadowEl = createElement('div', 'swiper-cube-shadow');
38757
- swiper.slidesEl.append(cubeShadowEl);
38924
+ swiper.wrapperEl.append(cubeShadowEl);
38758
38925
  }
38759
38926
  cubeShadowEl.style.height = `${swiperWidth}px`;
38760
38927
  } else {
@@ -38866,12 +39033,12 @@
38866
39033
  });
38867
39034
  }
38868
39035
 
38869
- function createShadow(params, slideEl, side) {
38870
- const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;
39036
+ function createShadow(suffix, slideEl, side) {
39037
+ const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;
38871
39038
  const shadowContainer = getSlideTransformEl(slideEl);
38872
- let shadowEl = shadowContainer.querySelector(`.${shadowClass}`);
39039
+ let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);
38873
39040
  if (!shadowEl) {
38874
- shadowEl = createElement('div', `swiper-slide-shadow${side ? `-${side}` : ''}`);
39041
+ shadowEl = createElement('div', shadowClass.split(' '));
38875
39042
  shadowContainer.append(shadowEl);
38876
39043
  }
38877
39044
  return shadowEl;
@@ -38889,27 +39056,27 @@
38889
39056
  limitRotation: true
38890
39057
  }
38891
39058
  });
38892
- const createSlideShadows = (slideEl, progress, params) => {
39059
+ const createSlideShadows = (slideEl, progress) => {
38893
39060
  let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
38894
39061
  let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
38895
39062
  if (!shadowBefore) {
38896
- shadowBefore = createShadow(params, slideEl, swiper.isHorizontal() ? 'left' : 'top');
39063
+ shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');
38897
39064
  }
38898
39065
  if (!shadowAfter) {
38899
- shadowAfter = createShadow(params, slideEl, swiper.isHorizontal() ? 'right' : 'bottom');
39066
+ shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');
38900
39067
  }
38901
39068
  if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
38902
39069
  if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
38903
39070
  };
38904
39071
  const recreateShadows = () => {
38905
39072
  // Set shadows
38906
- const params = swiper.params.flipEffect;
39073
+ swiper.params.flipEffect;
38907
39074
  swiper.slides.forEach(slideEl => {
38908
39075
  let progress = slideEl.progress;
38909
39076
  if (swiper.params.flipEffect.limitRotation) {
38910
39077
  progress = Math.max(Math.min(slideEl.progress, 1), -1);
38911
39078
  }
38912
- createSlideShadows(slideEl, progress, params);
39079
+ createSlideShadows(slideEl, progress);
38913
39080
  });
38914
39081
  };
38915
39082
  const setTranslate = () => {
@@ -38940,7 +39107,7 @@
38940
39107
  }
38941
39108
  slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;
38942
39109
  if (params.slideShadows) {
38943
- createSlideShadows(slideEl, progress, params);
39110
+ createSlideShadows(slideEl, progress);
38944
39111
  }
38945
39112
  const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
38946
39113
  const targetEl = effectTarget(params, slideEl);
@@ -39045,10 +39212,10 @@
39045
39212
  let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
39046
39213
  let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
39047
39214
  if (!shadowBeforeEl) {
39048
- shadowBeforeEl = createShadow(params, slideEl, isHorizontal ? 'left' : 'top');
39215
+ shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top');
39049
39216
  }
39050
39217
  if (!shadowAfterEl) {
39051
- shadowAfterEl = createShadow(params, slideEl, isHorizontal ? 'right' : 'bottom');
39218
+ shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');
39052
39219
  }
39053
39220
  if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;
39054
39221
  if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;
@@ -39170,7 +39337,7 @@
39170
39337
  if (custom && data.shadow || !custom) {
39171
39338
  let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
39172
39339
  if (!shadowEl && data.shadow) {
39173
- shadowEl = createShadow(params, slideEl);
39340
+ shadowEl = createShadow('creative', slideEl);
39174
39341
  }
39175
39342
  if (shadowEl) {
39176
39343
  const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;
@@ -39231,14 +39398,15 @@
39231
39398
  const setTranslate = () => {
39232
39399
  const {
39233
39400
  slides,
39234
- activeIndex
39401
+ activeIndex,
39402
+ rtlTranslate: rtl
39235
39403
  } = swiper;
39236
39404
  const params = swiper.params.cardsEffect;
39237
39405
  const {
39238
39406
  startTranslate,
39239
39407
  isTouched
39240
39408
  } = swiper.touchEventsData;
39241
- const currentTranslate = swiper.translate;
39409
+ const currentTranslate = rtl ? -swiper.translate : swiper.translate;
39242
39410
  for (let i = 0; i < slides.length; i += 1) {
39243
39411
  const slideEl = slides[i];
39244
39412
  const slideProgress = slideEl.progress;
@@ -39268,10 +39436,10 @@
39268
39436
  }
39269
39437
  if (progress < 0) {
39270
39438
  // next
39271
- tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;
39439
+ tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;
39272
39440
  } else if (progress > 0) {
39273
39441
  // prev
39274
- tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;
39442
+ tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;
39275
39443
  } else {
39276
39444
  tX = `${tX}px`;
39277
39445
  }
@@ -39281,16 +39449,20 @@
39281
39449
  tX = prevY;
39282
39450
  }
39283
39451
  const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;
39452
+
39453
+ /* eslint-disable */
39284
39454
  const transform = `
39285
39455
  translate3d(${tX}, ${tY}, ${tZ}px)
39286
- rotateZ(${params.rotate ? rotate : 0}deg)
39456
+ rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)
39287
39457
  scale(${scaleString})
39288
39458
  `;
39459
+ /* eslint-enable */
39460
+
39289
39461
  if (params.slideShadows) {
39290
39462
  // Set shadows
39291
39463
  let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
39292
39464
  if (!shadowEl) {
39293
- shadowEl = createShadow(params, slideEl);
39465
+ shadowEl = createShadow('cards', slideEl);
39294
39466
  }
39295
39467
  if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);
39296
39468
  }
@@ -39328,7 +39500,7 @@
39328
39500
  }
39329
39501
 
39330
39502
  /**
39331
- * Swiper 9.2.0
39503
+ * Swiper 10.0.3
39332
39504
  * Most modern mobile touch slider and framework with hardware accelerated transitions
39333
39505
  * https://swiperjs.com
39334
39506
  *
@@ -39336,7 +39508,7 @@
39336
39508
  *
39337
39509
  * Released under the MIT License
39338
39510
  *
39339
- * Released on: March 31, 2023
39511
+ * Released on: July 3, 2023
39340
39512
  */
39341
39513
 
39342
39514
  // Swiper Class
@@ -39344,10 +39516,9 @@
39344
39516
  Swiper$1.use(modules);
39345
39517
 
39346
39518
  /* underscore in name -> watch for changes */
39347
- const paramsList = ['eventsPrefix', 'modules', 'init', '_direction', 'oneWayMovement', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopedSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideNextClass', 'slidePrevClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',
39519
+ const paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopedSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideNextClass', 'slidePrevClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',
39348
39520
  // modules
39349
- 'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control', 'injectStyles', 'injectStylesUrls'];
39350
-
39521
+ 'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];
39351
39522
  function isObject(o) {
39352
39523
  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';
39353
39524
  }
@@ -39404,91 +39575,6 @@
39404
39575
  if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;
39405
39576
  return className;
39406
39577
  }
39407
-
39408
- const formatValue = val => {
39409
- if (parseFloat(val) === Number(val)) return Number(val);
39410
- if (val === 'true') return true;
39411
- if (val === '') return true;
39412
- if (val === 'false') return false;
39413
- if (val === 'null') return null;
39414
- if (val === 'undefined') return undefined;
39415
- return val;
39416
- };
39417
- const modulesParamsList = ['a11y', 'autoplay', 'controller', 'cards-effect', 'coverflow-effect', 'creative-effect', 'cube-effect', 'fade-effect', 'flip-effect', 'free-mode', 'grid', 'hash-navigation', 'history', 'keyboard', 'mousewheel', 'navigation', 'pagination', 'parallax', 'scrollbar', 'thumbs', 'virtual', 'zoom'];
39418
- function getParams(element) {
39419
- const params = {};
39420
- const passedParams = {};
39421
- extend(params, defaults);
39422
- const localParamsList = [...paramsList, 'on'];
39423
- const allowedParams = localParamsList.map(key => key.replace(/_/, ''));
39424
-
39425
- // First check props
39426
- localParamsList.forEach(paramName => {
39427
- paramName = paramName.replace('_', '');
39428
- if (typeof element[paramName] !== 'undefined') {
39429
- passedParams[paramName] = element[paramName];
39430
- }
39431
- });
39432
-
39433
- // Attributes
39434
- [...element.attributes].forEach(attr => {
39435
- const moduleParam = modulesParamsList.filter(mParam => attr.name.indexOf(`${mParam}-`) === 0)[0];
39436
- if (moduleParam) {
39437
- const parentObjName = attrToProp(moduleParam);
39438
- const subObjName = attrToProp(attr.name.split(`${moduleParam}-`)[1]);
39439
- if (!passedParams[parentObjName]) passedParams[parentObjName] = {};
39440
- if (passedParams[parentObjName] === true) {
39441
- passedParams[parentObjName] = {
39442
- enabled: true
39443
- };
39444
- }
39445
- passedParams[parentObjName][subObjName] = formatValue(attr.value);
39446
- } else {
39447
- const name = attrToProp(attr.name);
39448
- if (!allowedParams.includes(name)) return;
39449
- const value = formatValue(attr.value);
39450
- if (passedParams[name] && modulesParamsList.includes(attr.name)) {
39451
- if (passedParams[name].constructor !== Object) {
39452
- passedParams[name] = {};
39453
- }
39454
- passedParams[name].enabled = value;
39455
- } else {
39456
- passedParams[name] = value;
39457
- }
39458
- }
39459
- });
39460
- extend(params, passedParams);
39461
- if (params.navigation) {
39462
- params.navigation = {
39463
- prevEl: '.swiper-button-prev',
39464
- nextEl: '.swiper-button-next',
39465
- ...(params.navigation !== true ? params.navigation : {})
39466
- };
39467
- } else if (params.navigation === false) {
39468
- delete params.navigation;
39469
- }
39470
- if (params.scrollbar) {
39471
- params.scrollbar = {
39472
- el: '.swiper-scrollbar',
39473
- ...(params.scrollbar !== true ? params.scrollbar : {})
39474
- };
39475
- } else if (params.scrollbar === false) {
39476
- delete params.scrollbar;
39477
- }
39478
- if (params.pagination) {
39479
- params.pagination = {
39480
- el: '.swiper-pagination',
39481
- ...(params.pagination !== true ? params.pagination : {})
39482
- };
39483
- } else if (params.pagination === false) {
39484
- delete params.pagination;
39485
- }
39486
- return {
39487
- params,
39488
- passedParams
39489
- };
39490
- }
39491
-
39492
39578
  function updateSwiper(_ref) {
39493
39579
  let {
39494
39580
  swiper,
@@ -39564,6 +39650,9 @@
39564
39650
  updateParams.forEach(key => {
39565
39651
  if (isObject(currentParams[key]) && isObject(passedParams[key])) {
39566
39652
  extend(currentParams[key], passedParams[key]);
39653
+ if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {
39654
+ destroyModule(key);
39655
+ }
39567
39656
  } else {
39568
39657
  const newValue = passedParams[key];
39569
39658
  if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {
@@ -39596,7 +39685,7 @@
39596
39685
  if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {
39597
39686
  paginationEl = document.createElement('div');
39598
39687
  paginationEl.classList.add('swiper-pagination');
39599
- swiper.el.shadowEl.appendChild(paginationEl);
39688
+ swiper.el.appendChild(paginationEl);
39600
39689
  }
39601
39690
  if (paginationEl) currentParams.pagination.el = paginationEl;
39602
39691
  pagination.init();
@@ -39607,7 +39696,7 @@
39607
39696
  if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {
39608
39697
  scrollbarEl = document.createElement('div');
39609
39698
  scrollbarEl.classList.add('swiper-scrollbar');
39610
- swiper.el.shadowEl.appendChild(scrollbarEl);
39699
+ swiper.el.appendChild(scrollbarEl);
39611
39700
  }
39612
39701
  if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;
39613
39702
  scrollbar.init();
@@ -39619,12 +39708,14 @@
39619
39708
  if (!nextEl || typeof nextEl === 'string') {
39620
39709
  nextEl = document.createElement('div');
39621
39710
  nextEl.classList.add('swiper-button-next');
39622
- swiper.el.shadowEl.appendChild(nextEl);
39711
+ nextEl.innerHTML = swiper.hostEl.nextButtonSvg;
39712
+ swiper.el.appendChild(nextEl);
39623
39713
  }
39624
39714
  if (!prevEl || typeof prevEl === 'string') {
39625
39715
  prevEl = document.createElement('div');
39626
39716
  prevEl.classList.add('swiper-button-prev');
39627
- swiper.el.shadowEl.appendChild(prevEl);
39717
+ nextEl.innerHTML = swiper.hostEl.prevButtonSvg;
39718
+ swiper.el.appendChild(prevEl);
39628
39719
  }
39629
39720
  }
39630
39721
  if (nextEl) currentParams.navigation.nextEl = nextEl;
@@ -39650,8 +39741,108 @@
39650
39741
  swiper.update();
39651
39742
  }
39652
39743
 
39744
+ const formatValue = val => {
39745
+ if (parseFloat(val) === Number(val)) return Number(val);
39746
+ if (val === 'true') return true;
39747
+ if (val === '') return true;
39748
+ if (val === 'false') return false;
39749
+ if (val === 'null') return null;
39750
+ if (val === 'undefined') return undefined;
39751
+ if (typeof val === 'string' && val.includes('{') && val.includes('}') && val.includes('"')) {
39752
+ let v;
39753
+ try {
39754
+ v = JSON.parse(val);
39755
+ } catch (err) {
39756
+ v = val;
39757
+ }
39758
+ return v;
39759
+ }
39760
+ return val;
39761
+ };
39762
+ const modulesParamsList = ['a11y', 'autoplay', 'controller', 'cards-effect', 'coverflow-effect', 'creative-effect', 'cube-effect', 'fade-effect', 'flip-effect', 'free-mode', 'grid', 'hash-navigation', 'history', 'keyboard', 'mousewheel', 'navigation', 'pagination', 'parallax', 'scrollbar', 'thumbs', 'virtual', 'zoom'];
39763
+ function getParams(element, propName, propValue) {
39764
+ const params = {};
39765
+ const passedParams = {};
39766
+ extend(params, defaults);
39767
+ const localParamsList = [...paramsList, 'on'];
39768
+ const allowedParams = localParamsList.map(key => key.replace(/_/, ''));
39769
+
39770
+ // First check props
39771
+ localParamsList.forEach(paramName => {
39772
+ paramName = paramName.replace('_', '');
39773
+ if (typeof element[paramName] !== 'undefined') {
39774
+ passedParams[paramName] = element[paramName];
39775
+ }
39776
+ });
39777
+
39778
+ // Attributes
39779
+ const attrsList = [...element.attributes];
39780
+ if (typeof propName === 'string' && typeof propValue !== 'undefined') {
39781
+ attrsList.push({
39782
+ name: propName,
39783
+ value: propValue
39784
+ });
39785
+ }
39786
+ attrsList.forEach(attr => {
39787
+ const moduleParam = modulesParamsList.filter(mParam => attr.name.indexOf(`${mParam}-`) === 0)[0];
39788
+ if (moduleParam) {
39789
+ const parentObjName = attrToProp(moduleParam);
39790
+ const subObjName = attrToProp(attr.name.split(`${moduleParam}-`)[1]);
39791
+ if (typeof passedParams[parentObjName] === 'undefined') passedParams[parentObjName] = {};
39792
+ if (passedParams[parentObjName] === true) {
39793
+ passedParams[parentObjName] = {
39794
+ enabled: true
39795
+ };
39796
+ }
39797
+ passedParams[parentObjName][subObjName] = formatValue(attr.value);
39798
+ } else {
39799
+ const name = attrToProp(attr.name);
39800
+ if (!allowedParams.includes(name)) return;
39801
+ const value = formatValue(attr.value);
39802
+ if (passedParams[name] && modulesParamsList.includes(attr.name)) {
39803
+ if (passedParams[name].constructor !== Object) {
39804
+ passedParams[name] = {};
39805
+ }
39806
+ passedParams[name].enabled = value;
39807
+ } else {
39808
+ passedParams[name] = value;
39809
+ }
39810
+ }
39811
+ });
39812
+ extend(params, passedParams);
39813
+ if (params.navigation) {
39814
+ params.navigation = {
39815
+ prevEl: '.swiper-button-prev',
39816
+ nextEl: '.swiper-button-next',
39817
+ ...(params.navigation !== true ? params.navigation : {})
39818
+ };
39819
+ } else if (params.navigation === false) {
39820
+ delete params.navigation;
39821
+ }
39822
+ if (params.scrollbar) {
39823
+ params.scrollbar = {
39824
+ el: '.swiper-scrollbar',
39825
+ ...(params.scrollbar !== true ? params.scrollbar : {})
39826
+ };
39827
+ } else if (params.scrollbar === false) {
39828
+ delete params.scrollbar;
39829
+ }
39830
+ if (params.pagination) {
39831
+ params.pagination = {
39832
+ el: '.swiper-pagination',
39833
+ ...(params.pagination !== true ? params.pagination : {})
39834
+ };
39835
+ } else if (params.pagination === false) {
39836
+ delete params.pagination;
39837
+ }
39838
+ return {
39839
+ params,
39840
+ passedParams
39841
+ };
39842
+ }
39843
+
39653
39844
  /**
39654
- * Swiper Custom Element 9.2.0
39845
+ * Swiper Custom Element 10.0.3
39655
39846
  * Most modern mobile touch slider and framework with hardware accelerated transitions
39656
39847
  * https://swiperjs.com
39657
39848
  *
@@ -39659,42 +39850,44 @@
39659
39850
  *
39660
39851
  * Released under the MIT License
39661
39852
  *
39662
- * Released on: March 31, 2023
39853
+ * Released on: July 3, 2023
39663
39854
  */
39664
- const SwiperFontCSS = `@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');font-weight:400;font-style:normal}`;
39665
- const SwiperCSS = `:root{--swiper-theme-color:#007aff}.swiper,swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}:host(.swiper-vertical)>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight swiper-slide{height:auto}:host(.swiper-autoheight) .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}:host(.swiper-3d.swiper-css-mode) .swiper-wrapper{perspective:1200px}:host(.swiper-3d) .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d swiper-slide{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}:host(.swiper-css-mode)>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}:host(.swiper-css-mode)>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>swiper-slide{scroll-snap-align:start start}:host(.swiper-horizontal.swiper-css-mode)>.swiper-wrapper{scroll-snap-type:x mandatory}:host(.swiper-vertical.swiper-css-mode)>.swiper-wrapper{scroll-snap-type:y mandatory}:host(.swiper-centered)>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered>swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-centered.swiper-horizontal>swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}:host(.swiper-centered.swiper-horizontal)>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}:host(.swiper-centered.swiper-vertical)>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,swiper-container:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}:host(.swiper-virtual.swiper-css-mode) .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}:host(.swiper-virtual.swiper-css-mode.swiper-horizontal) .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}:host(.swiper-virtual.swiper-css-mode.swiper-vertical) .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,:host(.swiper-rtl) .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-prev:after,:host(.swiper-rtl) .swiper-button-next:after{content:'prev'}.swiper-button-next,:host(.swiper-rtl) .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,:host(.swiper-rtl) .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,:host(.swiper-horizontal.swiper-rtl) .swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}:host(.swiper-rtl) .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;-ms-touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification,swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}:host(.swiper-free-mode)>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}:host(.swiper-grid)>.swiper-wrapper{flex-wrap:wrap}:host(.swiper-grid-column)>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode swiper-slide{transition-timing-function:ease-out}.swiper-fade swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade swiper-slide swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube swiper-slide swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev,.swiper-cube swiper-slide-next+swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip swiper-slide swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}`;
39666
- let globalInjectStyles = true;
39667
- const addGlobalStyles = (preInit, swiper) => {
39668
- let globalStyles = document.querySelector('style#swiper-element-styles');
39669
- const shouldOverwrite = globalStyles && globalStyles.preInit && !preInit;
39670
- if (!preInit && swiper) {
39671
- swiper.cssLinks().forEach(url => {
39672
- const linkEl = document.createElement('link');
39673
- linkEl.rel = 'stylesheet';
39674
- linkEl.href = url;
39675
- document.head.prepend(linkEl);
39676
- });
39677
- }
39678
- if (!globalStyles || shouldOverwrite) {
39679
- globalStyles = globalStyles || document.createElement('style');
39680
- globalStyles.textContent = [SwiperFontCSS, swiper ? swiper.cssStyles() : ''].join('\n'); // eslint-disable-line
39681
- globalStyles.id = 'swiper-element-styles';
39682
- globalStyles.preInit = preInit;
39683
- document.head.prepend(globalStyles);
39684
- }
39685
- };
39855
+
39856
+ /* eslint-disable spaced-comment */
39857
+
39858
+ const SwiperCSS = `:host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;overflow:clip;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-virtual ::slotted(swiper-slide){-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:host{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;-ms-touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode ::slotted(swiper-slide){transition-timing-function:ease-out}.swiper-fade ::slotted(swiper-slide){pointer-events:none;transition-property:opacity}.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-fade ::slotted(.swiper-slide-active),.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-cube.swiper-rtl ::slotted(swiper-slide){transform-origin:100% 0}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-next),.swiper-cube ::slotted(.swiper-slide-prev){pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube ::slotted(.swiper-slide-next)+::slotted(swiper-slide){pointer-events:auto;visibility:visible}.swiper-flip{overflow:visible}.swiper-flip ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-flip ::slotted(.swiper-slide-active),.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-creative ::slotted(swiper-slide){-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards ::slotted(swiper-slide){transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}`;
39859
+ const SwiperSlideCSS = `::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-lazy-preloader){animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}`;
39686
39860
  class DummyHTMLElement {}
39687
39861
  const ClassToExtend = typeof window === 'undefined' || typeof HTMLElement === 'undefined' ? DummyHTMLElement : HTMLElement;
39862
+ const arrowSvg = `<svg width="11" height="20" viewBox="0 0 11 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.38296 20.0762C0.111788 19.805 0.111788 19.3654 0.38296 19.0942L9.19758 10.2796L0.38296 1.46497C0.111788 1.19379 0.111788 0.754138 0.38296 0.482966C0.654131 0.211794 1.09379 0.211794 1.36496 0.482966L10.4341 9.55214C10.8359 9.9539 10.8359 10.6053 10.4341 11.007L1.36496 20.0762C1.09379 20.3474 0.654131 20.3474 0.38296 20.0762Z" fill="currentColor"/></svg>
39863
+ `;
39864
+ const addStyle = (shadowRoot, styles) => {
39865
+ if (typeof CSSStyleSheet !== 'undefined' && !shadowRoot.adoptedStyleSheets) {
39866
+ const styleSheet = new CSSStyleSheet();
39867
+ styleSheet.replaceSync(styles);
39868
+ shadowRoot.adoptedStyleSheets = [styleSheet];
39869
+ } else {
39870
+ const style = document.createElement('style');
39871
+ style.rel = 'stylesheet';
39872
+ style.textContent = styles;
39873
+ shadowRoot.appendChild(style);
39874
+ }
39875
+ };
39688
39876
  class SwiperContainer extends ClassToExtend {
39689
39877
  constructor() {
39690
39878
  super();
39691
- this.tempDiv = document.createElement('div');
39692
- this.shadowEl = this.attachShadow({
39879
+ this.attachShadow({
39693
39880
  mode: 'open'
39694
39881
  });
39695
39882
  }
39883
+ static get nextButtonSvg() {
39884
+ return arrowSvg;
39885
+ }
39886
+ static get prevButtonSvg() {
39887
+ return arrowSvg.replace('/></svg>', ' transform-origin="center" transform="rotate(180)"/></svg>');
39888
+ }
39696
39889
  cssStyles() {
39697
- return [globalInjectStyles ? SwiperCSS : '',
39890
+ return [SwiperCSS,
39698
39891
  // eslint-disable-line
39699
39892
  ...(this.injectStyles && Array.isArray(this.injectStyles) ? this.injectStyles : [])].join('\n');
39700
39893
  }
@@ -39702,47 +39895,45 @@
39702
39895
  return this.injectStylesUrls || [];
39703
39896
  }
39704
39897
  render() {
39705
- if (globalInjectStyles) {
39706
- // global styles
39707
- addGlobalStyles(false, this);
39708
- }
39898
+ if (this.rendered) return;
39709
39899
 
39710
39900
  // local styles
39711
39901
  const localStyles = this.cssStyles();
39712
39902
  if (localStyles.length) {
39713
- this.stylesEl = document.createElement('style');
39714
- this.stylesEl.textContent = localStyles;
39715
- this.shadowEl.appendChild(this.stylesEl);
39903
+ addStyle(this.shadowRoot, localStyles);
39716
39904
  }
39717
39905
  this.cssLinks().forEach(url => {
39718
- const linkExists = document.querySelector(`link[href="${url}"]`);
39906
+ const linkExists = this.shadowRoot.querySelector(`link[href="${url}"]`);
39719
39907
  if (linkExists) return;
39720
39908
  const linkEl = document.createElement('link');
39721
39909
  linkEl.rel = 'stylesheet';
39722
39910
  linkEl.href = url;
39723
- this.shadowEl.appendChild(linkEl);
39911
+ this.shadowRoot.appendChild(linkEl);
39724
39912
  });
39725
39913
  // prettier-ignore
39726
- this.tempDiv.innerHTML = `
39914
+ const el = document.createElement('div');
39915
+ el.classList.add('swiper');
39916
+ el.part = 'container';
39917
+ // prettier-ignore
39918
+ el.innerHTML = `
39727
39919
  <slot name="container-start"></slot>
39728
- <div class="swiper-wrapper">
39920
+ <div class="swiper-wrapper" part="wrapper">
39729
39921
  <slot></slot>
39730
39922
  </div>
39731
39923
  <slot name="container-end"></slot>
39732
39924
  ${needsNavigation(this.passedParams) ? `
39733
- <div class="swiper-button-prev"></div>
39734
- <div class="swiper-button-next"></div>
39925
+ <div part="button-prev" class="swiper-button-prev">${this.constructor.prevButtonSvg}</div>
39926
+ <div part="button-next" class="swiper-button-next">${this.constructor.nextButtonSvg}</div>
39735
39927
  ` : ''}
39736
39928
  ${needsPagination(this.passedParams) ? `
39737
- <div class="swiper-pagination"></div>
39929
+ <div part="pagination" class="swiper-pagination"></div>
39738
39930
  ` : ''}
39739
39931
  ${needsScrollbar(this.passedParams) ? `
39740
- <div class="swiper-scrollbar"></div>
39932
+ <div part="scrollbar" class="swiper-scrollbar"></div>
39741
39933
  ` : ''}
39742
39934
  `;
39743
- [...this.tempDiv.children].forEach(el => {
39744
- this.shadowEl.appendChild(el);
39745
- });
39935
+ this.shadowRoot.appendChild(el);
39936
+ this.rendered = true;
39746
39937
  }
39747
39938
  initialize() {
39748
39939
  var _this = this;
@@ -39757,7 +39948,7 @@
39757
39948
  delete this.swiperParams.init;
39758
39949
  this.render();
39759
39950
  // eslint-disable-next-line
39760
- this.swiper = new Swiper$1(this, {
39951
+ this.swiper = new Swiper$1(this.shadowRoot.querySelector('.swiper'), {
39761
39952
  ...swiperParams,
39762
39953
  touchEventsTarget: 'container',
39763
39954
  ...(swiperParams.virtual ? {} : {
@@ -39778,23 +39969,28 @@
39778
39969
  });
39779
39970
  }
39780
39971
  connectedCallback() {
39972
+ if (this.initialized && this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) {
39973
+ return;
39974
+ }
39781
39975
  if (this.init === false || this.getAttribute('init') === 'false') {
39782
- addGlobalStyles(true, this);
39783
39976
  return;
39784
39977
  }
39785
39978
  this.initialize();
39786
39979
  }
39787
39980
  disconnectedCallback() {
39981
+ if (this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) {
39982
+ return;
39983
+ }
39788
39984
  if (this.swiper && this.swiper.destroy) {
39789
39985
  this.swiper.destroy();
39790
39986
  }
39791
39987
  this.initialized = false;
39792
39988
  }
39793
- updateSwiperOnPropChange(propName) {
39989
+ updateSwiperOnPropChange(propName, propValue) {
39794
39990
  const {
39795
39991
  params: swiperParams,
39796
39992
  passedParams
39797
- } = getParams(this);
39993
+ } = getParams(this, propName, propValue);
39798
39994
  this.passedParams = passedParams;
39799
39995
  this.swiperParams = swiperParams;
39800
39996
  updateSwiper({
@@ -39815,6 +40011,9 @@
39815
40011
  }
39816
40012
  attributeChangedCallback(attr, prevValue, newValue) {
39817
40013
  if (!this.initialized) return;
40014
+ if (prevValue === 'true' && newValue === null) {
40015
+ newValue = false;
40016
+ }
39818
40017
  this.updateSwiperOnPropChange(attr, newValue);
39819
40018
  }
39820
40019
  static get observedAttributes() {
@@ -39826,6 +40025,7 @@
39826
40025
  if (paramName === 'init') return;
39827
40026
  paramName = paramName.replace('_', '');
39828
40027
  Object.defineProperty(SwiperContainer.prototype, paramName, {
40028
+ configurable: true,
39829
40029
  get() {
39830
40030
  return (this.passedParams || {})[paramName];
39831
40031
  },
@@ -39833,24 +40033,21 @@
39833
40033
  if (!this.passedParams) this.passedParams = {};
39834
40034
  this.passedParams[paramName] = value;
39835
40035
  if (!this.initialized) return;
39836
- this.updateSwiperOnPropChange(paramName, value);
40036
+ this.updateSwiperOnPropChange(paramName);
39837
40037
  }
39838
40038
  });
39839
40039
  });
39840
40040
  class SwiperSlide extends ClassToExtend {
39841
40041
  constructor() {
39842
40042
  super();
39843
- this.tempDiv = document.createElement('div');
39844
- this.shadowEl = this.attachShadow({
40043
+ this.attachShadow({
39845
40044
  mode: 'open'
39846
40045
  });
39847
40046
  }
39848
40047
  render() {
39849
40048
  const lazy = this.lazy || this.getAttribute('lazy') === '' || this.getAttribute('lazy') === 'true';
39850
- this.tempDiv.innerHTML = `<slot />`;
39851
- [...this.tempDiv.children].forEach(el => {
39852
- this.shadowEl.appendChild(el);
39853
- });
40049
+ addStyle(this.shadowRoot, SwiperSlideCSS);
40050
+ this.shadowRoot.appendChild(document.createElement('slot'));
39854
40051
  if (lazy) {
39855
40052
  const lazyDiv = document.createElement('div');
39856
40053
  lazyDiv.classList.add('swiper-lazy-preloader');
@@ -39866,17 +40063,8 @@
39866
40063
  }
39867
40064
 
39868
40065
  // eslint-disable-next-line
39869
- const register = function (injectStyles) {
39870
- if (injectStyles === void 0) {
39871
- injectStyles = true;
39872
- }
40066
+ const register = () => {
39873
40067
  if (typeof window === 'undefined') return;
39874
- if (!injectStyles) {
39875
- globalInjectStyles = false;
39876
- }
39877
- if (globalInjectStyles) {
39878
- addGlobalStyles(true);
39879
- }
39880
40068
  if (!window.customElements.get('swiper-container')) window.customElements.define('swiper-container', SwiperContainer);
39881
40069
  if (!window.customElements.get('swiper-slide')) window.customElements.define('swiper-slide', SwiperSlide);
39882
40070
  };
@@ -40038,14 +40226,14 @@
40038
40226
  super(params, [app]);
40039
40227
  const pb = this;
40040
40228
  pb.app = app;
40041
- const defaults = extend$2({
40229
+ const defaults = extend$3({
40042
40230
  on: {}
40043
40231
  }, app.params.photoBrowser);
40044
40232
 
40045
40233
  // Extend defaults with modules params
40046
40234
  pb.useModulesParams(defaults);
40047
- pb.params = extend$2(defaults, params);
40048
- extend$2(pb, {
40235
+ pb.params = extend$3(defaults, params);
40236
+ extend$3(pb, {
40049
40237
  exposed: false,
40050
40238
  opened: false,
40051
40239
  activeIndex: pb.params.swiper.initialSlide,
@@ -40389,7 +40577,7 @@
40389
40577
  let preventThumbsSlide;
40390
40578
  let preventMainSlide;
40391
40579
  const initialSlide = pb.activeIndex;
40392
- const swiperParams = extend$2({}, pb.params.swiper, {
40580
+ const swiperParams = extend$3({}, pb.params.swiper, {
40393
40581
  initialSlide,
40394
40582
  // cssMode:
40395
40583
  // typeof pb.params.swiper.cssMode === 'undefined' && (app.device.ios || app.device.android)
@@ -40455,7 +40643,7 @@
40455
40643
  }
40456
40644
  });
40457
40645
  if (pb.params.swipeToClose && pb.params.type !== 'page') {
40458
- extend$2(swiperParams.on, {
40646
+ extend$3(swiperParams.on, {
40459
40647
  touchStart(swiper, e) {
40460
40648
  pb.onTouchStart(e);
40461
40649
  pb.emit('local::touchStart', e);
@@ -40471,7 +40659,7 @@
40471
40659
  });
40472
40660
  }
40473
40661
  if (pb.params.virtualSlides) {
40474
- extend$2(swiperParams, {
40662
+ extend$3(swiperParams, {
40475
40663
  virtual: {
40476
40664
  slides: pb.params.photos,
40477
40665
  renderSlide(photo, index) {
@@ -40486,7 +40674,7 @@
40486
40674
  }
40487
40675
  });
40488
40676
  }
40489
- const window = getWindow();
40677
+ const window = getWindow$1();
40490
40678
  pb.swiper = app.swiper ? app.swiper.create(pb.$swiperContainerEl[0], swiperParams) : new window.Swiper(pb.$swiperContainerEl[0], swiperParams);
40491
40679
  if (pb.activeIndex === 0 || pb.params.virtualSlides) {
40492
40680
  pb.onSlideChange(pb.swiper);
@@ -40831,7 +41019,7 @@
40831
41019
 
40832
41020
  let Notification$1 = class Notification extends Modal$1 {
40833
41021
  constructor(app, params) {
40834
- const extendedParams = extend$2({
41022
+ const extendedParams = extend$3({
40835
41023
  on: {}
40836
41024
  }, app.params.notification, params);
40837
41025
 
@@ -40873,7 +41061,7 @@
40873
41061
  if ($el.length === 0) {
40874
41062
  return notification.destroy();
40875
41063
  }
40876
- extend$2(notification, {
41064
+ extend$3(notification, {
40877
41065
  $el,
40878
41066
  el: $el[0],
40879
41067
  type: 'notification'
@@ -41043,7 +41231,7 @@
41043
41231
  },
41044
41232
  create() {
41045
41233
  const app = this;
41046
- app.notification = extend$2({}, ModalMethods({
41234
+ app.notification = extend$3({}, ModalMethods({
41047
41235
  app,
41048
41236
  constructor: Notification$1,
41049
41237
  defaultSelector: '.notification.modal-in'
@@ -41077,13 +41265,13 @@
41077
41265
  const ac = this;
41078
41266
  ac.app = app;
41079
41267
  const device = getDevice$1();
41080
- const defaults = extend$2({
41268
+ const defaults = extend$3({
41081
41269
  on: {}
41082
41270
  }, app.params.autocomplete);
41083
41271
 
41084
41272
  // Extend defaults with modules params
41085
41273
  ac.useModulesParams(defaults);
41086
- ac.params = extend$2(defaults, params);
41274
+ ac.params = extend$3(defaults, params);
41087
41275
  let $openerEl;
41088
41276
  if (ac.params.openerEl) {
41089
41277
  $openerEl = $(ac.params.openerEl);
@@ -41103,7 +41291,7 @@
41103
41291
  }
41104
41292
  if (!url || url === '#' || url === '') url = ac.params.url;
41105
41293
  const inputType = ac.params.multiple ? 'checkbox' : 'radio';
41106
- extend$2(ac, {
41294
+ extend$3(ac, {
41107
41295
  $openerEl,
41108
41296
  openerEl: $openerEl && $openerEl[0],
41109
41297
  $inputEl,
@@ -41933,7 +42121,7 @@
41933
42121
  },
41934
42122
  create() {
41935
42123
  const app = this;
41936
- app.autocomplete = extend$2(ConstructorMethods({
42124
+ app.autocomplete = extend$3(ConstructorMethods({
41937
42125
  defaultSelector: undefined,
41938
42126
  constructor: Autocomplete$1,
41939
42127
  app,
@@ -41961,12 +42149,12 @@
41961
42149
  super(params, [app]);
41962
42150
  const tooltip = this;
41963
42151
  const support = getSupport$1();
41964
- const defaults = extend$2({}, app.params.tooltip);
41965
- const document = getDocument();
42152
+ const defaults = extend$3({}, app.params.tooltip);
42153
+ const document = getDocument$1();
41966
42154
 
41967
42155
  // Extend defaults with modules params
41968
42156
  tooltip.useModulesParams(defaults);
41969
- tooltip.params = extend$2(defaults, params);
42157
+ tooltip.params = extend$3(defaults, params);
41970
42158
  if (typeof params.offset === 'undefined' && support.touch && tooltip.params.trigger === 'hover') {
41971
42159
  tooltip.params.offset = 10;
41972
42160
  }
@@ -41983,7 +42171,7 @@
41983
42171
  $containerEl = app.$el;
41984
42172
  }
41985
42173
  const $el = $(tooltip.render()).eq(0);
41986
- extend$2(tooltip, {
42174
+ extend$3(tooltip, {
41987
42175
  app,
41988
42176
  $targetEl,
41989
42177
  targetEl: $targetEl && $targetEl[0],
@@ -42419,11 +42607,11 @@
42419
42607
  }
42420
42608
  super(params, [app]);
42421
42609
  const self = this;
42422
- const defaults = extend$2({}, app.params.gauge);
42610
+ const defaults = extend$3({}, app.params.gauge);
42423
42611
 
42424
42612
  // Extend defaults with modules params
42425
42613
  self.useModulesParams(defaults);
42426
- self.params = extend$2(defaults, params);
42614
+ self.params = extend$3(defaults, params);
42427
42615
  const {
42428
42616
  el
42429
42617
  } = self.params;
@@ -42431,7 +42619,7 @@
42431
42619
  const $el = $(el);
42432
42620
  if ($el.length === 0) return self;
42433
42621
  if ($el[0].f7Gauge) return $el[0].f7Gauge;
42434
- extend$2(self, {
42622
+ extend$3(self, {
42435
42623
  app,
42436
42624
  $el,
42437
42625
  el: $el && $el[0]
@@ -42545,7 +42733,7 @@
42545
42733
  newParams = {};
42546
42734
  }
42547
42735
  const self = this;
42548
- const document = getDocument();
42736
+ const document = getDocument$1();
42549
42737
  const {
42550
42738
  params,
42551
42739
  $svgEl
@@ -42684,7 +42872,7 @@
42684
42872
  const self = this;
42685
42873
  const $svgEl = $(self.render()).eq(0);
42686
42874
  $svgEl.f7Gauge = self;
42687
- extend$2(self, {
42875
+ extend$3(self, {
42688
42876
  $svgEl,
42689
42877
  svgEl: $svgEl && $svgEl[0]
42690
42878
  });
@@ -42749,7 +42937,7 @@
42749
42937
  tabMounted(tabEl) {
42750
42938
  const app = this;
42751
42939
  $(tabEl).find('.gauge-init').each(el => {
42752
- app.gauge.create(extend$2({
42940
+ app.gauge.create(extend$3({
42753
42941
  el
42754
42942
  }, $(el).dataset() || {}));
42755
42943
  });
@@ -42762,7 +42950,7 @@
42762
42950
  pageInit(page) {
42763
42951
  const app = this;
42764
42952
  page.$el.find('.gauge-init').each(el => {
42765
- app.gauge.create(extend$2({
42953
+ app.gauge.create(extend$3({
42766
42954
  el
42767
42955
  }, $(el).dataset() || {}));
42768
42956
  });
@@ -42778,7 +42966,7 @@
42778
42966
  insert(vnode) {
42779
42967
  const app = this;
42780
42968
  const el = vnode.elm;
42781
- app.gauge.create(extend$2({
42969
+ app.gauge.create(extend$3({
42782
42970
  el
42783
42971
  }, $(el).dataset() || {}));
42784
42972
  },
@@ -44167,7 +44355,7 @@
44167
44355
  }
44168
44356
  super(params, [app]);
44169
44357
  const self = this;
44170
- self.params = extend$2({}, app.params.colorPicker, params);
44358
+ self.params = extend$3({}, app.params.colorPicker, params);
44171
44359
  let $containerEl;
44172
44360
  if (self.params.containerEl) {
44173
44361
  $containerEl = $(self.params.containerEl);
@@ -44181,7 +44369,7 @@
44181
44369
  if (self.params.targetEl) {
44182
44370
  $targetEl = $(self.params.targetEl);
44183
44371
  }
44184
- extend$2(self, {
44372
+ extend$3(self, {
44185
44373
  app,
44186
44374
  $containerEl,
44187
44375
  containerEl: $containerEl && $containerEl[0],
@@ -44238,7 +44426,7 @@
44238
44426
  }
44239
44427
 
44240
44428
  // Events
44241
- extend$2(self, {
44429
+ extend$3(self, {
44242
44430
  attachInputEvents() {
44243
44431
  self.$inputEl.on('click', onInputClick);
44244
44432
  if (self.params.inputReadOnly) {
@@ -44484,7 +44672,7 @@
44484
44672
  rgba,
44485
44673
  hsla
44486
44674
  };
44487
- if (!self.initialValue) self.initialValue = extend$2({}, self.value);
44675
+ if (!self.initialValue) self.initialValue = extend$3({}, self.value);
44488
44676
  self.updateValue(needChangeEvent);
44489
44677
  if (self.opened && updateModules) {
44490
44678
  self.updateModules();
@@ -44737,7 +44925,7 @@
44737
44925
  }, false);
44738
44926
  }
44739
44927
  } else if (value) {
44740
- self.initialValue = extend$2({}, value);
44928
+ self.initialValue = extend$3({}, value);
44741
44929
  self.setValue(value, false);
44742
44930
  }
44743
44931
 
@@ -45201,13 +45389,13 @@
45201
45389
  constructor(app, params) {
45202
45390
  super(params, [app]);
45203
45391
  const self = this;
45204
- const document = getDocument();
45392
+ const document = getDocument$1();
45205
45393
  const device = getDevice$1();
45206
- const defaults = extend$2({}, app.params.textEditor);
45394
+ const defaults = extend$3({}, app.params.textEditor);
45207
45395
 
45208
45396
  // Extend defaults with modules params
45209
45397
  self.useModulesParams(defaults);
45210
- self.params = extend$2(defaults, params);
45398
+ self.params = extend$3(defaults, params);
45211
45399
  const el = self.params.el;
45212
45400
  if (!el) return self;
45213
45401
  const $el = $(el);
@@ -45218,7 +45406,7 @@
45218
45406
  $el.append('<div class="text-editor-content" contenteditable></div>');
45219
45407
  $contentEl = $el.children('.text-editor-content');
45220
45408
  }
45221
- extend$2(self, {
45409
+ extend$3(self, {
45222
45410
  app,
45223
45411
  $el,
45224
45412
  el: $el[0],
@@ -45318,8 +45506,8 @@
45318
45506
  }
45319
45507
  createLink() {
45320
45508
  const self = this;
45321
- const window = getWindow();
45322
- const document = getDocument();
45509
+ const window = getWindow$1();
45510
+ const document = getDocument$1();
45323
45511
  const currentSelection = window.getSelection();
45324
45512
  const selectedNodes = [];
45325
45513
  let $selectedLinks;
@@ -45377,7 +45565,7 @@
45377
45565
  }
45378
45566
  insertImage() {
45379
45567
  const self = this;
45380
- const document = getDocument();
45568
+ const document = getDocument$1();
45381
45569
  const currentRange = self.getSelectionRange();
45382
45570
  if (!currentRange) return self;
45383
45571
  const dialog = self.app.dialog.prompt('', self.params.imageUrlText, imageUrl => {
@@ -45403,8 +45591,8 @@
45403
45591
  }
45404
45592
  onSelectionChange() {
45405
45593
  const self = this;
45406
- const window = getWindow();
45407
- const document = getDocument();
45594
+ const window = getWindow$1();
45595
+ const document = getDocument$1();
45408
45596
  if (self.params.mode === 'toolbar') return;
45409
45597
  const selection = window.getSelection();
45410
45598
  const selectionIsInContent = $(selection.anchorNode).parents(self.contentEl).length || selection.anchorNode === self.contentEl;
@@ -45434,7 +45622,7 @@
45434
45622
  }
45435
45623
  onPaste(e) {
45436
45624
  const self = this;
45437
- const document = getDocument();
45625
+ const document = getDocument$1();
45438
45626
  if (self.params.clearFormattingOnPaste && e.clipboardData && e.clipboardData.getData) {
45439
45627
  const text = e.clipboardData.getData('text/plain');
45440
45628
  e.preventDefault();
@@ -45459,8 +45647,8 @@
45459
45647
  }
45460
45648
  onBlur() {
45461
45649
  const self = this;
45462
- const window = getWindow();
45463
- const document = getDocument();
45650
+ const window = getWindow$1();
45651
+ const document = getDocument$1();
45464
45652
  if (self.params.placeholder && self.$contentEl.html() === '') {
45465
45653
  self.insertPlaceholder();
45466
45654
  }
@@ -45484,8 +45672,8 @@
45484
45672
  }
45485
45673
  onButtonClick(e) {
45486
45674
  const self = this;
45487
- const window = getWindow();
45488
- const document = getDocument();
45675
+ const window = getWindow$1();
45676
+ const document = getDocument$1();
45489
45677
  const selection = window.getSelection();
45490
45678
  const selectionIsInContent = $(selection.anchorNode).parents(self.contentEl).length || selection.anchorNode === self.contentEl;
45491
45679
  if (!selectionIsInContent) return;
@@ -45526,8 +45714,8 @@
45526
45714
 
45527
45715
  // eslint-disable-next-line
45528
45716
  getSelectionRange() {
45529
- const window = getWindow();
45530
- const document = getDocument();
45717
+ const window = getWindow$1();
45718
+ const document = getDocument$1();
45531
45719
  if (window.getSelection) {
45532
45720
  const sel = window.getSelection();
45533
45721
  if (sel.getRangeAt && sel.rangeCount) {
@@ -45541,8 +45729,8 @@
45541
45729
 
45542
45730
  // eslint-disable-next-line
45543
45731
  setSelectionRange(range) {
45544
- const window = getWindow();
45545
- const document = getDocument();
45732
+ const window = getWindow$1();
45733
+ const document = getDocument$1();
45546
45734
  if (range) {
45547
45735
  if (window.getSelection) {
45548
45736
  const sel = window.getSelection();
@@ -45705,7 +45893,7 @@
45705
45893
  },
45706
45894
  create() {
45707
45895
  const app = this;
45708
- app.textEditor = extend$2(ConstructorMethods({
45896
+ app.textEditor = extend$3(ConstructorMethods({
45709
45897
  defaultSelector: '.text-editor',
45710
45898
  constructor: TextEditor$1,
45711
45899
  app,
@@ -45720,7 +45908,7 @@
45720
45908
  const app = this;
45721
45909
  $(tabEl).find('.text-editor-init').each(editorEl => {
45722
45910
  const dataset = $(editorEl).dataset();
45723
- app.textEditor.create(extend$2({
45911
+ app.textEditor.create(extend$3({
45724
45912
  el: editorEl
45725
45913
  }, dataset || {}));
45726
45914
  });
@@ -45734,7 +45922,7 @@
45734
45922
  const app = this;
45735
45923
  page.$el.find('.text-editor-init').each(editorEl => {
45736
45924
  const dataset = $(editorEl).dataset();
45737
- app.textEditor.create(extend$2({
45925
+ app.textEditor.create(extend$3({
45738
45926
  el: editorEl
45739
45927
  }, dataset || {}));
45740
45928
  });
@@ -45751,7 +45939,7 @@
45751
45939
  const app = this;
45752
45940
  const editorEl = vnode.elm;
45753
45941
  const dataset = $(editorEl).dataset();
45754
- app.textEditor.create(extend$2({
45942
+ app.textEditor.create(extend$3({
45755
45943
  el: editorEl
45756
45944
  }, dataset || {}));
45757
45945
  },
@@ -45770,11 +45958,11 @@
45770
45958
  }
45771
45959
  super(params, [app]);
45772
45960
  const self = this;
45773
- const defaults = extend$2({}, app.params.pieChart);
45961
+ const defaults = extend$3({}, app.params.pieChart);
45774
45962
 
45775
45963
  // Extend defaults with modules params
45776
45964
  self.useModulesParams(defaults);
45777
- self.params = extend$2(defaults, params);
45965
+ self.params = extend$3(defaults, params);
45778
45966
  const {
45779
45967
  el
45780
45968
  } = self.params;
@@ -45782,7 +45970,7 @@
45782
45970
  const $el = $(el);
45783
45971
  if ($el.length === 0) return self;
45784
45972
  if ($el[0].f7PieChart) return $el[0].f7PieChart;
45785
- extend$2(self, {
45973
+ extend$3(self, {
45786
45974
  app,
45787
45975
  $el,
45788
45976
  el: $el && $el[0],
@@ -45945,7 +46133,7 @@
45945
46133
  delete self.$svgEl.f7PieChart;
45946
46134
  const $svgEl = $(self.render()).eq(0);
45947
46135
  $svgEl.f7PieChart = self;
45948
- extend$2(self, {
46136
+ extend$3(self, {
45949
46137
  $svgEl,
45950
46138
  svgEl: $svgEl && $svgEl[0]
45951
46139
  });
@@ -45982,7 +46170,7 @@
45982
46170
  const self = this;
45983
46171
  const $svgEl = $(self.render()).eq(0);
45984
46172
  $svgEl.f7PieChart = self;
45985
- extend$2(self, {
46173
+ extend$3(self, {
45986
46174
  $svgEl,
45987
46175
  svgEl: $svgEl && $svgEl[0]
45988
46176
  });
@@ -46045,11 +46233,11 @@
46045
46233
  }
46046
46234
  super(params, [app]);
46047
46235
  const self = this;
46048
- const defaults = extend$2({}, app.params.areaChart);
46236
+ const defaults = extend$3({}, app.params.areaChart);
46049
46237
 
46050
46238
  // Extend defaults with modules params
46051
46239
  self.useModulesParams(defaults);
46052
- self.params = extend$2(defaults, params);
46240
+ self.params = extend$3(defaults, params);
46053
46241
  const {
46054
46242
  el
46055
46243
  } = self.params;
@@ -46057,7 +46245,7 @@
46057
46245
  const $el = $(el);
46058
46246
  if ($el.length === 0) return self;
46059
46247
  if ($el[0].f7AreaChart) return $el[0].f7AreaChart;
46060
- extend$2(self, {
46248
+ extend$3(self, {
46061
46249
  app,
46062
46250
  $el,
46063
46251
  el: $el && $el[0],
@@ -46446,14 +46634,14 @@
46446
46634
  }
46447
46635
  const $rendered = $(self.render());
46448
46636
  const $svgEl = $rendered.find('svg');
46449
- extend$2(self, {
46637
+ extend$3(self, {
46450
46638
  svgEl: $svgEl && $svgEl[0],
46451
46639
  $svgEl
46452
46640
  });
46453
46641
  if (!onlySvg) {
46454
46642
  const $axisEl = $rendered.find('.area-chart-axis');
46455
46643
  const $legendEl = $rendered.find('.area-chart-legend');
46456
- extend$2(self, {
46644
+ extend$3(self, {
46457
46645
  $axisEl,
46458
46646
  $legendEl
46459
46647
  });
@@ -46470,7 +46658,7 @@
46470
46658
  const $svgEl = $rendered.find('svg');
46471
46659
  const $axisEl = $rendered.find('.area-chart-axis');
46472
46660
  const $legendEl = $rendered.find('.area-chart-legend');
46473
- extend$2(self, {
46661
+ extend$3(self, {
46474
46662
  svgEl: $svgEl && $svgEl[0],
46475
46663
  $svgEl,
46476
46664
  $axisEl,