@nanoporetech-digital/components 7.4.5 → 7.5.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 (400) hide show
  1. package/dist/cjs/{algolia-data-7444589a.js → algolia-data-0447757c.js} +2 -2
  2. package/dist/cjs/{algolia-data-7444589a.js.map → algolia-data-0447757c.js.map} +1 -1
  3. package/dist/cjs/app-globals-93d8b419.js.map +1 -1
  4. package/dist/cjs/{component-store-5d69aa2a.js → component-store-6a330cd1.js} +2 -2
  5. package/dist/cjs/{component-store-5d69aa2a.js.map → component-store-6a330cd1.js.map} +1 -1
  6. package/dist/cjs/{dom-9d327924.js → dom-756fcdac.js} +2 -2
  7. package/dist/cjs/{dom-9d327924.js.map → dom-756fcdac.js.map} +1 -1
  8. package/dist/cjs/{fade-7a47badb.js → fade-2dd9dd8b.js} +6 -4
  9. package/dist/cjs/fade-2dd9dd8b.js.map +1 -0
  10. package/dist/cjs/{form-control-574da2db.js → form-control-2d88adb2.js} +2 -2
  11. package/dist/cjs/{form-control-574da2db.js.map → form-control-2d88adb2.js.map} +1 -1
  12. package/dist/cjs/{fullscreen-31e27faa.js → fullscreen-5d0422de.js} +3 -3
  13. package/dist/cjs/{fullscreen-31e27faa.js.map → fullscreen-5d0422de.js.map} +1 -1
  14. package/dist/cjs/{index-7f89ccce.js → index-7795a8f6.js} +5 -6
  15. package/dist/cjs/index-7795a8f6.js.map +1 -0
  16. package/dist/cjs/{index-05605cc8.js → index-b6fa04fa.js} +3 -3
  17. package/dist/cjs/{index-05605cc8.js.map → index-b6fa04fa.js.map} +1 -1
  18. package/dist/cjs/index.cjs.js +2 -0
  19. package/dist/cjs/index.cjs.js.map +1 -1
  20. package/dist/cjs/{lazyload-77a7f763.js → lazyload-f181cb37.js} +3 -3
  21. package/dist/cjs/{lazyload-77a7f763.js.map → lazyload-f181cb37.js.map} +1 -1
  22. package/dist/cjs/loader.cjs.js +2 -2
  23. package/dist/cjs/nano-accordion.cjs.entry.js +2 -2
  24. package/dist/cjs/nano-alert.cjs.entry.js +3 -3
  25. package/dist/cjs/nano-algolia-filter.cjs.entry.js +3 -3
  26. package/dist/cjs/nano-algolia-pagination.cjs.entry.js +2 -2
  27. package/dist/cjs/nano-algolia-results.cjs.entry.js +2 -2
  28. package/dist/cjs/nano-algolia.cjs.entry.js +4 -4
  29. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  30. package/dist/cjs/nano-animation.cjs.entry.js +1 -1
  31. package/dist/cjs/nano-checkbox-group.cjs.entry.js +1 -1
  32. package/dist/cjs/nano-checkbox.cjs.entry.js +1 -1
  33. package/dist/cjs/nano-components.cjs.js +3 -3
  34. package/dist/cjs/nano-components.cjs.js.map +1 -1
  35. package/dist/cjs/nano-datalist_3.cjs.entry.js +13 -12
  36. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
  37. package/dist/cjs/nano-date-input.cjs.entry.js +1 -1
  38. package/dist/cjs/nano-date-picker.cjs.entry.js +1 -1
  39. package/dist/cjs/nano-details.cjs.entry.js +1 -1
  40. package/dist/cjs/nano-dialog.cjs.entry.js +4 -4
  41. package/dist/cjs/nano-drawer.cjs.entry.js +5 -5
  42. package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
  43. package/dist/cjs/nano-dropdown.cjs.entry.js +5 -5
  44. package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
  45. package/dist/cjs/nano-field-validator.cjs.entry.js +2 -2
  46. package/dist/cjs/nano-file-upload.cjs.entry.js +1 -1
  47. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +4 -4
  48. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
  49. package/dist/cjs/nano-global-nav.cjs.entry.js +2 -2
  50. package/dist/cjs/nano-global-search-results.cjs.entry.js +1 -1
  51. package/dist/cjs/nano-grid-item.cjs.entry.js +1 -1
  52. package/dist/cjs/nano-grid_2.cjs.entry.js +2 -2
  53. package/dist/cjs/nano-grid_2.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nano-hero.cjs.entry.js +1 -1
  55. package/dist/cjs/nano-icon-button_2.cjs.entry.js +1 -1
  56. package/dist/cjs/nano-icon.cjs.entry.js +1 -1
  57. package/dist/cjs/nano-input.cjs.entry.js +4 -4
  58. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  59. package/dist/cjs/nano-intersection-observe.cjs.entry.js +3 -3
  60. package/dist/cjs/nano-intersection-observe.cjs.entry.js.map +1 -1
  61. package/dist/cjs/nano-menu-drawer.cjs.entry.js +2 -2
  62. package/dist/cjs/nano-more-less.cjs.entry.js +1 -1
  63. package/dist/cjs/nano-overflow-nav.cjs.entry.js +2 -2
  64. package/dist/cjs/nano-progress-bar.cjs.entry.js +1 -1
  65. package/dist/cjs/nano-range.cjs.entry.js +1 -1
  66. package/dist/cjs/nano-rating.cjs.entry.js +8 -7
  67. package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
  68. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -1
  69. package/dist/cjs/nano-slide.cjs.entry.js +1 -1
  70. package/dist/cjs/{nano-slides-70182c35.js → nano-slides-612634dc.js} +1084 -16
  71. package/dist/cjs/nano-slides-612634dc.js.map +1 -0
  72. package/dist/cjs/nano-slides.cjs.entry.js +2 -2
  73. package/dist/cjs/nano-sortable.cjs.entry.js +1 -1
  74. package/dist/cjs/nano-spinner.cjs.entry.js +4 -4
  75. package/dist/cjs/nano-spinner.cjs.entry.js.map +1 -1
  76. package/dist/cjs/nano-split-pane.cjs.entry.js +1 -1
  77. package/dist/cjs/nano-sticker.cjs.entry.js +2 -2
  78. package/dist/cjs/nano-tab-content.cjs.entry.js +1 -1
  79. package/dist/cjs/nano-tab-group.cjs.entry.js +5 -5
  80. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  81. package/dist/cjs/nano-tab.cjs.entry.js +1 -1
  82. package/dist/cjs/{nano-table-0fdaeb8b.js → nano-table-d81a0a48.js} +16 -16
  83. package/dist/cjs/nano-table-d81a0a48.js.map +1 -0
  84. package/dist/cjs/nano-table.cjs.entry.js +3 -3
  85. package/dist/cjs/page-dots-99dd88f6.js +140 -0
  86. package/dist/cjs/page-dots-99dd88f6.js.map +1 -0
  87. package/dist/cjs/{scroll-6abe4d89.js → scroll-772f7d0d.js} +2 -2
  88. package/dist/cjs/{scroll-6abe4d89.js.map → scroll-772f7d0d.js.map} +1 -1
  89. package/dist/cjs/{table.worker-5b29550e.js → table.worker-da5412ed.js} +1 -1
  90. package/dist/cjs/{table.worker-431042ce.js → table.worker-f14c92d4.js} +5 -5
  91. package/dist/cjs/table.worker-f14c92d4.js.map +1 -0
  92. package/dist/collection/collection-manifest.json +1 -1
  93. package/dist/collection/components/alert/alert.helpers.js.map +1 -1
  94. package/dist/collection/components/datalist/datalist.js +12 -10
  95. package/dist/collection/components/datalist/datalist.js.map +1 -1
  96. package/dist/collection/components/drawer/drawer.css +8 -4
  97. package/dist/collection/components/dropdown/dropdown.js +5 -5
  98. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  99. package/dist/collection/components/field-validator/field-validator.js +1 -1
  100. package/dist/collection/components/grid/grid.css +3 -1
  101. package/dist/collection/components/input/input.css +1 -1
  102. package/dist/collection/components/intersection-observe/intersection-observe.js +3 -3
  103. package/dist/collection/components/intersection-observe/intersection-observe.js.map +1 -1
  104. package/dist/collection/components/rating/rating.js +7 -6
  105. package/dist/collection/components/rating/rating.js.map +1 -1
  106. package/dist/collection/components/select/select.css +1 -1
  107. package/dist/collection/components/slides/lib/js/drag.js +308 -305
  108. package/dist/collection/components/slides/lib/js/drag.js.map +1 -1
  109. package/dist/collection/components/slides/lib/js/fade.js +3 -1
  110. package/dist/collection/components/slides/lib/js/fade.js.map +1 -1
  111. package/dist/collection/components/slides/lib/js/index.js +6 -3
  112. package/dist/collection/components/slides/lib/js/index.js.map +1 -1
  113. package/dist/collection/components/slides/lib/js/player.js +123 -121
  114. package/dist/collection/components/slides/lib/js/player.js.map +1 -1
  115. package/dist/collection/components/slides/lib/js/prev-next-button.js +179 -178
  116. package/dist/collection/components/slides/lib/js/prev-next-button.js.map +1 -1
  117. package/dist/collection/components/slides/slides.js +7 -7
  118. package/dist/collection/components/slides/slides.js.map +1 -1
  119. package/dist/collection/components/sortable/sortable.js +5 -5
  120. package/dist/collection/components/spinner/spinner.js +5 -5
  121. package/dist/collection/components/spinner/spinner.js.map +1 -1
  122. package/dist/collection/components/table/table.js +12 -12
  123. package/dist/collection/components/table/table.js.map +1 -1
  124. package/dist/collection/components/table/table.worker.js +4 -5
  125. package/dist/collection/components/table/table.worker.js.map +1 -1
  126. package/dist/collection/components/tabs/tab-group.css +3 -0
  127. package/dist/collection/index.js +2 -0
  128. package/dist/collection/index.js.map +1 -1
  129. package/dist/components/algolia-data.js.map +1 -1
  130. package/dist/components/algolia.js.map +1 -1
  131. package/dist/components/datalist.js +13 -11
  132. package/dist/components/datalist.js.map +1 -1
  133. package/dist/components/dropdown.js +4 -4
  134. package/dist/components/dropdown.js.map +1 -1
  135. package/dist/components/fade.js +3 -1
  136. package/dist/components/fade.js.map +1 -1
  137. package/dist/components/grid.js +1 -1
  138. package/dist/components/grid.js.map +1 -1
  139. package/dist/components/index.js +1 -1
  140. package/dist/components/index.js.map +1 -1
  141. package/dist/components/index2.js +3 -4
  142. package/dist/components/index2.js.map +1 -1
  143. package/dist/components/input.js +1 -1
  144. package/dist/components/input.js.map +1 -1
  145. package/dist/components/nano-drawer.js +1 -1
  146. package/dist/components/nano-drawer.js.map +1 -1
  147. package/dist/components/nano-intersection-observe.js +2 -2
  148. package/dist/components/nano-intersection-observe.js.map +1 -1
  149. package/dist/components/nano-rating.js +7 -6
  150. package/dist/components/nano-rating.js.map +1 -1
  151. package/dist/components/nano-slides.js +1078 -10
  152. package/dist/components/nano-slides.js.map +1 -1
  153. package/dist/components/nano-tab-group.js +1 -1
  154. package/dist/components/nano-tab-group.js.map +1 -1
  155. package/dist/components/nano-table.js +12 -12
  156. package/dist/components/nano-table.js.map +1 -1
  157. package/dist/components/page-dots.js +1 -425
  158. package/dist/components/page-dots.js.map +1 -1
  159. package/dist/components/select.js +1 -1
  160. package/dist/components/select.js.map +1 -1
  161. package/dist/components/spinner.js +3 -3
  162. package/dist/components/spinner.js.map +1 -1
  163. package/dist/components/table.worker.js +1 -1
  164. package/dist/esm/{algolia-data-6fb6c60b.js → algolia-data-8fc24341.js} +2 -2
  165. package/dist/esm/{algolia-data-6fb6c60b.js.map → algolia-data-8fc24341.js.map} +1 -1
  166. package/dist/esm/app-globals-d4ab01f2.js.map +1 -1
  167. package/dist/esm/{component-store-a0eb3fb6.js → component-store-b798181b.js} +2 -2
  168. package/dist/esm/{component-store-a0eb3fb6.js.map → component-store-b798181b.js.map} +1 -1
  169. package/dist/esm/{dom-3db2202b.js → dom-d7f9f24c.js} +2 -2
  170. package/dist/esm/{dom-3db2202b.js.map → dom-d7f9f24c.js.map} +1 -1
  171. package/dist/esm/{fade-6d964000.js → fade-4ff5d9de.js} +6 -4
  172. package/dist/esm/fade-4ff5d9de.js.map +1 -0
  173. package/dist/esm/{form-control-53135184.js → form-control-812999d0.js} +2 -2
  174. package/dist/esm/{form-control-53135184.js.map → form-control-812999d0.js.map} +1 -1
  175. package/dist/esm/{fullscreen-a9c16b35.js → fullscreen-382d7890.js} +3 -3
  176. package/dist/esm/{fullscreen-a9c16b35.js.map → fullscreen-382d7890.js.map} +1 -1
  177. package/dist/esm/{index-815d3f98.js → index-3118109b.js} +3 -3
  178. package/dist/esm/{index-815d3f98.js.map → index-3118109b.js.map} +1 -1
  179. package/dist/esm/{index-32d24a05.js → index-d7a4a150.js} +5 -6
  180. package/dist/esm/index-d7a4a150.js.map +1 -0
  181. package/dist/esm/index.js +1 -0
  182. package/dist/esm/index.js.map +1 -1
  183. package/dist/esm/{lazyload-07e752e9.js → lazyload-49b745e4.js} +3 -3
  184. package/dist/esm/{lazyload-07e752e9.js.map → lazyload-49b745e4.js.map} +1 -1
  185. package/dist/esm/loader.js +3 -3
  186. package/dist/esm/nano-accordion.entry.js +2 -2
  187. package/dist/esm/nano-alert.entry.js +3 -3
  188. package/dist/esm/nano-algolia-filter.entry.js +3 -3
  189. package/dist/esm/nano-algolia-pagination.entry.js +2 -2
  190. package/dist/esm/nano-algolia-results.entry.js +2 -2
  191. package/dist/esm/nano-algolia.entry.js +4 -4
  192. package/dist/esm/nano-algolia.entry.js.map +1 -1
  193. package/dist/esm/nano-animation.entry.js +1 -1
  194. package/dist/esm/nano-checkbox-group.entry.js +1 -1
  195. package/dist/esm/nano-checkbox.entry.js +1 -1
  196. package/dist/esm/nano-components.js +4 -4
  197. package/dist/esm/nano-components.js.map +1 -1
  198. package/dist/esm/nano-datalist_3.entry.js +13 -12
  199. package/dist/esm/nano-datalist_3.entry.js.map +1 -1
  200. package/dist/esm/nano-date-input.entry.js +1 -1
  201. package/dist/esm/nano-date-picker.entry.js +1 -1
  202. package/dist/esm/nano-details.entry.js +1 -1
  203. package/dist/esm/nano-dialog.entry.js +4 -4
  204. package/dist/esm/nano-drawer.entry.js +5 -5
  205. package/dist/esm/nano-drawer.entry.js.map +1 -1
  206. package/dist/esm/nano-dropdown.entry.js +5 -5
  207. package/dist/esm/nano-dropdown.entry.js.map +1 -1
  208. package/dist/esm/nano-field-validator.entry.js +2 -2
  209. package/dist/esm/nano-file-upload.entry.js +1 -1
  210. package/dist/esm/nano-global-nav-user-profile_3.entry.js +4 -4
  211. package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
  212. package/dist/esm/nano-global-nav.entry.js +2 -2
  213. package/dist/esm/nano-global-search-results.entry.js +1 -1
  214. package/dist/esm/nano-grid-item.entry.js +1 -1
  215. package/dist/esm/nano-grid_2.entry.js +2 -2
  216. package/dist/esm/nano-grid_2.entry.js.map +1 -1
  217. package/dist/esm/nano-hero.entry.js +1 -1
  218. package/dist/esm/nano-icon-button_2.entry.js +1 -1
  219. package/dist/esm/nano-icon.entry.js +1 -1
  220. package/dist/esm/nano-input.entry.js +4 -4
  221. package/dist/esm/nano-input.entry.js.map +1 -1
  222. package/dist/esm/nano-intersection-observe.entry.js +3 -3
  223. package/dist/esm/nano-intersection-observe.entry.js.map +1 -1
  224. package/dist/esm/nano-menu-drawer.entry.js +2 -2
  225. package/dist/esm/nano-more-less.entry.js +1 -1
  226. package/dist/esm/nano-overflow-nav.entry.js +2 -2
  227. package/dist/esm/nano-progress-bar.entry.js +1 -1
  228. package/dist/esm/nano-range.entry.js +1 -1
  229. package/dist/esm/nano-rating.entry.js +8 -7
  230. package/dist/esm/nano-rating.entry.js.map +1 -1
  231. package/dist/esm/nano-resize-observe_2.entry.js +1 -1
  232. package/dist/esm/nano-slide.entry.js +1 -1
  233. package/dist/esm/{nano-slides-3feab833.js → nano-slides-c3eb1afe.js} +1084 -16
  234. package/dist/esm/nano-slides-c3eb1afe.js.map +1 -0
  235. package/dist/esm/nano-slides.entry.js +2 -2
  236. package/dist/esm/nano-sortable.entry.js +1 -1
  237. package/dist/esm/nano-spinner.entry.js +4 -4
  238. package/dist/esm/nano-spinner.entry.js.map +1 -1
  239. package/dist/esm/nano-split-pane.entry.js +1 -1
  240. package/dist/esm/nano-sticker.entry.js +2 -2
  241. package/dist/esm/nano-tab-content.entry.js +1 -1
  242. package/dist/esm/nano-tab-group.entry.js +5 -5
  243. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  244. package/dist/esm/nano-tab.entry.js +1 -1
  245. package/dist/esm/{nano-table-dd0b6aa3.js → nano-table-869f0a31.js} +16 -16
  246. package/dist/esm/nano-table-869f0a31.js.map +1 -0
  247. package/dist/esm/nano-table.entry.js +3 -3
  248. package/dist/esm/page-dots-986d3b32.js +138 -0
  249. package/dist/esm/page-dots-986d3b32.js.map +1 -0
  250. package/dist/esm/{scroll-913c51a0.js → scroll-f373a189.js} +2 -2
  251. package/dist/esm/{scroll-913c51a0.js.map → scroll-f373a189.js.map} +1 -1
  252. package/dist/esm/{table.worker-e6e796b0.js → table.worker-4af386bc.js} +5 -5
  253. package/dist/esm/table.worker-4af386bc.js.map +1 -0
  254. package/dist/esm/{table.worker-5b29550e.js → table.worker-da5412ed.js} +1 -1
  255. package/dist/nano-components/{algolia-data-6fb6c60b.js → algolia-data-8fc24341.js} +2 -2
  256. package/dist/nano-components/{algolia-data-6fb6c60b.js.map → algolia-data-8fc24341.js.map} +1 -1
  257. package/dist/nano-components/app-globals-d4ab01f2.js.map +1 -1
  258. package/dist/nano-components/{component-store-a0eb3fb6.js → component-store-b798181b.js} +2 -2
  259. package/dist/nano-components/{dom-3db2202b.js → dom-d7f9f24c.js} +2 -2
  260. package/dist/nano-components/fade-4ff5d9de.js +5 -0
  261. package/dist/nano-components/fade-4ff5d9de.js.map +1 -0
  262. package/dist/nano-components/{form-control-53135184.js → form-control-812999d0.js} +2 -2
  263. package/dist/nano-components/{fullscreen-a9c16b35.js → fullscreen-382d7890.js} +2 -2
  264. package/dist/nano-components/{index-815d3f98.js → index-3118109b.js} +2 -2
  265. package/dist/nano-components/{index-815d3f98.js.map → index-3118109b.js.map} +1 -1
  266. package/dist/nano-components/index-d7a4a150.js +5 -0
  267. package/dist/nano-components/index-d7a4a150.js.map +1 -0
  268. package/dist/nano-components/index.esm.js +1 -1
  269. package/dist/nano-components/index.esm.js.map +1 -1
  270. package/dist/nano-components/{lazyload-07e752e9.js → lazyload-49b745e4.js} +2 -2
  271. package/dist/nano-components/nano-accordion.entry.js +1 -1
  272. package/dist/nano-components/nano-alert.entry.js +1 -1
  273. package/dist/nano-components/nano-algolia-filter.entry.js +1 -1
  274. package/dist/nano-components/nano-algolia-pagination.entry.js +1 -1
  275. package/dist/nano-components/nano-algolia-results.entry.js +1 -1
  276. package/dist/nano-components/nano-algolia.entry.js +1 -1
  277. package/dist/nano-components/nano-algolia.entry.js.map +1 -1
  278. package/dist/nano-components/nano-animation.entry.js +1 -1
  279. package/dist/nano-components/nano-checkbox-group.entry.js +1 -1
  280. package/dist/nano-components/nano-checkbox.entry.js +1 -1
  281. package/dist/nano-components/nano-components.esm.js +1 -1
  282. package/dist/nano-components/nano-components.esm.js.map +1 -1
  283. package/dist/nano-components/nano-datalist_3.entry.js +1 -1
  284. package/dist/nano-components/nano-datalist_3.entry.js.map +1 -1
  285. package/dist/nano-components/nano-date-input.entry.js +1 -1
  286. package/dist/nano-components/nano-date-picker.entry.js +1 -1
  287. package/dist/nano-components/nano-details.entry.js +1 -1
  288. package/dist/nano-components/nano-dialog.entry.js +1 -1
  289. package/dist/nano-components/nano-drawer.entry.js +1 -1
  290. package/dist/nano-components/nano-drawer.entry.js.map +1 -1
  291. package/dist/nano-components/nano-dropdown.entry.js +1 -1
  292. package/dist/nano-components/nano-dropdown.entry.js.map +1 -1
  293. package/dist/nano-components/nano-field-validator.entry.js +1 -1
  294. package/dist/nano-components/nano-file-upload.entry.js +1 -1
  295. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js +1 -1
  296. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js.map +1 -1
  297. package/dist/nano-components/nano-global-nav.entry.js +1 -1
  298. package/dist/nano-components/nano-global-search-results.entry.js +1 -1
  299. package/dist/nano-components/nano-grid-item.entry.js +1 -1
  300. package/dist/nano-components/nano-grid_2.entry.js +1 -1
  301. package/dist/nano-components/nano-grid_2.entry.js.map +1 -1
  302. package/dist/nano-components/nano-hero.entry.js +1 -1
  303. package/dist/nano-components/nano-icon-button_2.entry.js +1 -1
  304. package/dist/nano-components/nano-icon.entry.js +1 -1
  305. package/dist/nano-components/nano-input.entry.js +1 -1
  306. package/dist/nano-components/nano-input.entry.js.map +1 -1
  307. package/dist/nano-components/nano-intersection-observe.entry.js +1 -1
  308. package/dist/nano-components/nano-intersection-observe.entry.js.map +1 -1
  309. package/dist/nano-components/nano-menu-drawer.entry.js +1 -1
  310. package/dist/nano-components/nano-more-less.entry.js +1 -1
  311. package/dist/nano-components/nano-overflow-nav.entry.js +1 -1
  312. package/dist/nano-components/nano-progress-bar.entry.js +1 -1
  313. package/dist/nano-components/nano-range.entry.js +1 -1
  314. package/dist/nano-components/nano-rating.entry.js +1 -1
  315. package/dist/nano-components/nano-rating.entry.js.map +1 -1
  316. package/dist/nano-components/nano-resize-observe_2.entry.js +1 -1
  317. package/dist/nano-components/nano-slide.entry.js +1 -1
  318. package/dist/nano-components/nano-slides-c3eb1afe.js +20 -0
  319. package/dist/nano-components/nano-slides-c3eb1afe.js.map +1 -0
  320. package/dist/nano-components/nano-slides.entry.js +1 -1
  321. package/dist/nano-components/nano-sortable.entry.js +1 -1
  322. package/dist/nano-components/nano-spinner.entry.js +1 -1
  323. package/dist/nano-components/nano-spinner.entry.js.map +1 -1
  324. package/dist/nano-components/nano-split-pane.entry.js +1 -1
  325. package/dist/nano-components/nano-sticker.entry.js +1 -1
  326. package/dist/nano-components/nano-tab-content.entry.js +1 -1
  327. package/dist/nano-components/nano-tab-group.entry.js +1 -1
  328. package/dist/nano-components/nano-tab-group.entry.js.map +1 -1
  329. package/dist/nano-components/nano-tab.entry.js +1 -1
  330. package/dist/nano-components/{nano-table-dd0b6aa3.js → nano-table-869f0a31.js} +2 -2
  331. package/dist/nano-components/{nano-table-dd0b6aa3.js.map → nano-table-869f0a31.js.map} +1 -1
  332. package/dist/nano-components/nano-table.entry.js +1 -1
  333. package/dist/nano-components/page-dots-986d3b32.js +5 -0
  334. package/dist/nano-components/page-dots-986d3b32.js.map +1 -0
  335. package/dist/nano-components/{scroll-913c51a0.js → scroll-f373a189.js} +2 -2
  336. package/dist/nano-components/table.worker-4af386bc.js +5 -0
  337. package/dist/nano-components/{table.worker-5b29550e.js → table.worker-da5412ed.js} +1 -1
  338. package/dist/themes/nanopore.css +1 -1
  339. package/dist/themes/nanopore.css.map +1 -1
  340. package/dist/types/components/alert/alert.helpers.d.ts +1 -1
  341. package/dist/types/components/datalist/datalist.d.ts +1 -1
  342. package/dist/types/components/intersection-observe/intersection-observe.d.ts +1 -1
  343. package/dist/types/components/slides/lib/js/drag.d.ts +2 -1
  344. package/dist/types/components/slides/lib/js/index.d.ts +0 -3
  345. package/dist/types/components/slides/lib/js/player.d.ts +2 -1
  346. package/dist/types/components/slides/lib/js/prev-next-button.d.ts +2 -1
  347. package/dist/types/components/spinner/spinner.d.ts +1 -1
  348. package/dist/types/components.d.ts +4 -1408
  349. package/dist/types/index.d.ts +2 -0
  350. package/docs-json.json +17 -17
  351. package/docs-vscode.json +2 -2
  352. package/hydrate/index.js +709 -63
  353. package/hydrate/index.mjs +709 -63
  354. package/package.json +3 -4
  355. package/themes/nanopore.css +1 -1
  356. package/themes/nanopore.css.map +1 -1
  357. package/dist/cjs/fade-7a47badb.js.map +0 -1
  358. package/dist/cjs/index-7f89ccce.js.map +0 -1
  359. package/dist/cjs/nano-slides-70182c35.js.map +0 -1
  360. package/dist/cjs/nano-table-0fdaeb8b.js.map +0 -1
  361. package/dist/cjs/page-dots-ad7c3b76.js +0 -564
  362. package/dist/cjs/page-dots-ad7c3b76.js.map +0 -1
  363. package/dist/cjs/table.worker-431042ce.js.map +0 -1
  364. package/dist/collection/components/alert/alert-interface.js +0 -2
  365. package/dist/collection/components/alert/alert-interface.js.map +0 -1
  366. package/dist/esm/fade-6d964000.js.map +0 -1
  367. package/dist/esm/index-32d24a05.js.map +0 -1
  368. package/dist/esm/nano-slides-3feab833.js.map +0 -1
  369. package/dist/esm/nano-table-dd0b6aa3.js.map +0 -1
  370. package/dist/esm/page-dots-ca0bbb51.js +0 -562
  371. package/dist/esm/page-dots-ca0bbb51.js.map +0 -1
  372. package/dist/esm/table.worker-e6e796b0.js.map +0 -1
  373. package/dist/nano-components/fade-6d964000.js +0 -5
  374. package/dist/nano-components/fade-6d964000.js.map +0 -1
  375. package/dist/nano-components/index-32d24a05.js +0 -5
  376. package/dist/nano-components/index-32d24a05.js.map +0 -1
  377. package/dist/nano-components/nano-slides-3feab833.js +0 -10
  378. package/dist/nano-components/nano-slides-3feab833.js.map +0 -1
  379. package/dist/nano-components/page-dots-ca0bbb51.js +0 -10
  380. package/dist/nano-components/page-dots-ca0bbb51.js.map +0 -1
  381. package/dist/nano-components/table.worker-e6e796b0.js +0 -5
  382. package/dist/types/components/alert/alert-interface.d.ts +0 -1
  383. /package/dist/nano-components/{component-store-a0eb3fb6.js.map → component-store-b798181b.js.map} +0 -0
  384. /package/dist/nano-components/{dom-3db2202b.js.map → dom-d7f9f24c.js.map} +0 -0
  385. /package/dist/nano-components/{form-control-53135184.js.map → form-control-812999d0.js.map} +0 -0
  386. /package/dist/nano-components/{fullscreen-a9c16b35.js.map → fullscreen-382d7890.js.map} +0 -0
  387. /package/dist/nano-components/{lazyload-07e752e9.js.map → lazyload-49b745e4.js.map} +0 -0
  388. /package/dist/nano-components/{scroll-913c51a0.js.map → scroll-f373a189.js.map} +0 -0
  389. /package/dist/nano-components/{table.worker-e6e796b0.js.map → table.worker-4af386bc.js.map} +0 -0
  390. /package/dist/types/builds/{_Jv_MA6J → HitvqeWT}/0/Digital/nano-components/packages/components/.stencil/generators/custom-element-doc-generator.d.ts +0 -0
  391. /package/dist/types/builds/{_Jv_MA6J → HitvqeWT}/0/Digital/nano-components/packages/components/.stencil/generators/vue/generate-vue-component.d.ts +0 -0
  392. /package/dist/types/builds/{_Jv_MA6J → HitvqeWT}/0/Digital/nano-components/packages/components/.stencil/generators/vue/index.d.ts +0 -0
  393. /package/dist/types/builds/{_Jv_MA6J → HitvqeWT}/0/Digital/nano-components/packages/components/.stencil/generators/vue/output-vue.d.ts +0 -0
  394. /package/dist/types/builds/{_Jv_MA6J → HitvqeWT}/0/Digital/nano-components/packages/components/.stencil/generators/vue/plugin.d.ts +0 -0
  395. /package/dist/types/builds/{_Jv_MA6J → HitvqeWT}/0/Digital/nano-components/packages/components/.stencil/generators/vue/types.d.ts +0 -0
  396. /package/dist/types/builds/{_Jv_MA6J → HitvqeWT}/0/Digital/nano-components/packages/components/.stencil/generators/vue/utils.d.ts +0 -0
  397. /package/dist/types/builds/{_Jv_MA6J → HitvqeWT}/0/Digital/nano-components/packages/components/.stencil/stencil.config.d.ts +0 -0
  398. /package/dist/types/builds/{_Jv_MA6J → HitvqeWT}/0/Digital/nano-components/packages/components/.stencil/stencil.config.prod.d.ts +0 -0
  399. /package/dist/types/builds/{_Jv_MA6J → HitvqeWT}/0/Digital/nano-components/packages/components/.stencil/testing/mocks/intersection-observer.d.ts +0 -0
  400. /package/dist/types/builds/{_Jv_MA6J → HitvqeWT}/0/Digital/nano-components/packages/components/.stencil/wdio.conf.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["inputCss","NanoInputStyle0","inputIds","Input","nativeInput","inputId","didBlurAfterEdit","rtl","mo","charCount","hasRendered","_nativeInputWrap","nativeInputWrap","this","ele","setDataListOpts","constructor","hostRef","validate","debounce","handleBlur","bind","hasFocus","hasLabelSlot","hasHelperSlot","hasHelperEndSlot","errorMessage","datalist","currDWConfig","dropDownConfig","skidding","tetherTo","invalid","_invalid","validityMessage","validationMessage","color","accept","autocapitalise","autocomplete","autocorrect","autofocus","clearInput","clearOnEdit","disabled","inputmode","validateOn","showInlineError","label","hideLabel","floatLabel","max","maxlength","min","minlength","multiple","name","pattern","placeholder","readonly","required","spellcheck","step","size","type","form","value","resize","rows","showCharCount","shouldValidate","requestAnimationFrame","valueChanged","nanoChange","emit","length","style","height","scrollHeight","debounceChanged","debounceEvent","nanoInput","nanoBlur","nanoFocus","nanoDidLoad","nanoDidUnload","nanoValidate","reportValidity","validateFirst","Promise","resolve","setTimeout","isValid","setFocus","focus","click","select","getInputElement","showError","message","setCustomValidity","onReset","e","document","querySelector","el","closest","target","kev","KeyboardEvent","key","activeElement","FocusEvent","closestElement","tagName","toLowerCase","onBlur","shouldClearOnEdit","undefined","getValue","ev","validity","valid","preventDefault","originalEvent","onInput","input","focusChanged","onFocus","onKeydown","hasValue","clearTextInput","stopPropagation","event","window","Event","dispatchEvent","slotChangeObserver","disconnect","MutationObserver","processSlottedContent","observe","childList","subtree","querySelectorAll","console","warn","connectedCallback","CustomEvent","detail","disconnectedCallback","componentDidLoad","_","componentWillLoad","render","labelId","moreId","helperEndId","ownerDocument","dir","compWrapOptions","wrapOptions","controlId","controlOptions","clearControl","h","Host","class","createColorClasses","width","FormControlWrap","FormControl","onClearText","control","ref","id","autoCapitalize","autoComplete","autoCorrect","autoFocus","inputMode","minLength","maxLength","readOnly","onChange","onKeyDown","onInvalid","input__resizable"],"sources":["src/components/input/input.scss?tag=nano-input&encapsulation=scoped","src/components/input/input.tsx"],"sourcesContent":["@use '../../global/style/utilities/mixins' as mx;\n@use '../../global/style/utilities/colours' as colour;\n@use '../../global/style/nano-theme/tokens';\n@use '../form-control/form-control-vars' as formControl;\n@use '../form-control/form-control';\n\n:host {\n @include formControl.vars;\n\n position: relative;\n inline-size: 100%;\n padding: 0 !important;\n color: currentcolor;\n display: block;\n}\n\n:host(.nano-color) {\n color: colour.current-color(base);\n\n --input-border-style--focus:\n #{tokens.$input-border-style} var(\n --nano-color-tint,\n #{tokens.nano-color(\n primary,\n tint\n )}\n );\n}\n\n.input__native-ctrl {\n @include mx.text-inherit();\n\n padding-block: 0;\n padding-inline: var(--padding-start) var(--padding-end);\n border-radius: var(--input-border-radius);\n text-overflow: ellipsis;\n color: var(--input-text-color);\n display: inline-block;\n flex: 1;\n inline-size: 100%;\n max-inline-size: 100%;\n max-block-size: 100%;\n border: 0;\n outline: none;\n background: transparent;\n appearance: none;\n margin: 0;\n box-sizing: border-box;\n resize: none;\n overflow: hidden;\n line-height: 2.5em;\n // min-height: 2.5em;\n\n .has-float-label & {\n line-height: 2.1em;\n min-block-size: 2.1em;\n padding-block-start: 1.4em;\n }\n\n &::placeholder {\n color: var(--placeholder-color);\n font-family: inherit;\n font-style: var(--placeholder-font-style);\n font-weight: var(--placeholder-font-weight);\n opacity: var(--placeholder-opacity);\n line-height: inherit;\n min-block-size: initial;\n }\n\n /* stylelint-disable-next-line selector-no-vendor-prefix */\n &::-moz-placeholder {\n line-height: 2.8em;\n text-overflow: ellipsis;\n }\n\n &:-webkit-autofill {\n background-color: transparent;\n }\n\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n appearance: none;\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &::-ms-clear,\n &::-ms-reveal {\n display: none;\n }\n\n &.input__resizable {\n resize: vertical;\n overflow: auto;\n }\n\n .form-ctrl__textarea & {\n line-height: 1.5em;\n padding-block: var(--padding-top) 0.25em;\n white-space: pre-wrap;\n\n &::placeholder {\n line-height: 1.5em;\n }\n\n .has-float-label & {\n padding-block-start: 1.75em;\n }\n }\n\n :host([readonly]:not([readonly='false'])) & {\n user-select: none;\n }\n}\n","import {\n Build,\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n Watch,\n h,\n Listen,\n} from '@stencil/core';\n\nimport { closestElement } from '../../utils/dom';\nimport { createColorClasses } from '../../utils/theme';\nimport { debounceEvent, debounce } from '../../utils/throttle';\nimport { FormControl, FormControlWrap } from '../form-control/form-control';\nimport { InputChangeEventDetail } from './input-interface';\nimport type {\n Color,\n ControlValidity,\n ControlValidityEventDetail,\n TextFieldTypes,\n} from '../../types/shared';\n\nlet inputIds = 0;\n\n/**\n * The input component is a wrapper to the HTML input element with custom styling and additional functionality. It accepts most of the same properties as the HTML [input](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input).\n *\nIt is meant for text type inputs only, such as \"text\", \"password\", \"email\", \"number\", \"search\", \"tel\", and \"url\". It supports all standard text input events including keyup, keydown, keypress, and more.\nThe default styling reference comes from the [ONT styleguide](https://nanoporetech.zeroheight.com/styleguide/s/31282/p/230c74-text-input--textarea/b/942ee4)\n * @slot start - suitable for inline action buttons or icons that may add extra contextual information\n * @slot end - suitable for inline action buttons or icons that may add extra contextual information\n * @slot value-start - similar to 'start', however clicking elements using this slot will activate the input control. This would be suitable to show a secodary 'value' for context or to show a dropdown arrow if using a datalist\n * @slot value-end - similar to 'end', however clicking elements using this slot will activate the input control. This would be suitable to show a secodary 'value' for context or to show a dropdown arrow if using a datalist\n * @slot label - if you do not set a label attribute, you can use this slot for more complex markup\n * @slot helper - helper text to accompany the form field underneath.\n * @slot helper-end - helper text to accompany the form field on the side.\n * @slot - can be used with a `nano-datalist`. See the `nano-datalist` docs for more information\n */\n@Component({\n tag: 'nano-input',\n styleUrl: 'input.scss',\n scoped: true,\n})\nexport class Input implements ComponentInterface {\n private nativeInput?: HTMLInputElement | HTMLTextAreaElement;\n private inputId = `nano-input-${inputIds++}`;\n private didBlurAfterEdit = false;\n private rtl: boolean = false;\n private mo?: MutationObserver;\n private charCount = 0;\n private hasRendered = false;\n\n // we don't want these rendered eles decorated with @State\n // because that will cause re-renders. User get/set to set datalist options\n private _nativeInputWrap: HTMLElement;\n private get nativeInputWrap() {\n return this._nativeInputWrap;\n }\n private set nativeInputWrap(ele: HTMLElement) {\n if (this._nativeInputWrap === ele) return;\n this._nativeInputWrap = ele;\n this.setDataListOpts();\n }\n\n constructor() {\n this.validate = debounce(this.validate, 50);\n this.handleBlur = this.handleBlur.bind(this);\n }\n\n @State() hasFocus = false;\n @State() hasLabelSlot = false;\n @State() hasHelperSlot = false;\n @State() hasHelperEndSlot = false;\n @State() errorMessage: string = '';\n @State() datalist: HTMLNanoDatalistElement = null;\n\n @Watch('datalist')\n setDataListOpts() {\n if (!this.datalist) return;\n const currDWConfig = this.datalist.dropDownConfig || {};\n this.datalist.dropDownConfig = {\n ...currDWConfig,\n skidding: -1,\n tetherTo: this.nativeInputWrap,\n };\n }\n\n @Element() el!: HTMLNanoInputElement;\n\n /**\n * This will be true when the control is in an invalid state.\n * Validity is determined by the `required` prop. Or if custom validity message is set. @readonly\n */\n @Prop({ reflect: true })\n get invalid() {\n return this._invalid;\n }\n @State() _invalid = false;\n\n /**\n * Current validation message - if any. @readonly\n */\n @Prop()\n get validityMessage() {\n if (!this.nativeInput) return '';\n return this.nativeInput.validationMessage;\n }\n\n /**\n * The color to use from the application's color palette.\n */\n @Prop() color?: Color;\n\n /**\n * If the value of the type attribute is `\"file\"`, then this attribute will indicate the types of files that the server accepts, otherwise it will be ignored. The value must be a comma-separated list of unique content type specifiers.\n */\n @Prop() accept?: string;\n\n /**\n * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\n */\n @Prop() autocapitalise: 'none' | 'sentences' | 'words' | 'characters' =\n 'none';\n\n /**\n * Indicates whether the value of the control can be automatically completed by the browser.\n */\n @Prop() autocomplete: 'on' | 'off' = 'off';\n\n /**\n * Whether auto correction should be enabled when the user is entering/editing the text value.\n */\n @Prop() autocorrect: 'on' | 'off' = 'off';\n\n /**\n * This Boolean attribute lets you specify that a form control should have input focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input.\n */\n @Prop() clearInput = false;\n\n /**\n * If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `\"password\"`, `false` for all other types.\n */\n @Prop() clearOnEdit?: boolean;\n\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `nanoChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n\n /**\n * If `true`, the user cannot interact with the input.\n */\n @Prop({ reflect: true }) disabled = false;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode?:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search';\n\n /**\n * When should the field perform validation\n */\n @Prop({ mutable: true }) validateOn: 'dirty' | 'submit' | 'submitThenDirty' =\n 'submitThenDirty';\n\n /**\n * Whether to show validation errors underneath input\n */\n @Prop({ reflect: true }) showInlineError = true;\n\n /**\n * String to place within a label element. Alternatively you may use a label slot.\n */\n @Prop() label!: string;\n\n /**\n * Visually hide the label - but make it accessible.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * Enable floating label behaviour. Will disable placeholder if set.\n */\n @Prop() floatLabel: boolean = false;\n\n /**\n * The maximum value, which must not be less than its minimum (min attribute) value.\n */\n @Prop() max?: string;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the maximum number of characters that the user can enter.\n */\n @Prop() maxlength?: number;\n\n /**\n * The minimum value, which must not be greater than its maximum (max attribute) value.\n */\n @Prop() min?: string;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the minimum number of characters that the user can enter.\n */\n @Prop() minlength?: number;\n\n /**\n * If `true`, the user can enter more than one value. This attribute applies when the type attribute is set to `\"email\"` or `\"file\"`, otherwise it is ignored.\n */\n @Prop() multiple?: boolean;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * A regular expression that the value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, or `\"password\"`, otherwise it is ignored.\n */\n @Prop() pattern?: string;\n\n /**\n * Instructional text that shows before the input has a value.\n */\n @Prop() placeholder?: string | null;\n\n /**\n * If `true`, the user cannot modify the value.\n */\n @Prop({ reflect: true }) readonly = false;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the element will have its spelling and grammar checked.\n */\n @Prop() spellcheck = false;\n\n /**\n * Works with the min and max attributes to limit the increments at which a value can be set.\n * Possible values are: `\"any\"` or a positive floating point number.\n */\n @Prop() step?: string;\n\n /**\n * The initial size of the control. This value is in pixels unless the value of the type attribute is `\"text\"` or `\"password\"`, in which case it is an integer number of characters. This attribute applies only when the `type` attribute is set to `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, or `\"password\"`, otherwise it is ignored.\n */\n @Prop() size?: number;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop({ reflect: true }) type: TextFieldTypes = 'text';\n\n /**\n * The form element to associate the input with (its form owner). Must be the id of a form.\n */\n @Prop() form?: string | null;\n\n /**\n * The value of the input.\n */\n @Prop({ mutable: true }) value?: string | null = '';\n\n /**\n * relevant to type=\"textarea\". Vertical resizing - enable / disable or make automatic.\n */\n @Prop() resize: 'true' | 'false' | 'auto' = 'auto';\n\n /**\n * relevant to type=\"textarea\". Default number of rows to show\n */\n @Prop() rows = 2;\n\n /**\n * relevant to type=\"textarea\".\n */\n @Prop() showCharCount = false;\n\n @Watch('minlength')\n @Watch('maxlength')\n @Watch('min')\n @Watch('max')\n @Watch('required')\n @Watch('disabled')\n @Watch('readonly')\n @Watch('pattern')\n @Watch('inputmode')\n protected shouldValidate() {\n if (!this.hasRendered) return;\n requestAnimationFrame(() => {\n if (this.validateOn === 'dirty') this.validate();\n });\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n this.nanoChange.emit({ value: this.value });\n this.charCount = this.value?.length || 0;\n\n if (this.type === 'textarea' && this.resize === 'auto') {\n this.nativeInput.style.height = 'auto';\n if (this.value?.length)\n this.nativeInput.style.height = this.nativeInput.scrollHeight + 'px';\n }\n\n requestAnimationFrame(() => {\n if (this.validateOn === 'dirty') this.validate();\n });\n }\n\n @Watch('debounce')\n protected debounceChanged() {\n this.nanoChange = debounceEvent(this.nanoChange, this.debounce);\n }\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() nanoInput!: EventEmitter<InputEvent>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() nanoChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the input has been created.\n * @internal\n */\n @Event() nanoDidLoad!: EventEmitter<void>;\n\n /**\n * Emitted when the input has been removed.\n * @internal\n */\n @Event() nanoDidUnload!: EventEmitter<void>;\n\n /**\n * Called when validation is performed (which depends on `validateOn`).\n * @returns event.detail: `{ isValid: boolean, errorMessage: string, originalEvent: Event }`.\n */\n @Event() nanoValidate: EventEmitter<ControlValidityEventDetail>;\n\n /**\n * Get the current state of the control.\n * @param validateFirst - perform validation first before reporting\n * @returns `{ isValid: boolean, errorMessage: string }`\n */\n @Method()\n async reportValidity(validateFirst: boolean): Promise<ControlValidity> {\n return new Promise((resolve) => {\n if (validateFirst) this.validate();\n setTimeout(() => {\n resolve({\n isValid: !this._invalid,\n errorMessage: this.nativeInput.validationMessage,\n });\n }, 50);\n });\n }\n\n /**\n * Sets focus on the specified `nano-input`. Use this method instead of the global\n * `input.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n this.nativeInput.click();\n }\n }\n\n /**\n * Sets focus and select the text on the specified `nano-input`. Use this method instead of the global\n * `input.select()`.\n */\n @Method()\n async select() {\n if (this.nativeInput) {\n this.nativeInput.select();\n }\n }\n\n /**\n * @returns the native `<input>` element used under the hood.\n */\n @Method()\n getInputElement(): Promise<HTMLInputElement | HTMLTextAreaElement> {\n return Promise.resolve(this.nativeInput);\n }\n\n /**\n * Invalidate the field and show a custom error message. To clear the error you will need to re-call this method with an empty string.\n */\n @Method()\n async showError(message: string) {\n if (this.nativeInput) {\n this.nativeInput.setCustomValidity(message);\n this.validate();\n }\n }\n\n @Listen('reset', { target: 'body' })\n onReset(e) {\n const form = this.form\n ? document.querySelector('#' + this.form)\n : this.el.closest('form');\n if (!form || e.target !== this.el.closest('form')) return;\n\n this.value = '';\n }\n\n @Listen('mousedown', { target: 'body' })\n @Listen('keydown')\n handleBlur(e: KeyboardEvent | MouseEvent | FocusEvent) {\n if (!this.hasFocus) return;\n\n const kev = e as KeyboardEvent;\n let target: Element;\n\n requestAnimationFrame(() => {\n if (e instanceof KeyboardEvent && kev.key) {\n if (kev.key !== 'Tab') return;\n target = document.activeElement;\n } else if (e instanceof FocusEvent) {\n target = document.activeElement;\n } else target = e.target as Element;\n\n if (closestElement(this.el.tagName.toLowerCase(), target) !== this.el) {\n this.onBlur();\n }\n });\n }\n\n private shouldClearOnEdit() {\n const { type, clearOnEdit } = this;\n return clearOnEdit === undefined ? type === 'password' : clearOnEdit;\n }\n\n private getValue(): string {\n return this.value || '';\n }\n\n private validate = (ev?: Event) => {\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n\n if (!this.nativeInput.validity.valid) {\n if (this.showInlineError) {\n if (ev) ev.preventDefault();\n this.errorMessage = this.nativeInput.validationMessage;\n }\n this._invalid = true;\n } else this._invalid = false;\n\n this.nanoValidate.emit({\n isValid: !this._invalid,\n errorMessage: this.nativeInput.validationMessage,\n originalEvent: ev,\n });\n };\n\n private onInput = (ev: InputEvent) => {\n const input = ev.target as HTMLInputElement | null;\n this.value = input?.value || '';\n this.nanoInput.emit(ev);\n };\n\n private onBlur = () => {\n this.hasFocus = false;\n this.focusChanged();\n if (this.validateOn === 'dirty') this.validate();\n this.nanoBlur.emit();\n };\n\n private onFocus = () => {\n this.hasFocus = true;\n this.focusChanged();\n this.nanoFocus.emit();\n };\n\n private onKeydown = () => {\n if (this.shouldClearOnEdit()) {\n // Did the input value change after it was blurred and edited?\n if (this.didBlurAfterEdit && this.hasValue()) {\n // Clear the input\n this.clearTextInput();\n }\n\n // Reset the flag\n this.didBlurAfterEdit = false;\n }\n };\n\n private clearTextInput = (ev?: Event) => {\n if (this.clearInput && !this.readonly && !this.disabled && ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n this.value = '';\n this.nativeInput.value = '';\n const event = new window.Event('change');\n this.nativeInput.dispatchEvent(event);\n };\n\n private focusChanged() {\n // If clearOnEdit is enabled and the input blurred but has a value, set a flag\n if (!this.hasFocus && this.shouldClearOnEdit() && this.hasValue()) {\n this.didBlurAfterEdit = true;\n }\n }\n\n private hasValue(): boolean {\n return this.getValue().length > 0;\n }\n\n private slotChangeObserver() {\n if (!Build.isBrowser) return;\n\n if (this.mo) this.mo.disconnect();\n const mo = (this.mo = new MutationObserver(() =>\n this.processSlottedContent()\n ));\n mo.observe(this.el, { childList: true, subtree: true });\n }\n\n private processSlottedContent() {\n // see if we have label / button content\n this.hasLabelSlot = !!this.el.querySelectorAll('[slot=\"label\"]');\n this.hasHelperSlot = !!this.el.querySelector('[slot=\"helper\"]');\n this.hasHelperEndSlot = !!this.el.querySelector('[slot=\"helper-end\"]');\n this.datalist = this.el.querySelector('nano-datalist:not([slot])');\n\n // breaking change introduced in v2. Rm in v3\n if (this.el.querySelector('[slot=\"inline-button\"]')) {\n console.warn(\n 'The `inline-button` slot was renamed to `end` in v2 - please update your code',\n this.el\n );\n }\n }\n\n connectedCallback() {\n this.debounceChanged();\n if (Build.isBrowser) {\n this.el.dispatchEvent(\n new CustomEvent('nanoDidLoad', {\n detail: this.el,\n })\n );\n }\n }\n\n disconnectedCallback() {\n if (Build.isBrowser) {\n document.dispatchEvent(\n new CustomEvent('nanoDidUnload', {\n detail: this.el,\n })\n );\n }\n if (this.mo) this.mo.disconnect();\n }\n\n componentDidLoad() {\n this.slotChangeObserver();\n this.hasRendered = true;\n if (this.autofocus) setTimeout((_) => this.setFocus(), 300);\n }\n\n componentWillLoad() {\n this.processSlottedContent();\n }\n\n render() {\n const value = this.getValue();\n const labelId = this.inputId + '-lbl';\n const moreId =\n this.showInlineError || this.hasHelperSlot ? this.inputId + '-more' : '';\n const helperEndId = this.hasHelperEndSlot ? this.inputId + '-helper' : '';\n this.rtl = this.el.ownerDocument.dir === 'rtl';\n\n const compWrapOptions = (({\n el,\n floatLabel,\n label,\n errorMessage,\n type,\n showInlineError,\n hasHelperSlot,\n hasLabelSlot,\n hideLabel,\n placeholder,\n maxlength,\n charCount,\n showCharCount,\n rtl,\n hasHelperEndSlot,\n }) => ({\n el,\n floatLabel,\n label,\n errorMessage,\n type,\n showInlineError,\n hasHelperSlot,\n hasLabelSlot,\n hideLabel,\n placeholder,\n maxlength,\n charCount,\n showCharCount,\n rtl,\n hasHelperEndSlot,\n }))(this);\n const wrapOptions = {\n ...compWrapOptions,\n labelId,\n moreId,\n helperEndId,\n hasValue: this.hasValue(),\n controlId: this.inputId,\n };\n\n const controlOptions = (({ clearInput, readonly, disabled }) => ({\n clearInput,\n readonly,\n disabled,\n clearControl: this.clearInput,\n }))(this);\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n dir={this.rtl ? 'rtl' : null}\n class={{\n ...createColorClasses(this.color),\n 'has-value': this.hasValue(),\n 'has-focus': this.hasFocus,\n 'is-invalid': this._invalid,\n }}\n >\n <div style={{ width: '100%' }}>\n <FormControlWrap {...wrapOptions}>\n <FormControl\n {...controlOptions}\n onClearText={this.clearTextInput}\n control={this.el}\n ref={(el) => (this.nativeInputWrap = el)}\n >\n {this.type !== 'textarea' && (\n <input\n id={this.inputId}\n class=\"input__native-ctrl\"\n ref={(input) => (this.nativeInput = input)}\n aria-labelledby={labelId + ' ' + moreId + ' ' + helperEndId}\n disabled={this.disabled}\n accept={this.accept}\n autoCapitalize={this.autocapitalise}\n autoComplete={this.autocomplete}\n autoCorrect={this.autocorrect}\n autoFocus={this.autofocus}\n inputMode={this.inputmode}\n form={this.form}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n step={this.step}\n size={this.size}\n type={this.type}\n value={value}\n onInput={this.onInput}\n onChange={this.onInput}\n onFocus={this.onFocus}\n onBlur={this.handleBlur}\n onKeyDown={this.onKeydown}\n onInvalid={this.validate}\n />\n )}\n {this.type === 'textarea' && (\n <textarea\n rows={this.floatLabel ? 1 : this.rows}\n id={this.inputId}\n class={{\n 'input__native-ctrl': true,\n input__resizable: this.resize === 'true',\n }}\n ref={(input) => (this.nativeInput = input)}\n aria-labelledby={labelId + ' ' + moreId + ' ' + helperEndId}\n disabled={this.disabled}\n autoCapitalize={this.autocapitalise}\n autoCorrect={this.autocorrect}\n autoFocus={this.autofocus}\n inputMode={this.inputmode}\n form={this.form}\n minLength={this.minlength}\n maxLength={this.maxlength}\n name={this.name}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n value={value}\n onInput={this.onInput}\n onChange={this.onInput}\n onFocus={this.onFocus}\n onKeyDown={this.onKeydown}\n onInvalid={this.validate}\n onBlur={this.handleBlur}\n ></textarea>\n )}\n </FormControl>\n </FormControlWrap>\n <slot />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["inputCss","NanoInputStyle0","inputIds","Input","nativeInput","inputId","didBlurAfterEdit","rtl","mo","charCount","hasRendered","_nativeInputWrap","nativeInputWrap","this","ele","setDataListOpts","constructor","hostRef","validate","debounce","handleBlur","bind","hasFocus","hasLabelSlot","hasHelperSlot","hasHelperEndSlot","errorMessage","datalist","currDWConfig","dropDownConfig","skidding","tetherTo","invalid","_invalid","validityMessage","validationMessage","color","accept","autocapitalise","autocomplete","autocorrect","autofocus","clearInput","clearOnEdit","disabled","inputmode","validateOn","showInlineError","label","hideLabel","floatLabel","max","maxlength","min","minlength","multiple","name","pattern","placeholder","readonly","required","spellcheck","step","size","type","form","value","resize","rows","showCharCount","shouldValidate","requestAnimationFrame","valueChanged","nanoChange","emit","length","style","height","scrollHeight","debounceChanged","debounceEvent","nanoInput","nanoBlur","nanoFocus","nanoDidLoad","nanoDidUnload","nanoValidate","reportValidity","validateFirst","Promise","resolve","setTimeout","isValid","setFocus","focus","click","select","getInputElement","showError","message","setCustomValidity","onReset","e","document","querySelector","el","closest","target","kev","KeyboardEvent","key","activeElement","FocusEvent","closestElement","tagName","toLowerCase","onBlur","shouldClearOnEdit","undefined","getValue","ev","validity","valid","preventDefault","originalEvent","onInput","input","focusChanged","onFocus","onKeydown","hasValue","clearTextInput","stopPropagation","event","window","Event","dispatchEvent","slotChangeObserver","disconnect","MutationObserver","processSlottedContent","observe","childList","subtree","querySelectorAll","console","warn","connectedCallback","CustomEvent","detail","disconnectedCallback","componentDidLoad","_","componentWillLoad","render","labelId","moreId","helperEndId","ownerDocument","dir","compWrapOptions","wrapOptions","controlId","controlOptions","clearControl","h","Host","class","createColorClasses","width","FormControlWrap","FormControl","onClearText","control","ref","id","autoCapitalize","autoComplete","autoCorrect","autoFocus","inputMode","minLength","maxLength","readOnly","onChange","onKeyDown","onInvalid","input__resizable"],"sources":["src/components/input/input.scss?tag=nano-input&encapsulation=scoped","src/components/input/input.tsx"],"sourcesContent":["@use '../../global/style/utilities/mixins' as mx;\n@use '../../global/style/utilities/colours' as colour;\n@use '../../global/style/nano-theme/tokens';\n@use '../form-control/form-control-vars' as formControl;\n@use '../form-control/form-control';\n\n:host {\n @include formControl.vars;\n\n position: relative;\n inline-size: 100%;\n padding: 0 !important;\n color: currentcolor;\n display: block;\n}\n\n:host(.nano-color) {\n color: colour.current-color(base);\n\n --input-border-style--focus:\n #{tokens.$input-border-style} var(\n --nano-color-tint,\n #{tokens.nano-color(\n primary,\n tint\n )}\n );\n}\n\n.input__native-ctrl {\n @include mx.text-inherit();\n\n padding-block: 0;\n padding-inline: var(--padding-start) var(--padding-end);\n border-radius: var(--input-border-radius);\n text-overflow: ellipsis;\n color: var(--input-text-color);\n display: inline-block;\n flex: 1;\n inline-size: 100%;\n max-inline-size: 100%;\n max-block-size: 100%;\n border: 0;\n outline: none;\n background: transparent;\n appearance: none;\n margin: 0;\n box-sizing: border-box;\n resize: none;\n overflow: hidden;\n line-height: 2.5em;\n // min-height: 2.5em;\n\n .has-float-label & {\n line-height: 2.1em;\n min-block-size: 2.1em;\n padding-block-start: 1.4em;\n }\n\n &::placeholder {\n color: var(--placeholder-color);\n font-family: inherit;\n font-style: var(--placeholder-font-style);\n font-weight: var(--placeholder-font-weight);\n opacity: var(--placeholder-opacity);\n line-height: inherit;\n min-block-size: initial;\n }\n\n /* stylelint-disable-next-line selector-no-vendor-prefix */\n &::-moz-placeholder {\n line-height: 2.8em;\n text-overflow: ellipsis;\n }\n\n &:-webkit-autofill {\n background-color: transparent;\n }\n\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n appearance: none;\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &::-ms-clear,\n &::-ms-reveal {\n display: none;\n }\n\n &.input__resizable {\n resize: vertical;\n overflow: auto;\n }\n\n .form-ctrl__textarea & {\n line-height: 1.5em;\n padding-block: var(--padding-top) 0.25em;\n white-space: pre-wrap;\n\n &::placeholder {\n line-height: 1.5em;\n }\n\n .has-float-label & {\n padding-block-start: 1.75em;\n }\n }\n\n :host([readonly]:not([readonly='false'])) & {\n user-select: none;\n }\n}\n","import {\n Build,\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n Watch,\n h,\n Listen,\n} from '@stencil/core';\n\nimport { closestElement } from '../../utils/dom';\nimport { createColorClasses } from '../../utils/theme';\nimport { debounceEvent, debounce } from '../../utils/throttle';\nimport { FormControl, FormControlWrap } from '../form-control/form-control';\nimport { InputChangeEventDetail } from './input-interface';\nimport type {\n Color,\n ControlValidity,\n ControlValidityEventDetail,\n TextFieldTypes,\n} from '../../types/shared';\n\nlet inputIds = 0;\n\n/**\n * The input component is a wrapper to the HTML input element with custom styling and additional functionality. It accepts most of the same properties as the HTML [input](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input).\n *\nIt is meant for text type inputs only, such as \"text\", \"password\", \"email\", \"number\", \"search\", \"tel\", and \"url\". It supports all standard text input events including keyup, keydown, keypress, and more.\nThe default styling reference comes from the [ONT styleguide](https://nanoporetech.zeroheight.com/styleguide/s/31282/p/230c74-text-input--textarea/b/942ee4)\n * @slot start - suitable for inline action buttons or icons that may add extra contextual information\n * @slot end - suitable for inline action buttons or icons that may add extra contextual information\n * @slot value-start - similar to 'start', however clicking elements using this slot will activate the input control. This would be suitable to show a secodary 'value' for context or to show a dropdown arrow if using a datalist\n * @slot value-end - similar to 'end', however clicking elements using this slot will activate the input control. This would be suitable to show a secodary 'value' for context or to show a dropdown arrow if using a datalist\n * @slot label - if you do not set a label attribute, you can use this slot for more complex markup\n * @slot helper - helper text to accompany the form field underneath.\n * @slot helper-end - helper text to accompany the form field on the side.\n * @slot - can be used with a `nano-datalist`. See the `nano-datalist` docs for more information\n */\n@Component({\n tag: 'nano-input',\n styleUrl: 'input.scss',\n scoped: true,\n})\nexport class Input implements ComponentInterface {\n private nativeInput?: HTMLInputElement | HTMLTextAreaElement;\n private inputId = `nano-input-${inputIds++}`;\n private didBlurAfterEdit = false;\n private rtl: boolean = false;\n private mo?: MutationObserver;\n private charCount = 0;\n private hasRendered = false;\n\n // we don't want these rendered eles decorated with @State\n // because that will cause re-renders. User get/set to set datalist options\n private _nativeInputWrap: HTMLElement;\n private get nativeInputWrap() {\n return this._nativeInputWrap;\n }\n private set nativeInputWrap(ele: HTMLElement) {\n if (this._nativeInputWrap === ele) return;\n this._nativeInputWrap = ele;\n this.setDataListOpts();\n }\n\n constructor() {\n this.validate = debounce(this.validate, 50);\n this.handleBlur = this.handleBlur.bind(this);\n }\n\n @State() hasFocus = false;\n @State() hasLabelSlot = false;\n @State() hasHelperSlot = false;\n @State() hasHelperEndSlot = false;\n @State() errorMessage: string = '';\n @State() datalist: HTMLNanoDatalistElement = null;\n\n @Watch('datalist')\n setDataListOpts() {\n if (!this.datalist) return;\n const currDWConfig = this.datalist.dropDownConfig || {};\n this.datalist.dropDownConfig = {\n ...currDWConfig,\n skidding: -1,\n tetherTo: this.nativeInputWrap,\n };\n }\n\n @Element() el!: HTMLNanoInputElement;\n\n /**\n * This will be true when the control is in an invalid state.\n * Validity is determined by the `required` prop. Or if custom validity message is set. @readonly\n */\n @Prop({ reflect: true })\n get invalid() {\n return this._invalid;\n }\n @State() _invalid = false;\n\n /**\n * Current validation message - if any. @readonly\n */\n @Prop()\n get validityMessage() {\n if (!this.nativeInput) return '';\n return this.nativeInput.validationMessage;\n }\n\n /**\n * The color to use from the application's color palette.\n */\n @Prop() color?: Color;\n\n /**\n * If the value of the type attribute is `\"file\"`, then this attribute will indicate the types of files that the server accepts, otherwise it will be ignored. The value must be a comma-separated list of unique content type specifiers.\n */\n @Prop() accept?: string;\n\n /**\n * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\n */\n @Prop() autocapitalise: 'none' | 'sentences' | 'words' | 'characters' =\n 'none';\n\n /**\n * Indicates whether the value of the control can be automatically completed by the browser.\n */\n @Prop() autocomplete: 'on' | 'off' = 'off';\n\n /**\n * Whether auto correction should be enabled when the user is entering/editing the text value.\n */\n @Prop() autocorrect: 'on' | 'off' = 'off';\n\n /**\n * This Boolean attribute lets you specify that a form control should have input focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input.\n */\n @Prop() clearInput = false;\n\n /**\n * If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `\"password\"`, `false` for all other types.\n */\n @Prop() clearOnEdit?: boolean;\n\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `nanoChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n\n /**\n * If `true`, the user cannot interact with the input.\n */\n @Prop({ reflect: true }) disabled = false;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode?:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search';\n\n /**\n * When should the field perform validation\n */\n @Prop({ mutable: true }) validateOn: 'dirty' | 'submit' | 'submitThenDirty' =\n 'submitThenDirty';\n\n /**\n * Whether to show validation errors underneath input\n */\n @Prop({ reflect: true }) showInlineError = true;\n\n /**\n * String to place within a label element. Alternatively you may use a label slot.\n */\n @Prop() label!: string;\n\n /**\n * Visually hide the label - but make it accessible.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * Enable floating label behaviour. Will disable placeholder if set.\n */\n @Prop() floatLabel: boolean = false;\n\n /**\n * The maximum value, which must not be less than its minimum (min attribute) value.\n */\n @Prop() max?: string;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the maximum number of characters that the user can enter.\n */\n @Prop() maxlength?: number;\n\n /**\n * The minimum value, which must not be greater than its maximum (max attribute) value.\n */\n @Prop() min?: string;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the minimum number of characters that the user can enter.\n */\n @Prop() minlength?: number;\n\n /**\n * If `true`, the user can enter more than one value. This attribute applies when the type attribute is set to `\"email\"` or `\"file\"`, otherwise it is ignored.\n */\n @Prop() multiple?: boolean;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * A regular expression that the value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, or `\"password\"`, otherwise it is ignored.\n */\n @Prop() pattern?: string;\n\n /**\n * Instructional text that shows before the input has a value.\n */\n @Prop() placeholder?: string | null;\n\n /**\n * If `true`, the user cannot modify the value.\n */\n @Prop({ reflect: true }) readonly = false;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the element will have its spelling and grammar checked.\n */\n @Prop() spellcheck = false;\n\n /**\n * Works with the min and max attributes to limit the increments at which a value can be set.\n * Possible values are: `\"any\"` or a positive floating point number.\n */\n @Prop() step?: string;\n\n /**\n * The initial size of the control. This value is in pixels unless the value of the type attribute is `\"text\"` or `\"password\"`, in which case it is an integer number of characters. This attribute applies only when the `type` attribute is set to `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, or `\"password\"`, otherwise it is ignored.\n */\n @Prop() size?: number;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop({ reflect: true }) type: TextFieldTypes = 'text';\n\n /**\n * The form element to associate the input with (its form owner). Must be the id of a form.\n */\n @Prop() form?: string | null;\n\n /**\n * The value of the input.\n */\n @Prop({ mutable: true }) value?: string | null = '';\n\n /**\n * relevant to type=\"textarea\". Vertical resizing - enable / disable or make automatic.\n */\n @Prop() resize: 'true' | 'false' | 'auto' = 'auto';\n\n /**\n * relevant to type=\"textarea\". Default number of rows to show\n */\n @Prop() rows = 2;\n\n /**\n * relevant to type=\"textarea\".\n */\n @Prop() showCharCount = false;\n\n @Watch('minlength')\n @Watch('maxlength')\n @Watch('min')\n @Watch('max')\n @Watch('required')\n @Watch('disabled')\n @Watch('readonly')\n @Watch('pattern')\n @Watch('inputmode')\n protected shouldValidate() {\n if (!this.hasRendered) return;\n requestAnimationFrame(() => {\n if (this.validateOn === 'dirty') this.validate();\n });\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n this.nanoChange.emit({ value: this.value });\n this.charCount = this.value?.length || 0;\n\n if (this.type === 'textarea' && this.resize === 'auto') {\n this.nativeInput.style.height = 'auto';\n if (this.value?.length)\n this.nativeInput.style.height = this.nativeInput.scrollHeight + 'px';\n }\n\n requestAnimationFrame(() => {\n if (this.validateOn === 'dirty') this.validate();\n });\n }\n\n @Watch('debounce')\n protected debounceChanged() {\n this.nanoChange = debounceEvent(this.nanoChange, this.debounce);\n }\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() nanoInput!: EventEmitter<InputEvent>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() nanoChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the input has been created.\n * @internal\n */\n @Event() nanoDidLoad!: EventEmitter<void>;\n\n /**\n * Emitted when the input has been removed.\n * @internal\n */\n @Event() nanoDidUnload!: EventEmitter<void>;\n\n /**\n * Called when validation is performed (which depends on `validateOn`).\n * @returns event.detail: `{ isValid: boolean, errorMessage: string, originalEvent: Event }`.\n */\n @Event() nanoValidate: EventEmitter<ControlValidityEventDetail>;\n\n /**\n * Get the current state of the control.\n * @param validateFirst - perform validation first before reporting\n * @returns `{ isValid: boolean, errorMessage: string }`\n */\n @Method()\n async reportValidity(validateFirst: boolean): Promise<ControlValidity> {\n return new Promise((resolve) => {\n if (validateFirst) this.validate();\n setTimeout(() => {\n resolve({\n isValid: !this._invalid,\n errorMessage: this.nativeInput.validationMessage,\n });\n }, 50);\n });\n }\n\n /**\n * Sets focus on the specified `nano-input`. Use this method instead of the global\n * `input.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n this.nativeInput.click();\n }\n }\n\n /**\n * Sets focus and select the text on the specified `nano-input`. Use this method instead of the global\n * `input.select()`.\n */\n @Method()\n async select() {\n if (this.nativeInput) {\n this.nativeInput.select();\n }\n }\n\n /**\n * @returns the native `<input>` element used under the hood.\n */\n @Method()\n getInputElement(): Promise<HTMLInputElement | HTMLTextAreaElement> {\n return Promise.resolve(this.nativeInput);\n }\n\n /**\n * Invalidate the field and show a custom error message. To clear the error you will need to re-call this method with an empty string.\n */\n @Method()\n async showError(message: string) {\n if (this.nativeInput) {\n this.nativeInput.setCustomValidity(message);\n this.validate();\n }\n }\n\n @Listen('reset', { target: 'body' })\n onReset(e) {\n const form = this.form\n ? document.querySelector('#' + this.form)\n : this.el.closest('form');\n if (!form || e.target !== this.el.closest('form')) return;\n\n this.value = '';\n }\n\n @Listen('mousedown', { target: 'body' })\n @Listen('keydown')\n handleBlur(e: KeyboardEvent | MouseEvent | FocusEvent) {\n if (!this.hasFocus) return;\n\n const kev = e as KeyboardEvent;\n let target: Element;\n\n requestAnimationFrame(() => {\n if (e instanceof KeyboardEvent && kev.key) {\n if (kev.key !== 'Tab') return;\n target = document.activeElement;\n } else if (e instanceof FocusEvent) {\n target = document.activeElement;\n } else target = e.target as Element;\n\n if (closestElement(this.el.tagName.toLowerCase(), target) !== this.el) {\n this.onBlur();\n }\n });\n }\n\n private shouldClearOnEdit() {\n const { type, clearOnEdit } = this;\n return clearOnEdit === undefined ? type === 'password' : clearOnEdit;\n }\n\n private getValue(): string {\n return this.value || '';\n }\n\n private validate = (ev?: Event) => {\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n\n if (!this.nativeInput.validity.valid) {\n if (this.showInlineError) {\n if (ev) ev.preventDefault();\n this.errorMessage = this.nativeInput.validationMessage;\n }\n this._invalid = true;\n } else this._invalid = false;\n\n this.nanoValidate.emit({\n isValid: !this._invalid,\n errorMessage: this.nativeInput.validationMessage,\n originalEvent: ev,\n });\n };\n\n private onInput = (ev: InputEvent) => {\n const input = ev.target as HTMLInputElement | null;\n this.value = input?.value || '';\n this.nanoInput.emit(ev);\n };\n\n private onBlur = () => {\n this.hasFocus = false;\n this.focusChanged();\n if (this.validateOn === 'dirty') this.validate();\n this.nanoBlur.emit();\n };\n\n private onFocus = () => {\n this.hasFocus = true;\n this.focusChanged();\n this.nanoFocus.emit();\n };\n\n private onKeydown = () => {\n if (this.shouldClearOnEdit()) {\n // Did the input value change after it was blurred and edited?\n if (this.didBlurAfterEdit && this.hasValue()) {\n // Clear the input\n this.clearTextInput();\n }\n\n // Reset the flag\n this.didBlurAfterEdit = false;\n }\n };\n\n private clearTextInput = (ev?: Event) => {\n if (this.clearInput && !this.readonly && !this.disabled && ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n this.value = '';\n this.nativeInput.value = '';\n const event = new window.Event('change');\n this.nativeInput.dispatchEvent(event);\n };\n\n private focusChanged() {\n // If clearOnEdit is enabled and the input blurred but has a value, set a flag\n if (!this.hasFocus && this.shouldClearOnEdit() && this.hasValue()) {\n this.didBlurAfterEdit = true;\n }\n }\n\n private hasValue(): boolean {\n return this.getValue().length > 0;\n }\n\n private slotChangeObserver() {\n if (!Build.isBrowser) return;\n\n if (this.mo) this.mo.disconnect();\n const mo = (this.mo = new MutationObserver(() =>\n this.processSlottedContent()\n ));\n mo.observe(this.el, { childList: true, subtree: true });\n }\n\n private processSlottedContent() {\n // see if we have label / button content\n this.hasLabelSlot = !!this.el.querySelectorAll('[slot=\"label\"]');\n this.hasHelperSlot = !!this.el.querySelector('[slot=\"helper\"]');\n this.hasHelperEndSlot = !!this.el.querySelector('[slot=\"helper-end\"]');\n this.datalist = this.el.querySelector('nano-datalist:not([slot])');\n\n // breaking change introduced in v2. Rm in v3\n if (this.el.querySelector('[slot=\"inline-button\"]')) {\n console.warn(\n 'The `inline-button` slot was renamed to `end` in v2 - please update your code',\n this.el\n );\n }\n }\n\n connectedCallback() {\n this.debounceChanged();\n if (Build.isBrowser) {\n this.el.dispatchEvent(\n new CustomEvent('nanoDidLoad', {\n detail: this.el,\n })\n );\n }\n }\n\n disconnectedCallback() {\n if (Build.isBrowser) {\n document.dispatchEvent(\n new CustomEvent('nanoDidUnload', {\n detail: this.el,\n })\n );\n }\n if (this.mo) this.mo.disconnect();\n }\n\n componentDidLoad() {\n this.slotChangeObserver();\n this.hasRendered = true;\n if (this.autofocus) setTimeout((_) => this.setFocus(), 300);\n }\n\n componentWillLoad() {\n this.processSlottedContent();\n }\n\n render() {\n const value = this.getValue();\n const labelId = this.inputId + '-lbl';\n const moreId =\n this.showInlineError || this.hasHelperSlot ? this.inputId + '-more' : '';\n const helperEndId = this.hasHelperEndSlot ? this.inputId + '-helper' : '';\n this.rtl = this.el.ownerDocument.dir === 'rtl';\n\n const compWrapOptions = (({\n el,\n floatLabel,\n label,\n errorMessage,\n type,\n showInlineError,\n hasHelperSlot,\n hasLabelSlot,\n hideLabel,\n placeholder,\n maxlength,\n charCount,\n showCharCount,\n rtl,\n hasHelperEndSlot,\n }) => ({\n el,\n floatLabel,\n label,\n errorMessage,\n type,\n showInlineError,\n hasHelperSlot,\n hasLabelSlot,\n hideLabel,\n placeholder,\n maxlength,\n charCount,\n showCharCount,\n rtl,\n hasHelperEndSlot,\n }))(this);\n const wrapOptions = {\n ...compWrapOptions,\n labelId,\n moreId,\n helperEndId,\n hasValue: this.hasValue(),\n controlId: this.inputId,\n };\n\n const controlOptions = (({ clearInput, readonly, disabled }) => ({\n clearInput,\n readonly,\n disabled,\n clearControl: this.clearInput,\n }))(this);\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n dir={this.rtl ? 'rtl' : null}\n class={{\n ...createColorClasses(this.color),\n 'has-value': this.hasValue(),\n 'has-focus': this.hasFocus,\n 'is-invalid': this._invalid,\n }}\n >\n <div style={{ width: '100%' }}>\n <FormControlWrap {...wrapOptions}>\n <FormControl\n {...controlOptions}\n onClearText={this.clearTextInput}\n control={this.el}\n ref={(el) => (this.nativeInputWrap = el)}\n >\n {this.type !== 'textarea' && (\n <input\n id={this.inputId}\n class=\"input__native-ctrl\"\n ref={(input) => (this.nativeInput = input)}\n aria-labelledby={labelId + ' ' + moreId + ' ' + helperEndId}\n disabled={this.disabled}\n accept={this.accept}\n autoCapitalize={this.autocapitalise}\n autoComplete={this.autocomplete}\n autoCorrect={this.autocorrect}\n autoFocus={this.autofocus}\n inputMode={this.inputmode}\n form={this.form}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n step={this.step}\n size={this.size}\n type={this.type}\n value={value}\n onInput={this.onInput}\n onChange={this.onInput}\n onFocus={this.onFocus}\n onBlur={this.handleBlur}\n onKeyDown={this.onKeydown}\n onInvalid={this.validate}\n />\n )}\n {this.type === 'textarea' && (\n <textarea\n rows={this.floatLabel ? 1 : this.rows}\n id={this.inputId}\n class={{\n 'input__native-ctrl': true,\n input__resizable: this.resize === 'true',\n }}\n ref={(input) => (this.nativeInput = input)}\n aria-labelledby={labelId + ' ' + moreId + ' ' + helperEndId}\n disabled={this.disabled}\n autoCapitalize={this.autocapitalise}\n autoCorrect={this.autocorrect}\n autoFocus={this.autofocus}\n inputMode={this.inputmode}\n form={this.form}\n minLength={this.minlength}\n maxLength={this.maxlength}\n name={this.name}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n value={value}\n onInput={this.onInput}\n onChange={this.onInput}\n onFocus={this.onFocus}\n onKeyDown={this.onKeydown}\n onInvalid={this.validate}\n onBlur={this.handleBlur}\n ></textarea>\n )}\n </FormControl>\n </FormControlWrap>\n <slot />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import{r as t,c as e,g as s,h as i}from"./index-815d3f98.js";import{f as n}from"./scroll-parent-be39fbd0.js";const h=class{constructor(s){t(this,s);this.nanoIntersectionChange=e(this,"nanoIntersectionChange",7);this.nanoIntersecting=e(this,"nanoIntersecting",7);this.nanoNotIntersecting=e(this,"nanoNotIntersecting",7)}io;_root;_threshold;defaultSlot;get observerOptions(){const t={};if(this._root)t.root=this._root;if(this.rootMargin)t.rootMargin=this.rootMargin;if(this.threshold)t.threshold=this._threshold;return t}get elements(){const t=this.defaultSlot?.assignedElements()||[];return t.flatMap((t=>{const e=getComputedStyle(t);if(e.display.includes("contents"))return Array.from(t.children);else return t}))}get host(){return s(this)}root="auto";handleRootChange(){if(!this.root){this._root=undefined;this.removeIO();return}let t;if(this.root==="auto"){t=n(this.host)}else if(this.root==="root"){t=undefined}else{t=this.root}if(t===document.documentElement)t=undefined;if(t===this._root)return;this._root=t;this.addIO()}rootMargin;threshold;handleThresholdChange(){if(!this.threshold){this._threshold=undefined;return}if(this.threshold.includes(",")){this._threshold=this.threshold.split(",").map((t=>Number(t)));return}this._threshold=Number(this.threshold)}nanoIntersectionChange;nanoIntersecting;nanoNotIntersecting;ioCallback=t=>{t.forEach((t=>{this.nanoIntersectionChange.emit(t);if(t.isIntersecting)this.nanoIntersecting.emit(t);if(!t.isIntersecting)this.nanoNotIntersecting.emit(t)}))};handleSlotChange=()=>{this.addIO()};addIO(){if(!window["IntersectionObserver"]||!this.elements?.length)return;if(this.io)this.removeIO();const t=this.io=new IntersectionObserver(this.ioCallback,this.observerOptions);this.elements?.forEach((e=>{t.observe(e)}))}removeIO(){if(!this.io)return;this.io.disconnect();this.io=undefined}connectedCallback(){this.handleThresholdChange();this.handleRootChange()}disconnectedCallback(){this.removeIO();this.root=this._root=undefined}render(){return i("slot",{key:"0da262d253c86deab79c0917360eec9b918e4fa0",ref:t=>this.defaultSlot=t,onSlotchange:this.handleSlotChange})}static get watchers(){return{root:["handleRootChange"],threshold:["handleThresholdChange"],defaultSlot:["addIO"]}}};h.style="nano-intersection-observe { display: contents }";export{h as nano_intersection_observe};
4
+ import{r as t,c as e,g as s,h as i}from"./index-3118109b.js";import{f as n}from"./scroll-parent-be39fbd0.js";const h=class{constructor(s){t(this,s);this.nanoIntersectionChange=e(this,"nanoIntersectionChange",7);this.nanoIntersecting=e(this,"nanoIntersecting",7);this.nanoNotIntersecting=e(this,"nanoNotIntersecting",7)}io;_root;_threshold;defaultSlot;get observerOptions(){const t={};if(this._root)t.root=this._root;if(this.rootMargin)t.rootMargin=this.rootMargin;if(this.threshold)t.threshold=this._threshold;return t}get elements(){const t=this.defaultSlot?.assignedElements()||[];return t.flatMap((t=>{const e=getComputedStyle(t);if(e.display.includes("contents"))return Array.from(t.children);else return t}))}get host(){return s(this)}root="auto";handleRootChange(){if(!this.root){this._root=undefined;this.removeIO();return}let t;if(this.root==="auto"){t=n(this.host)}else if(this.root==="root"){t=undefined}else{t=this.root}if(t===document.documentElement)t=undefined;if(t===this._root)return;this._root=t;this.addIO()}rootMargin;threshold;handleThresholdChange(){if(!this.threshold){this._threshold=undefined;return}if(this.threshold.includes(",")){this._threshold=this.threshold.split(",").map((t=>Number(t)));return}this._threshold=Number(this.threshold)}nanoIntersectionChange;nanoIntersecting;nanoNotIntersecting;ioCallback=t=>{t.forEach((t=>{this.nanoIntersectionChange.emit(t);if(t.isIntersecting)this.nanoIntersecting.emit(t);if(!t.isIntersecting)this.nanoNotIntersecting.emit(t)}))};handleSlotChange=()=>{this.addIO()};addIO(){if(!window["IntersectionObserver"]||!this.elements?.length)return;if(this.io)this.removeIO();const t=this.io=new IntersectionObserver(this.ioCallback,this.observerOptions);this.elements?.forEach((e=>{t.observe(e)}))}removeIO(){if(!this.io)return;this.io.disconnect();this.io=undefined}connectedCallback(){this.handleThresholdChange();this.handleRootChange()}disconnectedCallback(){this.removeIO();this.root=this._root=undefined}render(){return i("slot",{key:"75dfdac47190d025c8682bbc2756270130bdbc00",ref:t=>this.defaultSlot=t,onSlotchange:this.handleSlotChange})}static get watchers(){return{root:["handleRootChange"],threshold:["handleThresholdChange"],defaultSlot:["addIO"]}}};h.style="nano-intersection-observe { display: contents }";export{h as nano_intersection_observe};
5
5
  //# sourceMappingURL=nano-intersection-observe.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["IntersectionObserve","io","_root","_threshold","defaultSlot","observerOptions","opts","this","root","rootMargin","threshold","elements","slotted","assignedElements","flatMap","el","style","getComputedStyle","display","includes","Array","from","children","handleRootChange","undefined","removeIO","newRoot","findScrollParent","host","document","documentElement","addIO","handleThresholdChange","split","map","numStr","Number","nanoIntersectionChange","nanoIntersecting","nanoNotIntersecting","ioCallback","entries","forEach","entry","emit","isIntersecting","handleSlotChange","window","length","IntersectionObserver","observe","disconnect","connectedCallback","disconnectedCallback","render","h","key","ref","slot","onSlotchange"],"sources":["src/components/intersection-observe/intersection-observe.tsx"],"sourcesContent":["import {\n Component,\n h,\n Prop,\n Element,\n Watch,\n ComponentInterface,\n Event,\n EventEmitter,\n State,\n} from '@stencil/core';\nimport { findScrollParent } from '../../utils/scroll-parent';\n\n/**\n * A thin, declarative interface to the IntersectionObserver API.\n * @slot - Main slot for any content.\n */\n@Component({\n tag: 'nano-intersection-observe',\n styles: `nano-intersection-observe { display: contents }`,\n shadow: true,\n})\nexport class IntersectionObserve implements ComponentInterface {\n private io: IntersectionObserver;\n private _root: Element | Document;\n private _threshold: number | number[];\n\n @State() defaultSlot: HTMLSlotElement;\n\n get observerOptions() {\n const opts: IntersectionObserverInit = {};\n\n if (this._root) opts.root = this._root;\n if (this.rootMargin) opts.rootMargin = this.rootMargin;\n if (this.threshold) opts.threshold = this._threshold;\n\n return opts;\n }\n\n get elements(): Element[] | undefined {\n const slotted = this.defaultSlot?.assignedElements() || [];\n\n return slotted.flatMap((el) => {\n const style = getComputedStyle(el);\n if (style.display.includes('contents')) return Array.from(el.children);\n else return el;\n });\n }\n\n @Element() host: HTMLNanoIntersectionObserveElement;\n\n /** The element that is used as the viewport for checking visibility of the target. Must be the ancestor of the target.\n * Defaults to an automatic check for ancestors that `overflow: auto` or otherwise the `Document`. */\n @Prop() root: globalThis.Element | 'root' | 'auto' = 'auto';\n\n @Watch('root')\n handleRootChange() {\n if (!this.root) {\n this._root = undefined;\n this.removeIO();\n return;\n }\n\n let newRoot;\n\n if (this.root === 'auto') {\n // try to find nearest scrolling parent\n newRoot = findScrollParent(this.host);\n } else if (this.root === 'root') {\n newRoot = undefined;\n } else {\n // root is set explicitly\n newRoot = this.root;\n }\n\n // if it's the document - unset as that's IO's default\n if (newRoot === document.documentElement) newRoot = undefined;\n // if new root is what we already have - ignore\n if (newRoot === this._root) return;\n\n // cache and setup io\n this._root = newRoot;\n this.addIO();\n }\n\n /**\n * Margin around the root. Can be similar to CSS margins property, e.g. \"10px 20px 30px 40px\" (top, right, bottom, left).\n * The values can be percentages. This set of values serves to grow or shrink each side of the root element's\n * bounding box before computing intersections. Defaults to zeros. */\n @Prop() rootMargin?: string;\n\n /**\n * Indicate at what percentage of the target's visibility the observer's callback should be executed.\n * If you only want to detect when visibility passes the 50% mark, you can use a value of '0.5'.\n * If you want the callback to run every time visibility passes another '25%',\n * you would specify a string of values (separated by ',') array '0, 0.25, 0.5, 0.75, 1'.\n * A value of '1.0' means that the threshold isn't considered passed until every pixel is visible.\n */\n @Prop() threshold?: string;\n\n @Watch('threshold')\n handleThresholdChange() {\n if (!this.threshold) {\n this._threshold = undefined;\n return;\n }\n\n if (this.threshold.includes(',')) {\n this._threshold = this.threshold\n .split(',')\n .map((numStr) => Number(numStr));\n return;\n }\n\n this._threshold = Number(this.threshold);\n }\n\n /** A resize break point is switched on or off */\n @Event() nanoIntersectionChange!: EventEmitter<IntersectionObserverEntry>;\n\n /** A resize break point is switched on or off */\n @Event() nanoIntersecting!: EventEmitter<IntersectionObserverEntry>;\n\n /** A resize break point is switched on or off */\n @Event() nanoNotIntersecting!: EventEmitter<IntersectionObserverEntry>;\n\n private ioCallback: IntersectionObserverCallback = (entries) => {\n entries.forEach((entry) => {\n this.nanoIntersectionChange.emit(entry);\n if (entry.isIntersecting) this.nanoIntersecting.emit(entry);\n if (!entry.isIntersecting) this.nanoNotIntersecting.emit(entry);\n });\n };\n\n private handleSlotChange = () => {\n this.addIO();\n };\n\n @Watch('defaultSlot')\n addIO() {\n if (!window['IntersectionObserver'] || !this.elements?.length) return;\n if (this.io) this.removeIO();\n\n const io = (this.io = new IntersectionObserver(\n this.ioCallback,\n this.observerOptions\n ));\n this.elements?.forEach((el) => {\n io.observe(el);\n });\n }\n\n private removeIO() {\n if (!this.io) return;\n\n this.io.disconnect();\n this.io = undefined;\n }\n\n connectedCallback(): void {\n this.handleThresholdChange();\n this.handleRootChange();\n }\n\n disconnectedCallback(): void {\n this.removeIO();\n this.root = this._root = undefined;\n }\n\n render() {\n return (\n <slot\n ref={(slot) => (this.defaultSlot = slot as HTMLSlotElement)}\n onSlotchange={this.handleSlotChange}\n />\n );\n }\n}\n"],"mappings":";;;mHAsBaA,EAAmB,M,oMACtBC,GACAC,MACAC,WAECC,YAET,mBAAIC,GACF,MAAMC,EAAiC,GAEvC,GAAIC,KAAKL,MAAOI,EAAKE,KAAOD,KAAKL,MACjC,GAAIK,KAAKE,WAAYH,EAAKG,WAAaF,KAAKE,WAC5C,GAAIF,KAAKG,UAAWJ,EAAKI,UAAYH,KAAKJ,WAE1C,OAAOG,C,CAGT,YAAIK,GACF,MAAMC,EAAUL,KAAKH,aAAaS,oBAAsB,GAExD,OAAOD,EAAQE,SAASC,IACtB,MAAMC,EAAQC,iBAAiBF,GAC/B,GAAIC,EAAME,QAAQC,SAAS,YAAa,OAAOC,MAAMC,KAAKN,EAAGO,eACxD,OAAOP,CAAE,G,2BAQVP,KAA6C,OAGrD,gBAAAe,GACE,IAAKhB,KAAKC,KAAM,CACdD,KAAKL,MAAQsB,UACbjB,KAAKkB,WACL,M,CAGF,IAAIC,EAEJ,GAAInB,KAAKC,OAAS,OAAQ,CAExBkB,EAAUC,EAAiBpB,KAAKqB,K,MAC3B,GAAIrB,KAAKC,OAAS,OAAQ,CAC/BkB,EAAUF,S,KACL,CAELE,EAAUnB,KAAKC,I,CAIjB,GAAIkB,IAAYG,SAASC,gBAAiBJ,EAAUF,UAEpD,GAAIE,IAAYnB,KAAKL,MAAO,OAG5BK,KAAKL,MAAQwB,EACbnB,KAAKwB,O,CAOCtB,WASAC,UAGR,qBAAAsB,GACE,IAAKzB,KAAKG,UAAW,CACnBH,KAAKJ,WAAaqB,UAClB,M,CAGF,GAAIjB,KAAKG,UAAUS,SAAS,KAAM,CAChCZ,KAAKJ,WAAaI,KAAKG,UACpBuB,MAAM,KACNC,KAAKC,GAAWC,OAAOD,KAC1B,M,CAGF5B,KAAKJ,WAAaiC,OAAO7B,KAAKG,U,CAIvB2B,uBAGAC,iBAGAC,oBAEDC,WAA4CC,IAClDA,EAAQC,SAASC,IACfpC,KAAK8B,uBAAuBO,KAAKD,GACjC,GAAIA,EAAME,eAAgBtC,KAAK+B,iBAAiBM,KAAKD,GACrD,IAAKA,EAAME,eAAgBtC,KAAKgC,oBAAoBK,KAAKD,EAAM,GAC/D,EAGIG,iBAAmB,KACzBvC,KAAKwB,OAAO,EAId,KAAAA,GACE,IAAKgB,OAAO,0BAA4BxC,KAAKI,UAAUqC,OAAQ,OAC/D,GAAIzC,KAAKN,GAAIM,KAAKkB,WAElB,MAAMxB,EAAMM,KAAKN,GAAK,IAAIgD,qBACxB1C,KAAKiC,WACLjC,KAAKF,iBAEPE,KAAKI,UAAU+B,SAAS3B,IACtBd,EAAGiD,QAAQnC,EAAG,G,CAIV,QAAAU,GACN,IAAKlB,KAAKN,GAAI,OAEdM,KAAKN,GAAGkD,aACR5C,KAAKN,GAAKuB,S,CAGZ,iBAAA4B,GACE7C,KAAKyB,wBACLzB,KAAKgB,kB,CAGP,oBAAA8B,GACE9C,KAAKkB,WACLlB,KAAKC,KAAOD,KAAKL,MAAQsB,S,CAG3B,MAAA8B,GACE,OACEC,EAAA,QAAAC,IAAA,2CACEC,IAAMC,GAAUnD,KAAKH,YAAcsD,EACnCC,aAAcpD,KAAKuC,kB","ignoreList":[]}
1
+ {"version":3,"names":["IntersectionObserve","io","_root","_threshold","defaultSlot","observerOptions","opts","this","root","rootMargin","threshold","elements","slotted","assignedElements","flatMap","el","style","getComputedStyle","display","includes","Array","from","children","handleRootChange","undefined","removeIO","newRoot","findScrollParent","host","document","documentElement","addIO","handleThresholdChange","split","map","numStr","Number","nanoIntersectionChange","nanoIntersecting","nanoNotIntersecting","ioCallback","entries","forEach","entry","emit","isIntersecting","handleSlotChange","window","length","IntersectionObserver","observe","disconnect","connectedCallback","disconnectedCallback","render","h","key","ref","slot","onSlotchange"],"sources":["src/components/intersection-observe/intersection-observe.tsx"],"sourcesContent":["import {\n Component,\n h,\n Prop,\n Element,\n Watch,\n ComponentInterface,\n Event,\n EventEmitter,\n State,\n} from '@stencil/core';\nimport { findScrollParent } from '../../utils/scroll-parent';\n\n/**\n * A thin, declarative interface to the IntersectionObserver API.\n * @slot - Main slot for any content.\n */\n@Component({\n tag: 'nano-intersection-observe',\n styles: `nano-intersection-observe { display: contents }`,\n shadow: true,\n})\nexport class IntersectionObserve implements ComponentInterface {\n private io: IntersectionObserver;\n private _root: Element | Document;\n private _threshold: number | number[];\n\n @State() defaultSlot: HTMLSlotElement;\n\n get observerOptions() {\n const opts: IntersectionObserverInit = {};\n\n if (this._root) opts.root = this._root;\n if (this.rootMargin) opts.rootMargin = this.rootMargin;\n if (this.threshold) opts.threshold = this._threshold;\n\n return opts;\n }\n\n get elements(): Element[] | undefined {\n const slotted = this.defaultSlot?.assignedElements() || [];\n\n return slotted.flatMap((el) => {\n const style = getComputedStyle(el);\n if (style.display.includes('contents')) return Array.from(el.children);\n else return el;\n });\n }\n\n @Element() host: HTMLNanoIntersectionObserveElement;\n\n /** The element that is used as the viewport for checking visibility of the target. Must be an ancestor of the target.\n * Defaults to an automatic check for ancestors that `overflow: auto` or otherwise the `Document`. */\n @Prop() root: globalThis.Element | 'root' | 'auto' = 'auto';\n\n @Watch('root')\n handleRootChange() {\n if (!this.root) {\n this._root = undefined;\n this.removeIO();\n return;\n }\n\n let newRoot;\n\n if (this.root === 'auto') {\n // try to find nearest scrolling parent\n newRoot = findScrollParent(this.host);\n } else if (this.root === 'root') {\n newRoot = undefined;\n } else {\n // root is set explicitly\n newRoot = this.root;\n }\n\n // if it's the document - unset as that's IO's default\n if (newRoot === document.documentElement) newRoot = undefined;\n // if new root is what we already have - ignore\n if (newRoot === this._root) return;\n\n // cache and setup io\n this._root = newRoot;\n this.addIO();\n }\n\n /**\n * Margin around the root. Can be similar to CSS margins property, e.g. \"10px 20px 30px 40px\" (top, right, bottom, left).\n * The values can be percentages. This set of values serves to grow or shrink each side of the root element's\n * bounding box before computing intersections. Defaults to zeros. */\n @Prop() rootMargin?: string;\n\n /**\n * Indicate at what percentage of the target's visibility the observer's callback should be executed.\n * If you only want to detect when visibility passes the 50% mark, you can use a value of '0.5'.\n * If you want the callback to run every time visibility passes another '25%',\n * you would specify a string of values (separated by ',') array '0, 0.25, 0.5, 0.75, 1'.\n * A value of '1.0' means that the threshold isn't considered passed until every pixel is visible.\n */\n @Prop() threshold?: string;\n\n @Watch('threshold')\n handleThresholdChange() {\n if (!this.threshold) {\n this._threshold = undefined;\n return;\n }\n\n if (this.threshold.includes(',')) {\n this._threshold = this.threshold\n .split(',')\n .map((numStr) => Number(numStr));\n return;\n }\n\n this._threshold = Number(this.threshold);\n }\n\n /** A resize break point is switched on or off */\n @Event() nanoIntersectionChange!: EventEmitter<IntersectionObserverEntry>;\n\n /** A resize break point is switched on or off */\n @Event() nanoIntersecting!: EventEmitter<IntersectionObserverEntry>;\n\n /** A resize break point is switched on or off */\n @Event() nanoNotIntersecting!: EventEmitter<IntersectionObserverEntry>;\n\n private ioCallback: IntersectionObserverCallback = (entries) => {\n entries.forEach((entry) => {\n this.nanoIntersectionChange.emit(entry);\n if (entry.isIntersecting) this.nanoIntersecting.emit(entry);\n if (!entry.isIntersecting) this.nanoNotIntersecting.emit(entry);\n });\n };\n\n private handleSlotChange = () => {\n this.addIO();\n };\n\n @Watch('defaultSlot')\n addIO() {\n if (!window['IntersectionObserver'] || !this.elements?.length) return;\n if (this.io) this.removeIO();\n\n const io = (this.io = new IntersectionObserver(\n this.ioCallback,\n this.observerOptions\n ));\n this.elements?.forEach((el) => {\n io.observe(el);\n });\n }\n\n private removeIO() {\n if (!this.io) return;\n\n this.io.disconnect();\n this.io = undefined;\n }\n\n connectedCallback(): void {\n this.handleThresholdChange();\n this.handleRootChange();\n }\n\n disconnectedCallback(): void {\n this.removeIO();\n this.root = this._root = undefined;\n }\n\n render() {\n return (\n <slot\n ref={(slot) => (this.defaultSlot = slot as HTMLSlotElement)}\n onSlotchange={this.handleSlotChange}\n />\n );\n }\n}\n"],"mappings":";;;mHAsBaA,EAAmB,M,oMACtBC,GACAC,MACAC,WAECC,YAET,mBAAIC,GACF,MAAMC,EAAiC,GAEvC,GAAIC,KAAKL,MAAOI,EAAKE,KAAOD,KAAKL,MACjC,GAAIK,KAAKE,WAAYH,EAAKG,WAAaF,KAAKE,WAC5C,GAAIF,KAAKG,UAAWJ,EAAKI,UAAYH,KAAKJ,WAE1C,OAAOG,C,CAGT,YAAIK,GACF,MAAMC,EAAUL,KAAKH,aAAaS,oBAAsB,GAExD,OAAOD,EAAQE,SAASC,IACtB,MAAMC,EAAQC,iBAAiBF,GAC/B,GAAIC,EAAME,QAAQC,SAAS,YAAa,OAAOC,MAAMC,KAAKN,EAAGO,eACxD,OAAOP,CAAE,G,2BAQVP,KAA6C,OAGrD,gBAAAe,GACE,IAAKhB,KAAKC,KAAM,CACdD,KAAKL,MAAQsB,UACbjB,KAAKkB,WACL,M,CAGF,IAAIC,EAEJ,GAAInB,KAAKC,OAAS,OAAQ,CAExBkB,EAAUC,EAAiBpB,KAAKqB,K,MAC3B,GAAIrB,KAAKC,OAAS,OAAQ,CAC/BkB,EAAUF,S,KACL,CAELE,EAAUnB,KAAKC,I,CAIjB,GAAIkB,IAAYG,SAASC,gBAAiBJ,EAAUF,UAEpD,GAAIE,IAAYnB,KAAKL,MAAO,OAG5BK,KAAKL,MAAQwB,EACbnB,KAAKwB,O,CAOCtB,WASAC,UAGR,qBAAAsB,GACE,IAAKzB,KAAKG,UAAW,CACnBH,KAAKJ,WAAaqB,UAClB,M,CAGF,GAAIjB,KAAKG,UAAUS,SAAS,KAAM,CAChCZ,KAAKJ,WAAaI,KAAKG,UACpBuB,MAAM,KACNC,KAAKC,GAAWC,OAAOD,KAC1B,M,CAGF5B,KAAKJ,WAAaiC,OAAO7B,KAAKG,U,CAIvB2B,uBAGAC,iBAGAC,oBAEDC,WAA4CC,IAClDA,EAAQC,SAASC,IACfpC,KAAK8B,uBAAuBO,KAAKD,GACjC,GAAIA,EAAME,eAAgBtC,KAAK+B,iBAAiBM,KAAKD,GACrD,IAAKA,EAAME,eAAgBtC,KAAKgC,oBAAoBK,KAAKD,EAAM,GAC/D,EAGIG,iBAAmB,KACzBvC,KAAKwB,OAAO,EAId,KAAAA,GACE,IAAKgB,OAAO,0BAA4BxC,KAAKI,UAAUqC,OAAQ,OAC/D,GAAIzC,KAAKN,GAAIM,KAAKkB,WAElB,MAAMxB,EAAMM,KAAKN,GAAK,IAAIgD,qBACxB1C,KAAKiC,WACLjC,KAAKF,iBAEPE,KAAKI,UAAU+B,SAAS3B,IACtBd,EAAGiD,QAAQnC,EAAG,G,CAIV,QAAAU,GACN,IAAKlB,KAAKN,GAAI,OAEdM,KAAKN,GAAGkD,aACR5C,KAAKN,GAAKuB,S,CAGZ,iBAAA4B,GACE7C,KAAKyB,wBACLzB,KAAKgB,kB,CAGP,oBAAA8B,GACE9C,KAAKkB,WACLlB,KAAKC,KAAOD,KAAKL,MAAQsB,S,CAG3B,MAAA8B,GACE,OACEC,EAAA,QAAAC,IAAA,2CACEC,IAAMC,GAAUnD,KAAKH,YAAcsD,EACnCC,aAAcpD,KAAKuC,kB","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import{r as e,g as i,w as t,h as n,a as o}from"./index-815d3f98.js";import{c as s}from"./dom-3db2202b.js";const a=':host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--padding-top:13px;--padding-end:12px;--padding-bottom:13px;--padding-start:12px;--icon-size:19px;--font-size:11px;--global-nav-height:79px;--bg-color:#001a21;--bg-color-hover:rgb(28 62 72 / 80%);--bg-color-selected:#274048;--bg-color-focus:rgb(28 62 72 / 80%);--focus-outline:none;--content-color:#fff;--secondary-bg-color:rgb(28 62 72);font-family:inherit;font-size:inherit;font-stretch:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;z-index:1;background:var(--bg-color)}:host ::slotted(nano-nav-item){--secondary-padding-top:var(--global-nav-height);--nano-icon-size:var(--icon-size);color:var(--content-color);font-size:var(--font-size);text-decoration:none;box-sizing:border-box}:host *,:host *::before,:host *::after{box-sizing:border-box}:host(.hide){display:none}:host(.has-global-nav) .content-wrap{padding-block-start:var(--global-nav-height);margin-block-start:calc(var(--global-nav-height) * -1)}.container{inset-inline-end:auto;flex:0 0 calc(var(--padding-end, 1em) * 2 + var(--icon-size));background:var(--bg-color);color:var(--content-color);z-index:1;inline-size:calc(var(--padding-end, 1em) * 2 + var(--icon-size));block-size:100%}:host(.open) .container{inline-size:auto}:host(:not(.loading)) .container{transition:inline-size 0.3s ease}.content-wrap{inset-inline-start:0;inset-block-start:0;inline-size:inherit;max-inline-size:inherit;background:var(--bg-color);color:#fff;position:sticky;font-size:var(--icon-size);line-height:1;display:flex;min-block-size:calc(100vh - 79px);min-block-size:calc(var(--vh, 1vh) * 100 - 79px);z-index:1}.content{inline-size:auto;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-color);flex:1}.content::after{content:"";position:absolute;inset-block-start:0;inset-inline:0;background:var(--bg-color);z-index:-1;block-size:100vh}.collapse-btn{background:var(--bg-color-selected);border:none;color:inherit;font-size:var(--icon-size);margin-block:var(--padding-top) var(--padding-bottom);margin-inline:calc(var(--padding-start) / 2) 0;border-radius:4px;padding-block:6px;padding-inline:5px;display:flex;align-content:center;inline-size:30px;flex:0 0 auto}.collapse-btn nano-icon{font-size:var(--icon-size);transition:0.2s transform ease-in-out;transform:translateZ(0) rotate(0deg)}:host(.open) .collapse-btn nano-icon{transform:translateZ(0) rotate(180deg)}.foot{margin-block-start:auto}.measure-ele{block-size:1px}';const r=a;const l=class{constructor(i){e(this,i)}containerDiv;contentDiv;measureEle;globalNav;children=[];io;currHeight=window.innerHeight;get el(){return i(this)}reset=false;widthOk=true;heightOk=true;isLoading=true;hide=false;open=true;saveState=true;hideWidth=576;hideHeight=true;cancelNavItemEvents(e){if(!e.detail.secondaryMenu)return;e.stopPropagation()}openChange(){if(this.saveState)localStorage.setItem("nanoMenuDrawerOpen",this.open.toString());if(this.containerDiv){if(this.open)t((()=>this.containerDiv.style.width=this.contentDiv.scrollWidth+"px"));else t((()=>this.containerDiv.style.width=null))}}widthChange(){if(this.widthOk)this.moveItemsToDrawer();else this.moveItemsToGlobalNav()}hideHeightChange(){if(this.hideHeight&&!this.io)this.attachIO();else if(!this.hideHeight&&this.io){this.io.disconnect();this.io=undefined}}moveItemsToGlobalNav(){const e=this.el.querySelectorAll("nano-nav-item");e.forEach((e=>{this.children.push({slot:e.getAttribute("slot"),element:e});e.setAttribute("slot","overflow");e.classList.add("nano-global-nav-menu");this.globalNav.appendChild(e)}));this.hide=true}moveItemsToDrawer(){if(!this.children||!this.children.length)return;this.children.forEach((e=>{e.element.removeAttribute("slot");e.element.classList.remove("nano-global-nav-menu");if(e.slot&&e.slot.length)e.element.setAttribute("slot",e.slot);this.el.appendChild(e.element)}));this.children=[];this.hide=false;if(!this.io)this.attachIO()}onWindowResize=()=>{if(window.innerWidth>this.hideWidth)this.widthOk=true;else this.widthOk=false;const e=window.innerHeight*.01;this.el.style.setProperty("--vh",`${e}px`);if(window.innerHeight>this.currHeight&&this.widthOk&&!this.heightOk){this.moveItemsToDrawer()}this.currHeight=window.innerHeight};toggle=e=>{e.preventDefault();this.open=!this.open};onToggleKeyDown=e=>{switch(e.key){case"Enter":case" ":this.open=!this.open;break}};attachIO(){if(!this.hideHeight)return;const e=this.io=new window.IntersectionObserver((e=>{this.heightOk=e[0].intersectionRatio!==0;if(!this.heightOk){this.moveItemsToGlobalNav();this.io.disconnect();this.io=undefined}}),{threshold:1});e.observe(this.measureEle)}handleGlobalNavReady(e){if(e.target.tagName!=="NANO-GLOBAL-NAV")return;setTimeout((()=>{this.attachIO();this.openChange();this.onWindowResize();this.isLoading=false}),500)}componentWillLoad(){this.globalNav=s("nano-global-nav",this.el);this.widthOk=window.innerWidth>this.hideWidth;this.currHeight=window.innerHeight;if(this.saveState){const e=localStorage.getItem("nanoMenuDrawerOpen");this.open=e?e==="true":this.open}}componentDidLoad(){{window.addEventListener("resize",this.onWindowResize)}}disconnectedCallback(){window.removeEventListener("resize",this.onWindowResize);if(this.io){this.io.disconnect();this.io=null}}render(){return n(o,{key:"d10d0486b177e5c12549ca21c962241ef445a8b0",class:{open:this.open,hide:this.hide,loading:this.isLoading,"has-global-nav":!!this.globalNav},dir:this.el.ownerDocument.dir==="rtl"?"rtl":null},n("div",{key:"b443241c91c99e5cd3dabcbc1a3c8f708f09ef70",ref:e=>this.containerDiv=e,class:"container"},n("div",{key:"b037de8b47085af6068d3ee4221e6d8e5e5d51cb",class:"content-wrap"},n("nav",{key:"d6c542ce9e11a1553f7d3c88f8aa0b8295984dfb",ref:e=>this.contentDiv=e,class:"content"},n("button",{key:"3ca749687077cae4aabb4e1ebf4e46655d063b74",onMouseDown:this.toggle,onKeyDown:this.onToggleKeyDown,class:"collapse-btn"},n("nano-icon",{key:"74a376d7c3843e55636ec44404075b3d25ff95fe",name:"light/right-to-line","aria-label":"collapse / expand"})),n("slot",{key:"68600c0432bd713668848e39cb8d7c1b1849f699"}),n("div",{key:"dabd7f784eeb578329e0efc896d214af54e41800",class:"foot"},n("div",{key:"60980d6c26d32432577bb91096e6ac546ca377f2",class:"measure-ele",ref:e=>this.measureEle=e}),n("slot",{key:"3fef31b9227dcf0423c0abd8f9ded43b867068ba",name:"foot"}))))))}static get watchers(){return{open:["openChange"],widthOk:["widthChange"],hideHeight:["hideHeightChange"]}}};l.style=r;export{l as nano_menu_drawer};
4
+ import{r as e,g as i,w as t,h as n,a as o}from"./index-3118109b.js";import{c as s}from"./dom-d7f9f24c.js";const a=':host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--padding-top:13px;--padding-end:12px;--padding-bottom:13px;--padding-start:12px;--icon-size:19px;--font-size:11px;--global-nav-height:79px;--bg-color:#001a21;--bg-color-hover:rgb(28 62 72 / 80%);--bg-color-selected:#274048;--bg-color-focus:rgb(28 62 72 / 80%);--focus-outline:none;--content-color:#fff;--secondary-bg-color:rgb(28 62 72);font-family:inherit;font-size:inherit;font-stretch:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;z-index:1;background:var(--bg-color)}:host ::slotted(nano-nav-item){--secondary-padding-top:var(--global-nav-height);--nano-icon-size:var(--icon-size);color:var(--content-color);font-size:var(--font-size);text-decoration:none;box-sizing:border-box}:host *,:host *::before,:host *::after{box-sizing:border-box}:host(.hide){display:none}:host(.has-global-nav) .content-wrap{padding-block-start:var(--global-nav-height);margin-block-start:calc(var(--global-nav-height) * -1)}.container{inset-inline-end:auto;flex:0 0 calc(var(--padding-end, 1em) * 2 + var(--icon-size));background:var(--bg-color);color:var(--content-color);z-index:1;inline-size:calc(var(--padding-end, 1em) * 2 + var(--icon-size));block-size:100%}:host(.open) .container{inline-size:auto}:host(:not(.loading)) .container{transition:inline-size 0.3s ease}.content-wrap{inset-inline-start:0;inset-block-start:0;inline-size:inherit;max-inline-size:inherit;background:var(--bg-color);color:#fff;position:sticky;font-size:var(--icon-size);line-height:1;display:flex;min-block-size:calc(100vh - 79px);min-block-size:calc(var(--vh, 1vh) * 100 - 79px);z-index:1}.content{inline-size:auto;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-color);flex:1}.content::after{content:"";position:absolute;inset-block-start:0;inset-inline:0;background:var(--bg-color);z-index:-1;block-size:100vh}.collapse-btn{background:var(--bg-color-selected);border:none;color:inherit;font-size:var(--icon-size);margin-block:var(--padding-top) var(--padding-bottom);margin-inline:calc(var(--padding-start) / 2) 0;border-radius:4px;padding-block:6px;padding-inline:5px;display:flex;align-content:center;inline-size:30px;flex:0 0 auto}.collapse-btn nano-icon{font-size:var(--icon-size);transition:0.2s transform ease-in-out;transform:translateZ(0) rotate(0deg)}:host(.open) .collapse-btn nano-icon{transform:translateZ(0) rotate(180deg)}.foot{margin-block-start:auto}.measure-ele{block-size:1px}';const r=a;const l=class{constructor(i){e(this,i)}containerDiv;contentDiv;measureEle;globalNav;children=[];io;currHeight=window.innerHeight;get el(){return i(this)}reset=false;widthOk=true;heightOk=true;isLoading=true;hide=false;open=true;saveState=true;hideWidth=576;hideHeight=true;cancelNavItemEvents(e){if(!e.detail.secondaryMenu)return;e.stopPropagation()}openChange(){if(this.saveState)localStorage.setItem("nanoMenuDrawerOpen",this.open.toString());if(this.containerDiv){if(this.open)t((()=>this.containerDiv.style.width=this.contentDiv.scrollWidth+"px"));else t((()=>this.containerDiv.style.width=null))}}widthChange(){if(this.widthOk)this.moveItemsToDrawer();else this.moveItemsToGlobalNav()}hideHeightChange(){if(this.hideHeight&&!this.io)this.attachIO();else if(!this.hideHeight&&this.io){this.io.disconnect();this.io=undefined}}moveItemsToGlobalNav(){const e=this.el.querySelectorAll("nano-nav-item");e.forEach((e=>{this.children.push({slot:e.getAttribute("slot"),element:e});e.setAttribute("slot","overflow");e.classList.add("nano-global-nav-menu");this.globalNav.appendChild(e)}));this.hide=true}moveItemsToDrawer(){if(!this.children||!this.children.length)return;this.children.forEach((e=>{e.element.removeAttribute("slot");e.element.classList.remove("nano-global-nav-menu");if(e.slot&&e.slot.length)e.element.setAttribute("slot",e.slot);this.el.appendChild(e.element)}));this.children=[];this.hide=false;if(!this.io)this.attachIO()}onWindowResize=()=>{if(window.innerWidth>this.hideWidth)this.widthOk=true;else this.widthOk=false;const e=window.innerHeight*.01;this.el.style.setProperty("--vh",`${e}px`);if(window.innerHeight>this.currHeight&&this.widthOk&&!this.heightOk){this.moveItemsToDrawer()}this.currHeight=window.innerHeight};toggle=e=>{e.preventDefault();this.open=!this.open};onToggleKeyDown=e=>{switch(e.key){case"Enter":case" ":this.open=!this.open;break}};attachIO(){if(!this.hideHeight)return;const e=this.io=new window.IntersectionObserver((e=>{this.heightOk=e[0].intersectionRatio!==0;if(!this.heightOk){this.moveItemsToGlobalNav();this.io.disconnect();this.io=undefined}}),{threshold:1});e.observe(this.measureEle)}handleGlobalNavReady(e){if(e.target.tagName!=="NANO-GLOBAL-NAV")return;setTimeout((()=>{this.attachIO();this.openChange();this.onWindowResize();this.isLoading=false}),500)}componentWillLoad(){this.globalNav=s("nano-global-nav",this.el);this.widthOk=window.innerWidth>this.hideWidth;this.currHeight=window.innerHeight;if(this.saveState){const e=localStorage.getItem("nanoMenuDrawerOpen");this.open=e?e==="true":this.open}}componentDidLoad(){{window.addEventListener("resize",this.onWindowResize)}}disconnectedCallback(){window.removeEventListener("resize",this.onWindowResize);if(this.io){this.io.disconnect();this.io=null}}render(){return n(o,{key:"d10d0486b177e5c12549ca21c962241ef445a8b0",class:{open:this.open,hide:this.hide,loading:this.isLoading,"has-global-nav":!!this.globalNav},dir:this.el.ownerDocument.dir==="rtl"?"rtl":null},n("div",{key:"b443241c91c99e5cd3dabcbc1a3c8f708f09ef70",ref:e=>this.containerDiv=e,class:"container"},n("div",{key:"b037de8b47085af6068d3ee4221e6d8e5e5d51cb",class:"content-wrap"},n("nav",{key:"d6c542ce9e11a1553f7d3c88f8aa0b8295984dfb",ref:e=>this.contentDiv=e,class:"content"},n("button",{key:"3ca749687077cae4aabb4e1ebf4e46655d063b74",onMouseDown:this.toggle,onKeyDown:this.onToggleKeyDown,class:"collapse-btn"},n("nano-icon",{key:"74a376d7c3843e55636ec44404075b3d25ff95fe",name:"light/right-to-line","aria-label":"collapse / expand"})),n("slot",{key:"68600c0432bd713668848e39cb8d7c1b1849f699"}),n("div",{key:"dabd7f784eeb578329e0efc896d214af54e41800",class:"foot"},n("div",{key:"60980d6c26d32432577bb91096e6ac546ca377f2",class:"measure-ele",ref:e=>this.measureEle=e}),n("slot",{key:"3fef31b9227dcf0423c0abd8f9ded43b867068ba",name:"foot"}))))))}static get watchers(){return{open:["openChange"],widthOk:["widthChange"],hideHeight:["hideHeightChange"]}}};l.style=r;export{l as nano_menu_drawer};
5
5
  //# sourceMappingURL=nano-menu-drawer.entry.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import{r as e,g as t,h as s,a as n}from"./index-815d3f98.js";const o=class{constructor(t){e(this,t)}get host(){return t(this)}show=false;childrenSelector;maxToShow=3;noHideBtn=false;get children(){let e;if(this.childrenSelector){e=this.host.querySelectorAll(this.childrenSelector)}else{e=this.host.children}return Array.from(e).filter((e=>!e.hasAttribute("slot")))}handleShowHideElements(){this.children.forEach(((e,t)=>{if(this.show){if(e.style.display==="none"){e.style.display=""}}else{if(t>=this.maxToShow){e.style.display="none"}else{e.style.display=""}}}))}handleClick(e){this.show=!this.show}connectedCallback(){this.handleShowHideElements()}render(){return s(n,{key:"f027eeb0a9a1874b4e98686b9e501ddc44d4c632"},s("slot",{key:"98bf588c101034356091253382ccebdbe67a78f1",onSlotchange:()=>this.handleShowHideElements()}),this.children?.length>this.maxToShow&&[s("div",{key:"d4748dec7f25dbeb0e9d4cf27a9857dc6411c349",style:{display:this.show?"none":"contents"},class:"button-wrapper",part:"button-wrapper button-wrapper--less",onClick:e=>this.handleClick(e)},s("slot",{key:"c5b5d9b781761ece8d917391c132c3768838b6cd",name:"less"},s("button",{key:"31d16fe52e896736bcc1d9617ad54aa4d5b69f47",part:"button button--less"},"Show more (+",this.children.length-this.maxToShow,")"))),!this.noHideBtn?s("div",{style:{display:this.show?"contents":"none"},class:"button-wrapper",part:"button-wrapper button-wrapper--more",onClick:e=>this.handleClick(e)},s("slot",{name:"more"},s("button",{part:"button button--more"},"Show less (-",this.children.length-this.maxToShow,")"))):""])}static get watchers(){return{maxToShow:["handleShowHideElements"],show:["handleShowHideElements"],childrenSelector:["handleShowHideElements"]}}};o.style=":host { display: contents; }";export{o as nano_more_less};
4
+ import{r as e,g as t,h as s,a as n}from"./index-3118109b.js";const o=class{constructor(t){e(this,t)}get host(){return t(this)}show=false;childrenSelector;maxToShow=3;noHideBtn=false;get children(){let e;if(this.childrenSelector){e=this.host.querySelectorAll(this.childrenSelector)}else{e=this.host.children}return Array.from(e).filter((e=>!e.hasAttribute("slot")))}handleShowHideElements(){this.children.forEach(((e,t)=>{if(this.show){if(e.style.display==="none"){e.style.display=""}}else{if(t>=this.maxToShow){e.style.display="none"}else{e.style.display=""}}}))}handleClick(e){this.show=!this.show}connectedCallback(){this.handleShowHideElements()}render(){return s(n,{key:"f027eeb0a9a1874b4e98686b9e501ddc44d4c632"},s("slot",{key:"98bf588c101034356091253382ccebdbe67a78f1",onSlotchange:()=>this.handleShowHideElements()}),this.children?.length>this.maxToShow&&[s("div",{key:"d4748dec7f25dbeb0e9d4cf27a9857dc6411c349",style:{display:this.show?"none":"contents"},class:"button-wrapper",part:"button-wrapper button-wrapper--less",onClick:e=>this.handleClick(e)},s("slot",{key:"c5b5d9b781761ece8d917391c132c3768838b6cd",name:"less"},s("button",{key:"31d16fe52e896736bcc1d9617ad54aa4d5b69f47",part:"button button--less"},"Show more (+",this.children.length-this.maxToShow,")"))),!this.noHideBtn?s("div",{style:{display:this.show?"contents":"none"},class:"button-wrapper",part:"button-wrapper button-wrapper--more",onClick:e=>this.handleClick(e)},s("slot",{name:"more"},s("button",{part:"button button--more"},"Show less (-",this.children.length-this.maxToShow,")"))):""])}static get watchers(){return{maxToShow:["handleShowHideElements"],show:["handleShowHideElements"],childrenSelector:["handleShowHideElements"]}}};o.style=":host { display: contents; }";export{o as nano_more_less};
5
5
  //# sourceMappingURL=nano-more-less.entry.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import{r as t,g as i,h as a,a as e}from"./index-815d3f98.js";import{g as s,a as n}from"./dom-3db2202b.js";import{d as o}from"./throttle-df960210.js";const r=':host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--indicator-transition:var(--nano-transition-fast, 0.3s);--indicator-color:#90c6e7;--indicator-size:0;--indicator-track-color:#e4e6e8;--indicator-track-size:var(--indicator-size);--scroll-btn-color:"currentColor";--fade-size:1.75rem;--fade-transparency:0;--padding:var(--fade-size);position:relative;z-index:var(--nano-layer-index-raised, 5)}:host([orientation=horizontal]){display:block}:host([orientation=vertical]){display:flex}.onav--no-transitions *{transition-duration:0s !important}.onav__scroller{scrollbar-width:none;-ms-overflow-style:none;display:flex;transition:var(--nano-transition-medium, 0.5s) ease;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=");-webkit-mask-size:calc(100% + var(--fade-size) * 4);mask-size:calc(100% + var(--fade-size) * 4);-webkit-mask-position:calc(var(--fade-size) * -2);mask-position:calc(var(--fade-size) * -2)}.onav__scroller::-webkit-scrollbar{inline-size:0;block-size:0}.onav__scroller::after{content:" ";line-height:1;flex:0 0 auto;display:block}.onav--has-scroll-controls-start .onav__scroller{-webkit-mask-position:0;mask-position:0;-webkit-mask-size:calc(100% + var(--fade-size) * 2);mask-size:calc(100% + var(--fade-size) * 2)}.onav--has-scroll-controls-end .onav__scroller{-webkit-mask-position:calc(var(--fade-size) * -1);mask-position:calc(var(--fade-size) * -1);-webkit-mask-size:calc(100% + var(--fade-size));mask-size:calc(100% + var(--fade-size))}.onav--has-scroll-controls-start.onav--has-scroll-controls-end .onav__scroller{-webkit-mask-size:100%;mask-size:100%;-webkit-mask-position:0;mask-position:0}.onav__items{flex:1 1 auto;position:relative;inline-size:auto;flex-wrap:nowrap;display:flex}.onav__items::before{content:"";background:var(--indicator-track-color);display:block;position:absolute;z-index:1}.onav__active-indicator{position:absolute;z-index:10;transition:var(--indicator-transition) transform ease, var(--indicator-transition) width ease, var(--indicator-transition) height ease}.onav nano-icon-button.onav__scroll-button{--nano-color-base:var(--scroll-btn-color);display:flex;align-items:center;justify-content:center;position:absolute;border:unset;z-index:2;transition:var(--nano-transition-fast, 0.3s) ease opacity;opacity:0;color:var(--scroll-btn-color);pointer-events:none}.onav nano-icon-button.onav__scroll-button:focus{outline:none}.onav nano-icon-button.onav__scroll-button.is-shown{opacity:1;pointer-events:all}.onav nano-icon-button.onav__scroll-button:focus-visible{box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8))) inset}.onav--horizontal .onav__scroller{overflow:auto hidden;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;padding-inline:var(--padding);-webkit-mask-image:linear-gradient(to left, rgb(0 0 0/var(--fade-transparency)) 0, rgb(0 0 0/var(--fade-transparency)) var(--fade-size), rgb(0, 0, 0) calc(var(--fade-size) * 2), rgb(0, 0, 0) calc(100% - var(--fade-size) * 2), rgb(0 0 0/var(--fade-transparency)) calc(100% - var(--fade-size)), rgb(0 0 0/var(--fade-transparency)));mask-image:linear-gradient(to left, rgb(0 0 0/var(--fade-transparency)) 0, rgb(0 0 0/var(--fade-transparency)) var(--fade-size), rgb(0, 0, 0) calc(var(--fade-size) * 2), rgb(0, 0, 0) calc(100% - var(--fade-size) * 2), rgb(0 0 0/var(--fade-transparency)) calc(100% - var(--fade-size)), rgb(0 0 0/var(--fade-transparency)))}.onav--horizontal .onav__scroller::after{padding-inline:0 var(--fade-size);padding-block:0}.onav--horizontal.onav--has-scroll-controls .onav__scroller{padding-inline:var(--fade-size) 0;padding-block:0}.onav--horizontal .onav__items{flex-direction:row}.onav--horizontal .onav__items::before{content:"";inline-size:100%;block-size:var(--indicator-track-size);inset-block-end:0}.onav--horizontal .onav__active-indicator{inset-block-end:0;border-block-end:solid var(--indicator-size) var(--indicator-color)}.onav--horizontal .onav__scroll-button{inset-block:0}.onav--horizontal .onav__scroll-button--start{inset-inline-start:0}.onav--horizontal .onav__scroll-button--end{inset-inline-end:0}.onav--vertical{inline-size:100%}.onav--vertical .onav__nav{max-block-size:100%;display:flex}.onav--vertical .onav__scroller{inline-size:100%;overflow:hidden auto;flex-direction:column;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:linear-gradient(to top, rgb(0 0 0/var(--fade-transparency)) 0, rgb(0 0 0/var(--fade-transparency)) var(--fade-size), rgb(0, 0, 0) calc(var(--fade-size) * 2), rgb(0, 0, 0) calc(100% - var(--fade-size) * 2), rgb(0 0 0/var(--fade-transparency)) calc(100% - var(--fade-size)), rgb(0 0 0/var(--fade-transparency)));mask-image:linear-gradient(to top, rgb(0 0 0/var(--fade-transparency)) 0, rgb(0 0 0/var(--fade-transparency)) var(--fade-size), rgb(0, 0, 0) calc(var(--fade-size) * 2), rgb(0, 0, 0) calc(100% - var(--fade-size) * 2), rgb(0 0 0/var(--fade-transparency)) calc(100% - var(--fade-size)), rgb(0 0 0/var(--fade-transparency)));padding-inline:0;padding-block:calc(var(--fade-size) + 12px) var(--fade-size)}.onav--vertical .onav__scroller::after{padding-inline:0;padding-block:0 var(--fade-size)}.onav--vertical .onav__items{flex-direction:column;inline-size:fit-content}.onav--vertical .onav__items::before{content:"";block-size:100%;inline-size:var(--indicator-track-size);inset-inline-start:0}.onav--vertical .onav__active-indicator{inset-inline-start:0;border-inline-start:solid var(--indicator-size) var(--indicator-color)}.onav--vertical .onav__scroll-button{inset-inline:0}.onav--vertical .onav__scroll-button--start{inset-block-start:0}.onav--vertical .onav__scroll-button--end{inset-block-end:0}';const l=r;const c=class{scrollControls=true;orientation="horizontal";activeHandler=(t,i)=>t.classList.add("active");inActiveHandler=(t,i)=>t.classList.remove("active");isActiveHandler=(t,i)=>t.classList.contains("active");watchIsActiveHandler(){this.instantReCalc=true;this.activeItem=this.allActiveItems.find(((t,i)=>this.isActiveHandler(t,i)));setTimeout((()=>this.instantReCalc=false),300)}async syncActiveItem(){this.activeItem=this.allActiveItems.find(((t,i)=>this.isActiveHandler(t,i)))}constructor(i){t(this,i);this.recalculatePositions=o(this.recalculatePositions.bind(this),80)}ro;nav;itemContainer;isRtl;endBtn;startBtn;activeIndicator;mutationObservers=new WeakMap;get scrollProp(){return this.orientation==="horizontal"?"scrollWidth":"scrollHeight"}get clientDimProp(){return this.orientation==="horizontal"?"clientWidth":"clientHeight"}get scrollOffset(){return this.orientation==="horizontal"?"scrollLeft":"scrollTop"}get host(){return i(this)}instantReCalc=false;hasScrollControls=false;watchScrollControls(){if(this.hasScrollControls)this.handleScroll();else this.hideControlStart=this.hideControlEnd=true}hideControlEnd=true;hideEndBtn(){if(!this.endBtn)return;this.activateBtn(this.endBtn,!this.hideControlEnd)}hideControlStart=true;hideStartBtn(){if(!this.startBtn)return;this.activateBtn(this.startBtn,!this.hideControlStart)}activateBtn(t,i=true){if(!i){t.tabIndex=-1;t.disabled=true;t.classList.remove("is-shown");return}t.tabIndex=0;t.disabled=false;t.classList.add("is-shown")}get allActiveItems(){return this.allItems.filter((t=>!t.disabled||t.classList.contains("disabled")))}get allItems(){return s(this.host,"*",true)}get activeItem(){return this._activeItem}set activeItem(t){if(!t||t===this.activeItem||t.disabled||!this.allActiveItems.includes(t)){return}this._activeItem=t;this.allActiveItems.forEach(((t,i)=>{if(t===this._activeItem)this.activeHandler(t,i);else this.inActiveHandler(t,i)}));this.recalculatePositions()}_activeItem;get navDim(){if(!this.nav)return 0;const t=getComputedStyle(this.nav);let i=this.nav[this.clientDimProp];if(this.orientation==="horizontal"){return i-=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight)}else{return i-=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)}}scrollToActiveItem(){if(!this.nav||!this.activeItem)return;setTimeout((()=>{this.activeItem.scrollIntoView({behavior:this.instantReCalc?"auto":"smooth",block:"center",inline:"center"})}),100)}syncActiveItemIndicator(){if(!this.activeItem)return;const t=this.activeItem;const i=t.clientWidth||0;const a=t.clientHeight+2||0;const e=n(t,this.itemContainer);if(!this.activeIndicator)return;const s=e.top;const o=e.left;if(this.instantReCalc)this.activeIndicator.style.transition="none";switch(this.orientation){case"horizontal":this.activeIndicator.style.width=`${i}px`;this.activeIndicator.style.height=null;this.activeIndicator.style.transform=`translateX(${o}px)`;break;case"vertical":this.activeIndicator.style.width=null;this.activeIndicator.style.height=`${a}px`;this.activeIndicator.style.transform=`translateY(${s}px)`;break}setTimeout((()=>this.activeIndicator.style.transition=null),400)}updateScrollControls=()=>{if(!this.nav)return;this.hasScrollControls=this.nav[this.scrollProp]>this.nav[this.clientDimProp]&&this.nav[this.scrollProp]>this.itemContainer[this.clientDimProp];this.handleScroll()};handleScroll=()=>{if(!this.hasScrollControls){this.hideControlStart=this.hideControlEnd=true;return}const t=this.isRtl?this.nav[this.scrollOffset]===0:Math.abs(this.nav[this.clientDimProp]-(this.nav[this.scrollProp]-this.nav[this.scrollOffset]))<2;const i=this.isRtl?Math.abs(this.nav[this.scrollProp]+this.nav[this.scrollOffset]-this.nav[this.clientDimProp])<2:this.nav[this.scrollOffset]===0;if(i){this.hideControlStart=true;this.hideControlEnd=false}else if(t){this.hideControlStart=false;this.hideControlEnd=true}else{this.hideControlEnd=false;this.hideControlStart=false}};handleBtnClick=(t=false)=>{const i=this.navDim;let a;if(t)a=this.nav[this.scrollOffset]+i-20;else a=this.nav[this.scrollOffset]-i+20;try{this.nav.scroll({left:this.orientation==="horizontal"?a:0,top:this.orientation==="vertical"?a:0,behavior:"smooth"})}catch(t){this.nav[this.scrollOffset]=a}};slotChangeHandler=()=>{if(this.allActiveItems.length<2)return;const t=this.allActiveItems.find(((t,i)=>this.isActiveHandler(t,i)));if(t)this.activeItem=t;this.recalculatePositions();this.allActiveItems.forEach((t=>{if(this.mutationObservers.get(t))return;const i=new MutationObserver((()=>this.syncActiveItemIndicator()));i.observe(t,{characterData:true,childList:true,subtree:true});this.mutationObservers.set(t,i)}))};handleClick=t=>{if(this.allActiveItems.length<2)return;const i=t.composedPath().find((t=>this.allActiveItems.includes(t)));if(i)this.activeItem=i};handleKeyDown=t=>{if(["Enter"," "].includes(t.key)){const i=t.composedPath().find((t=>this.allActiveItems.includes(t)));if(i)this.activeItem=i}};recalculatePositions=()=>{this.updateScrollControls();this.syncActiveItemIndicator();this.scrollToActiveItem()};connectedCallback(){this.instantReCalc=true;this.isRtl=this.orientation==="horizontal"&&!!this.host.closest('[dir="rtl"]');if(window["MutationObserver"])this.slotChangeHandler();if(!window["ResizeObserver"])return;if(this.ro){this.ro.disconnect();this.ro=undefined}const t=this.ro=new ResizeObserver(this.recalculatePositions);t.observe(this.host)}componentDidLoad(){this.activeItem=this.allActiveItems.find(((t,i)=>this.isActiveHandler(t,i)));this.instantReCalc=false}disconnectedCallback(){if(this.ro){this.ro.disconnect();this.ro=undefined}}render(){return a(e,{key:"6e173cacb18816d9835c05546a72c43ed91f274c",dir:this.isRtl?"rtl":null},a("div",{key:"5ccc848ac3de7e32c78f83450e33d8dba423074f",part:"base",class:{onav:true,[`onav--${this.orientation}`]:true,"onav--has-scroll-controls":this.hasScrollControls,"onav--has-scroll-controls-start":!this.hideControlStart,"onav--has-scroll-controls-end":!this.hideControlEnd,"onav--no-transitions":this.instantReCalc},onClick:this.handleClick,onKeyDown:this.handleKeyDown},a("div",{key:"0a322909790d1b93e3325855deae42a3c65c9639",class:"onav__nav"},this.scrollControls&&a("nano-icon-button",{key:"345635ef806ddb6faf2415cc90ff6a45741864ce",part:"scroll-button scroll-button-prev",class:{"onav__scroll-button":true,"onav__scroll-button--start":true},ref:t=>this.startBtn=t,onClick:()=>this.handleBtnClick(false),label:"Click to scroll",iconName:this.orientation==="horizontal"?"light/chevron-left":"light/chevron-up"}),a("div",{key:"9b78552101a21487b925fefe89d887ac75ca035d",part:"scroller",ref:t=>this.nav=t,class:"onav__scroller",onScroll:this.handleScroll},a("div",{key:"9d1795efcd4ca224ded919ad90623e97f2603a9d",part:"items",ref:t=>this.itemContainer=t,class:"onav__items"},a("div",{key:"751c93eea4740df90233e816eda8e11835d0f3ca",part:"indicator",ref:t=>this.activeIndicator=t,class:"onav__active-indicator"}),a("slot",{key:"c82d3d8ddc3fca334325b5a18ecbb5db78a81df9",onSlotchange:this.slotChangeHandler}))),this.scrollControls&&a("nano-icon-button",{key:"9fe484e4f323155034da3a84ea2b0872c6632fb4",part:"scroll-button scroll-button-next",class:{"onav__scroll-button":true,"onav__scroll-button--end":true},ref:t=>this.endBtn=t,onClick:()=>this.handleBtnClick(true),label:"Click to scroll",iconName:this.orientation==="horizontal"?"light/chevron-right":"light/chevron-down"}))))}static get watchers(){return{isActiveHandler:["watchIsActiveHandler"],hasScrollControls:["watchScrollControls"],hideControlEnd:["hideEndBtn"],hideControlStart:["hideStartBtn"]}}};c.style=l;export{c as nano_overflow_nav};
4
+ import{r as t,g as i,h as a,a as e}from"./index-3118109b.js";import{g as s,a as n}from"./dom-d7f9f24c.js";import{d as o}from"./throttle-df960210.js";const r=':host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--indicator-transition:var(--nano-transition-fast, 0.3s);--indicator-color:#90c6e7;--indicator-size:0;--indicator-track-color:#e4e6e8;--indicator-track-size:var(--indicator-size);--scroll-btn-color:"currentColor";--fade-size:1.75rem;--fade-transparency:0;--padding:var(--fade-size);position:relative;z-index:var(--nano-layer-index-raised, 5)}:host([orientation=horizontal]){display:block}:host([orientation=vertical]){display:flex}.onav--no-transitions *{transition-duration:0s !important}.onav__scroller{scrollbar-width:none;-ms-overflow-style:none;display:flex;transition:var(--nano-transition-medium, 0.5s) ease;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=");-webkit-mask-size:calc(100% + var(--fade-size) * 4);mask-size:calc(100% + var(--fade-size) * 4);-webkit-mask-position:calc(var(--fade-size) * -2);mask-position:calc(var(--fade-size) * -2)}.onav__scroller::-webkit-scrollbar{inline-size:0;block-size:0}.onav__scroller::after{content:" ";line-height:1;flex:0 0 auto;display:block}.onav--has-scroll-controls-start .onav__scroller{-webkit-mask-position:0;mask-position:0;-webkit-mask-size:calc(100% + var(--fade-size) * 2);mask-size:calc(100% + var(--fade-size) * 2)}.onav--has-scroll-controls-end .onav__scroller{-webkit-mask-position:calc(var(--fade-size) * -1);mask-position:calc(var(--fade-size) * -1);-webkit-mask-size:calc(100% + var(--fade-size));mask-size:calc(100% + var(--fade-size))}.onav--has-scroll-controls-start.onav--has-scroll-controls-end .onav__scroller{-webkit-mask-size:100%;mask-size:100%;-webkit-mask-position:0;mask-position:0}.onav__items{flex:1 1 auto;position:relative;inline-size:auto;flex-wrap:nowrap;display:flex}.onav__items::before{content:"";background:var(--indicator-track-color);display:block;position:absolute;z-index:1}.onav__active-indicator{position:absolute;z-index:10;transition:var(--indicator-transition) transform ease, var(--indicator-transition) width ease, var(--indicator-transition) height ease}.onav nano-icon-button.onav__scroll-button{--nano-color-base:var(--scroll-btn-color);display:flex;align-items:center;justify-content:center;position:absolute;border:unset;z-index:2;transition:var(--nano-transition-fast, 0.3s) ease opacity;opacity:0;color:var(--scroll-btn-color);pointer-events:none}.onav nano-icon-button.onav__scroll-button:focus{outline:none}.onav nano-icon-button.onav__scroll-button.is-shown{opacity:1;pointer-events:all}.onav nano-icon-button.onav__scroll-button:focus-visible{box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8))) inset}.onav--horizontal .onav__scroller{overflow:auto hidden;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;padding-inline:var(--padding);-webkit-mask-image:linear-gradient(to left, rgb(0 0 0/var(--fade-transparency)) 0, rgb(0 0 0/var(--fade-transparency)) var(--fade-size), rgb(0, 0, 0) calc(var(--fade-size) * 2), rgb(0, 0, 0) calc(100% - var(--fade-size) * 2), rgb(0 0 0/var(--fade-transparency)) calc(100% - var(--fade-size)), rgb(0 0 0/var(--fade-transparency)));mask-image:linear-gradient(to left, rgb(0 0 0/var(--fade-transparency)) 0, rgb(0 0 0/var(--fade-transparency)) var(--fade-size), rgb(0, 0, 0) calc(var(--fade-size) * 2), rgb(0, 0, 0) calc(100% - var(--fade-size) * 2), rgb(0 0 0/var(--fade-transparency)) calc(100% - var(--fade-size)), rgb(0 0 0/var(--fade-transparency)))}.onav--horizontal .onav__scroller::after{padding-inline:0 var(--fade-size);padding-block:0}.onav--horizontal.onav--has-scroll-controls .onav__scroller{padding-inline:var(--fade-size) 0;padding-block:0}.onav--horizontal .onav__items{flex-direction:row}.onav--horizontal .onav__items::before{content:"";inline-size:100%;block-size:var(--indicator-track-size);inset-block-end:0}.onav--horizontal .onav__active-indicator{inset-block-end:0;border-block-end:solid var(--indicator-size) var(--indicator-color)}.onav--horizontal .onav__scroll-button{inset-block:0}.onav--horizontal .onav__scroll-button--start{inset-inline-start:0}.onav--horizontal .onav__scroll-button--end{inset-inline-end:0}.onav--vertical{inline-size:100%}.onav--vertical .onav__nav{max-block-size:100%;display:flex}.onav--vertical .onav__scroller{inline-size:100%;overflow:hidden auto;flex-direction:column;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:linear-gradient(to top, rgb(0 0 0/var(--fade-transparency)) 0, rgb(0 0 0/var(--fade-transparency)) var(--fade-size), rgb(0, 0, 0) calc(var(--fade-size) * 2), rgb(0, 0, 0) calc(100% - var(--fade-size) * 2), rgb(0 0 0/var(--fade-transparency)) calc(100% - var(--fade-size)), rgb(0 0 0/var(--fade-transparency)));mask-image:linear-gradient(to top, rgb(0 0 0/var(--fade-transparency)) 0, rgb(0 0 0/var(--fade-transparency)) var(--fade-size), rgb(0, 0, 0) calc(var(--fade-size) * 2), rgb(0, 0, 0) calc(100% - var(--fade-size) * 2), rgb(0 0 0/var(--fade-transparency)) calc(100% - var(--fade-size)), rgb(0 0 0/var(--fade-transparency)));padding-inline:0;padding-block:calc(var(--fade-size) + 12px) var(--fade-size)}.onav--vertical .onav__scroller::after{padding-inline:0;padding-block:0 var(--fade-size)}.onav--vertical .onav__items{flex-direction:column;inline-size:fit-content}.onav--vertical .onav__items::before{content:"";block-size:100%;inline-size:var(--indicator-track-size);inset-inline-start:0}.onav--vertical .onav__active-indicator{inset-inline-start:0;border-inline-start:solid var(--indicator-size) var(--indicator-color)}.onav--vertical .onav__scroll-button{inset-inline:0}.onav--vertical .onav__scroll-button--start{inset-block-start:0}.onav--vertical .onav__scroll-button--end{inset-block-end:0}';const l=r;const c=class{scrollControls=true;orientation="horizontal";activeHandler=(t,i)=>t.classList.add("active");inActiveHandler=(t,i)=>t.classList.remove("active");isActiveHandler=(t,i)=>t.classList.contains("active");watchIsActiveHandler(){this.instantReCalc=true;this.activeItem=this.allActiveItems.find(((t,i)=>this.isActiveHandler(t,i)));setTimeout((()=>this.instantReCalc=false),300)}async syncActiveItem(){this.activeItem=this.allActiveItems.find(((t,i)=>this.isActiveHandler(t,i)))}constructor(i){t(this,i);this.recalculatePositions=o(this.recalculatePositions.bind(this),80)}ro;nav;itemContainer;isRtl;endBtn;startBtn;activeIndicator;mutationObservers=new WeakMap;get scrollProp(){return this.orientation==="horizontal"?"scrollWidth":"scrollHeight"}get clientDimProp(){return this.orientation==="horizontal"?"clientWidth":"clientHeight"}get scrollOffset(){return this.orientation==="horizontal"?"scrollLeft":"scrollTop"}get host(){return i(this)}instantReCalc=false;hasScrollControls=false;watchScrollControls(){if(this.hasScrollControls)this.handleScroll();else this.hideControlStart=this.hideControlEnd=true}hideControlEnd=true;hideEndBtn(){if(!this.endBtn)return;this.activateBtn(this.endBtn,!this.hideControlEnd)}hideControlStart=true;hideStartBtn(){if(!this.startBtn)return;this.activateBtn(this.startBtn,!this.hideControlStart)}activateBtn(t,i=true){if(!i){t.tabIndex=-1;t.disabled=true;t.classList.remove("is-shown");return}t.tabIndex=0;t.disabled=false;t.classList.add("is-shown")}get allActiveItems(){return this.allItems.filter((t=>!t.disabled||t.classList.contains("disabled")))}get allItems(){return s(this.host,"*",true)}get activeItem(){return this._activeItem}set activeItem(t){if(!t||t===this.activeItem||t.disabled||!this.allActiveItems.includes(t)){return}this._activeItem=t;this.allActiveItems.forEach(((t,i)=>{if(t===this._activeItem)this.activeHandler(t,i);else this.inActiveHandler(t,i)}));this.recalculatePositions()}_activeItem;get navDim(){if(!this.nav)return 0;const t=getComputedStyle(this.nav);let i=this.nav[this.clientDimProp];if(this.orientation==="horizontal"){return i-=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight)}else{return i-=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)}}scrollToActiveItem(){if(!this.nav||!this.activeItem)return;setTimeout((()=>{this.activeItem.scrollIntoView({behavior:this.instantReCalc?"auto":"smooth",block:"center",inline:"center"})}),100)}syncActiveItemIndicator(){if(!this.activeItem)return;const t=this.activeItem;const i=t.clientWidth||0;const a=t.clientHeight+2||0;const e=n(t,this.itemContainer);if(!this.activeIndicator)return;const s=e.top;const o=e.left;if(this.instantReCalc)this.activeIndicator.style.transition="none";switch(this.orientation){case"horizontal":this.activeIndicator.style.width=`${i}px`;this.activeIndicator.style.height=null;this.activeIndicator.style.transform=`translateX(${o}px)`;break;case"vertical":this.activeIndicator.style.width=null;this.activeIndicator.style.height=`${a}px`;this.activeIndicator.style.transform=`translateY(${s}px)`;break}setTimeout((()=>this.activeIndicator.style.transition=null),400)}updateScrollControls=()=>{if(!this.nav)return;this.hasScrollControls=this.nav[this.scrollProp]>this.nav[this.clientDimProp]&&this.nav[this.scrollProp]>this.itemContainer[this.clientDimProp];this.handleScroll()};handleScroll=()=>{if(!this.hasScrollControls){this.hideControlStart=this.hideControlEnd=true;return}const t=this.isRtl?this.nav[this.scrollOffset]===0:Math.abs(this.nav[this.clientDimProp]-(this.nav[this.scrollProp]-this.nav[this.scrollOffset]))<2;const i=this.isRtl?Math.abs(this.nav[this.scrollProp]+this.nav[this.scrollOffset]-this.nav[this.clientDimProp])<2:this.nav[this.scrollOffset]===0;if(i){this.hideControlStart=true;this.hideControlEnd=false}else if(t){this.hideControlStart=false;this.hideControlEnd=true}else{this.hideControlEnd=false;this.hideControlStart=false}};handleBtnClick=(t=false)=>{const i=this.navDim;let a;if(t)a=this.nav[this.scrollOffset]+i-20;else a=this.nav[this.scrollOffset]-i+20;try{this.nav.scroll({left:this.orientation==="horizontal"?a:0,top:this.orientation==="vertical"?a:0,behavior:"smooth"})}catch(t){this.nav[this.scrollOffset]=a}};slotChangeHandler=()=>{if(this.allActiveItems.length<2)return;const t=this.allActiveItems.find(((t,i)=>this.isActiveHandler(t,i)));if(t)this.activeItem=t;this.recalculatePositions();this.allActiveItems.forEach((t=>{if(this.mutationObservers.get(t))return;const i=new MutationObserver((()=>this.syncActiveItemIndicator()));i.observe(t,{characterData:true,childList:true,subtree:true});this.mutationObservers.set(t,i)}))};handleClick=t=>{if(this.allActiveItems.length<2)return;const i=t.composedPath().find((t=>this.allActiveItems.includes(t)));if(i)this.activeItem=i};handleKeyDown=t=>{if(["Enter"," "].includes(t.key)){const i=t.composedPath().find((t=>this.allActiveItems.includes(t)));if(i)this.activeItem=i}};recalculatePositions=()=>{this.updateScrollControls();this.syncActiveItemIndicator();this.scrollToActiveItem()};connectedCallback(){this.instantReCalc=true;this.isRtl=this.orientation==="horizontal"&&!!this.host.closest('[dir="rtl"]');if(window["MutationObserver"])this.slotChangeHandler();if(!window["ResizeObserver"])return;if(this.ro){this.ro.disconnect();this.ro=undefined}const t=this.ro=new ResizeObserver(this.recalculatePositions);t.observe(this.host)}componentDidLoad(){this.activeItem=this.allActiveItems.find(((t,i)=>this.isActiveHandler(t,i)));this.instantReCalc=false}disconnectedCallback(){if(this.ro){this.ro.disconnect();this.ro=undefined}}render(){return a(e,{key:"6e173cacb18816d9835c05546a72c43ed91f274c",dir:this.isRtl?"rtl":null},a("div",{key:"5ccc848ac3de7e32c78f83450e33d8dba423074f",part:"base",class:{onav:true,[`onav--${this.orientation}`]:true,"onav--has-scroll-controls":this.hasScrollControls,"onav--has-scroll-controls-start":!this.hideControlStart,"onav--has-scroll-controls-end":!this.hideControlEnd,"onav--no-transitions":this.instantReCalc},onClick:this.handleClick,onKeyDown:this.handleKeyDown},a("div",{key:"0a322909790d1b93e3325855deae42a3c65c9639",class:"onav__nav"},this.scrollControls&&a("nano-icon-button",{key:"345635ef806ddb6faf2415cc90ff6a45741864ce",part:"scroll-button scroll-button-prev",class:{"onav__scroll-button":true,"onav__scroll-button--start":true},ref:t=>this.startBtn=t,onClick:()=>this.handleBtnClick(false),label:"Click to scroll",iconName:this.orientation==="horizontal"?"light/chevron-left":"light/chevron-up"}),a("div",{key:"9b78552101a21487b925fefe89d887ac75ca035d",part:"scroller",ref:t=>this.nav=t,class:"onav__scroller",onScroll:this.handleScroll},a("div",{key:"9d1795efcd4ca224ded919ad90623e97f2603a9d",part:"items",ref:t=>this.itemContainer=t,class:"onav__items"},a("div",{key:"751c93eea4740df90233e816eda8e11835d0f3ca",part:"indicator",ref:t=>this.activeIndicator=t,class:"onav__active-indicator"}),a("slot",{key:"c82d3d8ddc3fca334325b5a18ecbb5db78a81df9",onSlotchange:this.slotChangeHandler}))),this.scrollControls&&a("nano-icon-button",{key:"9fe484e4f323155034da3a84ea2b0872c6632fb4",part:"scroll-button scroll-button-next",class:{"onav__scroll-button":true,"onav__scroll-button--end":true},ref:t=>this.endBtn=t,onClick:()=>this.handleBtnClick(true),label:"Click to scroll",iconName:this.orientation==="horizontal"?"light/chevron-right":"light/chevron-down"}))))}static get watchers(){return{isActiveHandler:["watchIsActiveHandler"],hasScrollControls:["watchScrollControls"],hideControlEnd:["hideEndBtn"],hideControlStart:["hideStartBtn"]}}};c.style=l;export{c as nano_overflow_nav};
5
5
  //# sourceMappingURL=nano-overflow-nav.entry.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import{r,g as e,h as a}from"./index-815d3f98.js";const o=":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--height:1em;--track-color:rgb(var(--nano-track-rgb, 228 230 232) / 100%);--indicator-color:rgb(var(--nano-indicator-rgb, 84 140 175) / 100%);--label-color:var(--nano-color-white, white);display:block}.progress-bar{position:relative;background-color:var(--track-color);block-size:var(--height);border-radius:var(--nano-layer-border-radius, var(--nano-border-radius-medium, 4px));overflow:hidden}.progress-bar__indicator{block-size:100%;font-size:0.75em;background-color:var(--indicator-color);color:var(--label-color);text-align:center;white-space:nowrap;overflow:hidden;transition:0.4s width, 0.4s background-color;transform:translateZ(0);-webkit-user-select:none;user-select:none;transform-origin:left}.progress-bar--indeterminate .progress-bar__indicator{animation:indeterminate 2.5s infinite cubic-bezier(0.37, 0, 0.63, 1)}@keyframes indeterminate{0%{scale:1 1;transform:translateX(-100%) translateZ(0)}75%,100%{scale:1 1;transform:translateX(100%) translateZ(0)}}";const s=o;const t=class{constructor(e){r(this,e)}get host(){return e(this)}value=0;indeterminate=false;showPercent=false;render(){return a("div",{key:"40563d8a84636d568b0675808bd96cc84c0c4b97",part:"base",class:{"progress-bar":true,"progress-bar--indeterminate":this.indeterminate},role:"progressbar",title:this.host.title||undefined,"aria-label":"Progress","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":this.indeterminate?null:this.value},a("div",{key:"32f65f980f9ef0a118ef005ff4ad68c8116b544b",part:"indicator",class:"progress-bar__indicator",style:{width:!this.indeterminate?`${this.value}%`:undefined}},a("span",{key:"30a5b0e7663a5772c23ff75fc0b4b6bcd59f72ef",part:"label",class:"progress-bar__label"},a("slot",{key:"1a80db1cb1f65e85f7ba78373e9f2aa7642a542e"},!this.indeterminate&&this.showPercent?`${this.value}%`:""))))}};t.style=s;export{t as nano_progress_bar};
4
+ import{r,g as e,h as a}from"./index-3118109b.js";const o=":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--height:1em;--track-color:rgb(var(--nano-track-rgb, 228 230 232) / 100%);--indicator-color:rgb(var(--nano-indicator-rgb, 84 140 175) / 100%);--label-color:var(--nano-color-white, white);display:block}.progress-bar{position:relative;background-color:var(--track-color);block-size:var(--height);border-radius:var(--nano-layer-border-radius, var(--nano-border-radius-medium, 4px));overflow:hidden}.progress-bar__indicator{block-size:100%;font-size:0.75em;background-color:var(--indicator-color);color:var(--label-color);text-align:center;white-space:nowrap;overflow:hidden;transition:0.4s width, 0.4s background-color;transform:translateZ(0);-webkit-user-select:none;user-select:none;transform-origin:left}.progress-bar--indeterminate .progress-bar__indicator{animation:indeterminate 2.5s infinite cubic-bezier(0.37, 0, 0.63, 1)}@keyframes indeterminate{0%{scale:1 1;transform:translateX(-100%) translateZ(0)}75%,100%{scale:1 1;transform:translateX(100%) translateZ(0)}}";const s=o;const t=class{constructor(e){r(this,e)}get host(){return e(this)}value=0;indeterminate=false;showPercent=false;render(){return a("div",{key:"40563d8a84636d568b0675808bd96cc84c0c4b97",part:"base",class:{"progress-bar":true,"progress-bar--indeterminate":this.indeterminate},role:"progressbar",title:this.host.title||undefined,"aria-label":"Progress","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":this.indeterminate?null:this.value},a("div",{key:"32f65f980f9ef0a118ef005ff4ad68c8116b544b",part:"indicator",class:"progress-bar__indicator",style:{width:!this.indeterminate?`${this.value}%`:undefined}},a("span",{key:"30a5b0e7663a5772c23ff75fc0b4b6bcd59f72ef",part:"label",class:"progress-bar__label"},a("slot",{key:"1a80db1cb1f65e85f7ba78373e9f2aa7642a542e"},!this.indeterminate&&this.showPercent?`${this.value}%`:""))))}};t.style=s;export{t as nano_progress_bar};
5
5
  //# sourceMappingURL=nano-progress-bar.entry.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import{r as n,c as a,g as e,h as r,a as s}from"./index-815d3f98.js";import{c as o}from"./math-d160f8a6.js";import{c as t}from"./theme-d553c17a.js";import{a as i}from"./throttle-df960210.js";const c=(n,a,e,r)=>{let s=n.querySelector("input.aux-input");if(!s){s=n.ownerDocument.createElement("input");s.type="hidden";s.classList.add("aux-input");n.appendChild(s)}s.disabled=r;s.name=a;s.value=e||""};const g='.sc-nano-range-h{box-sizing:border-box}*.sc-nano-range,*.sc-nano-range::before,*.sc-nano-range::after{box-sizing:border-box}[hidden].sc-nano-range{display:none !important}.sc-nano-range-h{box-sizing:border-box}*.sc-nano-range,*.sc-nano-range::before,*.sc-nano-range::after{box-sizing:border-box}[hidden].sc-nano-range{display:none !important}.sc-nano-range-h{--knob-handle-size:(var(--knob-size) * 2);--rgb-inactive:165 165 165;--knob-border-radius:50%;--knob-background:var(--nano-color-primary, #007495);--knob-box-shadow:0 2px 4px 0 rgb(0 0 0 / 30%);--knob-size:30px;--bar-height:8px;--bar-background:#e2e1e0;--bar-background-active:#a5a5a5;--bar-border-radius:4px;--height:42px;--pin-background:var(--nano-color-primary, #007495);--pin-color:var(--nano-color-primary-contrast, #fff);--focus-style:0 0 0 5px var(--nano-control-focus-color, rgba(144, 198, 231, 0.8))}.range-wrap.sc-nano-range{display:flex;position:relative;flex:3;align-items:center;-webkit-user-select:none;user-select:none}.range-wrap.sc-nano-range-s>ion-icon[slot],.range-wrap .sc-nano-range-s>ion-icon[slot]{font-size:1.5em}.range-wrap.sc-nano-range-s>[slot=start],.range-wrap .sc-nano-range-s>[slot=start]{margin-inline:0 14px;margin-block:0;font-size:0.9em}.range-wrap.sc-nano-range-s>[slot=end],.range-wrap .sc-nano-range-s>[slot=end]{margin-inline:14px 0;margin-block:0;font-size:0.9em}.range-slider.sc-nano-range{position:relative;flex:1;inline-size:100%;block-size:var(--height);contain:size layout style;cursor:grab;touch-action:pan-y}.range-pressed.sc-nano-range-h .range-slider.sc-nano-range{cursor:grabbing}.range-bar.sc-nano-range{border-radius:var(--bar-border-radius);inset-block-start:calc((var(--height) - var(--bar-height)) / 2);inset-inline-start:0;position:absolute;inline-size:100%;block-size:var(--bar-height);background:var(--bar-background);pointer-events:none}.range-snaps.sc-nano-range-h .range-bar.sc-nano-range{border-radius:var(--bar-border-radius) 0 0 var(--bar-border-radius)}.range-bar-active.sc-nano-range{inset-block-end:0;inline-size:auto;background:var(--bar-background-active)}.range-knob.sc-nano-range{border-radius:var(--knob-border-radius);inset-block-start:calc(50% - var(--knob-size) / 2);inset-inline-start:calc(50% - var(--knob-size) / 2);position:absolute;inline-size:var(--knob-size);block-size:var(--knob-size);background:var(--knob-background);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none;transform:scale(0.67);transition-duration:120ms;transition-property:transform, background-color, border;transition-timing-function:ease}.sc-nano-range-h:not(.range-has-pin) .range-knob-pressed.sc-nano-range .range-knob.sc-nano-range{transform:scale(1)}.range-knob-handle.sc-nano-range{inset-block-start:calc((var(--height) - var(--knob-handle-size)) / 2);inset-inline-start:0;margin-inline-start:calc(0px - var(--knob-handle-size) / 2);position:absolute;inline-size:calc(var(--knob-handle-size));block-size:calc(var(--knob-handle-size));text-align:center}.range-knob-handle.sc-nano-range:active,.range-knob-handle.sc-nano-range:focus{outline:none}.range-knob-handle.sc-nano-range:active .range-knob.sc-nano-range,.range-knob-handle.sc-nano-range:focus .range-knob.sc-nano-range{box-shadow:var(--knob-box-shadow), var(--focus-style)}.range-tick.sc-nano-range{position:absolute;inset-block-start:calc((var(--height) - var(--bar-height)) / 2);inline-size:var(--bar-height);block-size:var(--bar-height);background:var(--bar-background-active);z-index:1;pointer-events:none}.range-tick.sc-nano-range:first-of-type{border-radius:var(--bar-border-radius) 0 0 var(--bar-border-radius)}.range-tick.sc-nano-range:last-of-type{border-radius:0 var(--bar-border-radius) var(--bar-border-radius) 0}.range-tick-active.sc-nano-range{background:transparent}.range-pin.sc-nano-range{transform:translate3d(0, 0, 0) scale(0.01);transform-origin:center top;padding:0.66em 0;border-radius:50%;text-align:center;box-sizing:border-box;display:inline-block;position:relative;min-inline-size:2.33em;block-size:2.33em;transition:transform 120ms ease, background 120ms ease;background:var(--pin-background);color:var(--pin-color);font-size:0.75em}.range-pin.sc-nano-range::before{inset-block-start:0.25em;inset-inline-start:50%;margin-inline-start:-1.08em;border-radius:50% 50% 50% 0;position:absolute;inline-size:2.16em;block-size:2.16em;transform:rotate(-45deg);transition:background 120ms ease;background:var(--pin-background);content:"";z-index:-1}.range-knob-pressed.sc-nano-range .range-pin.sc-nano-range{transform:translate3d(0, -50%, 0) scale(1);transform:translate3d(0, calc((100% - var(--bar-height)) * -1), 0) scale(1)}.range-disabled.sc-nano-range-h{pointer-events:none}.range-disabled.sc-nano-range-h .range-bar-active.sc-nano-range,.range-disabled.sc-nano-range-h .range-bar.sc-nano-range,.range-disabled.sc-nano-range-h .range-tick.sc-nano-range{background-color:rgb(var(--rgb-inactive)/50%)}.range-disabled.sc-nano-range-h .range-knob.sc-nano-range{transform:scale(0.55);outline:5px solid #fff;background-color:rgb(var(--rgb-inactive)/50%)}.nano-color.sc-nano-range-h .range-bar-active.sc-nano-range,.nano-color.sc-nano-range-h .range-knob.sc-nano-range,.nano-color.sc-nano-range-h .range-pin.sc-nano-range,.nano-color.sc-nano-range-h .range-pin.sc-nano-range::before,.nano-color.sc-nano-range-h .range-tick.sc-nano-range{background:var(--nano-color-base);color:var(--nano-color-contrast)}.nano-color.sc-nano-range-h .range-bar.sc-nano-range{background:rgb(var(--nano-color-base-rgb)/0.26)}.nano-color.sc-nano-range-h .range-knob-handle.sc-nano-range:active .range-knob.sc-nano-range,.nano-color.sc-nano-range-h .range-knob-handle.sc-nano-range:focus .range-knob.sc-nano-range{box-shadow:var(--knob-box-shadow), 0 0 0 5px rgb(var(--nano-color-tint-rgb)/0.56)}';const l=g;const h=class{constructor(e){n(this,e);this.nanoChange=a(this,"nanoChange",7);this.nanoStyle=a(this,"nanoStyle",7);this.nanoFocus=a(this,"nanoFocus",7);this.nanoBlur=a(this,"nanoBlur",7)}noUpdate=false;rect;hasFocus=false;rangeSlider;gesture;get el(){return e(this)}ratioA=0;ratioB=0;pressedKnob;color;debounce=0;debounceChanged(){this.nanoChange=i(this.nanoChange,this.debounce)}name="";dualKnobs=false;min=0;minChanged(){if(!this.noUpdate){this.updateRatio()}}max=100;maxChanged(){if(!this.noUpdate){this.updateRatio()}}pin=false;snaps=false;step=1;ticks=false;disabled=false;disabledChanged(){if(this.gesture){this.gesture.enable(!this.disabled)}this.emitStyle()}value=0;valueChanged(n){if(!this.noUpdate){this.updateRatio()}n=this.ensureValueInBounds(n);this.nanoChange.emit({value:n})}clampBounds=n=>o(this.min,n,this.max);ensureValueInBounds=n=>{if(this.dualKnobs){return{lower:this.clampBounds(n.lower),upper:this.clampBounds(n.upper)}}else{return this.clampBounds(n)}};nanoChange;nanoStyle;nanoFocus;nanoBlur;connectedCallback(){this.updateRatio();this.debounceChanged();this.disabledChanged()}disconnectedCallback(){if(this.gesture){this.gesture.destroy();this.gesture=undefined}}async componentDidLoad(){const n=this.rangeSlider;if(n){this.gesture=(await import("./index-a2043fcd.js")).createGesture({el:n,gestureName:"range",gesturePriority:100,threshold:0,onStart:n=>this.onStart(n),onMove:n=>this.onMove(n),onEnd:n=>this.onEnd(n)});this.gesture.enable(!this.disabled)}}handleKeyboard=(n,a)=>{let e=this.step;e=e>0?e:1;e=e/(this.max-this.min);if(!a){e*=-1}if(n==="A"){this.ratioA=o(0,this.ratioA+e,1)}else{this.ratioB=o(0,this.ratioB+e,1)}this.updateValue()};getValue(){const n=this.value||0;if(this.dualKnobs){if(typeof n==="object"){return n}return{lower:0,upper:n}}else{if(typeof n==="object"){return n.upper}return n}}emitStyle(){this.nanoStyle.emit({interactive:true,"interactive-disabled":this.disabled})}onStart(n){const a=this.rect=this.rangeSlider.getBoundingClientRect();const e=n.currentX;let r=o(0,(e-a.left)/a.width,1);if(document.dir==="rtl"){r=1-r}this.pressedKnob=!this.dualKnobs||Math.abs(this.ratioA-r)<Math.abs(this.ratioB-r)?"A":"B";this.setFocus(this.pressedKnob);this.update(e)}onMove(n){this.update(n.currentX)}onEnd(n){this.update(n.currentX);this.pressedKnob=undefined}update(n){const a=this.rect;let e=o(0,(n-a.left)/a.width,1);if(document.dir==="rtl"){e=1-e}if(this.snaps){e=u(d(e,this.min,this.max,this.step),this.min,this.max)}if(this.pressedKnob==="A"){this.ratioA=e}else{this.ratioB=e}this.updateValue()}get valA(){return d(this.ratioA,this.min,this.max,this.step)}get valB(){return d(this.ratioB,this.min,this.max,this.step)}get ratioLower(){if(this.dualKnobs){return Math.min(this.ratioA,this.ratioB)}return 0}get ratioUpper(){if(this.dualKnobs){return Math.max(this.ratioA,this.ratioB)}return this.ratioA}updateRatio(){const n=this.getValue();const{min:a,max:e}=this;if(this.dualKnobs){this.ratioA=u(n.lower,a,e);this.ratioB=u(n.upper,a,e)}else{this.ratioA=u(n,a,e)}}updateValue(){this.noUpdate=true;const{valA:n,valB:a}=this;this.value=!this.dualKnobs?n:{lower:Math.min(n,a),upper:Math.max(n,a)};this.noUpdate=false}setFocus(n){if(this.el.shadowRoot){const a=this.el.shadowRoot.querySelector(n==="A"?".range-knob-a":".range-knob-b");if(a){a.focus()}}}onBlur=()=>{if(this.hasFocus){this.hasFocus=false;this.nanoBlur.emit();this.emitStyle()}};onFocus=()=>{if(!this.hasFocus){this.hasFocus=true;this.nanoFocus.emit();this.emitStyle()}};render(){const{min:n,max:a,step:e,el:o,handleKeyboard:i,pressedKnob:g,disabled:l,pin:h,ratioLower:d,ratioUpper:p}=this;const k=`${d*100}%`;const v=`${100-p*100}%`;const f=document;const m=f.dir==="rtl";const x=m?"right":"left";const z=m?"left":"right";const y=n=>({[x]:n[x]});const w={[x]:k,[z]:v};const A=[];if(this.snaps&&this.ticks){for(let r=n;r<=a;r+=e){const e=u(r,n,a);const s={ratio:e,active:e>=d&&e<=p};s[x]=`${e*100}%`;A.push(s)}}c(o,this.name,JSON.stringify(this.getValue()),l);return r(s,{onFocusin:this.onFocus,onFocusout:this.onBlur,class:t(this.color,{"range-disabled":l,"range-pressed":g!==undefined,"range-has-pin":h,"range-snaps":this.snaps})},r("div",{class:"range-wrap"},r("slot",{name:"start"}),r("div",{class:"range-slider",ref:n=>this.rangeSlider=n},A.map((n=>r("span",{style:y(n),role:"presentation",class:{"range-tick":true,"range-tick-active":n.active},part:n.active?"tick-active":"tick"}))),r("div",{class:"range-bar",role:"presentation",part:"bar"}),r("div",{class:"range-bar range-bar-active",role:"presentation",style:w,part:"bar-active"}),b(m,{knob:"A",pressed:g==="A",value:this.valA,ratio:this.ratioA,pin:h,disabled:l,handleKeyboard:i,min:n,max:a}),this.dualKnobs&&b(m,{knob:"B",pressed:g==="B",value:this.valB,ratio:this.ratioB,pin:h,disabled:l,handleKeyboard:i,min:n,max:a})),r("slot",{name:"end"})))}static get watchers(){return{debounce:["debounceChanged"],min:["minChanged"],max:["maxChanged"],disabled:["disabledChanged"],value:["valueChanged"]}}};const b=(n,{knob:a,value:e,ratio:s,min:o,max:t,disabled:i,pressed:c,pin:g,handleKeyboard:l})=>{const h=n?"right":"left";const b=()=>{const n={};n[h]=`${s*100}%`;return n};return r("div",{onKeyDown:n=>{const e=n.key;if(e==="ArrowLeft"||e==="ArrowDown"){l(a,false);n.preventDefault();n.stopPropagation()}else if(e==="ArrowRight"||e==="ArrowUp"){l(a,true);n.preventDefault();n.stopPropagation()}},class:{"range-knob-handle":true,"range-knob-a":a==="A","range-knob-b":a==="B","range-knob-pressed":c,"range-knob-min":e===o,"range-knob-max":e===t},style:b(),role:"slider",tabindex:i?-1:0,"aria-valuemin":o,"aria-valuemax":t,"aria-disabled":i?"true":null,"aria-valuenow":e},g&&r("div",{class:"range-pin",role:"presentation",part:"pin"},Math.round(e)),r("div",{class:"range-knob",role:"presentation",part:"knob"}))};const d=(n,a,e,r)=>{let s=(e-a)*n;if(r>0){s=Math.round(s/r)*r+a}return o(a,s,e)};const u=(n,a,e)=>o(0,(n-a)/(e-a),1);h.style=l;export{h as nano_range};
4
+ import{r as n,c as a,g as e,h as r,a as s}from"./index-3118109b.js";import{c as o}from"./math-d160f8a6.js";import{c as t}from"./theme-d553c17a.js";import{a as i}from"./throttle-df960210.js";const c=(n,a,e,r)=>{let s=n.querySelector("input.aux-input");if(!s){s=n.ownerDocument.createElement("input");s.type="hidden";s.classList.add("aux-input");n.appendChild(s)}s.disabled=r;s.name=a;s.value=e||""};const g='.sc-nano-range-h{box-sizing:border-box}*.sc-nano-range,*.sc-nano-range::before,*.sc-nano-range::after{box-sizing:border-box}[hidden].sc-nano-range{display:none !important}.sc-nano-range-h{box-sizing:border-box}*.sc-nano-range,*.sc-nano-range::before,*.sc-nano-range::after{box-sizing:border-box}[hidden].sc-nano-range{display:none !important}.sc-nano-range-h{--knob-handle-size:(var(--knob-size) * 2);--rgb-inactive:165 165 165;--knob-border-radius:50%;--knob-background:var(--nano-color-primary, #007495);--knob-box-shadow:0 2px 4px 0 rgb(0 0 0 / 30%);--knob-size:30px;--bar-height:8px;--bar-background:#e2e1e0;--bar-background-active:#a5a5a5;--bar-border-radius:4px;--height:42px;--pin-background:var(--nano-color-primary, #007495);--pin-color:var(--nano-color-primary-contrast, #fff);--focus-style:0 0 0 5px var(--nano-control-focus-color, rgba(144, 198, 231, 0.8))}.range-wrap.sc-nano-range{display:flex;position:relative;flex:3;align-items:center;-webkit-user-select:none;user-select:none}.range-wrap.sc-nano-range-s>ion-icon[slot],.range-wrap .sc-nano-range-s>ion-icon[slot]{font-size:1.5em}.range-wrap.sc-nano-range-s>[slot=start],.range-wrap .sc-nano-range-s>[slot=start]{margin-inline:0 14px;margin-block:0;font-size:0.9em}.range-wrap.sc-nano-range-s>[slot=end],.range-wrap .sc-nano-range-s>[slot=end]{margin-inline:14px 0;margin-block:0;font-size:0.9em}.range-slider.sc-nano-range{position:relative;flex:1;inline-size:100%;block-size:var(--height);contain:size layout style;cursor:grab;touch-action:pan-y}.range-pressed.sc-nano-range-h .range-slider.sc-nano-range{cursor:grabbing}.range-bar.sc-nano-range{border-radius:var(--bar-border-radius);inset-block-start:calc((var(--height) - var(--bar-height)) / 2);inset-inline-start:0;position:absolute;inline-size:100%;block-size:var(--bar-height);background:var(--bar-background);pointer-events:none}.range-snaps.sc-nano-range-h .range-bar.sc-nano-range{border-radius:var(--bar-border-radius) 0 0 var(--bar-border-radius)}.range-bar-active.sc-nano-range{inset-block-end:0;inline-size:auto;background:var(--bar-background-active)}.range-knob.sc-nano-range{border-radius:var(--knob-border-radius);inset-block-start:calc(50% - var(--knob-size) / 2);inset-inline-start:calc(50% - var(--knob-size) / 2);position:absolute;inline-size:var(--knob-size);block-size:var(--knob-size);background:var(--knob-background);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none;transform:scale(0.67);transition-duration:120ms;transition-property:transform, background-color, border;transition-timing-function:ease}.sc-nano-range-h:not(.range-has-pin) .range-knob-pressed.sc-nano-range .range-knob.sc-nano-range{transform:scale(1)}.range-knob-handle.sc-nano-range{inset-block-start:calc((var(--height) - var(--knob-handle-size)) / 2);inset-inline-start:0;margin-inline-start:calc(0px - var(--knob-handle-size) / 2);position:absolute;inline-size:calc(var(--knob-handle-size));block-size:calc(var(--knob-handle-size));text-align:center}.range-knob-handle.sc-nano-range:active,.range-knob-handle.sc-nano-range:focus{outline:none}.range-knob-handle.sc-nano-range:active .range-knob.sc-nano-range,.range-knob-handle.sc-nano-range:focus .range-knob.sc-nano-range{box-shadow:var(--knob-box-shadow), var(--focus-style)}.range-tick.sc-nano-range{position:absolute;inset-block-start:calc((var(--height) - var(--bar-height)) / 2);inline-size:var(--bar-height);block-size:var(--bar-height);background:var(--bar-background-active);z-index:1;pointer-events:none}.range-tick.sc-nano-range:first-of-type{border-radius:var(--bar-border-radius) 0 0 var(--bar-border-radius)}.range-tick.sc-nano-range:last-of-type{border-radius:0 var(--bar-border-radius) var(--bar-border-radius) 0}.range-tick-active.sc-nano-range{background:transparent}.range-pin.sc-nano-range{transform:translate3d(0, 0, 0) scale(0.01);transform-origin:center top;padding:0.66em 0;border-radius:50%;text-align:center;box-sizing:border-box;display:inline-block;position:relative;min-inline-size:2.33em;block-size:2.33em;transition:transform 120ms ease, background 120ms ease;background:var(--pin-background);color:var(--pin-color);font-size:0.75em}.range-pin.sc-nano-range::before{inset-block-start:0.25em;inset-inline-start:50%;margin-inline-start:-1.08em;border-radius:50% 50% 50% 0;position:absolute;inline-size:2.16em;block-size:2.16em;transform:rotate(-45deg);transition:background 120ms ease;background:var(--pin-background);content:"";z-index:-1}.range-knob-pressed.sc-nano-range .range-pin.sc-nano-range{transform:translate3d(0, -50%, 0) scale(1);transform:translate3d(0, calc((100% - var(--bar-height)) * -1), 0) scale(1)}.range-disabled.sc-nano-range-h{pointer-events:none}.range-disabled.sc-nano-range-h .range-bar-active.sc-nano-range,.range-disabled.sc-nano-range-h .range-bar.sc-nano-range,.range-disabled.sc-nano-range-h .range-tick.sc-nano-range{background-color:rgb(var(--rgb-inactive)/50%)}.range-disabled.sc-nano-range-h .range-knob.sc-nano-range{transform:scale(0.55);outline:5px solid #fff;background-color:rgb(var(--rgb-inactive)/50%)}.nano-color.sc-nano-range-h .range-bar-active.sc-nano-range,.nano-color.sc-nano-range-h .range-knob.sc-nano-range,.nano-color.sc-nano-range-h .range-pin.sc-nano-range,.nano-color.sc-nano-range-h .range-pin.sc-nano-range::before,.nano-color.sc-nano-range-h .range-tick.sc-nano-range{background:var(--nano-color-base);color:var(--nano-color-contrast)}.nano-color.sc-nano-range-h .range-bar.sc-nano-range{background:rgb(var(--nano-color-base-rgb)/0.26)}.nano-color.sc-nano-range-h .range-knob-handle.sc-nano-range:active .range-knob.sc-nano-range,.nano-color.sc-nano-range-h .range-knob-handle.sc-nano-range:focus .range-knob.sc-nano-range{box-shadow:var(--knob-box-shadow), 0 0 0 5px rgb(var(--nano-color-tint-rgb)/0.56)}';const l=g;const h=class{constructor(e){n(this,e);this.nanoChange=a(this,"nanoChange",7);this.nanoStyle=a(this,"nanoStyle",7);this.nanoFocus=a(this,"nanoFocus",7);this.nanoBlur=a(this,"nanoBlur",7)}noUpdate=false;rect;hasFocus=false;rangeSlider;gesture;get el(){return e(this)}ratioA=0;ratioB=0;pressedKnob;color;debounce=0;debounceChanged(){this.nanoChange=i(this.nanoChange,this.debounce)}name="";dualKnobs=false;min=0;minChanged(){if(!this.noUpdate){this.updateRatio()}}max=100;maxChanged(){if(!this.noUpdate){this.updateRatio()}}pin=false;snaps=false;step=1;ticks=false;disabled=false;disabledChanged(){if(this.gesture){this.gesture.enable(!this.disabled)}this.emitStyle()}value=0;valueChanged(n){if(!this.noUpdate){this.updateRatio()}n=this.ensureValueInBounds(n);this.nanoChange.emit({value:n})}clampBounds=n=>o(this.min,n,this.max);ensureValueInBounds=n=>{if(this.dualKnobs){return{lower:this.clampBounds(n.lower),upper:this.clampBounds(n.upper)}}else{return this.clampBounds(n)}};nanoChange;nanoStyle;nanoFocus;nanoBlur;connectedCallback(){this.updateRatio();this.debounceChanged();this.disabledChanged()}disconnectedCallback(){if(this.gesture){this.gesture.destroy();this.gesture=undefined}}async componentDidLoad(){const n=this.rangeSlider;if(n){this.gesture=(await import("./index-a2043fcd.js")).createGesture({el:n,gestureName:"range",gesturePriority:100,threshold:0,onStart:n=>this.onStart(n),onMove:n=>this.onMove(n),onEnd:n=>this.onEnd(n)});this.gesture.enable(!this.disabled)}}handleKeyboard=(n,a)=>{let e=this.step;e=e>0?e:1;e=e/(this.max-this.min);if(!a){e*=-1}if(n==="A"){this.ratioA=o(0,this.ratioA+e,1)}else{this.ratioB=o(0,this.ratioB+e,1)}this.updateValue()};getValue(){const n=this.value||0;if(this.dualKnobs){if(typeof n==="object"){return n}return{lower:0,upper:n}}else{if(typeof n==="object"){return n.upper}return n}}emitStyle(){this.nanoStyle.emit({interactive:true,"interactive-disabled":this.disabled})}onStart(n){const a=this.rect=this.rangeSlider.getBoundingClientRect();const e=n.currentX;let r=o(0,(e-a.left)/a.width,1);if(document.dir==="rtl"){r=1-r}this.pressedKnob=!this.dualKnobs||Math.abs(this.ratioA-r)<Math.abs(this.ratioB-r)?"A":"B";this.setFocus(this.pressedKnob);this.update(e)}onMove(n){this.update(n.currentX)}onEnd(n){this.update(n.currentX);this.pressedKnob=undefined}update(n){const a=this.rect;let e=o(0,(n-a.left)/a.width,1);if(document.dir==="rtl"){e=1-e}if(this.snaps){e=u(d(e,this.min,this.max,this.step),this.min,this.max)}if(this.pressedKnob==="A"){this.ratioA=e}else{this.ratioB=e}this.updateValue()}get valA(){return d(this.ratioA,this.min,this.max,this.step)}get valB(){return d(this.ratioB,this.min,this.max,this.step)}get ratioLower(){if(this.dualKnobs){return Math.min(this.ratioA,this.ratioB)}return 0}get ratioUpper(){if(this.dualKnobs){return Math.max(this.ratioA,this.ratioB)}return this.ratioA}updateRatio(){const n=this.getValue();const{min:a,max:e}=this;if(this.dualKnobs){this.ratioA=u(n.lower,a,e);this.ratioB=u(n.upper,a,e)}else{this.ratioA=u(n,a,e)}}updateValue(){this.noUpdate=true;const{valA:n,valB:a}=this;this.value=!this.dualKnobs?n:{lower:Math.min(n,a),upper:Math.max(n,a)};this.noUpdate=false}setFocus(n){if(this.el.shadowRoot){const a=this.el.shadowRoot.querySelector(n==="A"?".range-knob-a":".range-knob-b");if(a){a.focus()}}}onBlur=()=>{if(this.hasFocus){this.hasFocus=false;this.nanoBlur.emit();this.emitStyle()}};onFocus=()=>{if(!this.hasFocus){this.hasFocus=true;this.nanoFocus.emit();this.emitStyle()}};render(){const{min:n,max:a,step:e,el:o,handleKeyboard:i,pressedKnob:g,disabled:l,pin:h,ratioLower:d,ratioUpper:p}=this;const k=`${d*100}%`;const v=`${100-p*100}%`;const f=document;const m=f.dir==="rtl";const x=m?"right":"left";const z=m?"left":"right";const y=n=>({[x]:n[x]});const w={[x]:k,[z]:v};const A=[];if(this.snaps&&this.ticks){for(let r=n;r<=a;r+=e){const e=u(r,n,a);const s={ratio:e,active:e>=d&&e<=p};s[x]=`${e*100}%`;A.push(s)}}c(o,this.name,JSON.stringify(this.getValue()),l);return r(s,{onFocusin:this.onFocus,onFocusout:this.onBlur,class:t(this.color,{"range-disabled":l,"range-pressed":g!==undefined,"range-has-pin":h,"range-snaps":this.snaps})},r("div",{class:"range-wrap"},r("slot",{name:"start"}),r("div",{class:"range-slider",ref:n=>this.rangeSlider=n},A.map((n=>r("span",{style:y(n),role:"presentation",class:{"range-tick":true,"range-tick-active":n.active},part:n.active?"tick-active":"tick"}))),r("div",{class:"range-bar",role:"presentation",part:"bar"}),r("div",{class:"range-bar range-bar-active",role:"presentation",style:w,part:"bar-active"}),b(m,{knob:"A",pressed:g==="A",value:this.valA,ratio:this.ratioA,pin:h,disabled:l,handleKeyboard:i,min:n,max:a}),this.dualKnobs&&b(m,{knob:"B",pressed:g==="B",value:this.valB,ratio:this.ratioB,pin:h,disabled:l,handleKeyboard:i,min:n,max:a})),r("slot",{name:"end"})))}static get watchers(){return{debounce:["debounceChanged"],min:["minChanged"],max:["maxChanged"],disabled:["disabledChanged"],value:["valueChanged"]}}};const b=(n,{knob:a,value:e,ratio:s,min:o,max:t,disabled:i,pressed:c,pin:g,handleKeyboard:l})=>{const h=n?"right":"left";const b=()=>{const n={};n[h]=`${s*100}%`;return n};return r("div",{onKeyDown:n=>{const e=n.key;if(e==="ArrowLeft"||e==="ArrowDown"){l(a,false);n.preventDefault();n.stopPropagation()}else if(e==="ArrowRight"||e==="ArrowUp"){l(a,true);n.preventDefault();n.stopPropagation()}},class:{"range-knob-handle":true,"range-knob-a":a==="A","range-knob-b":a==="B","range-knob-pressed":c,"range-knob-min":e===o,"range-knob-max":e===t},style:b(),role:"slider",tabindex:i?-1:0,"aria-valuemin":o,"aria-valuemax":t,"aria-disabled":i?"true":null,"aria-valuenow":e},g&&r("div",{class:"range-pin",role:"presentation",part:"pin"},Math.round(e)),r("div",{class:"range-knob",role:"presentation",part:"knob"}))};const d=(n,a,e,r)=>{let s=(e-a)*n;if(r>0){s=Math.round(s/r)*r+a}return o(a,s,e)};const u=(n,a,e)=>o(0,(n-a)/(e-a),1);h.style=l;export{h as nano_range};
5
5
  //# sourceMappingURL=nano-range.entry.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import{r as n,c as s,g as i,h as a}from"./index-815d3f98.js";import{f as t}from"./focus-visible-e5f02c46.js";import{c as o}from"./math-d160f8a6.js";const r=".sc-nano-rating-h{box-sizing:border-box}*.sc-nano-rating,*.sc-nano-rating::before,*.sc-nano-rating::after{box-sizing:border-box}[hidden].sc-nano-rating{display:none !important}.sc-nano-rating-h{box-sizing:border-box}*.sc-nano-rating,*.sc-nano-rating::before,*.sc-nano-rating::after{box-sizing:border-box}[hidden].sc-nano-rating{display:none !important}.sc-nano-rating-h{--symbol-color:#b5aea7;--symbol-color-active:#f5cc49;--symbol-spacing:0.25rem;--focus-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));display:inline-block}.rating-wrap.sc-nano-rating{position:relative;margin-block:0;margin-inline:calc(var(--symbol-spacing) * -1)}.rating.sc-nano-rating{position:relative;border-radius:5px;vertical-align:middle;inline-size:100%;transition:box-shadow 0.15s ease}.rating.sc-nano-rating:focus{outline:none}.rating.focus-visible.sc-nano-rating:focus{box-shadow:var(--focus-shadow)}.rating__symbols.sc-nano-rating{display:flex;align-items:center;position:relative;font-size:var(--symbol-size);color:var(--symbol-color);white-space:nowrap;cursor:pointer;line-height:0;justify-content:space-between}.rating__symbols--inactive.sc-nano-rating .rating__symbol.sc-nano-rating>.sc-nano-rating:not(nano-icon){background-color:currentcolor !important}.rating__symbols.sc-nano-rating>*.sc-nano-rating{margin:var(--symbol-spacing)}.rating__symbols--indicator.sc-nano-rating{position:absolute;inset-block-start:0;inset-inline-start:0;color:var(--symbol-color-active);pointer-events:none;inline-size:100%}.rating__symbol.sc-nano-rating{transition:0.2s transform;text-align:center}.rating__symbol--hover.sc-nano-rating{transform:scale(1.2)}.rating--disabled.sc-nano-rating .rating__symbols.sc-nano-rating,.rating--readonly.sc-nano-rating .rating__symbols.sc-nano-rating{cursor:default}.rating--disabled.sc-nano-rating .rating__symbol.sc-nano-rating,.rating--readonly.sc-nano-rating .rating__symbol.sc-nano-rating{transform:none !important}.rating--disabled.sc-nano-rating{opacity:0.5}.rating--disabled.sc-nano-rating .rating__symbols.sc-nano-rating{cursor:not-allowed}";const e=r;const l=class{constructor(i){n(this,i);this.nanoChange=s(this,"nanoChange",7);this.nanoBlur=s(this,"nanoBlur",7);this.nanoFocus=s(this,"nanoFocus",7)}rating;isRtl;indicator;get host(){return i(this)}hoverValue=0;isHovering=false;value=0;max=5;precision=1;readonly=false;disabled=false;name="";symbolName="solid/star";symbol=n=>'<nano-icon name="'+this.symbolName+'"></nano-icon>';handleValueChange(){this.nanoChange.emit()}handleSymbolChange(){this.symbol=n=>'<nano-icon name="'+this.symbolName+'"></nano-icon>'}nanoChange;nanoBlur;nanoFocus;async setFocus(){this.rating.focus()}async removeFocus(){this.rating.blur()}getValueFromMousePosition(n){const s=this.rating.getBoundingClientRect().left;const i=this.rating.getBoundingClientRect().width;let a;a=this.roundToPrecision((n.clientX-s)/i*this.max,this.precision);if(this.isRtl)a=this.max+this.precision-a;return o(a,0,this.max)}roundToPrecision(n,s=.5){const i=1/s;return Math.ceil(n*i)/i}handleClick=n=>{if(this.disabled||this.readonly){return}const s=this.getValueFromMousePosition(n);this.value=s===this.value?0:s;this.isHovering=false};handleKeyDown=n=>{if(this.disabled||this.readonly){return}if(n.key==="ArrowLeft"){const s=n.shiftKey?1:this.precision;this.value=this.roundToPrecision(Math.max(0,this.value-s));n.preventDefault()}if(n.key==="ArrowRight"){const s=n.shiftKey?1:this.precision;this.value=this.roundToPrecision(Math.min(this.max,this.value+s));n.preventDefault()}if(n.key==="Home"){this.value=0;n.preventDefault()}if(n.key==="End"){this.value=this.max;n.preventDefault()}};handleMouseEnter=()=>{this.isHovering=true};handleMouseLeave=()=>{this.isHovering=false};handleFocus=()=>{this.nanoFocus.emit()};handleBlur=()=>{this.nanoBlur.emit()};handleMouseMove=n=>{this.hoverValue=this.getValueFromMousePosition(n)};clip(n){if(!this.rating)return;const s=this.rating.getBoundingClientRect().width;if(this.isRtl)return`rect(0, ${s}px, 2em, ${s-s/100*(n/this.max*100)}px)`;return`rect(0, ${s/100*(n/this.max*100)}px, 2em, 0)`}componentDidLoad(){t.observe(this.rating);setTimeout((()=>this.indicator.style.clip=this.clip(this.value)),20)}connectedCallback(){this.isRtl=this.host.dir==="rtl"||this.host.ownerDocument.dir==="rtl"}disconnectedCallback(){t.unobserve(this.rating)}render(){this.isRtl=this.host.dir==="rtl"||this.host.ownerDocument.dir==="rtl";const n=Array.from(Array(this.max).keys());let s=0;if(this.disabled||this.readonly){s=this.value}else{s=this.isHovering?this.hoverValue:this.value}return a("div",{key:"218618f9d68f36dac8599a03d43b0bb0ffd0e633",class:"rating-wrap"},a("div",{key:"b734d72f8e7ea5d5a30ad3ad606b4756bcd47d63",dir:this.isRtl?"rtl":null,ref:n=>this.rating=n,part:"base",class:{rating:true,"rating--readonly":this.readonly,"rating--disabled":this.disabled},"aria-disabled":this.disabled?"true":"false","aria-readonly":this.readonly?"true":"false","aria-valuenow":this.value,"aria-valuemin":0,"aria-valuemax":this.max,tabIndex:this.disabled?-1:0,onClick:this.handleClick,onKeyDown:this.handleKeyDown,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,onMouseMove:this.handleMouseMove,onFocus:this.handleFocus,onBlur:this.handleBlur},a("span",{key:"099ecafd98a5963c46bc50054578cc03fa937e74",class:"rating__symbols rating__symbols--inactive"},n.map((n=>a("span",{class:{rating__symbol:true,"rating__symbol--hover":this.isHovering&&Math.ceil(s)===n+1},role:"presentation",onMouseEnter:this.handleMouseEnter,innerHTML:this.symbol(n+1)})))),a("span",{key:"bf493923e4a27254b2b19b269aec30deab30d9b5",ref:n=>this.indicator=n,class:"rating__symbols rating__symbols--indicator",style:{clip:this.clip(s)}},n.map((n=>a("span",{class:{rating__symbol:true,"rating__symbol--hover":this.isHovering&&Math.ceil(s)===n+1},role:"presentation",innerHTML:this.symbol(n+1)})))),a("input",{key:"6e546fa434f529b14b8f6f8019a7fd4d6a51d76b",type:"hidden",name:this.name,value:this.value,disabled:this.disabled||this.readonly})))}static get watchers(){return{value:["handleValueChange"],symbolName:["handleSymbolChange"]}}};l.style=e;export{l as nano_rating};
4
+ import{r as n,c as s,g as i,h as t}from"./index-3118109b.js";import{f as a}from"./focus-visible-e5f02c46.js";import{c as o}from"./math-d160f8a6.js";const r=".sc-nano-rating-h{box-sizing:border-box}*.sc-nano-rating,*.sc-nano-rating::before,*.sc-nano-rating::after{box-sizing:border-box}[hidden].sc-nano-rating{display:none !important}.sc-nano-rating-h{box-sizing:border-box}*.sc-nano-rating,*.sc-nano-rating::before,*.sc-nano-rating::after{box-sizing:border-box}[hidden].sc-nano-rating{display:none !important}.sc-nano-rating-h{--symbol-color:#b5aea7;--symbol-color-active:#f5cc49;--symbol-spacing:0.25rem;--focus-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));display:inline-block}.rating-wrap.sc-nano-rating{position:relative;margin-block:0;margin-inline:calc(var(--symbol-spacing) * -1)}.rating.sc-nano-rating{position:relative;border-radius:5px;vertical-align:middle;inline-size:100%;transition:box-shadow 0.15s ease}.rating.sc-nano-rating:focus{outline:none}.rating.focus-visible.sc-nano-rating:focus{box-shadow:var(--focus-shadow)}.rating__symbols.sc-nano-rating{display:flex;align-items:center;position:relative;font-size:var(--symbol-size);color:var(--symbol-color);white-space:nowrap;cursor:pointer;line-height:0;justify-content:space-between}.rating__symbols--inactive.sc-nano-rating .rating__symbol.sc-nano-rating>.sc-nano-rating:not(nano-icon){background-color:currentcolor !important}.rating__symbols.sc-nano-rating>*.sc-nano-rating{margin:var(--symbol-spacing)}.rating__symbols--indicator.sc-nano-rating{position:absolute;inset-block-start:0;inset-inline-start:0;color:var(--symbol-color-active);pointer-events:none;inline-size:100%}.rating__symbol.sc-nano-rating{transition:0.2s transform;text-align:center}.rating__symbol--hover.sc-nano-rating{transform:scale(1.2)}.rating--disabled.sc-nano-rating .rating__symbols.sc-nano-rating,.rating--readonly.sc-nano-rating .rating__symbols.sc-nano-rating{cursor:default}.rating--disabled.sc-nano-rating .rating__symbol.sc-nano-rating,.rating--readonly.sc-nano-rating .rating__symbol.sc-nano-rating{transform:none !important}.rating--disabled.sc-nano-rating{opacity:0.5}.rating--disabled.sc-nano-rating .rating__symbols.sc-nano-rating{cursor:not-allowed}";const e=r;const l=class{constructor(i){n(this,i);this.nanoChange=s(this,"nanoChange",7);this.nanoBlur=s(this,"nanoBlur",7);this.nanoFocus=s(this,"nanoFocus",7)}rating;isRtl;indicator;get host(){return i(this)}hoverValue=0;isHovering=false;value=0;max=5;precision=1;readonly=false;disabled=false;name="";symbolName="solid/star";symbol=n=>'<nano-icon name="'+this.symbolName+'"></nano-icon>';handleValueChange(){this.nanoChange.emit()}handleSymbolChange(){if(!this.symbol)this.symbol=n=>'<nano-icon name="'+this.symbolName+'"></nano-icon>'}nanoChange;nanoBlur;nanoFocus;async setFocus(){this.rating.focus()}async removeFocus(){this.rating.blur()}getValueFromMousePosition(n){const s=this.rating.getBoundingClientRect().left;const i=this.rating.getBoundingClientRect().width;let t;t=this.roundToPrecision((n.clientX-s)/i*this.max,this.precision);if(this.isRtl)t=this.max+this.precision-t;return o(t,0,this.max)}roundToPrecision(n,s=.5){const i=1/s;return Math.ceil(n*i)/i}handleClick=n=>{if(this.disabled||this.readonly){return}const s=this.getValueFromMousePosition(n);this.value=s===this.value?0:s;this.isHovering=false};handleKeyDown=n=>{if(this.disabled||this.readonly){return}if(n.key==="ArrowLeft"){const s=n.shiftKey?1:this.precision;this.value=this.roundToPrecision(Math.max(0,this.value-s));n.preventDefault()}if(n.key==="ArrowRight"){const s=n.shiftKey?1:this.precision;this.value=this.roundToPrecision(Math.min(this.max,this.value+s));n.preventDefault()}if(n.key==="Home"){this.value=0;n.preventDefault()}if(n.key==="End"){this.value=this.max;n.preventDefault()}};handleMouseEnter=()=>{this.isHovering=true};handleMouseLeave=()=>{this.isHovering=false};handleFocus=()=>{this.nanoFocus.emit()};handleBlur=()=>{this.nanoBlur.emit()};handleMouseMove=n=>{this.hoverValue=this.getValueFromMousePosition(n)};clip(n){if(!this.rating)return;const s=this.rating.getBoundingClientRect().width;if(this.isRtl)return`rect(0, ${s}px, 2em, ${s-s/100*(n/this.max*100)}px)`;return`rect(0, ${s/100*(n/this.max*100)}px, 2em, 0)`}componentDidLoad(){a.observe(this.rating);setTimeout((()=>this.indicator.style.clip=this.clip(this.value)),20)}connectedCallback(){this.isRtl=this.host.dir==="rtl"||this.host.ownerDocument.dir==="rtl"}disconnectedCallback(){a.unobserve(this.rating)}render(){this.isRtl=this.host.dir==="rtl"||this.host.ownerDocument.dir==="rtl";const n=Array.from(Array(this.max).keys());let s=0;if(this.disabled||this.readonly){s=this.value}else{s=this.isHovering?this.hoverValue:this.value}return t("div",{key:"71577f298741ece02dc6655e5275d00dedd37b86",class:"rating-wrap"},t("div",{key:"1970dd80f9783316eddb98501f1e5f1e8e0325c9",dir:this.isRtl?"rtl":null,ref:n=>this.rating=n,part:"base",class:{rating:true,"rating--readonly":this.readonly,"rating--disabled":this.disabled},"aria-disabled":this.disabled?"true":"false","aria-readonly":this.readonly?"true":"false","aria-valuenow":this.value,"aria-valuemin":0,"aria-valuemax":this.max,tabIndex:this.disabled?-1:0,onClick:this.handleClick,onKeyDown:this.handleKeyDown,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,onMouseMove:this.handleMouseMove,onFocus:this.handleFocus,onBlur:this.handleBlur},t("span",{key:"4d341aa10271c68e94379babdd4f88d9c436dbcb",class:"rating__symbols rating__symbols--inactive"},n.map((n=>t("span",{class:{rating__symbol:true,"rating__symbol--hover":this.isHovering&&Math.ceil(s)===n+1},onMouseEnter:this.handleMouseEnter,innerHTML:this.symbol(n+1)})))),t("span",{key:"13a214cc0d52fedcf48953e17e0d2e2e14ded9f9",ref:n=>this.indicator=n,class:"rating__symbols rating__symbols--indicator",style:{clip:this.clip(s)}},n.map((n=>t("span",{class:{rating__symbol:true,"rating__symbol--hover":this.isHovering&&Math.ceil(s)===n+1},innerHTML:this.symbol(n+1)})))),t("input",{key:"4dd7a72137134862bea4524ce4e54a828640ba3d",type:"hidden",name:this.name,value:this.value,disabled:this.disabled||this.readonly})))}static get watchers(){return{value:["handleValueChange"],symbolName:["handleSymbolChange"]}}};l.style=e;export{l as nano_rating};
5
5
  //# sourceMappingURL=nano-rating.entry.js.map