@gem-sdk/swiper 0.0.7

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 (321) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +11 -0
  3. package/modules/a11y-element.css +9 -0
  4. package/modules/a11y-element.min.css +1 -0
  5. package/modules/a11y.css +9 -0
  6. package/modules/a11y.less +9 -0
  7. package/modules/a11y.min.css +1 -0
  8. package/modules/a11y.min.mjs +2 -0
  9. package/modules/a11y.min.mjs.map +1 -0
  10. package/modules/a11y.mjs +377 -0
  11. package/modules/a11y.scss +9 -0
  12. package/modules/autoplay-element.css +0 -0
  13. package/modules/autoplay-element.min.css +0 -0
  14. package/modules/autoplay.css +0 -0
  15. package/modules/autoplay.less +0 -0
  16. package/modules/autoplay.min.css +0 -0
  17. package/modules/autoplay.min.mjs +2 -0
  18. package/modules/autoplay.min.mjs.map +1 -0
  19. package/modules/autoplay.mjs +304 -0
  20. package/modules/autoplay.scss +0 -0
  21. package/modules/controller-element.css +0 -0
  22. package/modules/controller-element.min.css +0 -0
  23. package/modules/controller.css +0 -0
  24. package/modules/controller.less +0 -0
  25. package/modules/controller.min.css +0 -0
  26. package/modules/controller.min.mjs +2 -0
  27. package/modules/controller.min.mjs.map +1 -0
  28. package/modules/controller.mjs +191 -0
  29. package/modules/controller.scss +0 -0
  30. package/modules/effect-cards-element.css +9 -0
  31. package/modules/effect-cards-element.min.css +1 -0
  32. package/modules/effect-cards.css +9 -0
  33. package/modules/effect-cards.less +10 -0
  34. package/modules/effect-cards.min.css +1 -0
  35. package/modules/effect-cards.min.mjs +2 -0
  36. package/modules/effect-cards.min.mjs.map +1 -0
  37. package/modules/effect-cards.mjs +128 -0
  38. package/modules/effect-cards.scss +10 -0
  39. package/modules/effect-coverflow-element.css +0 -0
  40. package/modules/effect-coverflow-element.min.css +0 -0
  41. package/modules/effect-coverflow.css +0 -0
  42. package/modules/effect-coverflow.less +2 -0
  43. package/modules/effect-coverflow.min.css +0 -0
  44. package/modules/effect-coverflow.min.mjs +2 -0
  45. package/modules/effect-coverflow.min.mjs.map +1 -0
  46. package/modules/effect-coverflow.mjs +104 -0
  47. package/modules/effect-coverflow.scss +2 -0
  48. package/modules/effect-creative-element.css +6 -0
  49. package/modules/effect-creative-element.min.css +1 -0
  50. package/modules/effect-creative.css +6 -0
  51. package/modules/effect-creative.less +7 -0
  52. package/modules/effect-creative.min.css +1 -0
  53. package/modules/effect-creative.min.mjs +2 -0
  54. package/modules/effect-creative.min.mjs.map +1 -0
  55. package/modules/effect-creative.mjs +146 -0
  56. package/modules/effect-creative.scss +7 -0
  57. package/modules/effect-cube-element.css +53 -0
  58. package/modules/effect-cube-element.min.css +1 -0
  59. package/modules/effect-cube.css +62 -0
  60. package/modules/effect-cube.less +71 -0
  61. package/modules/effect-cube.min.css +1 -0
  62. package/modules/effect-cube.min.mjs +2 -0
  63. package/modules/effect-cube.min.mjs.map +1 -0
  64. package/modules/effect-cube.mjs +174 -0
  65. package/modules/effect-cube.scss +71 -0
  66. package/modules/effect-fade-element.css +16 -0
  67. package/modules/effect-fade-element.min.css +1 -0
  68. package/modules/effect-fade.css +16 -0
  69. package/modules/effect-fade.less +20 -0
  70. package/modules/effect-fade.min.css +1 -0
  71. package/modules/effect-fade.min.mjs +2 -0
  72. package/modules/effect-fade.min.mjs.map +1 -0
  73. package/modules/effect-fade.mjs +66 -0
  74. package/modules/effect-fade.scss +20 -0
  75. package/modules/effect-flip-element.css +17 -0
  76. package/modules/effect-flip-element.min.css +1 -0
  77. package/modules/effect-flip.css +26 -0
  78. package/modules/effect-flip.less +30 -0
  79. package/modules/effect-flip.min.css +1 -0
  80. package/modules/effect-flip.min.mjs +2 -0
  81. package/modules/effect-flip.min.mjs.map +1 -0
  82. package/modules/effect-flip.mjs +111 -0
  83. package/modules/effect-flip.scss +30 -0
  84. package/modules/free-mode-element.css +4 -0
  85. package/modules/free-mode-element.min.css +1 -0
  86. package/modules/free-mode.css +4 -0
  87. package/modules/free-mode.less +4 -0
  88. package/modules/free-mode.min.css +1 -0
  89. package/modules/free-mode.min.mjs +2 -0
  90. package/modules/free-mode.min.mjs.map +1 -0
  91. package/modules/free-mode.mjs +237 -0
  92. package/modules/free-mode.scss +4 -0
  93. package/modules/grid-element.css +7 -0
  94. package/modules/grid-element.min.css +1 -0
  95. package/modules/grid.css +7 -0
  96. package/modules/grid.less +7 -0
  97. package/modules/grid.min.css +1 -0
  98. package/modules/grid.min.mjs +2 -0
  99. package/modules/grid.min.mjs.map +1 -0
  100. package/modules/grid.mjs +155 -0
  101. package/modules/grid.scss +7 -0
  102. package/modules/hash-navigation-element.css +0 -0
  103. package/modules/hash-navigation-element.min.css +0 -0
  104. package/modules/hash-navigation.css +0 -0
  105. package/modules/hash-navigation.less +2 -0
  106. package/modules/hash-navigation.min.css +0 -0
  107. package/modules/hash-navigation.min.mjs +2 -0
  108. package/modules/hash-navigation.min.mjs.map +1 -0
  109. package/modules/hash-navigation.mjs +93 -0
  110. package/modules/hash-navigation.scss +0 -0
  111. package/modules/history-element.css +0 -0
  112. package/modules/history-element.min.css +0 -0
  113. package/modules/history.css +0 -0
  114. package/modules/history.less +0 -0
  115. package/modules/history.min.css +0 -0
  116. package/modules/history.min.mjs +2 -0
  117. package/modules/history.min.mjs.map +1 -0
  118. package/modules/history.mjs +142 -0
  119. package/modules/history.scss +0 -0
  120. package/modules/index.min.mjs +2 -0
  121. package/modules/index.min.mjs.map +1 -0
  122. package/modules/index.mjs +23 -0
  123. package/modules/keyboard-element.css +0 -0
  124. package/modules/keyboard-element.min.css +0 -0
  125. package/modules/keyboard.css +0 -0
  126. package/modules/keyboard.less +0 -0
  127. package/modules/keyboard.min.css +0 -0
  128. package/modules/keyboard.min.mjs +2 -0
  129. package/modules/keyboard.min.mjs.map +1 -0
  130. package/modules/keyboard.mjs +117 -0
  131. package/modules/keyboard.scss +0 -0
  132. package/modules/manipulation-element.css +0 -0
  133. package/modules/manipulation-element.min.css +0 -0
  134. package/modules/manipulation.css +0 -0
  135. package/modules/manipulation.less +0 -0
  136. package/modules/manipulation.min.css +0 -0
  137. package/modules/manipulation.min.mjs +2 -0
  138. package/modules/manipulation.min.mjs.map +1 -0
  139. package/modules/manipulation.mjs +193 -0
  140. package/modules/manipulation.scss +0 -0
  141. package/modules/mousewheel-element.css +0 -0
  142. package/modules/mousewheel-element.min.css +0 -0
  143. package/modules/mousewheel.css +0 -0
  144. package/modules/mousewheel.less +0 -0
  145. package/modules/mousewheel.min.css +0 -0
  146. package/modules/mousewheel.min.mjs +2 -0
  147. package/modules/mousewheel.min.mjs.map +1 -0
  148. package/modules/mousewheel.mjs +395 -0
  149. package/modules/mousewheel.scss +0 -0
  150. package/modules/navigation-element.css +63 -0
  151. package/modules/navigation-element.min.css +1 -0
  152. package/modules/navigation.css +86 -0
  153. package/modules/navigation.less +86 -0
  154. package/modules/navigation.min.css +1 -0
  155. package/modules/navigation.min.mjs +2 -0
  156. package/modules/navigation.min.mjs.map +1 -0
  157. package/modules/navigation.mjs +200 -0
  158. package/modules/navigation.scss +87 -0
  159. package/modules/pagination-element.css +184 -0
  160. package/modules/pagination-element.min.css +1 -0
  161. package/modules/pagination.css +184 -0
  162. package/modules/pagination.less +187 -0
  163. package/modules/pagination.min.css +1 -0
  164. package/modules/pagination.min.mjs +2 -0
  165. package/modules/pagination.min.mjs.map +1 -0
  166. package/modules/pagination.mjs +467 -0
  167. package/modules/pagination.scss +188 -0
  168. package/modules/parallax-element.css +0 -0
  169. package/modules/parallax-element.min.css +0 -0
  170. package/modules/parallax.css +0 -0
  171. package/modules/parallax.less +0 -0
  172. package/modules/parallax.min.css +0 -0
  173. package/modules/parallax.min.mjs +2 -0
  174. package/modules/parallax.min.mjs.map +1 -0
  175. package/modules/parallax.mjs +124 -0
  176. package/modules/parallax.scss +0 -0
  177. package/modules/scrollbar-element.css +58 -0
  178. package/modules/scrollbar-element.min.css +1 -0
  179. package/modules/scrollbar.css +58 -0
  180. package/modules/scrollbar.less +59 -0
  181. package/modules/scrollbar.min.css +1 -0
  182. package/modules/scrollbar.min.mjs +2 -0
  183. package/modules/scrollbar.min.mjs.map +1 -0
  184. package/modules/scrollbar.mjs +366 -0
  185. package/modules/scrollbar.scss +61 -0
  186. package/modules/thumbs-element.css +0 -0
  187. package/modules/thumbs-element.min.css +0 -0
  188. package/modules/thumbs.css +0 -0
  189. package/modules/thumbs.less +5 -0
  190. package/modules/thumbs.min.css +0 -0
  191. package/modules/thumbs.min.mjs +2 -0
  192. package/modules/thumbs.min.mjs.map +1 -0
  193. package/modules/thumbs.mjs +197 -0
  194. package/modules/thumbs.scss +5 -0
  195. package/modules/virtual-element.css +19 -0
  196. package/modules/virtual-element.min.css +1 -0
  197. package/modules/virtual.css +19 -0
  198. package/modules/virtual.less +26 -0
  199. package/modules/virtual.min.css +1 -0
  200. package/modules/virtual.min.mjs +2 -0
  201. package/modules/virtual.min.mjs.map +1 -0
  202. package/modules/virtual.mjs +349 -0
  203. package/modules/virtual.scss +26 -0
  204. package/modules/zoom-element.css +5 -0
  205. package/modules/zoom-element.min.css +1 -0
  206. package/modules/zoom.css +21 -0
  207. package/modules/zoom.less +23 -0
  208. package/modules/zoom.min.css +1 -0
  209. package/modules/zoom.min.mjs +2 -0
  210. package/modules/zoom.min.mjs.map +1 -0
  211. package/modules/zoom.mjs +701 -0
  212. package/modules/zoom.scss +21 -0
  213. package/package.json +213 -0
  214. package/shared/classes-to-selector.min.mjs +2 -0
  215. package/shared/classes-to-selector.min.mjs.map +1 -0
  216. package/shared/classes-to-selector.mjs +9 -0
  217. package/shared/create-element-if-not-defined.min.mjs +2 -0
  218. package/shared/create-element-if-not-defined.min.mjs.map +1 -0
  219. package/shared/create-element-if-not-defined.mjs +21 -0
  220. package/shared/create-shadow.min.mjs +2 -0
  221. package/shared/create-shadow.min.mjs.map +1 -0
  222. package/shared/create-shadow.mjs +14 -0
  223. package/shared/effect-init.min.mjs +2 -0
  224. package/shared/effect-init.min.mjs.map +1 -0
  225. package/shared/effect-init.mjs +58 -0
  226. package/shared/effect-target.min.mjs +2 -0
  227. package/shared/effect-target.min.mjs.map +1 -0
  228. package/shared/effect-target.mjs +12 -0
  229. package/shared/effect-virtual-transition-end.min.mjs +2 -0
  230. package/shared/effect-virtual-transition-end.min.mjs.map +1 -0
  231. package/shared/effect-virtual-transition-end.mjs +48 -0
  232. package/shared/get-element-params.min.mjs +2 -0
  233. package/shared/get-element-params.min.mjs.map +1 -0
  234. package/shared/get-element-params.mjs +113 -0
  235. package/shared/ssr-window.esm.min.mjs +2 -0
  236. package/shared/ssr-window.esm.min.mjs.map +1 -0
  237. package/shared/ssr-window.esm.mjs +146 -0
  238. package/shared/swiper-core.min.mjs +2 -0
  239. package/shared/swiper-core.min.mjs.map +1 -0
  240. package/shared/swiper-core.mjs +3969 -0
  241. package/shared/update-on-virtual-data.min.mjs +2 -0
  242. package/shared/update-on-virtual-data.min.mjs.map +1 -0
  243. package/shared/update-on-virtual-data.mjs +131 -0
  244. package/shared/update-swiper.min.mjs +2 -0
  245. package/shared/update-swiper.min.mjs.map +1 -0
  246. package/shared/update-swiper.mjs +238 -0
  247. package/shared/utils.min.mjs +2 -0
  248. package/shared/utils.min.mjs.map +1 -0
  249. package/shared/utils.mjs +343 -0
  250. package/swiper-bundle.css +735 -0
  251. package/swiper-bundle.js +9870 -0
  252. package/swiper-bundle.min.css +13 -0
  253. package/swiper-bundle.min.js +14 -0
  254. package/swiper-bundle.min.js.map +1 -0
  255. package/swiper-bundle.min.mjs +14 -0
  256. package/swiper-bundle.min.mjs.map +1 -0
  257. package/swiper-bundle.mjs +42 -0
  258. package/swiper-effect-utils.d.ts +28 -0
  259. package/swiper-effect-utils.min.mjs +14 -0
  260. package/swiper-effect-utils.min.mjs.map +1 -0
  261. package/swiper-effect-utils.mjs +17 -0
  262. package/swiper-element-bundle.js +10477 -0
  263. package/swiper-element-bundle.min.js +14 -0
  264. package/swiper-element-bundle.min.js.map +1 -0
  265. package/swiper-element-bundle.min.mjs +14 -0
  266. package/swiper-element-bundle.min.mjs.map +1 -0
  267. package/swiper-element-bundle.mjs +288 -0
  268. package/swiper-element.d.ts +444 -0
  269. package/swiper-element.js +5037 -0
  270. package/swiper-element.min.js +14 -0
  271. package/swiper-element.min.js.map +1 -0
  272. package/swiper-element.min.mjs +14 -0
  273. package/swiper-element.min.mjs.map +1 -0
  274. package/swiper-element.mjs +287 -0
  275. package/swiper-react.d.ts +501 -0
  276. package/swiper-react.mjs +394 -0
  277. package/swiper-vars.less +1 -0
  278. package/swiper-vars.scss +1 -0
  279. package/swiper-vue.d.ts +866 -0
  280. package/swiper-vue.mjs +838 -0
  281. package/swiper.css +228 -0
  282. package/swiper.d.ts +5 -0
  283. package/swiper.js +4418 -0
  284. package/swiper.less +251 -0
  285. package/swiper.min.css +13 -0
  286. package/swiper.min.js +14 -0
  287. package/swiper.min.js.map +1 -0
  288. package/swiper.min.mjs +14 -0
  289. package/swiper.min.mjs.map +1 -0
  290. package/swiper.mjs +13 -0
  291. package/swiper.scss +252 -0
  292. package/types/index.d.ts +6 -0
  293. package/types/modules/a11y.d.ts +110 -0
  294. package/types/modules/autoplay.d.ts +133 -0
  295. package/types/modules/controller.d.ts +35 -0
  296. package/types/modules/effect-cards.d.ts +33 -0
  297. package/types/modules/effect-coverflow.d.ts +45 -0
  298. package/types/modules/effect-creative.d.ts +86 -0
  299. package/types/modules/effect-cube.d.ts +30 -0
  300. package/types/modules/effect-fade.d.ts +12 -0
  301. package/types/modules/effect-flip.d.ts +18 -0
  302. package/types/modules/free-mode.d.ts +64 -0
  303. package/types/modules/grid.d.ts +21 -0
  304. package/types/modules/hash-navigation.d.ts +38 -0
  305. package/types/modules/history.d.ts +43 -0
  306. package/types/modules/index.d.ts +51 -0
  307. package/types/modules/keyboard.d.ts +46 -0
  308. package/types/modules/manipulation.d.ts +70 -0
  309. package/types/modules/mousewheel.d.ts +86 -0
  310. package/types/modules/navigation.d.ts +105 -0
  311. package/types/modules/pagination.d.ts +307 -0
  312. package/types/modules/parallax.d.ts +12 -0
  313. package/types/modules/public-api.d.ts +23 -0
  314. package/types/modules/scrollbar.d.ts +140 -0
  315. package/types/modules/thumbs.d.ts +54 -0
  316. package/types/modules/virtual.d.ts +135 -0
  317. package/types/modules/zoom.d.ts +91 -0
  318. package/types/shared.d.ts +13 -0
  319. package/types/swiper-class.d.ts +522 -0
  320. package/types/swiper-events.d.ts +359 -0
  321. package/types/swiper-options.d.ts +1217 -0
@@ -0,0 +1,111 @@
1
+ import { c as createShadow } from '../shared/create-shadow.mjs';
2
+ import { e as effectInit } from '../shared/effect-init.mjs';
3
+ import { e as effectTarget } from '../shared/effect-target.mjs';
4
+ import { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';
5
+ import { g as getSlideTransformEl, p as getRotateFix } from '../shared/utils.mjs';
6
+
7
+ function EffectFlip(_ref) {
8
+ let {
9
+ swiper,
10
+ extendParams,
11
+ on
12
+ } = _ref;
13
+ extendParams({
14
+ flipEffect: {
15
+ slideShadows: true,
16
+ limitRotation: true
17
+ }
18
+ });
19
+ const createSlideShadows = (slideEl, progress) => {
20
+ let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
21
+ let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
22
+ if (!shadowBefore) {
23
+ shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');
24
+ }
25
+ if (!shadowAfter) {
26
+ shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');
27
+ }
28
+ if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
29
+ if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
30
+ };
31
+ const recreateShadows = () => {
32
+ // Set shadows
33
+ swiper.params.flipEffect;
34
+ swiper.slides.forEach(slideEl => {
35
+ let progress = slideEl.progress;
36
+ if (swiper.params.flipEffect.limitRotation) {
37
+ progress = Math.max(Math.min(slideEl.progress, 1), -1);
38
+ }
39
+ createSlideShadows(slideEl, progress);
40
+ });
41
+ };
42
+ const setTranslate = () => {
43
+ const {
44
+ slides,
45
+ rtlTranslate: rtl
46
+ } = swiper;
47
+ const params = swiper.params.flipEffect;
48
+ const rotateFix = getRotateFix(swiper);
49
+ for (let i = 0; i < slides.length; i += 1) {
50
+ const slideEl = slides[i];
51
+ let progress = slideEl.progress;
52
+ if (swiper.params.flipEffect.limitRotation) {
53
+ progress = Math.max(Math.min(slideEl.progress, 1), -1);
54
+ }
55
+ const offset = slideEl.swiperSlideOffset;
56
+ const rotate = -180 * progress;
57
+ let rotateY = rotate;
58
+ let rotateX = 0;
59
+ let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;
60
+ let ty = 0;
61
+ if (!swiper.isHorizontal()) {
62
+ ty = tx;
63
+ tx = 0;
64
+ rotateX = -rotateY;
65
+ rotateY = 0;
66
+ } else if (rtl) {
67
+ rotateY = -rotateY;
68
+ }
69
+ slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;
70
+ if (params.slideShadows) {
71
+ createSlideShadows(slideEl, progress);
72
+ }
73
+ const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`;
74
+ const targetEl = effectTarget(params, slideEl);
75
+ targetEl.style.transform = transform;
76
+ }
77
+ };
78
+ const setTransition = duration => {
79
+ const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));
80
+ transformElements.forEach(el => {
81
+ el.style.transitionDuration = `${duration}ms`;
82
+ el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
83
+ shadowEl.style.transitionDuration = `${duration}ms`;
84
+ });
85
+ });
86
+ effectVirtualTransitionEnd({
87
+ swiper,
88
+ duration,
89
+ transformElements
90
+ });
91
+ };
92
+ effectInit({
93
+ effect: 'flip',
94
+ swiper,
95
+ on,
96
+ setTranslate,
97
+ setTransition,
98
+ recreateShadows,
99
+ getEffectParams: () => swiper.params.flipEffect,
100
+ perspective: () => true,
101
+ overwriteParams: () => ({
102
+ slidesPerView: 1,
103
+ slidesPerGroup: 1,
104
+ watchSlidesProgress: true,
105
+ spaceBetween: 0,
106
+ virtualTranslate: !swiper.params.cssMode
107
+ })
108
+ });
109
+ }
110
+
111
+ export { EffectFlip as default };
@@ -0,0 +1,30 @@
1
+ .swiper.swiper-flip {
2
+ overflow: visible;
3
+ }
4
+ .swiper-flip {
5
+ .swiper-slide {
6
+ pointer-events: none;
7
+ backface-visibility: hidden;
8
+ z-index: 1;
9
+ .swiper-slide {
10
+ pointer-events: none;
11
+ }
12
+ }
13
+ .swiper-slide-active {
14
+ &,
15
+ & .swiper-slide-active {
16
+ pointer-events: auto;
17
+ }
18
+ }
19
+ }
20
+ /* Flip slide shadows start */
21
+ .swiper-flip {
22
+ .swiper-slide-shadow-flip.swiper-slide-shadow-top,
23
+ .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,
24
+ .swiper-slide-shadow-flip.swiper-slide-shadow-left,
25
+ .swiper-slide-shadow-flip.swiper-slide-shadow-right {
26
+ z-index: 0;
27
+ backface-visibility: hidden;
28
+ }
29
+ }
30
+ /* Flip slide shadows end */
@@ -0,0 +1,4 @@
1
+ .swiper-free-mode > .swiper-wrapper {
2
+ transition-timing-function: ease-out;
3
+ margin: 0 auto;
4
+ }
@@ -0,0 +1 @@
1
+ .swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}
@@ -0,0 +1,4 @@
1
+ .swiper-free-mode > .swiper-wrapper {
2
+ transition-timing-function: ease-out;
3
+ margin: 0 auto;
4
+ }
@@ -0,0 +1,4 @@
1
+ .swiper-free-mode > .swiper-wrapper {
2
+ transition-timing-function: ease-out;
3
+ margin: 0 auto;
4
+ }
@@ -0,0 +1 @@
1
+ .swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}
@@ -0,0 +1,2 @@
1
+ import{f as now,l as elementTransitionEnd}from"../shared/utils.min.mjs";function freeMode(e){let{swiper:t,extendParams:o,emit:n,once:s}=e;o({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){if(t.params.cssMode)return;const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){if(t.params.cssMode)return;const{touchEventsData:e,touches:o}=t;0===e.velocities.length&&e.velocities.push({position:o[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:o[t.isHorizontal()?"currentX":"currentY"],time:now()})},onTouchEnd:function(e){let{currentPos:o}=e;if(t.params.cssMode)return;const{params:i,wrapperEl:a,rtlTranslate:r,snapGrid:l,touchEventsData:m}=t,c=now()-m.touchStartTime;if(o<-t.minTranslate())t.slideTo(t.activeIndex);else if(o>-t.maxTranslate())t.slides.length<l.length?t.slideTo(l.length-1):t.slideTo(t.slides.length-1);else{if(i.freeMode.momentum){if(m.velocities.length>1){const e=m.velocities.pop(),o=m.velocities.pop(),n=e.position-o.position,s=e.time-o.time;t.velocity=n/s,t.velocity/=2,Math.abs(t.velocity)<i.freeMode.minimumVelocity&&(t.velocity=0),(s>150||now()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=i.freeMode.momentumVelocityRatio,m.velocities.length=0;let e=1e3*i.freeMode.momentumRatio;const o=t.velocity*e;let c=t.translate+o;r&&(c=-c);let d,u=!1;const f=20*Math.abs(t.velocity)*i.freeMode.momentumBounceRatio;let p;if(c<t.maxTranslate())i.freeMode.momentumBounce?(c+t.maxTranslate()<-f&&(c=t.maxTranslate()-f),d=t.maxTranslate(),u=!0,m.allowMomentumBounce=!0):c=t.maxTranslate(),i.loop&&i.centeredSlides&&(p=!0);else if(c>t.minTranslate())i.freeMode.momentumBounce?(c-t.minTranslate()>f&&(c=t.minTranslate()+f),d=t.minTranslate(),u=!0,m.allowMomentumBounce=!0):c=t.minTranslate(),i.loop&&i.centeredSlides&&(p=!0);else if(i.freeMode.sticky){let e;for(let t=0;t<l.length;t+=1)if(l[t]>-c){e=t;break}c=Math.abs(l[e]-c)<Math.abs(l[e-1]-c)||"next"===t.swipeDirection?l[e]:l[e-1],c=-c}if(p&&s("transitionEnd",(()=>{t.loopFix()})),0!==t.velocity){if(e=r?Math.abs((-c-t.translate)/t.velocity):Math.abs((c-t.translate)/t.velocity),i.freeMode.sticky){const o=Math.abs((r?-c:c)-t.translate),n=t.slidesSizesGrid[t.activeIndex];e=o<n?i.speed:o<2*n?1.5*i.speed:2.5*i.speed}}else if(i.freeMode.sticky)return void t.slideToClosest();i.freeMode.momentumBounce&&u?(t.updateProgress(d),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating=!0,elementTransitionEnd(a,(()=>{t&&!t.destroyed&&m.allowMomentumBounce&&(n("momentumBounce"),t.setTransition(i.speed),setTimeout((()=>{t.setTranslate(d),elementTransitionEnd(a,(()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(n("_freeModeNoMomentumRelease"),t.updateProgress(c),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,elementTransitionEnd(a,(()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(c),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(i.freeMode.sticky)return void t.slideToClosest();i.freeMode&&n("_freeModeNoMomentumRelease")}(!i.freeMode.momentum||c>=i.longSwipesMs)&&(n("_freeModeStaticRelease"),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})}export{freeMode as default};
2
+ //# sourceMappingURL=free-mode.min.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"free-mode.mjs.mjs","names":["now","elementTransitionEnd","freeMode","_ref","swiper","extendParams","emit","once","enabled","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","sticky","minimumVelocity","Object","assign","onTouchStart","params","cssMode","translate","getTranslate","setTranslate","setTransition","touchEventsData","velocities","length","onTouchEnd","currentPos","rtl","onTouchMove","data","touches","push","position","isHorizontal","time","touchStartTime","_ref2","wrapperEl","rtlTranslate","snapGrid","timeDiff","minTranslate","slideTo","activeIndex","maxTranslate","slides","lastMoveEvent","pop","velocityEvent","distance","velocity","Math","abs","momentumDuration","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","needsLoopFix","allowMomentumBounce","loop","centeredSlides","nextSlide","j","swipeDirection","loopFix","moveDistance","currentSlideSize","slidesSizesGrid","speed","slideToClosest","updateProgress","transitionStart","animating","destroyed","setTimeout","transitionEnd","updateActiveIndex","updateSlidesClasses","longSwipesMs"],"sources":["0"],"mappings":"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"}
@@ -0,0 +1,237 @@
1
+ import { f as now, l as elementTransitionEnd } from '../shared/utils.mjs';
2
+
3
+ function freeMode(_ref) {
4
+ let {
5
+ swiper,
6
+ extendParams,
7
+ emit,
8
+ once
9
+ } = _ref;
10
+ extendParams({
11
+ freeMode: {
12
+ enabled: false,
13
+ momentum: true,
14
+ momentumRatio: 1,
15
+ momentumBounce: true,
16
+ momentumBounceRatio: 1,
17
+ momentumVelocityRatio: 1,
18
+ sticky: false,
19
+ minimumVelocity: 0.02
20
+ }
21
+ });
22
+ function onTouchStart() {
23
+ if (swiper.params.cssMode) return;
24
+ const translate = swiper.getTranslate();
25
+ swiper.setTranslate(translate);
26
+ swiper.setTransition(0);
27
+ swiper.touchEventsData.velocities.length = 0;
28
+ swiper.freeMode.onTouchEnd({
29
+ currentPos: swiper.rtl ? swiper.translate : -swiper.translate
30
+ });
31
+ }
32
+ function onTouchMove() {
33
+ if (swiper.params.cssMode) return;
34
+ const {
35
+ touchEventsData: data,
36
+ touches
37
+ } = swiper;
38
+ // Velocity
39
+ if (data.velocities.length === 0) {
40
+ data.velocities.push({
41
+ position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],
42
+ time: data.touchStartTime
43
+ });
44
+ }
45
+ data.velocities.push({
46
+ position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],
47
+ time: now()
48
+ });
49
+ }
50
+ function onTouchEnd(_ref2) {
51
+ let {
52
+ currentPos
53
+ } = _ref2;
54
+ if (swiper.params.cssMode) return;
55
+ const {
56
+ params,
57
+ wrapperEl,
58
+ rtlTranslate: rtl,
59
+ snapGrid,
60
+ touchEventsData: data
61
+ } = swiper;
62
+ // Time diff
63
+ const touchEndTime = now();
64
+ const timeDiff = touchEndTime - data.touchStartTime;
65
+ if (currentPos < -swiper.minTranslate()) {
66
+ swiper.slideTo(swiper.activeIndex);
67
+ return;
68
+ }
69
+ if (currentPos > -swiper.maxTranslate()) {
70
+ if (swiper.slides.length < snapGrid.length) {
71
+ swiper.slideTo(snapGrid.length - 1);
72
+ } else {
73
+ swiper.slideTo(swiper.slides.length - 1);
74
+ }
75
+ return;
76
+ }
77
+ if (params.freeMode.momentum) {
78
+ if (data.velocities.length > 1) {
79
+ const lastMoveEvent = data.velocities.pop();
80
+ const velocityEvent = data.velocities.pop();
81
+ const distance = lastMoveEvent.position - velocityEvent.position;
82
+ const time = lastMoveEvent.time - velocityEvent.time;
83
+ swiper.velocity = distance / time;
84
+ swiper.velocity /= 2;
85
+ if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {
86
+ swiper.velocity = 0;
87
+ }
88
+ // this implies that the user stopped moving a finger then released.
89
+ // There would be no events with distance zero, so the last event is stale.
90
+ if (time > 150 || now() - lastMoveEvent.time > 300) {
91
+ swiper.velocity = 0;
92
+ }
93
+ } else {
94
+ swiper.velocity = 0;
95
+ }
96
+ swiper.velocity *= params.freeMode.momentumVelocityRatio;
97
+ data.velocities.length = 0;
98
+ let momentumDuration = 1000 * params.freeMode.momentumRatio;
99
+ const momentumDistance = swiper.velocity * momentumDuration;
100
+ let newPosition = swiper.translate + momentumDistance;
101
+ if (rtl) newPosition = -newPosition;
102
+ let doBounce = false;
103
+ let afterBouncePosition;
104
+ const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;
105
+ let needsLoopFix;
106
+ if (newPosition < swiper.maxTranslate()) {
107
+ if (params.freeMode.momentumBounce) {
108
+ if (newPosition + swiper.maxTranslate() < -bounceAmount) {
109
+ newPosition = swiper.maxTranslate() - bounceAmount;
110
+ }
111
+ afterBouncePosition = swiper.maxTranslate();
112
+ doBounce = true;
113
+ data.allowMomentumBounce = true;
114
+ } else {
115
+ newPosition = swiper.maxTranslate();
116
+ }
117
+ if (params.loop && params.centeredSlides) needsLoopFix = true;
118
+ } else if (newPosition > swiper.minTranslate()) {
119
+ if (params.freeMode.momentumBounce) {
120
+ if (newPosition - swiper.minTranslate() > bounceAmount) {
121
+ newPosition = swiper.minTranslate() + bounceAmount;
122
+ }
123
+ afterBouncePosition = swiper.minTranslate();
124
+ doBounce = true;
125
+ data.allowMomentumBounce = true;
126
+ } else {
127
+ newPosition = swiper.minTranslate();
128
+ }
129
+ if (params.loop && params.centeredSlides) needsLoopFix = true;
130
+ } else if (params.freeMode.sticky) {
131
+ let nextSlide;
132
+ for (let j = 0; j < snapGrid.length; j += 1) {
133
+ if (snapGrid[j] > -newPosition) {
134
+ nextSlide = j;
135
+ break;
136
+ }
137
+ }
138
+ if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {
139
+ newPosition = snapGrid[nextSlide];
140
+ } else {
141
+ newPosition = snapGrid[nextSlide - 1];
142
+ }
143
+ newPosition = -newPosition;
144
+ }
145
+ if (needsLoopFix) {
146
+ once('transitionEnd', () => {
147
+ swiper.loopFix();
148
+ });
149
+ }
150
+ // Fix duration
151
+ if (swiper.velocity !== 0) {
152
+ if (rtl) {
153
+ momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);
154
+ } else {
155
+ momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);
156
+ }
157
+ if (params.freeMode.sticky) {
158
+ // If freeMode.sticky is active and the user ends a swipe with a slow-velocity
159
+ // event, then durations can be 20+ seconds to slide one (or zero!) slides.
160
+ // It's easy to see this when simulating touch with mouse events. To fix this,
161
+ // limit single-slide swipes to the default slide duration. This also has the
162
+ // nice side effect of matching slide speed if the user stopped moving before
163
+ // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.
164
+ // For faster swipes, also apply limits (albeit higher ones).
165
+ const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);
166
+ const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];
167
+ if (moveDistance < currentSlideSize) {
168
+ momentumDuration = params.speed;
169
+ } else if (moveDistance < 2 * currentSlideSize) {
170
+ momentumDuration = params.speed * 1.5;
171
+ } else {
172
+ momentumDuration = params.speed * 2.5;
173
+ }
174
+ }
175
+ } else if (params.freeMode.sticky) {
176
+ swiper.slideToClosest();
177
+ return;
178
+ }
179
+ if (params.freeMode.momentumBounce && doBounce) {
180
+ swiper.updateProgress(afterBouncePosition);
181
+ swiper.setTransition(momentumDuration);
182
+ swiper.setTranslate(newPosition);
183
+ swiper.transitionStart(true, swiper.swipeDirection);
184
+ swiper.animating = true;
185
+ elementTransitionEnd(wrapperEl, () => {
186
+ if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;
187
+ emit('momentumBounce');
188
+ swiper.setTransition(params.speed);
189
+ setTimeout(() => {
190
+ swiper.setTranslate(afterBouncePosition);
191
+ elementTransitionEnd(wrapperEl, () => {
192
+ if (!swiper || swiper.destroyed) return;
193
+ swiper.transitionEnd();
194
+ });
195
+ }, 0);
196
+ });
197
+ } else if (swiper.velocity) {
198
+ emit('_freeModeNoMomentumRelease');
199
+ swiper.updateProgress(newPosition);
200
+ swiper.setTransition(momentumDuration);
201
+ swiper.setTranslate(newPosition);
202
+ swiper.transitionStart(true, swiper.swipeDirection);
203
+ if (!swiper.animating) {
204
+ swiper.animating = true;
205
+ elementTransitionEnd(wrapperEl, () => {
206
+ if (!swiper || swiper.destroyed) return;
207
+ swiper.transitionEnd();
208
+ });
209
+ }
210
+ } else {
211
+ swiper.updateProgress(newPosition);
212
+ }
213
+ swiper.updateActiveIndex();
214
+ swiper.updateSlidesClasses();
215
+ } else if (params.freeMode.sticky) {
216
+ swiper.slideToClosest();
217
+ return;
218
+ } else if (params.freeMode) {
219
+ emit('_freeModeNoMomentumRelease');
220
+ }
221
+ if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {
222
+ emit('_freeModeStaticRelease');
223
+ swiper.updateProgress();
224
+ swiper.updateActiveIndex();
225
+ swiper.updateSlidesClasses();
226
+ }
227
+ }
228
+ Object.assign(swiper, {
229
+ freeMode: {
230
+ onTouchStart,
231
+ onTouchMove,
232
+ onTouchEnd
233
+ }
234
+ });
235
+ }
236
+
237
+ export { freeMode as default };
@@ -0,0 +1,4 @@
1
+ .swiper-free-mode > .swiper-wrapper {
2
+ transition-timing-function: ease-out;
3
+ margin: 0 auto;
4
+ }
@@ -0,0 +1,7 @@
1
+ .swiper-grid > .swiper-wrapper {
2
+ flex-wrap: wrap;
3
+ }
4
+ .swiper-grid-column > .swiper-wrapper {
5
+ flex-wrap: wrap;
6
+ flex-direction: column;
7
+ }
@@ -0,0 +1 @@
1
+ .swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}
@@ -0,0 +1,7 @@
1
+ .swiper-grid > .swiper-wrapper {
2
+ flex-wrap: wrap;
3
+ }
4
+ .swiper-grid-column > .swiper-wrapper {
5
+ flex-wrap: wrap;
6
+ flex-direction: column;
7
+ }
@@ -0,0 +1,7 @@
1
+ .swiper-grid > .swiper-wrapper {
2
+ flex-wrap: wrap;
3
+ }
4
+ .swiper-grid-column > .swiper-wrapper {
5
+ flex-wrap: wrap;
6
+ flex-direction: column;
7
+ }
@@ -0,0 +1 @@
1
+ .swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}
@@ -0,0 +1,2 @@
1
+ function Grid(e){let i,r,a,t,{swiper:s,extendParams:l,on:o}=e;l({grid:{rows:1,fill:"column"}});const n=()=>{let e=s.params.spaceBetween;return"string"==typeof e&&e.indexOf("%")>=0?e=parseFloat(e.replace("%",""))/100*s.size:"string"==typeof e&&(e=parseFloat(e)),e};o("init",(()=>{t=s.params.grid&&s.params.grid.rows>1})),o("update",(()=>{const{params:e,el:i}=s,r=e.grid&&e.grid.rows>1;t&&!r?(i.classList.remove(`${e.containerModifierClass}grid`,`${e.containerModifierClass}grid-column`),a=1,s.emitContainerClasses()):!t&&r&&(i.classList.add(`${e.containerModifierClass}grid`),"column"===e.grid.fill&&i.classList.add(`${e.containerModifierClass}grid-column`),s.emitContainerClasses()),t=r})),s.grid={initSlides:e=>{const{slidesPerView:t}=s.params,{rows:l,fill:o}=s.params.grid,n=s.virtual&&s.params.virtual.enabled?s.virtual.slides.length:e.length;a=Math.floor(n/l),i=Math.floor(n/l)===n/l?n:Math.ceil(n/l)*l,"auto"!==t&&"row"===o&&(i=Math.max(i,t*l)),r=i/l},unsetSlides:()=>{s.slides&&s.slides.forEach((e=>{e.swiperSlideGridSet&&(e.style.height="",e.style[s.getDirectionLabel("margin-top")]="")}))},updateSlide:(e,t,l)=>{const{slidesPerGroup:o}=s.params,d=n(),{rows:p,fill:c}=s.params.grid,g=s.virtual&&s.params.virtual.enabled?s.virtual.slides.length:l.length;let u,h,m;if("row"===c&&o>1){const r=Math.floor(e/(o*p)),a=e-p*o*r,s=0===r?o:Math.min(Math.ceil((g-r*p*o)/p),o);m=Math.floor(a/s),h=a-m*s+r*o,u=h+m*i/p,t.style.order=u}else"column"===c?(h=Math.floor(e/p),m=e-h*p,(h>a||h===a&&m===p-1)&&(m+=1,m>=p&&(m=0,h+=1))):(m=Math.floor(e/r),h=e-m*r);t.row=m,t.column=h,t.style.height=`calc((100% - ${(p-1)*d}px) / ${p})`,t.style[s.getDirectionLabel("margin-top")]=0!==m?d&&`${d}px`:"",t.swiperSlideGridSet=!0},updateWrapperSize:(e,r)=>{const{centeredSlides:a,roundLengths:t}=s.params,l=n(),{rows:o}=s.params.grid;if(s.virtualSize=(e+l)*i,s.virtualSize=Math.ceil(s.virtualSize/o)-l,s.params.cssMode||(s.wrapperEl.style[s.getDirectionLabel("width")]=`${s.virtualSize+l}px`),a){const e=[];for(let i=0;i<r.length;i+=1){let a=r[i];t&&(a=Math.floor(a)),r[i]<s.virtualSize+r[0]&&e.push(a)}r.splice(0,r.length),r.push(...e)}}}}export{Grid as default};
2
+ //# sourceMappingURL=grid.min.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.mjs.mjs","names":["Grid","_ref","slidesNumberEvenToRows","slidesPerRow","numFullColumns","wasMultiRow","swiper","extendParams","on","grid","rows","fill","getSpaceBetween","spaceBetween","params","indexOf","parseFloat","replace","size","el","isMultiRow","classList","remove","containerModifierClass","emitContainerClasses","add","initSlides","slides","slidesPerView","slidesLength","virtual","enabled","length","Math","floor","ceil","max","unsetSlides","forEach","slide","swiperSlideGridSet","style","height","getDirectionLabel","updateSlide","i","slidesPerGroup","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","min","order","updateWrapperSize","slideSize","snapGrid","centeredSlides","roundLengths","virtualSize","cssMode","wrapperEl","newSlidesGrid","slidesGridItem","push","splice"],"sources":["0"],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ function Grid(_ref) {
2
+ let {
3
+ swiper,
4
+ extendParams,
5
+ on
6
+ } = _ref;
7
+ extendParams({
8
+ grid: {
9
+ rows: 1,
10
+ fill: 'column'
11
+ }
12
+ });
13
+ let slidesNumberEvenToRows;
14
+ let slidesPerRow;
15
+ let numFullColumns;
16
+ let wasMultiRow;
17
+ const getSpaceBetween = () => {
18
+ let spaceBetween = swiper.params.spaceBetween;
19
+ if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
20
+ spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
21
+ } else if (typeof spaceBetween === 'string') {
22
+ spaceBetween = parseFloat(spaceBetween);
23
+ }
24
+ return spaceBetween;
25
+ };
26
+ const initSlides = slides => {
27
+ const {
28
+ slidesPerView
29
+ } = swiper.params;
30
+ const {
31
+ rows,
32
+ fill
33
+ } = swiper.params.grid;
34
+ const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
35
+ numFullColumns = Math.floor(slidesLength / rows);
36
+ if (Math.floor(slidesLength / rows) === slidesLength / rows) {
37
+ slidesNumberEvenToRows = slidesLength;
38
+ } else {
39
+ slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;
40
+ }
41
+ if (slidesPerView !== 'auto' && fill === 'row') {
42
+ slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);
43
+ }
44
+ slidesPerRow = slidesNumberEvenToRows / rows;
45
+ };
46
+ const unsetSlides = () => {
47
+ if (swiper.slides) {
48
+ swiper.slides.forEach(slide => {
49
+ if (slide.swiperSlideGridSet) {
50
+ slide.style.height = '';
51
+ slide.style[swiper.getDirectionLabel('margin-top')] = '';
52
+ }
53
+ });
54
+ }
55
+ };
56
+ const updateSlide = (i, slide, slides) => {
57
+ const {
58
+ slidesPerGroup
59
+ } = swiper.params;
60
+ const spaceBetween = getSpaceBetween();
61
+ const {
62
+ rows,
63
+ fill
64
+ } = swiper.params.grid;
65
+ const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
66
+ // Set slides order
67
+ let newSlideOrderIndex;
68
+ let column;
69
+ let row;
70
+ if (fill === 'row' && slidesPerGroup > 1) {
71
+ const groupIndex = Math.floor(i / (slidesPerGroup * rows));
72
+ const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;
73
+ const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);
74
+ row = Math.floor(slideIndexInGroup / columnsInGroup);
75
+ column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;
76
+ newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;
77
+ slide.style.order = newSlideOrderIndex;
78
+ } else if (fill === 'column') {
79
+ column = Math.floor(i / rows);
80
+ row = i - column * rows;
81
+ if (column > numFullColumns || column === numFullColumns && row === rows - 1) {
82
+ row += 1;
83
+ if (row >= rows) {
84
+ row = 0;
85
+ column += 1;
86
+ }
87
+ }
88
+ } else {
89
+ row = Math.floor(i / slidesPerRow);
90
+ column = i - row * slidesPerRow;
91
+ }
92
+ slide.row = row;
93
+ slide.column = column;
94
+ slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;
95
+ slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';
96
+ slide.swiperSlideGridSet = true;
97
+ };
98
+ const updateWrapperSize = (slideSize, snapGrid) => {
99
+ const {
100
+ centeredSlides,
101
+ roundLengths
102
+ } = swiper.params;
103
+ const spaceBetween = getSpaceBetween();
104
+ const {
105
+ rows
106
+ } = swiper.params.grid;
107
+ swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;
108
+ swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;
109
+ if (!swiper.params.cssMode) {
110
+ swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
111
+ }
112
+ if (centeredSlides) {
113
+ const newSlidesGrid = [];
114
+ for (let i = 0; i < snapGrid.length; i += 1) {
115
+ let slidesGridItem = snapGrid[i];
116
+ if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);
117
+ if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);
118
+ }
119
+ snapGrid.splice(0, snapGrid.length);
120
+ snapGrid.push(...newSlidesGrid);
121
+ }
122
+ };
123
+ const onInit = () => {
124
+ wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;
125
+ };
126
+ const onUpdate = () => {
127
+ const {
128
+ params,
129
+ el
130
+ } = swiper;
131
+ const isMultiRow = params.grid && params.grid.rows > 1;
132
+ if (wasMultiRow && !isMultiRow) {
133
+ el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
134
+ numFullColumns = 1;
135
+ swiper.emitContainerClasses();
136
+ } else if (!wasMultiRow && isMultiRow) {
137
+ el.classList.add(`${params.containerModifierClass}grid`);
138
+ if (params.grid.fill === 'column') {
139
+ el.classList.add(`${params.containerModifierClass}grid-column`);
140
+ }
141
+ swiper.emitContainerClasses();
142
+ }
143
+ wasMultiRow = isMultiRow;
144
+ };
145
+ on('init', onInit);
146
+ on('update', onUpdate);
147
+ swiper.grid = {
148
+ initSlides,
149
+ unsetSlides,
150
+ updateSlide,
151
+ updateWrapperSize
152
+ };
153
+ }
154
+
155
+ export { Grid as default };
@@ -0,0 +1,7 @@
1
+ .swiper-grid > .swiper-wrapper {
2
+ flex-wrap: wrap;
3
+ }
4
+ .swiper-grid-column > .swiper-wrapper {
5
+ flex-wrap: wrap;
6
+ flex-direction: column;
7
+ }
File without changes
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ @import url('../swiper-vars.less');
2
+
File without changes