ecars-web-lib 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/README.md +50 -0
  2. package/dist/PaginationComponent-BM_GD3t6.cjs +2 -0
  3. package/dist/PaginationComponent-BM_GD3t6.cjs.map +1 -0
  4. package/dist/PaginationComponent-_iwGlFdM.js +65 -0
  5. package/dist/PaginationComponent-_iwGlFdM.js.map +1 -0
  6. package/dist/SelectComponent-CGBwJBns.cjs +2 -0
  7. package/dist/SelectComponent-CGBwJBns.cjs.map +1 -0
  8. package/dist/SelectComponent-DJi5yeVI.js +98 -0
  9. package/dist/SelectComponent-DJi5yeVI.js.map +1 -0
  10. package/dist/_commonjsHelpers-DKOUU3wS.cjs +2 -0
  11. package/dist/_commonjsHelpers-DKOUU3wS.cjs.map +1 -0
  12. package/dist/_commonjsHelpers-DaMA6jEr.js +9 -0
  13. package/dist/_commonjsHelpers-DaMA6jEr.js.map +1 -0
  14. package/dist/assets/index.css +1 -0
  15. package/dist/chunk-KNED5TY2-9zjBD6gF.js +1659 -0
  16. package/dist/chunk-KNED5TY2-9zjBD6gF.js.map +1 -0
  17. package/dist/chunk-KNED5TY2-BcFuRn3Q.cjs +13 -0
  18. package/dist/chunk-KNED5TY2-BcFuRn3Q.cjs.map +1 -0
  19. package/dist/components/Accordion/AccordionComponent.d.ts +9 -0
  20. package/dist/components/Accordion/AccordionComponent.js +6 -0
  21. package/dist/components/Accordion/AccordionComponent.js.map +1 -0
  22. package/dist/components/Accordion/AccordionComponent.test.d.ts +1 -0
  23. package/dist/components/Accordion/AccordionComponent.test.js +32 -0
  24. package/dist/components/Accordion/AccordionComponent.test.js.map +1 -0
  25. package/dist/components/Accordion/components/AccordionArrow.d.ts +2 -0
  26. package/dist/components/Accordion/components/AccordionArrow.js +7 -0
  27. package/dist/components/Accordion/components/AccordionArrow.js.map +1 -0
  28. package/dist/components/Accordion/components/AccordionBlock.d.ts +6 -0
  29. package/dist/components/Accordion/components/AccordionBlock.js +6 -0
  30. package/dist/components/Accordion/components/AccordionBlock.js.map +1 -0
  31. package/dist/components/Accordion/components/AccordionButton.d.ts +6 -0
  32. package/dist/components/Accordion/components/AccordionButton.js +14 -0
  33. package/dist/components/Accordion/components/AccordionButton.js.map +1 -0
  34. package/dist/components/Accordion/components/AccordionContent.d.ts +6 -0
  35. package/dist/components/Accordion/components/AccordionContent.js +24 -0
  36. package/dist/components/Accordion/components/AccordionContent.js.map +1 -0
  37. package/dist/components/Accordion/components/AccordionLayout.d.ts +7 -0
  38. package/dist/components/Accordion/components/AccordionLayout.js +17 -0
  39. package/dist/components/Accordion/components/AccordionLayout.js.map +1 -0
  40. package/dist/components/Accordion/components/AccordionTitle.d.ts +5 -0
  41. package/dist/components/Accordion/components/AccordionTitle.js +6 -0
  42. package/dist/components/Accordion/components/AccordionTitle.js.map +1 -0
  43. package/dist/components/Accordion/constants.d.ts +1 -0
  44. package/dist/components/Accordion/constants.js +5 -0
  45. package/dist/components/Accordion/constants.js.map +1 -0
  46. package/dist/components/Accordion/index.d.ts +8 -0
  47. package/dist/components/Accordion/index.js +10 -0
  48. package/dist/components/Accordion/index.js.map +1 -0
  49. package/dist/components/Button/Button.d.ts +14 -0
  50. package/dist/components/Button/Button.js +34 -0
  51. package/dist/components/Button/Button.js.map +1 -0
  52. package/dist/components/Button/Button.test.d.ts +1 -0
  53. package/dist/components/Button/Button.test.js +101 -0
  54. package/dist/components/Button/Button.test.js.map +1 -0
  55. package/dist/components/Button/constants.d.ts +15 -0
  56. package/dist/components/Button/constants.js +15 -0
  57. package/dist/components/Button/constants.js.map +1 -0
  58. package/dist/components/ButtonWithIcon/ButtonWithIcon.d.ts +13 -0
  59. package/dist/components/ButtonWithIcon/ButtonWithIcon.js +37 -0
  60. package/dist/components/ButtonWithIcon/ButtonWithIcon.js.map +1 -0
  61. package/dist/components/ButtonWithIcon/ButtonWithIcon.test.d.ts +1 -0
  62. package/dist/components/ButtonWithIcon/ButtonWithIcon.test.js +55 -0
  63. package/dist/components/ButtonWithIcon/ButtonWithIcon.test.js.map +1 -0
  64. package/dist/components/ButtonWithIcon/constants.d.ts +2 -0
  65. package/dist/components/ButtonWithIcon/constants.js +6 -0
  66. package/dist/components/ButtonWithIcon/constants.js.map +1 -0
  67. package/dist/components/Category/Category.d.ts +8 -0
  68. package/dist/components/Category/Category.js +18 -0
  69. package/dist/components/Category/Category.js.map +1 -0
  70. package/dist/components/Category/Category.test.d.ts +1 -0
  71. package/dist/components/Category/Category.test.js +14 -0
  72. package/dist/components/Category/Category.test.js.map +1 -0
  73. package/dist/components/Category/constants.d.ts +7 -0
  74. package/dist/components/Category/constants.js +10 -0
  75. package/dist/components/Category/constants.js.map +1 -0
  76. package/dist/components/Checkbox/CheckboxComponent.d.ts +3 -0
  77. package/dist/components/Checkbox/CheckboxComponent.js +6 -0
  78. package/dist/components/Checkbox/CheckboxComponent.js.map +1 -0
  79. package/dist/components/Checkbox/CheckboxComponent.test.d.ts +1 -0
  80. package/dist/components/Checkbox/CheckboxComponent.test.js +31 -0
  81. package/dist/components/Checkbox/CheckboxComponent.test.js.map +1 -0
  82. package/dist/components/Checkbox/components/CheckboxBlock.d.ts +7 -0
  83. package/dist/components/Checkbox/components/CheckboxBlock.js +19 -0
  84. package/dist/components/Checkbox/components/CheckboxBlock.js.map +1 -0
  85. package/dist/components/Checkbox/components/CheckboxIndicator.d.ts +2 -0
  86. package/dist/components/Checkbox/components/CheckboxIndicator.js +7 -0
  87. package/dist/components/Checkbox/components/CheckboxIndicator.js.map +1 -0
  88. package/dist/components/Checkbox/components/CheckboxInput.d.ts +3 -0
  89. package/dist/components/Checkbox/components/CheckboxInput.js +34 -0
  90. package/dist/components/Checkbox/components/CheckboxInput.js.map +1 -0
  91. package/dist/components/Checkbox/constants.d.ts +11 -0
  92. package/dist/components/Checkbox/constants.js +6 -0
  93. package/dist/components/Checkbox/constants.js.map +1 -0
  94. package/dist/components/Checkbox/index.d.ts +5 -0
  95. package/dist/components/Checkbox/index.js +8 -0
  96. package/dist/components/Checkbox/index.js.map +1 -0
  97. package/dist/components/Dropdown/Dropdown.test.d.ts +1 -0
  98. package/dist/components/Dropdown/Dropdown.test.js +57 -0
  99. package/dist/components/Dropdown/Dropdown.test.js.map +1 -0
  100. package/dist/components/Dropdown/DropdownComponent.d.ts +9 -0
  101. package/dist/components/Dropdown/DropdownComponent.js +9 -0
  102. package/dist/components/Dropdown/DropdownComponent.js.map +1 -0
  103. package/dist/components/Dropdown/components/DropdownBlock.d.ts +5 -0
  104. package/dist/components/Dropdown/components/DropdownBlock.js +6 -0
  105. package/dist/components/Dropdown/components/DropdownBlock.js.map +1 -0
  106. package/dist/components/Dropdown/components/DropdownCategory.d.ts +7 -0
  107. package/dist/components/Dropdown/components/DropdownCategory.js +18 -0
  108. package/dist/components/Dropdown/components/DropdownCategory.js.map +1 -0
  109. package/dist/components/Dropdown/components/DropdownList.d.ts +3 -0
  110. package/dist/components/Dropdown/components/DropdownList.js +6 -0
  111. package/dist/components/Dropdown/components/DropdownList.js.map +1 -0
  112. package/dist/components/Dropdown/components/DropdownOption.d.ts +8 -0
  113. package/dist/components/Dropdown/components/DropdownOption.js +22 -0
  114. package/dist/components/Dropdown/components/DropdownOption.js.map +1 -0
  115. package/dist/components/Dropdown/constants.d.ts +11 -0
  116. package/dist/components/Dropdown/constants.js +5 -0
  117. package/dist/components/Dropdown/constants.js.map +1 -0
  118. package/dist/components/Dropdown/index.d.ts +6 -0
  119. package/dist/components/Dropdown/index.js +8 -0
  120. package/dist/components/Dropdown/index.js.map +1 -0
  121. package/dist/components/FavButton/FavButton.d.ts +11 -0
  122. package/dist/components/FavButton/FavButton.js +30 -0
  123. package/dist/components/FavButton/FavButton.js.map +1 -0
  124. package/dist/components/FavButton/FavButton.test.d.ts +1 -0
  125. package/dist/components/FavButton/FavButton.test.js +81 -0
  126. package/dist/components/FavButton/FavButton.test.js.map +1 -0
  127. package/dist/components/FavButton/constants.d.ts +6 -0
  128. package/dist/components/FavButton/constants.js +9 -0
  129. package/dist/components/FavButton/constants.js.map +1 -0
  130. package/dist/components/Field/FieldComponent.d.ts +9 -0
  131. package/dist/components/Field/FieldComponent.js +9 -0
  132. package/dist/components/Field/FieldComponent.js.map +1 -0
  133. package/dist/components/Field/FieldComponent.test.d.ts +1 -0
  134. package/dist/components/Field/FieldComponent.test.js +31 -0
  135. package/dist/components/Field/FieldComponent.test.js.map +1 -0
  136. package/dist/components/Field/components/FieldError.d.ts +5 -0
  137. package/dist/components/Field/components/FieldError.js +6 -0
  138. package/dist/components/Field/components/FieldError.js.map +1 -0
  139. package/dist/components/Field/components/FieldLabel.d.ts +6 -0
  140. package/dist/components/Field/components/FieldLabel.js +15 -0
  141. package/dist/components/Field/components/FieldLabel.js.map +1 -0
  142. package/dist/components/Field/constants.d.ts +2 -0
  143. package/dist/components/Field/constants.js +6 -0
  144. package/dist/components/Field/constants.js.map +1 -0
  145. package/dist/components/Field/index.d.ts +4 -0
  146. package/dist/components/Field/index.js +7 -0
  147. package/dist/components/Field/index.js.map +1 -0
  148. package/dist/components/FilterAccordion/FilterAccordionComponent.d.ts +9 -0
  149. package/dist/components/FilterAccordion/FilterAccordionComponent.js +7 -0
  150. package/dist/components/FilterAccordion/FilterAccordionComponent.js.map +1 -0
  151. package/dist/components/FilterAccordion/FilterAccordionComponent.test.d.ts +1 -0
  152. package/dist/components/FilterAccordion/FilterAccordionComponent.test.js +34 -0
  153. package/dist/components/FilterAccordion/FilterAccordionComponent.test.js.map +1 -0
  154. package/dist/components/FilterAccordion/components/FilterAccordionArrow.d.ts +5 -0
  155. package/dist/components/FilterAccordion/components/FilterAccordionArrow.js +14 -0
  156. package/dist/components/FilterAccordion/components/FilterAccordionArrow.js.map +1 -0
  157. package/dist/components/FilterAccordion/components/FilterAccordionBlock.d.ts +5 -0
  158. package/dist/components/FilterAccordion/components/FilterAccordionBlock.js +6 -0
  159. package/dist/components/FilterAccordion/components/FilterAccordionBlock.js.map +1 -0
  160. package/dist/components/FilterAccordion/components/FilterAccordionContent.d.ts +6 -0
  161. package/dist/components/FilterAccordion/components/FilterAccordionContent.js +18 -0
  162. package/dist/components/FilterAccordion/components/FilterAccordionContent.js.map +1 -0
  163. package/dist/components/FilterAccordion/components/FilterAccordionLayout.d.ts +7 -0
  164. package/dist/components/FilterAccordion/components/FilterAccordionLayout.js +17 -0
  165. package/dist/components/FilterAccordion/components/FilterAccordionLayout.js.map +1 -0
  166. package/dist/components/FilterAccordion/components/FilterAccordionReset.d.ts +3 -0
  167. package/dist/components/FilterAccordion/components/FilterAccordionReset.js +16 -0
  168. package/dist/components/FilterAccordion/components/FilterAccordionReset.js.map +1 -0
  169. package/dist/components/FilterAccordion/constants.d.ts +3 -0
  170. package/dist/components/FilterAccordion/constants.js +9 -0
  171. package/dist/components/FilterAccordion/constants.js.map +1 -0
  172. package/dist/components/FilterAccordion/index.d.ts +7 -0
  173. package/dist/components/FilterAccordion/index.js +10 -0
  174. package/dist/components/FilterAccordion/index.js.map +1 -0
  175. package/dist/components/FilterButton/FilterButton.d.ts +8 -0
  176. package/dist/components/FilterButton/FilterButton.js +20 -0
  177. package/dist/components/FilterButton/FilterButton.js.map +1 -0
  178. package/dist/components/FilterButton/FilterButton.test.d.ts +1 -0
  179. package/dist/components/FilterButton/FilterButton.test.js +18 -0
  180. package/dist/components/FilterButton/FilterButton.test.js.map +1 -0
  181. package/dist/components/Gallery/Gallery.d.ts +8 -0
  182. package/dist/components/Gallery/Gallery.js +1094 -0
  183. package/dist/components/Gallery/Gallery.js.map +1 -0
  184. package/dist/components/Gallery/Gallery.test.d.ts +0 -0
  185. package/dist/components/Gallery/Gallery.test.js +25 -0
  186. package/dist/components/Gallery/Gallery.test.js.map +1 -0
  187. package/dist/components/Gallery/constants.d.ts +1 -0
  188. package/dist/components/Gallery/constants.js +5 -0
  189. package/dist/components/Gallery/constants.js.map +1 -0
  190. package/dist/components/Input/Input.d.ts +15 -0
  191. package/dist/components/Input/Input.js +43 -0
  192. package/dist/components/Input/Input.js.map +1 -0
  193. package/dist/components/Input/Input.test.d.ts +1 -0
  194. package/dist/components/Input/Input.test.js +46 -0
  195. package/dist/components/Input/Input.test.js.map +1 -0
  196. package/dist/components/Input/constants.d.ts +1 -0
  197. package/dist/components/Input/constants.js +5 -0
  198. package/dist/components/Input/constants.js.map +1 -0
  199. package/dist/components/LinkWithIcon/LinkWithIcon.d.ts +9 -0
  200. package/dist/components/LinkWithIcon/LinkWithIcon.js +19 -0
  201. package/dist/components/LinkWithIcon/LinkWithIcon.js.map +1 -0
  202. package/dist/components/LinkWithIcon/LinkWithIcon.test.d.ts +1 -0
  203. package/dist/components/LinkWithIcon/LinkWithIcon.test.js +55 -0
  204. package/dist/components/LinkWithIcon/LinkWithIcon.test.js.map +1 -0
  205. package/dist/components/LinkWithIcon/constants.d.ts +2 -0
  206. package/dist/components/LinkWithIcon/constants.js +6 -0
  207. package/dist/components/LinkWithIcon/constants.js.map +1 -0
  208. package/dist/components/NavLink/NavLink.d.ts +8 -0
  209. package/dist/components/NavLink/NavLink.js +20 -0
  210. package/dist/components/NavLink/NavLink.js.map +1 -0
  211. package/dist/components/NavLink/NavLink.test.d.ts +1 -0
  212. package/dist/components/NavLink/NavLink.test.js +30 -0
  213. package/dist/components/NavLink/NavLink.test.js.map +1 -0
  214. package/dist/components/NavLink/constants.d.ts +1 -0
  215. package/dist/components/NavLink/constants.js +5 -0
  216. package/dist/components/NavLink/constants.js.map +1 -0
  217. package/dist/components/Pagination/Pagination.test.d.ts +1 -0
  218. package/dist/components/Pagination/Pagination.test.js +79 -0
  219. package/dist/components/Pagination/Pagination.test.js.map +1 -0
  220. package/dist/components/Pagination/PaginationComponent.d.ts +6 -0
  221. package/dist/components/Pagination/PaginationComponent.js +8 -0
  222. package/dist/components/Pagination/PaginationComponent.js.map +1 -0
  223. package/dist/components/Pagination/components/PaginationArrow.d.ts +8 -0
  224. package/dist/components/Pagination/components/PaginationArrow.js +29 -0
  225. package/dist/components/Pagination/components/PaginationArrow.js.map +1 -0
  226. package/dist/components/Pagination/components/PaginationBody.d.ts +3 -0
  227. package/dist/components/Pagination/components/PaginationBody.js +6 -0
  228. package/dist/components/Pagination/components/PaginationBody.js.map +1 -0
  229. package/dist/components/Pagination/components/PaginationPage.d.ts +8 -0
  230. package/dist/components/Pagination/components/PaginationPage.js +17 -0
  231. package/dist/components/Pagination/components/PaginationPage.js.map +1 -0
  232. package/dist/components/Pagination/constants.d.ts +16 -0
  233. package/dist/components/Pagination/constants.js +11 -0
  234. package/dist/components/Pagination/constants.js.map +1 -0
  235. package/dist/components/Pagination/index.d.ts +5 -0
  236. package/dist/components/Pagination/index.js +7 -0
  237. package/dist/components/Pagination/index.js.map +1 -0
  238. package/dist/components/RangeSlider/RangeSlider.d.ts +7 -0
  239. package/dist/components/RangeSlider/RangeSlider.js +1072 -0
  240. package/dist/components/RangeSlider/RangeSlider.js.map +1 -0
  241. package/dist/components/RangeSlider/RangeSlider.test.d.ts +1 -0
  242. package/dist/components/RangeSlider/RangeSlider.test.js +15 -0
  243. package/dist/components/RangeSlider/RangeSlider.test.js.map +1 -0
  244. package/dist/components/RouterLink/RouterLink.d.ts +11 -0
  245. package/dist/components/RouterLink/RouterLink.js +32 -0
  246. package/dist/components/RouterLink/RouterLink.js.map +1 -0
  247. package/dist/components/RouterLink/RouterLink.test.d.ts +1 -0
  248. package/dist/components/RouterLink/RouterLink.test.js +68 -0
  249. package/dist/components/RouterLink/RouterLink.test.js.map +1 -0
  250. package/dist/components/RouterLink/constants.d.ts +8 -0
  251. package/dist/components/RouterLink/constants.js +11 -0
  252. package/dist/components/RouterLink/constants.js.map +1 -0
  253. package/dist/components/Select/Select.test.d.ts +1 -0
  254. package/dist/components/Select/Select.test.js +100 -0
  255. package/dist/components/Select/Select.test.js.map +1 -0
  256. package/dist/components/Select/SelectComponent.d.ts +13 -0
  257. package/dist/components/Select/SelectComponent.js +7 -0
  258. package/dist/components/Select/SelectComponent.js.map +1 -0
  259. package/dist/components/Select/components/SelectArrow.d.ts +2 -0
  260. package/dist/components/Select/components/SelectArrow.js +7 -0
  261. package/dist/components/Select/components/SelectArrow.js.map +1 -0
  262. package/dist/components/Select/components/SelectBlock.d.ts +6 -0
  263. package/dist/components/Select/components/SelectBlock.js +13 -0
  264. package/dist/components/Select/components/SelectBlock.js.map +1 -0
  265. package/dist/components/Select/components/SelectInput.d.ts +6 -0
  266. package/dist/components/Select/components/SelectInput.js +15 -0
  267. package/dist/components/Select/components/SelectInput.js.map +1 -0
  268. package/dist/components/Select/components/SelectList.d.ts +7 -0
  269. package/dist/components/Select/components/SelectList.js +6 -0
  270. package/dist/components/Select/components/SelectList.js.map +1 -0
  271. package/dist/components/Select/components/SelectOption.d.ts +7 -0
  272. package/dist/components/Select/components/SelectOption.js +16 -0
  273. package/dist/components/Select/components/SelectOption.js.map +1 -0
  274. package/dist/components/Select/components/SelectWrapper.d.ts +9 -0
  275. package/dist/components/Select/components/SelectWrapper.js +23 -0
  276. package/dist/components/Select/components/SelectWrapper.js.map +1 -0
  277. package/dist/components/Select/constants.d.ts +2 -0
  278. package/dist/components/Select/constants.js +8 -0
  279. package/dist/components/Select/constants.js.map +1 -0
  280. package/dist/components/Select/index.d.ts +8 -0
  281. package/dist/components/Select/index.js +10 -0
  282. package/dist/components/Select/index.js.map +1 -0
  283. package/dist/components/Slider/SliderComponent.d.ts +16 -0
  284. package/dist/components/Slider/SliderComponent.js +7 -0
  285. package/dist/components/Slider/SliderComponent.js.map +1 -0
  286. package/dist/components/Slider/constants.d.ts +4 -0
  287. package/dist/components/Slider/constants.js +2803 -0
  288. package/dist/components/Slider/constants.js.map +1 -0
  289. package/dist/components/SliderNavigate/SliderNavigate.d.ts +2 -0
  290. package/dist/components/SliderNavigate/SliderNavigate.js +21 -0
  291. package/dist/components/SliderNavigate/SliderNavigate.js.map +1 -0
  292. package/dist/components/SliderNavigate/SliderNavigate.test.d.ts +1 -0
  293. package/dist/components/SliderNavigate/SliderNavigate.test.js +24 -0
  294. package/dist/components/SliderNavigate/SliderNavigate.test.js.map +1 -0
  295. package/dist/components/SliderNavigate/components/NavigateButton.d.ts +7 -0
  296. package/dist/components/SliderNavigate/components/NavigateButton.js +19 -0
  297. package/dist/components/SliderNavigate/components/NavigateButton.js.map +1 -0
  298. package/dist/components/SliderNavigate/constants.d.ts +7 -0
  299. package/dist/components/SliderNavigate/constants.js +10 -0
  300. package/dist/components/SliderNavigate/constants.js.map +1 -0
  301. package/dist/iconBase-C4boY5mo.cjs +2 -0
  302. package/dist/iconBase-C4boY5mo.cjs.map +1 -0
  303. package/dist/iconBase-DSKTHwal.js +113 -0
  304. package/dist/iconBase-DSKTHwal.js.map +1 -0
  305. package/dist/index-6k1-qYX7.cjs +2 -0
  306. package/dist/index-6k1-qYX7.cjs.map +1 -0
  307. package/dist/index-BHJQkg-z.js +39 -0
  308. package/dist/index-BHJQkg-z.js.map +1 -0
  309. package/dist/index-BeUY6TnM.js +68 -0
  310. package/dist/index-BeUY6TnM.js.map +1 -0
  311. package/dist/index-C55-7-85.cjs +2 -0
  312. package/dist/index-C55-7-85.cjs.map +1 -0
  313. package/dist/index-C9UV8B4g.cjs +2 -0
  314. package/dist/index-C9UV8B4g.cjs.map +1 -0
  315. package/dist/index-CGl3Xo_k.js +19135 -0
  316. package/dist/index-CGl3Xo_k.js.map +1 -0
  317. package/dist/index-D9bMq-6v.cjs +2 -0
  318. package/dist/index-D9bMq-6v.cjs.map +1 -0
  319. package/dist/index-DgPeknFG.cjs +2 -0
  320. package/dist/index-DgPeknFG.cjs.map +1 -0
  321. package/dist/index-DpGIQZJ3.js +35 -0
  322. package/dist/index-DpGIQZJ3.js.map +1 -0
  323. package/dist/index-DtO1atyA.js +30 -0
  324. package/dist/index-DtO1atyA.js.map +1 -0
  325. package/dist/index-YTr4A0AR.js +25 -0
  326. package/dist/index-YTr4A0AR.js.map +1 -0
  327. package/dist/index-vOj_CXk2.cjs +175 -0
  328. package/dist/index-vOj_CXk2.cjs.map +1 -0
  329. package/dist/index.d.ts +1 -0
  330. package/dist/index.js +5 -0
  331. package/dist/index.js.map +1 -0
  332. package/dist/react.esm-C2dSWZxI.cjs +91 -0
  333. package/dist/react.esm-C2dSWZxI.cjs.map +1 -0
  334. package/dist/react.esm-DeOc63_l.js +11455 -0
  335. package/dist/react.esm-DeOc63_l.js.map +1 -0
  336. package/dist/services/helpers.d.ts +2 -0
  337. package/dist/services/helpers.js +21 -0
  338. package/dist/services/helpers.js.map +1 -0
  339. package/dist/services/hoc/withBlockClass.d.ts +7 -0
  340. package/dist/services/hoc/withBlockClass.js +22 -0
  341. package/dist/services/hoc/withBlockClass.js.map +1 -0
  342. package/dist/services/hooks/useAccordionHeight.d.ts +9 -0
  343. package/dist/services/hooks/useAccordionHeight.js +17 -0
  344. package/dist/services/hooks/useAccordionHeight.js.map +1 -0
  345. package/dist/services/hooks/useClickOutside.d.ts +5 -0
  346. package/dist/services/hooks/useClickOutside.js +17 -0
  347. package/dist/services/hooks/useClickOutside.js.map +1 -0
  348. package/dist/services/hooks/useMatchMedia.d.ts +1 -0
  349. package/dist/services/hooks/useMatchMedia.js +18 -0
  350. package/dist/services/hooks/useMatchMedia.js.map +1 -0
  351. package/dist/services/icons.d.ts +7 -0
  352. package/dist/services/icons.js +27 -0
  353. package/dist/services/icons.js.map +1 -0
  354. package/dist/services/mocks.d.ts +12 -0
  355. package/dist/services/mocks.js +21 -0
  356. package/dist/services/mocks.js.map +1 -0
  357. package/dist/services/types.d.ts +7 -0
  358. package/dist/services/types.js +2 -0
  359. package/dist/services/types.js.map +1 -0
  360. package/dist/setupTests.d.ts +0 -0
  361. package/dist/setupTests.js +10217 -0
  362. package/dist/setupTests.js.map +1 -0
  363. package/package.json +115 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../node_modules/swiper/shared/ssr-window.esm.mjs","../../../node_modules/swiper/shared/utils.mjs","../../../node_modules/swiper/shared/swiper-core.mjs","../../../node_modules/swiper/shared/update-swiper.mjs","../../../node_modules/swiper/shared/update-on-virtual-data.mjs","../../../node_modules/swiper/swiper-react.mjs","../../../lib/components/Slider/constants.ts","../../../lib/components/Slider/SliderComponent.tsx"],"sourcesContent":["/**\n * SSR Window 5.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2025, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 12, 2025\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n const window = getWindow();\n const children = [...element.children];\n if (window.HTMLSlotElement && element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOfSlot(el, slot) {\n // Breadth-first search through all parent's children and assigned elements\n const elementsQueue = [slot];\n while (elementsQueue.length > 0) {\n const elementToCheck = elementsQueue.shift();\n if (el === elementToCheck) {\n return true;\n }\n elementsQueue.push(...elementToCheck.children, ...(elementToCheck.shadowRoot ? elementToCheck.shadowRoot.children : []), ...(elementToCheck.assignedElements ? elementToCheck.assignedElements() : []));\n }\n}\nfunction elementIsChildOf(el, parent) {\n const window = getWindow();\n let isChild = parent.contains(el);\n if (!isChild && window.HTMLSlotElement && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n isChild = children.includes(el);\n if (!isChild) {\n isChild = elementIsChildOfSlot(el, parent);\n }\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\n}\nfunction setInnerHTML(el, html) {\n if (html === void 0) {\n html = '';\n }\n if (typeof trustedTypes !== 'undefined') {\n el.innerHTML = trustedTypes.createPolicy('html', {\n createHTML: s => s\n }).createHTML(html);\n } else {\n el.innerHTML = html;\n }\n}\n\nexport { setCSSProperty as a, elementParents as b, createElement as c, elementOffset as d, elementChildren as e, now as f, getSlideTransformEl as g, elementOuterSize as h, elementIndex as i, classesToTokens as j, getTranslate as k, elementTransitionEnd as l, makeElementsArray as m, nextTick as n, isObject as o, getRotateFix as p, elementStyle as q, elementNextAll as r, setInnerHTML as s, elementPrevAll as t, animateCSSModeScroll as u, showWarning as v, elementIsChildOf as w, extend as x, deleteProps as y };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { b as elementParents, q as elementStyle, e as elementChildren, a as setCSSProperty, h as elementOuterSize, r as elementNextAll, t as elementPrevAll, k as getTranslate, u as animateCSSModeScroll, n as nextTick, v as showWarning, c as createElement, w as elementIsChildOf, f as now, x as extend, i as elementIndex, y as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.find(slideEl => slideEl.column === activeIndex);\n nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);\n prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.find(slideEl => slideEl.column === activeIndex);\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n } else if (runCallbacks && activeIndex !== previousIndex) {\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // initial virtual\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const isInitialVirtual = isVirtual && initial;\n // Update Index\n if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n const browser = getBrowser();\n const isSafari = browser.isSafari;\n if (isVirtual && !initial && isSafari && swiper.isElement) {\n swiper.virtual.update(false, false, slideIndex);\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n const isFreeMode = params.freeMode && params.freeMode.enabled;\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && (params.cssMode || isFreeMode)) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = isFreeMode ? snapGrid[prevSnapIndex] : snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex, initial) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next',\n initial\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n initial,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides,\n initialSlide\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides || swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const isInitialOverflow = initial && cols - initialSlide < slidesPerView && !centeredSlides;\n let activeIndex = isInitialOverflow ? initialSlide : swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.find(el => el.classList.contains(params.slideActiveClass)));\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n if (isInitialOverflow) {\n slidesAppended = Math.max(slidesAppended, slidesPerView - cols + initialSlide + 1);\n }\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n if (appendSlidesIndexes.includes(activeSlideIndex)) {\n appendSlidesIndexes.splice(appendSlidesIndexes.indexOf(activeSlideIndex), 1);\n }\n if (prependSlidesIndexes.includes(activeSlideIndex)) {\n prependSlidesIndexes.splice(prependSlidesIndexes.indexOf(activeSlideIndex), 1);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || !slidesEl || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (rtl && (pageX > touches.startX && -swiper.translate <= swiper.maxTranslate() || pageX < touches.startX && -swiper.translate >= swiper.minTranslate())) {\n return;\n } else if (!rtl && (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate())) {\n return;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n document.activeElement.blur();\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (params._loopSwapReset !== false && data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n const document = getDocument();\n\n // Get breakpoint for window/container width and update parameters\n const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';\n const breakpointContainer = ['window', 'container'].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document.querySelector(params.breakpointsBase);\n const breakpoint = swiper.getBreakpoint(breakpoints, breakpointsBase, breakpointContainer);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate(undefined, true);\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","import { s as setInnerHTML } from './utils.mjs';\n\n/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'swiperElementNodeName', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__;\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nfunction attrToProp(attrName) {\n if (attrName === void 0) {\n attrName = '';\n }\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className) {\n if (className === void 0) {\n className = '';\n }\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n return className;\n}\n\nfunction updateSwiper(_ref) {\n let {\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n } = _ref;\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && !passedParams.thumbs.swiper.destroyed && currentParams.thumbs && (!currentParams.thumbs.swiper || currentParams.thumbs.swiper.destroyed)) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n Object.assign(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('virtual') && virtual && currentParams.virtual.enabled) {\n if (slides) virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n paginationEl.part.add('pagination');\n swiper.el.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n scrollbarEl.part.add('scrollbar');\n swiper.el.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n setInnerHTML(nextEl, swiper.hostEl.constructor.nextButtonSvg);\n nextEl.part.add('button-next');\n swiper.el.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n setInnerHTML(prevEl, swiper.hostEl.constructor.prevButtonSvg);\n prevEl.part.add('button-prev');\n swiper.el.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\n\nexport { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w };\n","import { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\n\nfunction getParams(obj, splitEvents) {\n if (obj === void 0) {\n obj = {};\n }\n if (splitEvents === void 0) {\n splitEvents = true;\n }\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, defaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nfunction mountSwiper(_ref, swiperParams) {\n let {\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n } = _ref;\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nconst updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n swiper.emit('_virtualUpdated');\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};\n\nexport { getChangedParams as a, getParams as g, mountSwiper as m, updateOnVirtualData as u };\n","/**\n * Swiper React 11.2.8\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2025 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: May 23, 2025\n */\n\nimport React, { useEffect, useLayoutEffect, useContext, createContext, forwardRef, useState, useRef } from 'react';\nimport { S as Swiper$1 } from './shared/swiper-core.mjs';\nimport { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnVirtualData } from './shared/update-on-virtual-data.mjs';\nimport { 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';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n const {\n from,\n to\n } = virtualData;\n const loopFrom = swiper.params.loop ? -slides.length : 0;\n const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n const slidesToRender = [];\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n slidesToRender.push(slides[getSlideIndex(i)]);\n }\n }\n return slidesToRender.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style,\n key: child.props.virtualIndex || child.key || `slide-${index}`\n });\n });\n}\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nconst SwiperSlideContext = /*#__PURE__*/createContext(null);\nconst useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nconst SwiperContext = /*#__PURE__*/createContext(null);\nconst useSwiper = () => {\n return useContext(SwiperContext);\n};\n\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n const passParams = {\n ...swiperParams\n };\n delete passParams.wrapperClass;\n swiperRef.current = new Swiper$1(passParams);\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n if (!swiperElRef.current) {\n initSwiper();\n }\n\n // Listen for breakpoints change\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n });\n\n // set initialized flag\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n });\n\n // mount swiper\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper && !swiperRef.current.destroyed) onSwiper(swiperRef.current);\n // eslint-disable-next-line\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []);\n\n // watch for params change\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return () => {\n detachEvents();\n };\n });\n\n // update on virtual update\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]);\n\n // bypass swiper instance to slides\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n return slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current,\n swiperSlideIndex: index\n });\n });\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: wrapperClass(swiperParams.wrapperClass)\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\n\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n lazy,\n virtualIndex,\n swiperSlideIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n const [lazyLoaded, setLazyLoaded] = useState(false);\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (typeof swiperSlideIndex !== 'undefined') {\n slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n }\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses);\n // eslint-disable-next-line\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n };\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n const onLoad = () => {\n setLazyLoaded(true);\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex,\n onLoad: onLoad\n }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\n\nexport { Swiper, SwiperSlide, useSwiper, useSwiperSlide };\n","import {SliderComponent} from '@/components/Slider/SliderComponent';\r\nimport {SwiperSlide} from 'swiper/react';\r\n\r\nexport const Slider = Object.assign(SliderComponent, {\r\n Slide: SwiperSlide,\r\n});\r\n\r\nexport const SLIDER_TEST_ID = 'sliderTestId';\r\n","import type {FC, ReactNode} from 'react';\r\n\r\nimport {Swiper} from 'swiper/react';\r\nimport type {SwiperModule} from 'swiper/types/shared';\r\nimport {SLIDER_TEST_ID} from '@/components/Slider/constants';\r\nimport {cn} from '@/services/helpers';\r\nimport type {ElementProps} from '@/services/types';\r\n\r\ninterface BreakpointSettings {\r\n slidesPerView: number;\r\n spaceBetween: number;\r\n}\r\n\r\nexport interface Props extends ElementProps {\r\n children: ReactNode;\r\n spaceBetween?: number;\r\n slidesPerView?: number;\r\n breakpoints?: Record<number, BreakpointSettings>;\r\n modules?: SwiperModule[];\r\n}\r\n\r\nexport const SliderComponent: FC<Props> = ({spaceBetween, slidesPerView, block, breakpoints, modules, children}) => (\r\n <Swiper\r\n className={cn(block, 'slider')}\r\n data-testid={SLIDER_TEST_ID}\r\n modules={modules}\r\n spaceBetween={spaceBetween}\r\n slidesPerView={slidesPerView}\r\n breakpoints={breakpoints}\r\n >\r\n {children}\r\n </Swiper>\r\n);\r\n"],"names":["isObject","obj","extend","target","src","noExtend","key","ssrDocument","getDocument","doc","ssrWindow","callback","id","getWindow","win","classesToTokens","classes","c","deleteProps","object","nextTick","delay","now","getComputedStyle","el","window","style","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","a","o","isNode","node","to","nextSource","keysArray","nextIndex","len","nextKey","desc","setCSSProperty","varName","varValue","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","startTime","time","duration","dir","isOutOfBound","current","animate","progress","easeProgress","currentPosition","elementChildren","element","selector","children","elementIsChildOfSlot","slot","elementsQueue","elementToCheck","elementIsChildOf","parent","isChild","showWarning","text","createElement","tag","elementPrevAll","prevEls","prev","elementNextAll","nextEls","next","elementStyle","prop","elementIndex","child","elementParents","parents","elementOuterSize","size","includeMargins","setInnerHTML","html","s","support","calcSupport","document","getSupport","deviceCached","calcDevice","_temp","userAgent","platform","ua","device","screenWidth","screenHeight","android","ipad","ipod","iphone","windows","macos","iPadScreens","getDevice","overrides","browser","calcBrowser","needPerspectiveFix","isSafari","major","minor","num","isWebView","isSafariBrowser","need3dFix","getBrowser","Resize","on","emit","observer","animationFrame","resizeHandler","createObserver","entries","width","height","newWidth","newHeight","_ref2","contentBoxSize","contentRect","removeObserver","orientationChangeHandler","Observer","extendParams","observers","attach","options","ObserverFunc","mutations","observerUpdate","init","containerParents","i","destroy","eventsEmitter","events","handler","priority","self","method","event","onceHandler","_len","args","_key","index","eventHandler","data","context","_len2","_key2","updateSize","updateSlides","getDirectionPropertyValue","label","params","wrapperEl","slidesEl","swiperSize","rtl","wrongRTL","isVirtual","previousSlidesLength","slides","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slideEl","gridEnabled","slideSize","shouldResetSlideSize","slide","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","marginLeft","marginRight","boxSizing","clientWidth","offsetWidth","newSlidesGrid","slidesGridItem","groups","groupSize","_","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","offsetSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","speed","activeSlides","getSlideByIndex","updateSlidesOffset","minusOffset","toggleSlideClasses$1","condition","className","updateSlidesProgress","translate","offsetCenter","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","isVisible","updateProgress","multiplier","translatesDiff","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","toggleSlideClasses","updateSlidesClasses","activeIndex","getFilteredSlide","activeSlide","prevSlide","nextSlide","processLazyPreloader","imageEl","slideSelector","lazyEl","unlazy","preload","amount","slidesPerView","activeColumn","preloadColumns","slideIndexLastInView","realIndex","getActiveIndexByTranslate","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","skip","firstSlideInColumn","activeSlideIndex","updateClickedSlide","path","pathEl","slideFound","update","getSwiperTranslate","currentTranslate","setTranslate","byController","x","y","z","newProgress","minTranslate","maxTranslate","translateTo","runCallbacks","translateBounds","internal","newTranslate","isH","e","setTransition","transitionEmit","direction","step","transitionStart","transitionEnd","transition","slideTo","initial","enabled","normalizedTranslate","normalizedGrid","normalizedGridNext","t","slideToLoop","newIndex","targetSlideIndex","cols","centeredSlides","needLoopFix","slideNext","animating","perGroup","increment","slidePrev","rtlTranslate","normalize","val","normalizedSnapGrid","isFreeMode","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","nextSnap","slideToClickedSlide","slideToIndex","loopCreate","slideRealIndex","initSlides","slidesPerGroup","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slidesToAdd","loopFix","byMousewheel","allowSlidePrev","allowSlideNext","initialSlide","loopedSlides","prependSlidesIndexes","appendSlidesIndexes","isInitialOverflow","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","currentSlideTranslate","diff","shift","loopParams","loopDestroy","newSlidesOrder","loop","setGrabCursor","moving","unsetGrabCursor","grabCursor","closestElement","base","__closestFrom","found","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","onTouchStart","touches","targetEl","swipingClassHasValue","eventPath","noSwipingSelector","isTargetShadow","startY","preventDefault","shouldPreventDefault","onTouchMove","targetTouch","pageX","pageY","diffX","diffY","touchAngle","touchesDiff","prevTouchesDirection","isLoop","allowLoopFix","evt","disableParentSwiper","resistanceRatio","onTouchEnd","touchEndTime","timeDiff","pathTree","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","onResize","isVirtualLoop","onClick","onScroll","onLoad","onDocumentTouchStart","capture","domMethod","swiperMethod","attachEvents","detachEvents","events$1","isGridEnabled","setBreakpoint","initialized","breakpoints","breakpointsBase","breakpointContainer","breakpoint","breakpointParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","isEnabled","hasLoop","getBreakpoint","containerEl","currentHeight","points","point","minRatio","b","value","prepareClasses","prefix","resultClasses","item","classNames","addClasses","suffixes","removeClasses","checkOverflow","wasLocked","slidesOffsetBefore","lastSlideRightEdge","checkOverflow$1","defaults","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","extendedDefaults","Swiper$1","Swiper","swipers","newParams","mod","swiperParams","eventName","property","min","cls","updates","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","getWrapperSelector","lazyElements","deleteInstance","cleanStyles","newDefaults","modules","module","m","prototypeGroup","protoMethod","paramsList","needsNavigation","needsPagination","needsScrollbar","uniqueClasses","unique","wrapperClass","updateSwiper","passedParams","changedParams","nextEl","prevEl","scrollbarEl","paginationEl","updateParams","currentParams","pagination","navigation","scrollbar","virtual","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","destroyModule","newValue","getParams","splitEvents","rest","allowedParams","plainObj","mountSwiper","getChangedParams","oldParams","oldChildren","getKey","keys","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","updateOnVirtualData","_extends","source","isChildSwiperSlide","processChildren","React","getChildren","slots","foundSlides","renderVirtual","virtualData","getSlideIndex","from","loopFrom","loopTo","slidesToRender","useIsomorphicLayoutEffect","deps","useEffect","useLayoutEffect","SwiperSlideContext","createContext","SwiperContext","forwardRef","externalElRef","Tag","WrapperTag","onSwiper","eventsAssigned","containerClasses","setContainerClasses","useState","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","useRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","restProps","onBeforeBreakpoint","initSwiper","passParams","extendWith","renderSlides","SwiperSlide","externalRef","zoom","lazy","virtualIndex","swiperSlideIndex","slideElRef","slideClasses","setSlideClasses","lazyLoaded","setLazyLoaded","updateClasses","_s","slideData","renderChildren","Slider","SliderComponent","SLIDER_TEST_ID","block","jsx","cn"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}