@nanoporetech-digital/components 7.6.0 → 7.7.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 (680) hide show
  1. package/dist/cjs/{algolia-data-0447757c.js → algolia-data-ca9cd58e.js} +2 -2
  2. package/dist/cjs/{algolia-data-0447757c.js.map → algolia-data-ca9cd58e.js.map} +1 -1
  3. package/dist/cjs/app-globals-3e14cb71.js +41 -0
  4. package/dist/cjs/app-globals-3e14cb71.js.map +1 -0
  5. package/dist/cjs/{component-store-6a330cd1.js → component-store-b8d4bd91.js} +2 -2
  6. package/dist/cjs/{component-store-6a330cd1.js.map → component-store-b8d4bd91.js.map} +1 -1
  7. package/dist/cjs/{dom-756fcdac.js → dom-b99a1aec.js} +2 -2
  8. package/dist/cjs/{dom-756fcdac.js.map → dom-b99a1aec.js.map} +1 -1
  9. package/dist/cjs/{fade-2dd9dd8b.js → fade-6a5004f4.js} +4 -3
  10. package/dist/cjs/fade-6a5004f4.js.map +1 -0
  11. package/dist/cjs/form-control-5bb39cc2.js +82 -0
  12. package/dist/cjs/form-control-5bb39cc2.js.map +1 -0
  13. package/dist/cjs/{fullscreen-5d0422de.js → fullscreen-f5db9bbe.js} +4 -3
  14. package/dist/cjs/fullscreen-f5db9bbe.js.map +1 -0
  15. package/dist/cjs/{index-b6fa04fa.js → index-615cdb64.js} +4 -2
  16. package/dist/cjs/index-615cdb64.js.map +1 -0
  17. package/dist/cjs/{index-7795a8f6.js → index-a92a0379.js} +2 -2
  18. package/dist/cjs/{index-7795a8f6.js.map → index-a92a0379.js.map} +1 -1
  19. package/dist/cjs/index.cjs.js +19 -5
  20. package/dist/cjs/index.cjs.js.map +1 -1
  21. package/dist/cjs/{lazyload-f181cb37.js → lazyload-13d72e60.js} +4 -3
  22. package/dist/cjs/lazyload-13d72e60.js.map +1 -0
  23. package/dist/cjs/loader.cjs.js +2 -2
  24. package/dist/cjs/nano-accordion.cjs.entry.js +8 -6
  25. package/dist/cjs/nano-accordion.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nano-alert.cjs.entry.js +12 -11
  27. package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
  28. package/dist/cjs/nano-algolia-filter.cjs.entry.js +7 -5
  29. package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
  30. package/dist/cjs/nano-algolia-pagination.cjs.entry.js +4 -4
  31. package/dist/cjs/nano-algolia-results.cjs.entry.js +6 -4
  32. package/dist/cjs/nano-algolia-results.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nano-algolia.cjs.entry.js +14 -11
  34. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nano-animation.cjs.entry.js +3 -2
  36. package/dist/cjs/nano-animation.cjs.entry.js.map +1 -1
  37. package/dist/cjs/nano-checkbox-group.cjs.entry.js +6 -4
  38. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  39. package/dist/cjs/nano-checkbox.cjs.entry.js +6 -5
  40. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  41. package/dist/cjs/nano-components.cjs.js +6 -3
  42. package/dist/cjs/nano-components.cjs.js.map +1 -1
  43. package/dist/cjs/nano-datalist_3.cjs.entry.js +30 -28
  44. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
  45. package/dist/cjs/nano-date-input.cjs.entry.js +7 -6
  46. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  47. package/dist/cjs/nano-date-picker.cjs.entry.js +16 -15
  48. package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -1
  49. package/dist/cjs/nano-details.cjs.entry.js +7 -6
  50. package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
  51. package/dist/cjs/nano-dialog.cjs.entry.js +7 -6
  52. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  53. package/dist/cjs/nano-drawer.cjs.entry.js +9 -8
  54. package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
  55. package/dist/cjs/nano-dropdown.cjs.entry.js +9 -7
  56. package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
  57. package/dist/cjs/nano-field-validator.cjs.entry.js +17 -15
  58. package/dist/cjs/nano-field-validator.cjs.entry.js.map +1 -1
  59. package/dist/cjs/nano-file-upload.cjs.entry.js +12 -11
  60. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  61. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +30 -27
  62. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
  63. package/dist/cjs/nano-global-nav.cjs.entry.js +68 -66
  64. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  65. package/dist/cjs/nano-global-search-results.cjs.entry.js +10 -6
  66. package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
  67. package/dist/cjs/nano-grid-item.cjs.entry.js +2 -2
  68. package/dist/cjs/nano-grid_2.cjs.entry.js +6 -5
  69. package/dist/cjs/nano-grid_2.cjs.entry.js.map +1 -1
  70. package/dist/cjs/nano-hero.cjs.entry.js +11 -10
  71. package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
  72. package/dist/cjs/nano-icon-button_2.cjs.entry.js +6 -5
  73. package/dist/cjs/nano-icon-button_2.cjs.entry.js.map +1 -1
  74. package/dist/cjs/nano-icon.cjs.entry.js +5 -3
  75. package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
  76. package/dist/cjs/nano-input.cjs.entry.js +9 -7
  77. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  78. package/dist/cjs/nano-intersection-observe.cjs.entry.js +3 -2
  79. package/dist/cjs/nano-intersection-observe.cjs.entry.js.map +1 -1
  80. package/dist/cjs/nano-menu-drawer.cjs.entry.js +10 -8
  81. package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
  82. package/dist/cjs/nano-more-less.cjs.entry.js +5 -4
  83. package/dist/cjs/nano-more-less.cjs.entry.js.map +1 -1
  84. package/dist/cjs/nano-overflow-nav.cjs.entry.js +7 -6
  85. package/dist/cjs/nano-overflow-nav.cjs.entry.js.map +1 -1
  86. package/dist/cjs/nano-progress-bar.cjs.entry.js +7 -4
  87. package/dist/cjs/nano-progress-bar.cjs.entry.js.map +1 -1
  88. package/dist/cjs/nano-range.cjs.entry.js +9 -7
  89. package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
  90. package/dist/cjs/nano-rating.cjs.entry.js +10 -9
  91. package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
  92. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +7 -6
  93. package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
  94. package/dist/cjs/nano-slide.cjs.entry.js +3 -2
  95. package/dist/cjs/nano-slide.cjs.entry.js.map +1 -1
  96. package/dist/cjs/{nano-slides-612634dc.js → nano-slides-0a60315d.js} +15 -13
  97. package/dist/cjs/nano-slides-0a60315d.js.map +1 -0
  98. package/dist/cjs/nano-slides.cjs.entry.js +3 -2
  99. package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
  100. package/dist/cjs/nano-sortable.cjs.entry.js +3 -2
  101. package/dist/cjs/nano-sortable.cjs.entry.js.map +1 -1
  102. package/dist/cjs/nano-spinner.cjs.entry.js +3 -2
  103. package/dist/cjs/nano-spinner.cjs.entry.js.map +1 -1
  104. package/dist/cjs/nano-split-pane.cjs.entry.js +3 -2
  105. package/dist/cjs/nano-split-pane.cjs.entry.js.map +1 -1
  106. package/dist/cjs/nano-sticker.cjs.entry.js +6 -5
  107. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  108. package/dist/cjs/nano-tab-content.cjs.entry.js +5 -3
  109. package/dist/cjs/nano-tab-content.cjs.entry.js.map +1 -1
  110. package/dist/cjs/nano-tab-group.cjs.entry.js +16 -14
  111. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  112. package/dist/cjs/nano-tab.cjs.entry.js +4 -3
  113. package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
  114. package/dist/cjs/{nano-table-99d6a3cc.js → nano-table-806fa39d.js} +42 -40
  115. package/dist/cjs/nano-table-806fa39d.js.map +1 -0
  116. package/dist/cjs/nano-table.cjs.entry.js +4 -3
  117. package/dist/cjs/nano-table.cjs.entry.js.map +1 -1
  118. package/dist/cjs/{page-dots-99dd88f6.js → page-dots-ecdd64d1.js} +4 -3
  119. package/dist/cjs/page-dots-ecdd64d1.js.map +1 -0
  120. package/dist/cjs/renderer-cd8b6098.js +63 -0
  121. package/dist/cjs/renderer-cd8b6098.js.map +1 -0
  122. package/dist/cjs/{scroll-772f7d0d.js → scroll-a3e5c6c6.js} +2 -2
  123. package/dist/cjs/{scroll-772f7d0d.js.map → scroll-a3e5c6c6.js.map} +1 -1
  124. package/dist/cjs/{table.worker-263468df.js → table.worker-fb31c8b7.js} +5 -4
  125. package/dist/cjs/table.worker-fb31c8b7.js.map +1 -0
  126. package/dist/collection/components/accordion/accordion.js +7 -5
  127. package/dist/collection/components/accordion/accordion.js.map +1 -1
  128. package/dist/collection/components/alert/alert.helpers.js +3 -2
  129. package/dist/collection/components/alert/alert.helpers.js.map +1 -1
  130. package/dist/collection/components/alert/alert.js +8 -7
  131. package/dist/collection/components/alert/alert.js.map +1 -1
  132. package/dist/collection/components/algolia/algolia-filter.js +5 -3
  133. package/dist/collection/components/algolia/algolia-filter.js.map +1 -1
  134. package/dist/collection/components/algolia/algolia-pagination.js +2 -2
  135. package/dist/collection/components/algolia/algolia-results.js +5 -3
  136. package/dist/collection/components/algolia/algolia-results.js.map +1 -1
  137. package/dist/collection/components/algolia/algolia.js +11 -8
  138. package/dist/collection/components/algolia/algolia.js.map +1 -1
  139. package/dist/collection/components/animation/animation.js +3 -2
  140. package/dist/collection/components/animation/animation.js.map +1 -1
  141. package/dist/collection/components/checkbox/checkbox-group.js +6 -4
  142. package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
  143. package/dist/collection/components/checkbox/checkbox.js +6 -5
  144. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  145. package/dist/collection/components/datalist/datalist.css +1 -1
  146. package/dist/collection/components/datalist/datalist.js +14 -13
  147. package/dist/collection/components/datalist/datalist.js.map +1 -1
  148. package/dist/collection/components/date-input/date-input.css +3 -3
  149. package/dist/collection/components/date-input/date-input.js +6 -5
  150. package/dist/collection/components/date-input/date-input.js.map +1 -1
  151. package/dist/collection/components/date-picker/date-picker.css +3 -3
  152. package/dist/collection/components/date-picker/date-picker.js +5 -4
  153. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  154. package/dist/collection/components/date-picker/duet-date-picker/date-picker-day.js +1 -1
  155. package/dist/collection/components/date-picker/duet-date-picker/date-picker-day.js.map +1 -1
  156. package/dist/collection/components/date-picker/duet-date-picker/date-picker-month.js +1 -1
  157. package/dist/collection/components/date-picker/duet-date-picker/date-picker-month.js.map +1 -1
  158. package/dist/collection/components/details/details.css +1 -1
  159. package/dist/collection/components/details/details.js +6 -5
  160. package/dist/collection/components/details/details.js.map +1 -1
  161. package/dist/collection/components/dialog/dialog.helpers.js +2 -1
  162. package/dist/collection/components/dialog/dialog.helpers.js.map +1 -1
  163. package/dist/collection/components/dialog/dialog.js +4 -3
  164. package/dist/collection/components/dialog/dialog.js.map +1 -1
  165. package/dist/collection/components/drawer/drawer.css +1 -1
  166. package/dist/collection/components/drawer/drawer.js +5 -4
  167. package/dist/collection/components/drawer/drawer.js.map +1 -1
  168. package/dist/collection/components/dropdown/dropdown.css +1 -1
  169. package/dist/collection/components/dropdown/dropdown.js +8 -6
  170. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  171. package/dist/collection/components/field-validator/field-validator.js +16 -14
  172. package/dist/collection/components/field-validator/field-validator.js.map +1 -1
  173. package/dist/collection/components/file-upload/file-upload.css +1 -1
  174. package/dist/collection/components/file-upload/file-upload.js +3 -2
  175. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  176. package/dist/collection/components/form-control/form-control.js +1 -1
  177. package/dist/collection/components/form-control/form-control.js.map +1 -1
  178. package/dist/collection/components/global-nav/global-nav-user-profile.js +3 -2
  179. package/dist/collection/components/global-nav/global-nav-user-profile.js.map +1 -1
  180. package/dist/collection/components/global-nav/global-nav.js +50 -48
  181. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  182. package/dist/collection/components/global-nav/style/global-nav.css +33 -33
  183. package/dist/collection/components/global-search-results/global-search-results.css +11 -11
  184. package/dist/collection/components/global-search-results/global-search-results.js +9 -5
  185. package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
  186. package/dist/collection/components/grid/grid-item.js +1 -1
  187. package/dist/collection/components/grid/grid.js +3 -2
  188. package/dist/collection/components/grid/grid.js.map +1 -1
  189. package/dist/collection/components/hero/hero.css +2 -2
  190. package/dist/collection/components/hero/hero.js +6 -5
  191. package/dist/collection/components/hero/hero.js.map +1 -1
  192. package/dist/collection/components/icon/icon.js +4 -2
  193. package/dist/collection/components/icon/icon.js.map +1 -1
  194. package/dist/collection/components/icon-button/icon-button.js +2 -2
  195. package/dist/collection/components/icon-button/icon-button.js.map +1 -1
  196. package/dist/collection/components/img/img.js +5 -4
  197. package/dist/collection/components/img/img.js.map +1 -1
  198. package/dist/collection/components/input/input.js +7 -5
  199. package/dist/collection/components/input/input.js.map +1 -1
  200. package/dist/collection/components/intersection-observe/intersection-observe.js +3 -2
  201. package/dist/collection/components/intersection-observe/intersection-observe.js.map +1 -1
  202. package/dist/collection/components/menu/menu.css +1 -1
  203. package/dist/collection/components/menu/menu.js +12 -10
  204. package/dist/collection/components/menu/menu.js.map +1 -1
  205. package/dist/collection/components/menu-drawer/menu-drawer.css +3 -3
  206. package/dist/collection/components/menu-drawer/menu-drawer.js +8 -6
  207. package/dist/collection/components/menu-drawer/menu-drawer.js.map +1 -1
  208. package/dist/collection/components/more-less/more-less.js +4 -3
  209. package/dist/collection/components/more-less/more-less.js.map +1 -1
  210. package/dist/collection/components/nav-item/nav-item.css +12 -12
  211. package/dist/collection/components/nav-item/nav-item.js +11 -9
  212. package/dist/collection/components/nav-item/nav-item.js.map +1 -1
  213. package/dist/collection/components/option/option.css +2 -2
  214. package/dist/collection/components/option/option.js +4 -3
  215. package/dist/collection/components/option/option.js.map +1 -1
  216. package/dist/collection/components/overflow-nav/overflow-nav.css +4 -4
  217. package/dist/collection/components/overflow-nav/overflow-nav.js +5 -4
  218. package/dist/collection/components/overflow-nav/overflow-nav.js.map +1 -1
  219. package/dist/collection/components/progress-bar/progress-bar.js +7 -4
  220. package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
  221. package/dist/collection/components/range/range.js +3 -1
  222. package/dist/collection/components/range/range.js.map +1 -1
  223. package/dist/collection/components/rating/rating.css +1 -1
  224. package/dist/collection/components/rating/rating.js +6 -5
  225. package/dist/collection/components/rating/rating.js.map +1 -1
  226. package/dist/collection/components/resize-observe/resize-observe.js +3 -2
  227. package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
  228. package/dist/collection/components/select/select.css +1 -5
  229. package/dist/collection/components/select/select.js +9 -7
  230. package/dist/collection/components/select/select.js.map +1 -1
  231. package/dist/collection/components/skeleton/skeleton.js +4 -3
  232. package/dist/collection/components/skeleton/skeleton.js.map +1 -1
  233. package/dist/collection/components/slides/slide.js +3 -2
  234. package/dist/collection/components/slides/slide.js.map +1 -1
  235. package/dist/collection/components/slides/slides.js +10 -8
  236. package/dist/collection/components/slides/slides.js.map +1 -1
  237. package/dist/collection/components/sortable/sortable.js +3 -2
  238. package/dist/collection/components/sortable/sortable.js.map +1 -1
  239. package/dist/collection/components/spinner/spinner.js +3 -2
  240. package/dist/collection/components/spinner/spinner.js.map +1 -1
  241. package/dist/collection/components/split-pane/split-pane.js +3 -2
  242. package/dist/collection/components/split-pane/split-pane.js.map +1 -1
  243. package/dist/collection/components/sticker/sticker.js +5 -4
  244. package/dist/collection/components/sticker/sticker.js.map +1 -1
  245. package/dist/collection/components/table/table.cell.js +3 -1
  246. package/dist/collection/components/table/table.cell.js.map +1 -1
  247. package/dist/collection/components/table/table.css +2 -2
  248. package/dist/collection/components/table/table.header.js +2 -1
  249. package/dist/collection/components/table/table.header.js.map +1 -1
  250. package/dist/collection/components/table/table.js +9 -8
  251. package/dist/collection/components/table/table.js.map +1 -1
  252. package/dist/collection/components/table/table.row.js +1 -1
  253. package/dist/collection/components/table/table.row.js.map +1 -1
  254. package/dist/collection/components/tabs/tab-content.js +5 -3
  255. package/dist/collection/components/tabs/tab-content.js.map +1 -1
  256. package/dist/collection/components/tabs/tab-group.css +3 -3
  257. package/dist/collection/components/tabs/tab-group.js +12 -10
  258. package/dist/collection/components/tabs/tab-group.js.map +1 -1
  259. package/dist/collection/components/tabs/tab.js +4 -3
  260. package/dist/collection/components/tabs/tab.js.map +1 -1
  261. package/dist/collection/components/tooltip/tooltip.js +4 -3
  262. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  263. package/dist/collection/global/script/global.js +28 -23
  264. package/dist/collection/global/script/global.js.map +1 -1
  265. package/dist/collection/index.js +17 -2
  266. package/dist/collection/index.js.map +1 -1
  267. package/dist/collection/utils/renderer.js +54 -0
  268. package/dist/collection/utils/renderer.js.map +1 -0
  269. package/dist/components/algolia.js +11 -8
  270. package/dist/components/algolia.js.map +1 -1
  271. package/dist/components/datalist.js +19 -30
  272. package/dist/components/datalist.js.map +1 -1
  273. package/dist/components/date-picker.js +6 -5
  274. package/dist/components/date-picker.js.map +1 -1
  275. package/dist/components/dropdown.js +9 -7
  276. package/dist/components/dropdown.js.map +1 -1
  277. package/dist/components/form-control.js +1 -1
  278. package/dist/components/form-control.js.map +1 -1
  279. package/dist/components/global-nav-user-profile.js +3 -2
  280. package/dist/components/global-nav-user-profile.js.map +1 -1
  281. package/dist/components/grid.js +2 -1
  282. package/dist/components/grid.js.map +1 -1
  283. package/dist/components/icon-button.js +2 -2
  284. package/dist/components/icon-button.js.map +1 -1
  285. package/dist/components/icon.js +4 -2
  286. package/dist/components/icon.js.map +1 -1
  287. package/dist/components/img.js +5 -4
  288. package/dist/components/img.js.map +1 -1
  289. package/dist/components/index.js +48 -31
  290. package/dist/components/index.js.map +1 -1
  291. package/dist/components/input.js +7 -5
  292. package/dist/components/input.js.map +1 -1
  293. package/dist/components/menu.js +13 -11
  294. package/dist/components/menu.js.map +1 -1
  295. package/dist/components/nano-accordion.js +7 -5
  296. package/dist/components/nano-accordion.js.map +1 -1
  297. package/dist/components/nano-alert.js +8 -7
  298. package/dist/components/nano-alert.js.map +1 -1
  299. package/dist/components/nano-algolia-filter.js +5 -3
  300. package/dist/components/nano-algolia-filter.js.map +1 -1
  301. package/dist/components/nano-algolia-pagination.js +2 -2
  302. package/dist/components/nano-algolia-results.js +5 -3
  303. package/dist/components/nano-algolia-results.js.map +1 -1
  304. package/dist/components/nano-animation.js +3 -2
  305. package/dist/components/nano-animation.js.map +1 -1
  306. package/dist/components/nano-checkbox-group.js +6 -4
  307. package/dist/components/nano-checkbox-group.js.map +1 -1
  308. package/dist/components/nano-checkbox.js +6 -5
  309. package/dist/components/nano-checkbox.js.map +1 -1
  310. package/dist/components/nano-date-input.js +7 -6
  311. package/dist/components/nano-date-input.js.map +1 -1
  312. package/dist/components/nano-details.js +7 -6
  313. package/dist/components/nano-details.js.map +1 -1
  314. package/dist/components/nano-dialog.js +4 -3
  315. package/dist/components/nano-dialog.js.map +1 -1
  316. package/dist/components/nano-drawer.js +6 -5
  317. package/dist/components/nano-drawer.js.map +1 -1
  318. package/dist/components/nano-field-validator.js +16 -14
  319. package/dist/components/nano-field-validator.js.map +1 -1
  320. package/dist/components/nano-file-upload.js +4 -3
  321. package/dist/components/nano-file-upload.js.map +1 -1
  322. package/dist/components/nano-global-nav.js +51 -49
  323. package/dist/components/nano-global-nav.js.map +1 -1
  324. package/dist/components/nano-global-search-results.js +10 -6
  325. package/dist/components/nano-global-search-results.js.map +1 -1
  326. package/dist/components/nano-grid-item.js +1 -1
  327. package/dist/components/nano-hero.js +7 -6
  328. package/dist/components/nano-hero.js.map +1 -1
  329. package/dist/components/nano-intersection-observe.js +3 -2
  330. package/dist/components/nano-intersection-observe.js.map +1 -1
  331. package/dist/components/nano-menu-drawer.js +9 -7
  332. package/dist/components/nano-menu-drawer.js.map +1 -1
  333. package/dist/components/nano-more-less.js +4 -3
  334. package/dist/components/nano-more-less.js.map +1 -1
  335. package/dist/components/nano-overflow-nav.js +6 -5
  336. package/dist/components/nano-overflow-nav.js.map +1 -1
  337. package/dist/components/nano-range.js +3 -1
  338. package/dist/components/nano-range.js.map +1 -1
  339. package/dist/components/nano-rating.js +7 -6
  340. package/dist/components/nano-rating.js.map +1 -1
  341. package/dist/components/nano-slide.js +3 -2
  342. package/dist/components/nano-slide.js.map +1 -1
  343. package/dist/components/nano-slides.js +10 -8
  344. package/dist/components/nano-slides.js.map +1 -1
  345. package/dist/components/nano-sortable.js +3 -2
  346. package/dist/components/nano-sortable.js.map +1 -1
  347. package/dist/components/nano-split-pane.js +3 -2
  348. package/dist/components/nano-split-pane.js.map +1 -1
  349. package/dist/components/nano-tab-content.js +5 -3
  350. package/dist/components/nano-tab-content.js.map +1 -1
  351. package/dist/components/nano-tab-group.js +13 -11
  352. package/dist/components/nano-tab-group.js.map +1 -1
  353. package/dist/components/nano-tab.js +4 -3
  354. package/dist/components/nano-tab.js.map +1 -1
  355. package/dist/components/nano-table.js +38 -36
  356. package/dist/components/nano-table.js.map +1 -1
  357. package/dist/components/nav-item.js +12 -10
  358. package/dist/components/nav-item.js.map +1 -1
  359. package/dist/components/option.js +5 -4
  360. package/dist/components/option.js.map +1 -1
  361. package/dist/components/progress-bar.js +7 -4
  362. package/dist/components/progress-bar.js.map +1 -1
  363. package/dist/components/renderer.js +58 -0
  364. package/dist/components/renderer.js.map +1 -0
  365. package/dist/components/resize-observe.js +3 -2
  366. package/dist/components/resize-observe.js.map +1 -1
  367. package/dist/components/select.js +10 -8
  368. package/dist/components/select.js.map +1 -1
  369. package/dist/components/skeleton.js +4 -3
  370. package/dist/components/skeleton.js.map +1 -1
  371. package/dist/components/spinner.js +3 -2
  372. package/dist/components/spinner.js.map +1 -1
  373. package/dist/components/sticker.js +5 -4
  374. package/dist/components/sticker.js.map +1 -1
  375. package/dist/components/tooltip.js +4 -3
  376. package/dist/components/tooltip.js.map +1 -1
  377. package/dist/esm/{algolia-data-8fc24341.js → algolia-data-f0f72f1d.js} +2 -2
  378. package/dist/esm/{algolia-data-8fc24341.js.map → algolia-data-f0f72f1d.js.map} +1 -1
  379. package/dist/esm/app-globals-f0120bbe.js +39 -0
  380. package/dist/esm/app-globals-f0120bbe.js.map +1 -0
  381. package/dist/esm/{component-store-b798181b.js → component-store-199a9fd8.js} +2 -2
  382. package/dist/esm/{component-store-b798181b.js.map → component-store-199a9fd8.js.map} +1 -1
  383. package/dist/esm/{dom-d7f9f24c.js → dom-fafdec9a.js} +2 -2
  384. package/dist/esm/{dom-d7f9f24c.js.map → dom-fafdec9a.js.map} +1 -1
  385. package/dist/esm/{fade-4ff5d9de.js → fade-ce1a4958.js} +4 -3
  386. package/dist/esm/fade-ce1a4958.js.map +1 -0
  387. package/dist/esm/{form-control-812999d0.js → form-control-f48fa873.js} +2 -2
  388. package/dist/esm/form-control-f48fa873.js.map +1 -0
  389. package/dist/esm/{fullscreen-382d7890.js → fullscreen-52d62028.js} +4 -3
  390. package/dist/esm/fullscreen-52d62028.js.map +1 -0
  391. package/dist/esm/{index-3118109b.js → index-6cc72cd9.js} +3 -3
  392. package/dist/esm/index-6cc72cd9.js.map +1 -0
  393. package/dist/esm/{index-d7a4a150.js → index-f5f7b950.js} +2 -2
  394. package/dist/esm/{index-d7a4a150.js.map → index-f5f7b950.js.map} +1 -1
  395. package/dist/esm/index.js +19 -5
  396. package/dist/esm/index.js.map +1 -1
  397. package/dist/esm/{lazyload-49b745e4.js → lazyload-8ff69ba4.js} +4 -3
  398. package/dist/esm/lazyload-8ff69ba4.js.map +1 -0
  399. package/dist/esm/loader.js +3 -3
  400. package/dist/esm/nano-accordion.entry.js +8 -6
  401. package/dist/esm/nano-accordion.entry.js.map +1 -1
  402. package/dist/esm/nano-alert.entry.js +10 -9
  403. package/dist/esm/nano-alert.entry.js.map +1 -1
  404. package/dist/esm/nano-algolia-filter.entry.js +7 -5
  405. package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
  406. package/dist/esm/nano-algolia-pagination.entry.js +4 -4
  407. package/dist/esm/nano-algolia-results.entry.js +6 -4
  408. package/dist/esm/nano-algolia-results.entry.js.map +1 -1
  409. package/dist/esm/nano-algolia.entry.js +14 -11
  410. package/dist/esm/nano-algolia.entry.js.map +1 -1
  411. package/dist/esm/nano-animation.entry.js +3 -2
  412. package/dist/esm/nano-animation.entry.js.map +1 -1
  413. package/dist/esm/nano-checkbox-group.entry.js +6 -4
  414. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  415. package/dist/esm/nano-checkbox.entry.js +6 -5
  416. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  417. package/dist/esm/nano-components.js +7 -4
  418. package/dist/esm/nano-components.js.map +1 -1
  419. package/dist/esm/nano-datalist_3.entry.js +30 -28
  420. package/dist/esm/nano-datalist_3.entry.js.map +1 -1
  421. package/dist/esm/nano-date-input.entry.js +7 -6
  422. package/dist/esm/nano-date-input.entry.js.map +1 -1
  423. package/dist/esm/nano-date-picker.entry.js +6 -5
  424. package/dist/esm/nano-date-picker.entry.js.map +1 -1
  425. package/dist/esm/nano-details.entry.js +7 -6
  426. package/dist/esm/nano-details.entry.js.map +1 -1
  427. package/dist/esm/nano-dialog.entry.js +7 -6
  428. package/dist/esm/nano-dialog.entry.js.map +1 -1
  429. package/dist/esm/nano-drawer.entry.js +9 -8
  430. package/dist/esm/nano-drawer.entry.js.map +1 -1
  431. package/dist/esm/nano-dropdown.entry.js +9 -7
  432. package/dist/esm/nano-dropdown.entry.js.map +1 -1
  433. package/dist/esm/nano-field-validator.entry.js +17 -15
  434. package/dist/esm/nano-field-validator.entry.js.map +1 -1
  435. package/dist/esm/nano-file-upload.entry.js +4 -3
  436. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  437. package/dist/esm/nano-global-nav-user-profile_3.entry.js +23 -20
  438. package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
  439. package/dist/esm/nano-global-nav.entry.js +52 -50
  440. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  441. package/dist/esm/nano-global-search-results.entry.js +10 -6
  442. package/dist/esm/nano-global-search-results.entry.js.map +1 -1
  443. package/dist/esm/nano-grid-item.entry.js +2 -2
  444. package/dist/esm/nano-grid_2.entry.js +6 -5
  445. package/dist/esm/nano-grid_2.entry.js.map +1 -1
  446. package/dist/esm/nano-hero.entry.js +7 -6
  447. package/dist/esm/nano-hero.entry.js.map +1 -1
  448. package/dist/esm/nano-icon-button_2.entry.js +6 -5
  449. package/dist/esm/nano-icon-button_2.entry.js.map +1 -1
  450. package/dist/esm/nano-icon.entry.js +4 -2
  451. package/dist/esm/nano-icon.entry.js.map +1 -1
  452. package/dist/esm/nano-input.entry.js +9 -7
  453. package/dist/esm/nano-input.entry.js.map +1 -1
  454. package/dist/esm/nano-intersection-observe.entry.js +3 -2
  455. package/dist/esm/nano-intersection-observe.entry.js.map +1 -1
  456. package/dist/esm/nano-menu-drawer.entry.js +10 -8
  457. package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
  458. package/dist/esm/nano-more-less.entry.js +4 -3
  459. package/dist/esm/nano-more-less.entry.js.map +1 -1
  460. package/dist/esm/nano-overflow-nav.entry.js +7 -6
  461. package/dist/esm/nano-overflow-nav.entry.js.map +1 -1
  462. package/dist/esm/nano-progress-bar.entry.js +7 -4
  463. package/dist/esm/nano-progress-bar.entry.js.map +1 -1
  464. package/dist/esm/nano-range.entry.js +3 -1
  465. package/dist/esm/nano-range.entry.js.map +1 -1
  466. package/dist/esm/nano-rating.entry.js +7 -6
  467. package/dist/esm/nano-rating.entry.js.map +1 -1
  468. package/dist/esm/nano-resize-observe_2.entry.js +5 -4
  469. package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
  470. package/dist/esm/nano-slide.entry.js +3 -2
  471. package/dist/esm/nano-slide.entry.js.map +1 -1
  472. package/dist/esm/{nano-slides-c3eb1afe.js → nano-slides-2715825b.js} +15 -13
  473. package/dist/esm/nano-slides-2715825b.js.map +1 -0
  474. package/dist/esm/nano-slides.entry.js +3 -2
  475. package/dist/esm/nano-slides.entry.js.map +1 -1
  476. package/dist/esm/nano-sortable.entry.js +3 -2
  477. package/dist/esm/nano-sortable.entry.js.map +1 -1
  478. package/dist/esm/nano-spinner.entry.js +3 -2
  479. package/dist/esm/nano-spinner.entry.js.map +1 -1
  480. package/dist/esm/nano-split-pane.entry.js +3 -2
  481. package/dist/esm/nano-split-pane.entry.js.map +1 -1
  482. package/dist/esm/nano-sticker.entry.js +6 -5
  483. package/dist/esm/nano-sticker.entry.js.map +1 -1
  484. package/dist/esm/nano-tab-content.entry.js +5 -3
  485. package/dist/esm/nano-tab-content.entry.js.map +1 -1
  486. package/dist/esm/nano-tab-group.entry.js +16 -14
  487. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  488. package/dist/esm/nano-tab.entry.js +4 -3
  489. package/dist/esm/nano-tab.entry.js.map +1 -1
  490. package/dist/esm/{nano-table-d15f6782.js → nano-table-67d7190b.js} +42 -40
  491. package/dist/esm/nano-table-67d7190b.js.map +1 -0
  492. package/dist/esm/nano-table.entry.js +4 -3
  493. package/dist/esm/nano-table.entry.js.map +1 -1
  494. package/dist/esm/{page-dots-986d3b32.js → page-dots-5b23db8c.js} +4 -3
  495. package/dist/esm/page-dots-5b23db8c.js.map +1 -0
  496. package/dist/esm/renderer-4bc3e2dc.js +58 -0
  497. package/dist/esm/renderer-4bc3e2dc.js.map +1 -0
  498. package/dist/esm/{scroll-f373a189.js → scroll-1afc6a4e.js} +2 -2
  499. package/dist/esm/{scroll-f373a189.js.map → scroll-1afc6a4e.js.map} +1 -1
  500. package/dist/esm/{table.worker-b7ee4edc.js → table.worker-d636a71f.js} +5 -4
  501. package/dist/esm/table.worker-d636a71f.js.map +1 -0
  502. package/dist/nano-components/{algolia-data-8fc24341.js → algolia-data-f0f72f1d.js} +2 -2
  503. package/dist/nano-components/app-globals-f0120bbe.js +5 -0
  504. package/dist/nano-components/app-globals-f0120bbe.js.map +1 -0
  505. package/dist/nano-components/{component-store-b798181b.js → component-store-199a9fd8.js} +2 -2
  506. package/dist/nano-components/{dom-d7f9f24c.js → dom-fafdec9a.js} +2 -2
  507. package/dist/nano-components/fade-ce1a4958.js +5 -0
  508. package/dist/nano-components/{fade-4ff5d9de.js.map → fade-ce1a4958.js.map} +1 -1
  509. package/dist/nano-components/form-control-f48fa873.js +5 -0
  510. package/dist/nano-components/form-control-f48fa873.js.map +1 -0
  511. package/dist/nano-components/fullscreen-52d62028.js +5 -0
  512. package/dist/nano-components/{fullscreen-382d7890.js.map → fullscreen-52d62028.js.map} +1 -1
  513. package/dist/nano-components/{index-3118109b.js → index-6cc72cd9.js} +3 -3
  514. package/dist/nano-components/index-6cc72cd9.js.map +1 -0
  515. package/dist/nano-components/{index-d7a4a150.js → index-f5f7b950.js} +2 -2
  516. package/dist/nano-components/index.esm.js +1 -1
  517. package/dist/nano-components/index.esm.js.map +1 -1
  518. package/dist/nano-components/lazyload-8ff69ba4.js +5 -0
  519. package/dist/nano-components/{lazyload-49b745e4.js.map → lazyload-8ff69ba4.js.map} +1 -1
  520. package/dist/nano-components/nano-accordion.entry.js +1 -1
  521. package/dist/nano-components/nano-accordion.entry.js.map +1 -1
  522. package/dist/nano-components/nano-alert.entry.js +1 -1
  523. package/dist/nano-components/nano-alert.entry.js.map +1 -1
  524. package/dist/nano-components/nano-algolia-filter.entry.js +1 -1
  525. package/dist/nano-components/nano-algolia-filter.entry.js.map +1 -1
  526. package/dist/nano-components/nano-algolia-pagination.entry.js +1 -1
  527. package/dist/nano-components/nano-algolia-results.entry.js +1 -1
  528. package/dist/nano-components/nano-algolia-results.entry.js.map +1 -1
  529. package/dist/nano-components/nano-algolia.entry.js +1 -1
  530. package/dist/nano-components/nano-algolia.entry.js.map +1 -1
  531. package/dist/nano-components/nano-animation.entry.js +1 -1
  532. package/dist/nano-components/nano-animation.entry.js.map +1 -1
  533. package/dist/nano-components/nano-checkbox-group.entry.js +1 -1
  534. package/dist/nano-components/nano-checkbox-group.entry.js.map +1 -1
  535. package/dist/nano-components/nano-checkbox.entry.js +1 -1
  536. package/dist/nano-components/nano-checkbox.entry.js.map +1 -1
  537. package/dist/nano-components/nano-components.esm.js +1 -1
  538. package/dist/nano-components/nano-components.esm.js.map +1 -1
  539. package/dist/nano-components/nano-datalist_3.entry.js +1 -1
  540. package/dist/nano-components/nano-datalist_3.entry.js.map +1 -1
  541. package/dist/nano-components/nano-date-input.entry.js +1 -1
  542. package/dist/nano-components/nano-date-input.entry.js.map +1 -1
  543. package/dist/nano-components/nano-date-picker.entry.js +1 -1
  544. package/dist/nano-components/nano-date-picker.entry.js.map +1 -1
  545. package/dist/nano-components/nano-details.entry.js +1 -1
  546. package/dist/nano-components/nano-details.entry.js.map +1 -1
  547. package/dist/nano-components/nano-dialog.entry.js +1 -1
  548. package/dist/nano-components/nano-dialog.entry.js.map +1 -1
  549. package/dist/nano-components/nano-drawer.entry.js +1 -1
  550. package/dist/nano-components/nano-drawer.entry.js.map +1 -1
  551. package/dist/nano-components/nano-dropdown.entry.js +1 -1
  552. package/dist/nano-components/nano-dropdown.entry.js.map +1 -1
  553. package/dist/nano-components/nano-field-validator.entry.js +1 -1
  554. package/dist/nano-components/nano-field-validator.entry.js.map +1 -1
  555. package/dist/nano-components/nano-file-upload.entry.js +1 -1
  556. package/dist/nano-components/nano-file-upload.entry.js.map +1 -1
  557. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js +1 -1
  558. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js.map +1 -1
  559. package/dist/nano-components/nano-global-nav.entry.js +1 -1
  560. package/dist/nano-components/nano-global-nav.entry.js.map +1 -1
  561. package/dist/nano-components/nano-global-search-results.entry.js +1 -1
  562. package/dist/nano-components/nano-global-search-results.entry.js.map +1 -1
  563. package/dist/nano-components/nano-grid-item.entry.js +1 -1
  564. package/dist/nano-components/nano-grid-item.entry.js.map +1 -1
  565. package/dist/nano-components/nano-grid_2.entry.js +1 -1
  566. package/dist/nano-components/nano-grid_2.entry.js.map +1 -1
  567. package/dist/nano-components/nano-hero.entry.js +1 -1
  568. package/dist/nano-components/nano-hero.entry.js.map +1 -1
  569. package/dist/nano-components/nano-icon-button_2.entry.js +1 -1
  570. package/dist/nano-components/nano-icon-button_2.entry.js.map +1 -1
  571. package/dist/nano-components/nano-icon.entry.js +1 -1
  572. package/dist/nano-components/nano-icon.entry.js.map +1 -1
  573. package/dist/nano-components/nano-input.entry.js +1 -1
  574. package/dist/nano-components/nano-input.entry.js.map +1 -1
  575. package/dist/nano-components/nano-intersection-observe.entry.js +1 -1
  576. package/dist/nano-components/nano-intersection-observe.entry.js.map +1 -1
  577. package/dist/nano-components/nano-menu-drawer.entry.js +1 -1
  578. package/dist/nano-components/nano-menu-drawer.entry.js.map +1 -1
  579. package/dist/nano-components/nano-more-less.entry.js +1 -1
  580. package/dist/nano-components/nano-more-less.entry.js.map +1 -1
  581. package/dist/nano-components/nano-overflow-nav.entry.js +1 -1
  582. package/dist/nano-components/nano-overflow-nav.entry.js.map +1 -1
  583. package/dist/nano-components/nano-progress-bar.entry.js +1 -1
  584. package/dist/nano-components/nano-progress-bar.entry.js.map +1 -1
  585. package/dist/nano-components/nano-range.entry.js +1 -1
  586. package/dist/nano-components/nano-range.entry.js.map +1 -1
  587. package/dist/nano-components/nano-rating.entry.js +1 -1
  588. package/dist/nano-components/nano-rating.entry.js.map +1 -1
  589. package/dist/nano-components/nano-resize-observe_2.entry.js +1 -1
  590. package/dist/nano-components/nano-resize-observe_2.entry.js.map +1 -1
  591. package/dist/nano-components/nano-slide.entry.js +1 -1
  592. package/dist/nano-components/nano-slide.entry.js.map +1 -1
  593. package/dist/nano-components/{nano-slides-c3eb1afe.js → nano-slides-2715825b.js} +5 -5
  594. package/dist/nano-components/nano-slides-2715825b.js.map +1 -0
  595. package/dist/nano-components/nano-slides.entry.js +1 -1
  596. package/dist/nano-components/nano-sortable.entry.js +1 -1
  597. package/dist/nano-components/nano-sortable.entry.js.map +1 -1
  598. package/dist/nano-components/nano-spinner.entry.js +1 -1
  599. package/dist/nano-components/nano-spinner.entry.js.map +1 -1
  600. package/dist/nano-components/nano-split-pane.entry.js +1 -1
  601. package/dist/nano-components/nano-split-pane.entry.js.map +1 -1
  602. package/dist/nano-components/nano-sticker.entry.js +1 -1
  603. package/dist/nano-components/nano-sticker.entry.js.map +1 -1
  604. package/dist/nano-components/nano-tab-content.entry.js +1 -1
  605. package/dist/nano-components/nano-tab-content.entry.js.map +1 -1
  606. package/dist/nano-components/nano-tab-group.entry.js +1 -1
  607. package/dist/nano-components/nano-tab-group.entry.js.map +1 -1
  608. package/dist/nano-components/nano-tab.entry.js +1 -1
  609. package/dist/nano-components/nano-tab.entry.js.map +1 -1
  610. package/dist/nano-components/nano-table-67d7190b.js +5 -0
  611. package/dist/nano-components/nano-table-67d7190b.js.map +1 -0
  612. package/dist/nano-components/nano-table.entry.js +1 -1
  613. package/dist/nano-components/page-dots-5b23db8c.js +5 -0
  614. package/dist/nano-components/{page-dots-986d3b32.js.map → page-dots-5b23db8c.js.map} +1 -1
  615. package/dist/nano-components/renderer-4bc3e2dc.js +5 -0
  616. package/dist/nano-components/renderer-4bc3e2dc.js.map +1 -0
  617. package/dist/nano-components/{scroll-f373a189.js → scroll-1afc6a4e.js} +2 -2
  618. package/dist/nano-components/table.worker-d636a71f.js +5 -0
  619. package/dist/stencil.config.js +1 -0
  620. package/dist/stencil.config.js.map +1 -1
  621. package/dist/types/global/script/global.d.ts +2 -0
  622. package/dist/types/index.d.ts +3 -2
  623. package/dist/types/utils/renderer.d.ts +27 -0
  624. package/docs-json.json +1 -12
  625. package/hydrate/index.js +453 -393
  626. package/hydrate/index.mjs +453 -393
  627. package/package.json +1 -1
  628. package/dist/cjs/app-globals-93d8b419.js +0 -39
  629. package/dist/cjs/app-globals-93d8b419.js.map +0 -1
  630. package/dist/cjs/fade-2dd9dd8b.js.map +0 -1
  631. package/dist/cjs/form-control-2d88adb2.js +0 -82
  632. package/dist/cjs/form-control-2d88adb2.js.map +0 -1
  633. package/dist/cjs/fullscreen-5d0422de.js.map +0 -1
  634. package/dist/cjs/index-b6fa04fa.js.map +0 -1
  635. package/dist/cjs/lazyload-f181cb37.js.map +0 -1
  636. package/dist/cjs/nano-slides-612634dc.js.map +0 -1
  637. package/dist/cjs/nano-table-99d6a3cc.js.map +0 -1
  638. package/dist/cjs/page-dots-99dd88f6.js.map +0 -1
  639. package/dist/cjs/table.worker-263468df.js.map +0 -1
  640. package/dist/esm/app-globals-d4ab01f2.js +0 -37
  641. package/dist/esm/app-globals-d4ab01f2.js.map +0 -1
  642. package/dist/esm/fade-4ff5d9de.js.map +0 -1
  643. package/dist/esm/form-control-812999d0.js.map +0 -1
  644. package/dist/esm/fullscreen-382d7890.js.map +0 -1
  645. package/dist/esm/index-3118109b.js.map +0 -1
  646. package/dist/esm/lazyload-49b745e4.js.map +0 -1
  647. package/dist/esm/nano-slides-c3eb1afe.js.map +0 -1
  648. package/dist/esm/nano-table-d15f6782.js.map +0 -1
  649. package/dist/esm/page-dots-986d3b32.js.map +0 -1
  650. package/dist/esm/table.worker-b7ee4edc.js.map +0 -1
  651. package/dist/nano-components/app-globals-d4ab01f2.js +0 -5
  652. package/dist/nano-components/app-globals-d4ab01f2.js.map +0 -1
  653. package/dist/nano-components/fade-4ff5d9de.js +0 -5
  654. package/dist/nano-components/form-control-812999d0.js +0 -5
  655. package/dist/nano-components/form-control-812999d0.js.map +0 -1
  656. package/dist/nano-components/fullscreen-382d7890.js +0 -5
  657. package/dist/nano-components/index-3118109b.js.map +0 -1
  658. package/dist/nano-components/lazyload-49b745e4.js +0 -5
  659. package/dist/nano-components/nano-slides-c3eb1afe.js.map +0 -1
  660. package/dist/nano-components/nano-table-d15f6782.js +0 -5
  661. package/dist/nano-components/nano-table-d15f6782.js.map +0 -1
  662. package/dist/nano-components/page-dots-986d3b32.js +0 -5
  663. package/dist/nano-components/table.worker-b7ee4edc.js +0 -5
  664. /package/dist/nano-components/{algolia-data-8fc24341.js.map → algolia-data-f0f72f1d.js.map} +0 -0
  665. /package/dist/nano-components/{component-store-b798181b.js.map → component-store-199a9fd8.js.map} +0 -0
  666. /package/dist/nano-components/{dom-d7f9f24c.js.map → dom-fafdec9a.js.map} +0 -0
  667. /package/dist/nano-components/{index-d7a4a150.js.map → index-f5f7b950.js.map} +0 -0
  668. /package/dist/nano-components/{scroll-f373a189.js.map → scroll-1afc6a4e.js.map} +0 -0
  669. /package/dist/nano-components/{table.worker-b7ee4edc.js.map → table.worker-d636a71f.js.map} +0 -0
  670. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/custom-element-doc-generator.d.ts +0 -0
  671. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/vue/generate-vue-component.d.ts +0 -0
  672. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/vue/index.d.ts +0 -0
  673. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/vue/output-vue.d.ts +0 -0
  674. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/vue/plugin.d.ts +0 -0
  675. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/vue/types.d.ts +0 -0
  676. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/generators/vue/utils.d.ts +0 -0
  677. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/stencil.config.d.ts +0 -0
  678. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/stencil.config.prod.d.ts +0 -0
  679. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/testing/mocks/intersection-observer.d.ts +0 -0
  680. /package/dist/types/builds/{6SyqsxUA → RXAuYz49}/0/Digital/nano-components/packages/components/.stencil/wdio.conf.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"file":"lazyload-f181cb37.js","mappings":"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","names":["Flickity","utils"],"sources":["src/components/slides/lib/js/lazyload.ts"],"sourcesContent":["import Flickity from './flickity';\nimport { utils } from './utils/utils';\n\nFlickity.createMethods.push('_createLazyload');\nconst proto = Flickity.prototype;\n\nproto._createLazyload = function () {\n this.on('select', this.lazyLoad);\n};\n\nproto.lazyLoad = function () {\n const lazyLoad = this.options.lazyLoad;\n if (!lazyLoad) {\n return;\n }\n // get adjacent cells, use lazyLoad option for adjacent count\n const adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n const cellElems = this.getAdjacentCellElements(adjCount);\n // get lazy images in those cells\n let lazyImages = [];\n cellElems.forEach(function (cellElem) {\n const lazyCellImages = getCellLazyImages(cellElem);\n lazyImages = lazyImages.concat(lazyCellImages);\n });\n // load lazy images\n lazyImages.forEach(function (img) {\n new LazyLoader(img, this);\n }, this);\n};\n\nfunction getCellLazyImages(cellElem) {\n // check if cell element is lazy image\n if (cellElem.nodeName == 'IMG') {\n const lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n const srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n const srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n if (lazyloadAttr || srcAttr || srcsetAttr) {\n return [cellElem];\n }\n }\n // select lazy images in cell\n const lazySelector =\n 'img[data-flickity-lazyload], ' +\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n const imgs = cellElem.querySelectorAll(lazySelector);\n return utils.makeArray(imgs);\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n */\nfunction LazyLoader(img, flickity) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function () {\n this.img.addEventListener('load', this);\n this.img.addEventListener('error', this);\n // get src & srcset\n const src =\n this.img.getAttribute('data-flickity-lazyload') ||\n this.img.getAttribute('data-flickity-lazyload-src');\n const srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n // set src & serset\n this.img.src = src;\n if (srcset) {\n this.img.setAttribute('srcset', srcset);\n }\n // remove attr\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n};\n\nLazyLoader.prototype.onload = function (event) {\n this.complete(event, 'flickity-lazyloaded');\n};\n\nLazyLoader.prototype.onerror = function (event) {\n this.complete(event, 'flickity-lazyerror');\n};\n\nLazyLoader.prototype.complete = function (event, className) {\n // unbind events\n this.img.removeEventListener('load', this);\n this.img.removeEventListener('error', this);\n\n const cell = this.flickity.getParentCell(this.img);\n const cellElem = cell && cell.element;\n this.flickity.cellSizeChange(cellElem);\n\n this.img.classList.add(className);\n this.flickity.dispatchEvent('lazyLoad', event, cellElem);\n};\n\n// @ts-ignore\nFlickity.LazyLoader = LazyLoader;\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"nano-slides-612634dc.js","mappings":"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","names":["proto","noop","console","getComputedStyle","readTask","writeTask","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\nexport default () => {\n // ----- defaults ----- //\n utils.extend(Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n });\n\n // ----- create ----- //\n\n Flickity.createMethods.push('_createDrag');\n\n // -------------------------- drag prototype -------------------------- //\n\n const proto = Flickity.prototype;\n utils.extend(proto, Unidragger.prototype);\n proto._touchActionValue = 'pan-y';\n\n // -------------------------- -------------------------- //\n\n const isTouch = 'createTouch' in document;\n let isTouchmoveScrollCanceled = false;\n\n proto._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\n proto.onActivateDrag = function () {\n this.handles = [this.viewport];\n this.bindHandles();\n this.updateDraggable();\n };\n\n proto.onDeactivateDrag = function () {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n };\n\n proto.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\n proto.bindDrag = function () {\n this.options.draggable = true;\n this.updateDraggable();\n };\n\n proto.unbindDrag = function () {\n this.options.draggable = false;\n this.updateDraggable();\n };\n\n proto._uiChangeDrag = function () {\n delete this.isFreeScrolling;\n };\n\n // -------------------------- pointer events -------------------------- //\n\n proto.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\n proto._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\n const focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n };\n\n proto.pointerDownFocus = function (event) {\n const isFocusNode = focusNodes[event.target.nodeName];\n if (!isFocusNode) {\n this.focus();\n }\n };\n\n proto._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\n proto.hasDragStarted = function (moveVector) {\n return Math.abs(moveVector.x) > this.options.dragThreshold;\n };\n\n // ----- up ----- //\n\n proto.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\n proto.pointerDone = function () {\n window.removeEventListener('scroll', this);\n delete this.pointerDownScroll;\n };\n\n // -------------------------- dragging -------------------------- //\n\n proto.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\n proto.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\n proto.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\n proto.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\n proto.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 */\n proto._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 */\n proto.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\n ? this.slideableWidth * Math.floor(index / len)\n : 0;\n return x - (slide.target + wrap);\n };\n\n proto.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\n proto.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\n proto.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\n function getScrollPosition() {\n return {\n x: window.scrollX,\n y: window.scrollY,\n };\n }\n};\n","import Flickity from './flickity';\nimport { Unipointer } from './utils/gestures';\nimport { utils } from './utils/utils';\n\nexport default () => {\n const svgURI = 'http://www.w3.org/2000/svg';\n\n // -------------------------- PrevNextButton -------------------------- //\n\n function 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\n PrevNextButton.prototype = Object.create(Unipointer.prototype);\n\n PrevNextButton.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\n PrevNextButton.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\n PrevNextButton.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\n PrevNextButton.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\n function 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\n PrevNextButton.prototype.handleEvent = utils.handleEvent;\n\n PrevNextButton.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\n PrevNextButton.prototype.enable = function () {\n if (this.isEnabled) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n };\n\n PrevNextButton.prototype.disable = function () {\n if (!this.isEnabled) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n };\n\n PrevNextButton.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 =\n this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[method]();\n };\n\n PrevNextButton.prototype.destroy = function () {\n this.deactivate();\n this.allOff();\n };\n\n // -------------------------- Flickity prototype -------------------------- //\n\n utils.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\n Flickity.createMethods.push('_createPrevNextButtons');\n const proto = Flickity.prototype;\n\n proto._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\n proto.activatePrevNextButtons = function () {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on('deactivate', this.deactivatePrevNextButtons);\n };\n\n proto.deactivatePrevNextButtons = function () {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off('deactivate', this.deactivatePrevNextButtons);\n };\n\n // @ts-ignore\n Flickity.PrevNextButton = PrevNextButton;\n};\n","import { EvEmitter } from './utils/event-emitter';\nimport { utils } from './utils/utils';\nimport Flickity from './flickity';\n\nexport default () => {\n // -------------------------- Player -------------------------- //\n\n function 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\n Player.prototype = Object.create(EvEmitter.prototype);\n\n // start play\n Player.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\n Player.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\n Player.prototype.stop = function () {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n };\n\n Player.prototype.clear = function () {\n clearTimeout(this.timeout);\n };\n\n Player.prototype.pause = function () {\n if (this.state == 'playing') {\n this.state = 'paused';\n this.clear();\n }\n };\n\n Player.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\n Player.prototype.visibilityChange = function () {\n const isPageHidden = document.hidden;\n this[isPageHidden ? 'pause' : 'unpause']();\n };\n\n Player.prototype.visibilityPlay = function () {\n this.play();\n document.removeEventListener('visibilitychange', this.onVisibilityPlay);\n };\n\n // -------------------------- Flickity -------------------------- //\n\n utils.extend(Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n });\n\n Flickity.createMethods.push('_createPlayer');\n const proto = Flickity.prototype;\n\n proto._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\n proto.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\n proto.playPlayer = function () {\n this.player.play();\n };\n\n proto.stopPlayer = function () {\n this.player.stop();\n };\n\n proto.pausePlayer = function () {\n this.player.pause();\n };\n\n proto.unpausePlayer = function () {\n this.player.unpause();\n };\n\n proto.deactivatePlayer = function () {\n this.player.stop();\n this.element.removeEventListener('mouseenter', this);\n };\n\n // ----- mouseenter/leave ----- //\n\n // pause auto-play on hover\n proto.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\n proto.onmouseleave = function () {\n this.player.unpause();\n this.element.removeEventListener('mouseleave', this);\n };\n\n // @ts-ignore\n Flickity.Player = Player;\n};\n","import Flickity from './flickity';\nimport drag from './drag';\nimport nowNext from './prev-next-button';\nimport player from './player';\n\nexport const flickity = Flickity;\ndrag();\nnowNext();\nplayer();\n","@use '../../global/style/nano-theme/tokens/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: #{colours.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 readTask,\n writeTask,\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 './slides-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: HTMLElement = this._getRoot().querySelector(\n '.flickity-page-dots'\n );\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: HTMLElement = this._getRoot().querySelector(\n '.flickity-fullscreen-button'\n );\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);\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 * 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 /**\n * Get the index of the active slide.\n * @returns the index of the active slide\n */\n @Method()\n async getActiveIndex() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex;\n }\n\n /**\n * Get the total number of slides.\n * @returns the total number of slides\n */\n @Method()\n async length() {\n const flickity = await this.getflickity();\n return flickity.slides.length;\n }\n\n /**\n * Get whether or not the current slide is the last slide.\n * @returns true if the current slide is the last slide, false otherwise\n */\n @Method()\n async isEnd() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex === flickity.slides.length - 1;\n }\n\n /**\n * Get whether or not the current slide is the first slide.\n * @returns true if the current slide is the first slide, false otherwise\n */\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 * @returns the flickity instance\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 if (this.resizeO) {\n this.resizeO.disconnect();\n this.resizeO = undefined;\n }\n\n const ro = (this.resizeO = new ResizeObserver(() => {\n readTask(() => {\n const vp: HTMLElement =\n this.host.shadowRoot.querySelector('.flickity-viewport');\n\n writeTask(() => {\n // reset the height, otherwise it *only* gets bigger\n if (vp) vp.style.height = '';\n flick.resize();\n });\n });\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;\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: () =>\n requestAnimationFrame(() => this.nanoSlidesTransitionEnd.emit()),\n dragStart: () =>\n requestAnimationFrame(() => this.nanoSlidesDragStart.emit()),\n dragMove: () =>\n requestAnimationFrame(() => this.nanoSlidesDragMove.emit()),\n dragEnd: () => requestAnimationFrame(() => 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\n // @ts-expect-error - merged options don't quite match the flickity options\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) {\n this.resizeO.disconnect();\n this.resizeO = undefined;\n }\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}