framework7 7.0.0-beta.10 → 7.0.0-beta.11

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 (109) hide show
  1. package/components/actions/actions-class.js +6 -1
  2. package/components/actions/actions-rtl.css +1 -1
  3. package/components/actions/actions.css +1 -1
  4. package/components/actions/actions.d.ts +2 -0
  5. package/components/actions/actions.js +1 -0
  6. package/components/actions/actions.lazy.js +1 -1
  7. package/components/actions/actions.less +3 -0
  8. package/components/breadcrumbs/breadcrumbs-aurora.less +2 -0
  9. package/components/breadcrumbs/breadcrumbs-ios.less +2 -0
  10. package/components/breadcrumbs/breadcrumbs-md.less +2 -0
  11. package/components/breadcrumbs/breadcrumbs-rtl.css +1 -0
  12. package/components/breadcrumbs/breadcrumbs-vars.less +36 -0
  13. package/components/breadcrumbs/breadcrumbs.css +1 -0
  14. package/components/breadcrumbs/breadcrumbs.d.ts +15 -0
  15. package/components/breadcrumbs/breadcrumbs.js +13 -0
  16. package/components/breadcrumbs/breadcrumbs.lazy.js +1 -0
  17. package/components/breadcrumbs/breadcrumbs.less +100 -0
  18. package/components/calendar/calendar-class.js +206 -122
  19. package/components/calendar/calendar-rtl.css +1 -1
  20. package/components/calendar/calendar-vars.less +6 -10
  21. package/components/calendar/calendar.css +1 -1
  22. package/components/calendar/calendar.d.ts +2 -0
  23. package/components/calendar/calendar.js +1 -0
  24. package/components/calendar/calendar.lazy.js +1 -1
  25. package/components/calendar/calendar.less +20 -16
  26. package/components/list-index/list-index.d.ts +1 -1
  27. package/components/modal/modal-class.js +10 -0
  28. package/components/notification/notification.d.ts +4 -4
  29. package/components/picker/picker-class.js +6 -6
  30. package/components/picker/picker-column.js +34 -270
  31. package/components/picker/picker-rtl.css +1 -1
  32. package/components/picker/picker.css +1 -1
  33. package/components/picker/picker.d.ts +2 -13
  34. package/components/picker/picker.js +0 -5
  35. package/components/picker/picker.lazy.js +1 -1
  36. package/components/picker/picker.less +28 -10
  37. package/components/popover/popover-class.js +15 -2
  38. package/components/popover/popover-rtl.css +1 -1
  39. package/components/popover/popover.css +1 -1
  40. package/components/popover/popover.d.ts +2 -0
  41. package/components/popover/popover.js +1 -0
  42. package/components/popover/popover.lazy.js +1 -1
  43. package/components/popover/popover.less +3 -0
  44. package/components/popup/popup-class.js +6 -1
  45. package/components/popup/popup-rtl.css +1 -1
  46. package/components/popup/popup.css +1 -1
  47. package/components/popup/popup.d.ts +4 -0
  48. package/components/popup/popup.js +1 -0
  49. package/components/popup/popup.lazy.js +1 -1
  50. package/components/popup/popup.less +4 -0
  51. package/components/preloader/preloader.d.ts +4 -0
  52. package/components/progressbar/progressbar-aurora.less +32 -13
  53. package/components/progressbar/progressbar-ios.less +19 -7
  54. package/components/progressbar/progressbar-md.less +64 -28
  55. package/components/progressbar/progressbar-rtl.css +1 -1
  56. package/components/progressbar/progressbar.css +1 -1
  57. package/components/progressbar/progressbar.js +1 -1
  58. package/components/progressbar/progressbar.lazy.js +1 -1
  59. package/components/progressbar/progressbar.less +16 -4
  60. package/components/range/range.d.ts +23 -5
  61. package/components/sheet/sheet-class.js +6 -1
  62. package/components/sheet/sheet-rtl.css +1 -1
  63. package/components/sheet/sheet.css +1 -1
  64. package/components/sheet/sheet.d.ts +2 -0
  65. package/components/sheet/sheet.js +1 -0
  66. package/components/sheet/sheet.lazy.js +1 -1
  67. package/components/sheet/sheet.less +3 -0
  68. package/components/sortable/sortable.d.ts +5 -1
  69. package/components/sortable/sortable.js +15 -2
  70. package/components/sortable/sortable.lazy.js +1 -1
  71. package/components/swiper/swiper-rtl.css +1 -1
  72. package/components/swiper/swiper.css +1 -1
  73. package/components/swiper/swiper.lazy.js +1 -1
  74. package/components/tabs/tabs.js +4 -5
  75. package/components/tabs/tabs.lazy.js +1 -1
  76. package/components/toast/toast.d.ts +2 -2
  77. package/components/toolbar/toolbar-aurora.less +0 -13
  78. package/components/toolbar/toolbar-md.less +0 -13
  79. package/components/toolbar/toolbar.js +1 -1
  80. package/components/toolbar/toolbar.less +13 -0
  81. package/components/view/view.d.ts +2 -0
  82. package/components/view/view.js +1 -0
  83. package/framework7-bundle-rtl.css +249 -150
  84. package/framework7-bundle-rtl.min.css +4 -4
  85. package/framework7-bundle.css +234 -134
  86. package/framework7-bundle.esm.js +5 -4
  87. package/framework7-bundle.js +927 -713
  88. package/framework7-bundle.js.map +1 -1
  89. package/framework7-bundle.less +4 -3
  90. package/framework7-bundle.min.css +4 -4
  91. package/framework7-bundle.min.js +4 -4
  92. package/framework7-bundle.min.js.map +1 -1
  93. package/framework7-lite-bundle.esm.js +5 -4
  94. package/framework7-lite.esm.js +3 -3
  95. package/framework7-rtl.css +12 -21
  96. package/framework7-rtl.min.css +4 -4
  97. package/framework7-types.d.ts +5 -1
  98. package/framework7.css +11 -19
  99. package/framework7.d.ts +4 -0
  100. package/framework7.esm.js +3 -3
  101. package/framework7.js +38 -13
  102. package/framework7.js.map +1 -1
  103. package/framework7.less +3 -3
  104. package/framework7.min.css +4 -4
  105. package/framework7.min.js +4 -4
  106. package/framework7.min.js.map +1 -1
  107. package/modules/router/back.js +11 -1
  108. package/modules/router/tab.js +1 -1
  109. package/package.json +9 -5
@@ -1,13 +1,13 @@
1
1
  /**
2
- * Framework7 7.0.0-beta.10
2
+ * Framework7 7.0.0-beta.11
3
3
  * Full featured mobile HTML framework for building iOS & Android apps
4
4
  * https://framework7.io/
5
5
  *
6
- * Copyright 2014-2021 Vladimir Kharlampidi
6
+ * Copyright 2014-2022 Vladimir Kharlampidi
7
7
  *
8
8
  * Released under the MIT License
9
9
  *
10
- * Released on: October 28, 2021
10
+ * Released on: February 17, 2022
11
11
  */
12
12
 
13
13
  (function (global, factory) {
@@ -17,7 +17,7 @@
17
17
  }(this, (function () { 'use strict';
18
18
 
19
19
  /**
20
- * SSR Window 4.0.1
20
+ * SSR Window 4.0.2
21
21
  * Better handling for window object in SSR environment
22
22
  * https://github.com/nolimits4web/ssr-window
23
23
  *
@@ -25,7 +25,7 @@
25
25
  *
26
26
  * Licensed under MIT
27
27
  *
28
- * Released on: October 27, 2021
28
+ * Released on: December 13, 2021
29
29
  */
30
30
 
31
31
  /* eslint-disable no-param-reassign */
@@ -196,15 +196,15 @@
196
196
  }
197
197
 
198
198
  /**
199
- * Dom7 4.0.1
199
+ * Dom7 4.0.4
200
200
  * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API
201
201
  * https://framework7.io/docs/dom7.html
202
202
  *
203
- * Copyright 2021, Vladimir Kharlampidi
203
+ * Copyright 2022, Vladimir Kharlampidi
204
204
  *
205
205
  * Licensed under MIT
206
206
  *
207
- * Released on: October 27, 2021
207
+ * Released on: January 11, 2022
208
208
  */
209
209
  /* eslint-disable no-proto */
210
210
 
@@ -224,8 +224,12 @@
224
224
 
225
225
  class Dom7 extends Array {
226
226
  constructor(items) {
227
- super(...(items || []));
228
- makeReactive(this);
227
+ if (typeof items === 'number') {
228
+ super(items);
229
+ } else {
230
+ super(...(items || []));
231
+ makeReactive(this);
232
+ }
229
233
  }
230
234
 
231
235
  }
@@ -1819,7 +1823,7 @@
1819
1823
  const window = getWindow();
1820
1824
  return window.requestAnimationFrame(callback);
1821
1825
  }
1822
- function cancelAnimationFrame$1(frameId) {
1826
+ function cancelAnimationFrame(frameId) {
1823
1827
  const window = getWindow();
1824
1828
  return window.cancelAnimationFrame(frameId);
1825
1829
  }
@@ -2151,7 +2155,7 @@
2151
2155
  eventNameToColonCase: eventNameToColonCase,
2152
2156
  deleteProps: deleteProps$1,
2153
2157
  requestAnimationFrame: requestAnimationFrame$1,
2154
- cancelAnimationFrame: cancelAnimationFrame$1,
2158
+ cancelAnimationFrame: cancelAnimationFrame,
2155
2159
  nextTick: nextTick$1,
2156
2160
  nextFrame: nextFrame$1,
2157
2161
  now: now$1,
@@ -6886,7 +6890,7 @@
6886
6890
 
6887
6891
 
6888
6892
  if (router.params.browserHistory && options.browserHistory && !options.reloadPrevious) {
6889
- History$1.replace(router.view.id, {
6893
+ History$1[router.params.browserHistoryTabs](router.view.id, {
6890
6894
  url: options.route.url
6891
6895
  }, (router.params.browserHistoryRoot || '') + router.params.browserHistorySeparator + options.route.url);
6892
6896
  } // Update Router History
@@ -7352,7 +7356,7 @@
7352
7356
  const $el = $(el);
7353
7357
  const app = router.app;
7354
7358
  const view = router.view;
7355
- const options = extend$1({
7359
+ const options = extend$1(false, {
7356
7360
  animate: router.params.animate,
7357
7361
  browserHistory: true,
7358
7362
  replaceState: false
@@ -8060,6 +8064,16 @@
8060
8064
  }
8061
8065
 
8062
8066
  const previousPageRoute = $previousPage[0].f7Page.route;
8067
+
8068
+ if (navigateOptions.preload && $previousPage.hasClass('stacked')) {
8069
+ loadBack(router, {
8070
+ el: $previousPage
8071
+ }, extend$1(navigateOptions, {
8072
+ route: previousPageRoute
8073
+ }));
8074
+ return router;
8075
+ }
8076
+
8063
8077
  processRouteQueue.call(router, previousPageRoute, router.currentRoute, () => {
8064
8078
  loadBack(router, {
8065
8079
  el: $previousPage
@@ -12682,6 +12696,7 @@
12682
12696
  browserHistoryOnLoad: true,
12683
12697
  browserHistoryInitialMatch: false,
12684
12698
  browserHistoryStoreHistory: true,
12699
+ browserHistoryTabs: 'replace',
12685
12700
  // Animate Pages
12686
12701
  animate: true,
12687
12702
  // iOS Dynamic Navbar
@@ -13596,8 +13611,8 @@
13596
13611
  const Toolbar = {
13597
13612
  setHighlight(tabbarEl) {
13598
13613
  const app = this;
13599
- if (app.theme === 'ios') return;
13600
13614
  const $tabbarEl = $(tabbarEl);
13615
+ if (app.theme === 'ios' && !$tabbarEl.hasClass('tabbar-highlight')) return;
13601
13616
  if ($tabbarEl.length === 0 || !($tabbarEl.hasClass('tabbar') || $tabbarEl.hasClass('tabbar-labels'))) return;
13602
13617
  let $highlightEl = $tabbarEl.find('.tab-link-highlight');
13603
13618
  const tabLinksCount = $tabbarEl.find('.tab-link').length;
@@ -14013,6 +14028,11 @@
14013
14028
  if (!modal.type || !modal.$el) return;
14014
14029
  modal.$el.removeClass('modal-out');
14015
14030
  modal.$el.hide();
14031
+
14032
+ if (modal.params.backdrop && (modal.params.backdropUnique || modal.forceBackdropUnique) && modal.$backdropEl) {
14033
+ modal.$backdropEl.remove();
14034
+ }
14035
+
14016
14036
  modal.$el.trigger(`modal:closed ${modal.type.toLowerCase()}:closed`);
14017
14037
  modal.emit(`local::closed modalClosed ${modal.type}Closed`, modal);
14018
14038
  }
@@ -14070,8 +14090,13 @@
14070
14090
 
14071
14091
 
14072
14092
  $el.show();
14093
+
14094
+ if (modal.params.backdrop && (modal.params.backdropUnique || modal.forceBackdropUnique) && modal.$backdropEl) {
14095
+ modal.$backdropEl.insertBefore($el);
14096
+ }
14073
14097
  /* eslint no-underscore-dangle: ["error", { "allow": ["_clientLeft"] }] */
14074
14098
 
14099
+
14075
14100
  modal._clientLeft = $el[0].clientLeft; // Modal
14076
14101
 
14077
14102
  function transitionEnd() {
@@ -14828,7 +14853,12 @@
14828
14853
  if (popup.params.backdrop && popup.params.backdropEl) {
14829
14854
  $backdropEl = $(popup.params.backdropEl);
14830
14855
  } else if (popup.params.backdrop) {
14831
- $backdropEl = popup.$containerEl.children('.popup-backdrop');
14856
+ if (popup.params.backdropUnique) {
14857
+ $backdropEl = $('<div class="popup-backdrop popup-backdrop-unique"></div>');
14858
+ popup.$containerEl.append($backdropEl);
14859
+ } else {
14860
+ $backdropEl = popup.$containerEl.children('.popup-backdrop');
14861
+ }
14832
14862
 
14833
14863
  if ($backdropEl.length === 0) {
14834
14864
  $backdropEl = $('<div class="popup-backdrop"></div>');
@@ -15179,6 +15209,7 @@
15179
15209
  popup: {
15180
15210
  backdrop: true,
15181
15211
  backdropEl: undefined,
15212
+ backdropUnique: false,
15182
15213
  closeByBackdropClick: true,
15183
15214
  closeOnEscape: false,
15184
15215
  swipeToClose: false,
@@ -15312,11 +15343,18 @@
15312
15343
 
15313
15344
 
15314
15345
  let $backdropEl;
15346
+ const forceBackdropUnique = popover.params.backdrop && app.$el.find('.popover.modal-in').filter(anotherPopoverEl => anotherPopoverEl !== $el[0]).length > 0;
15315
15347
 
15316
15348
  if (popover.params.backdrop && popover.params.backdropEl) {
15317
15349
  $backdropEl = $(popover.params.backdropEl);
15318
15350
  } else if (popover.params.backdrop) {
15319
- $backdropEl = popover.$containerEl.children('.popover-backdrop');
15351
+ if (popover.params.backdropUnique || forceBackdropUnique) {
15352
+ $backdropEl = $('<div class="popover-backdrop popover-backdrop-unique"></div>');
15353
+ $backdropEl[0].f7PopoverRef = popover;
15354
+ popover.$containerEl.append($backdropEl);
15355
+ } else {
15356
+ $backdropEl = popover.$containerEl.children('.popover-backdrop');
15357
+ }
15320
15358
 
15321
15359
  if ($backdropEl.length === 0) {
15322
15360
  $backdropEl = $('<div class="popover-backdrop"></div>');
@@ -15347,6 +15385,7 @@
15347
15385
  $backdropEl,
15348
15386
  backdropEl: $backdropEl && $backdropEl[0],
15349
15387
  type: 'popover',
15388
+ forceBackdropUnique,
15350
15389
 
15351
15390
  open(...args) {
15352
15391
  let [targetEl, animate] = args;
@@ -15391,7 +15430,12 @@
15391
15430
  if (popover.params.closeByBackdropClick && popover.params.backdrop && popover.backdropEl && popover.backdropEl === target && touchStartTarget === target) {
15392
15431
  popover.close();
15393
15432
  } else if (popover.params.closeByOutsideClick && touchStartTarget === target) {
15394
- popover.close();
15433
+ const isAnotherPopoverBackdrop = $target.hasClass('popover-backdrop-unique') && target.f7PopoverRef !== popover || $target.hasClass('popover-backdrop') && target !== popover.backdropEl;
15434
+ const isAnotherPopoverTarget = target.closest('.popover') && target.closest('.popover') !== popover.$el[0];
15435
+
15436
+ if (!isAnotherPopoverBackdrop && !isAnotherPopoverTarget) {
15437
+ popover.close();
15438
+ }
15395
15439
  }
15396
15440
  }
15397
15441
  }
@@ -15605,6 +15649,7 @@
15605
15649
  popover: {
15606
15650
  backdrop: true,
15607
15651
  backdropEl: undefined,
15652
+ backdropUnique: false,
15608
15653
  closeByBackdropClick: true,
15609
15654
  closeByOutsideClick: true,
15610
15655
  closeOnEscape: false,
@@ -15724,7 +15769,12 @@
15724
15769
  if (actions.params.backdrop && actions.params.backdropEl) {
15725
15770
  $backdropEl = $(actions.params.backdropEl);
15726
15771
  } else if (actions.params.backdrop) {
15727
- $backdropEl = actions.$containerEl.children('.actions-backdrop');
15772
+ if (actions.params.backdropUnique) {
15773
+ $backdropEl = $('<div class="popup-backdrop popup-backdrop-unique"></div>');
15774
+ actions.$containerEl.append($backdropEl);
15775
+ } else {
15776
+ $backdropEl = actions.$containerEl.children('.actions-backdrop');
15777
+ }
15728
15778
 
15729
15779
  if ($backdropEl.length === 0) {
15730
15780
  $backdropEl = $('<div class="actions-backdrop"></div>');
@@ -16036,6 +16086,7 @@
16036
16086
  forceToPopover: false,
16037
16087
  backdrop: true,
16038
16088
  backdropEl: undefined,
16089
+ backdropUnique: false,
16039
16090
  cssClass: null,
16040
16091
  closeByBackdropClick: true,
16041
16092
  closeOnEscape: false,
@@ -16109,7 +16160,12 @@
16109
16160
  if (sheet.params.backdrop && sheet.params.backdropEl) {
16110
16161
  $backdropEl = $(sheet.params.backdropEl);
16111
16162
  } else if (sheet.params.backdrop) {
16112
- $backdropEl = sheet.$containerEl.children('.sheet-backdrop');
16163
+ if (sheet.params.backdropUnique) {
16164
+ $backdropEl = $('<div class="sheet-backdrop sheet-backdrop-unique"></div>');
16165
+ sheet.$containerEl.append($backdropEl);
16166
+ } else {
16167
+ $backdropEl = sheet.$containerEl.children('.sheet-backdrop');
16168
+ }
16113
16169
 
16114
16170
  if ($backdropEl.length === 0) {
16115
16171
  $backdropEl = $('<div class="sheet-backdrop"></div>');
@@ -16629,6 +16685,7 @@
16629
16685
  push: false,
16630
16686
  backdrop: undefined,
16631
16687
  backdropEl: undefined,
16688
+ backdropUnique: false,
16632
16689
  closeByBackdropClick: true,
16633
16690
  closeByOutsideClick: false,
16634
16691
  closeOnEscape: false,
@@ -16987,7 +17044,7 @@
16987
17044
  $progressbarEl.append($progressbarLine);
16988
17045
  }
16989
17046
 
16990
- $progressbarLine.transition(typeof duration !== 'undefined' ? duration : '').transform(`translate3d(${-100 + progressNormalized}%,0,0)`);
17047
+ $progressbarLine.transition(typeof duration !== 'undefined' ? duration : '').transform(`translate3d(${(-100 + progressNormalized) * (app.rtl ? -1 : 1)}%,0,0)`);
16991
17048
  return $progressbarEl[0];
16992
17049
  },
16993
17050
 
@@ -17233,18 +17290,31 @@
17233
17290
  const currentElOffset = $currentEl[0].offsetTop;
17234
17291
  const currentElHeight = $currentEl.height();
17235
17292
  const sortingElOffset = sortingElOffsetLocal + translate;
17293
+ let currentTranslate;
17294
+ const prevTranslate = $currentEl[0].f7Translate;
17236
17295
 
17237
17296
  if (sortingElOffset >= currentElOffset - currentElHeight / 2 && $sortingEl.index() < $currentEl.index()) {
17238
- $currentEl.transform(`translate3d(0, ${-sortingElHeight}px,0)`);
17297
+ currentTranslate = -sortingElHeight;
17298
+ $currentEl.transform(`translate3d(0, ${currentTranslate}px,0)`);
17239
17299
  $insertAfterEl = $currentEl;
17240
17300
  $insertBeforeEl = undefined;
17241
17301
  } else if (sortingElOffset <= currentElOffset + currentElHeight / 2 && $sortingEl.index() > $currentEl.index()) {
17242
- $currentEl.transform(`translate3d(0, ${sortingElHeight}px,0)`);
17302
+ currentTranslate = sortingElHeight;
17303
+ $currentEl[0].f7Translate = currentTranslate;
17304
+ $currentEl.transform(`translate3d(0, ${currentTranslate}px,0)`);
17243
17305
  $insertAfterEl = undefined;
17244
17306
  if (!$insertBeforeEl) $insertBeforeEl = $currentEl;
17245
17307
  } else {
17308
+ currentTranslate = undefined;
17246
17309
  $currentEl.transform('translate3d(0, 0%,0)');
17247
17310
  }
17311
+
17312
+ if (prevTranslate !== currentTranslate) {
17313
+ $currentEl.trigger('sortable:move');
17314
+ app.emit('sortableMove', $currentEl[0], $sortableContainer[0]);
17315
+ }
17316
+
17317
+ $currentEl[0].f7Translate = currentTranslate;
17248
17318
  });
17249
17319
  }
17250
17320
 
@@ -19437,12 +19507,11 @@
19437
19507
  if ($tabLinkEl && $tabLinkEl.length > 0) {
19438
19508
  $tabLinkEl.addClass('tab-link-active'); // Material Highlight
19439
19509
 
19440
- if (app.theme !== 'ios' && app.toolbar) {
19441
- const $tabbarEl = $tabLinkEl.parents('.tabbar, .tabbar-labels');
19510
+ const $tabbarEl = $tabLinkEl.parents('.tabbar, .tabbar-labels');
19511
+ const hasHighlight = app.toolbar && $tabbarEl.length > 0 && ($tabbarEl.hasClass('tabbar-highlight') || app.theme !== 'ios');
19442
19512
 
19443
- if ($tabbarEl.length > 0) {
19444
- app.toolbar.setHighlight($tabbarEl);
19445
- }
19513
+ if (hasHighlight) {
19514
+ app.toolbar.setHighlight($tabbarEl);
19446
19515
  }
19447
19516
  }
19448
19517
  }
@@ -25079,17 +25148,34 @@
25079
25148
  allowTouchMove: true,
25080
25149
  hasTimePicker: calendar.params.timePicker && !calendar.params.rangePicker && !calendar.params.multiple
25081
25150
  });
25082
- calendar.dayFormatter = new Intl.DateTimeFormat(calendar.params.locale, {
25083
- day: 'numeric'
25084
- });
25085
- calendar.monthFormatter = new Intl.DateTimeFormat(calendar.params.locale, {
25086
- month: 'long'
25087
- });
25088
- calendar.yearFormatter = new Intl.DateTimeFormat(calendar.params.locale, {
25089
- year: 'numeric'
25090
- });
25091
- calendar.timeSelectorFormatter = new Intl.DateTimeFormat(calendar.params.locale, calendar.params.timePickerFormat);
25092
- const timeFormatCheckDate = calendar.timeSelectorFormatter.format(new Date()).toLowerCase();
25151
+
25152
+ calendar.dayFormatter = date => {
25153
+ const formatter = new Intl.DateTimeFormat(calendar.params.locale, {
25154
+ day: 'numeric'
25155
+ });
25156
+ return formatter.format(date).replace(/日/, '');
25157
+ };
25158
+
25159
+ calendar.monthFormatter = date => {
25160
+ const formatter = new Intl.DateTimeFormat(calendar.params.locale, {
25161
+ month: 'long'
25162
+ });
25163
+ return formatter.format(date);
25164
+ };
25165
+
25166
+ calendar.yearFormatter = date => {
25167
+ const formatter = new Intl.DateTimeFormat(calendar.params.locale, {
25168
+ year: 'numeric'
25169
+ });
25170
+ return formatter.format(date);
25171
+ };
25172
+
25173
+ calendar.timeSelectorFormatter = date => {
25174
+ const formatter = new Intl.DateTimeFormat(calendar.params.locale, calendar.params.timePickerFormat);
25175
+ return formatter.format(date);
25176
+ };
25177
+
25178
+ const timeFormatCheckDate = calendar.timeSelectorFormatter(new Date()).toLowerCase();
25093
25179
  calendar.is12HoursFormat = timeFormatCheckDate.indexOf('pm') >= 0 || timeFormatCheckDate.indexOf('am') >= 0; // Auto names
25094
25180
 
25095
25181
  let {
@@ -25137,6 +25223,7 @@
25137
25223
  if (calendar.isPopover()) return;
25138
25224
  if (!calendar.opened || calendar.closing) return;
25139
25225
  if ($targetEl.closest('[class*="backdrop"]').length) return;
25226
+ if (calendar.monthPickerPopover || calendar.yearPickerPopover || calendar.timePickerPopover) return;
25140
25227
 
25141
25228
  if ($inputEl && $inputEl.length > 0) {
25142
25229
  if ($targetEl[0] !== $inputEl[0] && $targetEl.closest('.sheet-modal, .calendar-modal').length === 0) {
@@ -25351,61 +25438,17 @@
25351
25438
  }
25352
25439
 
25353
25440
  function onMonthSelectorClick() {
25354
- $el.append(calendar.renderMonthPicker());
25355
- }
25356
-
25357
- function onMonthSelectorItemClick() {
25358
- const $clickedEl = $(this);
25359
-
25360
- if ($clickedEl.hasClass('calendar-month-picker-item-current')) {
25361
- $el.find('.calendar-month-picker').remove();
25362
- return;
25363
- }
25364
-
25365
- $el.find('.calendar-month-picker-item-current').add($clickedEl).toggleClass('calendar-month-picker-item-current');
25366
- const index = $clickedEl.index();
25367
- const localeMonthIndex = parseInt(calendar.$el.find('.calendar-month-current').attr('data-locale-month'), 10);
25368
- const monthIndex = calendar.currentMonth;
25369
- const diff = localeMonthIndex - monthIndex;
25370
- const diffIndex = index - diff;
25371
- calendar.setYearMonth(calendar.currentYear, diffIndex, 0);
25372
- setTimeout(() => {
25373
- $el.find('.calendar-month-picker').remove();
25374
- }, 200);
25441
+ calendar.openMonthPicker();
25375
25442
  }
25376
25443
 
25377
25444
  function onYearSelectorClick() {
25378
- $el.append(calendar.renderYearPicker());
25379
- const $currentEl = $el.find('.calendar-year-picker-item-current');
25380
- const $yearPickerEl = $el.find('.calendar-year-picker');
25381
- if (!$currentEl || !$currentEl.length) return;
25382
- $yearPickerEl.scrollTop($currentEl[0].offsetTop - $yearPickerEl[0].offsetHeight / 2 + $currentEl[0].offsetHeight / 2);
25383
- }
25384
-
25385
- function onYearSelectorItemClick() {
25386
- const $clickedEl = $(this);
25387
-
25388
- if ($clickedEl.hasClass('calendar-year-picker-item-current')) {
25389
- $el.find('.calendar-year-picker').remove();
25390
- return;
25391
- }
25392
-
25393
- $el.find('.calendar-year-picker-item-current').add($clickedEl).toggleClass('calendar-year-picker-item-current');
25394
- const year = parseInt($clickedEl.attr('data-year'), 10);
25395
- calendar.setYearMonth(year, undefined, 0);
25396
- setTimeout(() => {
25397
- $el.find('.calendar-year-picker').remove();
25398
- }, 200);
25445
+ calendar.openYearPicker();
25399
25446
  }
25400
25447
 
25401
25448
  function onTimeSelectorClick() {
25402
25449
  calendar.openTimePicker();
25403
25450
  }
25404
25451
 
25405
- function onTimePickerCloseClick() {
25406
- calendar.closeTimePicker();
25407
- }
25408
-
25409
25452
  const passiveListener = app.touchEvents.start === 'touchstart' && getSupport$1().passiveListener ? {
25410
25453
  passive: true,
25411
25454
  capture: false
@@ -25418,17 +25461,14 @@
25418
25461
 
25419
25462
  if (calendar.params.monthPicker) {
25420
25463
  $el.find('.current-month-value').on('click', onMonthSelectorClick);
25421
- $el.on('click', '.calendar-month-picker-item', onMonthSelectorItemClick);
25422
25464
  }
25423
25465
 
25424
25466
  if (calendar.params.yearPicker) {
25425
25467
  $el.find('.current-year-value').on('click', onYearSelectorClick);
25426
- $el.on('click', '.calendar-year-picker-item', onYearSelectorItemClick);
25427
25468
  }
25428
25469
 
25429
25470
  if (calendar.hasTimePicker) {
25430
25471
  $el.find('.calendar-time-selector a').on('click', onTimeSelectorClick);
25431
- $el.on('click', '.calendar-time-picker-close', onTimePickerCloseClick);
25432
25472
  } // Day clicks
25433
25473
 
25434
25474
 
@@ -25448,17 +25488,14 @@
25448
25488
 
25449
25489
  if (calendar.params.monthPicker) {
25450
25490
  $el.find('.current-month-value').off('click', onMonthSelectorClick);
25451
- $el.off('click', '.calendar-month-picker-item', onMonthSelectorItemClick);
25452
25491
  }
25453
25492
 
25454
25493
  if (calendar.params.yearPicker) {
25455
25494
  $el.find('.current-year-value').off('click', onYearSelectorClick);
25456
- $el.off('click', '.calendar-year-picker-item', onYearSelectorItemClick);
25457
25495
  }
25458
25496
 
25459
25497
  if (calendar.hasTimePicker) {
25460
25498
  $el.find('.calendar-time-selector a').off('click', onTimeSelectorClick);
25461
- $el.off('click', '.calendar-time-picker-close', onTimePickerCloseClick);
25462
25499
  }
25463
25500
 
25464
25501
  $wrapperEl.off('click', handleDayClick);
@@ -25518,7 +25555,7 @@
25518
25555
 
25519
25556
  for (let i = 0; i < 24; i += 1) {
25520
25557
  const date = new Date().setMonth(i, 1);
25521
- const currentYear = calendar.yearFormatter.format(date);
25558
+ const currentYear = calendar.yearFormatter(date);
25522
25559
 
25523
25560
  if (year && currentYear !== year) {
25524
25561
  if (yearStarted) yearEnded = true;
@@ -25818,7 +25855,7 @@
25818
25855
  }
25819
25856
 
25820
25857
  if ($el && $el.length > 0 && calendar.hasTimePicker) {
25821
- $el.find('.calendar-time-selector a').text(value && value.length ? calendar.timeSelectorFormatter.format(value[0]) : calendar.params.timePickerPlaceholder);
25858
+ $el.find('.calendar-time-selector a').text(value && value.length ? calendar.timeSelectorFormatter(value[0]) : calendar.params.timePickerPlaceholder);
25822
25859
  }
25823
25860
 
25824
25861
  if ($inputEl && $inputEl.length || params.header) {
@@ -26265,9 +26302,9 @@
26265
26302
  let date = new Date(d);
26266
26303
  let year = date.getFullYear();
26267
26304
  let month = date.getMonth();
26268
- let localeMonth = calendar.monthNames.indexOf(calendar.monthFormatter.format(date));
26305
+ let localeMonth = calendar.monthNames.indexOf(calendar.monthFormatter(date));
26269
26306
  if (localeMonth < 0) localeMonth = month;
26270
- let localeYear = calendar.yearFormatter.format(date);
26307
+ let localeYear = calendar.yearFormatter(date);
26271
26308
 
26272
26309
  if (offset === 'next') {
26273
26310
  if (month === 11) date = new Date(year + 1, 0);else date = new Date(year, month + 1, 1);
@@ -26280,9 +26317,9 @@
26280
26317
  if (offset === 'next' || offset === 'prev') {
26281
26318
  month = date.getMonth();
26282
26319
  year = date.getFullYear();
26283
- localeMonth = calendar.monthNames.indexOf(calendar.monthFormatter.format(date));
26320
+ localeMonth = calendar.monthNames.indexOf(calendar.monthFormatter(date));
26284
26321
  if (localeMonth < 0) localeMonth = month;
26285
- localeYear = calendar.yearFormatter.format(date);
26322
+ localeYear = calendar.yearFormatter(date);
26286
26323
  }
26287
26324
 
26288
26325
  const currentValues = [];
@@ -26435,7 +26472,7 @@
26435
26472
  dayDate = new Date(dayDate);
26436
26473
  const dayYear = dayDate.getFullYear();
26437
26474
  const dayMonth = dayDate.getMonth();
26438
- const dayNumberDisplay = calendar.dayFormatter.format(dayDate); // prettier-ignore
26475
+ const dayNumberDisplay = calendar.dayFormatter(dayDate); // prettier-ignore
26439
26476
 
26440
26477
  rowHtml += `
26441
26478
  <div data-year="${dayYear}" data-month="${dayMonth}" data-day="${dayNumber}" class="calendar-day${addClass}" data-date="${dayYear}-${dayMonth}-${dayNumber}">
@@ -26497,16 +26534,6 @@
26497
26534
  })));
26498
26535
  }
26499
26536
 
26500
- renderMonthPicker() {
26501
- const calendar = this;
26502
- const localeMonth = parseInt(calendar.$el.find('.calendar-month-current').attr('data-locale-month'), 10);
26503
- return $jsx("div", {
26504
- class: "calendar-month-picker"
26505
- }, calendar.monthNames.map((m, index) => $jsx("div", {
26506
- class: `calendar-month-picker-item ${localeMonth === index ? 'calendar-month-picker-item-current' : ''}`
26507
- }, $jsx("span", null, m))));
26508
- }
26509
-
26510
26537
  renderYearSelector() {
26511
26538
  const calendar = this;
26512
26539
 
@@ -26529,35 +26556,6 @@
26529
26556
  }, $jsx("i", {
26530
26557
  class: "icon icon-next"
26531
26558
  })));
26532
- }
26533
-
26534
- renderYearPicker() {
26535
- const calendar = this;
26536
- const currentYear = calendar.currentYear;
26537
- let yearMin = calendar.params.yearPickerMin || new Date().getFullYear() - 100;
26538
-
26539
- if (calendar.params.minDate) {
26540
- yearMin = Math.max(yearMin, new Date(calendar.params.minDate).getFullYear());
26541
- }
26542
-
26543
- let yearMax = calendar.params.yearPickerMax || new Date().getFullYear() + 100;
26544
-
26545
- if (calendar.params.maxDate) {
26546
- yearMax = Math.min(yearMax, new Date(calendar.params.maxDate).getFullYear());
26547
- }
26548
-
26549
- const years = [];
26550
-
26551
- for (let i = yearMin; i <= yearMax; i += 1) {
26552
- years.push(i);
26553
- }
26554
-
26555
- return $jsx("div", {
26556
- class: "calendar-year-picker"
26557
- }, years.map(year => $jsx("div", {
26558
- "data-year": year,
26559
- class: `calendar-year-picker-item ${year === currentYear ? 'calendar-year-picker-item-current' : ''}`
26560
- }, $jsx("span", null, calendar.yearFormatter.format(new Date().setFullYear(year))))));
26561
26559
  } // eslint-disable-next-line
26562
26560
 
26563
26561
 
@@ -26565,10 +26563,10 @@
26565
26563
  const calendar = this;
26566
26564
  const value = calendar.value && calendar.value[0];
26567
26565
  let timeString;
26568
- if (value) timeString = calendar.timeSelectorFormatter.format(value);
26566
+ if (value) timeString = calendar.timeSelectorFormatter(value);
26569
26567
  return $jsx("div", {
26570
26568
  class: "calendar-time-selector"
26571
- }, $jsx("a", {
26569
+ }, $jsx("span", null, calendar.params.timePickerLabel), $jsx("a", {
26572
26570
  class: "link"
26573
26571
  }, timeString || calendar.params.timePickerPlaceholder));
26574
26572
  }
@@ -26728,6 +26726,142 @@
26728
26726
  return calendar.renderInline();
26729
26727
  }
26730
26728
 
26729
+ openMonthPicker() {
26730
+ const calendar = this;
26731
+ const {
26732
+ $el,
26733
+ app
26734
+ } = calendar;
26735
+ if (!$el || !$el.length) return;
26736
+ $el.append('<div class="popover calendar-popover calendar-month-picker-popover"><div class="popover-inner"><div class="calendar-month-picker"></div></div></div>');
26737
+ calendar.monthPickerPopover = app.popover.create({
26738
+ el: $el.find('.calendar-month-picker-popover'),
26739
+ targetEl: $el.find('.calendar-month-selector'),
26740
+ backdrop: true,
26741
+ backdropUnique: true,
26742
+ on: {
26743
+ close() {
26744
+ calendar.closeMonthPicker();
26745
+ },
26746
+
26747
+ closed() {
26748
+ if (calendar.monthPickerPopover.$el) calendar.monthPickerPopover.$el.remove();
26749
+ calendar.monthPickerPopover.destroy();
26750
+
26751
+ if (calendar.monthPickerInstance) {
26752
+ calendar.monthPickerInstance.close();
26753
+ calendar.monthPickerInstance.destroy();
26754
+ }
26755
+
26756
+ delete calendar.monthPickerInstance;
26757
+ delete calendar.monthPickerPopover;
26758
+ }
26759
+
26760
+ }
26761
+ });
26762
+ calendar.monthPickerPopover.open();
26763
+ const localeMonth = parseInt(calendar.$el.find('.calendar-month-current').attr('data-locale-month'), 10);
26764
+ const values = [];
26765
+ const displayValues = [];
26766
+ calendar.monthNames.forEach((m, index) => {
26767
+ values.push(index);
26768
+ displayValues.push(m);
26769
+ });
26770
+ calendar.monthPickerInstance = app.picker.create({
26771
+ containerEl: calendar.monthPickerPopover.$el.find('.calendar-month-picker'),
26772
+ value: [localeMonth],
26773
+ toolbar: false,
26774
+ rotateEffect: false,
26775
+ toolbarCloseText: calendar.params.toolbarCloseText,
26776
+ cols: [{
26777
+ values,
26778
+ displayValues
26779
+ }]
26780
+ });
26781
+ }
26782
+
26783
+ closeMonthPicker() {
26784
+ const calendar = this;
26785
+ if (calendar.monthPickerPopover && calendar.monthPickerPopover.opened) calendar.monthPickerPopover.close();
26786
+ const index = calendar.monthPickerInstance.value[0];
26787
+ const localeMonthIndex = parseInt(calendar.$el.find('.calendar-month-current').attr('data-locale-month'), 10);
26788
+ const monthIndex = calendar.currentMonth;
26789
+ const diff = localeMonthIndex - monthIndex;
26790
+ const diffIndex = index - diff;
26791
+ calendar.setYearMonth(calendar.currentYear, diffIndex, 0);
26792
+ }
26793
+
26794
+ openYearPicker() {
26795
+ const calendar = this;
26796
+ const {
26797
+ $el,
26798
+ app
26799
+ } = calendar;
26800
+ if (!$el || !$el.length) return;
26801
+ $el.append('<div class="popover calendar-popover calendar-year-picker-popover"><div class="popover-inner"><div class="calendar-year-picker"></div></div></div>');
26802
+ calendar.yearPickerPopover = app.popover.create({
26803
+ el: $el.find('.calendar-year-picker-popover'),
26804
+ targetEl: $el.find('.calendar-year-selector'),
26805
+ backdrop: true,
26806
+ backdropUnique: true,
26807
+ on: {
26808
+ close() {
26809
+ calendar.closeYearPicker();
26810
+ },
26811
+
26812
+ closed() {
26813
+ if (calendar.yearPickerPopover.$el) calendar.yearPickerPopover.$el.remove();
26814
+ calendar.yearPickerPopover.destroy();
26815
+
26816
+ if (calendar.yearPickerInstance) {
26817
+ calendar.yearPickerInstance.close();
26818
+ calendar.yearPickerInstance.destroy();
26819
+ }
26820
+
26821
+ delete calendar.yearPickerInstance;
26822
+ delete calendar.yearPickerPopover;
26823
+ }
26824
+
26825
+ }
26826
+ });
26827
+ calendar.yearPickerPopover.open();
26828
+ const currentYear = calendar.currentYear;
26829
+ let yearMin = calendar.params.yearPickerMin || new Date().getFullYear() - 100;
26830
+
26831
+ if (calendar.params.minDate) {
26832
+ yearMin = Math.max(yearMin, new Date(calendar.params.minDate).getFullYear());
26833
+ }
26834
+
26835
+ let yearMax = calendar.params.yearPickerMax || new Date().getFullYear() + 100;
26836
+
26837
+ if (calendar.params.maxDate) {
26838
+ yearMax = Math.min(yearMax, new Date(calendar.params.maxDate).getFullYear());
26839
+ }
26840
+
26841
+ const years = [];
26842
+
26843
+ for (let i = yearMin; i <= yearMax; i += 1) {
26844
+ years.push(i);
26845
+ }
26846
+
26847
+ calendar.yearPickerInstance = app.picker.create({
26848
+ containerEl: calendar.yearPickerPopover.$el.find('.calendar-year-picker'),
26849
+ value: [currentYear],
26850
+ toolbar: false,
26851
+ rotateEffect: false,
26852
+ toolbarCloseText: calendar.params.toolbarCloseText,
26853
+ cols: [{
26854
+ values: years
26855
+ }]
26856
+ });
26857
+ }
26858
+
26859
+ closeYearPicker() {
26860
+ const calendar = this;
26861
+ if (calendar.yearPickerPopover && calendar.yearPickerPopover.opened) calendar.yearPickerPopover.close();
26862
+ calendar.setYearMonth(calendar.yearPickerInstance.value[0], undefined, 0);
26863
+ }
26864
+
26731
26865
  openTimePicker() {
26732
26866
  const calendar = this;
26733
26867
  const {
@@ -26736,7 +26870,7 @@
26736
26870
  is12HoursFormat
26737
26871
  } = calendar;
26738
26872
  if (!$el || !$el.length) return;
26739
- $el.append('<div class="calendar-time-picker"></div>');
26873
+ $el.append('<div class="popover calendar-popover calendar-time-picker-popover"><div class="popover-inner"><div class="calendar-time-picker"></div></div></div>');
26740
26874
  const hoursArr = [];
26741
26875
  const minutesArr = [];
26742
26876
  const hoursMin = is12HoursFormat ? 1 : 0;
@@ -26764,10 +26898,36 @@
26764
26898
  if (value[0] === 0) value[0] = 12;
26765
26899
  }
26766
26900
 
26901
+ calendar.timePickerPopover = app.popover.create({
26902
+ el: $el.find('.calendar-time-picker-popover'),
26903
+ targetEl: $el.find('.calendar-time-selector .link'),
26904
+ backdrop: true,
26905
+ backdropUnique: true,
26906
+ on: {
26907
+ close() {
26908
+ calendar.closeTimePicker();
26909
+ },
26910
+
26911
+ closed() {
26912
+ if (calendar.timePickerPopover.$el) calendar.timePickerPopover.$el.remove();
26913
+ calendar.timePickerPopover.destroy();
26914
+
26915
+ if (calendar.timePickerInstance) {
26916
+ calendar.timePickerInstance.close();
26917
+ calendar.timePickerInstance.destroy();
26918
+ }
26919
+
26920
+ delete calendar.timePickerInstance;
26921
+ delete calendar.timePickerPopover;
26922
+ }
26923
+
26924
+ }
26925
+ });
26926
+ calendar.timePickerPopover.open();
26767
26927
  calendar.timePickerInstance = app.picker.create({
26768
- containerEl: $el.find('.calendar-time-picker'),
26928
+ containerEl: calendar.timePickerPopover.$el.find('.calendar-time-picker'),
26769
26929
  value,
26770
- toolbar: true,
26930
+ toolbar: false,
26771
26931
  rotateEffect: false,
26772
26932
  toolbarCloseText: calendar.params.toolbarCloseText,
26773
26933
  cols: [{
@@ -26782,7 +26942,6 @@
26782
26942
  values: ['AM', 'PM']
26783
26943
  }] : [])]
26784
26944
  });
26785
- calendar.timePickerInstance.$el.find('.toolbar a').removeClass('sheet-close popover-close').addClass('calendar-time-picker-close');
26786
26945
  }
26787
26946
 
26788
26947
  closeTimePicker() {
@@ -26816,13 +26975,7 @@
26816
26975
  }
26817
26976
 
26818
26977
  calendar.setValue([value]);
26819
- calendar.timePickerInstance.close();
26820
- calendar.timePickerInstance.destroy();
26821
- delete calendar.timePickerInstance;
26822
- }
26823
-
26824
- if (calendar.$el && calendar.$el.length) {
26825
- calendar.$el.find('.calendar-time-picker').remove();
26978
+ if (calendar.timePickerPopover && calendar.timePickerPopover.opened) calendar.timePickerPopover.close();
26826
26979
  }
26827
26980
  }
26828
26981
 
@@ -27191,6 +27344,7 @@
27191
27344
  yearPickerMin: undefined,
27192
27345
  yearPickerMax: undefined,
27193
27346
  timePicker: false,
27347
+ timePickerLabel: 'Time',
27194
27348
  timePickerFormat: {
27195
27349
  hour: 'numeric',
27196
27350
  minute: 'numeric'
@@ -27238,8 +27392,8 @@
27238
27392
  };
27239
27393
 
27240
27394
  function pickerColumn(colEl, updateItems) {
27241
- const picker = this;
27242
- const app = picker.app;
27395
+ const picker = this; // const app = picker.app;
27396
+
27243
27397
  const $colEl = $(colEl);
27244
27398
  const colIndex = $colEl.index();
27245
27399
  const col = picker.cols[colIndex];
@@ -27249,17 +27403,7 @@
27249
27403
  col.$itemsEl = col.$el.find('.picker-items');
27250
27404
  col.items = col.$itemsEl.find('.picker-item');
27251
27405
  let itemHeight;
27252
- let itemsHeight;
27253
- let minTranslate;
27254
- let maxTranslate;
27255
- let animationFrameId;
27256
-
27257
- function updateDuringScroll() {
27258
- animationFrameId = requestAnimationFrame$1(() => {
27259
- col.updateItems(undefined, undefined, 0);
27260
- updateDuringScroll();
27261
- });
27262
- }
27406
+ let colHeight;
27263
27407
 
27264
27408
  col.replaceValues = function replaceColValues(values, displayValues) {
27265
27409
  col.detachEvents();
@@ -27268,99 +27412,63 @@
27268
27412
  col.$itemsEl.html(picker.renderColumn(col, true));
27269
27413
  col.items = col.$itemsEl.find('.picker-item');
27270
27414
  col.calcSize();
27271
- col.setValue(col.values[0], 0, true);
27415
+ col.setValue(col.values[0], true);
27272
27416
  col.attachEvents();
27273
27417
  };
27274
27418
 
27275
27419
  col.calcSize = function calcColSize() {
27276
- if (picker.params.rotateEffect) {
27277
- col.$el.removeClass('picker-column-absolute');
27278
- if (!col.width) col.$el.css({
27279
- width: ''
27280
- });
27281
- }
27282
-
27283
- let colWidth = 0;
27284
- const colHeight = col.$el[0].offsetHeight;
27420
+ colHeight = col.$el[0].offsetHeight;
27285
27421
  itemHeight = col.items[0].offsetHeight;
27286
- itemsHeight = itemHeight * col.items.length;
27287
- minTranslate = colHeight / 2 - itemsHeight + itemHeight / 2;
27288
- maxTranslate = colHeight / 2 - itemHeight / 2;
27289
-
27290
- if (col.width) {
27291
- colWidth = col.width;
27292
- if (parseInt(colWidth, 10) === colWidth) colWidth += 'px';
27293
- col.$el.css({
27294
- width: colWidth
27295
- });
27296
- }
27297
-
27298
- if (picker.params.rotateEffect) {
27299
- if (!col.width) {
27300
- col.items.each(itemEl => {
27301
- const item = $(itemEl).children('span');
27302
- colWidth = Math.max(colWidth, item[0].offsetWidth);
27303
- });
27304
- col.$el.css({
27305
- width: `${colWidth + 2}px`
27306
- });
27307
- }
27422
+ const hadPadding = col.el.style.getPropertyValue('--f7-picker-scroll-padding');
27423
+ col.el.style.setProperty('--f7-picker-scroll-padding', `${(colHeight - itemHeight) / 2}px`);
27308
27424
 
27309
- col.$el.addClass('picker-column-absolute');
27425
+ if (!hadPadding) {
27426
+ col.$itemsEl[0].scrollTop = 0;
27310
27427
  }
27311
27428
  };
27312
27429
 
27313
- col.setValue = function setColValue(newValue, transition = '', valueCallbacks) {
27430
+ col.setValue = function setColValue(newValue, valueCallbacks) {
27314
27431
  const newActiveIndex = col.$itemsEl.find(`.picker-item[data-picker-value="${newValue}"]`).index();
27315
27432
 
27316
27433
  if (typeof newActiveIndex === 'undefined' || newActiveIndex === -1) {
27317
27434
  return;
27318
27435
  }
27319
27436
 
27320
- const newTranslate = -newActiveIndex * itemHeight + maxTranslate; // Update wrapper
27321
-
27322
- col.$itemsEl.transition(transition);
27323
- col.$itemsEl.transform(`translate3d(0,${newTranslate}px,0)`); // Watch items
27324
-
27325
- if (picker.params.updateValuesOnMomentum && col.activeIndex && col.activeIndex !== newActiveIndex) {
27326
- cancelAnimationFrame(animationFrameId);
27327
- col.$itemsEl.transitionEnd(() => {
27328
- cancelAnimationFrame(animationFrameId);
27329
- });
27330
- updateDuringScroll();
27331
- } // Update items
27332
-
27437
+ const newScrollTop = newActiveIndex * itemHeight;
27438
+ col.$itemsEl[0].scrollTop = newScrollTop; // Update items
27333
27439
 
27334
- col.updateItems(newActiveIndex, newTranslate, transition, valueCallbacks);
27440
+ col.updateItems(newActiveIndex, newScrollTop, valueCallbacks);
27335
27441
  };
27336
27442
 
27337
- col.updateItems = function updateColItems(activeIndex, translate, transition, valueCallbacks) {
27338
- if (typeof translate === 'undefined') {
27443
+ col.updateItems = function updateColItems(activeIndex, scrollTop, valueCallbacks) {
27444
+ if (typeof scrollTop === 'undefined') {
27339
27445
  // eslint-disable-next-line
27340
- translate = getTranslate$1(col.$itemsEl[0], 'y');
27446
+ scrollTop = col.$itemsEl[0].scrollTop;
27341
27447
  }
27448
+ /* eslint-disable no-param-reassign */
27342
27449
 
27343
- if (typeof activeIndex === 'undefined') // eslint-disable-next-line
27344
- activeIndex = -Math.round((translate - maxTranslate) / itemHeight); // eslint-disable-next-line
27345
27450
 
27346
- if (activeIndex < 0) activeIndex = 0; // eslint-disable-next-line
27451
+ if (typeof activeIndex === 'undefined') {
27452
+ activeIndex = Math.round(scrollTop / itemHeight);
27453
+ }
27347
27454
 
27455
+ if (activeIndex < 0) activeIndex = 0;
27348
27456
  if (activeIndex >= col.items.length) activeIndex = col.items.length - 1;
27457
+ /* eslint-enable no-param-reassign */
27458
+
27349
27459
  const previousActiveIndex = col.activeIndex;
27350
27460
  col.activeIndex = activeIndex;
27351
27461
  col.$itemsEl.find('.picker-item-selected').removeClass('picker-item-selected');
27352
- col.items.transition(transition);
27353
- const selectedItem = col.items.eq(activeIndex).addClass('picker-item-selected').transform(''); // Set 3D rotate effect
27462
+ const selectedItem = col.items.eq(activeIndex);
27463
+ selectedItem.addClass('picker-item-selected').children().transform(''); // Set 3D rotate effect
27354
27464
 
27355
27465
  if (picker.params.rotateEffect) {
27356
27466
  col.items.each(itemEl => {
27357
27467
  const $itemEl = $(itemEl);
27358
- const itemOffsetTop = $itemEl.index() * itemHeight;
27359
- const translateOffset = maxTranslate - translate;
27360
- const itemOffset = itemOffsetTop - translateOffset;
27468
+ const itemOffset = itemEl.offsetTop - (colHeight - itemHeight) / 2 - scrollTop;
27361
27469
  const percentage = itemOffset / itemHeight;
27362
27470
  const itemsFit = Math.ceil(col.height / itemHeight / 2) + 1;
27363
- let angle = -18 * percentage;
27471
+ let angle = -24 * percentage;
27364
27472
  if (angle > 180) angle = 180;
27365
27473
  if (angle < -180) angle = -180;
27366
27474
 
@@ -27370,7 +27478,7 @@
27370
27478
  $itemEl.removeClass('picker-item-far');
27371
27479
  }
27372
27480
 
27373
- $itemEl.transform(`translate3d(0, ${-translate + maxTranslate}px, ${picker.needsOriginFix ? -110 : 0}px) rotateX(${angle}deg)`);
27481
+ $itemEl.children('span').transform(`translate3d(0, ${-percentage * itemHeight}px, -100px) rotateX(${angle}deg)`);
27374
27482
  });
27375
27483
  }
27376
27484
 
@@ -27389,219 +27497,31 @@
27389
27497
  }
27390
27498
  };
27391
27499
 
27392
- let allowItemClick = true;
27393
- let isTouched;
27394
- let isMoved;
27395
- let touchStartY;
27396
- let touchCurrentY;
27397
- let touchStartTime;
27398
- let touchEndTime;
27399
- let startTranslate;
27400
- let returnTo;
27401
- let currentTranslate;
27402
- let prevTranslate;
27403
- let velocityTranslate;
27404
-
27405
- function handleTouchStart(e) {
27406
- if (isMoved || isTouched) return;
27407
- e.preventDefault();
27408
- isTouched = true;
27409
- touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;
27410
- touchCurrentY = touchStartY;
27411
- touchStartTime = new Date().getTime();
27412
- allowItemClick = true;
27413
- startTranslate = getTranslate$1(col.$itemsEl[0], 'y');
27414
- currentTranslate = startTranslate;
27415
- }
27416
-
27417
- function handleTouchMove(e) {
27418
- if (!isTouched) return;
27419
- e.preventDefault();
27420
- allowItemClick = false;
27421
- touchCurrentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;
27422
-
27423
- if (!isMoved) {
27424
- // First move
27425
- cancelAnimationFrame(animationFrameId);
27426
- isMoved = true;
27427
- startTranslate = getTranslate$1(col.$itemsEl[0], 'y');
27428
- currentTranslate = startTranslate;
27429
- col.$itemsEl.transition(0);
27430
- }
27431
-
27432
- const diff = touchCurrentY - touchStartY;
27433
- currentTranslate = startTranslate + diff;
27434
- returnTo = undefined; // Normalize translate
27435
-
27436
- if (currentTranslate < minTranslate) {
27437
- currentTranslate = minTranslate - (minTranslate - currentTranslate) ** 0.8;
27438
- returnTo = 'min';
27439
- }
27440
-
27441
- if (currentTranslate > maxTranslate) {
27442
- currentTranslate = maxTranslate + (currentTranslate - maxTranslate) ** 0.8;
27443
- returnTo = 'max';
27444
- } // Transform wrapper
27445
-
27446
-
27447
- col.$itemsEl.transform(`translate3d(0,${currentTranslate}px,0)`); // Update items
27448
-
27449
- col.updateItems(undefined, currentTranslate, 0, picker.params.updateValuesOnTouchmove); // Calc velocity
27450
-
27451
- velocityTranslate = currentTranslate - prevTranslate || currentTranslate;
27452
- prevTranslate = currentTranslate;
27453
- }
27454
-
27455
- function handleTouchEnd() {
27456
- if (!isTouched || !isMoved) {
27457
- isTouched = false;
27458
- isMoved = false;
27459
- return;
27460
- }
27461
-
27462
- isTouched = false;
27463
- isMoved = false;
27464
- col.$itemsEl.transition('');
27465
-
27466
- if (returnTo) {
27467
- if (returnTo === 'min') {
27468
- col.$itemsEl.transform(`translate3d(0,${minTranslate}px,0)`);
27469
- } else {
27470
- col.$itemsEl.transform(`translate3d(0,${maxTranslate}px,0)`);
27471
- }
27472
- }
27473
-
27474
- touchEndTime = new Date().getTime();
27475
- let newTranslate;
27476
-
27477
- if (touchEndTime - touchStartTime > 300) {
27478
- newTranslate = currentTranslate;
27479
- } else {
27480
- newTranslate = currentTranslate + velocityTranslate * picker.params.momentumRatio;
27481
- }
27482
-
27483
- newTranslate = Math.max(Math.min(newTranslate, maxTranslate), minTranslate); // Active Index
27484
-
27485
- const activeIndex = Math.round(Math.abs((newTranslate - maxTranslate) / itemHeight)); // Normalize translate
27486
-
27487
- if (!picker.params.freeMode) newTranslate = -activeIndex * itemHeight + maxTranslate; // Transform wrapper
27488
-
27489
- col.$itemsEl.transform(`translate3d(0,${parseInt(newTranslate, 10)}px,0)`); // Update items
27490
-
27491
- col.updateItems(activeIndex, newTranslate, '', true); // Watch items
27492
-
27493
- if (picker.params.updateValuesOnMomentum) {
27494
- updateDuringScroll();
27495
- col.$itemsEl.transitionEnd(() => {
27496
- cancelAnimationFrame(animationFrameId);
27497
- });
27498
- } // Allow click
27499
-
27500
-
27501
- setTimeout(() => {
27502
- allowItemClick = true;
27503
- }, 100);
27504
- }
27505
-
27506
- let mousewheelTimeout;
27507
-
27508
- function handleMouseWheel(e) {
27509
- const {
27510
- deltaX,
27511
- deltaY
27512
- } = e;
27513
- if (Math.abs(deltaX) > Math.abs(deltaY)) return;
27514
- clearTimeout(mousewheelTimeout);
27515
- e.preventDefault();
27516
- cancelAnimationFrame(animationFrameId);
27517
- startTranslate = getTranslate$1(col.$itemsEl[0], 'y');
27518
- col.$itemsEl.transition(0);
27519
- currentTranslate = startTranslate - deltaY;
27520
- returnTo = undefined; // Normalize translate
27521
-
27522
- if (currentTranslate < minTranslate) {
27523
- currentTranslate = minTranslate;
27524
- returnTo = 'min';
27525
- }
27526
-
27527
- if (currentTranslate > maxTranslate) {
27528
- currentTranslate = maxTranslate;
27529
- returnTo = 'max';
27530
- } // Transform wrapper
27531
-
27532
-
27533
- col.$itemsEl.transform(`translate3d(0,${currentTranslate}px,0)`); // Update items
27534
-
27535
- col.updateItems(undefined, currentTranslate, 0, picker.params.updateValuesOnMousewheel); // On end
27536
-
27537
- mousewheelTimeout = setTimeout(() => {
27538
- col.$itemsEl.transition('');
27539
-
27540
- if (returnTo) {
27541
- if (returnTo === 'min') {
27542
- col.$itemsEl.transform(`translate3d(0,${minTranslate}px,0)`);
27543
- } else {
27544
- col.$itemsEl.transform(`translate3d(0,${maxTranslate}px,0)`);
27545
- }
27546
- }
27547
-
27548
- touchEndTime = new Date().getTime();
27549
- let newTranslate = currentTranslate;
27550
- newTranslate = Math.max(Math.min(newTranslate, maxTranslate), minTranslate); // Active Index
27551
-
27552
- const activeIndex = Math.round(Math.abs((newTranslate - maxTranslate) / itemHeight)); // Normalize translate
27553
-
27554
- if (!picker.params.freeMode) newTranslate = -activeIndex * itemHeight + maxTranslate; // Transform wrapper
27555
-
27556
- col.$itemsEl.transform(`translate3d(0,${parseInt(newTranslate, 10)}px,0)`); // Update items
27557
-
27558
- col.updateItems(activeIndex, newTranslate, '', true);
27559
- }, 200);
27500
+ function handleScroll() {
27501
+ col.updateItems();
27560
27502
  }
27561
27503
 
27562
27504
  function handleClick() {
27563
- if (!allowItemClick) return;
27564
- cancelAnimationFrame(animationFrameId);
27565
27505
  const value = $(this).attr('data-picker-value');
27566
27506
  col.setValue(value);
27567
27507
  }
27568
27508
 
27569
- const activeListener = getSupport$1().passiveListener ? {
27570
- passive: false,
27571
- capture: false
27572
- } : false;
27573
-
27574
27509
  col.attachEvents = function attachColEvents() {
27575
- col.$el.on(app.touchEvents.start, handleTouchStart, activeListener);
27576
- app.on('touchmove:active', handleTouchMove);
27577
- app.on('touchend:passive', handleTouchEnd);
27578
-
27579
- if (picker.params.mousewheel) {
27580
- col.$el.on('wheel', handleMouseWheel);
27581
- }
27582
-
27510
+ col.$itemsEl.on('scroll', handleScroll);
27583
27511
  col.items.on('click', handleClick);
27584
27512
  };
27585
27513
 
27586
27514
  col.detachEvents = function detachColEvents() {
27587
- col.$el.off(app.touchEvents.start, handleTouchStart, activeListener);
27588
- app.off('touchmove:active', handleTouchMove);
27589
- app.off('touchend:passive', handleTouchEnd);
27590
-
27591
- if (picker.params.mousewheel) {
27592
- col.$el.off('wheel', handleMouseWheel);
27593
- }
27594
-
27595
27515
  col.items.off('click', handleClick);
27596
27516
  };
27597
27517
 
27598
27518
  col.init = function initCol() {
27599
27519
  col.calcSize();
27600
- col.$itemsEl.transform(`translate3d(0,${maxTranslate}px,0)`).transition(0);
27601
27520
  if (colIndex === 0) col.$el.addClass('picker-column-first');
27602
- if (colIndex === picker.cols.length - 1) col.$el.addClass('picker-column-last'); // Update items on init
27521
+ if (colIndex === picker.cols.length - 1) col.$el.addClass('picker-column-last');
27522
+ if (picker.params.freeMode) col.$el.addClass('picker-column-free-mode'); // Update items on init
27603
27523
 
27604
- if (updateItems) col.updateItems(0, maxTranslate, 0);
27524
+ if (updateItems) col.updateItems(0);
27605
27525
  col.attachEvents();
27606
27526
  };
27607
27527
 
@@ -27771,7 +27691,7 @@
27771
27691
  for (let i = 0; i < picker.cols.length; i += 1) {
27772
27692
  if (!picker.cols[i].divider) {
27773
27693
  picker.cols[i].calcSize();
27774
- picker.cols[i].setValue(picker.cols[i].value, 0, false);
27694
+ picker.cols[i].setValue(picker.cols[i].value, false);
27775
27695
  }
27776
27696
  }
27777
27697
  }
@@ -27820,7 +27740,7 @@
27820
27740
  return value.join(' ');
27821
27741
  }
27822
27742
 
27823
- setValue(values, transition) {
27743
+ setValue(values) {
27824
27744
  const picker = this;
27825
27745
  let valueIndex = 0;
27826
27746
 
@@ -27832,7 +27752,7 @@
27832
27752
 
27833
27753
  for (let i = 0; i < picker.cols.length; i += 1) {
27834
27754
  if (picker.cols[i] && !picker.cols[i].divider) {
27835
- picker.cols[i].setValue(values[valueIndex], transition);
27755
+ picker.cols[i].setValue(values[valueIndex]);
27836
27756
  valueIndex += 1;
27837
27757
  }
27838
27758
  }
@@ -28040,11 +27960,11 @@
28040
27960
  }); // Set value
28041
27961
 
28042
27962
  if (!initialized) {
28043
- if (value) picker.setValue(value, 0);else if (params.value) {
28044
- picker.setValue(params.value, 0);
27963
+ if (value) picker.setValue(value);else if (params.value) {
27964
+ picker.setValue(params.value);
28045
27965
  }
28046
27966
  } else if (value) {
28047
- picker.setValue(value, 0);
27967
+ picker.setValue(value);
28048
27968
  } // Extra focus
28049
27969
 
28050
27970
 
@@ -28319,12 +28239,7 @@
28319
28239
  params: {
28320
28240
  picker: {
28321
28241
  // Picker settings
28322
- updateValuesOnMomentum: false,
28323
- updateValuesOnTouchmove: true,
28324
- updateValuesOnMousewheel: true,
28325
- mousewheel: true,
28326
28242
  rotateEffect: false,
28327
- momentumRatio: 7,
28328
28243
  freeMode: false,
28329
28244
  cols: [],
28330
28245
  // Common opener settings
@@ -33697,7 +33612,11 @@
33697
33612
  });
33698
33613
  }
33699
33614
 
33700
- function nextTick(callback, delay = 0) {
33615
+ function nextTick(callback, delay) {
33616
+ if (delay === void 0) {
33617
+ delay = 0;
33618
+ }
33619
+
33701
33620
  return setTimeout(callback, delay);
33702
33621
  }
33703
33622
 
@@ -33724,7 +33643,11 @@
33724
33643
  return style;
33725
33644
  }
33726
33645
 
33727
- function getTranslate(el, axis = 'x') {
33646
+ function getTranslate(el, axis) {
33647
+ if (axis === void 0) {
33648
+ axis = 'x';
33649
+ }
33650
+
33728
33651
  const window = getWindow();
33729
33652
  let matrix;
33730
33653
  let curTransform;
@@ -33776,12 +33699,12 @@
33776
33699
  return node && (node.nodeType === 1 || node.nodeType === 11);
33777
33700
  }
33778
33701
 
33779
- function extend(...args) {
33780
- const to = Object(args[0]);
33702
+ function extend() {
33703
+ const to = Object(arguments.length <= 0 ? undefined : arguments[0]);
33781
33704
  const noExtend = ['__proto__', 'constructor', 'prototype'];
33782
33705
 
33783
- for (let i = 1; i < args.length; i += 1) {
33784
- const nextSource = args[i];
33706
+ for (let i = 1; i < arguments.length; i += 1) {
33707
+ const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];
33785
33708
 
33786
33709
  if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {
33787
33710
  const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);
@@ -33820,11 +33743,12 @@
33820
33743
  el.style.setProperty(varName, varValue);
33821
33744
  }
33822
33745
 
33823
- function animateCSSModeScroll({
33824
- swiper,
33825
- targetPosition,
33826
- side
33827
- }) {
33746
+ function animateCSSModeScroll(_ref) {
33747
+ let {
33748
+ swiper,
33749
+ targetPosition,
33750
+ side
33751
+ } = _ref;
33828
33752
  const window = getWindow();
33829
33753
  const startPosition = -swiper.translate;
33830
33754
  let startTime = null;
@@ -33917,9 +33841,10 @@
33917
33841
 
33918
33842
  let deviceCached;
33919
33843
 
33920
- function calcDevice({
33921
- userAgent
33922
- } = {}) {
33844
+ function calcDevice(_temp) {
33845
+ let {
33846
+ userAgent
33847
+ } = _temp === void 0 ? {} : _temp;
33923
33848
  const support = getSupport();
33924
33849
  const window = getWindow();
33925
33850
  const platform = window.navigator.platform;
@@ -33961,7 +33886,11 @@
33961
33886
  return device;
33962
33887
  }
33963
33888
 
33964
- function getDevice(overrides = {}) {
33889
+ function getDevice(overrides) {
33890
+ if (overrides === void 0) {
33891
+ overrides = {};
33892
+ }
33893
+
33965
33894
  if (!deviceCached) {
33966
33895
  deviceCached = calcDevice(overrides);
33967
33896
  }
@@ -33993,13 +33922,15 @@
33993
33922
  return browser;
33994
33923
  }
33995
33924
 
33996
- function Resize({
33997
- swiper,
33998
- on,
33999
- emit
34000
- }) {
33925
+ function Resize(_ref) {
33926
+ let {
33927
+ swiper,
33928
+ on,
33929
+ emit
33930
+ } = _ref;
34001
33931
  const window = getWindow();
34002
33932
  let observer = null;
33933
+ let animationFrame = null;
34003
33934
 
34004
33935
  const resizeHandler = () => {
34005
33936
  if (!swiper || swiper.destroyed || !swiper.initialized) return;
@@ -34010,30 +33941,37 @@
34010
33941
  const createObserver = () => {
34011
33942
  if (!swiper || swiper.destroyed || !swiper.initialized) return;
34012
33943
  observer = new ResizeObserver(entries => {
34013
- const {
34014
- width,
34015
- height
34016
- } = swiper;
34017
- let newWidth = width;
34018
- let newHeight = height;
34019
- entries.forEach(({
34020
- contentBoxSize,
34021
- contentRect,
34022
- target
34023
- }) => {
34024
- if (target && target !== swiper.el) return;
34025
- newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;
34026
- newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;
34027
- });
33944
+ animationFrame = window.requestAnimationFrame(() => {
33945
+ const {
33946
+ width,
33947
+ height
33948
+ } = swiper;
33949
+ let newWidth = width;
33950
+ let newHeight = height;
33951
+ entries.forEach(_ref2 => {
33952
+ let {
33953
+ contentBoxSize,
33954
+ contentRect,
33955
+ target
33956
+ } = _ref2;
33957
+ if (target && target !== swiper.el) return;
33958
+ newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;
33959
+ newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;
33960
+ });
34028
33961
 
34029
- if (newWidth !== width || newHeight !== height) {
34030
- resizeHandler();
34031
- }
33962
+ if (newWidth !== width || newHeight !== height) {
33963
+ resizeHandler();
33964
+ }
33965
+ });
34032
33966
  });
34033
33967
  observer.observe(swiper.el);
34034
33968
  };
34035
33969
 
34036
33970
  const removeObserver = () => {
33971
+ if (animationFrame) {
33972
+ window.cancelAnimationFrame(animationFrame);
33973
+ }
33974
+
34037
33975
  if (observer && observer.unobserve && swiper.el) {
34038
33976
  observer.unobserve(swiper.el);
34039
33977
  observer = null;
@@ -34061,16 +33999,21 @@
34061
33999
  });
34062
34000
  }
34063
34001
 
34064
- function Observer({
34065
- swiper,
34066
- extendParams,
34067
- on,
34068
- emit
34069
- }) {
34002
+ function Observer(_ref) {
34003
+ let {
34004
+ swiper,
34005
+ extendParams,
34006
+ on,
34007
+ emit
34008
+ } = _ref;
34070
34009
  const observers = [];
34071
34010
  const window = getWindow();
34072
34011
 
34073
- const attach = (target, options = {}) => {
34012
+ const attach = function (target, options) {
34013
+ if (options === void 0) {
34014
+ options = {};
34015
+ }
34016
+
34074
34017
  const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;
34075
34018
  const observer = new ObserverFunc(mutations => {
34076
34019
  // The observerUpdate event should only be triggered
@@ -34153,13 +34096,17 @@
34153
34096
  const self = this;
34154
34097
  if (typeof handler !== 'function') return self;
34155
34098
 
34156
- function onceHandler(...args) {
34099
+ function onceHandler() {
34157
34100
  self.off(events, onceHandler);
34158
34101
 
34159
34102
  if (onceHandler.__emitterProxy) {
34160
34103
  delete onceHandler.__emitterProxy;
34161
34104
  }
34162
34105
 
34106
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
34107
+ args[_key] = arguments[_key];
34108
+ }
34109
+
34163
34110
  handler.apply(self, args);
34164
34111
  }
34165
34112
 
@@ -34208,13 +34155,17 @@
34208
34155
  return self;
34209
34156
  },
34210
34157
 
34211
- emit(...args) {
34158
+ emit() {
34212
34159
  const self = this;
34213
34160
  if (!self.eventsListeners) return self;
34214
34161
  let events;
34215
34162
  let data;
34216
34163
  let context;
34217
34164
 
34165
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
34166
+ args[_key2] = arguments[_key2];
34167
+ }
34168
+
34218
34169
  if (typeof args[0] === 'string' || Array.isArray(args[0])) {
34219
34170
  events = args[0];
34220
34171
  data = args.slice(1, args.length);
@@ -34586,6 +34537,17 @@
34586
34537
  if (params.watchSlidesProgress) {
34587
34538
  swiper.updateSlidesOffset();
34588
34539
  }
34540
+
34541
+ if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {
34542
+ const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;
34543
+ const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);
34544
+
34545
+ if (slidesLength <= params.maxBackfaceHiddenSlides) {
34546
+ if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);
34547
+ } else if (hasClassBackfaceClassAdded) {
34548
+ swiper.$el.removeClass(backFaceHiddenClass);
34549
+ }
34550
+ }
34589
34551
  }
34590
34552
 
34591
34553
  function updateAutoHeight(speed) {
@@ -34635,7 +34597,7 @@
34635
34597
  } // Update Height
34636
34598
 
34637
34599
 
34638
- if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);
34600
+ if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);
34639
34601
  }
34640
34602
 
34641
34603
  function updateSlidesOffset() {
@@ -34647,7 +34609,11 @@
34647
34609
  }
34648
34610
  }
34649
34611
 
34650
- function updateSlidesProgress(translate = this && this.translate || 0) {
34612
+ function updateSlidesProgress(translate) {
34613
+ if (translate === void 0) {
34614
+ translate = this && this.translate || 0;
34615
+ }
34616
+
34651
34617
  const swiper = this;
34652
34618
  const params = swiper.params;
34653
34619
  const {
@@ -34881,7 +34847,7 @@
34881
34847
  function updateClickedSlide(e) {
34882
34848
  const swiper = this;
34883
34849
  const params = swiper.params;
34884
- const slide = $$1(e.target).closest(`.${params.slideClass}`)[0];
34850
+ const slide = $$1(e).closest(`.${params.slideClass}`)[0];
34885
34851
  let slideFound = false;
34886
34852
  let slideIndex;
34887
34853
 
@@ -34926,7 +34892,11 @@
34926
34892
  updateClickedSlide
34927
34893
  };
34928
34894
 
34929
- function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {
34895
+ function getSwiperTranslate(axis) {
34896
+ if (axis === void 0) {
34897
+ axis = this.isHorizontal() ? 'x' : 'y';
34898
+ }
34899
+
34930
34900
  const swiper = this;
34931
34901
  const {
34932
34902
  params,
@@ -35005,7 +34975,23 @@
35005
34975
  return -this.snapGrid[this.snapGrid.length - 1];
35006
34976
  }
35007
34977
 
35008
- function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {
34978
+ function translateTo(translate, speed, runCallbacks, translateBounds, internal) {
34979
+ if (translate === void 0) {
34980
+ translate = 0;
34981
+ }
34982
+
34983
+ if (speed === void 0) {
34984
+ speed = this.params.speed;
34985
+ }
34986
+
34987
+ if (runCallbacks === void 0) {
34988
+ runCallbacks = true;
34989
+ }
34990
+
34991
+ if (translateBounds === void 0) {
34992
+ translateBounds = true;
34993
+ }
34994
+
35009
34995
  const swiper = this;
35010
34996
  const {
35011
34997
  params,
@@ -35108,12 +35094,13 @@
35108
35094
  swiper.emit('setTransition', duration, byController);
35109
35095
  }
35110
35096
 
35111
- function transitionEmit({
35112
- swiper,
35113
- runCallbacks,
35114
- direction,
35115
- step
35116
- }) {
35097
+ function transitionEmit(_ref) {
35098
+ let {
35099
+ swiper,
35100
+ runCallbacks,
35101
+ direction,
35102
+ step
35103
+ } = _ref;
35117
35104
  const {
35118
35105
  activeIndex,
35119
35106
  previousIndex
@@ -35142,7 +35129,11 @@
35142
35129
  }
35143
35130
  }
35144
35131
 
35145
- function transitionStart(runCallbacks = true, direction) {
35132
+ function transitionStart(runCallbacks, direction) {
35133
+ if (runCallbacks === void 0) {
35134
+ runCallbacks = true;
35135
+ }
35136
+
35146
35137
  const swiper = this;
35147
35138
  const {
35148
35139
  params
@@ -35161,7 +35152,11 @@
35161
35152
  });
35162
35153
  }
35163
35154
 
35164
- function transitionEnd(runCallbacks = true, direction) {
35155
+ function transitionEnd(runCallbacks, direction) {
35156
+ if (runCallbacks === void 0) {
35157
+ runCallbacks = true;
35158
+ }
35159
+
35165
35160
  const swiper = this;
35166
35161
  const {
35167
35162
  params
@@ -35183,7 +35178,19 @@
35183
35178
  transitionEnd
35184
35179
  };
35185
35180
 
35186
- function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {
35181
+ function slideTo(index, speed, runCallbacks, internal, initial) {
35182
+ if (index === void 0) {
35183
+ index = 0;
35184
+ }
35185
+
35186
+ if (speed === void 0) {
35187
+ speed = this.params.speed;
35188
+ }
35189
+
35190
+ if (runCallbacks === void 0) {
35191
+ runCallbacks = true;
35192
+ }
35193
+
35187
35194
  if (typeof index !== 'number' && typeof index !== 'string') {
35188
35195
  throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);
35189
35196
  }
@@ -35333,46 +35340,50 @@
35333
35340
  return true;
35334
35341
  }
35335
35342
 
35343
+ swiper.setTransition(speed);
35344
+ swiper.setTranslate(translate);
35345
+ swiper.updateActiveIndex(slideIndex);
35346
+ swiper.updateSlidesClasses();
35347
+ swiper.emit('beforeTransitionStart', speed, internal);
35348
+ swiper.transitionStart(runCallbacks, direction);
35349
+
35336
35350
  if (speed === 0) {
35337
- swiper.setTransition(0);
35338
- swiper.setTranslate(translate);
35339
- swiper.updateActiveIndex(slideIndex);
35340
- swiper.updateSlidesClasses();
35341
- swiper.emit('beforeTransitionStart', speed, internal);
35342
- swiper.transitionStart(runCallbacks, direction);
35343
35351
  swiper.transitionEnd(runCallbacks, direction);
35344
- } else {
35345
- swiper.setTransition(speed);
35346
- swiper.setTranslate(translate);
35347
- swiper.updateActiveIndex(slideIndex);
35348
- swiper.updateSlidesClasses();
35349
- swiper.emit('beforeTransitionStart', speed, internal);
35350
- swiper.transitionStart(runCallbacks, direction);
35351
-
35352
- if (!swiper.animating) {
35353
- swiper.animating = true;
35354
-
35355
- if (!swiper.onSlideToWrapperTransitionEnd) {
35356
- swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {
35357
- if (!swiper || swiper.destroyed) return;
35358
- if (e.target !== this) return;
35359
- swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
35360
- swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);
35361
- swiper.onSlideToWrapperTransitionEnd = null;
35362
- delete swiper.onSlideToWrapperTransitionEnd;
35363
- swiper.transitionEnd(runCallbacks, direction);
35364
- };
35365
- }
35366
-
35367
- swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
35368
- swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);
35352
+ } else if (!swiper.animating) {
35353
+ swiper.animating = true;
35354
+
35355
+ if (!swiper.onSlideToWrapperTransitionEnd) {
35356
+ swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {
35357
+ if (!swiper || swiper.destroyed) return;
35358
+ if (e.target !== this) return;
35359
+ swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
35360
+ swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);
35361
+ swiper.onSlideToWrapperTransitionEnd = null;
35362
+ delete swiper.onSlideToWrapperTransitionEnd;
35363
+ swiper.transitionEnd(runCallbacks, direction);
35364
+ };
35369
35365
  }
35366
+
35367
+ swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
35368
+ swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);
35370
35369
  }
35371
35370
 
35372
35371
  return true;
35373
35372
  }
35374
35373
 
35375
- function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {
35374
+ function slideToLoop(index, speed, runCallbacks, internal) {
35375
+ if (index === void 0) {
35376
+ index = 0;
35377
+ }
35378
+
35379
+ if (speed === void 0) {
35380
+ speed = this.params.speed;
35381
+ }
35382
+
35383
+ if (runCallbacks === void 0) {
35384
+ runCallbacks = true;
35385
+ }
35386
+
35376
35387
  const swiper = this;
35377
35388
  let newIndex = index;
35378
35389
 
@@ -35384,7 +35395,15 @@
35384
35395
  }
35385
35396
 
35386
35397
  /* eslint no-unused-vars: "off" */
35387
- function slideNext(speed = this.params.speed, runCallbacks = true, internal) {
35398
+ function slideNext(speed, runCallbacks, internal) {
35399
+ if (speed === void 0) {
35400
+ speed = this.params.speed;
35401
+ }
35402
+
35403
+ if (runCallbacks === void 0) {
35404
+ runCallbacks = true;
35405
+ }
35406
+
35388
35407
  const swiper = this;
35389
35408
  const {
35390
35409
  animating,
@@ -35407,11 +35426,23 @@
35407
35426
  swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;
35408
35427
  }
35409
35428
 
35429
+ if (params.rewind && swiper.isEnd) {
35430
+ return swiper.slideTo(0, speed, runCallbacks, internal);
35431
+ }
35432
+
35410
35433
  return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
35411
35434
  }
35412
35435
 
35413
35436
  /* eslint no-unused-vars: "off" */
35414
- function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {
35437
+ function slidePrev(speed, runCallbacks, internal) {
35438
+ if (speed === void 0) {
35439
+ speed = this.params.speed;
35440
+ }
35441
+
35442
+ if (runCallbacks === void 0) {
35443
+ runCallbacks = true;
35444
+ }
35445
+
35415
35446
  const swiper = this;
35416
35447
  const {
35417
35448
  params,
@@ -35467,17 +35498,42 @@
35467
35498
  }
35468
35499
  }
35469
35500
 
35501
+ if (params.rewind && swiper.isBeginning) {
35502
+ const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
35503
+ return swiper.slideTo(lastIndex, speed, runCallbacks, internal);
35504
+ }
35505
+
35470
35506
  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
35471
35507
  }
35472
35508
 
35473
35509
  /* eslint no-unused-vars: "off" */
35474
- function slideReset(speed = this.params.speed, runCallbacks = true, internal) {
35510
+ function slideReset(speed, runCallbacks, internal) {
35511
+ if (speed === void 0) {
35512
+ speed = this.params.speed;
35513
+ }
35514
+
35515
+ if (runCallbacks === void 0) {
35516
+ runCallbacks = true;
35517
+ }
35518
+
35475
35519
  const swiper = this;
35476
35520
  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
35477
35521
  }
35478
35522
 
35479
35523
  /* eslint no-unused-vars: "off" */
35480
- function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {
35524
+ function slideToClosest(speed, runCallbacks, internal, threshold) {
35525
+ if (speed === void 0) {
35526
+ speed = this.params.speed;
35527
+ }
35528
+
35529
+ if (runCallbacks === void 0) {
35530
+ runCallbacks = true;
35531
+ }
35532
+
35533
+ if (threshold === void 0) {
35534
+ threshold = 0.5;
35535
+ }
35536
+
35481
35537
  const swiper = this;
35482
35538
  let index = swiper.activeIndex;
35483
35539
  const skip = Math.min(swiper.params.slidesPerGroupSkip, index);
@@ -35565,7 +35621,7 @@
35565
35621
  $wrapperEl
35566
35622
  } = swiper; // Remove duplicated slides
35567
35623
 
35568
- const $selector = $$1($wrapperEl.children()[0].parentNode);
35624
+ const $selector = $wrapperEl.children().length > 0 ? $$1($wrapperEl.children()[0].parentNode) : $wrapperEl;
35569
35625
  $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();
35570
35626
  let slides = $selector.children(`.${params.slideClass}`);
35571
35627
 
@@ -35699,7 +35755,11 @@
35699
35755
  unsetGrabCursor
35700
35756
  };
35701
35757
 
35702
- function closestElement(selector, base = this) {
35758
+ function closestElement(selector, base) {
35759
+ if (base === void 0) {
35760
+ base = this;
35761
+ }
35762
+
35703
35763
  function __closestFrom(el) {
35704
35764
  if (!el || el === getDocument() || el === getWindow()) return null;
35705
35765
  if (el.assignedSlot) el = el.assignedSlot;
@@ -35794,7 +35854,14 @@
35794
35854
 
35795
35855
  if (e.type !== 'touchstart') {
35796
35856
  let preventDefault = true;
35797
- if ($targetEl.is(data.focusableElements)) preventDefault = false;
35857
+
35858
+ if ($targetEl.is(data.focusableElements)) {
35859
+ preventDefault = false;
35860
+
35861
+ if ($targetEl[0].nodeName === 'SELECT') {
35862
+ data.isTouched = false;
35863
+ }
35864
+ }
35798
35865
 
35799
35866
  if (document.activeElement && $$1(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {
35800
35867
  document.activeElement.blur();
@@ -35807,6 +35874,10 @@
35807
35874
  }
35808
35875
  }
35809
35876
 
35877
+ if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {
35878
+ swiper.freeMode.onTouchStart();
35879
+ }
35880
+
35810
35881
  swiper.emit('touchStart', e);
35811
35882
  }
35812
35883
 
@@ -35844,8 +35915,9 @@
35844
35915
  }
35845
35916
 
35846
35917
  if (!swiper.allowTouchMove) {
35847
- // isMoved = true;
35848
- swiper.allowClick = false;
35918
+ if (!$$1(e.target).is(data.focusableElements)) {
35919
+ swiper.allowClick = false;
35920
+ }
35849
35921
 
35850
35922
  if (data.isTouched) {
35851
35923
  Object.assign(touches, {
@@ -36070,7 +36142,8 @@
36070
36142
  const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click
36071
36143
 
36072
36144
  if (swiper.allowClick) {
36073
- swiper.updateClickedSlide(e);
36145
+ const pathTree = e.path || e.composedPath && e.composedPath();
36146
+ swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);
36074
36147
  swiper.emit('tap click', e);
36075
36148
 
36076
36149
  if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {
@@ -36128,6 +36201,17 @@
36128
36201
  stopIndex = i;
36129
36202
  groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];
36130
36203
  }
36204
+ }
36205
+
36206
+ let rewindFirstIndex = null;
36207
+ let rewindLastIndex = null;
36208
+
36209
+ if (params.rewind) {
36210
+ if (swiper.isBeginning) {
36211
+ rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
36212
+ } else if (swiper.isEnd) {
36213
+ rewindFirstIndex = 0;
36214
+ }
36131
36215
  } // Find current slide size
36132
36216
 
36133
36217
 
@@ -36142,11 +36226,17 @@
36142
36226
  }
36143
36227
 
36144
36228
  if (swiper.swipeDirection === 'next') {
36145
- if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);
36229
+ if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);
36146
36230
  }
36147
36231
 
36148
36232
  if (swiper.swipeDirection === 'prev') {
36149
- if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);
36233
+ if (ratio > 1 - params.longSwipesRatio) {
36234
+ swiper.slideTo(stopIndex + increment);
36235
+ } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {
36236
+ swiper.slideTo(rewindLastIndex);
36237
+ } else {
36238
+ swiper.slideTo(stopIndex);
36239
+ }
36150
36240
  }
36151
36241
  } else {
36152
36242
  // Short swipes
@@ -36159,11 +36249,11 @@
36159
36249
 
36160
36250
  if (!isNavButtonTarget) {
36161
36251
  if (swiper.swipeDirection === 'next') {
36162
- swiper.slideTo(stopIndex + increment);
36252
+ swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);
36163
36253
  }
36164
36254
 
36165
36255
  if (swiper.swipeDirection === 'prev') {
36166
- swiper.slideTo(stopIndex);
36256
+ swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);
36167
36257
  }
36168
36258
  } else if (e.target === swiper.navigation.nextEl) {
36169
36259
  swiper.slideTo(stopIndex + increment);
@@ -36429,7 +36519,11 @@
36429
36519
  swiper.emit('breakpoint', breakpointParams);
36430
36520
  }
36431
36521
 
36432
- function getBreakpoint(breakpoints, base = 'window', containerEl) {
36522
+ function getBreakpoint(breakpoints, base, containerEl) {
36523
+ if (base === void 0) {
36524
+ base = 'window';
36525
+ }
36526
+
36433
36527
  if (!breakpoints || base === 'container' && !containerEl) return undefined;
36434
36528
  let breakpoint = false;
36435
36529
  const window = getWindow();
@@ -36733,6 +36827,8 @@
36733
36827
  loopedSlides: null,
36734
36828
  loopFillGroupWithBlank: false,
36735
36829
  loopPreventsSlide: true,
36830
+ // rewind
36831
+ rewind: false,
36736
36832
  // Swiping/no swiping
36737
36833
  allowSlidePrev: true,
36738
36834
  allowSlideNext: true,
@@ -36743,6 +36839,7 @@
36743
36839
  noSwipingSelector: null,
36744
36840
  // Passive Listeners
36745
36841
  passiveListeners: true,
36842
+ maxBackfaceHiddenSlides: 10,
36746
36843
  // NS
36747
36844
  containerModifierClass: 'swiper-',
36748
36845
  // NEW
@@ -36764,7 +36861,11 @@
36764
36861
  };
36765
36862
 
36766
36863
  function moduleExtendParams(params, allModulesParams) {
36767
- return function extendParams(obj = {}) {
36864
+ return function extendParams(obj) {
36865
+ if (obj === void 0) {
36866
+ obj = {};
36867
+ }
36868
+
36768
36869
  const moduleParamName = Object.keys(obj)[0];
36769
36870
  const moduleParams = obj[moduleParamName];
36770
36871
 
@@ -36819,10 +36920,14 @@
36819
36920
  const extendedDefaults = {};
36820
36921
 
36821
36922
  class Swiper$1 {
36822
- constructor(...args) {
36923
+ constructor() {
36823
36924
  let el;
36824
36925
  let params;
36825
36926
 
36927
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
36928
+ args[_key] = arguments[_key];
36929
+ }
36930
+
36826
36931
  if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {
36827
36932
  params = args[0];
36828
36933
  } else {
@@ -37054,7 +37159,15 @@
37054
37159
  swiper.emit('_slideClasses', updates);
37055
37160
  }
37056
37161
 
37057
- slidesPerViewDynamic(view = 'current', exact = false) {
37162
+ slidesPerViewDynamic(view, exact) {
37163
+ if (view === void 0) {
37164
+ view = 'current';
37165
+ }
37166
+
37167
+ if (exact === void 0) {
37168
+ exact = false;
37169
+ }
37170
+
37058
37171
  const swiper = this;
37059
37172
  const {
37060
37173
  params,
@@ -37162,7 +37275,11 @@
37162
37275
  swiper.emit('update');
37163
37276
  }
37164
37277
 
37165
- changeDirection(newDirection, needUpdate = true) {
37278
+ changeDirection(newDirection, needUpdate) {
37279
+ if (needUpdate === void 0) {
37280
+ needUpdate = true;
37281
+ }
37282
+
37166
37283
  const swiper = this;
37167
37284
  const currentDirection = swiper.params.direction;
37168
37285
 
@@ -37300,7 +37417,15 @@
37300
37417
  return swiper;
37301
37418
  }
37302
37419
 
37303
- destroy(deleteInstance = true, cleanStyles = true) {
37420
+ destroy(deleteInstance, cleanStyles) {
37421
+ if (deleteInstance === void 0) {
37422
+ deleteInstance = true;
37423
+ }
37424
+
37425
+ if (cleanStyles === void 0) {
37426
+ cleanStyles = true;
37427
+ }
37428
+
37304
37429
  const swiper = this;
37305
37430
  const {
37306
37431
  params,
@@ -37389,11 +37514,12 @@
37389
37514
  });
37390
37515
  Swiper$1.use([Resize, Observer]);
37391
37516
 
37392
- function Virtual({
37393
- swiper,
37394
- extendParams,
37395
- on
37396
- }) {
37517
+ function Virtual(_ref) {
37518
+ let {
37519
+ swiper,
37520
+ extendParams,
37521
+ on
37522
+ } = _ref;
37397
37523
  extendParams({
37398
37524
  virtual: {
37399
37525
  enabled: false,
@@ -37680,12 +37806,13 @@
37680
37806
  }
37681
37807
 
37682
37808
  /* eslint-disable consistent-return */
37683
- function Keyboard({
37684
- swiper,
37685
- extendParams,
37686
- on,
37687
- emit
37688
- }) {
37809
+ function Keyboard(_ref) {
37810
+ let {
37811
+ swiper,
37812
+ extendParams,
37813
+ on,
37814
+ emit
37815
+ } = _ref;
37689
37816
  const document = getDocument();
37690
37817
  const window = getWindow();
37691
37818
  swiper.keyboard = {
@@ -37810,12 +37937,13 @@
37810
37937
  }
37811
37938
 
37812
37939
  /* eslint-disable consistent-return */
37813
- function Mousewheel({
37814
- swiper,
37815
- extendParams,
37816
- on,
37817
- emit
37818
- }) {
37940
+ function Mousewheel(_ref) {
37941
+ let {
37942
+ swiper,
37943
+ extendParams,
37944
+ on,
37945
+ emit
37946
+ } = _ref;
37819
37947
  const window = getWindow();
37820
37948
  extendParams({
37821
37949
  mousewheel: {
@@ -38252,12 +38380,13 @@
38252
38380
  return params;
38253
38381
  }
38254
38382
 
38255
- function Navigation({
38256
- swiper,
38257
- extendParams,
38258
- on,
38259
- emit
38260
- }) {
38383
+ function Navigation(_ref) {
38384
+ let {
38385
+ swiper,
38386
+ extendParams,
38387
+ on,
38388
+ emit
38389
+ } = _ref;
38261
38390
  extendParams({
38262
38391
  navigation: {
38263
38392
  nextEl: null,
@@ -38309,19 +38438,19 @@
38309
38438
  $nextEl,
38310
38439
  $prevEl
38311
38440
  } = swiper.navigation;
38312
- toggleEl($prevEl, swiper.isBeginning);
38313
- toggleEl($nextEl, swiper.isEnd);
38441
+ toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);
38442
+ toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);
38314
38443
  }
38315
38444
 
38316
38445
  function onPrevClick(e) {
38317
38446
  e.preventDefault();
38318
- if (swiper.isBeginning && !swiper.params.loop) return;
38447
+ if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;
38319
38448
  swiper.slidePrev();
38320
38449
  }
38321
38450
 
38322
38451
  function onNextClick(e) {
38323
38452
  e.preventDefault();
38324
- if (swiper.isEnd && !swiper.params.loop) return;
38453
+ if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;
38325
38454
  swiper.slideNext();
38326
38455
  }
38327
38456
 
@@ -38436,17 +38565,22 @@
38436
38565
  });
38437
38566
  }
38438
38567
 
38439
- function classesToSelector(classes = '') {
38568
+ function classesToSelector(classes) {
38569
+ if (classes === void 0) {
38570
+ classes = '';
38571
+ }
38572
+
38440
38573
  return `.${classes.trim().replace(/([\.:!\/])/g, '\\$1') // eslint-disable-line
38441
38574
  .replace(/ /g, '.')}`;
38442
38575
  }
38443
38576
 
38444
- function Pagination({
38445
- swiper,
38446
- extendParams,
38447
- on,
38448
- emit
38449
- }) {
38577
+ function Pagination(_ref) {
38578
+ let {
38579
+ swiper,
38580
+ extendParams,
38581
+ on,
38582
+ emit
38583
+ } = _ref;
38450
38584
  const pfx = 'swiper-pagination';
38451
38585
  extendParams({
38452
38586
  pagination: {
@@ -38536,7 +38670,7 @@
38536
38670
  $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);
38537
38671
 
38538
38672
  if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {
38539
- dynamicBulletIndex += current - swiper.previousIndex;
38673
+ dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);
38540
38674
 
38541
38675
  if (dynamicBulletIndex > params.dynamicMainBullets - 1) {
38542
38676
  dynamicBulletIndex = params.dynamicMainBullets - 1;
@@ -38545,7 +38679,7 @@
38545
38679
  }
38546
38680
  }
38547
38681
 
38548
- firstIndex = current - dynamicBulletIndex;
38682
+ firstIndex = Math.max(current - dynamicBulletIndex, 0);
38549
38683
  lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);
38550
38684
  midIndex = (lastIndex + firstIndex) / 2;
38551
38685
  }
@@ -38589,7 +38723,7 @@
38589
38723
  }
38590
38724
 
38591
38725
  if (swiper.params.loop) {
38592
- if (bulletIndex >= bullets.length - params.dynamicMainBullets) {
38726
+ if (bulletIndex >= bullets.length) {
38593
38727
  for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {
38594
38728
  bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);
38595
38729
  }
@@ -38849,12 +38983,13 @@
38849
38983
  });
38850
38984
  }
38851
38985
 
38852
- function Scrollbar({
38853
- swiper,
38854
- extendParams,
38855
- on,
38856
- emit
38857
- }) {
38986
+ function Scrollbar(_ref) {
38987
+ let {
38988
+ swiper,
38989
+ extendParams,
38990
+ on,
38991
+ emit
38992
+ } = _ref;
38858
38993
  const document = getDocument();
38859
38994
  let isTouched = false;
38860
38995
  let timeout = null;
@@ -39207,11 +39342,12 @@
39207
39342
  });
39208
39343
  }
39209
39344
 
39210
- function Parallax({
39211
- swiper,
39212
- extendParams,
39213
- on
39214
- }) {
39345
+ function Parallax(_ref) {
39346
+ let {
39347
+ swiper,
39348
+ extendParams,
39349
+ on
39350
+ } = _ref;
39215
39351
  extendParams({
39216
39352
  parallax: {
39217
39353
  enabled: false
@@ -39290,7 +39426,11 @@
39290
39426
  });
39291
39427
  };
39292
39428
 
39293
- const setTransition = (duration = swiper.params.speed) => {
39429
+ const setTransition = function (duration) {
39430
+ if (duration === void 0) {
39431
+ duration = swiper.params.speed;
39432
+ }
39433
+
39294
39434
  const {
39295
39435
  $el
39296
39436
  } = swiper;
@@ -39321,12 +39461,13 @@
39321
39461
  });
39322
39462
  }
39323
39463
 
39324
- function Zoom({
39325
- swiper,
39326
- extendParams,
39327
- on,
39328
- emit
39329
- }) {
39464
+ function Zoom(_ref) {
39465
+ let {
39466
+ swiper,
39467
+ extendParams,
39468
+ on,
39469
+ emit
39470
+ } = _ref;
39330
39471
  const window = getWindow();
39331
39472
  extendParams({
39332
39473
  zoom: {
@@ -39424,7 +39565,7 @@
39424
39565
  if (!gesture.$slideEl || !gesture.$slideEl.length) {
39425
39566
  gesture.$slideEl = $$1(e.target).closest(`.${swiper.params.slideClass}`);
39426
39567
  if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);
39427
- gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('img, svg, canvas, picture, .swiper-zoom-target');
39568
+ gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);
39428
39569
  gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);
39429
39570
  gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;
39430
39571
 
@@ -39665,7 +39806,7 @@
39665
39806
  }
39666
39807
  }
39667
39808
 
39668
- gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('img, svg, canvas, picture, .swiper-zoom-target');
39809
+ gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);
39669
39810
  gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);
39670
39811
  }
39671
39812
 
@@ -39760,7 +39901,7 @@
39760
39901
  gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);
39761
39902
  }
39762
39903
 
39763
- gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('img, svg, canvas, picture, .swiper-zoom-target');
39904
+ gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);
39764
39905
  gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);
39765
39906
  }
39766
39907
 
@@ -39931,12 +40072,13 @@
39931
40072
  });
39932
40073
  }
39933
40074
 
39934
- function Lazy({
39935
- swiper,
39936
- extendParams,
39937
- on,
39938
- emit
39939
- }) {
40075
+ function Lazy(_ref) {
40076
+ let {
40077
+ swiper,
40078
+ extendParams,
40079
+ on,
40080
+ emit
40081
+ } = _ref;
39940
40082
  extendParams({
39941
40083
  lazy: {
39942
40084
  checkInView: false,
@@ -39955,7 +40097,11 @@
39955
40097
  let scrollHandlerAttached = false;
39956
40098
  let initialImageLoaded = false;
39957
40099
 
39958
- function loadInSlide(index, loadInDuplicate = true) {
40100
+ function loadInSlide(index, loadInDuplicate) {
40101
+ if (loadInDuplicate === void 0) {
40102
+ loadInDuplicate = true;
40103
+ }
40104
+
39959
40105
  const params = swiper.params.lazy;
39960
40106
  if (typeof index === 'undefined') return;
39961
40107
  if (swiper.slides.length === 0) return;
@@ -40214,11 +40360,12 @@
40214
40360
  }
40215
40361
 
40216
40362
  /* eslint no-bitwise: ["error", { "allow": [">>"] }] */
40217
- function Controller({
40218
- swiper,
40219
- extendParams,
40220
- on
40221
- }) {
40363
+ function Controller(_ref) {
40364
+ let {
40365
+ swiper,
40366
+ extendParams,
40367
+ on
40368
+ } = _ref;
40222
40369
  extendParams({
40223
40370
  controller: {
40224
40371
  control: undefined,
@@ -40404,11 +40551,12 @@
40404
40551
  });
40405
40552
  }
40406
40553
 
40407
- function A11y({
40408
- swiper,
40409
- extendParams,
40410
- on
40411
- }) {
40554
+ function A11y(_ref) {
40555
+ let {
40556
+ swiper,
40557
+ extendParams,
40558
+ on
40559
+ } = _ref;
40412
40560
  extendParams({
40413
40561
  a11y: {
40414
40562
  enabled: true,
@@ -40434,7 +40582,11 @@
40434
40582
  notification.html(message);
40435
40583
  }
40436
40584
 
40437
- function getRandomNumber(size = 16) {
40585
+ function getRandomNumber(size) {
40586
+ if (size === void 0) {
40587
+ size = 16;
40588
+ }
40589
+
40438
40590
  const randomChar = () => Math.round(16 * Math.random()).toString(16);
40439
40591
 
40440
40592
  return 'x'.repeat(size).replace(/x/g, randomChar);
@@ -40515,7 +40667,7 @@
40515
40667
  }
40516
40668
 
40517
40669
  function updateNavigation() {
40518
- if (swiper.params.loop || !swiper.navigation) return;
40670
+ if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;
40519
40671
  const {
40520
40672
  $nextEl,
40521
40673
  $prevEl
@@ -40543,23 +40695,34 @@
40543
40695
  }
40544
40696
 
40545
40697
  function hasPagination() {
40546
- return swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length;
40698
+ return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;
40699
+ }
40700
+
40701
+ function hasClickablePagination() {
40702
+ return hasPagination() && swiper.params.pagination.clickable;
40547
40703
  }
40548
40704
 
40549
40705
  function updatePagination() {
40550
40706
  const params = swiper.params.a11y;
40707
+ if (!hasPagination()) return;
40708
+ swiper.pagination.bullets.each(bulletEl => {
40709
+ const $bulletEl = $$1(bulletEl);
40551
40710
 
40552
- if (hasPagination()) {
40553
- swiper.pagination.bullets.each(bulletEl => {
40554
- const $bulletEl = $$1(bulletEl);
40711
+ if (swiper.params.pagination.clickable) {
40555
40712
  makeElFocusable($bulletEl);
40556
40713
 
40557
40714
  if (!swiper.params.pagination.renderBullet) {
40558
40715
  addElRole($bulletEl, 'button');
40559
40716
  addElLabel($bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, $bulletEl.index() + 1));
40560
40717
  }
40561
- });
40562
- }
40718
+ }
40719
+
40720
+ if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) {
40721
+ $bulletEl.attr('aria-current', 'true');
40722
+ } else {
40723
+ $bulletEl.removeAttr('aria-current');
40724
+ }
40725
+ });
40563
40726
  }
40564
40727
 
40565
40728
  const initNavEl = ($el, wrapperId, message) => {
@@ -40574,6 +40737,15 @@
40574
40737
  addElControls($el, wrapperId);
40575
40738
  };
40576
40739
 
40740
+ const handleFocus = e => {
40741
+ const slideEl = e.target.closest(`.${swiper.params.slideClass}`);
40742
+ if (!slideEl || !swiper.slides.includes(slideEl)) return;
40743
+ const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;
40744
+ const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);
40745
+ if (isActive || isVisible) return;
40746
+ swiper.slideTo(swiper.slides.indexOf(slideEl), 0);
40747
+ };
40748
+
40577
40749
  function init() {
40578
40750
  const params = swiper.params.a11y;
40579
40751
  swiper.$el.append(liveRegion); // Container
@@ -40628,9 +40800,12 @@
40628
40800
  } // Pagination
40629
40801
 
40630
40802
 
40631
- if (hasPagination()) {
40803
+ if (hasClickablePagination()) {
40632
40804
  swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);
40633
- }
40805
+ } // Tab focus
40806
+
40807
+
40808
+ swiper.$el.on('focus', handleFocus, true);
40634
40809
  }
40635
40810
 
40636
40811
  function destroy() {
@@ -40655,9 +40830,12 @@
40655
40830
  } // Pagination
40656
40831
 
40657
40832
 
40658
- if (hasPagination()) {
40833
+ if (hasClickablePagination()) {
40659
40834
  swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);
40660
- }
40835
+ } // Tab focus
40836
+
40837
+
40838
+ swiper.$el.off('focus', handleFocus, true);
40661
40839
  }
40662
40840
 
40663
40841
  on('beforeInit', () => {
@@ -40666,13 +40844,8 @@
40666
40844
  on('afterInit', () => {
40667
40845
  if (!swiper.params.a11y.enabled) return;
40668
40846
  init();
40669
- updateNavigation();
40670
- });
40671
- on('toEdge', () => {
40672
- if (!swiper.params.a11y.enabled) return;
40673
- updateNavigation();
40674
40847
  });
40675
- on('fromEdge', () => {
40848
+ on('fromEdge toEdge afterInit lock unlock', () => {
40676
40849
  if (!swiper.params.a11y.enabled) return;
40677
40850
  updateNavigation();
40678
40851
  });
@@ -40686,11 +40859,12 @@
40686
40859
  });
40687
40860
  }
40688
40861
 
40689
- function History({
40690
- swiper,
40691
- extendParams,
40692
- on
40693
- }) {
40862
+ function History(_ref) {
40863
+ let {
40864
+ swiper,
40865
+ extendParams,
40866
+ on
40867
+ } = _ref;
40694
40868
  extendParams({
40695
40869
  history: {
40696
40870
  enabled: false,
@@ -40836,12 +41010,13 @@
40836
41010
  });
40837
41011
  }
40838
41012
 
40839
- function HashNavigation({
40840
- swiper,
40841
- extendParams,
40842
- emit,
40843
- on
40844
- }) {
41013
+ function HashNavigation(_ref) {
41014
+ let {
41015
+ swiper,
41016
+ extendParams,
41017
+ emit,
41018
+ on
41019
+ } = _ref;
40845
41020
  let initialized = false;
40846
41021
  const document = getDocument();
40847
41022
  const window = getWindow();
@@ -40932,12 +41107,13 @@
40932
41107
  }
40933
41108
 
40934
41109
  /* eslint no-underscore-dangle: "off" */
40935
- function Autoplay({
40936
- swiper,
40937
- extendParams,
40938
- on,
40939
- emit
40940
- }) {
41110
+ function Autoplay(_ref) {
41111
+ let {
41112
+ swiper,
41113
+ extendParams,
41114
+ on,
41115
+ emit
41116
+ } = _ref;
40941
41117
  let timeout;
40942
41118
  swiper.autoplay = {
40943
41119
  running: false,
@@ -41072,6 +41248,7 @@
41072
41248
  if (swiper.params.autoplay.disableOnInteraction) {
41073
41249
  stop();
41074
41250
  } else {
41251
+ emit('autoplayPause');
41075
41252
  pause();
41076
41253
  }
41077
41254
 
@@ -41086,6 +41263,7 @@
41086
41263
  }
41087
41264
 
41088
41265
  swiper.autoplay.paused = false;
41266
+ emit('autoplayResume');
41089
41267
  run();
41090
41268
  }
41091
41269
 
@@ -41150,11 +41328,12 @@
41150
41328
  });
41151
41329
  }
41152
41330
 
41153
- function Thumb({
41154
- swiper,
41155
- extendParams,
41156
- on
41157
- }) {
41331
+ function Thumb(_ref) {
41332
+ let {
41333
+ swiper,
41334
+ extendParams,
41335
+ on
41336
+ } = _ref;
41158
41337
  extendParams({
41159
41338
  thumbs: {
41160
41339
  swiper: null,
@@ -41353,12 +41532,13 @@
41353
41532
  });
41354
41533
  }
41355
41534
 
41356
- function freeMode({
41357
- swiper,
41358
- extendParams,
41359
- emit,
41360
- once
41361
- }) {
41535
+ function freeMode(_ref) {
41536
+ let {
41537
+ swiper,
41538
+ extendParams,
41539
+ emit,
41540
+ once
41541
+ } = _ref;
41362
41542
  extendParams({
41363
41543
  freeMode: {
41364
41544
  enabled: false,
@@ -41372,6 +41552,16 @@
41372
41552
  }
41373
41553
  });
41374
41554
 
41555
+ function onTouchStart() {
41556
+ const translate = swiper.getTranslate();
41557
+ swiper.setTranslate(translate);
41558
+ swiper.setTransition(0);
41559
+ swiper.touchEventsData.velocities.length = 0;
41560
+ swiper.freeMode.onTouchEnd({
41561
+ currentPos: swiper.rtl ? swiper.translate : -swiper.translate
41562
+ });
41563
+ }
41564
+
41375
41565
  function onTouchMove() {
41376
41566
  const {
41377
41567
  touchEventsData: data,
@@ -41391,9 +41581,10 @@
41391
41581
  });
41392
41582
  }
41393
41583
 
41394
- function onTouchEnd({
41395
- currentPos
41396
- }) {
41584
+ function onTouchEnd(_ref2) {
41585
+ let {
41586
+ currentPos
41587
+ } = _ref2;
41397
41588
  const {
41398
41589
  params,
41399
41590
  $wrapperEl,
@@ -41592,16 +41783,18 @@
41592
41783
 
41593
41784
  Object.assign(swiper, {
41594
41785
  freeMode: {
41786
+ onTouchStart,
41595
41787
  onTouchMove,
41596
41788
  onTouchEnd
41597
41789
  }
41598
41790
  });
41599
41791
  }
41600
41792
 
41601
- function Grid({
41602
- swiper,
41603
- extendParams
41604
- }) {
41793
+ function Grid(_ref) {
41794
+ let {
41795
+ swiper,
41796
+ extendParams
41797
+ } = _ref;
41605
41798
  extendParams({
41606
41799
  grid: {
41607
41800
  rows: 1,
@@ -41902,9 +42095,10 @@
41902
42095
  swiper.removeSlide(slidesIndexes);
41903
42096
  }
41904
42097
 
41905
- function Manipulation({
41906
- swiper
41907
- }) {
42098
+ function Manipulation(_ref) {
42099
+ let {
42100
+ swiper
42101
+ } = _ref;
41908
42102
  Object.assign(swiper, {
41909
42103
  appendSlide: appendSlide.bind(swiper),
41910
42104
  prependSlide: prependSlide.bind(swiper),
@@ -41957,12 +42151,13 @@
41957
42151
  return $slideEl;
41958
42152
  }
41959
42153
 
41960
- function effectVirtualTransitionEnd({
41961
- swiper,
41962
- duration,
41963
- transformEl,
41964
- allSlides
41965
- }) {
42154
+ function effectVirtualTransitionEnd(_ref) {
42155
+ let {
42156
+ swiper,
42157
+ duration,
42158
+ transformEl,
42159
+ allSlides
42160
+ } = _ref;
41966
42161
  const {
41967
42162
  slides,
41968
42163
  activeIndex,
@@ -41993,11 +42188,12 @@
41993
42188
  }
41994
42189
  }
41995
42190
 
41996
- function EffectFade({
41997
- swiper,
41998
- extendParams,
41999
- on
42000
- }) {
42191
+ function EffectFade(_ref) {
42192
+ let {
42193
+ swiper,
42194
+ extendParams,
42195
+ on
42196
+ } = _ref;
42001
42197
  extendParams({
42002
42198
  fadeEffect: {
42003
42199
  crossFade: false,
@@ -42061,11 +42257,12 @@
42061
42257
  });
42062
42258
  }
42063
42259
 
42064
- function EffectCube({
42065
- swiper,
42066
- extendParams,
42067
- on
42068
- }) {
42260
+ function EffectCube(_ref) {
42261
+ let {
42262
+ swiper,
42263
+ extendParams,
42264
+ on
42265
+ } = _ref;
42069
42266
  extendParams({
42070
42267
  cubeEffect: {
42071
42268
  slideShadows: true,
@@ -42253,11 +42450,12 @@
42253
42450
  return $shadowEl;
42254
42451
  }
42255
42452
 
42256
- function EffectFlip({
42257
- swiper,
42258
- extendParams,
42259
- on
42260
- }) {
42453
+ function EffectFlip(_ref) {
42454
+ let {
42455
+ swiper,
42456
+ extendParams,
42457
+ on
42458
+ } = _ref;
42261
42459
  extendParams({
42262
42460
  flipEffect: {
42263
42461
  slideShadows: true,
@@ -42352,11 +42550,12 @@
42352
42550
  });
42353
42551
  }
42354
42552
 
42355
- function EffectCoverflow({
42356
- swiper,
42357
- extendParams,
42358
- on
42359
- }) {
42553
+ function EffectCoverflow(_ref) {
42554
+ let {
42555
+ swiper,
42556
+ extendParams,
42557
+ on
42558
+ } = _ref;
42360
42559
  extendParams({
42361
42560
  coverflowEffect: {
42362
42561
  rotate: 50,
@@ -42453,11 +42652,12 @@
42453
42652
  });
42454
42653
  }
42455
42654
 
42456
- function EffectCreative({
42457
- swiper,
42458
- extendParams,
42459
- on
42460
- }) {
42655
+ function EffectCreative(_ref) {
42656
+ let {
42657
+ swiper,
42658
+ extendParams,
42659
+ on
42660
+ } = _ref;
42461
42661
  extendParams({
42462
42662
  creativeEffect: {
42463
42663
  transformEl: null,
@@ -42604,11 +42804,12 @@
42604
42804
  });
42605
42805
  }
42606
42806
 
42607
- function EffectCards({
42608
- swiper,
42609
- extendParams,
42610
- on
42611
- }) {
42807
+ function EffectCards(_ref) {
42808
+ let {
42809
+ swiper,
42810
+ extendParams,
42811
+ on
42812
+ } = _ref;
42612
42813
  extendParams({
42613
42814
  cardsEffect: {
42614
42815
  slideShadows: true,
@@ -42727,15 +42928,15 @@
42727
42928
  }
42728
42929
 
42729
42930
  /**
42730
- * Swiper 7.2.0
42931
+ * Swiper 8.0.6
42731
42932
  * Most modern mobile touch slider and framework with hardware accelerated transitions
42732
42933
  * https://swiperjs.com
42733
42934
  *
42734
- * Copyright 2014-2021 Vladimir Kharlampidi
42935
+ * Copyright 2014-2022 Vladimir Kharlampidi
42735
42936
  *
42736
42937
  * Released under the MIT License
42737
42938
  *
42738
- * Released on: October 27, 2021
42939
+ * Released on: February 14, 2022
42739
42940
  */
42740
42941
 
42741
42942
  const modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Lazy, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards];
@@ -50229,6 +50430,19 @@
50229
50430
 
50230
50431
  };
50231
50432
 
50433
+ const Breadcrumbs = {};
50434
+ var Breadcrumbs$1 = {
50435
+ name: 'breadrumbs',
50436
+
50437
+ create() {
50438
+ const app = this;
50439
+ bindMethods(app, {
50440
+ breadrumbs: Breadcrumbs
50441
+ });
50442
+ }
50443
+
50444
+ };
50445
+
50232
50446
  var Elevation = {
50233
50447
  name: 'elevation'
50234
50448
  };
@@ -50244,7 +50458,7 @@
50244
50458
 
50245
50459
 
50246
50460
  Router.use([RouterComponentLoaderModule]);
50247
- Framework7.use([DeviceModule, SupportModule, UtilsModule, ResizeModule, RequestModule, TouchModule, ClicksModule, RouterModule, HistoryModule, ComponentModule, ServiceWorkerModule, StoreModule, Statusbar$1, View, Navbar$1, Toolbar$1, Subnavbar, TouchRipple, Modal, Appbar, Dialog, Popup, LoginScreen, Popover, Actions, Sheet, Toast, Preloader$1, Progressbar$1, Sortable$1, Swipeout$1, Accordion$1, ContactsList, VirtualList, ListIndex, Timeline, Tabs, Panel, Card, Chip, Form, Input$1, Checkbox, Radio, Toggle, Range, Stepper, SmartSelect, Grid$2, Calendar, Picker, InfiniteScroll$1, PullToRefresh, Lazy$2, DataTable, Fab$1, Searchbar, Messages, Messagebar, Swiper, PhotoBrowser, Notification, Autocomplete, Tooltip, Gauge, Skeleton, Menu$1, ColorPicker, Treeview$1, TextEditor, PieChart, AreaChart, Elevation, Typography]);
50461
+ Framework7.use([DeviceModule, SupportModule, UtilsModule, ResizeModule, RequestModule, TouchModule, ClicksModule, RouterModule, HistoryModule, ComponentModule, ServiceWorkerModule, StoreModule, Statusbar$1, View, Navbar$1, Toolbar$1, Subnavbar, TouchRipple, Modal, Appbar, Dialog, Popup, LoginScreen, Popover, Actions, Sheet, Toast, Preloader$1, Progressbar$1, Sortable$1, Swipeout$1, Accordion$1, ContactsList, VirtualList, ListIndex, Timeline, Tabs, Panel, Card, Chip, Form, Input$1, Checkbox, Radio, Toggle, Range, Stepper, SmartSelect, Grid$2, Calendar, Picker, InfiniteScroll$1, PullToRefresh, Lazy$2, DataTable, Fab$1, Searchbar, Messages, Messagebar, Swiper, PhotoBrowser, Notification, Autocomplete, Tooltip, Gauge, Skeleton, Menu$1, ColorPicker, Treeview$1, TextEditor, PieChart, AreaChart, Breadcrumbs$1, Elevation, Typography]);
50248
50462
 
50249
50463
  return Framework7;
50250
50464