@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,394 @@
1
+ /**
2
+ * Swiper React 0.0.7
3
+ * Gem SDK - Swiper, Customized of swiper
4
+ * https://swiperjs.com
5
+ *
6
+ * Copyright 2014-2025 GemPages
7
+ *
8
+ * Released under the MIT License
9
+ *
10
+ * Released on: October 9, 2025
11
+ */
12
+
13
+ import React, { useEffect, useLayoutEffect, useContext, createContext, forwardRef, useState, useRef } from 'react';
14
+ import { S as Swiper$1 } from './shared/swiper-core.mjs';
15
+ import { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnVirtualData } from './shared/update-on-virtual-data.mjs';
16
+ import { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination, e as extend, u as updateSwiper } from './shared/update-swiper.mjs';
17
+
18
+ function _extends() {
19
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
20
+ for (var i = 1; i < arguments.length; i++) {
21
+ var source = arguments[i];
22
+ for (var key in source) {
23
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
24
+ target[key] = source[key];
25
+ }
26
+ }
27
+ }
28
+ return target;
29
+ };
30
+ return _extends.apply(this, arguments);
31
+ }
32
+
33
+ function isChildSwiperSlide(child) {
34
+ return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');
35
+ }
36
+ function processChildren(c) {
37
+ const slides = [];
38
+ React.Children.toArray(c).forEach(child => {
39
+ if (isChildSwiperSlide(child)) {
40
+ slides.push(child);
41
+ } else if (child.props && child.props.children) {
42
+ processChildren(child.props.children).forEach(slide => slides.push(slide));
43
+ }
44
+ });
45
+ return slides;
46
+ }
47
+ function getChildren(c) {
48
+ const slides = [];
49
+ const slots = {
50
+ 'container-start': [],
51
+ 'container-end': [],
52
+ 'wrapper-start': [],
53
+ 'wrapper-end': []
54
+ };
55
+ React.Children.toArray(c).forEach(child => {
56
+ if (isChildSwiperSlide(child)) {
57
+ slides.push(child);
58
+ } else if (child.props && child.props.slot && slots[child.props.slot]) {
59
+ slots[child.props.slot].push(child);
60
+ } else if (child.props && child.props.children) {
61
+ const foundSlides = processChildren(child.props.children);
62
+ if (foundSlides.length > 0) {
63
+ foundSlides.forEach(slide => slides.push(slide));
64
+ } else {
65
+ slots['container-end'].push(child);
66
+ }
67
+ } else {
68
+ slots['container-end'].push(child);
69
+ }
70
+ });
71
+ return {
72
+ slides,
73
+ slots
74
+ };
75
+ }
76
+
77
+ function renderVirtual(swiper, slides, virtualData) {
78
+ if (!virtualData) return null;
79
+ const getSlideIndex = index => {
80
+ let slideIndex = index;
81
+ if (index < 0) {
82
+ slideIndex = slides.length + index;
83
+ } else if (slideIndex >= slides.length) {
84
+ // eslint-disable-next-line
85
+ slideIndex = slideIndex - slides.length;
86
+ }
87
+ return slideIndex;
88
+ };
89
+ const style = swiper.isHorizontal() ? {
90
+ [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`
91
+ } : {
92
+ top: `${virtualData.offset}px`
93
+ };
94
+ const {
95
+ from,
96
+ to
97
+ } = virtualData;
98
+ const loopFrom = swiper.params.loop ? -slides.length : 0;
99
+ const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;
100
+ const slidesToRender = [];
101
+ for (let i = loopFrom; i < loopTo; i += 1) {
102
+ if (i >= from && i <= to) {
103
+ slidesToRender.push(slides[getSlideIndex(i)]);
104
+ }
105
+ }
106
+ return slidesToRender.map((child, index) => {
107
+ return /*#__PURE__*/React.cloneElement(child, {
108
+ swiper,
109
+ style,
110
+ key: child.props.virtualIndex || child.key || `slide-${index}`
111
+ });
112
+ });
113
+ }
114
+
115
+ function useIsomorphicLayoutEffect(callback, deps) {
116
+ // eslint-disable-next-line
117
+ if (typeof window === 'undefined') return useEffect(callback, deps);
118
+ return useLayoutEffect(callback, deps);
119
+ }
120
+
121
+ const SwiperSlideContext = /*#__PURE__*/createContext(null);
122
+ const useSwiperSlide = () => {
123
+ return useContext(SwiperSlideContext);
124
+ };
125
+ const SwiperContext = /*#__PURE__*/createContext(null);
126
+ const useSwiper = () => {
127
+ return useContext(SwiperContext);
128
+ };
129
+
130
+ const Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {
131
+ let {
132
+ className,
133
+ tag: Tag = 'div',
134
+ wrapperTag: WrapperTag = 'div',
135
+ children,
136
+ onSwiper,
137
+ ...rest
138
+ } = _temp === void 0 ? {} : _temp;
139
+ let eventsAssigned = false;
140
+ const [containerClasses, setContainerClasses] = useState('swiper');
141
+ const [virtualData, setVirtualData] = useState(null);
142
+ const [breakpointChanged, setBreakpointChanged] = useState(false);
143
+ const initializedRef = useRef(false);
144
+ const swiperElRef = useRef(null);
145
+ const swiperRef = useRef(null);
146
+ const oldPassedParamsRef = useRef(null);
147
+ const oldSlides = useRef(null);
148
+ const nextElRef = useRef(null);
149
+ const prevElRef = useRef(null);
150
+ const paginationElRef = useRef(null);
151
+ const scrollbarElRef = useRef(null);
152
+ const {
153
+ params: swiperParams,
154
+ passedParams,
155
+ rest: restProps,
156
+ events
157
+ } = getParams(rest);
158
+ const {
159
+ slides,
160
+ slots
161
+ } = getChildren(children);
162
+ const onBeforeBreakpoint = () => {
163
+ setBreakpointChanged(!breakpointChanged);
164
+ };
165
+ Object.assign(swiperParams.on, {
166
+ _containerClasses(swiper, classes) {
167
+ setContainerClasses(classes);
168
+ }
169
+ });
170
+ const initSwiper = () => {
171
+ // init swiper
172
+ Object.assign(swiperParams.on, events);
173
+ eventsAssigned = true;
174
+ const passParams = {
175
+ ...swiperParams
176
+ };
177
+ delete passParams.wrapperClass;
178
+ swiperRef.current = new Swiper$1(passParams);
179
+ if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {
180
+ swiperRef.current.virtual.slides = slides;
181
+ const extendWith = {
182
+ cache: false,
183
+ slides,
184
+ renderExternal: setVirtualData,
185
+ renderExternalUpdate: false
186
+ };
187
+ extend(swiperRef.current.params.virtual, extendWith);
188
+ extend(swiperRef.current.originalParams.virtual, extendWith);
189
+ }
190
+ };
191
+ if (!swiperElRef.current) {
192
+ initSwiper();
193
+ }
194
+
195
+ // Listen for breakpoints change
196
+ if (swiperRef.current) {
197
+ swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);
198
+ }
199
+ const attachEvents = () => {
200
+ if (eventsAssigned || !events || !swiperRef.current) return;
201
+ Object.keys(events).forEach(eventName => {
202
+ swiperRef.current.on(eventName, events[eventName]);
203
+ });
204
+ };
205
+ const detachEvents = () => {
206
+ if (!events || !swiperRef.current) return;
207
+ Object.keys(events).forEach(eventName => {
208
+ swiperRef.current.off(eventName, events[eventName]);
209
+ });
210
+ };
211
+ useEffect(() => {
212
+ return () => {
213
+ if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);
214
+ };
215
+ });
216
+
217
+ // set initialized flag
218
+ useEffect(() => {
219
+ if (!initializedRef.current && swiperRef.current) {
220
+ swiperRef.current.emitSlidesClasses();
221
+ initializedRef.current = true;
222
+ }
223
+ });
224
+
225
+ // mount swiper
226
+ useIsomorphicLayoutEffect(() => {
227
+ if (externalElRef) {
228
+ externalElRef.current = swiperElRef.current;
229
+ }
230
+ if (!swiperElRef.current) return;
231
+ if (swiperRef.current.destroyed) {
232
+ initSwiper();
233
+ }
234
+ mountSwiper({
235
+ el: swiperElRef.current,
236
+ nextEl: nextElRef.current,
237
+ prevEl: prevElRef.current,
238
+ paginationEl: paginationElRef.current,
239
+ scrollbarEl: scrollbarElRef.current,
240
+ swiper: swiperRef.current
241
+ }, swiperParams);
242
+ if (onSwiper && !swiperRef.current.destroyed) onSwiper(swiperRef.current);
243
+ // eslint-disable-next-line
244
+ return () => {
245
+ if (swiperRef.current && !swiperRef.current.destroyed) {
246
+ swiperRef.current.destroy(true, false);
247
+ }
248
+ };
249
+ }, []);
250
+
251
+ // watch for params change
252
+ useIsomorphicLayoutEffect(() => {
253
+ attachEvents();
254
+ const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);
255
+ oldPassedParamsRef.current = passedParams;
256
+ oldSlides.current = slides;
257
+ if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {
258
+ updateSwiper({
259
+ swiper: swiperRef.current,
260
+ slides,
261
+ passedParams,
262
+ changedParams,
263
+ nextEl: nextElRef.current,
264
+ prevEl: prevElRef.current,
265
+ scrollbarEl: scrollbarElRef.current,
266
+ paginationEl: paginationElRef.current
267
+ });
268
+ }
269
+ return () => {
270
+ detachEvents();
271
+ };
272
+ });
273
+
274
+ // update on virtual update
275
+ useIsomorphicLayoutEffect(() => {
276
+ updateOnVirtualData(swiperRef.current);
277
+ }, [virtualData]);
278
+
279
+ // bypass swiper instance to slides
280
+ function renderSlides() {
281
+ if (swiperParams.virtual) {
282
+ return renderVirtual(swiperRef.current, slides, virtualData);
283
+ }
284
+ return slides.map((child, index) => {
285
+ return /*#__PURE__*/React.cloneElement(child, {
286
+ swiper: swiperRef.current,
287
+ swiperSlideIndex: index
288
+ });
289
+ });
290
+ }
291
+ return /*#__PURE__*/React.createElement(Tag, _extends({
292
+ ref: swiperElRef,
293
+ className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)
294
+ }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {
295
+ value: swiperRef.current
296
+ }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {
297
+ className: wrapperClass(swiperParams.wrapperClass)
298
+ }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
299
+ ref: prevElRef,
300
+ className: "swiper-button-prev"
301
+ }), /*#__PURE__*/React.createElement("div", {
302
+ ref: nextElRef,
303
+ className: "swiper-button-next"
304
+ })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement("div", {
305
+ ref: scrollbarElRef,
306
+ className: "swiper-scrollbar"
307
+ }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement("div", {
308
+ ref: paginationElRef,
309
+ className: "swiper-pagination"
310
+ }), slots['container-end']));
311
+ });
312
+ Swiper.displayName = 'Swiper';
313
+
314
+ const SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {
315
+ let {
316
+ tag: Tag = 'div',
317
+ children,
318
+ className = '',
319
+ swiper,
320
+ zoom,
321
+ lazy,
322
+ virtualIndex,
323
+ swiperSlideIndex,
324
+ ...rest
325
+ } = _temp === void 0 ? {} : _temp;
326
+ const slideElRef = useRef(null);
327
+ const [slideClasses, setSlideClasses] = useState('swiper-slide');
328
+ const [lazyLoaded, setLazyLoaded] = useState(false);
329
+ function updateClasses(_s, el, classNames) {
330
+ if (el === slideElRef.current) {
331
+ setSlideClasses(classNames);
332
+ }
333
+ }
334
+ useIsomorphicLayoutEffect(() => {
335
+ if (typeof swiperSlideIndex !== 'undefined') {
336
+ slideElRef.current.swiperSlideIndex = swiperSlideIndex;
337
+ }
338
+ if (externalRef) {
339
+ externalRef.current = slideElRef.current;
340
+ }
341
+ if (!slideElRef.current || !swiper) {
342
+ return;
343
+ }
344
+ if (swiper.destroyed) {
345
+ if (slideClasses !== 'swiper-slide') {
346
+ setSlideClasses('swiper-slide');
347
+ }
348
+ return;
349
+ }
350
+ swiper.on('_slideClass', updateClasses);
351
+ // eslint-disable-next-line
352
+ return () => {
353
+ if (!swiper) return;
354
+ swiper.off('_slideClass', updateClasses);
355
+ };
356
+ });
357
+ useIsomorphicLayoutEffect(() => {
358
+ if (swiper && slideElRef.current && !swiper.destroyed) {
359
+ setSlideClasses(swiper.getSlideClasses(slideElRef.current));
360
+ }
361
+ }, [swiper]);
362
+ const slideData = {
363
+ isActive: slideClasses.indexOf('swiper-slide-active') >= 0,
364
+ isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,
365
+ isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,
366
+ isNext: slideClasses.indexOf('swiper-slide-next') >= 0
367
+ };
368
+ const renderChildren = () => {
369
+ return typeof children === 'function' ? children(slideData) : children;
370
+ };
371
+ const onLoad = () => {
372
+ setLazyLoaded(true);
373
+ };
374
+ return /*#__PURE__*/React.createElement(Tag, _extends({
375
+ ref: slideElRef,
376
+ className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),
377
+ "data-swiper-slide-index": virtualIndex,
378
+ onLoad: onLoad
379
+ }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {
380
+ value: slideData
381
+ }, /*#__PURE__*/React.createElement("div", {
382
+ className: "swiper-zoom-container",
383
+ "data-swiper-zoom": typeof zoom === 'number' ? zoom : undefined
384
+ }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement("div", {
385
+ className: "swiper-lazy-preloader"
386
+ }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {
387
+ value: slideData
388
+ }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement("div", {
389
+ className: "swiper-lazy-preloader"
390
+ })));
391
+ });
392
+ SwiperSlide.displayName = 'SwiperSlide';
393
+
394
+ export { Swiper, SwiperSlide, useSwiper, useSwiperSlide };
@@ -0,0 +1 @@
1
+ @themeColor: #007aff;
@@ -0,0 +1 @@
1
+ $themeColor: #007aff !default;