@nanoporetech-digital/components 5.10.0 → 5.11.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 (737) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/cjs/{algolia-data-6841724e.js → algolia-data-dba27b97.js} +2 -2
  3. package/dist/cjs/{algolia-data-6841724e.js.map → algolia-data-dba27b97.js.map} +1 -1
  4. package/dist/cjs/{algoliasearch-lite.esm.browser-992a2eff.js → algoliasearch-lite.esm.browser-b74ca774.js} +30 -5
  5. package/dist/cjs/algoliasearch-lite.esm.browser-b74ca774.js.map +1 -0
  6. package/dist/cjs/{component-store-6d7b8855.js → component-store-149aeffe.js} +2 -2
  7. package/dist/cjs/{component-store-6d7b8855.js.map → component-store-149aeffe.js.map} +1 -1
  8. package/dist/cjs/fade-dcabf3c1.js +211 -0
  9. package/dist/cjs/fade-dcabf3c1.js.map +1 -0
  10. package/dist/cjs/{form-control-8db579a2.js → form-control-f100407e.js} +2 -2
  11. package/dist/cjs/{form-control-8db579a2.js.map → form-control-f100407e.js.map} +1 -1
  12. package/dist/cjs/fullscreen-d24940a1.js +133 -0
  13. package/dist/cjs/fullscreen-d24940a1.js.map +1 -0
  14. package/dist/cjs/{global-3a6a7873.js → global-a5710651.js} +7 -7
  15. package/dist/cjs/{global-3a6a7873.js.map → global-a5710651.js.map} +1 -1
  16. package/dist/cjs/{index-1d3ebe1a.js → index-14451c95.js} +8 -6
  17. package/dist/cjs/index-14451c95.js.map +1 -0
  18. package/dist/cjs/{index-0f470227.js → index-f6f89d47.js} +2 -2
  19. package/dist/cjs/{index-0f470227.js.map → index-f6f89d47.js.map} +1 -1
  20. package/dist/cjs/lazyload-f6be7590.js +95 -0
  21. package/dist/cjs/lazyload-f6be7590.js.map +1 -0
  22. package/dist/cjs/loader.cjs.js +4 -4
  23. package/dist/cjs/loader.cjs.js.map +1 -1
  24. package/dist/cjs/nano-accordion.cjs.entry.js +1 -1
  25. package/dist/cjs/nano-alert.cjs.entry.js +3 -3
  26. package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nano-algolia-filter.cjs.entry.js +3 -3
  28. package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nano-algolia-pagination.cjs.entry.js +2 -7
  30. package/dist/cjs/nano-algolia-pagination.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nano-algolia-results.cjs.entry.js +2 -2
  32. package/dist/cjs/nano-algolia-results.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nano-algolia.cjs.entry.js +982 -26
  34. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nano-aspect-ratio.cjs.entry.js +1 -1
  36. package/dist/cjs/nano-checkbox-group.cjs.entry.js +10 -4
  37. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  38. package/dist/cjs/nano-checkbox.cjs.entry.js +4 -2
  39. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  40. package/dist/cjs/nano-components.cjs.js +4 -4
  41. package/dist/cjs/nano-components.cjs.js.map +1 -1
  42. package/dist/cjs/nano-datalist_3.cjs.entry.js +4 -4
  43. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
  44. package/dist/cjs/nano-date-input.cjs.entry.js +1 -1
  45. package/dist/cjs/nano-date-picker.cjs.entry.js +2 -2
  46. package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -1
  47. package/dist/cjs/nano-demo.cjs.entry.js +1 -1
  48. package/dist/cjs/nano-details.cjs.entry.js +2 -2
  49. package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
  50. package/dist/cjs/nano-dialog.cjs.entry.js +5 -5
  51. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nano-drawer.cjs.entry.js +5 -5
  53. package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nano-dropdown.cjs.entry.js +1 -1
  55. package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
  56. package/dist/cjs/nano-field-validator.cjs.entry.js +7 -5
  57. package/dist/cjs/nano-field-validator.cjs.entry.js.map +1 -1
  58. package/dist/cjs/nano-file-upload.cjs.entry.js +2 -2
  59. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  60. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +4 -4
  61. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
  62. package/dist/cjs/nano-global-nav.cjs.entry.js +122 -153
  63. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  64. package/dist/cjs/nano-global-search-results.cjs.entry.js +3 -3
  65. package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
  66. package/dist/cjs/nano-grid-item.cjs.entry.js +1 -1
  67. package/dist/cjs/nano-grid_2.cjs.entry.js +2 -2
  68. package/dist/cjs/nano-grid_2.cjs.entry.js.map +1 -1
  69. package/dist/cjs/nano-hero.cjs.entry.js +2 -2
  70. package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
  71. package/dist/cjs/nano-icon-button_2.cjs.entry.js +24 -4
  72. package/dist/cjs/nano-icon-button_2.cjs.entry.js.map +1 -1
  73. package/dist/cjs/nano-icon.cjs.entry.js +4 -4
  74. package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
  75. package/dist/cjs/nano-input.cjs.entry.js +3 -3
  76. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  77. package/dist/cjs/nano-menu-drawer.cjs.entry.js +2 -2
  78. package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
  79. package/dist/cjs/nano-overflow-nav.cjs.entry.js +2 -2
  80. package/dist/cjs/nano-overflow-nav.cjs.entry.js.map +1 -1
  81. package/dist/cjs/nano-progress-bar.cjs.entry.js +2 -2
  82. package/dist/cjs/nano-progress-bar.cjs.entry.js.map +1 -1
  83. package/dist/cjs/nano-range.cjs.entry.js +2 -2
  84. package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
  85. package/dist/cjs/nano-rating.cjs.entry.js +2 -2
  86. package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
  87. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -1
  88. package/dist/cjs/nano-slide.cjs.entry.js +1 -1
  89. package/dist/cjs/nano-slides-2f3dcc02.js +2975 -0
  90. package/dist/cjs/nano-slides-2f3dcc02.js.map +1 -0
  91. package/dist/cjs/nano-slides.cjs.entry.js +3 -4292
  92. package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
  93. package/dist/cjs/nano-sortable.cjs.entry.js +1 -1
  94. package/dist/cjs/nano-spinner.cjs.entry.js +2 -2
  95. package/dist/cjs/nano-spinner.cjs.entry.js.map +1 -1
  96. package/dist/cjs/nano-split-pane.cjs.entry.js +1 -1
  97. package/dist/cjs/nano-sticker.cjs.entry.js +3 -2
  98. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  99. package/dist/cjs/nano-tab-content.cjs.entry.js +1 -1
  100. package/dist/cjs/nano-tab-group.cjs.entry.js +4 -4
  101. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  102. package/dist/cjs/nano-tab.cjs.entry.js +2 -2
  103. package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
  104. package/dist/cjs/{nano-table-72d5dc63.js → nano-table-26845696.js} +5 -5
  105. package/dist/cjs/{nano-table-72d5dc63.js.map → nano-table-26845696.js.map} +1 -1
  106. package/dist/cjs/nano-table.cjs.entry.js +3 -3
  107. package/dist/cjs/page-dots-ae2cefb4.js +140 -0
  108. package/dist/cjs/page-dots-ae2cefb4.js.map +1 -0
  109. package/dist/cjs/{scroll-fc1b8387.js → scroll-e8c21f80.js} +8 -4
  110. package/dist/cjs/scroll-e8c21f80.js.map +1 -0
  111. package/dist/cjs/{table.worker-3df34efe.js → table.worker-a5996745.js} +4 -4
  112. package/dist/cjs/table.worker-a5996745.js.map +1 -0
  113. package/dist/collection/collection-manifest.json +1 -1
  114. package/dist/collection/components/alert/alert.css +1 -2
  115. package/dist/collection/components/algolia/algolia-data.js.map +1 -1
  116. package/dist/collection/components/algolia/algolia-filter.js.map +1 -1
  117. package/dist/collection/components/algolia/algolia-pagination.js +0 -5
  118. package/dist/collection/components/algolia/algolia-pagination.js.map +1 -1
  119. package/dist/collection/components/algolia/algolia-results.js.map +1 -1
  120. package/dist/collection/components/algolia/algolia.js +4 -27
  121. package/dist/collection/components/algolia/algolia.js.map +1 -1
  122. package/dist/collection/components/algolia/lib/squirrelly/browser.js +10 -0
  123. package/dist/collection/components/algolia/lib/squirrelly/browser.js.map +1 -0
  124. package/dist/collection/components/algolia/lib/squirrelly/compile-string.js +151 -0
  125. package/dist/collection/components/algolia/lib/squirrelly/compile-string.js.map +1 -0
  126. package/dist/collection/components/algolia/lib/squirrelly/compile.js +44 -0
  127. package/dist/collection/components/algolia/lib/squirrelly/compile.js.map +1 -0
  128. package/dist/collection/components/algolia/lib/squirrelly/config.js +68 -0
  129. package/dist/collection/components/algolia/lib/squirrelly/config.js.map +1 -0
  130. package/dist/collection/components/algolia/lib/squirrelly/container-utils.js +57 -0
  131. package/dist/collection/components/algolia/lib/squirrelly/container-utils.js.map +1 -0
  132. package/dist/collection/components/algolia/lib/squirrelly/containers.js +128 -0
  133. package/dist/collection/components/algolia/lib/squirrelly/containers.js.map +1 -0
  134. package/dist/collection/components/algolia/lib/squirrelly/err.js +39 -0
  135. package/dist/collection/components/algolia/lib/squirrelly/err.js.map +1 -0
  136. package/dist/collection/components/algolia/lib/squirrelly/parse.js +327 -0
  137. package/dist/collection/components/algolia/lib/squirrelly/parse.js.map +1 -0
  138. package/dist/collection/components/algolia/lib/squirrelly/render.js +62 -0
  139. package/dist/collection/components/algolia/lib/squirrelly/render.js.map +1 -0
  140. package/dist/collection/components/algolia/lib/squirrelly/storage.js +32 -0
  141. package/dist/collection/components/algolia/lib/squirrelly/storage.js.map +1 -0
  142. package/dist/collection/components/algolia/lib/squirrelly/utils.js +102 -0
  143. package/dist/collection/components/algolia/lib/squirrelly/utils.js.map +1 -0
  144. package/dist/collection/{utils → components/algolia/lib}/template.js +1 -2
  145. package/dist/collection/components/algolia/lib/template.js.map +1 -0
  146. package/dist/collection/components/checkbox/checkbox-group.css +17 -15
  147. package/dist/collection/components/checkbox/checkbox-group.js +29 -2
  148. package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
  149. package/dist/collection/components/checkbox/checkbox.css +20 -22
  150. package/dist/collection/components/checkbox/checkbox.js +2 -0
  151. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  152. package/dist/collection/components/date-picker/date-picker.css +5 -10
  153. package/dist/collection/components/details/details.css +4 -4
  154. package/dist/collection/components/dialog/dialog.css +3 -6
  155. package/dist/collection/components/dialog/dialog.js +1 -1
  156. package/dist/collection/components/dialog/dialog.js.map +1 -1
  157. package/dist/collection/components/drawer/drawer.css +18 -24
  158. package/dist/collection/components/drawer/drawer.js +1 -1
  159. package/dist/collection/components/drawer/drawer.js.map +1 -1
  160. package/dist/collection/components/dropdown/dropdown.js +1 -1
  161. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  162. package/dist/collection/components/field-validator/field-validator.js +5 -3
  163. package/dist/collection/components/field-validator/field-validator.js.map +1 -1
  164. package/dist/collection/components/file-upload/file-upload.css +16 -30
  165. package/dist/collection/components/global-nav/global-nav.js +118 -157
  166. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  167. package/dist/collection/components/global-nav/style/global-nav.css +97 -138
  168. package/dist/collection/components/global-search-results/global-search-results.css +85 -127
  169. package/dist/collection/components/global-search-results/global-search-results.js +1 -1
  170. package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
  171. package/dist/collection/components/hero/hero.css +13 -26
  172. package/dist/collection/components/icon/icon.css +6 -6
  173. package/dist/collection/components/icon/icon.js +2 -2
  174. package/dist/collection/components/icon/icon.js.map +1 -1
  175. package/dist/collection/components/img/img.css +7 -17
  176. package/dist/collection/components/input/input.css +15 -36
  177. package/dist/collection/components/menu/menu.css +1 -1
  178. package/dist/collection/components/menu/menu.js +1 -1
  179. package/dist/collection/components/menu/menu.js.map +1 -1
  180. package/dist/collection/components/menu-drawer/menu-drawer.css +5 -14
  181. package/dist/collection/components/nav-item/nav-item.css +25 -46
  182. package/dist/collection/components/option/option.css +3 -5
  183. package/dist/collection/components/overflow-nav/overflow-nav.css +16 -27
  184. package/dist/collection/components/progress-bar/progress-bar.css +2 -2
  185. package/dist/collection/components/range/range.css +17 -19
  186. package/dist/collection/components/rating/rating.css +2 -8
  187. package/dist/collection/components/select/select.css +30 -53
  188. package/dist/collection/components/slides/lib/js/animate.js +29 -54
  189. package/dist/collection/components/slides/lib/js/animate.js.map +1 -0
  190. package/dist/collection/components/slides/lib/js/cell.js +12 -24
  191. package/dist/collection/components/slides/lib/js/cell.js.map +1 -0
  192. package/dist/collection/components/slides/lib/js/drag.js +65 -116
  193. package/dist/collection/components/slides/lib/js/drag.js.map +1 -0
  194. package/dist/collection/components/slides/lib/js/fade.js +52 -79
  195. package/dist/collection/components/slides/lib/js/fade.js.map +1 -0
  196. package/dist/collection/components/slides/lib/js/flickity.js +118 -206
  197. package/dist/collection/components/slides/lib/js/flickity.js.map +1 -0
  198. package/dist/collection/components/slides/lib/js/fullscreen.js +21 -40
  199. package/dist/collection/components/slides/lib/js/fullscreen.js.map +1 -0
  200. package/dist/collection/components/slides/lib/js/index.js +4 -6
  201. package/dist/collection/components/slides/lib/js/index.js.map +1 -0
  202. package/dist/collection/components/slides/lib/js/lazyload.js +21 -36
  203. package/dist/collection/components/slides/lib/js/lazyload.js.map +1 -0
  204. package/dist/collection/components/slides/lib/js/page-dots.js +21 -45
  205. package/dist/collection/components/slides/lib/js/page-dots.js.map +1 -0
  206. package/dist/collection/components/slides/lib/js/player.js +12 -40
  207. package/dist/collection/components/slides/lib/js/player.js.map +1 -0
  208. package/dist/collection/components/slides/lib/js/prev-next-button.js +24 -52
  209. package/dist/collection/components/slides/lib/js/prev-next-button.js.map +1 -0
  210. package/dist/collection/components/slides/lib/js/slide.js +10 -15
  211. package/dist/collection/components/slides/lib/js/slide.js.map +1 -0
  212. package/dist/collection/components/slides/lib/js/utils/event-emitter.js +75 -0
  213. package/dist/collection/components/slides/lib/js/utils/event-emitter.js.map +1 -0
  214. package/dist/collection/components/slides/lib/js/utils/gestures.js +436 -0
  215. package/dist/collection/components/slides/lib/js/utils/gestures.js.map +1 -0
  216. package/dist/collection/components/slides/lib/js/utils/get-size.js +160 -0
  217. package/dist/collection/components/slides/lib/js/utils/get-size.js.map +1 -0
  218. package/dist/collection/components/slides/lib/js/utils/utils.js +166 -0
  219. package/dist/collection/components/slides/lib/js/utils/utils.js.map +1 -0
  220. package/dist/collection/components/slides/slides.css +18 -19
  221. package/dist/collection/components/slides/slides.js +31 -5
  222. package/dist/collection/components/slides/slides.js.map +1 -1
  223. package/dist/collection/components/spinner/spinner.css +1 -2
  224. package/dist/collection/components/sticker/sticker.js +2 -1
  225. package/dist/collection/components/sticker/sticker.js.map +1 -1
  226. package/dist/collection/components/table/table.css +29 -48
  227. package/dist/collection/components/tabs/tab-group.css +10 -14
  228. package/dist/collection/components/tabs/tab.css +8 -18
  229. package/dist/collection/components/tooltip/tooltip.css +34 -31
  230. package/dist/collection/components/tooltip/tooltip.js +23 -3
  231. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  232. package/dist/collection/global/script/global.js +6 -6
  233. package/dist/collection/global/script/global.js.map +1 -1
  234. package/dist/collection/utils/scroll.js +7 -3
  235. package/dist/collection/utils/scroll.js.map +1 -1
  236. package/dist/components/algolia-data.js.map +1 -1
  237. package/dist/components/algolia.js +978 -23
  238. package/dist/components/algolia.js.map +1 -1
  239. package/dist/components/algoliasearch-lite.esm.browser.js +29 -4
  240. package/dist/components/algoliasearch-lite.esm.browser.js.map +1 -1
  241. package/dist/components/date-picker.js +1 -1
  242. package/dist/components/date-picker.js.map +1 -1
  243. package/dist/components/dropdown.js +1 -1
  244. package/dist/components/dropdown.js.map +1 -1
  245. package/dist/components/fade.js +208 -0
  246. package/dist/components/fade.js.map +1 -0
  247. package/dist/components/fullscreen.js +130 -0
  248. package/dist/components/fullscreen.js.map +1 -0
  249. package/dist/components/icon.js +3 -3
  250. package/dist/components/icon.js.map +1 -1
  251. package/dist/components/img.js +1 -1
  252. package/dist/components/img.js.map +1 -1
  253. package/dist/components/index.js +6 -6
  254. package/dist/components/index.js.map +1 -1
  255. package/dist/components/input.js +1 -1
  256. package/dist/components/input.js.map +1 -1
  257. package/dist/components/lazyload.js +92 -0
  258. package/dist/components/lazyload.js.map +1 -0
  259. package/dist/components/menu.js +2 -2
  260. package/dist/components/menu.js.map +1 -1
  261. package/dist/components/nano-alert.js +1 -1
  262. package/dist/components/nano-alert.js.map +1 -1
  263. package/dist/components/nano-algolia-filter.js.map +1 -1
  264. package/dist/components/nano-algolia-pagination.js +0 -5
  265. package/dist/components/nano-algolia-pagination.js.map +1 -1
  266. package/dist/components/nano-algolia-results.js.map +1 -1
  267. package/dist/components/nano-checkbox-group.js +10 -3
  268. package/dist/components/nano-checkbox-group.js.map +1 -1
  269. package/dist/components/nano-checkbox.js +3 -1
  270. package/dist/components/nano-checkbox.js.map +1 -1
  271. package/dist/components/nano-details.js +1 -1
  272. package/dist/components/nano-details.js.map +1 -1
  273. package/dist/components/nano-dialog.js +2 -2
  274. package/dist/components/nano-dialog.js.map +1 -1
  275. package/dist/components/nano-drawer.js +2 -2
  276. package/dist/components/nano-drawer.js.map +1 -1
  277. package/dist/components/nano-field-validator.js +5 -3
  278. package/dist/components/nano-field-validator.js.map +1 -1
  279. package/dist/components/nano-file-upload.js +1 -1
  280. package/dist/components/nano-file-upload.js.map +1 -1
  281. package/dist/components/nano-global-nav.js +119 -152
  282. package/dist/components/nano-global-nav.js.map +1 -1
  283. package/dist/components/nano-global-search-results.js +2 -2
  284. package/dist/components/nano-global-search-results.js.map +1 -1
  285. package/dist/components/nano-hero.js +1 -1
  286. package/dist/components/nano-hero.js.map +1 -1
  287. package/dist/components/nano-menu-drawer.js +1 -1
  288. package/dist/components/nano-menu-drawer.js.map +1 -1
  289. package/dist/components/nano-overflow-nav.js +1 -1
  290. package/dist/components/nano-overflow-nav.js.map +1 -1
  291. package/dist/components/nano-range.js +1 -1
  292. package/dist/components/nano-range.js.map +1 -1
  293. package/dist/components/nano-rating.js +1 -1
  294. package/dist/components/nano-rating.js.map +1 -1
  295. package/dist/components/nano-slides.js +760 -2090
  296. package/dist/components/nano-slides.js.map +1 -1
  297. package/dist/components/nano-tab-group.js +1 -1
  298. package/dist/components/nano-tab-group.js.map +1 -1
  299. package/dist/components/nano-tab.js +1 -1
  300. package/dist/components/nano-tab.js.map +1 -1
  301. package/dist/components/nav-item.js +1 -1
  302. package/dist/components/nav-item.js.map +1 -1
  303. package/dist/components/option.js +1 -1
  304. package/dist/components/option.js.map +1 -1
  305. package/dist/components/page-dots.js +137 -0
  306. package/dist/components/page-dots.js.map +1 -0
  307. package/dist/components/progress-bar.js +1 -1
  308. package/dist/components/progress-bar.js.map +1 -1
  309. package/dist/components/scroll.js +7 -3
  310. package/dist/components/scroll.js.map +1 -1
  311. package/dist/components/select.js +1 -1
  312. package/dist/components/select.js.map +1 -1
  313. package/dist/components/spinner.js +1 -1
  314. package/dist/components/spinner.js.map +1 -1
  315. package/dist/components/sticker.js +2 -1
  316. package/dist/components/sticker.js.map +1 -1
  317. package/dist/components/table.js +1 -1
  318. package/dist/components/table.js.map +1 -1
  319. package/dist/components/tooltip.js +24 -4
  320. package/dist/components/tooltip.js.map +1 -1
  321. package/dist/esm/{algolia-data-ebf2a439.js → algolia-data-1b42827c.js} +2 -2
  322. package/dist/esm/{algolia-data-ebf2a439.js.map → algolia-data-1b42827c.js.map} +1 -1
  323. package/dist/esm/{algoliasearch-lite.esm.browser-04891fdc.js → algoliasearch-lite.esm.browser-d71a28dc.js} +30 -5
  324. package/dist/esm/algoliasearch-lite.esm.browser-d71a28dc.js.map +1 -0
  325. package/dist/esm/{component-store-54df2005.js → component-store-f7eb0a56.js} +2 -2
  326. package/dist/esm/{component-store-54df2005.js.map → component-store-f7eb0a56.js.map} +1 -1
  327. package/dist/esm/fade-1aa7a6db.js +209 -0
  328. package/dist/esm/fade-1aa7a6db.js.map +1 -0
  329. package/dist/esm/{form-control-eb06e009.js → form-control-881fa3af.js} +2 -2
  330. package/dist/esm/{form-control-eb06e009.js.map → form-control-881fa3af.js.map} +1 -1
  331. package/dist/esm/fullscreen-86fa276a.js +131 -0
  332. package/dist/esm/fullscreen-86fa276a.js.map +1 -0
  333. package/dist/esm/{global-f6e05656.js → global-be484e8c.js} +7 -7
  334. package/dist/esm/{global-f6e05656.js.map → global-be484e8c.js.map} +1 -1
  335. package/dist/esm/{index-e8891229.js → index-3003356f.js} +2 -2
  336. package/dist/esm/{index-e8891229.js.map → index-3003356f.js.map} +1 -1
  337. package/dist/esm/{index-06666022.js → index-9695db0a.js} +8 -6
  338. package/dist/esm/index-9695db0a.js.map +1 -0
  339. package/dist/esm/lazyload-994232a6.js +93 -0
  340. package/dist/esm/lazyload-994232a6.js.map +1 -0
  341. package/dist/esm/loader.js +5 -5
  342. package/dist/esm/loader.js.map +1 -1
  343. package/dist/esm/nano-accordion.entry.js +1 -1
  344. package/dist/esm/nano-alert.entry.js +3 -3
  345. package/dist/esm/nano-alert.entry.js.map +1 -1
  346. package/dist/esm/nano-algolia-filter.entry.js +3 -3
  347. package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
  348. package/dist/esm/nano-algolia-pagination.entry.js +2 -7
  349. package/dist/esm/nano-algolia-pagination.entry.js.map +1 -1
  350. package/dist/esm/nano-algolia-results.entry.js +2 -2
  351. package/dist/esm/nano-algolia-results.entry.js.map +1 -1
  352. package/dist/esm/nano-algolia.entry.js +982 -26
  353. package/dist/esm/nano-algolia.entry.js.map +1 -1
  354. package/dist/esm/nano-aspect-ratio.entry.js +1 -1
  355. package/dist/esm/nano-checkbox-group.entry.js +10 -4
  356. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  357. package/dist/esm/nano-checkbox.entry.js +4 -2
  358. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  359. package/dist/esm/nano-components.js +5 -5
  360. package/dist/esm/nano-components.js.map +1 -1
  361. package/dist/esm/nano-datalist_3.entry.js +4 -4
  362. package/dist/esm/nano-datalist_3.entry.js.map +1 -1
  363. package/dist/esm/nano-date-input.entry.js +1 -1
  364. package/dist/esm/nano-date-picker.entry.js +2 -2
  365. package/dist/esm/nano-date-picker.entry.js.map +1 -1
  366. package/dist/esm/nano-demo.entry.js +1 -1
  367. package/dist/esm/nano-details.entry.js +2 -2
  368. package/dist/esm/nano-details.entry.js.map +1 -1
  369. package/dist/esm/nano-dialog.entry.js +5 -5
  370. package/dist/esm/nano-dialog.entry.js.map +1 -1
  371. package/dist/esm/nano-drawer.entry.js +5 -5
  372. package/dist/esm/nano-drawer.entry.js.map +1 -1
  373. package/dist/esm/nano-dropdown.entry.js +1 -1
  374. package/dist/esm/nano-dropdown.entry.js.map +1 -1
  375. package/dist/esm/nano-field-validator.entry.js +7 -5
  376. package/dist/esm/nano-field-validator.entry.js.map +1 -1
  377. package/dist/esm/nano-file-upload.entry.js +2 -2
  378. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  379. package/dist/esm/nano-global-nav-user-profile_3.entry.js +4 -4
  380. package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
  381. package/dist/esm/nano-global-nav.entry.js +122 -153
  382. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  383. package/dist/esm/nano-global-search-results.entry.js +3 -3
  384. package/dist/esm/nano-global-search-results.entry.js.map +1 -1
  385. package/dist/esm/nano-grid-item.entry.js +1 -1
  386. package/dist/esm/nano-grid_2.entry.js +2 -2
  387. package/dist/esm/nano-grid_2.entry.js.map +1 -1
  388. package/dist/esm/nano-hero.entry.js +2 -2
  389. package/dist/esm/nano-hero.entry.js.map +1 -1
  390. package/dist/esm/nano-icon-button_2.entry.js +24 -4
  391. package/dist/esm/nano-icon-button_2.entry.js.map +1 -1
  392. package/dist/esm/nano-icon.entry.js +4 -4
  393. package/dist/esm/nano-icon.entry.js.map +1 -1
  394. package/dist/esm/nano-input.entry.js +3 -3
  395. package/dist/esm/nano-input.entry.js.map +1 -1
  396. package/dist/esm/nano-menu-drawer.entry.js +2 -2
  397. package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
  398. package/dist/esm/nano-overflow-nav.entry.js +2 -2
  399. package/dist/esm/nano-overflow-nav.entry.js.map +1 -1
  400. package/dist/esm/nano-progress-bar.entry.js +2 -2
  401. package/dist/esm/nano-progress-bar.entry.js.map +1 -1
  402. package/dist/esm/nano-range.entry.js +2 -2
  403. package/dist/esm/nano-range.entry.js.map +1 -1
  404. package/dist/esm/nano-rating.entry.js +2 -2
  405. package/dist/esm/nano-rating.entry.js.map +1 -1
  406. package/dist/esm/nano-resize-observe_2.entry.js +1 -1
  407. package/dist/esm/nano-slide.entry.js +1 -1
  408. package/dist/esm/nano-slides-9908c44d.js +2970 -0
  409. package/dist/esm/nano-slides-9908c44d.js.map +1 -0
  410. package/dist/esm/nano-slides.entry.js +2 -4295
  411. package/dist/esm/nano-slides.entry.js.map +1 -1
  412. package/dist/esm/nano-sortable.entry.js +1 -1
  413. package/dist/esm/nano-spinner.entry.js +2 -2
  414. package/dist/esm/nano-spinner.entry.js.map +1 -1
  415. package/dist/esm/nano-split-pane.entry.js +1 -1
  416. package/dist/esm/nano-sticker.entry.js +3 -2
  417. package/dist/esm/nano-sticker.entry.js.map +1 -1
  418. package/dist/esm/nano-tab-content.entry.js +1 -1
  419. package/dist/esm/nano-tab-group.entry.js +4 -4
  420. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  421. package/dist/esm/nano-tab.entry.js +2 -2
  422. package/dist/esm/nano-tab.entry.js.map +1 -1
  423. package/dist/esm/{nano-table-5af42ba4.js → nano-table-55d753cb.js} +5 -5
  424. package/dist/esm/{nano-table-5af42ba4.js.map → nano-table-55d753cb.js.map} +1 -1
  425. package/dist/esm/nano-table.entry.js +3 -3
  426. package/dist/esm/page-dots-467ace2e.js +138 -0
  427. package/dist/esm/page-dots-467ace2e.js.map +1 -0
  428. package/dist/esm/{scroll-ec7ac257.js → scroll-ac332213.js} +8 -4
  429. package/dist/esm/scroll-ac332213.js.map +1 -0
  430. package/dist/esm/{table.worker-3cae908c.js → table.worker-34706ecc.js} +4 -4
  431. package/dist/esm/table.worker-34706ecc.js.map +1 -0
  432. package/dist/nano-components/{p-74a7fc4f.js → active-element-75b7c8a0.js} +1 -1
  433. package/dist/nano-components/algolia-data-1b42827c.js +5 -0
  434. package/dist/nano-components/{p-a26bdb65.js.map → algolia-data-1b42827c.js.map} +1 -1
  435. package/dist/nano-components/algoliasearch-lite.esm.browser-d71a28dc.js +5 -0
  436. package/dist/nano-components/algoliasearch-lite.esm.browser-d71a28dc.js.map +1 -0
  437. package/dist/nano-components/component-store-f7eb0a56.js +5 -0
  438. package/dist/nano-components/{p-dd5687db.js.map → component-store-f7eb0a56.js.map} +1 -1
  439. package/dist/nano-components/{p-cecb9af1.js → date-utils-6b7a6e1f.js} +1 -1
  440. package/dist/nano-components/{p-cdfc507e.js → dom-8599fac1.js} +1 -1
  441. package/dist/nano-components/{p-842cf127.js → drag-1723a4cc.js} +1 -1
  442. package/dist/nano-components/{p-9bfdee71.js → events-6a805b42.js} +1 -1
  443. package/dist/nano-components/fade-1aa7a6db.js +5 -0
  444. package/dist/nano-components/fade-1aa7a6db.js.map +1 -0
  445. package/dist/nano-components/{p-f8f89998.js → focus-visible-8b2c14da.js} +1 -1
  446. package/dist/nano-components/form-control-881fa3af.js +5 -0
  447. package/dist/nano-components/{p-dc805ecc.js.map → form-control-881fa3af.js.map} +1 -1
  448. package/dist/nano-components/fullscreen-86fa276a.js +5 -0
  449. package/dist/nano-components/fullscreen-86fa276a.js.map +1 -0
  450. package/dist/nano-components/{p-d4f6ec9f.js → global-be484e8c.js} +2 -2
  451. package/dist/nano-components/{p-d4f6ec9f.js.map → global-be484e8c.js.map} +1 -1
  452. package/dist/nano-components/index-3003356f.js +5 -0
  453. package/dist/nano-components/{p-70747f20.js.map → index-3003356f.js.map} +1 -1
  454. package/dist/nano-components/{p-d6a04b3a.js → index-9695db0a.js} +2 -2
  455. package/dist/nano-components/{p-d6a04b3a.js.map → index-9695db0a.js.map} +1 -1
  456. package/dist/nano-components/{p-bb07c3d0.js → index-f626f476.js} +1 -1
  457. package/dist/nano-components/index.esm.js +1 -1
  458. package/dist/nano-components/index.esm.js.map +1 -1
  459. package/dist/nano-components/lazyload-994232a6.js +5 -0
  460. package/dist/nano-components/lazyload-994232a6.js.map +1 -0
  461. package/dist/nano-components/{p-2155fc2c.js → local-my-account-6662da72.js} +1 -1
  462. package/dist/nano-components/{p-ee045579.js → math-c02ddfda.js} +1 -1
  463. package/dist/nano-components/modal-bd9638c0.js +5 -0
  464. package/dist/nano-components/{p-2234694a.js.map → modal-bd9638c0.js.map} +1 -1
  465. package/dist/nano-components/nano-accordion.entry.js +5 -0
  466. package/dist/nano-components/{p-9f60ff14.entry.js.map → nano-accordion.entry.js.map} +1 -1
  467. package/dist/nano-components/nano-alert.entry.js +5 -0
  468. package/dist/nano-components/{p-191352c4.entry.js.map → nano-alert.entry.js.map} +1 -1
  469. package/dist/nano-components/nano-algolia-filter.entry.js +5 -0
  470. package/dist/nano-components/nano-algolia-filter.entry.js.map +1 -0
  471. package/dist/nano-components/nano-algolia-pagination.entry.js +5 -0
  472. package/dist/nano-components/nano-algolia-pagination.entry.js.map +1 -0
  473. package/dist/nano-components/nano-algolia-results.entry.js +5 -0
  474. package/dist/nano-components/nano-algolia-results.entry.js.map +1 -0
  475. package/dist/nano-components/nano-algolia.entry.js +5 -0
  476. package/dist/nano-components/nano-algolia.entry.js.map +1 -0
  477. package/dist/nano-components/nano-aspect-ratio.entry.js +5 -0
  478. package/dist/nano-components/{p-87329424.entry.js.map → nano-aspect-ratio.entry.js.map} +1 -1
  479. package/dist/nano-components/nano-checkbox-group.entry.js +5 -0
  480. package/dist/nano-components/nano-checkbox-group.entry.js.map +1 -0
  481. package/dist/nano-components/nano-checkbox.entry.js +5 -0
  482. package/dist/nano-components/nano-checkbox.entry.js.map +1 -0
  483. package/dist/nano-components/nano-components.css +1 -1
  484. package/dist/nano-components/nano-components.esm.js +1 -1
  485. package/dist/nano-components/nano-components.esm.js.map +1 -1
  486. package/dist/nano-components/nano-datalist_3.entry.js +5 -0
  487. package/dist/nano-components/nano-datalist_3.entry.js.map +1 -0
  488. package/dist/nano-components/nano-date-input.entry.js +5 -0
  489. package/dist/nano-components/{p-d4e44f93.entry.js.map → nano-date-input.entry.js.map} +1 -1
  490. package/dist/nano-components/nano-date-picker.entry.js +5 -0
  491. package/dist/nano-components/{p-efd3e121.entry.js.map → nano-date-picker.entry.js.map} +1 -1
  492. package/dist/nano-components/nano-demo.entry.js +5 -0
  493. package/dist/nano-components/{p-e98835e2.entry.js.map → nano-demo.entry.js.map} +1 -1
  494. package/dist/nano-components/nano-details.entry.js +5 -0
  495. package/dist/nano-components/nano-details.entry.js.map +1 -0
  496. package/dist/nano-components/nano-dialog.entry.js +5 -0
  497. package/dist/nano-components/{p-79fff4fd.entry.js.map → nano-dialog.entry.js.map} +1 -1
  498. package/dist/nano-components/nano-drawer.entry.js +5 -0
  499. package/dist/nano-components/nano-drawer.entry.js.map +1 -0
  500. package/dist/nano-components/nano-dropdown.entry.js +5 -0
  501. package/dist/nano-components/nano-dropdown.entry.js.map +1 -0
  502. package/dist/nano-components/nano-field-validator.entry.js +5 -0
  503. package/dist/nano-components/nano-field-validator.entry.js.map +1 -0
  504. package/dist/nano-components/nano-file-upload.entry.js +5 -0
  505. package/dist/nano-components/nano-file-upload.entry.js.map +1 -0
  506. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js +5 -0
  507. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js.map +1 -0
  508. package/dist/nano-components/nano-global-nav.entry.js +5 -0
  509. package/dist/nano-components/nano-global-nav.entry.js.map +1 -0
  510. package/dist/nano-components/nano-global-search-results.entry.js +5 -0
  511. package/dist/nano-components/nano-global-search-results.entry.js.map +1 -0
  512. package/dist/nano-components/nano-grid-item.entry.js +5 -0
  513. package/dist/nano-components/{p-9c290055.entry.js.map → nano-grid-item.entry.js.map} +1 -1
  514. package/dist/nano-components/nano-grid_2.entry.js +5 -0
  515. package/dist/nano-components/{p-7c82af28.entry.js.map → nano-grid_2.entry.js.map} +1 -1
  516. package/dist/nano-components/nano-hero.entry.js +5 -0
  517. package/dist/nano-components/{p-328ef9d3.entry.js.map → nano-hero.entry.js.map} +1 -1
  518. package/dist/nano-components/nano-icon-button_2.entry.js +5 -0
  519. package/dist/nano-components/nano-icon-button_2.entry.js.map +1 -0
  520. package/dist/nano-components/nano-icon.entry.js +5 -0
  521. package/dist/nano-components/nano-icon.entry.js.map +1 -0
  522. package/dist/nano-components/nano-input.entry.js +5 -0
  523. package/dist/nano-components/nano-input.entry.js.map +1 -0
  524. package/dist/nano-components/nano-menu-drawer.entry.js +5 -0
  525. package/dist/nano-components/nano-menu-drawer.entry.js.map +1 -0
  526. package/dist/nano-components/nano-overflow-nav.entry.js +5 -0
  527. package/dist/nano-components/nano-overflow-nav.entry.js.map +1 -0
  528. package/dist/nano-components/nano-progress-bar.entry.js +5 -0
  529. package/dist/nano-components/nano-progress-bar.entry.js.map +1 -0
  530. package/dist/nano-components/nano-range.entry.js +5 -0
  531. package/dist/nano-components/nano-range.entry.js.map +1 -0
  532. package/dist/nano-components/nano-rating.entry.js +5 -0
  533. package/dist/nano-components/nano-rating.entry.js.map +1 -0
  534. package/dist/nano-components/nano-resize-observe_2.entry.js +5 -0
  535. package/dist/nano-components/{p-e6a0675e.entry.js.map → nano-resize-observe_2.entry.js.map} +1 -1
  536. package/dist/nano-components/nano-slide.entry.js +5 -0
  537. package/dist/nano-components/{p-3d8fb8a1.entry.js.map → nano-slide.entry.js.map} +1 -1
  538. package/dist/nano-components/nano-slides-9908c44d.js +20 -0
  539. package/dist/nano-components/nano-slides-9908c44d.js.map +1 -0
  540. package/dist/nano-components/nano-slides.entry.js +5 -0
  541. package/dist/nano-components/nano-sortable.entry.js +5 -0
  542. package/dist/nano-components/{p-3ae362ae.entry.js.map → nano-sortable.entry.js.map} +1 -1
  543. package/dist/nano-components/nano-spinner.entry.js +5 -0
  544. package/dist/nano-components/{p-9925e504.entry.js.map → nano-spinner.entry.js.map} +1 -1
  545. package/dist/nano-components/nano-split-pane.entry.js +5 -0
  546. package/dist/nano-components/{p-6c4171fa.entry.js.map → nano-split-pane.entry.js.map} +1 -1
  547. package/dist/nano-components/nano-sticker.entry.js +5 -0
  548. package/dist/nano-components/nano-sticker.entry.js.map +1 -0
  549. package/dist/nano-components/nano-tab-content.entry.js +5 -0
  550. package/dist/nano-components/{p-3f40e370.entry.js.map → nano-tab-content.entry.js.map} +1 -1
  551. package/dist/nano-components/nano-tab-group.entry.js +5 -0
  552. package/dist/nano-components/nano-tab-group.entry.js.map +1 -0
  553. package/dist/nano-components/nano-tab.entry.js +5 -0
  554. package/dist/nano-components/{p-3cac5f6d.entry.js.map → nano-tab.entry.js.map} +1 -1
  555. package/dist/nano-components/nano-table-55d753cb.js +5 -0
  556. package/dist/nano-components/nano-table-55d753cb.js.map +1 -0
  557. package/dist/nano-components/nano-table.entry.js +5 -0
  558. package/dist/nano-components/page-dots-467ace2e.js +5 -0
  559. package/dist/nano-components/page-dots-467ace2e.js.map +1 -0
  560. package/dist/nano-components/{p-cd1fd454.js → popover-e5e7a641.js} +1 -1
  561. package/dist/nano-components/scroll-ac332213.js +5 -0
  562. package/dist/nano-components/scroll-ac332213.js.map +1 -0
  563. package/dist/nano-components/{p-dc565459.js → slot-8126e238.js} +1 -1
  564. package/dist/nano-components/{p-f88fa15c.js → tabbable-26a66a22.js} +1 -1
  565. package/dist/nano-components/table.worker-34706ecc.js +5 -0
  566. package/dist/nano-components/{p-411bb8f1.js → theme-82feb8cf.js} +1 -1
  567. package/dist/nano-components/{p-7bff5224.js → throttle-ac4fcefa.js} +1 -1
  568. package/dist/nano-components/{p-c3e8e3f9.js → transitions-fb09eb32.js} +1 -1
  569. package/dist/themes/nanopore.cn.css +1 -1
  570. package/dist/themes/nanopore.cn.css.map +1 -1
  571. package/dist/themes/nanopore.css +1 -1
  572. package/dist/themes/nanopore.css.map +1 -1
  573. package/dist/types/components/algolia/algolia-data.d.ts +1 -1
  574. package/dist/types/components/algolia/algolia-filter.d.ts +1 -1
  575. package/dist/types/components/algolia/algolia-pagination.d.ts +1 -1
  576. package/dist/types/components/algolia/algolia-results.d.ts +1 -1
  577. package/dist/types/components/algolia/algolia.d.ts +1 -7
  578. package/dist/types/components/algolia/lib/squirrelly/browser.d.ts +6 -0
  579. package/dist/types/components/algolia/lib/squirrelly/compile-string.d.ts +5 -0
  580. package/dist/types/components/algolia/lib/squirrelly/compile.d.ts +3 -0
  581. package/dist/types/components/algolia/lib/squirrelly/config.d.ts +48 -0
  582. package/dist/types/components/algolia/lib/squirrelly/container-utils.d.ts +8 -0
  583. package/dist/types/components/algolia/lib/squirrelly/containers.d.ts +18 -0
  584. package/dist/types/components/algolia/lib/squirrelly/err.d.ts +6 -0
  585. package/dist/types/components/algolia/lib/squirrelly/parse.d.ts +23 -0
  586. package/dist/types/components/algolia/lib/squirrelly/render.d.ts +3 -0
  587. package/dist/types/components/algolia/lib/squirrelly/storage.d.ts +13 -0
  588. package/dist/types/components/algolia/lib/squirrelly/utils.d.ts +8 -0
  589. package/dist/types/components/algolia/lib/template.d.ts +2 -0
  590. package/dist/types/components/checkbox/checkbox-group.d.ts +5 -0
  591. package/dist/types/components/global-nav/global-nav.d.ts +15 -20
  592. package/dist/types/components/slides/lib/js/animate.d.ts +2 -0
  593. package/dist/types/components/slides/lib/js/cell.d.ts +1 -0
  594. package/dist/types/components/slides/lib/js/drag.d.ts +1 -0
  595. package/dist/types/components/slides/lib/js/fade.d.ts +1 -0
  596. package/dist/types/components/slides/lib/js/flickity.d.ts +23 -0
  597. package/dist/types/components/slides/lib/js/fullscreen.d.ts +1 -0
  598. package/dist/types/components/slides/lib/js/index.d.ts +5 -0
  599. package/dist/types/components/slides/lib/js/lazyload.d.ts +1 -0
  600. package/dist/types/components/slides/lib/js/page-dots.d.ts +1 -0
  601. package/dist/types/components/slides/lib/js/player.d.ts +1 -0
  602. package/dist/types/components/slides/lib/js/prev-next-button.d.ts +1 -0
  603. package/dist/types/components/slides/lib/js/slide.d.ts +1 -0
  604. package/dist/types/components/slides/lib/js/utils/event-emitter.d.ts +1 -0
  605. package/dist/types/components/slides/lib/js/utils/gestures.d.ts +26 -0
  606. package/dist/types/components/slides/lib/js/utils/get-size.d.ts +6 -0
  607. package/dist/types/components/slides/lib/js/utils/utils.d.ts +5 -0
  608. package/dist/types/components/slides/slides-interface.d.ts +17 -7
  609. package/dist/types/components/slides/slides.d.ts +5 -0
  610. package/dist/types/components.d.ts +10 -10
  611. package/dist/types/utils/scroll.d.ts +5 -1
  612. package/docs-json.json +33 -24
  613. package/docs-vscode.json +4 -0
  614. package/hydrate/index.js +4147 -3953
  615. package/package.json +5 -8
  616. package/dist/cjs/_commonjsHelpers-29614748.js +0 -30
  617. package/dist/cjs/_commonjsHelpers-29614748.js.map +0 -1
  618. package/dist/cjs/algoliasearch-lite.esm.browser-992a2eff.js.map +0 -1
  619. package/dist/cjs/index-1d3ebe1a.js.map +0 -1
  620. package/dist/cjs/scroll-fc1b8387.js.map +0 -1
  621. package/dist/cjs/table.worker-3df34efe.js.map +0 -1
  622. package/dist/collection/components/slides/lib/js/add-remove-cell.js +0 -128
  623. package/dist/collection/components/slides/lib/js/images-loaded.js +0 -24
  624. package/dist/collection/components/slides/slides-interface.js +0 -2
  625. package/dist/collection/components/slides/slides-interface.js.map +0 -1
  626. package/dist/collection/utils/template.js.map +0 -1
  627. package/dist/components/_commonjsHelpers.js +0 -26
  628. package/dist/components/_commonjsHelpers.js.map +0 -1
  629. package/dist/esm/_commonjsHelpers-04a0e019.js +0 -26
  630. package/dist/esm/_commonjsHelpers-04a0e019.js.map +0 -1
  631. package/dist/esm/algoliasearch-lite.esm.browser-04891fdc.js.map +0 -1
  632. package/dist/esm/index-06666022.js.map +0 -1
  633. package/dist/esm/scroll-ec7ac257.js.map +0 -1
  634. package/dist/esm/table.worker-3cae908c.js.map +0 -1
  635. package/dist/nano-components/p-0563e812.entry.js +0 -5
  636. package/dist/nano-components/p-0563e812.entry.js.map +0 -1
  637. package/dist/nano-components/p-0bc40dd1.entry.js +0 -5
  638. package/dist/nano-components/p-0bc40dd1.entry.js.map +0 -1
  639. package/dist/nano-components/p-0e0f07f0.entry.js +0 -5
  640. package/dist/nano-components/p-0e0f07f0.entry.js.map +0 -1
  641. package/dist/nano-components/p-0e4da739.entry.js +0 -5
  642. package/dist/nano-components/p-0e4da739.entry.js.map +0 -1
  643. package/dist/nano-components/p-16e75af9.entry.js +0 -5
  644. package/dist/nano-components/p-16e75af9.entry.js.map +0 -1
  645. package/dist/nano-components/p-17eb456c.entry.js +0 -5
  646. package/dist/nano-components/p-17eb456c.entry.js.map +0 -1
  647. package/dist/nano-components/p-191352c4.entry.js +0 -5
  648. package/dist/nano-components/p-1987f7a9.js +0 -5
  649. package/dist/nano-components/p-1a55e282.entry.js +0 -5
  650. package/dist/nano-components/p-1a55e282.entry.js.map +0 -1
  651. package/dist/nano-components/p-2234694a.js +0 -5
  652. package/dist/nano-components/p-2a105609.entry.js +0 -5
  653. package/dist/nano-components/p-2a105609.entry.js.map +0 -1
  654. package/dist/nano-components/p-2c0218e6.entry.js +0 -5
  655. package/dist/nano-components/p-2c0218e6.entry.js.map +0 -1
  656. package/dist/nano-components/p-328ef9d3.entry.js +0 -5
  657. package/dist/nano-components/p-359b7cd2.entry.js +0 -5
  658. package/dist/nano-components/p-359b7cd2.entry.js.map +0 -1
  659. package/dist/nano-components/p-36c3ded8.entry.js +0 -5
  660. package/dist/nano-components/p-36c3ded8.entry.js.map +0 -1
  661. package/dist/nano-components/p-3ae362ae.entry.js +0 -5
  662. package/dist/nano-components/p-3cac5f6d.entry.js +0 -5
  663. package/dist/nano-components/p-3d8fb8a1.entry.js +0 -5
  664. package/dist/nano-components/p-3eeaba47.entry.js +0 -5
  665. package/dist/nano-components/p-3eeaba47.entry.js.map +0 -1
  666. package/dist/nano-components/p-3f40e370.entry.js +0 -5
  667. package/dist/nano-components/p-51133e62.entry.js +0 -5
  668. package/dist/nano-components/p-51133e62.entry.js.map +0 -1
  669. package/dist/nano-components/p-54c4a2f5.entry.js +0 -5
  670. package/dist/nano-components/p-54c4a2f5.entry.js.map +0 -1
  671. package/dist/nano-components/p-5fc3035d.entry.js +0 -5
  672. package/dist/nano-components/p-5fc3035d.entry.js.map +0 -1
  673. package/dist/nano-components/p-650aa197.entry.js +0 -5
  674. package/dist/nano-components/p-650aa197.entry.js.map +0 -1
  675. package/dist/nano-components/p-67ab5a5f.entry.js +0 -5
  676. package/dist/nano-components/p-67ab5a5f.entry.js.map +0 -1
  677. package/dist/nano-components/p-688f1a55.entry.js +0 -5
  678. package/dist/nano-components/p-688f1a55.entry.js.map +0 -1
  679. package/dist/nano-components/p-6c4171fa.entry.js +0 -5
  680. package/dist/nano-components/p-70747f20.js +0 -5
  681. package/dist/nano-components/p-7670058b.entry.js +0 -5
  682. package/dist/nano-components/p-7670058b.entry.js.map +0 -1
  683. package/dist/nano-components/p-79fff4fd.entry.js +0 -5
  684. package/dist/nano-components/p-7c82af28.entry.js +0 -5
  685. package/dist/nano-components/p-87329424.entry.js +0 -5
  686. package/dist/nano-components/p-8fe51abf.js +0 -5
  687. package/dist/nano-components/p-935968b8.entry.js +0 -23
  688. package/dist/nano-components/p-935968b8.entry.js.map +0 -1
  689. package/dist/nano-components/p-9925e504.entry.js +0 -5
  690. package/dist/nano-components/p-9c290055.entry.js +0 -5
  691. package/dist/nano-components/p-9f60ff14.entry.js +0 -5
  692. package/dist/nano-components/p-a225e976.entry.js +0 -5
  693. package/dist/nano-components/p-a225e976.entry.js.map +0 -1
  694. package/dist/nano-components/p-a26bdb65.js +0 -5
  695. package/dist/nano-components/p-abd11243.entry.js +0 -5
  696. package/dist/nano-components/p-abd11243.entry.js.map +0 -1
  697. package/dist/nano-components/p-b27b56d3.js +0 -5
  698. package/dist/nano-components/p-b27b56d3.js.map +0 -1
  699. package/dist/nano-components/p-c80336b2.entry.js +0 -5
  700. package/dist/nano-components/p-c80336b2.entry.js.map +0 -1
  701. package/dist/nano-components/p-cad86fb8.js +0 -5
  702. package/dist/nano-components/p-cad86fb8.js.map +0 -1
  703. package/dist/nano-components/p-d4e44f93.entry.js +0 -5
  704. package/dist/nano-components/p-dc4020f8.js +0 -5
  705. package/dist/nano-components/p-dc4020f8.js.map +0 -1
  706. package/dist/nano-components/p-dc6cb252.entry.js +0 -5
  707. package/dist/nano-components/p-dc6cb252.entry.js.map +0 -1
  708. package/dist/nano-components/p-dc805ecc.js +0 -5
  709. package/dist/nano-components/p-dd5687db.js +0 -5
  710. package/dist/nano-components/p-e6a0675e.entry.js +0 -5
  711. package/dist/nano-components/p-e98835e2.entry.js +0 -5
  712. package/dist/nano-components/p-efd3e121.entry.js +0 -5
  713. package/dist/nano-components/p-f73f52ed.entry.js +0 -5
  714. package/dist/nano-components/p-f73f52ed.entry.js.map +0 -1
  715. package/dist/nano-components/p-fbde7010.entry.js +0 -5
  716. package/dist/nano-components/p-fcbc9122.entry.js +0 -5
  717. package/dist/nano-components/p-fcbc9122.entry.js.map +0 -1
  718. package/dist/types/utils/template.d.ts +0 -2
  719. /package/dist/nano-components/{p-74a7fc4f.js.map → active-element-75b7c8a0.js.map} +0 -0
  720. /package/dist/nano-components/{p-cecb9af1.js.map → date-utils-6b7a6e1f.js.map} +0 -0
  721. /package/dist/nano-components/{p-cdfc507e.js.map → dom-8599fac1.js.map} +0 -0
  722. /package/dist/nano-components/{p-842cf127.js.map → drag-1723a4cc.js.map} +0 -0
  723. /package/dist/nano-components/{p-9bfdee71.js.map → events-6a805b42.js.map} +0 -0
  724. /package/dist/nano-components/{p-f8f89998.js.map → focus-visible-8b2c14da.js.map} +0 -0
  725. /package/dist/nano-components/{p-bb07c3d0.js.map → index-f626f476.js.map} +0 -0
  726. /package/dist/nano-components/{p-1987f7a9.js.map → local-my-account-6662da72.js.map} +0 -0
  727. /package/dist/nano-components/{p-ee045579.js.map → math-c02ddfda.js.map} +0 -0
  728. /package/dist/nano-components/{p-2155fc2c.js.map → nano-slides.entry.js.map} +0 -0
  729. /package/dist/nano-components/{p-8fe51abf.js.map → nano-table.entry.js.map} +0 -0
  730. /package/dist/nano-components/{p-cd1fd454.js.map → popover-e5e7a641.js.map} +0 -0
  731. /package/dist/nano-components/{p-dc565459.js.map → slot-8126e238.js.map} +0 -0
  732. /package/dist/nano-components/{p-f88fa15c.js.map → tabbable-26a66a22.js.map} +0 -0
  733. /package/dist/nano-components/{p-fbde7010.entry.js.map → table.worker-34706ecc.js.map} +0 -0
  734. /package/dist/nano-components/{p-f258383d.js → table.worker-f258383d.js} +0 -0
  735. /package/dist/nano-components/{p-411bb8f1.js.map → theme-82feb8cf.js.map} +0 -0
  736. /package/dist/nano-components/{p-7bff5224.js.map → throttle-ac4fcefa.js.map} +0 -0
  737. /package/dist/nano-components/{p-c3e8e3f9.js.map → transitions-fb09eb32.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"file":"nano-slides-2f3dcc02.js","mappings":"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","names":["proto","noop","console","getComputedStyle","animatePrototype","h","Host"],"sources":["./src/components/slides/lib/js/utils/event-emitter.ts","./src/components/slides/lib/js/utils/get-size.ts","./src/components/slides/lib/js/utils/utils.ts","./src/components/slides/lib/js/cell.ts","./src/components/slides/lib/js/slide.ts","./src/components/slides/lib/js/animate.ts","./src/components/slides/lib/js/flickity.ts","./src/components/slides/lib/js/utils/gestures.ts","./src/components/slides/lib/js/drag.ts","./src/components/slides/lib/js/prev-next-button.ts","./src/components/slides/lib/js/player.ts","./src/components/slides/lib/js/index.ts","./src/components/slides/slides.scss?tag=nano-slides&encapsulation=shadow","./src/components/slides/slides.tsx"],"sourcesContent":["export function EvEmitter() {}\n\nconst proto = EvEmitter.prototype;\n\nproto.on = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n }\n // set events hash\n const events = (this._events = this._events || {});\n // set listeners array\n const listeners = (events[eventName] = events[eventName] || []);\n // only add once\n if (listeners.indexOf(listener) == -1) {\n listeners.push(listener);\n }\n\n return this;\n};\n\nproto.once = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n }\n // add event\n this.on(eventName, listener);\n // set once flag\n // set onceEvents hash\n const onceEvents = (this._onceEvents = this._onceEvents || {});\n // set onceListeners object\n const onceListeners = (onceEvents[eventName] = onceEvents[eventName] || {});\n // set flag\n onceListeners[listener] = true;\n\n return this;\n};\n\nproto.off = function (eventName, listener) {\n const listeners = this._events && this._events[eventName];\n if (!listeners || !listeners.length) {\n return;\n }\n const index = listeners.indexOf(listener);\n if (index != -1) {\n listeners.splice(index, 1);\n }\n\n return this;\n};\n\nproto.emitEvent = function (eventName, args) {\n let listeners = this._events && this._events[eventName];\n if (!listeners || !listeners.length) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n const onceListeners = this._onceEvents && this._onceEvents[eventName];\n\n for (let i = 0; i < listeners.length; i++) {\n const listener = listeners[i];\n const isOnce = onceListeners && onceListeners[listener];\n if (isOnce) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off(eventName, listener);\n // unset once flag\n delete onceListeners[listener];\n }\n // trigger listener\n listener.apply(this, args);\n }\n\n return this;\n};\n\nproto.allOff = function () {\n delete this._events;\n delete this._onceEvents;\n};\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n// get a number from a string, not a percentage\nfunction getStyleSize(value): number | boolean {\n const num = parseFloat(value);\n // not a percent like '100%', and a number\n const isValid = value.indexOf('%') == -1 && !isNaN(num);\n return isValid && num;\n}\n\nfunction noop() {}\n\nconst logError =\n typeof console == 'undefined'\n ? noop\n : function (message) {\n console.error(message);\n };\n\n// -------------------------- measurements -------------------------- //\n\nconst measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth',\n];\n\nconst measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n const size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0,\n };\n for (let i = 0; i < measurementsLength; i++) {\n const measurement = measurements[i];\n size[measurement] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n * @param elem element to get styles for\n * @returns {CSSStyleDeclaration} styles of element\n */\nfunction getStyle(elem) {\n const style = getComputedStyle(elem);\n if (!style) {\n logError(\n 'Style returned ' +\n style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1'\n );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nlet isSetup = false;\n\nlet isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if (isSetup) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n const div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n const body = document.body || document.documentElement;\n body.appendChild(div);\n const style = getStyle(div);\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round(getStyleSize(style.width) as number) == 200;\n // @ts-ignore\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild(div);\n}\n\n// -------------------------- getSize -------------------------- //\n\nexport function getSize(elem) {\n setup();\n\n // use querySeletor if elem is string\n if (typeof elem == 'string') {\n elem = document.querySelector(elem);\n }\n\n // do not proceed on non-objects\n if (!elem || typeof elem != 'object' || !elem.nodeType) {\n return;\n }\n\n const style = getStyle(elem);\n\n // if hidden, everything is 0\n if (style.display == 'none') {\n return getZeroSize();\n }\n\n const size: any = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n const isBorderBox = (size.isBorderBox = style.boxSizing == 'border-box');\n\n // get all measurements\n for (let i = 0; i < measurementsLength; i++) {\n const measurement = measurements[i];\n const value = style[measurement];\n const num = parseFloat(value);\n // any 'auto', 'medium' value will be 0\n size[measurement] = !isNaN(num) ? num : 0;\n }\n\n const paddingWidth = size.paddingLeft + size.paddingRight;\n const paddingHeight = size.paddingTop + size.paddingBottom;\n const marginWidth = size.marginLeft + size.marginRight;\n const marginHeight = size.marginTop + size.marginBottom;\n const borderWidth = size.borderLeftWidth + size.borderRightWidth;\n const borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n const isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n const styleWidth = getStyleSize(style.width);\n if (styleWidth !== false) {\n size.width =\n styleWidth +\n // add padding and border unless it's already including it\n (isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth);\n }\n\n const styleHeight = getStyleSize(style.height);\n if (styleHeight !== false) {\n size.height =\n styleHeight +\n // add padding and border unless it's already including it\n (isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight);\n }\n\n size.innerWidth = size.width - (paddingWidth + borderWidth);\n size.innerHeight = size.height - (paddingHeight + borderHeight);\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\nexport const utils: any = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function (a, b) {\n for (const prop in b) {\n a[prop] = b[prop];\n }\n return a;\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function (callback) {\n const readyState = document.readyState;\n if (readyState == 'complete' || readyState == 'interactive') {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout(callback);\n } else {\n document.addEventListener('DOMContentLoaded', callback);\n }\n};\n\n// ----- toDashed ----- //\n\nutils.toDashed = function (str) {\n return str\n .replace(/(.)([A-Z])/g, function (_match, $1, $2) {\n return $1 + '-' + $2;\n })\n .toLowerCase();\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function (num, div) {\n return ((num % div) + div) % div;\n};\n\n// ----- makeArray ----- //\n\nconst arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function (obj) {\n if (Array.isArray(obj)) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if (obj === null || obj === undefined) {\n return [];\n }\n\n const isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if (isArrayLike) {\n // convert nodeList to array\n return arraySlice.call(obj);\n }\n\n // array of single index\n return [obj];\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function (elem: HTMLElement, selector: string) {\n while (elem.parentNode && elem != document.body) {\n elem = elem.parentElement;\n if (elem.matches(selector)) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function (elem) {\n if (typeof elem == 'string') {\n return document.querySelector(elem);\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function (event) {\n const method = 'on' + event.type;\n if (this[method]) {\n this[method](event);\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function (elems, selector) {\n // make array of elems\n elems = utils.makeArray(elems);\n const ffElems = [];\n\n elems.forEach(function (elem: HTMLElement) {\n // check that elem is an actual element\n if (!(elem instanceof HTMLElement)) {\n return;\n }\n // add elem if no selector\n if (!selector) {\n ffElems.push(elem);\n return;\n }\n // filter & find items if we have a selector\n // filter\n if (elem.matches(selector)) {\n ffElems.push(elem);\n }\n // find children\n const childElems = elem.querySelectorAll(selector);\n // concat childElems to filterFound array\n for (let i = 0; i < childElems.length; i++) {\n ffElems.push(childElems[i]);\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function (_class, methodName, threshold) {\n threshold = threshold || 100;\n // original method\n const method = _class.prototype[methodName];\n const timeoutName = methodName + 'Timeout';\n\n _class.prototype[methodName] = function (...args) {\n const timeout = this[timeoutName];\n clearTimeout(timeout);\n\n const _this = this;\n this[timeoutName] = setTimeout(function () {\n method.apply(_this, args);\n delete _this[timeoutName];\n }, threshold);\n };\n};\n\nconst console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function (WidgetClass, namespace) {\n utils.docReady(function () {\n const dashedNamespace = utils.toDashed(namespace);\n const dataAttr = 'data-' + dashedNamespace;\n const dataAttrElems = document.querySelectorAll('[' + dataAttr + ']');\n const jsDashElems = document.querySelectorAll('.js-' + dashedNamespace);\n const elems = utils\n .makeArray(dataAttrElems)\n .concat(utils.makeArray(jsDashElems));\n const dataOptionsAttr = dataAttr + '-options';\n\n elems.forEach(function (elem) {\n const attr =\n elem.getAttribute(dataAttr) || elem.getAttribute(dataOptionsAttr);\n let options;\n try {\n options = attr && JSON.parse(attr);\n } catch (error) {\n // log error, do not initialize\n if (console) {\n console.error(\n 'Error parsing ' + dataAttr + ' on ' + elem.className + ': ' + error\n );\n }\n return;\n }\n // initialize\n // @ts-ignore\n const instance = new WidgetClass(elem, options);\n });\n });\n};\n","import { getSize } from './utils/get-size';\n\nexport default function Cell(elem, parent) {\n this.element = elem;\n this.parent = parent;\n\n this.create();\n}\n\nconst proto = Cell.prototype;\n\nproto.create = function () {\n this.element.style.position = 'absolute';\n this.element.setAttribute('aria-hidden', 'true');\n this.x = 0;\n this.shift = 0;\n Array.from(this.element.querySelectorAll('*')).forEach((element) => {\n (element as HTMLElement).setAttribute('tabindex', '-1');\n });\n};\n\nproto.destroy = function () {\n // reset style\n this.unselect();\n this.element.style.position = '';\n const side = this.parent.originSide;\n this.element.style[side] = '';\n};\n\nproto.getSize = function () {\n this.size = getSize(this.element);\n};\n\nproto.setPosition = function (x) {\n this.x = x;\n this.updateTarget();\n this.renderPosition(x);\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function () {\n const marginProperty =\n this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target =\n this.x +\n this.size[marginProperty] +\n this.size.width * this.parent.cellAlign;\n};\n\nproto.renderPosition = function (x) {\n // render position of cell with in slider\n const side = this.parent.originSide;\n this.element.style[side] = this.parent.getPositionValue(x);\n};\n\nproto.select = function () {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n Array.from(this.element.querySelectorAll('*')).forEach((element) => {\n (element as HTMLElement).removeAttribute('tabindex');\n });\n};\n\nproto.unselect = function () {\n this.element.classList.remove('is-selected');\n this.element.setAttribute('aria-hidden', 'true');\n Array.from(this.element.querySelectorAll('*')).forEach((element) => {\n (element as HTMLElement).setAttribute('tabindex', '-1');\n });\n};\n\n/**\n * @param {Integer} shift - 0, 1, or -1\n **/\nproto.wrapShift = function (shift) {\n this.shift = shift;\n this.renderPosition(this.x + this.parent.slideableWidth * shift);\n};\n\nproto.remove = function () {\n this.element.parentNode.removeChild(this.element);\n};\n","export default function Slide(parent) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n}\n\nconst proto = Slide.prototype;\n\nproto.addCell = function (cell) {\n this.cells.push(cell);\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max(cell.size.outerHeight, this.height);\n // first cell stuff\n if (this.cells.length == 1) {\n this.x = cell.x; // x comes from first cell\n const beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[beginMargin];\n }\n};\n\nproto.updateTarget = function () {\n const endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n const lastCell = this.getLastCell();\n const lastMargin = lastCell ? lastCell.size[endMargin] : 0;\n const slideWidth = this.outerWidth - (this.firstMargin + lastMargin);\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function () {\n return this.cells[this.cells.length - 1];\n};\n\nproto.select = function () {\n this.cells.forEach(function (cell) {\n cell.select();\n });\n};\n\nproto.unselect = function () {\n this.cells.forEach(function (cell) {\n cell.unselect();\n });\n};\n\nproto.getCellElements = function () {\n return this.cells.map(function (cell) {\n return cell.element;\n });\n};\n","import { utils } from './utils/utils';\n\nconst proto: any = {};\n\nproto.startAnimation = function () {\n if (this.isAnimating) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function () {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n const previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle(previousX);\n // animate next frame\n if (this.isAnimating) {\n const _this = this;\n requestAnimationFrame(function animateFrame() {\n _this.animate();\n });\n }\n};\n\nproto.positionSlider = function () {\n let x = this.x;\n // wrap position around\n if (this.options.wrapAround && this.cells.length > 1) {\n x = utils.modulo(x, this.slideableWidth);\n x = x - this.slideableWidth;\n this.shiftWrapCells(x);\n }\n\n this.setTranslateX(x, this.isAnimating);\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function (x, _is3d) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n x = this.options.rightToLeft ? -x : x;\n const translateX = this.getPositionValue(x);\n // use 3D tranforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n // this.slider.style.transform = is3d\n // ? 'translate3d(' + translateX + ',0,0)'\n // : 'translateX(' + translateX + ')';\n\n this.slider.style.transform = 'translate3d(' + translateX + ',0,0)';\n};\n\nproto.dispatchScrollEvent = function () {\n const firstSlide = this.slides[0];\n if (!firstSlide) {\n return;\n }\n const positionX = -this.x - firstSlide.target;\n const progress = positionX / this.slidesWidth;\n this.dispatchEvent('scroll', null, [progress, positionX]);\n};\n\nproto.positionSliderAtSelected = function () {\n if (!this.cells.length) {\n return;\n }\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.getPositionValue = function (position) {\n if (this.options.percentPosition) {\n // percent position, round to 2 digits, like 12.34%\n return Math.round((position / this.size.innerWidth) * 10000) * 0.01 + '%';\n } else {\n // pixel positioning\n return Math.round(position) + 'px';\n }\n};\n\nproto.settle = function (previousX) {\n // keep track of frames where x hasn't moved\n if (\n !this.isPointerDown &&\n Math.round(this.x * 100) == Math.round(previousX * 100)\n ) {\n this.restingFrames++;\n }\n // stop animating if resting for 3 or more frames\n if (this.restingFrames > 2) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent('settle', null, [this.selectedIndex]);\n }\n};\n\nproto.shiftWrapCells = function (x) {\n // shift before cells\n const beforeGap = this.cursorPosition + x;\n this._shiftCells(this.beforeShiftCells, beforeGap, -1);\n // shift after cells\n const afterGap =\n this.size.innerWidth - (x + this.slideableWidth + this.cursorPosition);\n this._shiftCells(this.afterShiftCells, afterGap, 1);\n};\n\nproto._shiftCells = function (cells, gap, shift) {\n for (let i = 0; i < cells.length; i++) {\n const cell = cells[i];\n const cellShift = gap > 0 ? shift : 0;\n cell.wrapShift(cellShift);\n gap -= cell.size.outerWidth;\n }\n};\n\nproto._unshiftCells = function (cells) {\n if (!cells || !cells.length) {\n return;\n }\n for (let i = 0; i < cells.length; i++) {\n cells[i].wrapShift(0);\n }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function () {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function (force) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function () {\n return (\n 1 - this.options[this.isFreeScrolling ? 'freeScrollFriction' : 'friction']\n );\n};\n\nproto.getRestingPosition = function () {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / (1 - this.getFrictionFactor());\n};\n\nproto.applyDragForce = function () {\n if (!this.isDraggable || !this.isPointerDown) {\n return;\n }\n // change the position to drag position by applying force\n const dragVelocity = this.dragX - this.x;\n const dragForce = dragVelocity - this.velocity;\n this.applyForce(dragForce);\n};\n\nproto.applySelectedAttraction = function () {\n // do not attract if pointer down or no slides\n const dragDown = this.isDraggable && this.isPointerDown;\n if (dragDown || this.isFreeScrolling || !this.slides.length) {\n return;\n }\n const distance = this.selectedSlide.target * -1 - this.x;\n const force = distance * this.options.selectedAttraction;\n this.applyForce(force);\n};\n\nexport default proto;\n","import { EvEmitter } from './utils/event-emitter';\nimport { getSize } from './utils/get-size';\nimport { utils } from './utils/utils';\nimport Cell from './cell';\nimport Slide from './slide';\nimport animatePrototype from './animate';\n\n// vars\nconst getComputedStyle = window.getComputedStyle;\nconst console = window.console;\n\nfunction moveElements(elems, toElem) {\n elems = utils.makeArray(elems);\n while (elems.length) {\n toElem.appendChild(elems.shift());\n }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nlet GUID = 0;\n// internal store of all Flickity intances\nconst instances = {};\n\nexport default function Flickity(element, options): void {\n const queryElement = utils.getQueryElement(element);\n if (!queryElement) {\n if (console) {\n console.error('Bad element for Flickity: ' + (queryElement || element));\n }\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if (this.element.flickityGUID) {\n const instance = instances[this.element.flickityGUID];\n if (!instances[this.element.flickityGUID]) return;\n instance.option(options);\n return instance;\n }\n\n // options\n this.options = utils.extend({}, this.constructor.defaults);\n this.option(options);\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nconst proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend(proto, EvEmitter.prototype);\n\nproto._create = function () {\n // add id for Flickity.data\n const id = (this.guid = ++GUID);\n this.element.flickityGUID = id; // expando\n instances[id] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this.viewport.part.add('slide-viewport');\n this._createSlider();\n\n if (this.options.resize || this.options.watchCSS) {\n window.addEventListener('resize', this);\n }\n\n // add listeners from on option\n for (const eventName in this.options.on) {\n const listener = this.options.on[eventName];\n this.on(eventName, listener);\n }\n\n Flickity.createMethods.forEach(function (method) {\n this[method]();\n }, this);\n\n if (this.options.watchCSS) {\n this.watchCSS();\n } else {\n this.activate();\n }\n};\n\n/**\n * set options\n * @param {Object} opts\n */\nproto.option = function (opts) {\n utils.extend(this.options, opts);\n};\n\nproto.activate = function () {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if (this.options.rightToLeft) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n const cellElems = this.element.children; //this._filterFindCellElements( this.element.children );\n moveElements(cellElems, this.slider);\n this.viewport.appendChild(this.slider);\n this.element.appendChild(this.viewport);\n // get cells from children\n this.reloadCells();\n\n if (this.options.accessibility) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener('keydown', this);\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function () {\n // slider element does all the positioning\n const slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[this.originSide as string] = 0;\n this.slider = slider;\n};\n\nproto._filterFindCellElements = function (elems) {\n return utils.filterFindElements(elems, this.options.cellSelector);\n};\n\n// goes through all children\nproto.reloadCells = function () {\n // collection of item elements\n this.cells = this._makeCells(\n this.slider.getRootNode().host\n ? this.slider.getRootNode().host.children\n : this.slider.children\n );\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function (elems) {\n const cellElems = this._filterFindCellElements(elems);\n\n // create new Flickity for collection\n const cells = cellElems.map(function (cellElem) {\n return new Cell(cellElem, this);\n }, this);\n\n return cells;\n};\n\nproto.getLastCell = function () {\n return this.cells[this.cells.length - 1];\n};\n\nproto.getLastSlide = function () {\n return this.slides[this.slides.length - 1];\n};\n\n// positions all cells\nproto.positionCells = function () {\n // size all cells\n this._sizeCells(this.cells);\n // position all cells\n this._positionCells(0);\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function (index) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n let cellX = 0;\n // get cellX\n if (index > 0) {\n const startCell = this.cells[index - 1];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n const len = this.cells.length;\n for (let i = index; i < len; i++) {\n const cell = this.cells[i];\n cell.setPosition(cellX);\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max(cell.size.outerHeight, this.maxCellHeight);\n }\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = len\n ? this.getLastSlide().target - this.slides[0].target\n : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells\n */\nproto._sizeCells = function (cells) {\n cells.forEach(function (cell) {\n cell.getSize();\n });\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function () {\n this.slides = [];\n if (!this.cells.length) {\n return;\n }\n\n let slide = new Slide(this);\n this.slides.push(slide);\n const isOriginLeft = this.originSide == 'left';\n const nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n const canCellFit = this._getCanCellFit();\n\n this.cells.forEach(function (cell, i) {\n // just add cell if first cell in slide\n if (!slide.cells.length) {\n slide.addCell(cell);\n return;\n }\n\n const slideWidth =\n slide.outerWidth -\n slide.firstMargin +\n (cell.size.outerWidth - cell.size[nextMargin]);\n\n if (canCellFit.call(this, i, slideWidth)) {\n slide.addCell(cell);\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n\n slide = new Slide(this);\n this.slides.push(slide);\n slide.addCell(cell);\n }\n }, this);\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function () {\n const groupCells = this.options.groupCells;\n if (!groupCells) {\n return function () {\n return false;\n };\n } else if (typeof groupCells == 'number') {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n // @ts-ignore\n const number = parseInt(groupCells, 10);\n return function (i) {\n return i % number !== 0;\n };\n }\n // default, group by width of slide\n // parse '75%\n const percentMatch =\n typeof groupCells == 'string' && groupCells.match(/^(\\d+)%$/);\n const percent = percentMatch ? parseInt(percentMatch[1], 10) / 100 : 1;\n return function (_i, slideWidth) {\n return slideWidth <= (this.size.innerWidth + 1) * percent;\n };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init = proto.reposition = function () {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function () {\n this.size = getSize(this.element);\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nconst cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5,\n },\n left: {\n left: 0,\n right: 1,\n },\n right: {\n right: 0,\n left: 1,\n },\n};\n\nproto.setCellAlign = function () {\n const shorthand = cellAlignShorthands[this.options.cellAlign];\n this.cellAlign = shorthand\n ? shorthand[this.originSide]\n : this.options.cellAlign;\n};\n\nproto.setGallerySize = function () {\n if (this.options.setGallerySize) {\n const height =\n this.options.adaptiveHeight && this.selectedSlide\n ? this.selectedSlide.height\n : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n};\n\nproto._getWrapShiftCells = function () {\n // only for wrap-around\n if (!this.options.wrapAround) {\n return;\n }\n // unshift previous cells\n this._unshiftCells(this.beforeShiftCells);\n this._unshiftCells(this.afterShiftCells);\n // get before cells\n // initial gap\n let gapX = this.cursorPosition;\n const cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells(gapX, cellIndex, -1);\n // get after cells\n // ending gap between last cell and end of gallery viewport\n gapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells(gapX, 0, 1);\n};\n\nproto._getGapCells = function (gapX, cellIndex, increment) {\n // keep adding cells until the cover the initial gap\n const cells = [];\n while (gapX > 0) {\n const cell = this.cells[cellIndex];\n if (!cell) {\n break;\n }\n cells.push(cell);\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function () {\n if (!this.options.contain || this.options.wrapAround || !this.cells.length) {\n return;\n }\n const isRightToLeft = this.options.rightToLeft;\n const beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n const endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n const contentWidth = this.slideableWidth - this.getLastCell().size[endMargin];\n // content is less than gallery size\n const isContentSmaller = contentWidth < this.size.innerWidth;\n // bounds\n const beginBound = this.cursorPosition + this.cells[0].size[beginMargin];\n const endBound = contentWidth - this.size.innerWidth * (1 - this.cellAlign);\n // contain each cell target\n this.slides.forEach(function (slide) {\n if (isContentSmaller) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max(slide.target, beginBound);\n slide.target = Math.min(slide.target, endBound);\n }\n }, this);\n};\n\n// ----- ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function (type, event, args) {\n const emitArgs = event ? [event].concat(args) : args;\n this.emitEvent(type, emitArgs);\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function (index, isWrap, isInstant) {\n if (!this.isActive) {\n return;\n }\n index = parseInt(index, 10);\n this._wrapSelect(index);\n\n if (this.options.wrapAround || isWrap) {\n index = utils.modulo(index, this.slides.length);\n }\n // bail if invalid index\n if (!this.slides[index]) {\n return;\n }\n const prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if (isInstant) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if (this.options.adaptiveHeight) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent('select', null, [index]);\n // change event if new index\n if (index != prevIndex) {\n this.dispatchEvent('change', null, [index]);\n }\n // old v1 event name, remove in v3\n this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function (index) {\n const len = this.slides.length;\n const isWrapping = this.options.wrapAround && len > 1;\n if (!isWrapping) {\n return index;\n }\n const wrapIndex = utils.modulo(index, len);\n // go to shortest\n const delta = Math.abs(wrapIndex - this.selectedIndex);\n const backWrapDelta = Math.abs(wrapIndex + len - this.selectedIndex);\n const forewardWrapDelta = Math.abs(wrapIndex - len - this.selectedIndex);\n if (!this.isDragSelect && backWrapDelta < delta) {\n index += len;\n } else if (!this.isDragSelect && forewardWrapDelta < delta) {\n index -= len;\n }\n // wrap position so slider is within normal area\n if (index < 0) {\n this.x -= this.slideableWidth;\n } else if (index >= len) {\n this.x += this.slideableWidth;\n }\n};\n\nproto.previous = function (isWrap, isInstant) {\n this.select(this.selectedIndex - 1, isWrap, isInstant);\n};\n\nproto.next = function (isWrap, isInstant) {\n this.select(this.selectedIndex + 1, isWrap, isInstant);\n};\n\nproto.updateSelectedSlide = function () {\n const slide = this.slides[this.selectedIndex];\n // selectedIndex could be outside of slides, if triggered before resize()\n if (!slide) {\n return;\n }\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function () {\n if (this.selectedSlide) {\n this.selectedSlide.unselect();\n }\n};\n\nproto.selectInitialIndex = function () {\n const initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if (this.isInitActivated) {\n this.select(this.selectedIndex, false, true);\n return;\n }\n // select with selector string\n if (initialIndex && typeof initialIndex == 'string') {\n const cell = this.queryCell(initialIndex);\n if (cell) {\n this.selectCell(initialIndex, false, true);\n return;\n }\n }\n\n let index = 0;\n // select with number\n if (initialIndex && this.slides[initialIndex]) {\n index = initialIndex;\n }\n // select instantly\n this.select(index, false, true);\n};\n\n/**\n * select slide from number or cell element\n * @param {Element or Number} elem\n * @param { Boolean } isWrap\n * @param { Boolean } isInstant\n */\nproto.selectCell = function (elem, isWrap, isInstant) {\n // get cell\n const cell = this.queryCell(elem);\n if (!cell) {\n return;\n }\n\n const index = this.getCellSlideIndex(cell);\n this.select(index, isWrap, isInstant);\n};\n\nproto.getCellSlideIndex = function (cell) {\n // get index of slides that has cell\n for (let i = 0; i < this.slides.length; i++) {\n const slide = this.slides[i];\n const index = slide.cells.indexOf(cell);\n if (index != -1) {\n return i;\n }\n }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem\n * @returns found flickity cell\n */\nproto.getCell = function (elem) {\n // loop through cells to get the one that matches\n for (let i = 0; i < this.cells.length; i++) {\n const cell = this.cells[i];\n if (cell.element == elem) {\n return cell;\n }\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {Element, Array, NodeList} elems\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function (elems) {\n elems = utils.makeArray(elems);\n const cells = [];\n elems.forEach(function (elem) {\n const cell = this.getCell(elem);\n if (cell) {\n cells.push(cell);\n }\n }, this);\n return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function () {\n return this.cells.map(function (cell) {\n return cell.element;\n });\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem\n * @returns {Flickit.Cell} cell\n */\nproto.getParentCell = function (elem) {\n // first check if elem is cell\n const cell = this.getCell(elem);\n if (cell) {\n return cell;\n }\n // try to get parent cell elem\n elem = utils.getParent(elem, '.flickity-slider > *');\n return this.getCell(elem);\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function (adjCount, index) {\n if (!adjCount) {\n return this.selectedSlide.getCellElements();\n }\n index = index === undefined ? this.selectedIndex : index;\n\n const len = this.slides.length;\n if (1 + adjCount * 2 >= len) {\n return this.getCellElements();\n }\n\n let cellElems = [];\n for (let i = index - adjCount; i <= index + adjCount; i++) {\n const slideIndex = this.options.wrapAround ? utils.modulo(i, len) : i;\n const slide = this.slides[slideIndex];\n if (slide) {\n cellElems = cellElems.concat(slide.getCellElements());\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {Element, Selector String, or Number} selector\n * @returns {Flickity.Cell} found flickity cell\n */\nproto.queryCell = function (selector) {\n if (typeof selector == 'number') {\n // use number as index\n return this.cells[selector];\n }\n if (typeof selector == 'string') {\n // do not select invalid selectors from hash: #123, #/. #791\n if (selector.match(/^[#\\.]?[\\d\\/]/)) {\n return;\n }\n // use string as selector, get element\n selector = this.element.querySelector(selector);\n }\n // get cell from element\n return this.getCell(selector);\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function () {\n this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function (event) {\n // HACK iOS does not allow touch events to bubble up?!\n if (event.type != 'touchstart') {\n event.preventDefault();\n }\n this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function () {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod(Flickity, 'onresize', 150);\n\nproto.resize = function () {\n if (!this.isActive) {\n return;\n }\n this.getSize();\n // wrap values\n if (this.options.wrapAround) {\n this.x = utils.modulo(this.x, this.slideableWidth);\n }\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n const selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell(selectedElement, false, true);\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function () {\n const watchOption = this.options.watchCSS;\n if (!watchOption) {\n return;\n }\n\n const afterContent = getComputedStyle(this.element, ':after').content;\n // activate if :after { content: 'flickity' }\n if (afterContent.indexOf('flickity') != -1) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function (event) {\n // only work if element is in focus\n const isNotFocused =\n document.activeElement && document.activeElement != this.element;\n if (!this.options.accessibility || isNotFocused) {\n return;\n }\n\n const handler = Flickity.keyboardHandlers[event.keyCode];\n if (handler) {\n handler.call(this);\n }\n};\n\nFlickity.keyboardHandlers = {\n // left arrow\n 37: function () {\n const leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[leftMethod]();\n },\n // right arrow\n 39: function () {\n const rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[rightMethod]();\n },\n};\n\n// ----- focus ----- //\n\nproto.focus = function () {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#Browser_compatibility\n const prevScrollY = window.pageYOffset;\n this.element.focus({ preventScroll: true });\n // hack to fix scroll jump after focus, #76\n if (window.pageYOffset != prevScrollY) {\n window.scrollTo(window.pageXOffset, prevScrollY);\n }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function () {\n if (!this.isActive) {\n return;\n }\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach(function (cell) {\n cell.destroy();\n });\n this.element.removeChild(this.viewport);\n // move child elements back into element\n moveElements(this.slider.children, this.element);\n if (this.options.accessibility) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener('keydown', this);\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function () {\n this.deactivate();\n window.removeEventListener('resize', this);\n this.allOff();\n this.emitEvent('destroy');\n delete this.element.flickityGUID;\n delete instances[this.guid];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend(proto, animatePrototype);\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {Element} elem\n * @returns {Flickity} Flickity instance\n */\nFlickity.data = function (elem) {\n elem = utils.getQueryElement(elem);\n const id = elem && elem.flickityGUID;\n return id && instances[id];\n};\n\nutils.htmlInit(Flickity, 'flickity');\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n","/*!\n * Unipointer v2.4.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\nimport { EvEmitter } from './event-emitter';\n\nfunction noop() {}\n\nexport function Unipointer() {}\n\n// inherit EvEmitter\nconst pointerProto = (Unipointer.prototype = Object.create(\n EvEmitter.prototype\n));\n\npointerProto.bindStartEvent = function (elem) {\n this._bindStartEvent(elem, true);\n};\n\npointerProto.unbindStartEvent = function (elem) {\n this._bindStartEvent(elem, false);\n};\n\n/**\n * Add or remove start event\n * @param {Element} elem\n * @param {Boolean} isAdd - remove if falsey\n */\npointerProto._bindStartEvent = function (elem, isAdd) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n const bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n let startEvent = 'mousedown';\n if ('ontouchstart' in window) {\n // HACK prefer Touch Events as you can preventDefault on touchstart to\n // disable scroll in iOS & mobile Chrome metafizzy/flickity#1177\n startEvent = 'touchstart';\n } else if (window.PointerEvent) {\n // Pointer Events\n startEvent = 'pointerdown';\n }\n elem[bindMethod](startEvent, this);\n};\n\n// trigger handler methods for events\npointerProto.handleEvent = function (event) {\n const method = 'on' + event.type;\n if (this[method]) {\n this[method](event);\n }\n};\n\n// returns the touch that we're keeping track of\npointerProto.getTouch = function (touches) {\n for (let i = 0; i < touches.length; i++) {\n const touch = touches[i];\n if (touch.identifier == this.pointerIdentifier) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\npointerProto.onmousedown = function (event) {\n // dismiss clicks from right or middle buttons\n const button = event.button;\n if (button && button !== 0 && button !== 1) {\n return;\n }\n this._pointerDown(event, event);\n};\n\npointerProto.ontouchstart = function (event) {\n this._pointerDown(event, event.changedTouches[0]);\n};\n\npointerProto.onpointerdown = function (event) {\n this._pointerDown(event, event);\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\npointerProto._pointerDown = function (event, pointer) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if (event.button || this.isPointerDown) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier =\n pointer.pointerId !== undefined\n ? // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId\n : pointer.identifier;\n\n this.pointerDown(event, pointer);\n};\n\npointerProto.pointerDown = function (event, pointer) {\n this._bindPostStartEvents(event);\n this.emitEvent('pointerDown', [event, pointer]);\n};\n\n// hash of events to be bound after start event\nconst postStartEvents = {\n mousedown: ['mousemove', 'mouseup'],\n touchstart: ['touchmove', 'touchend', 'touchcancel'],\n pointerdown: ['pointermove', 'pointerup', 'pointercancel'],\n};\n\npointerProto._bindPostStartEvents = function (event) {\n if (!event) {\n return;\n }\n // get proper events to match start event\n const events = postStartEvents[event.type];\n // bind events to node\n events.forEach(function (eventName) {\n window.addEventListener(eventName, this);\n }, this);\n // save these arguments\n this._boundPointerEvents = events;\n};\n\npointerProto._unbindPostStartEvents = function () {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if (!this._boundPointerEvents) {\n return;\n }\n this._boundPointerEvents.forEach(function (eventName) {\n window.removeEventListener(eventName, this);\n }, this);\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\npointerProto.onmousemove = function (event) {\n this._pointerMove(event, event);\n};\n\npointerProto.onpointermove = function (event) {\n if (event.pointerId == this.pointerIdentifier) {\n this._pointerMove(event, event);\n }\n};\n\npointerProto.ontouchmove = function (event) {\n const touch = this.getTouch(event.changedTouches);\n if (touch) {\n this._pointerMove(event, touch);\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\npointerProto._pointerMove = function (event, pointer) {\n this.pointerMove(event, pointer);\n};\n\n// public\npointerProto.pointerMove = function (event, pointer) {\n this.emitEvent('pointerMove', [event, pointer]);\n};\n\n// ----- end event ----- //\n\npointerProto.onmouseup = function (event) {\n this._pointerUp(event, event);\n};\n\npointerProto.onpointerup = function (event) {\n if (event.pointerId == this.pointerIdentifier) {\n this._pointerUp(event, event);\n }\n};\n\npointerProto.ontouchend = function (event) {\n const touch = this.getTouch(event.changedTouches);\n if (touch) {\n this._pointerUp(event, touch);\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\npointerProto._pointerUp = function (event, pointer) {\n this._pointerDone();\n this.pointerUp(event, pointer);\n};\n\n// public\npointerProto.pointerUp = function (event, pointer) {\n this.emitEvent('pointerUp', [event, pointer]);\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\npointerProto._pointerDone = function () {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\npointerProto._pointerReset = function () {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\npointerProto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\npointerProto.onpointercancel = function (event) {\n if (event.pointerId == this.pointerIdentifier) {\n this._pointerCancel(event, event);\n }\n};\n\npointerProto.ontouchcancel = function (event) {\n const touch = this.getTouch(event.changedTouches);\n if (touch) {\n this._pointerCancel(event, touch);\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\npointerProto._pointerCancel = function (event, pointer) {\n this._pointerDone();\n this.pointerCancel(event, pointer);\n};\n\n// public\npointerProto.pointerCancel = function (event, pointer) {\n this.emitEvent('pointerCancel', [event, pointer]);\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function (pointer) {\n return {\n x: pointer.pageX,\n y: pointer.pageY,\n };\n};\n\n/*!\n * Unidragger v2.4.0\n * Draggable base class\n * MIT license\n */\n\nexport function Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nconst draggerProto = (Unidragger.prototype = Object.create(\n Unipointer.prototype\n));\n\n// ----- bind start ----- //\n\ndraggerProto.bindHandles = function () {\n this._bindHandles(true);\n};\n\ndraggerProto.unbindHandles = function () {\n this._bindHandles(false);\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\ndraggerProto._bindHandles = function (isAdd) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n const bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n const touchAction = isAdd ? this._touchActionValue : '';\n for (let i = 0; i < this.handles.length; i++) {\n const handle = this.handles[i];\n this._bindStartEvent(handle, isAdd);\n handle[bindMethod]('click', this);\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if (window.PointerEvent) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\ndraggerProto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\ndraggerProto.pointerDown = function (event, pointer) {\n const isOkay = this.okayPointerDown(event);\n if (!isOkay) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents(event);\n this.emitEvent('pointerDown', [event, pointer]);\n};\n\n// nodes that have text fields\nconst cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nconst clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\ndraggerProto.okayPointerDown = function (event) {\n const isCursorNode = cursorNodes[event.target.nodeName];\n const isClickType = clickTypes[event.target.type];\n const isOkay = !isCursorNode || isClickType;\n if (!isOkay) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\ndraggerProto.pointerDownBlur = function () {\n const focused = document.activeElement as HTMLElement;\n // do not blur body for IE10, metafizzy/flickity#117\n const canBlur = focused && focused.blur && focused != document.body;\n if (canBlur) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\ndraggerProto.pointerMove = function (event, pointer) {\n const moveVector = this._dragPointerMove(event, pointer);\n this.emitEvent('pointerMove', [event, pointer, moveVector]);\n this._dragMove(event, pointer, moveVector);\n};\n\n// base pointer move logic\ndraggerProto._dragPointerMove = function (event, pointer) {\n const moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY,\n };\n // start drag if pointer has moved far enough to start drag\n if (!this.isDragging && this.hasDragStarted(moveVector)) {\n this._dragStart(event, pointer);\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\ndraggerProto.hasDragStarted = function (moveVector) {\n return Math.abs(moveVector.x) > 3 || Math.abs(moveVector.y) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\ndraggerProto.pointerUp = function (event, pointer) {\n this.emitEvent('pointerUp', [event, pointer]);\n this._dragPointerUp(event, pointer);\n};\n\ndraggerProto._dragPointerUp = function (event, pointer) {\n if (this.isDragging) {\n this._dragEnd(event, pointer);\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick(event, pointer);\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\ndraggerProto._dragStart = function (event, pointer) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart(event, pointer);\n};\n\ndraggerProto.dragStart = function (event, pointer) {\n this.emitEvent('dragStart', [event, pointer]);\n};\n\n// dragMove\ndraggerProto._dragMove = function (event, pointer, moveVector) {\n // do not drag if not dragging yet\n if (!this.isDragging) {\n return;\n }\n\n this.dragMove(event, pointer, moveVector);\n};\n\ndraggerProto.dragMove = function (event, pointer, moveVector) {\n event.preventDefault();\n this.emitEvent('dragMove', [event, pointer, moveVector]);\n};\n\n// dragEnd\ndraggerProto._dragEnd = function (event, pointer) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout(\n function () {\n delete this.isPreventingClicks;\n }.bind(this)\n );\n\n this.dragEnd(event, pointer);\n};\n\ndraggerProto.dragEnd = function (event, pointer) {\n this.emitEvent('dragEnd', [event, pointer]);\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\ndraggerProto.onclick = function (event) {\n if (this.isPreventingClicks) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\ndraggerProto._staticClick = function (event, pointer) {\n // ignore emulated mouse up clicks\n if (this.isIgnoringMouseUp && event.type == 'mouseup') {\n return;\n }\n\n this.staticClick(event, pointer);\n\n // set flag for emulated clicks 300ms after touchend\n if (event.type != 'mouseup') {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout(\n function () {\n delete this.isIgnoringMouseUp;\n }.bind(this),\n 400\n );\n }\n};\n\ndraggerProto.staticClick = function (event, pointer) {\n this.emitEvent('staticClick', [event, pointer]);\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n","import Flickity from './flickity';\nimport { utils } from './utils/utils';\nimport { Unidragger } from './utils/gestures';\n\n// ----- defaults ----- //\n\nutils.extend(Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n});\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nconst proto = Flickity.prototype;\nutils.extend(proto, Unidragger.prototype);\nproto._touchActionValue = 'pan-y';\n\n// -------------------------- -------------------------- //\n\nconst isTouch = 'createTouch' in document;\nlet isTouchmoveScrollCanceled = false;\n\nproto._createDrag = function () {\n this.on('activate', this.onActivateDrag);\n this.on('uiChange', this._uiChangeDrag);\n this.on('deactivate', this.onDeactivateDrag);\n this.on('cellChange', this.updateDraggable);\n // TODO updateDraggable on resize? if groupCells & slides change\n // HACK - add seemingly innocuous handler to fix iOS 10 scroll behavior\n // #457, RubaXa/Sortable#973\n if (isTouch && !isTouchmoveScrollCanceled) {\n window.addEventListener('touchmove', function () {});\n isTouchmoveScrollCanceled = true;\n }\n};\n\nproto.onActivateDrag = function () {\n this.handles = [this.viewport];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function () {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function () {\n // disable dragging if less than 2 slides. #278\n if (this.options.draggable == '>1') {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n if (this.isDraggable) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n};\n\n// backwards compatibility\nproto.bindDrag = function () {\n this.options.draggable = true;\n this.updateDraggable();\n};\n\nproto.unbindDrag = function () {\n this.options.draggable = false;\n this.updateDraggable();\n};\n\nproto._uiChangeDrag = function () {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function (event, pointer) {\n if (!this.isDraggable) {\n this._pointerDownDefault(event, pointer);\n return;\n }\n const isOkay = this.okayPointerDown(event);\n if (!isOkay) {\n return;\n }\n\n this._pointerDownPreventDefault(event);\n this.pointerDownFocus(event);\n // blur\n if (document.activeElement != this.element) {\n // do not blur if already focused\n this.pointerDownBlur();\n }\n\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener('scroll', this);\n\n this._pointerDownDefault(event, pointer);\n};\n\n// default pointerDown logic, used for staticClick\nproto._pointerDownDefault = function (event, pointer) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n // bind move and end events\n this._bindPostStartEvents(event);\n this.dispatchEvent('pointerDown', event, [pointer]);\n};\n\nconst focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n};\n\nproto.pointerDownFocus = function (event) {\n const isFocusNode = focusNodes[event.target.nodeName];\n if (!isFocusNode) {\n this.focus();\n }\n};\n\nproto._pointerDownPreventDefault = function (event) {\n const isTouchStart = event.type == 'touchstart';\n const isTouchPointer = event.pointerType == 'touch';\n const isFocusNode = focusNodes[event.target.nodeName];\n if (!isTouchStart && !isTouchPointer && !isFocusNode) {\n event.preventDefault();\n }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function (moveVector) {\n return Math.abs(moveVector.x) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function (event, pointer) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent('pointerUp', event, [pointer]);\n this._dragPointerUp(event, pointer);\n};\n\nproto.pointerDone = function () {\n window.removeEventListener('scroll', this);\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function (event, pointer) {\n if (!this.isDraggable) {\n return;\n }\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener('scroll', this);\n this.dispatchEvent('dragStart', event, [pointer]);\n};\n\nproto.pointerMove = function (event, pointer) {\n const moveVector = this._dragPointerMove(event, pointer);\n this.dispatchEvent('pointerMove', event, [pointer, moveVector]);\n this._dragMove(event, pointer, moveVector);\n};\n\nproto.dragMove = function (event, pointer, moveVector) {\n if (!this.isDraggable) {\n return;\n }\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n const direction = this.options.rightToLeft ? -1 : 1;\n if (this.options.wrapAround) {\n // wrap around move. #589\n moveVector.x = moveVector.x % this.slideableWidth;\n }\n let dragX = this.dragStartPosition + moveVector.x * direction;\n\n if (!this.options.wrapAround && this.slides.length) {\n // slow drag\n const originBound = Math.max(\n -this.slides[0].target,\n this.dragStartPosition\n );\n dragX = dragX > originBound ? (dragX + originBound) * 0.5 : dragX;\n const endBound = Math.min(\n -this.getLastSlide().target,\n this.dragStartPosition\n );\n dragX = dragX < endBound ? (dragX + endBound) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n\n this.dragMoveTime = new Date();\n this.dispatchEvent('dragMove', event, [pointer, moveVector]);\n};\n\nproto.dragEnd = function (event, pointer) {\n if (!this.isDraggable) {\n return;\n }\n if (this.options.freeScroll) {\n this.isFreeScrolling = true;\n }\n // set selectedIndex based on where flick will end up\n let index = this.dragEndRestingSelect();\n\n if (this.options.freeScroll && !this.options.wrapAround) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n const restingX = this.getRestingPosition();\n this.isFreeScrolling =\n -restingX > this.slides[0].target &&\n -restingX < this.getLastSlide().target;\n } else if (!this.options.freeScroll && index == this.selectedIndex) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n delete this.previousDragX;\n // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.options.wrapAround;\n this.select(index);\n delete this.isDragSelect;\n this.dispatchEvent('dragEnd', event, [pointer]);\n};\n\nproto.dragEndRestingSelect = function () {\n const restingX = this.getRestingPosition();\n // how far away from selected slide\n const distance = Math.abs(\n this.getSlideDistance(-restingX, this.selectedIndex)\n );\n // get closet resting going up and going down\n const positiveResting = this._getClosestResting(restingX, distance, 1);\n const negativeResting = this._getClosestResting(restingX, distance, -1);\n // use closer resting for wrap-around\n const index =\n positiveResting.distance < negativeResting.distance\n ? positiveResting.index\n : negativeResting.index;\n return index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function (restingX, distance, increment) {\n let index = this.selectedIndex;\n let minDistance = Infinity;\n const condition =\n this.options.contain && !this.options.wrapAround\n ? // if contain, keep going if distance is equal to minDistance\n function (d, md) {\n return d <= md;\n }\n : function (d, md) {\n return d < md;\n };\n while (condition(distance, minDistance)) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance(-restingX, index);\n if (distance === null) {\n break;\n }\n distance = Math.abs(distance);\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x\n * @param {Integer} index - slide index\n * @returns null or distance number\n */\nproto.getSlideDistance = function (x, index) {\n const len = this.slides.length;\n // wrap around if at least 2 slides\n const isWrapAround = this.options.wrapAround && len > 1;\n const slideIndex = isWrapAround ? utils.modulo(index, len) : index;\n const slide = this.slides[slideIndex];\n if (!slide) {\n return null;\n }\n // add distance for wrap-around slides\n const wrap = isWrapAround ? this.slideableWidth * Math.floor(index / len) : 0;\n return x - (slide.target + wrap);\n};\n\nproto.dragEndBoostSelect = function () {\n // do not boost if no previousDragX or dragMoveTime\n if (\n this.previousDragX === undefined ||\n !this.dragMoveTime ||\n // or if drag was held for 100 ms\n (new Date() as any) - this.dragMoveTime > 100\n ) {\n return 0;\n }\n\n const distance = this.getSlideDistance(-this.dragX, this.selectedIndex);\n const delta = this.previousDragX - this.dragX;\n if (distance > 0 && delta > 0) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if (distance < 0 && delta < 0) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function (event, pointer) {\n // get clickedCell, if cell was clicked\n const clickedCell = this.getParentCell(event.target);\n const cellElem = clickedCell && clickedCell.element;\n const cellIndex = clickedCell && this.cells.indexOf(clickedCell);\n this.dispatchEvent('staticClick', event, [pointer, cellElem, cellIndex]);\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function () {\n const scroll = getScrollPosition();\n const scrollMoveX = this.pointerDownScroll.x - scroll.x;\n const scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if (Math.abs(scrollMoveX) > 3 || Math.abs(scrollMoveY) > 3) {\n this._pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n","import Flickity from './flickity';\nimport { Unipointer } from './utils/gestures';\nimport { utils } from './utils/utils';\n\n('use strict');\n\nconst svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton(direction, parent) {\n this.direction = direction;\n this.parent = parent;\n this.parentElement = this.parent.element.shadowRoot || this.parent.element;\n this._create();\n}\n\nPrevNextButton.prototype = Object.create(Unipointer.prototype);\n\nPrevNextButton.prototype._create = function () {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n const leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n\n const button = (this.element = document.createElement('button'));\n button.className = 'flickity-button flickity-prev-next-button';\n button.part.add('navigation-button');\n if (this.isPrevious) {\n button.classList.add('previous');\n button.part.add('navigation-button--previous');\n } else {\n button.classList.add('next');\n button.part.add('navigation-button--next');\n }\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n button.setAttribute('type', 'button');\n // init as disabled\n this.disable();\n\n button.setAttribute('aria-label', this.isPrevious ? 'Previous' : 'Next');\n\n const slot = document.createElement('slot');\n slot.name = this.isPrevious ? 'previous-icon' : 'next-icon';\n button.appendChild(slot);\n slot.addEventListener('slotchange', () => {\n slot.assignedElements({ flatten: true }).forEach((ele) => {\n ele.removeAttribute('hidden');\n });\n });\n\n // create arrow\n const svg = this.createSVG();\n slot.appendChild(svg);\n // events\n this.parent.on('select', this.update.bind(this));\n this.on('pointerDown', this.parent.childUIPointerDown.bind(this.parent));\n};\n\nPrevNextButton.prototype.activate = function () {\n this.bindStartEvent(this.element);\n this.element.addEventListener('click', this);\n // add to DOM\n this.parentElement.appendChild(this.element);\n};\n\nPrevNextButton.prototype.deactivate = function () {\n // remove from DOM\n this.parentElement.removeChild(this.element);\n // click events\n this.unbindStartEvent(this.element);\n this.element.removeEventListener('click', this);\n};\n\nPrevNextButton.prototype.createSVG = function () {\n const svg = document.createElementNS(svgURI, 'svg');\n svg.setAttribute('class', 'flickity-button-icon');\n svg.setAttribute('viewBox', '0 0 100 100');\n svg.part.add('navigation-icon');\n const path = document.createElementNS(svgURI, 'path');\n const pathMovements = getArrowMovements(this.parent.options.arrowShape);\n path.setAttribute('d', pathMovements);\n path.setAttribute('class', 'arrow');\n // rotate arrow\n if (!this.isLeft) {\n path.setAttribute('transform', 'translate(100, 100) rotate(180) ');\n }\n svg.appendChild(path);\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements(shape) {\n // use shape as movement if string\n if (typeof shape == 'string') {\n return shape;\n }\n // create movement string\n return (\n 'M ' +\n shape.x0 +\n ',50' +\n ' L ' +\n shape.x1 +\n ',' +\n (shape.y1 + 50) +\n ' L ' +\n shape.x2 +\n ',' +\n (shape.y2 + 50) +\n ' L ' +\n shape.x3 +\n ',50 ' +\n ' L ' +\n shape.x2 +\n ',' +\n (50 - shape.y2) +\n ' L ' +\n shape.x1 +\n ',' +\n (50 - shape.y1) +\n ' Z'\n );\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function () {\n if (!this.isEnabled) {\n return;\n }\n this.parent.uiChange();\n const method = this.isPrevious ? 'previous' : 'next';\n this.parent[method]();\n};\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function () {\n if (this.isEnabled) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function () {\n if (!this.isEnabled) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function () {\n // index of first or last slide, if previous or next\n const slides = this.parent.slides;\n // enable is wrapAround and at least 2 slides\n if (this.parent.options.wrapAround && slides.length > 1) {\n this.enable();\n return;\n }\n const lastIndex = slides.length ? slides.length - 1 : 0;\n const boundIndex = this.isPrevious ? 0 : lastIndex;\n const method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[method]();\n};\n\nPrevNextButton.prototype.destroy = function () {\n this.deactivate();\n this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend(Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60,\n y1: 50,\n x2: 70,\n y2: 40,\n x3: 30,\n },\n});\n\nFlickity.createMethods.push('_createPrevNextButtons');\nconst proto = Flickity.prototype;\n\nproto._createPrevNextButtons = function () {\n if (!this.options.prevNextButtons) {\n return;\n }\n\n this.prevButton = new PrevNextButton(-1, this);\n this.nextButton = new PrevNextButton(1, this);\n\n this.on('activate', this.activatePrevNextButtons);\n};\n\nproto.activatePrevNextButtons = function () {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on('deactivate', this.deactivatePrevNextButtons);\n};\n\nproto.deactivatePrevNextButtons = function () {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off('deactivate', this.deactivatePrevNextButtons);\n};\n\n// @ts-ignore\nFlickity.PrevNextButton = PrevNextButton;\n","import { EvEmitter } from './utils/event-emitter';\nimport { utils } from './utils/utils';\nimport Flickity from './flickity';\n\n// -------------------------- Player -------------------------- //\n\nfunction Player(parent) {\n this.parent = parent;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind(this);\n this.onVisibilityPlay = this.visibilityPlay.bind(this);\n}\n\nPlayer.prototype = Object.create(EvEmitter.prototype);\n\n// start play\nPlayer.prototype.play = function () {\n if (this.state == 'playing') {\n return;\n }\n // do not play if page is hidden, start playing when page is visible\n const isPageHidden = document.hidden;\n if (isPageHidden) {\n document.addEventListener('visibilitychange', this.onVisibilityPlay);\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n // start ticking\n this.tick();\n};\n\nPlayer.prototype.tick = function () {\n // do not tick if not playing\n if (this.state != 'playing') {\n return;\n }\n\n let time = this.parent.options.autoPlay;\n // default to 3 seconds\n time = typeof time == 'number' ? time : 3000;\n const _this = this;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout(function () {\n _this.parent.next(true);\n _this.tick();\n }, time);\n};\n\nPlayer.prototype.stop = function () {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n};\n\nPlayer.prototype.clear = function () {\n clearTimeout(this.timeout);\n};\n\nPlayer.prototype.pause = function () {\n if (this.state == 'playing') {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function () {\n // re-start play if paused\n if (this.state == 'paused') {\n this.play();\n }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function () {\n const isPageHidden = document.hidden;\n this[isPageHidden ? 'pause' : 'unpause']();\n};\n\nPlayer.prototype.visibilityPlay = function () {\n this.play();\n document.removeEventListener('visibilitychange', this.onVisibilityPlay);\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend(Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n});\n\nFlickity.createMethods.push('_createPlayer');\nconst proto = Flickity.prototype;\n\nproto._createPlayer = function () {\n this.player = new Player(this);\n\n this.on('activate', this.activatePlayer);\n this.on('uiChange', this.stopPlayer);\n this.on('pointerDown', this.stopPlayer);\n this.on('deactivate', this.deactivatePlayer);\n};\n\nproto.activatePlayer = function () {\n if (!this.options.autoPlay) {\n return;\n }\n this.player.play();\n this.element.addEventListener('mouseenter', this);\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function () {\n this.player.play();\n};\n\nproto.stopPlayer = function () {\n this.player.stop();\n};\n\nproto.pausePlayer = function () {\n this.player.pause();\n};\n\nproto.unpausePlayer = function () {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function () {\n this.player.stop();\n this.element.removeEventListener('mouseenter', this);\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function () {\n if (!this.options.pauseAutoPlayOnHover) {\n return;\n }\n this.player.pause();\n this.element.addEventListener('mouseleave', this);\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function () {\n this.player.unpause();\n this.element.removeEventListener('mouseleave', this);\n};\n\n// @ts-ignore\nFlickity.Player = Player;\n","import Flickity from './flickity';\nimport './drag';\nimport './prev-next-button';\nimport './player';\n\nexport const flickity = Flickity;\n","@import '../../global/style/nano-theme/colours';\n\n:host {\n /**\n * @prop --dot-color: inactive colour of pager bullets. Default #cccccc;\n * @prop --dot-color-active: active colour of pager bullets. Default #{nano-color(primary, base)};\n *\n * @prop --navbtns-icon-color: next / prev icon color. Default var(--dot-color-active);\n * @prop --navbtns-bg-color: next / prev bg color. Default white;\n * @prop --navbtns-icon-color-disabled: next / prev icon color. Default var(--dot-color-active);\n * @prop --navbtns-bg-color-disabled: next / prev bg color. Default white;\n *\n * @prop --fsbtn-icon-color: fullscreen btn icon color. Default var(--dot-color-active);\n * @prop --fsbtn-bg-color: fullscreen bg color. Default white;\n */\n --dot-color: #ccc;\n --dot-color-active: #{nano-color(primary, base)};\n --navbtns-icon-color: var(--dot-color-active);\n --navbtns-bg-color: white;\n --navbtns-icon-color-disabled: var(--dot-color-active);\n --navbtns-bg-color-disabled: white;\n --fsbtn-icon-color: var(--dot-color-active);\n --fsbtn-bg-color: white;\n\n display: block;\n user-select: none;\n overflow: hidden;\n transition: opacity 0.2s;\n opacity: 0;\n max-inline-size: 100vw;\n}\n\n:host([ready]) {\n opacity: 1;\n}\n\n.slideshow {\n max-block-size: 100%;\n min-block-size: inherit;\n block-size: inherit;\n position: relative;\n\n &.not-ready {\n inline-size: 100%;\n overflow: hidden;\n }\n}\n\n.flickity-container {\n opacity: 0;\n transition: opacity 0.2s;\n display: flex;\n inline-size: fit-content;\n block-size: fit-content;\n\n .not-ready & {\n inline-size: fit-content;\n block-size: fit-content;\n }\n\n &.slides-ready {\n min-block-size: inherit;\n max-block-size: inherit;\n block-size: inherit;\n inline-size: auto;\n }\n}\n\n[hidden] {\n display: none !important;\n}\n\n.ui-extras {\n pointer-events: none;\n position: absolute;\n block-size: 100%;\n inline-size: 100%;\n inset-block-start: 0;\n inset-inline-start: 0;\n\n * {\n pointer-events: all;\n }\n}\n\n/*! Flickity v2.2.1\nhttps://flickity.metafizzy.co\n---------------------------------------------- */\n\n.flickity-enabled {\n position: relative;\n opacity: 1;\n}\n\n.flickity-enabled:focus {\n outline: none;\n}\n\n.flickity-viewport {\n overflow: hidden;\n position: relative;\n min-block-size: 100%;\n flex: 1;\n}\n\n.flickity-slider {\n position: absolute;\n inline-size: 100%;\n block-size: 100%;\n}\n\n/* draggable */\n\n.flickity-enabled.is-draggable {\n -webkit-tap-highlight-color: transparent;\n user-select: none;\n}\n\n.flickity-enabled.is-draggable .flickity-viewport {\n cursor: move;\n cursor: grab;\n cursor: grab;\n}\n\n.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {\n cursor: grabbing;\n}\n\n/* ---- flickity-button ---- */\n\n.flickity-button {\n position: absolute;\n background: var(--navbtns-bg-color);\n border: none;\n color: #333;\n opacity: 0.75;\n}\n\n.flickity-button:hover {\n opacity: 1;\n cursor: pointer;\n}\n\n.flickity-button:focus {\n outline: none;\n box-shadow: 0 0 0 5px #19f;\n}\n\n.flickity-button:active {\n opacity: 0.6;\n}\n\n.flickity-button:disabled {\n opacity: 0.3;\n cursor: auto;\n\n /* prevent disabled button from capturing pointer up event. #716 */\n pointer-events: none;\n background: var(--navbtns-bg-color-disabled);\n}\n\n.flickity-button-icon {\n fill: var(--navbtns-icon-color);\n}\n\n.flickity-button:disabled .flickity-button-icon {\n fill: var(--navbtns-icon-color-disabled);\n}\n\n/* ---- previous/next buttons ---- */\n\n.flickity-prev-next-button {\n inset-block-start: 50%;\n inline-size: 44px;\n block-size: 44px;\n border-radius: 50%;\n\n /* vertically center */\n transform: translateY(-50%);\n}\n\n.flickity-prev-next-button.previous {\n inset-inline-start: 10px;\n}\n\n.flickity-prev-next-button.next {\n inset-inline-end: 10px;\n}\n\n/* right to left */\n.flickity-rtl .flickity-prev-next-button.previous {\n inset-inline: auto 10px;\n}\n\n.flickity-rtl .flickity-prev-next-button.next {\n inset-inline: 10px auto;\n}\n\n.flickity-prev-next-button .flickity-button-icon {\n position: absolute;\n inset-inline-start: 20%;\n inset-block-start: 20%;\n inline-size: 60%;\n block-size: 60%;\n}\n\n/* ---- page dots ---- */\n\n.flickity-page-dots {\n position: absolute;\n inline-size: 100%;\n inset-block-end: 10px;\n padding: 0;\n margin: 0;\n list-style: none;\n text-align: center;\n line-height: 1;\n z-index: 4;\n}\n\n.flickity-rtl .flickity-page-dots {\n direction: rtl;\n}\n\n.flickity-page-dots .dot {\n display: inline-block;\n inline-size: 10px;\n block-size: 10px;\n margin-block: 0;\n margin-inline: 8px;\n border-radius: 50%;\n cursor: pointer;\n background: var(--dot-color);\n\n // Pagination Bullets\n // --------------------------------------------------\n}\n\n.flickity-page-dots .dot.is-selected {\n opacity: 1;\n background: var(--dot-color-active);\n}\n\n// fullscreen\n\n.flickity-enabled.is-fullscreen {\n position: fixed;\n inset-inline-start: 0;\n inset-block-start: 0;\n inline-size: 100%;\n block-size: 100%;\n background: hsl(0deg 0% 0% / 90%);\n padding-block-end: 35px;\n z-index: 100;\n}\n\n.flickity-enabled.is-fullscreen .flickity-page-dots {\n inset-block-end: 45px;\n}\n\n/* prevent page scrolling when flickity is fullscreen */\nhtml.is-flickity-fullscreen {\n overflow: hidden;\n}\n\n/* ---- flickity-fullscreen-button ---- */\n\n.flickity-fullscreen-button {\n display: block;\n inset-inline-end: 10px;\n inset-block-start: 10px;\n inline-size: 24px;\n block-size: 24px;\n border-radius: 4px;\n background: var(--fsbtn-bg-color);\n fill: var(--fsbtn-icon-color);\n}\n\n/* right-to-left */\n.flickity-rtl .flickity-fullscreen-button {\n inset-inline: 10px auto;\n}\n\n.flickity-fullscreen-button-exit {\n display: none;\n}\n\n.flickity-enabled.is-fullscreen .flickity-fullscreen-button-exit {\n display: block;\n}\n\n.flickity-enabled.is-fullscreen .flickity-fullscreen-button-view {\n display: none;\n}\n\n.flickity-fullscreen-button .flickity-button-icon {\n position: absolute;\n inline-size: 16px;\n block-size: 16px;\n inset-inline-start: 4px;\n inset-block-start: 4px;\n}\n\n// fade\n\n/* flickity-fade */\n\n.flickity-enabled.is-fade .flickity-slider > * {\n pointer-events: none;\n z-index: 0;\n}\n\n.flickity-enabled.is-fade .flickity-slider ::slotted(.is-selected) {\n pointer-events: auto;\n z-index: 1;\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Prop,\n h,\n Host,\n Watch,\n Method,\n State,\n Build,\n} from '@stencil/core';\nimport { flickity } from './lib/js';\nimport type {\n FlickityOptions,\n FlickityEvents,\n Flickity,\n DragEvent,\n SlideAnimation,\n FlickityCell,\n} from '../../interface';\n\nconst modulo = (num, div) => {\n return ((num % div) + div) % div;\n};\n\n/**\n * The Slides component is a multi-section container. Each section can be swiped or dragged between.\n * It contains any number of Slide components.\n *\n * Uses [Flickity](https://flickity.metafizzy.co/) under the hood.\n *\n * @part base - Wrapper around slides and additional ui elements.\n * @part slide-container - Wraps all slide elements.\n * @part slide-viewport - The visible, scrollable area around slide elements.\n * @part navigation-button - Next / previous navigation buttons.\n * @part navigation-button--next - the next navigation button.\n * @part navigation-button--previous - The previous navigation button.\n * @part navigation-icon - The chevron / arrow icon within a navigation button.\n * @part pagination - Wraps pagination indicators.\n * @part pagination-item - A pagination indicator.\n * @part pagination-item--active - The current, active pagination indicator.\n *\n * @slot - default slot of nano-slide components.\n * @slot ui - An absolutely positioned element that will be placed over the slider. Any custom ui can be housed here.\n * @slot next-icon - Optional next icon to use instead of the default.\n * @slot previous-icon - Optional previous icon to use instead of the default.\n */\n@Component({\n tag: 'nano-slides',\n styleUrl: 'slides.scss',\n shadow: true,\n})\nexport class Slides implements ComponentInterface {\n private flickityEl: HTMLElement;\n private flickityReady = false;\n private mutationO?: MutationObserver;\n private resizeO?: ResizeObserver;\n private readyflickity!: (slider: Flickity) => void;\n private flickity: Promise<Flickity> = new Promise((resolve) => {\n this.readyflickity = resolve;\n });\n private syncflickity?: Flickity;\n private childrenEles: NodeList;\n private hasFullScreenModule = false;\n private hasLazyLoadModule = false;\n private hasDotsModule = false;\n private hasFadeModule = false;\n\n @State() iCurrentSlide: number;\n @State() slidesReady: boolean;\n @State() didInit = false;\n\n @Element() host!: HTMLNanoSlidesElement;\n\n /**\n * Options to pass to the flickity instance.\n * See https://flickity.metafizzy.co/options.html for valid options\n */\n @Prop({ mutable: true }) options: FlickityOptions = {};\n\n @Watch('options')\n async optionsChanged() {\n if (this.flickityReady) {\n const flickity = await this.getflickity();\n const newOpts = Object.assign(flickity.options, this.options);\n\n await this.loadFlickityModules(newOpts);\n await this.update();\n }\n }\n\n /** If `true`, show the next / prev buttons. */\n @Prop() navbtns = false;\n\n @Watch('navbtns')\n async navbtnsChanged() {\n Array.from(\n this._getRoot().querySelectorAll('.flickity-prev-next-button')\n ).forEach((btn) => {\n (btn as HTMLElement).hidden = !this.navbtns;\n });\n }\n\n /** If `true`, show the pagination. */\n @Prop() pager = false;\n\n @Watch('pager')\n async pagerChanged() {\n const dots = this._getRoot().querySelector(\n '.flickity-page-dots'\n ) as HTMLElement;\n if (dots) dots.hidden = !this.pager;\n }\n\n /** If `true`, show a fullscreen button. */\n @Prop() fullscreenbtn = false;\n\n @Watch('fullscreenbtn')\n async fullscreenBtnChanged() {\n const btn = this._getRoot().querySelector(\n '.flickity-fullscreen-button'\n ) as HTMLElement;\n if (btn) btn.hidden = !this.fullscreenbtn;\n }\n\n /** If `true`, make the slider fullscreen. */\n @Prop({ reflect: true, mutable: true }) fullscreen = false;\n\n @Watch('fullscreen')\n async fullscreenChanged(_?, oldFs?: boolean) {\n const flickity = await this.getflickity();\n if (this.fullscreen) flickity.viewFullscreen();\n else if (typeof oldFs !== 'undefined') flickity.exitFullscreen();\n }\n\n /** Animation presets or your own custom animation function; called every frame during scroll */\n @Prop({ reflect: true }) animation: SlideAnimation = 'scroll';\n\n @Watch('animation')\n async animationChange(_?, oldAnim?: SlideAnimation) {\n const [flkty, slides] = await Promise.all([\n this.getflickity(),\n waitForSlides(this.host),\n ]);\n\n // clear old stuff\n slides.forEach((slide) => {\n slide.style['left'] = undefined;\n });\n\n if (oldAnim === 'parallax') {\n flkty.off('scroll', this.parallax);\n slides.forEach((_, i) => {\n if (this.childrenEles && this.childrenEles[i])\n (this.childrenEles[i] as HTMLElement).style['transform'] = undefined;\n });\n this.update();\n }\n // was a custom animation\n if (typeof oldAnim === 'function') {\n flkty.off('scroll', oldAnim);\n }\n\n // is a custom animation\n if (typeof this.animation === 'function') {\n this.options = { fade: false, percentPosition: true };\n flkty.on('scroll', this.animation);\n return;\n }\n\n // setup new stuff\n switch (this.animation) {\n case 'fade':\n this.options = { fade: true, percentPosition: true };\n break;\n case 'parallax':\n this.options = { fade: false, percentPosition: true };\n flkty.on('scroll', this.parallax);\n break;\n default:\n this.options = { fade: false, percentPosition: true };\n break;\n }\n }\n\n /** Zero-based index of the selected cell. */\n @Prop({ reflect: true, mutable: true }) currentSlide: number = 0;\n\n @Watch('currentSlide')\n currentSlideChange() {\n if (this.currentSlide !== this.iCurrentSlide)\n this.slideTo(this.currentSlide);\n }\n\n @Watch('iCurrentSlide')\n internalSlideChange() {\n this.currentSlide = this.iCurrentSlide;\n }\n\n /** time duration, in ms, to automatically advance slides */\n @Prop() autoplay: string | false | number = false;\n\n @Watch('autoplay')\n async autoPlayChange() {\n await this.stopAutoplay();\n if (this.autoplay) {\n if (typeof this.autoplay === 'string')\n this.autoplay = parseInt(this.autoplay);\n if (this.autoplay > 0) this.startAutoplay(this.autoplay as number);\n }\n }\n\n /** @internal */\n @Prop({ reflect: true, mutable: true }) ready = false;\n\n /** Emitted after component initialisation. */\n @Event() nanoSlidesDidLoad!: EventEmitter<void>;\n\n /** Emitted after flickity initialisation. */\n @Event() nanoSlidesReady!: EventEmitter<void>;\n\n /** Emitted when a slide is selected, even on the same slide. */\n @Event() nanoSlidesSelect!: EventEmitter<number>;\n\n /** Emitted when the selected slide is changed. */\n @Event() nanoSlidesChange!: EventEmitter<number>;\n\n /** Emitted when the slider moves. */\n @Event() nanoSlidesScroll!: EventEmitter<number>;\n\n /** Emitted when the slide transition has finished. */\n @Event() nanoSlidesTransitionEnd!: EventEmitter<number>;\n\n /** Emitted when the slider starts actively being moved. */\n @Event() nanoSlidesDragStart!: EventEmitter<DragEvent>;\n\n /** Emitted when the slider is being dragged. */\n @Event() nanoSlidesDragMove!: EventEmitter<DragEvent>;\n\n /** Emitted when the slider has finished being dragged. */\n @Event() nanoSlidesDragEnd!: EventEmitter<DragEvent>;\n\n /** Emitted when the user taps/clicks on the slide's container. */\n @Event() nanoSlidesTap!: EventEmitter<DragEvent>;\n\n /** Emitted when the user taps/clicks on the slide's container. */\n @Event() nanoSlidesFullscreenChange!: EventEmitter<boolean>;\n\n /**\n * Update the underlying flickity implementation. Call this if you've added or removed\n * child slides.\n */\n @Method()\n async update() {\n const [flickity] = await Promise.all([\n this.getflickity(),\n waitForSlides(this.host),\n ]);\n this.childrenEles = this.host.querySelectorAll('nano-slide > *');\n flickity.reloadCells();\n flickity.resize();\n flickity.reposition();\n }\n\n /**\n * Force flickity to update its height (when adaptiveHeight is enabled) for the duration\n * equal to 'speed' parameter.\n *\n * @param speed The transition duration (in ms).\n */\n @Method()\n async updateAutoHeight(speed?: number) {\n const vp = document.querySelector('.flickity-viewport') as HTMLElement;\n if (vp) vp.style.transition = speed + 'ms';\n }\n\n /**\n * Transition to the specified slide.\n *\n * @param index The index of the slide to transition to.\n * @param instant Immediately view the selected slide without animation.\n */\n @Method()\n async slideTo(index: number, instant?: boolean) {\n const flickity = await this.getflickity();\n flickity.select(index, instant);\n }\n\n /**\n * Transition to the next slide.\n *\n * @param instant The transition duration (in ms).\n * @param wrap If true, the first slide will be selected if at the last slide.\n */\n @Method()\n async slideNext(instant?: boolean, wrap?: boolean) {\n const flickity = await this.getflickity();\n flickity.next(wrap, instant);\n }\n\n /**\n * Transition to the previous slide.\n *\n * @param instant The transition duration (in ms).\n * @param wrap If true, the last slide will be selected if at the first slide.\n */\n @Method()\n async slidePrev(instant?: boolean, wrap?: boolean) {\n const flickity = await this.getflickity();\n flickity.previous(instant, wrap);\n }\n\n /** Get the index of the active slide. */\n @Method()\n async getActiveIndex() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex;\n }\n\n /** Get the total number of slides. */\n @Method()\n async length() {\n const flickity = await this.getflickity();\n return flickity.slides.length;\n }\n\n /** Get whether or not the current slide is the last slide. */\n @Method()\n async isEnd() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex === flickity.slides.length - 1;\n }\n\n /** Get whether or not the current slide is the first slide. */\n @Method()\n async isBeginning() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex === 0;\n }\n\n /**\n * Start auto play.\n * @param time - optional time duration to show slides\n */\n @Method()\n async startAutoplay(time?: number) {\n const flickity = await this.getflickity();\n if (time) this.options = { autoPlay: time };\n setTimeout(() => flickity.playPlayer());\n }\n\n /** Stop auto play. */\n @Method()\n async stopAutoplay() {\n const flickity = await this.getflickity();\n flickity.stopPlayer();\n }\n\n /**\n * Lock or unlock the ability to slide to the next slide.\n *\n * @param lock If `true`, disable swiping\n */\n @Method()\n async lockSwipes(lock: boolean) {\n const flickity = await this.getflickity();\n flickity.options.draggable = !lock;\n flickity.updateDraggable();\n }\n\n /**\n * Get the flickity instance.\n * Use this to access the full flickity API.\n * See https://flickity.metafizzy.co/ for all API options.\n */\n @Method()\n async getflickity() {\n return this.flickity;\n }\n\n /**\n * Hard destroy / create.\n * Certain flickity options, you will require the instance to be re-initialised\n */\n @Method()\n async reload() {\n this.destroyflickity();\n setTimeout(() => this.initflickity(), 20);\n }\n\n private _getRoot() {\n return this.host.shadowRoot ? this.host.shadowRoot : this.host;\n }\n\n private parallax = async () => {\n const flkty = await this.flickity;\n const cells = flkty.cells as unknown as FlickityCell[];\n\n cells.forEach((cell) => {\n const ele = cell.element.children[0] as HTMLElement;\n\n let flkX = flkty.x;\n if (flkty.options.wrapAround && flkty.cells.length > 1) {\n flkX = modulo(flkX, flkty.slideableWidth);\n flkX = flkX - flkty.slideableWidth;\n }\n\n let x = ((cell.target + flkX) * -1) / 3;\n if (cell.shift < 0) {\n x = ((cell.target - flkty.slideableWidth + flkX) * -1) / 3;\n } else if (cell.shift > 0) {\n x = ((cell.target + (flkX + flkty.slideableWidth)) * -1) / 3;\n }\n ele.style.transform = 'translate3d(' + x + 'px, 0, 0)';\n\n const animAmount = ((x * 3) / cell.size.width) * 100;\n cell.element.style.setProperty(\n '--animation-amount',\n animAmount.toString()\n );\n });\n };\n\n private handleFullscreen = (isFullScreen: boolean) => {\n this.fullscreen = isFullScreen;\n this.nanoSlidesFullscreenChange.emit(isFullScreen);\n };\n\n private handleSlideSelect = (slide: number) => {\n this.iCurrentSlide = slide;\n this.nanoSlidesSelect.emit(slide);\n };\n\n private destroyflickity() {\n /**\n * We need to synchronously destroy\n * flickity otherwise it is possible\n * that it will be left in a\n * destroyed state if connectedCallback\n * is called multiple times\n */\n const flickity = this.syncflickity;\n\n if (flickity !== undefined) {\n flickity.destroy();\n this.flickity = new Promise((resolve) => {\n this.readyflickity = resolve;\n });\n this.flickityReady = false;\n this.syncflickity = undefined;\n this.ready = false;\n }\n this.didInit = false;\n }\n\n private async loadFlickityModules(opts: FlickityOptions) {\n if (!this.hasFullScreenModule && opts.fullscreen) {\n await import('./lib/js/fullscreen');\n this.hasFullScreenModule = true;\n }\n if (!this.hasLazyLoadModule && opts.lazyLoad) {\n await import('./lib/js/lazyload');\n this.hasLazyLoadModule = true;\n }\n if (!this.hasDotsModule && opts.pageDots) {\n await import('./lib/js/page-dots');\n this.hasDotsModule = true;\n }\n if (!this.hasFadeModule && opts.fade) {\n await import('./lib/js/fade');\n this.hasFadeModule = true;\n }\n }\n\n private async initflickity() {\n const finalOptions = this.normalizeOptions();\n await this.loadFlickityModules(finalOptions);\n\n // init flickity core\n await waitForSlides(this.host);\n\n this.flickityEl =\n this.flickityEl || this._getRoot().querySelector('.flickity-container');\n\n if (!this.flickityEl) return;\n\n this.slidesReady = true;\n\n if (this.flickityEl.classList.contains('flickity-enabled')) {\n this.destroyflickity();\n }\n\n this.flickityEl.style.height =\n this.flickityEl.getBoundingClientRect().height + 'px';\n\n setTimeout(() => {\n this.flickityEl.style.height = '';\n const flick = new flickity(this.flickityEl, finalOptions) as Flickity;\n this.flickityReady = true;\n this.syncflickity = flick;\n\n this.animationChange();\n this.navbtnsChanged();\n this.pagerChanged();\n this.fullscreenChanged();\n this.fullscreenBtnChanged();\n\n this.readyflickity(flick);\n this.ready = true;\n\n if (!window['ResizeObserver']) return;\n\n // just boots and braces to make sure it's the correct size oninit\n const ro = (this.resizeO = new ResizeObserver(() => {\n flick.resize();\n // this.resizeO.disconnect();\n }));\n ro.observe(this.host);\n }, 100);\n }\n\n private normalizeOptions(): FlickityOptions {\n // Base options, can be changed\n const flickityOptions: FlickityOptions = {\n cellSelector: 'nano-slide',\n contain: true,\n prevNextButtons: true,\n fullscreen: this.fullscreen,\n accessibility: true,\n imagesLoaded: true,\n pageDots: this.pager,\n };\n\n if (this.animation === 'fade') {\n flickityOptions.fade = true;\n }\n if (this.currentSlide > 0) {\n flickityOptions.initialIndex = this.currentSlide;\n }\n if (this.autoplay) {\n if (typeof this.autoplay === 'string')\n this.autoplay = parseInt(this.autoplay);\n if (this.autoplay > 0) flickityOptions.autoPlay = this.autoplay as number;\n }\n\n // Keep the event options separate, we dont want users\n // overwriting these\n const eventOptions: FlickityEvents = {\n ready: () => {\n setTimeout(() => {\n this.nanoSlidesReady.emit();\n }, 20);\n },\n select: this.handleSlideSelect,\n change: this.nanoSlidesChange.emit,\n scroll: this.nanoSlidesScroll.emit,\n settle: this.nanoSlidesTransitionEnd.emit,\n dragStart: this.nanoSlidesDragStart.emit,\n dragMove: this.nanoSlidesDragMove.emit,\n dragEnd: this.nanoSlidesDragEnd.emit,\n staticClick: this.nanoSlidesTap.emit,\n fullscreenChange: this.handleFullscreen,\n };\n\n const customEvents =\n !!this.options && !!this.options.on ? this.options.on : {};\n // merge \"on\" event listeners, while giving our event listeners priority\n const mergedEventOptions = { on: { ...customEvents, ...eventOptions } };\n // Merge the base, user options, and events together then pass to flickity\n // @ts-ignore\n return { ...flickityOptions, ...mergedEventOptions, ...this.options };\n }\n\n componentDidLoad() {\n if (\n Build.isBrowser &&\n typeof window !== 'undefined' &&\n (window as any).MutationObserver\n ) {\n const mut = (this.mutationO = new MutationObserver(\n (e: MutationRecord[]) => {\n if (\n e[0].addedNodes[0] &&\n e[0].addedNodes[0].nodeName.toLowerCase() === 'nano-slide' &&\n this.flickityReady\n ) {\n this.update();\n }\n }\n ));\n\n mut.observe(this.host, {\n childList: true,\n subtree: true,\n });\n }\n }\n\n componentWillLoad() {\n this.nanoSlidesDidLoad.emit();\n\n if (!this.didInit) {\n this.didInit = true;\n this.initflickity();\n }\n }\n\n disconnectedCallback() {\n if (this.mutationO) {\n this.mutationO.disconnect();\n this.mutationO = undefined;\n }\n if (this.resizeO) this.resizeO.disconnect();\n this.destroyflickity();\n }\n\n render() {\n return (\n <Host>\n <div\n class={{\n slideshow: true,\n ready: this.ready,\n 'not-ready': !this.ready,\n }}\n part=\"base\"\n >\n <div\n ref={(div) => (this.flickityEl = div)}\n class={{\n 'flickity-container': true,\n 'slides-ready': this.slidesReady,\n 'slides-not-ready': !this.slidesReady,\n }}\n part=\"slide-container\"\n >\n <slot />\n </div>\n <div class=\"ui-extras\">\n <slot name=\"ui\" />\n </div>\n </div>\n </Host>\n );\n }\n}\n\nconst waitForSlides = (host: HTMLElement): Promise<HTMLNanoSlideElement[]> => {\n const allSlides = Array.from(host.querySelectorAll('nano-slide'));\n let toLoadSlides = allSlides.filter(\n (ele: HTMLNanoSlideElement) => !ele.ready\n );\n\n if (!toLoadSlides.length) return Promise.resolve(allSlides);\n\n return new Promise((resolve) => {\n const slideResolver = (ev: CustomEvent) => {\n toLoadSlides = toLoadSlides.filter((ele) => ele !== ev.target);\n if (!toLoadSlides.length) {\n resolve(allSlides);\n host.removeEventListener('nanoSlideReady', slideResolver);\n host.removeEventListener('nano-slide-ready', slideResolver);\n }\n };\n host.addEventListener('nanoSlideReady', slideResolver);\n // fallback for vue who can't handle camelcase event names\n host.addEventListener('nano-slide-ready', slideResolver);\n });\n};\n"],"version":3}