@nanoporetech-digital/components 2.9.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (660) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/cjs/{algoliasearch.umd-dcf18a4a.js → algoliasearch.umd-7ee60729.js} +3 -3
  3. package/dist/cjs/{algoliasearch.umd-dcf18a4a.js.map → algoliasearch.umd-7ee60729.js.map} +1 -1
  4. package/dist/cjs/{component-store-722032a5.js → component-store-19844199.js} +37 -25
  5. package/dist/cjs/component-store-19844199.js.map +1 -0
  6. package/dist/cjs/{date-utils-0ae9a12d.js → date-utils-b3af910d.js} +2 -2
  7. package/dist/cjs/date-utils-b3af910d.js.map +1 -0
  8. package/dist/cjs/{global-0d4f3b77.js → global-989678ec.js} +1 -8
  9. package/dist/cjs/global-989678ec.js.map +1 -0
  10. package/dist/cjs/index-cb62df44.js +5 -0
  11. package/dist/cjs/loader.cjs.js +2 -2
  12. package/dist/cjs/nano-algolia-filter.cjs.entry.js +1 -1
  13. package/dist/cjs/nano-algolia-input.cjs.entry.js +2 -2
  14. package/dist/cjs/nano-algolia.cjs.entry.js +2 -2
  15. package/dist/cjs/nano-checkbox-group.cjs.entry.js +58 -20
  16. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  17. package/dist/cjs/nano-checkbox.cjs.entry.js +27 -15
  18. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  19. package/dist/cjs/nano-components.cjs.js +2 -2
  20. package/dist/cjs/nano-datalist_3.cjs.entry.js +4 -1
  21. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
  22. package/dist/cjs/nano-date-input.cjs.entry.js +30 -9
  23. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  24. package/dist/cjs/nano-date-picker.cjs.entry.js +2 -2
  25. package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nano-details.cjs.entry.js +1 -2
  27. package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
  28. package/dist/cjs/nano-dialog.cjs.entry.js +13 -2
  29. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  30. package/dist/cjs/nano-field-validator.cjs.entry.js +531 -0
  31. package/dist/cjs/nano-field-validator.cjs.entry.js.map +1 -0
  32. package/dist/cjs/nano-file-upload.cjs.entry.js +59 -36
  33. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  34. package/dist/cjs/nano-global-nav.cjs.entry.js +2 -2
  35. package/dist/cjs/nano-global-search-results.cjs.entry.js +1 -2
  36. package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
  37. package/dist/cjs/nano-grid_3.cjs.entry.js +1 -2
  38. package/dist/cjs/nano-grid_3.cjs.entry.js.map +1 -1
  39. package/dist/cjs/nano-icon-button.cjs.entry.js +4 -0
  40. package/dist/cjs/nano-icon-button.cjs.entry.js.map +1 -1
  41. package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nano-input.cjs.entry.js +25 -13
  43. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  44. package/dist/cjs/nano-nav-item_2.cjs.entry.js +52 -16
  45. package/dist/cjs/nano-nav-item_2.cjs.entry.js.map +1 -1
  46. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -2
  47. package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
  48. package/dist/cjs/nano-slides.cjs.entry.js +1 -2
  49. package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
  50. package/dist/cjs/nano-sticker.cjs.entry.js +4 -5
  51. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nano-tab-group.cjs.entry.js +5 -3
  53. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nano-tab.cjs.entry.js +5 -1
  55. package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
  56. package/dist/cjs/nano-tooltip.cjs.entry.js +1 -1
  57. package/dist/cjs/nano-tooltip.cjs.entry.js.map +1 -1
  58. package/dist/collection/collection-manifest.json +2 -1
  59. package/dist/collection/components/accordion/accordion.js +1 -1
  60. package/dist/collection/components/alert/alert.js +1 -1
  61. package/dist/collection/components/algolia/algolia-filter.js +2 -2
  62. package/dist/collection/components/algolia/algolia-input.js +5 -5
  63. package/dist/collection/components/algolia/algolia-results.js +1 -1
  64. package/dist/collection/components/algolia/algolia.js +6 -6
  65. package/dist/collection/components/checkbox/checkbox-group.css +5 -5
  66. package/dist/collection/components/checkbox/checkbox-group.js +119 -25
  67. package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
  68. package/dist/collection/components/checkbox/checkbox.css +1 -1
  69. package/dist/collection/components/checkbox/checkbox.js +83 -22
  70. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  71. package/dist/collection/components/datalist/datalist.js +5 -2
  72. package/dist/collection/components/datalist/datalist.js.map +1 -1
  73. package/dist/collection/components/date-input/date-input.js +99 -16
  74. package/dist/collection/components/date-input/date-input.js.map +1 -1
  75. package/dist/collection/components/date-picker/date-picker.css +1 -1
  76. package/dist/collection/components/date-picker/date-picker.js +5 -5
  77. package/dist/collection/components/details/details.js +1 -2
  78. package/dist/collection/components/details/details.js.map +1 -1
  79. package/dist/collection/components/dialog/dialog.js +34 -1
  80. package/dist/collection/components/dialog/dialog.js.map +1 -1
  81. package/dist/collection/components/dropdown/dropdown.js +1 -1
  82. package/dist/collection/components/field-validator/field-validator.js +579 -0
  83. package/dist/collection/components/field-validator/field-validator.js.map +1 -0
  84. package/dist/collection/components/file-upload/file-upload.css +17 -5
  85. package/dist/collection/components/file-upload/file-upload.js +111 -44
  86. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  87. package/dist/collection/components/global-nav/global-nav.js +4 -4
  88. package/dist/collection/components/global-search-results/global-search-results.js +0 -1
  89. package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
  90. package/dist/collection/components/grid/grid-item.js +1 -1
  91. package/dist/collection/components/grid/grid.js +0 -1
  92. package/dist/collection/components/grid/grid.js.map +1 -1
  93. package/dist/collection/components/icon/icon.js +2 -2
  94. package/dist/collection/components/icon/icon.js.map +1 -1
  95. package/dist/collection/components/icon-button/icon-button.js +23 -1
  96. package/dist/collection/components/icon-button/icon-button.js.map +1 -1
  97. package/dist/collection/components/input/input.css +3 -2
  98. package/dist/collection/components/input/input.js +51 -22
  99. package/dist/collection/components/input/input.js.map +1 -1
  100. package/dist/collection/components/nav-item/nav-item.js +4 -4
  101. package/dist/collection/components/range/range.js +4 -4
  102. package/dist/collection/components/resize-observe/resize-observe.js +1 -2
  103. package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
  104. package/dist/collection/components/select/select.css +4 -3
  105. package/dist/collection/components/select/select.js +86 -26
  106. package/dist/collection/components/select/select.js.map +1 -1
  107. package/dist/collection/components/slides/slides.js +7 -8
  108. package/dist/collection/components/slides/slides.js.map +1 -1
  109. package/dist/collection/components/{sticky → sticker}/sticker.css +0 -0
  110. package/dist/collection/components/{sticky → sticker}/sticker.js +2 -3
  111. package/dist/collection/components/sticker/sticker.js.map +1 -0
  112. package/dist/collection/components/tabs/tab-group.js +5 -3
  113. package/dist/collection/components/tabs/tab-group.js.map +1 -1
  114. package/dist/collection/components/tabs/tab.js +5 -1
  115. package/dist/collection/components/tabs/tab.js.map +1 -1
  116. package/dist/collection/components/tooltip/tooltip.css +0 -1
  117. package/dist/collection/global/script/global.js +0 -7
  118. package/dist/collection/global/script/global.js.map +1 -1
  119. package/dist/collection/utils/date-utils.js +1 -1
  120. package/dist/collection/utils/date-utils.js.map +1 -1
  121. package/dist/collection/utils/store/component-store.js +4 -13
  122. package/dist/collection/utils/store/component-store.js.map +1 -1
  123. package/dist/collection/utils/store/get-set.js +15 -1
  124. package/dist/collection/utils/store/get-set.js.map +1 -1
  125. package/dist/components/algoliasearch.umd.js +2 -2
  126. package/dist/components/algoliasearch.umd.js.map +1 -1
  127. package/dist/components/component-store.js +36 -24
  128. package/dist/components/component-store.js.map +1 -1
  129. package/dist/components/datalist.js +4 -1
  130. package/dist/components/datalist.js.map +1 -1
  131. package/dist/components/date-picker.js +2 -2
  132. package/dist/components/date-picker.js.map +1 -1
  133. package/dist/components/grid.js +1 -2
  134. package/dist/components/grid.js.map +1 -1
  135. package/dist/components/icon-button.js +6 -1
  136. package/dist/components/icon-button.js.map +1 -1
  137. package/dist/components/icon.js.map +1 -1
  138. package/dist/components/index.js +0 -7
  139. package/dist/components/index.js.map +1 -1
  140. package/dist/components/input.js +27 -14
  141. package/dist/components/input.js.map +1 -1
  142. package/dist/components/nano-checkbox-group.js +62 -21
  143. package/dist/components/nano-checkbox-group.js.map +1 -1
  144. package/dist/components/nano-checkbox.js +31 -17
  145. package/dist/components/nano-checkbox.js.map +1 -1
  146. package/dist/components/nano-date-input.js +32 -8
  147. package/dist/components/nano-date-input.js.map +1 -1
  148. package/dist/components/nano-details.js +1 -2
  149. package/dist/components/nano-details.js.map +1 -1
  150. package/dist/components/nano-dialog.js +13 -1
  151. package/dist/components/nano-dialog.js.map +1 -1
  152. package/dist/components/nano-field-validator.d.ts +11 -0
  153. package/dist/components/nano-field-validator.js +559 -0
  154. package/dist/components/nano-field-validator.js.map +1 -0
  155. package/dist/components/nano-file-upload.js +62 -37
  156. package/dist/components/nano-file-upload.js.map +1 -1
  157. package/dist/components/nano-global-search-results.js +1 -2
  158. package/dist/components/nano-global-search-results.js.map +1 -1
  159. package/dist/components/nano-slides.js +1 -2
  160. package/dist/components/nano-slides.js.map +1 -1
  161. package/dist/components/nano-tab-group.js +4 -2
  162. package/dist/components/nano-tab-group.js.map +1 -1
  163. package/dist/components/nano-tab.js +5 -1
  164. package/dist/components/nano-tab.js.map +1 -1
  165. package/dist/components/resize-observe.js +1 -2
  166. package/dist/components/resize-observe.js.map +1 -1
  167. package/dist/components/select.js +56 -18
  168. package/dist/components/select.js.map +1 -1
  169. package/dist/components/sticker.js +4 -5
  170. package/dist/components/sticker.js.map +1 -1
  171. package/dist/components/tooltip.js +1 -1
  172. package/dist/components/tooltip.js.map +1 -1
  173. package/dist/custom-elements/index.d.ts +6 -0
  174. package/dist/custom-elements/index.js +20842 -20843
  175. package/dist/custom-elements/index.js.map +1 -1
  176. package/dist/esm/{algolia-data-dd72d1b7.js → algolia-data-80c1169a.js} +2 -2
  177. package/dist/esm/{algolia-data-dd72d1b7.js.map → algolia-data-80c1169a.js.map} +1 -1
  178. package/dist/esm/{algoliasearch.umd-6143495f.js → algoliasearch.umd-86359963.js} +3 -3
  179. package/dist/esm/{algoliasearch.umd-6143495f.js.map → algoliasearch.umd-86359963.js.map} +1 -1
  180. package/dist/esm/{component-store-b6fbfa35.js → component-store-d238fee4.js} +38 -26
  181. package/dist/esm/component-store-d238fee4.js.map +1 -0
  182. package/dist/esm/{date-utils-e4b757ff.js → date-utils-839cb010.js} +2 -2
  183. package/dist/esm/date-utils-839cb010.js.map +1 -0
  184. package/dist/esm/{form-control-cf23c6a2.js → form-control-ad05507c.js} +2 -2
  185. package/dist/esm/{form-control-cf23c6a2.js.map → form-control-ad05507c.js.map} +1 -1
  186. package/dist/esm/{global-d5ec4d53.js → global-8047b4ff.js} +1 -8
  187. package/dist/esm/global-8047b4ff.js.map +1 -0
  188. package/dist/esm/{index-5f8d16e7.js → index-c42becad.js} +7 -2
  189. package/dist/esm/{index-5f8d16e7.js.map → index-c42becad.js.map} +1 -1
  190. package/dist/esm/loader.js +3 -3
  191. package/dist/esm/nano-accordion.entry.js +1 -1
  192. package/dist/esm/nano-alert.entry.js +1 -1
  193. package/dist/esm/nano-algolia-filter.entry.js +3 -3
  194. package/dist/esm/nano-algolia-input.entry.js +4 -4
  195. package/dist/esm/nano-algolia-pagination.entry.js +2 -2
  196. package/dist/esm/nano-algolia-results.entry.js +2 -2
  197. package/dist/esm/nano-algolia.entry.js +4 -4
  198. package/dist/esm/nano-aspect-ratio.entry.js +1 -1
  199. package/dist/esm/nano-checkbox-group.entry.js +59 -21
  200. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  201. package/dist/esm/nano-checkbox.entry.js +28 -16
  202. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  203. package/dist/esm/nano-components.js +3 -3
  204. package/dist/esm/nano-datalist_3.entry.js +5 -2
  205. package/dist/esm/nano-datalist_3.entry.js.map +1 -1
  206. package/dist/esm/nano-date-input.entry.js +31 -10
  207. package/dist/esm/nano-date-input.entry.js.map +1 -1
  208. package/dist/esm/nano-date-picker.entry.js +3 -3
  209. package/dist/esm/nano-date-picker.entry.js.map +1 -1
  210. package/dist/esm/nano-details.entry.js +2 -3
  211. package/dist/esm/nano-details.entry.js.map +1 -1
  212. package/dist/esm/nano-dialog.entry.js +14 -3
  213. package/dist/esm/nano-dialog.entry.js.map +1 -1
  214. package/dist/esm/nano-drawer.entry.js +1 -1
  215. package/dist/esm/nano-dropdown.entry.js +1 -1
  216. package/dist/esm/nano-field-validator.entry.js +527 -0
  217. package/dist/esm/nano-field-validator.entry.js.map +1 -0
  218. package/dist/esm/nano-file-upload.entry.js +60 -37
  219. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  220. package/dist/esm/nano-global-nav.entry.js +3 -3
  221. package/dist/esm/nano-global-search-results.entry.js +2 -3
  222. package/dist/esm/nano-global-search-results.entry.js.map +1 -1
  223. package/dist/esm/nano-grid_3.entry.js +2 -3
  224. package/dist/esm/nano-grid_3.entry.js.map +1 -1
  225. package/dist/esm/nano-hero.entry.js +1 -1
  226. package/dist/esm/nano-icon-button.entry.js +5 -1
  227. package/dist/esm/nano-icon-button.entry.js.map +1 -1
  228. package/dist/esm/nano-icon.entry.js +1 -1
  229. package/dist/esm/nano-icon.entry.js.map +1 -1
  230. package/dist/esm/nano-input.entry.js +28 -16
  231. package/dist/esm/nano-input.entry.js.map +1 -1
  232. package/dist/esm/nano-menu-drawer.entry.js +1 -1
  233. package/dist/esm/nano-nav-item_2.entry.js +55 -19
  234. package/dist/esm/nano-nav-item_2.entry.js.map +1 -1
  235. package/dist/esm/nano-range.entry.js +1 -1
  236. package/dist/esm/nano-rating.entry.js +1 -1
  237. package/dist/esm/nano-resize-observe_2.entry.js +2 -3
  238. package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
  239. package/dist/esm/nano-slide.entry.js +1 -1
  240. package/dist/esm/nano-slides.entry.js +2 -3
  241. package/dist/esm/nano-slides.entry.js.map +1 -1
  242. package/dist/esm/nano-spinner.entry.js +1 -1
  243. package/dist/esm/nano-split-pane.entry.js +1 -1
  244. package/dist/esm/nano-sticker.entry.js +5 -6
  245. package/dist/esm/nano-sticker.entry.js.map +1 -1
  246. package/dist/esm/nano-tab-content.entry.js +1 -1
  247. package/dist/esm/nano-tab-group.entry.js +6 -4
  248. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  249. package/dist/esm/nano-tab.entry.js +6 -2
  250. package/dist/esm/nano-tab.entry.js.map +1 -1
  251. package/dist/esm/nano-tooltip.entry.js +2 -2
  252. package/dist/esm/nano-tooltip.entry.js.map +1 -1
  253. package/dist/esm-es5/{algolia-data-dd72d1b7.js → algolia-data-80c1169a.js} +2 -2
  254. package/dist/esm-es5/{algolia-data-dd72d1b7.js.map → algolia-data-80c1169a.js.map} +0 -0
  255. package/dist/esm-es5/{algoliasearch.umd-6143495f.js → algoliasearch.umd-86359963.js} +3 -3
  256. package/dist/esm-es5/{algoliasearch.umd-6143495f.js.map → algoliasearch.umd-86359963.js.map} +1 -1
  257. package/dist/esm-es5/component-store-d238fee4.js +5 -0
  258. package/dist/esm-es5/component-store-d238fee4.js.map +1 -0
  259. package/dist/esm-es5/date-utils-839cb010.js +5 -0
  260. package/dist/esm-es5/date-utils-839cb010.js.map +1 -0
  261. package/dist/esm-es5/{form-control-cf23c6a2.js → form-control-ad05507c.js} +2 -2
  262. package/dist/esm-es5/{form-control-cf23c6a2.js.map → form-control-ad05507c.js.map} +0 -0
  263. package/dist/esm-es5/{global-d5ec4d53.js → global-8047b4ff.js} +2 -2
  264. package/dist/esm-es5/global-8047b4ff.js.map +1 -0
  265. package/dist/esm-es5/{index-5f8d16e7.js → index-c42becad.js} +2 -2
  266. package/dist/esm-es5/{index-5f8d16e7.js.map → index-c42becad.js.map} +0 -0
  267. package/dist/esm-es5/loader.js +1 -1
  268. package/dist/esm-es5/loader.js.map +1 -1
  269. package/dist/esm-es5/nano-accordion.entry.js +1 -1
  270. package/dist/esm-es5/nano-alert.entry.js +1 -1
  271. package/dist/esm-es5/nano-algolia-filter.entry.js +1 -1
  272. package/dist/esm-es5/nano-algolia-input.entry.js +1 -1
  273. package/dist/esm-es5/nano-algolia-pagination.entry.js +1 -1
  274. package/dist/esm-es5/nano-algolia-results.entry.js +1 -1
  275. package/dist/esm-es5/nano-algolia.entry.js +1 -1
  276. package/dist/esm-es5/nano-aspect-ratio.entry.js +1 -1
  277. package/dist/esm-es5/nano-checkbox-group.entry.js +2 -2
  278. package/dist/esm-es5/nano-checkbox-group.entry.js.map +1 -1
  279. package/dist/esm-es5/nano-checkbox.entry.js +1 -1
  280. package/dist/esm-es5/nano-checkbox.entry.js.map +1 -1
  281. package/dist/esm-es5/nano-components.js +1 -1
  282. package/dist/esm-es5/nano-components.js.map +1 -1
  283. package/dist/esm-es5/nano-datalist_3.entry.js +1 -1
  284. package/dist/esm-es5/nano-datalist_3.entry.js.map +1 -1
  285. package/dist/esm-es5/nano-date-input.entry.js +1 -1
  286. package/dist/esm-es5/nano-date-input.entry.js.map +1 -1
  287. package/dist/esm-es5/nano-date-picker.entry.js +1 -1
  288. package/dist/esm-es5/nano-date-picker.entry.js.map +1 -1
  289. package/dist/esm-es5/nano-details.entry.js +1 -1
  290. package/dist/esm-es5/nano-details.entry.js.map +1 -1
  291. package/dist/esm-es5/nano-dialog.entry.js +1 -1
  292. package/dist/esm-es5/nano-dialog.entry.js.map +1 -1
  293. package/dist/esm-es5/nano-drawer.entry.js +1 -1
  294. package/dist/esm-es5/nano-dropdown.entry.js +1 -1
  295. package/dist/esm-es5/nano-field-validator.entry.js +5 -0
  296. package/dist/esm-es5/nano-field-validator.entry.js.map +1 -0
  297. package/dist/esm-es5/nano-file-upload.entry.js +2 -2
  298. package/dist/esm-es5/nano-file-upload.entry.js.map +1 -1
  299. package/dist/esm-es5/nano-global-nav.entry.js +1 -1
  300. package/dist/esm-es5/nano-global-search-results.entry.js +1 -1
  301. package/dist/esm-es5/nano-global-search-results.entry.js.map +1 -1
  302. package/dist/esm-es5/nano-grid_3.entry.js +1 -1
  303. package/dist/esm-es5/nano-grid_3.entry.js.map +1 -1
  304. package/dist/esm-es5/nano-hero.entry.js +1 -1
  305. package/dist/esm-es5/nano-icon-button.entry.js +2 -2
  306. package/dist/esm-es5/nano-icon-button.entry.js.map +1 -1
  307. package/dist/esm-es5/nano-icon.entry.js +1 -1
  308. package/dist/esm-es5/nano-icon.entry.js.map +1 -1
  309. package/dist/esm-es5/nano-input.entry.js +1 -1
  310. package/dist/esm-es5/nano-input.entry.js.map +1 -1
  311. package/dist/esm-es5/nano-menu-drawer.entry.js +1 -1
  312. package/dist/esm-es5/nano-nav-item_2.entry.js +1 -1
  313. package/dist/esm-es5/nano-nav-item_2.entry.js.map +1 -1
  314. package/dist/esm-es5/nano-range.entry.js +1 -1
  315. package/dist/esm-es5/nano-rating.entry.js +1 -1
  316. package/dist/esm-es5/nano-resize-observe_2.entry.js +1 -1
  317. package/dist/esm-es5/nano-resize-observe_2.entry.js.map +1 -1
  318. package/dist/esm-es5/nano-slide.entry.js +1 -1
  319. package/dist/esm-es5/nano-slides.entry.js +2 -2
  320. package/dist/esm-es5/nano-slides.entry.js.map +1 -1
  321. package/dist/esm-es5/nano-spinner.entry.js +1 -1
  322. package/dist/esm-es5/nano-split-pane.entry.js +1 -1
  323. package/dist/esm-es5/nano-sticker.entry.js +1 -1
  324. package/dist/esm-es5/nano-sticker.entry.js.map +1 -1
  325. package/dist/esm-es5/nano-tab-content.entry.js +1 -1
  326. package/dist/esm-es5/nano-tab-group.entry.js +2 -2
  327. package/dist/esm-es5/nano-tab-group.entry.js.map +1 -1
  328. package/dist/esm-es5/nano-tab.entry.js +1 -1
  329. package/dist/esm-es5/nano-tab.entry.js.map +1 -1
  330. package/dist/esm-es5/nano-tooltip.entry.js +1 -1
  331. package/dist/esm-es5/nano-tooltip.entry.js.map +1 -1
  332. package/dist/nano-components/nano-components.css +1 -1
  333. package/dist/nano-components/nano-components.esm.js +1 -1
  334. package/dist/nano-components/nano-components.esm.js.map +1 -1
  335. package/dist/nano-components/nano-components.js +1 -1
  336. package/dist/nano-components/p-01667573.entry.js +5 -0
  337. package/dist/nano-components/p-01667573.entry.js.map +1 -0
  338. package/dist/nano-components/p-0193a282.entry.js +5 -0
  339. package/dist/nano-components/p-0193a282.entry.js.map +1 -0
  340. package/dist/nano-components/p-0320410c.entry.js +5 -0
  341. package/dist/nano-components/p-0320410c.entry.js.map +1 -0
  342. package/dist/nano-components/{p-4429caac.system.entry.js → p-0c6c2141.system.entry.js} +2 -2
  343. package/dist/nano-components/{p-4429caac.system.entry.js.map → p-0c6c2141.system.entry.js.map} +0 -0
  344. package/dist/nano-components/{p-7232c046.system.entry.js → p-0d0dfc06.system.entry.js} +2 -2
  345. package/dist/nano-components/{p-7232c046.system.entry.js.map → p-0d0dfc06.system.entry.js.map} +0 -0
  346. package/dist/nano-components/{p-e562bffd.entry.js → p-0e2e3f4a.entry.js} +2 -2
  347. package/dist/nano-components/{p-e562bffd.entry.js.map → p-0e2e3f4a.entry.js.map} +0 -0
  348. package/dist/nano-components/p-129e2b4b.system.js +5 -0
  349. package/dist/nano-components/p-129e2b4b.system.js.map +1 -0
  350. package/dist/nano-components/{p-c0ddb4c3.entry.js → p-166ade3e.entry.js} +2 -2
  351. package/dist/nano-components/{p-c0ddb4c3.entry.js.map → p-166ade3e.entry.js.map} +0 -0
  352. package/dist/nano-components/p-1b120f53.entry.js +5 -0
  353. package/dist/nano-components/p-1b120f53.entry.js.map +1 -0
  354. package/dist/nano-components/{p-7d351076.system.entry.js → p-21af2a5e.system.entry.js} +2 -2
  355. package/dist/nano-components/{p-7d351076.system.entry.js.map → p-21af2a5e.system.entry.js.map} +0 -0
  356. package/dist/nano-components/p-21d6d31e.system.entry.js +5 -0
  357. package/dist/nano-components/p-21d6d31e.system.entry.js.map +1 -0
  358. package/dist/nano-components/{p-040b6cda.entry.js → p-2649fc8e.entry.js} +2 -2
  359. package/dist/nano-components/{p-040b6cda.entry.js.map → p-2649fc8e.entry.js.map} +0 -0
  360. package/dist/nano-components/p-2720ee8f.entry.js +5 -0
  361. package/dist/nano-components/p-2720ee8f.entry.js.map +1 -0
  362. package/dist/nano-components/{p-3456db01.entry.js → p-27efac97.entry.js} +2 -2
  363. package/dist/nano-components/{p-3456db01.entry.js.map → p-27efac97.entry.js.map} +0 -0
  364. package/dist/nano-components/{p-2e6c55e2.entry.js → p-2d53d1a0.entry.js} +2 -2
  365. package/dist/nano-components/{p-2e6c55e2.entry.js.map → p-2d53d1a0.entry.js.map} +0 -0
  366. package/dist/nano-components/{p-8a8f893b.system.entry.js → p-316f83a9.system.entry.js} +2 -2
  367. package/dist/nano-components/{p-8a8f893b.system.entry.js.map → p-316f83a9.system.entry.js.map} +0 -0
  368. package/dist/nano-components/p-32900c91.entry.js +5 -0
  369. package/dist/nano-components/p-32900c91.entry.js.map +1 -0
  370. package/dist/nano-components/p-32f4516e.js +5 -0
  371. package/dist/nano-components/p-32f4516e.js.map +1 -0
  372. package/dist/nano-components/{p-43543d18.entry.js → p-333237e8.entry.js} +2 -2
  373. package/dist/nano-components/{p-43543d18.entry.js.map → p-333237e8.entry.js.map} +0 -0
  374. package/dist/nano-components/p-33fce1a6.js +5 -0
  375. package/dist/nano-components/p-33fce1a6.js.map +1 -0
  376. package/dist/nano-components/p-371aebe7.system.entry.js +23 -0
  377. package/dist/nano-components/p-371aebe7.system.entry.js.map +1 -0
  378. package/dist/nano-components/{p-a898bf92.system.entry.js → p-379e21d9.system.entry.js} +2 -2
  379. package/dist/nano-components/{p-a898bf92.system.entry.js.map → p-379e21d9.system.entry.js.map} +0 -0
  380. package/dist/nano-components/{p-3ad1d5aa.system.entry.js → p-39d36fd1.system.entry.js} +2 -2
  381. package/dist/nano-components/{p-3ad1d5aa.system.entry.js.map → p-39d36fd1.system.entry.js.map} +0 -0
  382. package/dist/nano-components/{p-41a2e2e4.system.js → p-3a00de47.system.js} +2 -2
  383. package/dist/nano-components/{p-41a2e2e4.system.js.map → p-3a00de47.system.js.map} +0 -0
  384. package/dist/nano-components/p-41899a31.system.entry.js +5 -0
  385. package/dist/nano-components/p-41899a31.system.entry.js.map +1 -0
  386. package/dist/nano-components/{p-3ef30ded.system.entry.js → p-48874481.system.entry.js} +2 -2
  387. package/dist/nano-components/{p-3ef30ded.system.entry.js.map → p-48874481.system.entry.js.map} +0 -0
  388. package/dist/nano-components/{p-08ffc9a1.entry.js → p-4e2c0abb.entry.js} +2 -2
  389. package/dist/nano-components/{p-08ffc9a1.entry.js.map → p-4e2c0abb.entry.js.map} +0 -0
  390. package/dist/nano-components/{p-090f22a9.system.entry.js → p-5100ae70.system.entry.js} +2 -2
  391. package/dist/nano-components/{p-090f22a9.system.entry.js.map → p-5100ae70.system.entry.js.map} +0 -0
  392. package/dist/nano-components/{p-593de29b.system.entry.js → p-52769304.system.entry.js} +2 -2
  393. package/dist/nano-components/{p-593de29b.system.entry.js.map → p-52769304.system.entry.js.map} +0 -0
  394. package/dist/nano-components/p-53957ec6.system.js +5 -0
  395. package/dist/nano-components/p-53957ec6.system.js.map +1 -0
  396. package/dist/nano-components/p-561500f0.system.entry.js +5 -0
  397. package/dist/nano-components/p-561500f0.system.entry.js.map +1 -0
  398. package/dist/nano-components/{p-8278c5d2.system.entry.js → p-56f86047.system.entry.js} +2 -2
  399. package/dist/nano-components/{p-8278c5d2.system.entry.js.map → p-56f86047.system.entry.js.map} +0 -0
  400. package/dist/nano-components/{p-2057d480.system.entry.js → p-5b66bb8f.system.entry.js} +2 -2
  401. package/dist/nano-components/{p-2057d480.system.entry.js.map → p-5b66bb8f.system.entry.js.map} +0 -0
  402. package/dist/nano-components/{p-20387cde.system.entry.js → p-6b4dd158.system.entry.js} +2 -2
  403. package/dist/nano-components/{p-20387cde.system.entry.js.map → p-6b4dd158.system.entry.js.map} +0 -0
  404. package/dist/nano-components/{p-d24811c8.system.js → p-6b5760b1.system.js} +3 -3
  405. package/dist/nano-components/{p-d24811c8.system.js.map → p-6b5760b1.system.js.map} +1 -1
  406. package/dist/nano-components/{p-5066e563.system.entry.js → p-6dad332b.system.entry.js} +2 -2
  407. package/dist/nano-components/{p-5066e563.system.entry.js.map → p-6dad332b.system.entry.js.map} +0 -0
  408. package/dist/nano-components/{p-730f60ea.entry.js → p-6ddb51e4.entry.js} +2 -2
  409. package/dist/nano-components/p-6ddb51e4.entry.js.map +1 -0
  410. package/dist/nano-components/p-70272eae.js +5 -0
  411. package/dist/nano-components/p-70272eae.js.map +1 -0
  412. package/dist/nano-components/{p-a6c84740.js → p-71e9fa33.js} +2 -2
  413. package/dist/nano-components/{p-a6c84740.js.map → p-71e9fa33.js.map} +0 -0
  414. package/dist/nano-components/{p-313970ff.entry.js → p-73985eda.entry.js} +2 -2
  415. package/dist/nano-components/{p-313970ff.entry.js.map → p-73985eda.entry.js.map} +0 -0
  416. package/dist/nano-components/p-755d9227.entry.js +5 -0
  417. package/dist/nano-components/p-755d9227.entry.js.map +1 -0
  418. package/dist/nano-components/{p-58d7f10f.entry.js → p-76c903db.entry.js} +2 -2
  419. package/dist/nano-components/{p-58d7f10f.entry.js.map → p-76c903db.entry.js.map} +0 -0
  420. package/dist/nano-components/{p-f53989c3.system.entry.js → p-7aa7425d.system.entry.js} +2 -2
  421. package/dist/nano-components/{p-f53989c3.system.entry.js.map → p-7aa7425d.system.entry.js.map} +1 -1
  422. package/dist/nano-components/{p-531d5275.system.entry.js → p-7ad4a27a.system.entry.js} +2 -2
  423. package/dist/nano-components/p-7ad4a27a.system.entry.js.map +1 -0
  424. package/dist/nano-components/p-7bd25494.entry.js +5 -0
  425. package/dist/nano-components/p-7bd25494.entry.js.map +1 -0
  426. package/dist/nano-components/p-7c837460.entry.js +5 -0
  427. package/dist/nano-components/p-7c837460.entry.js.map +1 -0
  428. package/dist/nano-components/{p-2ae4918d.system.entry.js → p-7e55b214.system.entry.js} +2 -2
  429. package/dist/nano-components/{p-2ae4918d.system.entry.js.map → p-7e55b214.system.entry.js.map} +0 -0
  430. package/dist/nano-components/{p-62ecd3a1.system.entry.js → p-7f1374b6.system.entry.js} +2 -2
  431. package/dist/nano-components/{p-62ecd3a1.system.entry.js.map → p-7f1374b6.system.entry.js.map} +0 -0
  432. package/dist/nano-components/{p-1e974cad.entry.js → p-7fe9d769.entry.js} +2 -2
  433. package/dist/nano-components/{p-1e974cad.entry.js.map → p-7fe9d769.entry.js.map} +0 -0
  434. package/dist/nano-components/{p-93880c28.system.js → p-82e28afd.system.js} +2 -2
  435. package/dist/nano-components/p-82e28afd.system.js.map +1 -0
  436. package/dist/nano-components/p-8378428e.system.js +5 -0
  437. package/dist/nano-components/p-8378428e.system.js.map +1 -0
  438. package/dist/nano-components/p-85c8b070.system.entry.js +5 -0
  439. package/dist/nano-components/p-85c8b070.system.entry.js.map +1 -0
  440. package/dist/nano-components/p-86bd5194.entry.js +5 -0
  441. package/dist/nano-components/p-86bd5194.entry.js.map +1 -0
  442. package/dist/nano-components/{p-4535e3bb.entry.js → p-8b6fcd6d.entry.js} +2 -2
  443. package/dist/nano-components/{p-4535e3bb.entry.js.map → p-8b6fcd6d.entry.js.map} +0 -0
  444. package/dist/nano-components/p-8df4f125.system.entry.js +5 -0
  445. package/dist/nano-components/p-8df4f125.system.entry.js.map +1 -0
  446. package/dist/nano-components/{p-6ade3290.entry.js → p-8eb4f24a.entry.js} +2 -2
  447. package/dist/nano-components/{p-6ade3290.entry.js.map → p-8eb4f24a.entry.js.map} +0 -0
  448. package/dist/nano-components/{p-07bdf44d.entry.js → p-8fe2f846.entry.js} +2 -2
  449. package/dist/nano-components/{p-07bdf44d.entry.js.map → p-8fe2f846.entry.js.map} +0 -0
  450. package/dist/nano-components/{p-1238f0fc.system.entry.js → p-93596c3d.system.entry.js} +2 -2
  451. package/dist/nano-components/p-93596c3d.system.entry.js.map +1 -0
  452. package/dist/nano-components/p-96d9b8b9.system.entry.js +5 -0
  453. package/dist/nano-components/p-96d9b8b9.system.entry.js.map +1 -0
  454. package/dist/nano-components/{p-08b43111.entry.js → p-9d9b0b66.entry.js} +2 -2
  455. package/dist/nano-components/p-9d9b0b66.entry.js.map +1 -0
  456. package/dist/nano-components/p-9ffdf6cc.entry.js +5 -0
  457. package/dist/nano-components/{p-346588cc.entry.js.map → p-9ffdf6cc.entry.js.map} +1 -1
  458. package/dist/nano-components/{p-c9c1a345.system.entry.js → p-a02cc654.system.entry.js} +2 -2
  459. package/dist/nano-components/{p-c9c1a345.system.entry.js.map → p-a02cc654.system.entry.js.map} +0 -0
  460. package/dist/nano-components/{p-a77e3fbb.js → p-a0b93616.js} +3 -3
  461. package/dist/nano-components/{p-a77e3fbb.js.map → p-a0b93616.js.map} +1 -1
  462. package/dist/nano-components/p-a1444980.entry.js +5 -0
  463. package/dist/nano-components/p-a1444980.entry.js.map +1 -0
  464. package/dist/nano-components/p-a4969844.entry.js +5 -0
  465. package/dist/nano-components/p-a4969844.entry.js.map +1 -0
  466. package/dist/nano-components/{p-70dec19f.entry.js → p-a6327a9a.entry.js} +2 -2
  467. package/dist/nano-components/{p-70dec19f.entry.js.map → p-a6327a9a.entry.js.map} +0 -0
  468. package/dist/nano-components/{p-a315ed2c.entry.js → p-a9a4fc3e.entry.js} +2 -2
  469. package/dist/nano-components/{p-a315ed2c.entry.js.map → p-a9a4fc3e.entry.js.map} +1 -1
  470. package/dist/nano-components/p-aa84c727.system.entry.js +5 -0
  471. package/dist/nano-components/p-aa84c727.system.entry.js.map +1 -0
  472. package/dist/nano-components/{p-98222c39.system.entry.js → p-ab07c1fa.system.entry.js} +2 -2
  473. package/dist/nano-components/{p-98222c39.system.entry.js.map → p-ab07c1fa.system.entry.js.map} +0 -0
  474. package/dist/nano-components/p-ac5e3775.system.entry.js +5 -0
  475. package/dist/nano-components/p-ac5e3775.system.entry.js.map +1 -0
  476. package/dist/nano-components/{p-ab5813a7.js → p-b5c33aff.js} +2 -2
  477. package/dist/nano-components/{p-ab5813a7.js.map → p-b5c33aff.js.map} +0 -0
  478. package/dist/nano-components/p-b85cf493.system.entry.js +5 -0
  479. package/dist/nano-components/{p-69439aa1.system.entry.js.map → p-b85cf493.system.entry.js.map} +1 -1
  480. package/dist/nano-components/p-bc394857.system.entry.js +5 -0
  481. package/dist/nano-components/p-bc394857.system.entry.js.map +1 -0
  482. package/dist/nano-components/{p-b4f8e541.entry.js → p-bce998f2.entry.js} +2 -2
  483. package/dist/nano-components/{p-b4f8e541.entry.js.map → p-bce998f2.entry.js.map} +0 -0
  484. package/dist/nano-components/{p-92f85aaf.system.entry.js → p-bf9aa89d.system.entry.js} +2 -2
  485. package/dist/nano-components/{p-92f85aaf.system.entry.js.map → p-bf9aa89d.system.entry.js.map} +0 -0
  486. package/dist/nano-components/p-c070ffd3.system.entry.js +5 -0
  487. package/dist/nano-components/p-c070ffd3.system.entry.js.map +1 -0
  488. package/dist/nano-components/p-c3830c43.entry.js +5 -0
  489. package/dist/nano-components/p-c3830c43.entry.js.map +1 -0
  490. package/dist/nano-components/{p-50514e5e.entry.js → p-c4156fea.entry.js} +2 -2
  491. package/dist/nano-components/{p-50514e5e.entry.js.map → p-c4156fea.entry.js.map} +0 -0
  492. package/dist/nano-components/{p-6eb25600.system.js → p-d01bd3c3.system.js} +2 -2
  493. package/dist/nano-components/{p-6eb25600.system.js.map → p-d01bd3c3.system.js.map} +0 -0
  494. package/dist/nano-components/{p-b59d2bd5.entry.js → p-d122b1ff.entry.js} +2 -2
  495. package/dist/nano-components/{p-b59d2bd5.entry.js.map → p-d122b1ff.entry.js.map} +0 -0
  496. package/dist/nano-components/{p-56ba0d63.entry.js → p-d37e1489.entry.js} +2 -2
  497. package/dist/nano-components/p-d37e1489.entry.js.map +1 -0
  498. package/dist/nano-components/p-d61ae833.system.entry.js +5 -0
  499. package/dist/nano-components/p-d61ae833.system.entry.js.map +1 -0
  500. package/dist/nano-components/p-d93274de.entry.js +5 -0
  501. package/dist/nano-components/p-d93274de.entry.js.map +1 -0
  502. package/dist/nano-components/p-da88981f.entry.js +23 -0
  503. package/dist/nano-components/p-da88981f.entry.js.map +1 -0
  504. package/dist/nano-components/{p-394c3c19.entry.js → p-defd4552.entry.js} +2 -2
  505. package/dist/nano-components/{p-394c3c19.entry.js.map → p-defd4552.entry.js.map} +0 -0
  506. package/dist/nano-components/p-e8a913ac.system.entry.js +5 -0
  507. package/dist/nano-components/p-e8a913ac.system.entry.js.map +1 -0
  508. package/dist/nano-components/p-e9a279ee.system.entry.js +5 -0
  509. package/dist/nano-components/p-e9a279ee.system.entry.js.map +1 -0
  510. package/dist/nano-components/{p-22884654.system.entry.js → p-eacf5b5b.system.entry.js} +2 -2
  511. package/dist/nano-components/{p-22884654.system.entry.js.map → p-eacf5b5b.system.entry.js.map} +0 -0
  512. package/dist/nano-components/p-ed336501.entry.js +5 -0
  513. package/dist/nano-components/p-ed336501.entry.js.map +1 -0
  514. package/dist/nano-components/{p-5ae80fd7.js → p-ef7f1e9c.js} +2 -2
  515. package/dist/nano-components/{p-5ae80fd7.js.map → p-ef7f1e9c.js.map} +0 -0
  516. package/dist/nano-components/{p-59b3d24b.system.js → p-f48be9f5.system.js} +2 -2
  517. package/dist/nano-components/{p-59b3d24b.system.js.map → p-f48be9f5.system.js.map} +0 -0
  518. package/dist/nano-components/p-f780d2f6.system.entry.js +5 -0
  519. package/dist/nano-components/p-f780d2f6.system.entry.js.map +1 -0
  520. package/dist/nano-components/p-faba2fc1.system.entry.js +5 -0
  521. package/dist/nano-components/p-faba2fc1.system.entry.js.map +1 -0
  522. package/dist/nano-components/{p-65c10b3f.entry.js → p-fbe3c89e.entry.js} +2 -2
  523. package/dist/nano-components/{p-65c10b3f.entry.js.map → p-fbe3c89e.entry.js.map} +0 -0
  524. package/dist/nano-components/p-ff026352.system.entry.js +5 -0
  525. package/dist/nano-components/p-ff026352.system.entry.js.map +1 -0
  526. package/dist/types/components/checkbox/checkbox-group.d.ts +12 -1
  527. package/dist/types/components/checkbox/checkbox.d.ts +11 -3
  528. package/dist/types/components/date-input/date-input.d.ts +10 -1
  529. package/dist/types/components/dialog/dialog.d.ts +4 -1
  530. package/dist/types/components/field-validator/field-validator.d.ts +125 -0
  531. package/dist/types/components/file-upload/file-upload.d.ts +8 -0
  532. package/dist/types/components/icon/icon.d.ts +1 -1
  533. package/dist/types/components/icon-button/icon-button.d.ts +2 -0
  534. package/dist/types/components/input/input.d.ts +6 -1
  535. package/dist/types/components/select/select.d.ts +10 -2
  536. package/dist/types/components/{sticky → sticker}/sticker.d.ts +0 -0
  537. package/dist/types/components/tabs/tab.d.ts +1 -0
  538. package/dist/types/components.d.ts +207 -4
  539. package/dist/types/utils/store/get-set.d.ts +1 -1
  540. package/docs-json.json +489 -15
  541. package/docs-vscode.json +77 -1
  542. package/package.json +3 -4
  543. package/dist/cjs/ResizeObserver.es-09b81a1b.js +0 -935
  544. package/dist/cjs/ResizeObserver.es-09b81a1b.js.map +0 -1
  545. package/dist/cjs/component-store-722032a5.js.map +0 -1
  546. package/dist/cjs/date-utils-0ae9a12d.js.map +0 -1
  547. package/dist/cjs/global-0d4f3b77.js.map +0 -1
  548. package/dist/cjs/intersection-observer-1822c787.js +0 -987
  549. package/dist/cjs/intersection-observer-1822c787.js.map +0 -1
  550. package/dist/collection/components/sticky/sticker.js.map +0 -1
  551. package/dist/components/ResizeObserver.es.js +0 -933
  552. package/dist/components/ResizeObserver.es.js.map +0 -1
  553. package/dist/components/intersection-observer.js +0 -985
  554. package/dist/components/intersection-observer.js.map +0 -1
  555. package/dist/esm/ResizeObserver.es-724af9fd.js +0 -933
  556. package/dist/esm/ResizeObserver.es-724af9fd.js.map +0 -1
  557. package/dist/esm/component-store-b6fbfa35.js.map +0 -1
  558. package/dist/esm/date-utils-e4b757ff.js.map +0 -1
  559. package/dist/esm/global-d5ec4d53.js.map +0 -1
  560. package/dist/esm/intersection-observer-dff9fb5b.js +0 -985
  561. package/dist/esm/intersection-observer-dff9fb5b.js.map +0 -1
  562. package/dist/esm-es5/ResizeObserver.es-724af9fd.js +0 -5
  563. package/dist/esm-es5/ResizeObserver.es-724af9fd.js.map +0 -1
  564. package/dist/esm-es5/component-store-b6fbfa35.js +0 -5
  565. package/dist/esm-es5/component-store-b6fbfa35.js.map +0 -1
  566. package/dist/esm-es5/date-utils-e4b757ff.js +0 -5
  567. package/dist/esm-es5/date-utils-e4b757ff.js.map +0 -1
  568. package/dist/esm-es5/global-d5ec4d53.js.map +0 -1
  569. package/dist/esm-es5/intersection-observer-dff9fb5b.js +0 -5
  570. package/dist/esm-es5/intersection-observer-dff9fb5b.js.map +0 -1
  571. package/dist/nano-components/p-033296c7.system.entry.js +0 -23
  572. package/dist/nano-components/p-033296c7.system.entry.js.map +0 -1
  573. package/dist/nano-components/p-08b43111.entry.js.map +0 -1
  574. package/dist/nano-components/p-096682d9.system.js +0 -5
  575. package/dist/nano-components/p-096682d9.system.js.map +0 -1
  576. package/dist/nano-components/p-09e38c5f.system.entry.js +0 -5
  577. package/dist/nano-components/p-09e38c5f.system.entry.js.map +0 -1
  578. package/dist/nano-components/p-10a6216d.system.entry.js +0 -5
  579. package/dist/nano-components/p-10a6216d.system.entry.js.map +0 -1
  580. package/dist/nano-components/p-11a2dcce.js +0 -5
  581. package/dist/nano-components/p-11a2dcce.js.map +0 -1
  582. package/dist/nano-components/p-1238f0fc.system.entry.js.map +0 -1
  583. package/dist/nano-components/p-1ca46443.entry.js +0 -5
  584. package/dist/nano-components/p-1ca46443.entry.js.map +0 -1
  585. package/dist/nano-components/p-1e8321ea.entry.js +0 -5
  586. package/dist/nano-components/p-1e8321ea.entry.js.map +0 -1
  587. package/dist/nano-components/p-1f99d776.entry.js +0 -5
  588. package/dist/nano-components/p-1f99d776.entry.js.map +0 -1
  589. package/dist/nano-components/p-346588cc.entry.js +0 -5
  590. package/dist/nano-components/p-39a5280e.system.entry.js +0 -5
  591. package/dist/nano-components/p-39a5280e.system.entry.js.map +0 -1
  592. package/dist/nano-components/p-3aa1d07d.entry.js +0 -5
  593. package/dist/nano-components/p-3aa1d07d.entry.js.map +0 -1
  594. package/dist/nano-components/p-4265cf95.system.entry.js +0 -5
  595. package/dist/nano-components/p-4265cf95.system.entry.js.map +0 -1
  596. package/dist/nano-components/p-44c08842.system.entry.js +0 -5
  597. package/dist/nano-components/p-44c08842.system.entry.js.map +0 -1
  598. package/dist/nano-components/p-457d4893.entry.js +0 -5
  599. package/dist/nano-components/p-457d4893.entry.js.map +0 -1
  600. package/dist/nano-components/p-462ad4f1.entry.js +0 -5
  601. package/dist/nano-components/p-462ad4f1.entry.js.map +0 -1
  602. package/dist/nano-components/p-4870e76d.system.entry.js +0 -5
  603. package/dist/nano-components/p-4870e76d.system.entry.js.map +0 -1
  604. package/dist/nano-components/p-531d5275.system.entry.js.map +0 -1
  605. package/dist/nano-components/p-5653961d.system.entry.js +0 -5
  606. package/dist/nano-components/p-5653961d.system.entry.js.map +0 -1
  607. package/dist/nano-components/p-56ba0d63.entry.js.map +0 -1
  608. package/dist/nano-components/p-5a0095f9.js +0 -5
  609. package/dist/nano-components/p-5a0095f9.js.map +0 -1
  610. package/dist/nano-components/p-5a315696.entry.js +0 -5
  611. package/dist/nano-components/p-5a315696.entry.js.map +0 -1
  612. package/dist/nano-components/p-69439aa1.system.entry.js +0 -5
  613. package/dist/nano-components/p-6afdb510.system.entry.js +0 -5
  614. package/dist/nano-components/p-6afdb510.system.entry.js.map +0 -1
  615. package/dist/nano-components/p-6f94d755.entry.js +0 -5
  616. package/dist/nano-components/p-6f94d755.entry.js.map +0 -1
  617. package/dist/nano-components/p-7246bef5.entry.js +0 -5
  618. package/dist/nano-components/p-7246bef5.entry.js.map +0 -1
  619. package/dist/nano-components/p-730f60ea.entry.js.map +0 -1
  620. package/dist/nano-components/p-802e1416.system.entry.js +0 -5
  621. package/dist/nano-components/p-802e1416.system.entry.js.map +0 -1
  622. package/dist/nano-components/p-84767e87.entry.js +0 -5
  623. package/dist/nano-components/p-84767e87.entry.js.map +0 -1
  624. package/dist/nano-components/p-88f17c86.system.entry.js +0 -5
  625. package/dist/nano-components/p-88f17c86.system.entry.js.map +0 -1
  626. package/dist/nano-components/p-933c35a6.system.entry.js +0 -5
  627. package/dist/nano-components/p-933c35a6.system.entry.js.map +0 -1
  628. package/dist/nano-components/p-93880c28.system.js.map +0 -1
  629. package/dist/nano-components/p-971b40a4.system.entry.js +0 -5
  630. package/dist/nano-components/p-971b40a4.system.entry.js.map +0 -1
  631. package/dist/nano-components/p-9d35768b.entry.js +0 -5
  632. package/dist/nano-components/p-9d35768b.entry.js.map +0 -1
  633. package/dist/nano-components/p-9ea13fbe.entry.js +0 -5
  634. package/dist/nano-components/p-9ea13fbe.entry.js.map +0 -1
  635. package/dist/nano-components/p-b430a9b6.system.js +0 -5
  636. package/dist/nano-components/p-b430a9b6.system.js.map +0 -1
  637. package/dist/nano-components/p-ba13bb56.entry.js +0 -23
  638. package/dist/nano-components/p-ba13bb56.entry.js.map +0 -1
  639. package/dist/nano-components/p-bcd69559.entry.js +0 -5
  640. package/dist/nano-components/p-bcd69559.entry.js.map +0 -1
  641. package/dist/nano-components/p-d8d8bac6.system.entry.js +0 -5
  642. package/dist/nano-components/p-d8d8bac6.system.entry.js.map +0 -1
  643. package/dist/nano-components/p-debd9efc.js +0 -5
  644. package/dist/nano-components/p-debd9efc.js.map +0 -1
  645. package/dist/nano-components/p-e195ab77.system.js +0 -5
  646. package/dist/nano-components/p-e195ab77.system.js.map +0 -1
  647. package/dist/nano-components/p-e1f46998.system.js +0 -5
  648. package/dist/nano-components/p-e1f46998.system.js.map +0 -1
  649. package/dist/nano-components/p-e7c69d4f.entry.js +0 -5
  650. package/dist/nano-components/p-e7c69d4f.entry.js.map +0 -1
  651. package/dist/nano-components/p-ec39b143.system.entry.js +0 -5
  652. package/dist/nano-components/p-ec39b143.system.entry.js.map +0 -1
  653. package/dist/nano-components/p-f2e7d2f9.system.entry.js +0 -5
  654. package/dist/nano-components/p-f2e7d2f9.system.entry.js.map +0 -1
  655. package/dist/nano-components/p-f5d4d13b.system.js +0 -5
  656. package/dist/nano-components/p-f5d4d13b.system.js.map +0 -1
  657. package/dist/nano-components/p-f66958c1.js +0 -5
  658. package/dist/nano-components/p-f66958c1.js.map +0 -1
  659. package/dist/nano-components/p-f9c7d961.js +0 -5
  660. package/dist/nano-components/p-f9c7d961.js.map +0 -1
@@ -1,5 +0,0 @@
1
- /*!
2
- * Web Components for Nanopore digital Web Apps
3
- */
4
- System.register(["./p-59b3d24b.system.js","./p-93880c28.system.js"],(function(e,a){"use strict";var n,o,t,s,i,l,r;return{setters:[function(e){n=e.p;o=e.w;t=e.d;s=e.N;i=e.a;l=e.H;r=e.b},function(){}],execute:function(){var e=function(e){return"__sc_import_"+e.replace(/\s|-/g,"_")};var d=function(){{n.$cssShim$=o.__cssshim}{h(l.prototype)}var e=Array.from(t.querySelectorAll("script")).find((function(e){return new RegExp("/"+s+"(\\.esm)?\\.js($|\\?|#)").test(e.src)||e.getAttribute("data-stencil-namespace")===s}));var r={};if("onbeforeload"in e&&!history.scrollRestoration){return{then:function(){}}}{r.resourcesUrl=new URL(".",new URL(e.getAttribute("data-resources-url")||e.src,o.location.href)).href;{c(r.resourcesUrl,e)}if(!o.customElements){return a.import("./p-5b6c304c.system.js").then((function(){return r}))}}return i(r)};var c=function(a,n){var i=e(s);try{o[i]=new Function("w","return import(w);//"+Math.random())}catch(r){var l=new Map;o[i]=function(e){var s=new URL(e,a).href;var r=l.get(s);if(!r){var d=t.createElement("script");d.type="module";d.crossOrigin=n.crossOrigin;d.src=URL.createObjectURL(new Blob(["import * as m from '"+s+"'; window."+i+".m = m;"],{type:"application/javascript"}));r=new Promise((function(e){d.onload=function(){e(o[i].m);d.remove()}}));l.set(s,r);t.head.appendChild(d)}return r}}};var h=function(e){var a=e.cloneNode;e.cloneNode=function(e){if(this.nodeName==="TEMPLATE"){return a.call(this,e)}var n=a.call(this,false);var o=this.childNodes;if(e){for(var t=0;t<o.length;t++){if(o[t].nodeType!==2){n.appendChild(o[t].cloneNode(true))}}}return n}};d().then((function(e){return r(JSON.parse('[["p-2057d480.system",[[1,"nano-global-nav",{"env":[1],"ssoDataUrl":[1,"sso-data-url"],"ssoRedirect":[1,"sso-redirect"],"getMyAccountData":[4,"get-my-account-data"],"activeMyAccountSections":[16],"showSearch":[4,"show-search"],"showLogo":[4,"show-logo"],"logoUrl":[1,"logo-url"],"searchIndeces":[16],"myAccountUser":[1040],"searchAppId":[1025,"search-app-id"],"searchApiKey":[1025,"search-api-key"],"searchValue":[1025,"search-value"],"searchIndex":[1025,"search-index"],"cartCount":[1026,"cart-count"],"msgCount":[1026,"msg-count"],"cartUrl":[1025,"cart-url"],"msgUrl":[1025,"msg-url"],"hasLoggedinSlot":[32],"hasSiteSlot":[32],"hasPromotionSlot":[32],"aboutSlotLen":[32],"iconSlotLen":[32],"mainSlotLen":[32],"overflowSlotLen":[32],"searchSlotLen":[32],"internalSearchIndeces":[32],"thresholdReady":[32],"remoteDataReady":[32],"ready":[32],"isResizing":[32],"intersectRatio":[32],"threshold":[32],"modalOpen":[32],"modalIsOpen":[32],"searchBarShown":[32],"scrollingUp":[32],"searchLoading":[32],"showAutocomplete":[32],"secondaryMenuOpen":[32],"userMenuOpen":[32],"menuFullScreen":[32],"searchValInternal":[32],"submitSearch":[64]},[[0,"nanoOpen","secondaryOpen"],[0,"nanoClose","secondaryClose"]]]]],["p-3ad1d5aa.system",[[1,"nano-hero",{"imgSrc":[1,"img-src"],"imgSrcSet":[1,"img-src-set"],"largeScreenBP":[2,"large-screen-b-p"],"theme":[1],"level":[1],"gridSizes":[32],"hasIconBox":[32],"hasScrim":[32],"hasSecondaryContent":[32],"hasQuote":[32],"hasBg":[32],"hasBackBtn":[32],"hasCtas":[32],"breadCrumbs":[32],"iconBoxItems":[32]}]]],["p-10a6216d.system",[[6,"nano-date-input",{"invalid":[2564],"helperText":[4,"helper-text"],"helperTextFormat":[16],"floatLabel":[4,"float-label"],"name":[1],"readonly":[4],"size":[2],"form":[1],"firstDayOfWeek":[2,"first-day-of-week"],"localization":[16],"disabled":[4],"color":[1],"autofocus":[4],"clearInput":[4,"clear-input"],"label":[1],"placeholder":[1025],"value":[1537],"validateOn":[1,"validate-on"],"showInlineError":[516,"show-inline-error"],"dateOrder":[1,"date-order"],"required":[4],"min":[1],"max":[1],"hideLabel":[4,"hide-label"],"picker":[4],"initialPickerDate":[1,"initial-picker-date"],"pickerOpen":[1540,"picker-open"],"closeAfterPicked":[4,"close-after-picked"],"dropDownConfig":[6160],"pattern":[32],"inputValue":[32],"_invalid":[32],"reportValidity":[64],"setFocus":[64],"getInputElement":[64],"showError":[64]}]]],["p-531d5275.system",[[1,"nano-dialog",{"showRibbon":[4,"show-ribbon"],"open":[1540],"label":[1],"noHeader":[4,"no-header"],"noFooter":[4,"no-footer"],"noUserDismiss":[4,"no-user-dismiss"],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"isVisible":[32],"noDismiss":[32],"hasFooter":[32],"show":[64],"hide":[64]}]]],["p-802e1416.system",[[6,"nano-file-upload",{"name":[1],"accept":[1],"capture":[1],"maxFileSize":[2,"max-file-size"],"maxFiles":[2,"max-files"],"label":[1],"placeholder":[1],"hideLabel":[4,"hide-label"],"required":[4],"disabled":[516],"clearInput":[4,"clear-input"],"showInlineError":[516,"show-inline-error"],"validateOn":[1025,"validate-on"],"invalid":[2564],"files":[2064],"value":[6145],"hasHelperSlot":[32],"hasLabelSlot":[32],"errorMessage":[32],"isDragging":[32],"fileList":[32],"hasFocus":[32],"_invalid":[32],"reportValidity":[64],"setFocus":[64],"getInputElement":[64],"showError":[64]},[[8,"click","globalClickHandler"],[8,"keydown","globalKeydownHandler"]]]]],["p-4429caac.system",[[1,"nano-alert",{"open":[1540],"closable":[516],"color":[513],"duration":[2],"isModal":[32],"isToast":[32],"isShowing":[32],"label":[32],"show":[64],"hide":[64],"toast":[64],"alert":[64]}]]],["p-6afdb510.system",[[1,"nano-global-search-results",{"algoliaEle":[32],"currentWidth":[32],"apiKey":[32],"appId":[32],"index":[32]},[[16,"nanoSearchReset","handleGlobalNavReset"],[16,"nanoSearchResult","handleGlobalNavSearch"],[0,"nanoChange","handleReorder"],[0,"nanoResultsShown","attachListeners"],[16,"nanoNewResults","attachResultListeners"]]]]],["p-1238f0fc.system",[[1,"nano-tab",{"panel":[513],"active":[516],"disabled":[516],"closable":[4],"setFocus":[64],"removeFocus":[64]}]]],["p-090f22a9.system",[[1,"nano-menu-drawer",{"open":[4],"saveState":[4,"save-state"],"hideWidth":[2,"hide-width"],"hideHeight":[4,"hide-height"],"reset":[32],"widthOk":[32],"heightOk":[32],"isLoading":[32],"hide":[32]},[[0,"nanoOpen","cancelNavItemEvents"],[0,"nanoClose","cancelNavItemEvents"],[16,"nanoIsReady","handleGlobalNavReady"]]]]],["p-7d351076.system",[[1,"nano-split-pane",{"position":[6146],"positionInPixels":[1026,"position-in-pixels"],"vertical":[516],"disabled":[516],"primary":[1],"snap":[1],"snapThreshold":[2,"snap-threshold"],"animationDuration":[2,"animation-duration"],"getPercentageToPixels":[64],"getPixelsToPercentage":[64]}]]],["p-ec39b143.system",[[1,"nano-tab-group",{"placement":[1],"noScrollControls":[4,"no-scroll-controls"],"color":[1],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"disableSwipe":[4,"disable-swipe"],"hasScrollControls":[32],"hideControlRight":[32],"hideControlLeft":[32],"isLegacy":[32],"tab":[32],"show":[64]},[[0,"nanoTabClose","handleTabClose"]]]]],["p-c9c1a345.system",[[1,"nano-accordion",{"color":[1],"itemOpened":[32]},[[0,"nanoOpened","onToggleHandler"],[0,"nanoClosed","onClosedHandler"]]]]],["p-8278c5d2.system",[[1,"nano-algolia-filter",{"filterName":[1,"filter-name"],"value":[1025],"operator":[1],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"changeEvent":[32],"internalValue":[32],"showFilter":[32],"indexResults":[32],"filterChanged":[32],"facets":[32],"tplRenderFn":[32],"globalStoreMethod":[32]},[[0,"nanoChange","handleChangeEvent"],[0,"change","handleChangeEvent"]]]]],["p-a898bf92.system",[[1,"nano-algolia-input",{"appId":[1,"app-id"],"apiKey":[1,"api-key"],"searchIndex":[1040],"searchIndexName":[1,"search-index-name"],"minChars":[2,"min-chars"],"autoEmit":[4,"auto-emit"],"browseIndex":[1028,"browse-index"],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"searchStr":[32],"algoliaIndex":[32],"currentResults":[32],"search":[64]},[[0,"nanoChange","searchSubmit"]]]]],["p-62ecd3a1.system",[[1,"nano-algolia-pagination",{"maxToShow":[2,"max-to-show"],"currentPage":[32],"canGoPrev":[32],"canGoNext":[32],"show":[32],"tplRenderFn":[32],"indexResults":[32],"infiniteScroll":[32],"nextPage":[64],"prevPage":[64],"goToPage":[64]}]]],["p-98222c39.system",[[1,"nano-algolia-results",{"infiniteScroll":[4,"infinite-scroll"],"appendPages":[4,"append-pages"],"showResults":[32],"tplRenderFn":[32],"results":[32],"indexResults":[32],"resultsPage":[32],"changeEvent":[32],"facets":[32],"isLoading":[32]}]]],["p-7232c046.system",[[1,"nano-aspect-ratio",{"aspectRatio":[1,"aspect-ratio"],"fit":[1]}]]],["p-4265cf95.system",[[6,"nano-checkbox",{"hasFocus":[1540,"has-focus"],"checked":[1540],"disabled":[516],"value":[513],"name":[513],"required":[516],"type":[513],"label":[1],"indeterminate":[1540],"invalid":[2564],"color":[1],"_invalid":[32],"inputType":[32],"getInputElement":[64],"reportValidity":[64],"setError":[64],"setFocus":[64],"removeFocus":[64]}]]],["p-09e38c5f.system",[[6,"nano-checkbox-group",{"validateOn":[1025,"validate-on"],"showInlineError":[4,"show-inline-error"],"min":[2],"max":[2],"disabled":[516],"legend":[1],"invalid":[2564],"checkboxes":[32],"nativeCbs":[32],"errorMessage":[32],"showErrorMsg":[32],"hasHelperSlot":[32],"reportValidity":[64]},[[0,"nanoChange","handleCbChange"]]]]],["p-d8d8bac6.system",[[1,"nano-details",{"label":[1],"open":[1540],"noHandle":[4,"no-handle"],"iconRotation":[2,"icon-rotation"],"color":[1],"isLoading":[32]}]]],["p-593de29b.system",[[1,"nano-drawer",{"open":[1540],"label":[1],"placement":[1],"contained":[4],"noHeader":[4,"no-header"],"type":[1],"contentSelector":[1,"content-selector"],"hasFooter":[32],"isVisible":[32],"show":[64],"hide":[64]}]]],["p-5066e563.system",[[6,"nano-range",{"color":[1],"debounce":[2],"name":[1],"dualKnobs":[4,"dual-knobs"],"min":[2],"max":[2],"pin":[4],"snaps":[4],"step":[2],"ticks":[4],"disabled":[4],"value":[1026],"ratioA":[32],"ratioB":[32],"pressedKnob":[32]}]]],["p-8a8f893b.system",[[2,"nano-rating",{"value":[1538],"max":[2],"precision":[2],"readonly":[4],"disabled":[4],"name":[1],"symbolName":[1,"symbol-name"],"symbol":[16],"hoverValue":[32],"isHovering":[32],"setFocus":[64],"removeFocus":[64]}]]],["p-22884654.system",[[1,"nano-slide",{"ready":[1540]}]]],["p-033296c7.system",[[1,"nano-slides",{"options":[1040],"navbtns":[4],"pager":[4],"fullscreenbtn":[4],"fullscreen":[1540],"animation":[513],"currentSlide":[1538,"current-slide"],"autoplay":[8],"ready":[1540],"iCurrentSlide":[32],"slidesReady":[32],"didInit":[32],"update":[64],"updateAutoHeight":[64],"slideTo":[64],"slideNext":[64],"slidePrev":[64],"getActiveIndex":[64],"length":[64],"isEnd":[64],"isBeginning":[64],"startAutoplay":[64],"stopAutoplay":[64],"lockSwipes":[64],"getflickity":[64],"reload":[64]}]]],["p-20387cde.system",[[1,"nano-tab-content",{"name":[513],"active":[516]}]]],["p-3ef30ded.system",[[1,"nano-spinner",{"type":[1],"overlay":[516],"hasText":[32]}]]],["p-92f85aaf.system",[[1,"nano-algolia",{"showResults":[1028,"show-results"],"resultsPage":[1026,"results-page"],"appId":[1025,"app-id"],"apiKey":[1025,"api-key"],"searchIndex":[1040],"searchIndexName":[1025,"search-index-name"],"listenTo":[1,"listen-to"],"query":[1025],"operator":[1],"filters":[16],"tplEngine":[16],"tplRenderFn":[16],"replicaIndex":[1025,"replica-index"],"browseIndex":[1028,"browse-index"],"minChars":[2,"min-chars"],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"_dynFacetFilters":[32],"inputField":[32],"algoliaIndex":[32],"indeces":[32],"resultsEmitterEle":[32],"indexResults":[32],"filterChanged":[32],"currentHits":[32],"changeEvent":[32],"isLoading":[32],"wormholeState":[32],"removeFilters":[64]},[[0,"nanoTplUpdated","onAllTplUpdate"],[0,"nanoPageChanged","onPageChange"],[0,"nanoFilterChanged","onFilterChange"],[16,"nanoChange","handleInputChange"],[16,"change","handleInputChange"]]]]],["p-69439aa1.system",[[1,"nano-date-picker",{"selectedDate":[1025,"selected-date"],"min":[1],"max":[1],"firstDayOfWeek":[2,"first-day-of-week"],"localization":[16],"color":[1],"isDateDisabled":[16],"isModal":[4,"is-modal"],"firstFocusEle":[16],"activeFocus":[32],"focusedDay":[32],"setFocus":[64]}]]],["p-4870e76d.system",[[1,"nano-tooltip",{"content":[1],"placement":[1],"disabled":[4],"distance":[2],"open":[1540],"skidding":[2],"trigger":[1],"show":[64],"hide":[64]}]]],["p-5653961d.system",[[1,"nano-sticker",{"autoResize":[4,"auto-resize"],"isSticky":[1028,"is-sticky"],"offset":[1026],"position":[1],"quietMode":[1,"quiet-mode"],"hideOnNewStickers":[4,"hide-on-new-stickers"],"breakPointMax":[2,"break-point-max"],"breakPointMin":[2,"break-point-min"],"scrollParent":[1040],"stickTo":[1,"stick-to"],"isStuck":[32],"isRootSticker":[32],"hide":[32],"scrollHide":[32],"multiStickerHide":[32],"scrollingTo":[32],"quietModeIsOn":[32],"stuckCounter":[32],"stickerIndex":[32],"stickToEle":[32],"triggerPos":[32],"trigger":[32],"_offset":[32],"isHiding":[64],"isSticking":[64],"setTriggerPos":[64],"getTriggerPos":[64],"pauseHiding":[64]}]]],["p-f2e7d2f9.system",[[2,"nano-icon-button",{"iconName":[1,"icon-name"],"iconSrc":[1,"icon-src"],"type":[513],"name":[513],"value":[513],"label":[1],"disabled":[516],"href":[1],"target":[1]}]]],["p-933c35a6.system",[[1,"nano-resize-observe",{"states":[1],"currentWidth":[32],"currentHeight":[32],"classNames":[32]}],[1,"nano-skeleton",{"animated":[4]}]]],["p-2ae4918d.system",[[1,"nano-dropdown",{"autoOpen":[4,"auto-open"],"open":[1540],"closeOnSelect":[4,"close-on-select"],"containingElement":[1040],"tetherTo":[16],"placement":[1],"distance":[2],"skidding":[2],"hoist":[4],"dialogTitle":[1,"dialog-title"],"show":[64],"hide":[64]},[[0,"nanoOpen","secondaryOpen"],[0,"nanoClose","secondaryClose"],[0,"nanoSelect","handlePanelSelect"]]]]],["p-f53989c3.system",[[1,"nano-icon",{"color":[1],"ariaLabel":[1537,"aria-label"],"flipRtl":[4,"flip-rtl"],"name":[1],"src":[1],"icon":[8],"size":[1],"lazy":[4],"svgContent":[32],"isVisible":[32],"isLoading":[32]}]]],["p-39a5280e.system",[[1,"nano-datalist",{"selected":[1040],"dropDownConfig":[6160],"options":[16],"input":[1],"type":[1],"activeOptions":[2064],"open":[1028],"disableFilter":[4,"disable-filter"],"disabled":[4],"actvOptEles":[32],"connectedInput":[32],"inputLabel":[32],"hasNoResult":[32],"shouldOpen":[32],"canOpen":[32],"optionIds":[32]}],[1,"nano-option",{"value":[1537],"label":[1537],"selected":[516],"disabled":[516],"filterMeta":[1,"filter-meta"],"hasFocus":[32]},[[0,"keydown","handleKeyDown"]]],[1,"nano-menu",{"hasFocus":[2052,"has-focus"],"type":[1],"label":[1],"setFocus":[64],"removeFocus":[64],"showActiveElement":[64],"resetActiveItem":[64]},[[17,"mousedown","handleBlur"],[0,"keydown","handleBlur"]]]]],["p-971b40a4.system",[[6,"nano-select",{"invalid":[2564],"color":[1],"autofocus":[4],"disabled":[516],"validateOn":[1025,"validate-on"],"showInlineError":[516,"show-inline-error"],"label":[1],"hideLabel":[4,"hide-label"],"floatLabel":[4,"float-label"],"multiple":[4],"name":[1],"placeholder":[1],"readonly":[516],"required":[4],"size":[2],"max":[2],"min":[2],"form":[1],"allowCustomValues":[4,"allow-custom-values"],"value":[6145],"options":[6160],"clearSelect":[4,"clear-select"],"mask":[4],"debounce":[2],"dropDownConfig":[1040],"currInsertIndex":[32],"showErrorMsg":[32],"errorMessage":[32],"hasFocus":[32],"hasLabelSlot":[32],"hasHelperSlot":[32],"hasHelperEndSlot":[32],"inputSearchVal":[32],"_eOptions":[32],"reportValidity":[64],"setFocus":[64],"getSelectElement":[64],"showError":[64]},[[17,"mousedown","handleBlur"],[0,"keydown","handleBlur"]]],[1,"nano-nav-item",{"href":[1025],"target":[1],"disabled":[4],"open":[1540],"selected":[516],"secondaryActiveWidth":[2,"secondary-active-width"],"secondaryFallback":[16],"closeOnBlur":[4,"close-on-blur"],"notification":[4],"didOpen":[32],"isInGlobalNav":[32],"isInMenuDrawer":[32],"isInMenu":[32],"isLegacy":[32],"hasFocus":[32],"setFocus":[64]}]]],["p-44c08842.system",[[6,"nano-input",{"invalid":[2564],"color":[1],"accept":[1],"autocapitalise":[1],"autocomplete":[1],"autocorrect":[1],"autofocus":[4],"clearInput":[4,"clear-input"],"clearOnEdit":[4,"clear-on-edit"],"debounce":[2],"disabled":[516],"inputmode":[1],"validateOn":[1025,"validate-on"],"showInlineError":[516,"show-inline-error"],"label":[1],"hideLabel":[4,"hide-label"],"floatLabel":[4,"float-label"],"max":[1],"maxlength":[2],"min":[1],"minlength":[2],"multiple":[4],"name":[1],"pattern":[1],"placeholder":[1],"readonly":[516],"required":[4],"spellcheck":[4],"step":[1],"size":[2],"type":[513],"form":[1],"value":[1025],"resize":[1],"rows":[2],"showCharCount":[4,"show-char-count"],"hasFocus":[32],"hasLabelSlot":[32],"hasHelperSlot":[32],"hasHelperEndSlot":[32],"errorMessage":[32],"datalist":[32],"_invalid":[32],"reportValidity":[64],"setFocus":[64],"getInputElement":[64],"showError":[64]},[[16,"reset","onReset"],[17,"mousedown","handleBlur"],[0,"keydown","handleBlur"]]]]],["p-88f17c86.system",[[1,"nano-img",{"alt":[1],"src":[1],"srcSet":[1,"src-set"],"lazy":[4],"background":[4],"autoHeight":[1,"auto-height"],"loadSrc":[32],"loadError":[32],"hasLoaded":[32],"imgStates":[32],"_src":[32]}],[1,"nano-grid",{"sSize":[2,"s-size"],"mSize":[2,"m-size"],"lSize":[2,"l-size"],"xlSize":[2,"xl-size"],"sCols":[2,"s-cols"],"mCols":[2,"m-cols"],"lCols":[2,"l-cols"],"xlCols":[2,"xl-cols"],"xxlCols":[2,"xxl-cols"],"showHelper":[516,"show-helper"],"contentPanel":[516,"content-panel"],"fullHeight":[516,"full-height"],"ready":[32],"isSmall":[32],"isMedium":[32],"isLarge":[32],"isXL":[32],"isXXL":[32]}],[1,"nano-grid-item",{"gridStates":[1,"grid-states"],"changeBP":[64]}]]]]'),e)}))}}}));
5
- //# sourceMappingURL=p-096682d9.system.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"names":["getDynamicImportFunction","namespace","replace","patchBrowser","plt","$cssShim$","win","__cssshim","patchCloneNodeFix","H","prototype","scriptElm","Array","from","doc","querySelectorAll","find","s","RegExp","NAMESPACE","test","src","getAttribute","opts","history","scrollRestoration","then","resourcesUrl","URL","location","href","patchDynamicImport","customElements","module","import","promiseResolve","base","orgScriptElm","importFunctionName","Function","Math","random","e","moduleMap_1","Map","url","mod","get","script_1","createElement","type","crossOrigin","createObjectURL","Blob","Promise","resolve","onload","m","remove","set","head","appendChild","HTMLElementPrototype","nativeCloneNodeFn","cloneNode","deep","this","nodeName","call","clonedNode","srcChildNodes","childNodes","i","length","nodeType","options","bootstrapLazy","JSON","parse"],"mappings":";;;0NAKA,IAAMA,EAA2B,SAACC,GAAc,MAAA,eAAeA,EAAUC,QAAQ,QAAS,MAC1F,IAAMC,EAAe,WAKK,CAElBC,EAAIC,UAAYC,EAAIC,UAEA,CAEpBC,EAAkBC,EAAEC,WAUxB,IAAMC,EACAC,MAAMC,KAAKC,EAAIC,iBAAiB,WAAWC,MAAK,SAACC,GAAM,OAAA,IAAIC,OAAO,IAAKC,EAAS,2BAA2BC,KAAKH,EAAEI,MAChHJ,EAAEK,aAAa,4BAA8BH,KAGrD,IAAMI,EAA6D,GACnE,GAAsB,iBAAkBZ,IAAca,QAAQC,kBAAsC,CAQhG,MAAO,CACHC,KAAI,cAQwC,CAChDH,EAAKI,aAAe,IAAIC,IAAI,IAAK,IAAIA,IAAIjB,EAAUW,aAAa,uBAAyBX,EAAUU,IAAKf,EAAIuB,SAASC,OAAOA,KAC/F,CACzBC,EAAmBR,EAAKI,aAAchB,GAE1C,IAAgCL,EAAI0B,eAAgB,CAGhD,OAAOC,EAAAC,OAA+C,0BAAYR,MAAK,WAAM,OAAAH,MAGrF,OAAOY,EAAeZ,IAE1B,IAAMQ,EAAqB,SAACK,EAAMC,GAC9B,IAAMC,EAAqBtC,EAAyBmB,GACpD,IAKIb,EAAIgC,GAAsB,IAAIC,SAAS,IAAK,sBAAsBC,KAAKC,UAE3E,MAAOC,GAIH,IAAMC,EAAY,IAAIC,IACtBtC,EAAIgC,GAAsB,SAACjB,GACvB,IAAMwB,EAAM,IAAIjB,IAAIP,EAAKe,GAAMN,KAC/B,IAAIgB,EAAMH,EAAUI,IAAIF,GACxB,IAAKC,EAAK,CACN,IAAME,EAASlC,EAAImC,cAAc,UACjCD,EAAOE,KAAO,SACdF,EAAOG,YAAcd,EAAac,YAClCH,EAAO3B,IAAMO,IAAIwB,gBAAgB,IAAIC,KAAK,CAAC,uBAAuBR,EAAG,aAAaP,EAAkB,WAAY,CAC5GY,KAAM,4BAEVJ,EAAM,IAAIQ,SAAQ,SAACC,GACfP,EAAOQ,OAAS,WACZD,EAAQjD,EAAIgC,GAAoBmB,GAChCT,EAAOU,aAGff,EAAUgB,IAAId,EAAKC,GACnBhC,EAAI8C,KAAKC,YAAYb,GAEzB,OAAOF,KAInB,IAAMtC,EAAoB,SAACsD,GACvB,IAAMC,EAAoBD,EAAqBE,UAC/CF,EAAqBE,UAAY,SAAUC,GACvC,GAAIC,KAAKC,WAAa,WAAY,CAC9B,OAAOJ,EAAkBK,KAAKF,KAAMD,GAExC,IAAMI,EAAaN,EAAkBK,KAAKF,KAAM,OAChD,IAAMI,EAAgBJ,KAAKK,WAC3B,GAAIN,EAAM,CACN,IAAK,IAAIO,EAAI,EAAGA,EAAIF,EAAcG,OAAQD,IAAK,CAE3C,GAAIF,EAAcE,GAAGE,WAAa,EAAG,CACjCL,EAAWR,YAAYS,EAAcE,GAAGR,UAAU,SAI9D,OAAOK,ICjHflE,IAAeuB,MAAK,SAAAiD,GAElB,OAAOC,EAAcC,KAAAC,MAAA,4yeAAuCH","sourcesContent":["/*\n Stencil Client Patch Browser v2.12.2 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nimport { consoleDevInfo, plt, win, doc, promiseResolve, H } from '@stencil/core';\nconst getDynamicImportFunction = (namespace) => `__sc_import_${namespace.replace(/\\s|-/g, '_')}`;\nconst patchBrowser = () => {\n // NOTE!! This fn cannot use async/await!\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo('Running in development mode.');\n }\n if (BUILD.cssVarShim) {\n // shim css vars\n plt.$cssShim$ = win.__cssshim;\n }\n if (BUILD.cloneNodeFix) {\n // opted-in to polyfill cloneNode() for slot polyfilled components\n patchCloneNodeFix(H.prototype);\n }\n if (BUILD.profile && !performance.mark) {\n // not all browsers support performance.mark/measure (Safari 10)\n performance.mark = performance.measure = () => {\n /*noop*/\n };\n performance.getEntriesByName = () => [];\n }\n // @ts-ignore\n const scriptElm = BUILD.scriptDataOpts || BUILD.safari10 || BUILD.dynamicImportShim\n ? Array.from(doc.querySelectorAll('script')).find((s) => new RegExp(`\\/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) ||\n s.getAttribute('data-stencil-namespace') === NAMESPACE)\n : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? scriptElm['data-opts'] || {} : {};\n if (BUILD.safari10 && 'onbeforeload' in scriptElm && !history.scrollRestoration /* IS_ESM_BUILD */) {\n // Safari < v11 support: This IF is true if it's Safari below v11.\n // This fn cannot use async/await since Safari didn't support it until v11,\n // however, Safari 10 did support modules. Safari 10 also didn't support \"nomodule\",\n // so both the ESM file and nomodule file would get downloaded. Only Safari\n // has 'onbeforeload' in the script, and \"history.scrollRestoration\" was added\n // to Safari in v11. Return a noop then() so the async/await ESM code doesn't continue.\n // IS_ESM_BUILD is replaced at build time so this check doesn't happen in systemjs builds.\n return {\n then() {\n /* promise noop */\n },\n };\n }\n if (!BUILD.safari10 && importMeta !== '') {\n opts.resourcesUrl = new URL('.', importMeta).href;\n }\n else if (BUILD.dynamicImportShim || BUILD.safari10) {\n opts.resourcesUrl = new URL('.', new URL(scriptElm.getAttribute('data-resources-url') || scriptElm.src, win.location.href)).href;\n if (BUILD.dynamicImportShim) {\n patchDynamicImport(opts.resourcesUrl, scriptElm);\n }\n if (BUILD.dynamicImportShim && !win.customElements) {\n // module support, but no custom elements support (Old Edge)\n // @ts-ignore\n return import(/* webpackChunkName: \"polyfills-dom\" */ './dom.js').then(() => opts);\n }\n }\n return promiseResolve(opts);\n};\nconst patchDynamicImport = (base, orgScriptElm) => {\n const importFunctionName = getDynamicImportFunction(NAMESPACE);\n try {\n // test if this browser supports dynamic imports\n // There is a caching issue in V8, that breaks using import() in Function\n // By generating a random string, we can workaround it\n // Check https://bugs.chromium.org/p/chromium/issues/detail?id=990810 for more info\n win[importFunctionName] = new Function('w', `return import(w);//${Math.random()}`);\n }\n catch (e) {\n // this shim is specifically for browsers that do support \"esm\" imports\n // however, they do NOT support \"dynamic\" imports\n // basically this code is for old Edge, v18 and below\n const moduleMap = new Map();\n win[importFunctionName] = (src) => {\n const url = new URL(src, base).href;\n let mod = moduleMap.get(url);\n if (!mod) {\n const script = doc.createElement('script');\n script.type = 'module';\n script.crossOrigin = orgScriptElm.crossOrigin;\n script.src = URL.createObjectURL(new Blob([`import * as m from '${url}'; window.${importFunctionName}.m = m;`], {\n type: 'application/javascript',\n }));\n mod = new Promise((resolve) => {\n script.onload = () => {\n resolve(win[importFunctionName].m);\n script.remove();\n };\n });\n moduleMap.set(url, mod);\n doc.head.appendChild(script);\n }\n return mod;\n };\n }\n};\nconst patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function (deep) {\n if (this.nodeName === 'TEMPLATE') {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n // Node.ATTRIBUTE_NODE === 2, and checking because IE11\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport { patchBrowser };\n","import { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(options => {\n globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"]}
@@ -1,5 +0,0 @@
1
- var __awaiter=this&&this.__awaiter||function(n,o,e,r){function t(n){return n instanceof e?n:new e((function(o){o(n)}))}return new(e||(e=Promise))((function(e,i){function a(n){try{c(r.next(n))}catch(o){i(o)}}function s(n){try{c(r["throw"](n))}catch(o){i(o)}}function c(n){n.done?e(n.value):t(n.value).then(a,s)}c((r=r.apply(n,o||[])).next())}))};var __generator=this&&this.__generator||function(n,o){var e={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},r,t,i,a;return a={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function s(n){return function(o){return c([n,o])}}function c(a){if(r)throw new TypeError("Generator is already executing.");while(e)try{if(r=1,t&&(i=a[0]&2?t["return"]:a[0]?t["throw"]||((i=t["return"])&&i.call(t),0):t.next)&&!(i=i.call(t,a[1])).done)return i;if(t=0,i)a=[a[0]&2,i.value];switch(a[0]){case 0:case 1:i=a;break;case 4:e.label++;return{value:a[1],done:false};case 5:e.label++;t=a[1];a=[0];continue;case 7:a=e.ops.pop();e.trys.pop();continue;default:if(!(i=e.trys,i=i.length>0&&i[i.length-1])&&(a[0]===6||a[0]===2)){e=0;continue}if(a[0]===3&&(!i||a[1]>i[0]&&a[1]<i[3])){e.label=a[1];break}if(a[0]===6&&e.label<i[1]){e.label=i[1];i=a;break}if(i&&e.label<i[2]){e.label=i[2];e.ops.push(a);break}if(i[2])e.ops.pop();e.trys.pop();continue}a=o.call(n,e)}catch(s){a=[6,s];t=0}finally{r=i=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};
2
- /*!
3
- * Web Components for Nanopore digital Web Apps
4
- */System.register(["./p-59b3d24b.system.js","./p-ef053a2f.system.js","./p-89edc042.system.js"],(function(n){"use strict";var o,e,r,t,i,a,s,c;return{setters:[function(n){o=n.r;e=n.c;r=n.j;t=n.h;i=n.e;a=n.g},function(n){s=n.d},function(n){c=n.g}],execute:function(){var l='.sc-nano-checkbox-group-h{-webkit-box-sizing:border-box;box-sizing:border-box}*.sc-nano-checkbox-group,*.sc-nano-checkbox-group::before,*.sc-nano-checkbox-group::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden].sc-nano-checkbox-group{display:none !important}.sc-nano-checkbox-group-h{--control-margin-top:0;--control-margin-end:0;--control-margin-bottom:0;--control-margin-start:0;--invalid-msg-color:var(--nano-color-danger, #ef4135);--invalid-msg-font-size:var(--nano-input-help-font-size, 0.75em);--help-msg-color:var(--nano-input-help-color, #616d6e);--label-color:var(--nano-input-label-color, "currentColor");--label-color--invalid:var(--nano-input-label-color-invalid, "currentColor");--label-font-size:var(--nano-input-label-color, 1em);--label-padding:var(--nano-input-padding-bottom, var(--nano-input-padding, 8px));display:block}.sc-nano-checkbox-group-h *.sc-nano-checkbox-group{-webkit-box-sizing:inherit;box-sizing:inherit}[types-tag].sc-nano-checkbox-group-h,[types-segment].sc-nano-checkbox-group-h{--control-margin-top:0;--control-margin-end:8px;--control-margin-bottom:8px;--control-margin-start:0}[types-checkbox].sc-nano-checkbox-group-h,[types-radio].sc-nano-checkbox-group-h{--control-margin-top:0;--control-margin-end:10px;--control-margin-bottom:8px;--control-margin-start:0}.nanogroupcb.sc-nano-checkbox-group{border:none;margin:0;padding:0}.nanogroupcb__error.sc-nano-checkbox-group,.nanogroupcb__help.sc-nano-checkbox-group,.nanogroupcb__more.sc-nano-checkbox-group{display:block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nanogroupcb__legend.sc-nano-checkbox-group{font-size:var(--label-font-size);padding:0 0 var(--label-padding);margin:0;line-height:1;white-space:normal;display:block;width:100%}[invalid].sc-nano-checkbox-group-h:not([invalid=false]) .nanogroupcb__legend.sc-nano-checkbox-group{color:var(--label-color--invalid)}.nanogroupcb__more.sc-nano-checkbox-group{height:1em;margin-left:3px;margin-right:0;margin-top:calc(var(--label-padding) - var(--control-margin-bottom));margin-bottom:var(--label-padding);position:relative}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.nanogroupcb__more.sc-nano-checkbox-group{margin-left:unset;margin-right:unset;-webkit-margin-start:3px;margin-inline-start:3px;-webkit-margin-end:0;margin-inline-end:0}}.nanogroupcb__error.sc-nano-checkbox-group,.nanogroupcb__help.sc-nano-checkbox-group{top:0;left:0;position:absolute;font-size:var(--invalid-msg-font-size);line-height:1.2;-webkit-transition:0.3s ease-out opacity;transition:0.3s ease-out opacity}.show-error.sc-nano-checkbox-group .nanogroupcb__error.sc-nano-checkbox-group,.show-error.sc-nano-checkbox-group .nanogroupcb__help.sc-nano-checkbox-group{opacity:1}.nanogroupcb__error.sc-nano-checkbox-group{color:var(--invalid-msg-color);font-stretch:condensed;opacity:0}.show-error.sc-nano-checkbox-group .nanogroupcb__error.sc-nano-checkbox-group{opacity:1}.nanogroupcb__help.sc-nano-checkbox-group{font-style:italic;opacity:1;color:var(--help-msg-color)}.show-error.sc-nano-checkbox-group .nanogroupcb__help.sc-nano-checkbox-group{opacity:0}.nanogroupcb__cbs.sc-nano-checkbox-group{margin:0;padding:0;line-height:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.nanogroupcb__cbs.sc-nano-checkbox-group-s>*:not([type=tag]):not([type=segment]):not([type=segment-pill]),.nanogroupcb__cbs .sc-nano-checkbox-group-s>*:not([type=tag]):not([type=segment]):not([type=segment-pill]){--check-base-size:1.2em;font-size:0.85em}.nanogroupcb__cbs.sc-nano-checkbox-group-s>*,.nanogroupcb__cbs .sc-nano-checkbox-group-s>*{margin-left:var(--control-margin-start);margin-top:var(--control-margin-top);margin-right:var(--control-margin-end);margin-bottom:var(--control-margin-bottom)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.nanogroupcb__cbs.sc-nano-checkbox-group-s>*,.nanogroupcb__cbs .sc-nano-checkbox-group-s>*{margin-left:unset;margin-right:unset;-webkit-margin-start:var(--control-margin-start);margin-inline-start:var(--control-margin-start);-webkit-margin-end:var(--control-margin-end);margin-inline-end:var(--control-margin-end)}}';var h=n("nano_checkbox_group",function(){function n(n){var r=this;o(this,n);this.nanoValidate=e(this,"nanoValidate",7);this.grpId="nano-checkbox-group-"+u++;this._invalid=false;this.errorMessage="";this.showErrorMsg=false;this.hasHelperSlot=false;this.validateOn="submit";this.showInlineError=true;this.min=0;this.max=null;this.disabled=null;this.legend="";this.handleInvalid=function(n){r._invalid=true;if(r.validateOn==="submit"){r._invalid=r.showErrorMsg=r.customValidate()}if(!!r.showInlineError)n.preventDefault();setTimeout((function(o){return r.showInlineValidation(n)}),20)};this.showInlineValidation=function(n){if(!r.nativeCbs||!r.nativeCbs.length)return;if(r.validateOn==="submitThenDirty")r.validateOn="dirty";r.showErrorMsg=false;r._invalid=false;r.nativeCbs.forEach((function(n,o){if(!n.validity.valid){r.errorMessage=n.validationMessage;r.showErrorMsg=true;r._invalid=true;if(!!r.showInlineError){r.checkboxes[o].setFocus()}}}));r.nanoValidate.emit({isValid:!r.invalid,errorMessage:r.errorMessage,originalEvent:n})}}Object.defineProperty(n.prototype,"invalid",{get:function(){return this._invalid},enumerable:false,configurable:true});n.prototype.reportValidity=function(n){return __awaiter(this,void 0,void 0,(function(){var o=this;return __generator(this,(function(e){return[2,new Promise((function(e){if(n)o.showInlineValidation();setTimeout((function(){e({isValid:!o.invalid,errorMessage:o.errorMessage})}),20)}))]}))}))};n.prototype.handleCbChange=function(){if(this.invalid)this.showErrorMsg=this._invalid=false;this.customValidate();if(this.validateOn!=="dirty")return;this.showInlineValidation()};n.prototype.customValidate=function(){var n=this;if(!this.nativeCbs||!this.nativeCbs.length||!this.checkboxes)return;var o=this.nativeCbs.filter((function(n){return n.type==="checkbox"}));if(!o||!o.length)return;var e=o.filter((function(n){return n.checked})).length;var r=false;this.checkboxes.forEach((function(o){if(o.required&&!o.checked){r=true}o.setError("");if(n.min&&e<n.min){o.setError("You must select a minimum of "+n.min+" values.");r=true}if(n.max&&e>n.max){o.setError("Only up to "+n.max+" values are allowed.");r=true}}));return r};n.prototype.handleComponentChange=function(){this.checkboxTypes=c(this.checkboxes.map((function(n){return"types-"+n.type})))};n.prototype.handleDisabledChange=function(){var n=this;if(this.disabled===null)return;this.checkboxes.map((function(o){return o.disabled=n.disabled}))};n.prototype.attachSlotObserver=function(){var n=this;var o=this.mo=new MutationObserver((function(){return n.handleSlotChange()}));o.observe(this.host,{childList:true})};n.prototype.handleSlotChange=function(){return __awaiter(this,void 0,void 0,(function(){var n;var o=this;return __generator(this,(function(e){switch(e.label){case 0:r(this.host);this.checkboxes=Array.from(this.host.querySelectorAll("nano-checkbox"));this.hasHelperSlot=!!this.host.querySelector('[slot="helper"]');n=this;return[4,Promise.all(this.checkboxes.reduce((function(n,o){n.push(o.getInputElement());return n}),[]))];case 1:n.nativeCbs=e.sent();this.nativeCbs.forEach((function(n){return n.addEventListener("invalid",o.handleInvalid)}));return[2]}}))}))};n.prototype.componentWillLoad=function(){this.showInlineValidation=s(this.showInlineValidation,20);this.customValidate=this.customValidate.bind(this);this.handleDisabledChange()};n.prototype.connectedCallback=function(){this.attachSlotObserver()};n.prototype.disconnectedCallback=function(){if(this.mo)this.mo.disconnect()};n.prototype.componentDidLoad=function(){this.handleComponentChange()};n.prototype.render=function(){var n=this.host.ownerDocument.dir==="rtl";var o=this.grpId+"-lbl";var e=this.showInlineError||this.hasHelperSlot?this.grpId+"-more":"";return t(i,Object.assign({},this.checkboxTypes,{dir:n?"rtl":null}),t("fieldset",{disabled:this.disabled,class:{nanogroupcb:true,"show-error":this.showErrorMsg}},t("legend",{class:"nanogroupcb__legend",id:o},this.legend),t("div",{class:"nanogroupcb__cbs",role:"group","aria-labelledby":o+" "+e},t("slot",null)),(this.showInlineError||this.hasHelperSlot)&&t("div",{class:"nanogroupcb__more",id:e},!!this.showInlineError?t("div",{class:"nanogroupcb__error"},this.errorMessage):"",t("div",{class:"nanogroupcb__help"},t("slot",{name:"helper"})))))};Object.defineProperty(n.prototype,"host",{get:function(){return a(this)},enumerable:false,configurable:true});Object.defineProperty(n,"watchers",{get:function(){return{validateOn:["handleCbChange"],min:["handleCbChange"],max:["handleCbChange"],nativeCbs:["customValidate"],checkboxes:["handleComponentChange","handleDisabledChange"],disabled:["handleDisabledChange"]}},enumerable:false,configurable:true});return n}());var u=0;h.style=l}}}));
5
- //# sourceMappingURL=p-09e38c5f.system.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/checkbox/checkbox-group.scss?tag=nano-checkbox-group&encapsulation=scoped","src/components/checkbox/checkbox-group.tsx"],"names":["checkboxGroupCss","CheckboxGroup","exports","class_1","hostRef","_this","this","grpId","grpIds","_invalid","errorMessage","showErrorMsg","hasHelperSlot","validateOn","showInlineError","min","max","disabled","legend","handleInvalid","ev","customValidate","preventDefault","setTimeout","_","showInlineValidation","nativeCbs","length","forEach","cb","i","validity","valid","validationMessage","checkboxes","setFocus","nanoValidate","emit","isValid","invalid","originalEvent","Object","defineProperty","prototype","reportValidity","validateFirst","Promise","resolve","handleCbChange","onlyCbs","filter","type","checked","required","setError","handleComponentChange","checkboxTypes","getClassMap","map","handleDisabledChange","attachSlotObserver","mo","MutationObserver","handleSlotChange","observe","host","childList","forceUpdate","Array","from","querySelectorAll","querySelector","_a","all","reduce","acc","push","getInputElement","_b","sent","addEventListener","componentWillLoad","debounce","bind","connectedCallback","disconnectedCallback","disconnect","componentDidLoad","render","isRtl","ownerDocument","dir","legendId","moreId","h","Host","assign","class","nanogroupcb","show-error","id","role","aria-labelledby","name"],"mappings":"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","sourcesContent":["@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import '../../global/style/nano-theme/base';\n\n:host {\n /**\n * @prop --control-margin-top: Margin between controls. Default depends on control type;\n * @prop --control-margin-end: Margin between controls. Default depends on control type;\n * @prop --control-margin-bottom: Margin between controls. Default depends on control type;\n * @prop --control-margin-start: Margin between controls. Default depends on control type;\n\n * @prop --invalid-msg-color: Default #{nano-color(danger, base)};\n * @prop --invalid-msg-font-size: Default #{$input-help-font-size};\n\n * @prop --help-msg-color: Font color applied to slot=\"helper\". Default #{$input-help-color};\n\n * @prop --label-color: Default #{$label-color};\n * @prop --label-color--invalid: Default #{$label-color-invalid};\n * @prop --label-font-size: Default #{$label-font-size};\n * @prop --label-padding: space between legend and control. Default #{$input-padding-bottom};\n */\n\n --control-margin-top: 0;\n --control-margin-end: 0;\n --control-margin-bottom: 0;\n --control-margin-start: 0;\n --invalid-msg-color: #{nano-color(danger, base)};\n --invalid-msg-font-size: #{$input-help-font-size};\n --help-msg-color: #{$input-help-color};\n --label-color: #{$label-color};\n --label-color--invalid: #{$label-color-invalid};\n --label-font-size: #{$label-font-size};\n --label-padding: #{$input-padding-bottom};\n\n display: block;\n\n * {\n box-sizing: inherit;\n }\n}\n\n:host([types-tag]),\n:host([types-segment]) {\n --control-margin-top: 0;\n --control-margin-end: 8px;\n --control-margin-bottom: 8px;\n --control-margin-start: 0;\n}\n\n:host([types-checkbox]),\n:host([types-radio]) {\n --control-margin-top: 0;\n --control-margin-end: 10px;\n --control-margin-bottom: 8px;\n --control-margin-start: 0;\n}\n\n.nanogroupcb {\n border: none;\n margin: 0;\n padding: 0;\n\n &__error,\n &__help,\n &__more {\n display: block;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &__legend {\n font-size: var(--label-font-size);\n padding: 0 0 var(--label-padding);\n margin: 0;\n line-height: 1;\n white-space: normal;\n display: block;\n width: 100%;\n\n :host([invalid]:not([invalid='false'])) & {\n color: var(--label-color--invalid);\n }\n }\n\n &__more {\n height: 1em;\n\n @include margin(\n calc(var(--label-padding) - var(--control-margin-bottom)),\n 0,\n var(--label-padding),\n 3px\n );\n\n position: relative;\n }\n\n &__error,\n &__help {\n top: 0;\n left: 0;\n position: absolute;\n font-size: var(--invalid-msg-font-size);\n line-height: 1.2;\n transition: 0.3s ease-out opacity;\n\n .show-error & {\n opacity: 1;\n }\n }\n\n &__error {\n color: var(--invalid-msg-color);\n font-stretch: condensed;\n opacity: 0;\n\n .show-error & {\n opacity: 1;\n }\n }\n\n &__help {\n font-style: italic;\n opacity: 1;\n color: var(--help-msg-color);\n\n .show-error & {\n opacity: 0;\n }\n }\n\n &__cbs {\n margin: 0;\n padding: 0;\n line-height: 1;\n display: flex;\n flex-wrap: wrap;\n\n ::slotted(*:not([type='tag']):not([type='segment']):not([type='segment-pill'])) {\n --check-base-size: 1.2em;\n\n font-size: 0.85em;\n }\n\n ::slotted(*) {\n margin-left: var(--control-margin-start);\n margin-top: var(--control-margin-top);\n margin-right: var(--control-margin-end);\n margin-bottom: var(--control-margin-bottom);\n }\n }\n}\n\n/* autoprefixer: ignore next */\n@supports ((margin-inline-start: 0) or (-webkit-margin-start: 0)) {\n .nanogroupcb__cbs {\n &::slotted(*),\n ::slotted(*) {\n margin-left: unset;\n margin-right: unset;\n margin-inline-start: var(--control-margin-start);\n margin-inline-end: var(--control-margin-end);\n }\n }\n}\n","import {\n Component,\n Prop,\n Element,\n h,\n ComponentInterface,\n State,\n Listen,\n Watch,\n Host,\n Method,\n forceUpdate,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport {\n CssClassMap,\n ControlValidityEventDetail,\n ControlValidity,\n} from '../../interface';\nimport { debounce, getClassMap } from '../../utils';\n\n/**\n * `nano-checkbox-group` is an optional wrapper for all `nano-checkbox` controls.\n * It provides a convenient place to anchor a collective label and any validation issues.\n *\n * @slot - Used for grouping checkboxes inside the group wrapper\n * @slot helper - helper text to accompany the form field underneath.\n */\n@Component({\n tag: 'nano-checkbox-group',\n styleUrl: 'checkbox-group.scss',\n scoped: true,\n})\nexport class CheckboxGroup implements ComponentInterface {\n private mo?: MutationObserver;\n private checkboxTypes: CssClassMap;\n private grpId = `nano-checkbox-group-${grpIds++}`;\n private _invalid = false;\n\n @Element() host: HTMLNanoCheckboxGroupElement;\n\n // internal state\n\n @State() checkboxes: HTMLNanoCheckboxElement[];\n @State() nativeCbs: HTMLInputElement[];\n @State() errorMessage: string = '';\n @State() showErrorMsg = false;\n @State() hasHelperSlot = false;\n\n // public properties\n\n /**\n * When should the field perform validation\n */\n @Prop({ mutable: true }) validateOn?: 'dirty' | 'submit' | 'submitThenDirty' =\n 'submit';\n\n /**\n * Whether to show validation errors underneath input\n */\n @Prop() showInlineError = true;\n\n /**\n * The minimum number of checkboxes required to be valid. Only relevant for checkbox type controls.\n * A validation error will be thrown if not enough controls are checked.\n */\n @Prop() min: number = 0;\n\n /**\n * The maximum number of checkboxes allowed. Only relevant for checkbox type controls.\n * Other controls will automatically be disabled upon reaching this number.\n */\n @Prop() max: number = null;\n\n /**\n * Disable all the nested form controls\n */\n @Prop({ reflect: true }) disabled: boolean | null = null;\n\n /**\n * A common label for children controls\n */\n @Prop() legend: string = '';\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\n // Public methods\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.showInlineValidation();\n setTimeout(() => {\n resolve({\n isValid: !this.invalid,\n errorMessage: this.errorMessage,\n });\n }, 20);\n });\n }\n\n // Events\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 // listeners & watchers\n\n /**\n * Notes on validation... custom validation messages should be set\n * no matter whether we show inline messages or native html5.\n * this will mean forms cannot submit when there are pending validation issues.\n */\n @Listen('nanoChange')\n @Watch('validateOn')\n @Watch('min')\n @Watch('max')\n handleCbChange() {\n if (this.invalid) this.showErrorMsg = this._invalid = false;\n this.customValidate();\n\n if (this.validateOn !== 'dirty') return;\n this.showInlineValidation();\n }\n\n @Watch('nativeCbs')\n customValidate() {\n if (!this.nativeCbs || !this.nativeCbs.length || !this.checkboxes) return;\n\n // we only care about checkbox controls.\n let onlyCbs = this.nativeCbs.filter((cb) => cb.type === 'checkbox');\n if (!onlyCbs || !onlyCbs.length) return;\n\n let checked = onlyCbs.filter((cb) => cb.checked).length;\n let invalid = false;\n\n this.checkboxes.forEach((cb) => {\n if (cb.required && !cb.checked) {\n invalid = true;\n }\n\n cb.setError('');\n\n if (this.min && checked < this.min) {\n cb.setError(`You must select a minimum of ${this.min} values.`);\n invalid = true;\n }\n if (this.max && checked > this.max) {\n cb.setError(`Only up to ${this.max} values are allowed.`);\n invalid = true;\n }\n });\n return invalid;\n }\n\n @Watch('checkboxes')\n handleComponentChange() {\n this.checkboxTypes = getClassMap(\n this.checkboxes.map((cb) => 'types-' + cb.type)\n );\n }\n\n @Watch('disabled')\n @Watch('checkboxes')\n handleDisabledChange() {\n if (this.disabled === null) return;\n this.checkboxes.map((cb) => (cb.disabled = this.disabled));\n }\n\n // private methods\n\n private attachSlotObserver() {\n const mo = (this.mo = new MutationObserver(() => this.handleSlotChange()));\n mo.observe(this.host, { childList: true });\n }\n\n private async handleSlotChange() {\n forceUpdate(this.host);\n this.checkboxes = Array.from(this.host.querySelectorAll('nano-checkbox'));\n this.hasHelperSlot = !!this.host.querySelector('[slot=\"helper\"]');\n\n this.nativeCbs = await Promise.all(\n this.checkboxes.reduce((acc: Array<Promise<HTMLInputElement>>, cb) => {\n acc.push(cb.getInputElement());\n return acc;\n }, [])\n );\n\n this.nativeCbs.forEach((cb) =>\n cb.addEventListener('invalid', this.handleInvalid)\n );\n }\n\n private handleInvalid = (ev: Event) => {\n this._invalid = true;\n\n if (this.validateOn === 'submit') {\n this._invalid = this.showErrorMsg = this.customValidate();\n }\n if (!!this.showInlineError) ev.preventDefault();\n\n setTimeout((_) => this.showInlineValidation(ev), 20);\n };\n\n private showInlineValidation = (ev?: Event) => {\n if (!this.nativeCbs || !this.nativeCbs.length) return;\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n this.showErrorMsg = false;\n this._invalid = false;\n\n this.nativeCbs.forEach((cb, i) => {\n if (!cb.validity.valid) {\n this.errorMessage = cb.validationMessage;\n this.showErrorMsg = true;\n this._invalid = true;\n if (!!this.showInlineError) {\n this.checkboxes[i].setFocus();\n }\n }\n });\n\n this.nanoValidate.emit({\n isValid: !this.invalid,\n errorMessage: this.errorMessage,\n originalEvent: ev,\n });\n };\n\n // stencil hooks\n\n componentWillLoad() {\n this.showInlineValidation = debounce(this.showInlineValidation, 20);\n this.customValidate = this.customValidate.bind(this);\n this.handleDisabledChange();\n }\n\n connectedCallback() {\n this.attachSlotObserver();\n }\n\n disconnectedCallback() {\n if (this.mo) this.mo.disconnect();\n }\n\n componentDidLoad() {\n this.handleComponentChange();\n }\n\n render() {\n let isRtl = (this.host.ownerDocument as Document).dir === 'rtl';\n const legendId = this.grpId + '-lbl';\n const moreId =\n this.showInlineError || this.hasHelperSlot ? this.grpId + '-more' : '';\n\n return (\n <Host {...this.checkboxTypes} dir={isRtl ? 'rtl' : null}>\n <fieldset\n disabled={this.disabled}\n class={{ nanogroupcb: true, 'show-error': this.showErrorMsg }}\n >\n <legend class=\"nanogroupcb__legend\" id={legendId}>\n {this.legend}\n </legend>\n <div\n class=\"nanogroupcb__cbs\"\n role=\"group\"\n aria-labelledby={legendId + ' ' + moreId}\n >\n <slot />\n </div>\n {(this.showInlineError || this.hasHelperSlot) && (\n <div class=\"nanogroupcb__more\" id={moreId}>\n {!!this.showInlineError ? (\n <div class=\"nanogroupcb__error\">{this.errorMessage}</div>\n ) : (\n ''\n )}\n <div class=\"nanogroupcb__help\">\n <slot name=\"helper\" />\n </div>\n </div>\n )}\n </fieldset>\n </Host>\n );\n }\n}\n\nlet grpIds = 0;\n"]}
@@ -1,5 +0,0 @@
1
- var __awaiter=this&&this.__awaiter||function(e,t,n,i){function o(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,a){function r(e){try{l(i.next(e))}catch(t){a(t)}}function s(e){try{l(i["throw"](e))}catch(t){a(t)}}function l(e){e.done?n(e.value):o(e.value).then(r,s)}l((i=i.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,o,a,r;return r={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(r[Symbol.iterator]=function(){return this}),r;function s(e){return function(t){return l([e,t])}}function l(r){if(i)throw new TypeError("Generator is already executing.");while(n)try{if(i=1,o&&(a=r[0]&2?o["return"]:r[0]?o["throw"]||((a=o["return"])&&a.call(o),0):o.next)&&!(a=a.call(o,r[1])).done)return a;if(o=0,a)r=[r[0]&2,a.value];switch(r[0]){case 0:case 1:a=r;break;case 4:n.label++;return{value:r[1],done:false};case 5:n.label++;o=r[1];r=[0];continue;case 7:r=n.ops.pop();n.trys.pop();continue;default:if(!(a=n.trys,a=a.length>0&&a[a.length-1])&&(r[0]===6||r[0]===2)){n=0;continue}if(r[0]===3&&(!a||r[1]>a[0]&&r[1]<a[3])){n.label=r[1];break}if(r[0]===6&&n.label<a[1]){n.label=a[1];a=r;break}if(a&&n.label<a[2]){n.label=a[2];n.ops.push(r);break}if(a[2])n.ops.pop();n.trys.pop();continue}r=t.call(e,n)}catch(s){r=[6,s];o=0}finally{i=a=0}if(r[0]&5)throw r[1];return{value:r[0]?r[1]:void 0,done:true}}};
2
- /*!
3
- * Web Components for Nanopore digital Web Apps
4
- */System.register(["./p-59b3d24b.system.js","./p-e195ab77.system.js","./p-89edc042.system.js"],(function(e){"use strict";var t,n,i,o,a,r,s,l,d;return{setters:[function(e){t=e.r;n=e.c;i=e.h;o=e.e;a=e.g},function(e){r=e.p;s=e.a;l=e.c},function(e){d=e.c}],execute:function(){var u=".sc-nano-date-input-h{-webkit-box-sizing:border-box;box-sizing:border-box}*.sc-nano-date-input,*.sc-nano-date-input::before,*.sc-nano-date-input::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden].sc-nano-date-input{display:none !important}.sc-nano-date-input-h{display:inline-block;width:100%;--focus-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));--open-btn-color:var(--nano-button-color, #f0efed);--open-btn-border:none;--close-btn-color:var(--nano-button-color, #f0efed);--picker-base-size:16px}.nano-color.sc-nano-date-input-h{--focus-shadow:0 0 0 0.1875rem rgba(var(--nano-color-tint-rgb), 0.56)}nano-icon.sc-nano-date-input{pointer-events:none}.date-field.sc-nano-date-input{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:relative}.date-field__dropdown.sc-nano-date-input{--padding:0;--overflow:visible;padding:0 !important;width:0 !important;width:100%;z-index:var(--nano-layer-index-dropdown, 300) !important}.date-field__close-bar.sc-nano-date-input{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;text-overflow:ellipsis;white-space:nowrap;border:0;margin:0;overflow:visible;padding:0;position:absolute;right:-8px;top:-8px;width:auto;z-index:1}.date-field__open.sc-nano-date-input{background:var(--open-btn-color);border:var(--open-btn-border);margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.date-field__open.sc-nano-date-input:focus{-webkit-box-shadow:var(--focus-shadow);box-shadow:var(--focus-shadow);outline:none}.date-field__close.sc-nano-date-input{-webkit-appearance:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-moz-appearance:none;appearance:none;background:var(--close-btn-color);border:0;border-radius:50%;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;height:24px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;width:24px}@media (min-width: 36em){.date-field__close.sc-nano-date-input{opacity:0}}.date-field__close.sc-nano-date-input:focus{-webkit-box-shadow:var(--focus-shadow);box-shadow:var(--focus-shadow);outline:none}@media (min-width: 36em){.date-field__close.sc-nano-date-input:focus{opacity:1}}.date-field__close.sc-nano-date-input nano-icon.sc-nano-date-input{margin:0 auto}.date-field.sc-nano-date-input nano-date-picker.sc-nano-date-input{font-size:var(--picker-base-size)}.vhidden.sc-nano-date-input{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}";var c={d:"(\\d{1,2})",m:"(\\d{1,2})",y:"(\\d{4})"};var p=0;var h=e("nano_date_input",function(){function e(e){var i=this;t(this,e);this.nanoChange=n(this,"nanoChange",7);this.nanoValidate=n(this,"nanoValidate",7);this.directInput=false;this.dateOrderIndeces={d:0,m:1,y:3};this.inputId="nano-input-"+p++;this.locale=window.navigator.languages||window.navigator.language||undefined;this._invalid=false;this.helperText=true;this.helperTextFormat={year:"numeric",month:"long",day:"numeric"};this.floatLabel=false;this.name=this.inputId;this.readonly=false;this.disabled=false;this.autofocus=false;this.clearInput=false;this.value="";this.validateOn="submit";this.showInlineError=true;this.dateOrder="dmy";this.required=false;this.hideLabel=false;this.picker=true;this.pickerOpen=false;this.closeAfterPicked=true;this._dropDownConfig={};this.onInputChange=function(e){e.stopPropagation();i.setValue(e.target.value)};this.onInputValidate=function(e){e.stopPropagation();i._invalid=!e.detail.isValid;i.nanoValidate.emit({isValid:e.detail.isValid,errorMessage:e.detail.errorMessage,originalEvent:e.detail.originalEvent})};this.onInputKey=function(){i.directInput=true};this.onDatePicked=function(e){i.directInput=false;i.value=e.detail.value;if(i.closeAfterPicked)i.pickerOpen=false};this.onDropdownHide=function(){setTimeout((function(e){return i.pickerOpen=false}),200);setTimeout((function(e){return i.trigger.focus()}),50)};this.onDropdownShow=function(){setTimeout((function(e){i.pickerEle.setFocus(false,i.pickerOpenSource==="key");i.pickerOpenSource=null}),200)};this.onTriggerClick=function(){if(!i.pickerOpen){i.pickerOpen=true;i.pickerOpenSource="mouse"}};this.onTriggerKey=function(e){if([" ","Enter"].includes(e.key)){if(!i.pickerOpen){i.pickerOpen=true;i.pickerOpenSource="key"}}};this.onCloseClick=function(){if(i.pickerOpen)i.pickerOpen=false};this.onCloseKeyDown=function(e){if(e.key==="Tab"&&e.shiftKey){i.pickerEle.setFocus(true);e.preventDefault()}if(e.key===" "||e.key==="Enter"){if(i.pickerOpen)i.pickerOpen=false}}}Object.defineProperty(e.prototype,"invalid",{get:function(){return this._invalid},enumerable:false,configurable:true});e.prototype.handleValueChange=function(){if(!this.directInput)this.inputValue=this.formatIsoDate(this.value);this.nanoChange.emit({value:this.value,date:r(this.value)});this.directInput=false};e.prototype.handleDateOrderChange=function(){this.setDatePattern()};e.prototype.testDateValidity=function(){var e=this;var t=r(this.value);var n,i,o="";if(this.value&&t){if(this.min&&(n=r(this.min))&&t<n){o="Date below the minimum: "+n.toLocaleDateString(this.locale,this.helperTextFormat)}else if(this.max&&(i=r(this.max))&&t>i){o="Date above the maximum: "+i.toLocaleDateString(this.locale,this.helperTextFormat)}}setTimeout((function(n){return __awaiter(e,void 0,void 0,(function(){var e;return __generator(this,(function(n){switch(n.label){case 0:if(!this.input)return[2];return[4,this.input.getInputElement()];case 1:e=n.sent();if(this.value.length&&!t)o="Please enter a valid date";e.setCustomValidity(o);if(this.input.validateOn==="dirty"){this.input.showError(o)}return[2]}}))}))}),100)};e.prototype.handlePickerOpenChange=function(){this.dropdown.open=this.pickerOpen};Object.defineProperty(e.prototype,"dropDownConfig",{get:function(){return this._dropDownConfig},set:function(e){this._dropDownConfig=Object.assign(Object.assign({},this._dropDownConfig),e)},enumerable:false,configurable:true});e.prototype.reportValidity=function(e){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,this.input.reportValidity(e)];case 1:return[2,t.sent()]}}))}))};e.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){if(this.input)this.input.setFocus();return[2]}))}))};e.prototype.getInputElement=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){switch(e.label){case 0:return[4,this.input.getInputElement()];case 1:return[2,e.sent()]}}))}))};e.prototype.showError=function(e){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){if(!this.input)return[2];this.input.showError(e);return[2]}))}))};e.prototype.setDatePattern=function(){var e=this;var t=[];var n=[];Array.from(this.dateOrder).map((function(i,o){t.push(c[i]);e.dateOrderIndeces[i]=o;n.push(i==="y"?"yyyy":i+i)}));this.pattern=t.join("\\W+");if(!this.placeholder&&this.placeholder!=="false")this.placeholder=n.join(" ")};e.prototype.formatIsoDate=function(e){var t=[];Array.from("ymd").map((function(e){return t.push(c[e])}));var n=e.match(new RegExp(t.join("\\W+")));if(!n)return"";var i=[];i[this.dateOrderIndeces.d]=n[3];i[this.dateOrderIndeces.m]=n[2];i[this.dateOrderIndeces.y]=n[1];return i.join(" ")};e.prototype.setValue=function(e){var t=e.match(new RegExp(this.pattern));if(!t){this.value=e;return}var n=l(t[this.dateOrderIndeces.y+1],t[this.dateOrderIndeces.m+1],t[this.dateOrderIndeces.d+1]);if(!n){n=new Date(e);if(!n){this.value=e;return}}var i=s(n);this.value=i;return i};e.prototype.connectedCallback=function(){this.setDatePattern();this.handleValueChange()};e.prototype.componentDidLoad=function(){var e=this;if(!this.pickerCloseBtn||!this.picker)return;this.pickerEle.firstFocusEle=this.pickerCloseBtn;this.dropdown.tetherTo=this.trigger;setTimeout((function(t){return e.handlePickerOpenChange()}),300)};e.prototype.render=function(){var e=this;this.locale=navigator.languages||navigator.language||undefined;this.dropDownConfig.placement=this.dropDownConfig.placement||"bottom-end";if(this.host.ownerDocument.dir==="rtl"){this.dropDownConfig.placement.replace("start","end")}if(this.trigger)this.dropDownConfig.tetherTo=this.trigger;var t=r(this.value);var n=!!this.host.querySelector('[slot="helper"]');return i(o,{class:Object.assign({},d(this.color))},i("div",{class:"date-field"},i("nano-input",{class:"date-field__input",slot:"trigger",required:this.required||undefined,showInlineError:this.showInlineError,validateOn:this.validateOn,placeholder:this.placeholder!=="false"?this.placeholder:undefined,pattern:this.pattern,label:this.label,disabled:this.disabled||undefined,color:this.color||undefined,autofocus:this.autofocus||undefined,clearInput:this.clearInput||undefined,onNanoChange:this.onInputChange,onNanoInput:this.onInputKey,onNanoValidate:this.onInputValidate,name:"",form:this.form||undefined,size:this.size||undefined,readonly:this.readonly,value:this.inputValue,ref:function(t){return e.input=t},floatLabel:this.floatLabel,hideLabel:this.hideLabel,inputmode:"numeric",part:"input"},i("slot",{name:"start",slot:"start"}),i("slot",{name:"label"}),i("slot",{name:"end",slot:"end"}),this.picker&&[i("button",{slot:"end",class:"date-field__open",type:"button",onKeyDown:this.onTriggerKey,onClick:this.onTriggerClick,ref:function(t){return e.trigger=t},disabled:this.disabled||this.readonly},i("nano-icon",{name:"light/calendar-alt"})),i("nano-dropdown",Object.assign({slot:"end",onNanoHide:this.onDropdownHide,onNanoShow:this.onDropdownShow,dialogTitle:"Choose a date",class:"date-field__dropdown",ref:function(t){return e.dropdown=t}},this.dropDownConfig,{part:"dropdown"}),i("div",null,i("div",{class:"date-field__close-bar"},i("button",{class:"date-field__close",type:"button",onMouseDown:this.onCloseClick,onKeyDown:this.onCloseKeyDown,ref:function(t){return e.pickerCloseBtn=t}},i("nano-icon",{name:"light/times"}),i("span",{class:"vhidden"},"Close window"))),i("nano-date-picker",{onNanoDatePicked:this.onDatePicked,min:this.min||undefined,max:this.max||undefined,"is-modal":true,ref:function(t){return e.pickerEle=t},localization:this.localization,selectedDate:this.value||this.initialPickerDate,firstDayOfWeek:this.firstDayOfWeek,color:this.color||undefined,part:"date-picker"})))],(n||this.helperText||this.showInlineError)&&i("span",{slot:"helper"},i("span",{class:{vhidden:!!this.value.length}},i("slot",{name:"helper"})),this.helperText&&!!t&&i("span",null,t.toLocaleDateString(this.locale,this.helperTextFormat)))),i("input",{type:"hidden",value:this.value,name:this.name})))};Object.defineProperty(e.prototype,"host",{get:function(){return a(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{value:["handleValueChange","testDateValidity"],dateOrder:["handleDateOrderChange"],min:["testDateValidity"],max:["testDateValidity"],pickerOpen:["handlePickerOpenChange"]}},enumerable:false,configurable:true});return e}());h.style=u}}}));
5
- //# sourceMappingURL=p-10a6216d.system.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/date-input/date-input.scss?tag=nano-date-input&encapsulation=scoped","src/components/date-input/date-input.tsx"],"names":["dateInputCss","DateRegxps","d","m","y","inputIds","DateInput","exports","class_1","hostRef","_this","this","directInput","dateOrderIndeces","inputId","locale","window","navigator","languages","language","undefined","_invalid","helperText","helperTextFormat","year","month","day","floatLabel","name","readonly","disabled","autofocus","clearInput","value","validateOn","showInlineError","dateOrder","required","hideLabel","picker","pickerOpen","closeAfterPicked","_dropDownConfig","onInputChange","e","stopPropagation","setValue","target","onInputValidate","detail","isValid","nanoValidate","emit","errorMessage","originalEvent","onInputKey","onDatePicked","onDropdownHide","setTimeout","_","trigger","focus","onDropdownShow","pickerEle","setFocus","pickerOpenSource","onTriggerClick","onTriggerKey","includes","key","onCloseClick","onCloseKeyDown","shiftKey","preventDefault","Object","defineProperty","prototype","handleValueChange","inputValue","formatIsoDate","nanoChange","date","parseISODate","handleDateOrderChange","setDatePattern","testDateValidity","valueDate","min","max","error","toLocaleDateString","__awaiter","input","getInputElement","_a","sent","length","setCustomValidity","showError","handlePickerOpenChange","dropdown","open","ddc","assign","reportValidity","validateFirst","message","dateRegexOrdered","dateStrOrd","Array","from","map","datepart","i","push","pattern","join","placeholder","isoDate","matches","match","RegExp","formatted","createDate","Date","dateStr","printISODate","connectedCallback","componentDidLoad","pickerCloseBtn","firstFocusEle","tetherTo","render","dropDownConfig","placement","host","ownerDocument","dir","replace","hasHelperSlot","querySelector","h","Host","class","createColorClasses","color","slot","label","onNanoChange","onNanoInput","onNanoValidate","form","size","ref","inputmode","part","type","onKeyDown","onClick","onNanoHide","onNanoShow","dialogTitle","onMouseDown","pickerClose","onNanoDatePicked","is-modal","localization","selectedDate","initialPickerDate","firstDayOfWeek","vhidden"],"mappings":"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","sourcesContent":["@use 'sass:map';\n@use 'sass:list';\n\n@import '../../global/style/nano-theme/form';\n@import '../../global/style/nano-theme/layers';\n@import '../../global/style/utilities/globals';\n\n:host {\n /**\n * @prop --focus-shadow: defaults to #{$control-focus-style};\n * @prop --open-btn-color: defaults to #{$button-bg-color};\n * @prop --open-btn-border: defaults to none;\n * @prop --close-btn-color: defaults to #{map.get($colors, celsius)};\n * @prop --picker-base-size: Base font size of the date picker component. Defaults to 16px;\n */\n\n display: inline-block;\n width: 100%;\n\n --focus-shadow: #{$control-focus-style};\n --open-btn-color: #{$button-bg-color};\n --open-btn-border: none;\n --close-btn-color: #{$button-bg-color};\n --picker-base-size: 16px;\n}\n\n:host(.nano-color) {\n --focus-shadow: #{$control-focus-size current-color(tint, 0.56)};\n}\n\nnano-icon {\n pointer-events: none;\n}\n\n.date-field {\n display: flex;\n flex-direction: column;\n position: relative;\n\n &__dropdown {\n --padding: 0;\n --overflow: visible;\n\n padding: 0 !important;\n width: 0 !important;\n width: 100%;\n z-index: $layer-index-dropdown !important;\n }\n\n &__close-bar {\n align-items: center;\n display: flex;\n justify-content: space-between;\n text-overflow: ellipsis;\n white-space: nowrap;\n border: 0;\n margin: 0;\n overflow: visible;\n padding: 0;\n position: absolute;\n right: -8px;\n top: -8px;\n width: auto;\n z-index: 1;\n }\n\n &__open {\n background: var(--open-btn-color);\n border: var(--open-btn-border);\n margin: 0;\n appearance: none;\n\n &:focus {\n box-shadow: var(--focus-shadow);\n outline: none;\n }\n }\n\n &__close {\n -webkit-appearance: none;\n align-items: center;\n appearance: none;\n background: var(--close-btn-color);\n border: 0;\n border-radius: 50%;\n cursor: pointer;\n display: flex;\n height: 24px;\n justify-content: center;\n padding: 0;\n width: 24px;\n\n @media (min-width: 36em) {\n opacity: 0;\n }\n\n &:focus {\n box-shadow: var(--focus-shadow);\n outline: none;\n\n @media (min-width: 36em) {\n opacity: 1;\n }\n }\n\n nano-icon {\n margin: 0 auto;\n }\n }\n\n nano-date-picker {\n font-size: var(--picker-base-size);\n }\n}\n\n.vhidden {\n @include visually-hide();\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n h,\n Prop,\n Watch,\n State,\n Event,\n EventEmitter,\n Host,\n Method,\n} from '@stencil/core';\nimport {\n createDate,\n DaysOfWeek,\n printISODate,\n parseISODate,\n} from '../../utils/date-utils';\n\nimport {\n PickerChangeEvent,\n DateInputChangeEventDetail,\n Color,\n LocalDateOpts,\n DuetLocalizedText,\n ControlValidity,\n ControlValidityEventDetail,\n} from '../../interface';\nimport { createColorClasses } from '../../utils';\nimport type { Dropdown } from '../dropdown/dropdown';\n\nconst DateRegxps = {\n d: '(\\\\d{1,2})',\n m: '(\\\\d{1,2})',\n y: '(\\\\d{4})',\n};\n\nlet inputIds = 0;\n\n/**\n * The date-input component combines `nano-dropdown`, `nano-input` and `nano-date-picker` components to make a fully featured date form field. It has specific options for localisation, date formatting and validation.\n *\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 start - input start slot\n * @slot end - input end slot\n */\n@Component({\n tag: 'nano-date-input',\n styleUrl: 'date-input.scss',\n scoped: true,\n})\nexport class DateInput implements ComponentInterface {\n private pickerEle!: HTMLNanoDatePickerElement;\n private trigger!: HTMLButtonElement;\n private pickerCloseBtn!: HTMLButtonElement;\n private dropdown!: HTMLNanoDropdownElement;\n private input: HTMLNanoInputElement;\n private pickerOpenSource: 'key' | 'mouse';\n\n private directInput = false;\n private dateOrderIndeces = { d: 0, m: 1, y: 3 };\n private inputId = `nano-input-${inputIds++}`;\n private locale =\n (window.navigator.languages as string[]) ||\n window.navigator.language ||\n undefined;\n\n @Element() host: HTMLNanoDateInputElement;\n\n // Private state\n\n @State() pattern!: string;\n @State() inputValue: string;\n\n // Public Api / Prop\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 * Whether to show a long form, confirmation date string of the one currently entered\n */\n @Prop() helperText: boolean = true;\n\n /**\n * Options for the date string display. Refer to https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString.\n */\n @Prop() helperTextFormat: LocalDateOpts = {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n };\n\n /**\n * Enable floating label behaviour. Will disable placeholder if set.\n */\n @Prop() floatLabel: boolean = false;\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 * If `true`, the user cannot modify the value.\n */\n @Prop() readonly = false;\n\n /**\n * The initial size (number of characters) of the control.\n */\n @Prop() size?: number;\n\n /**\n * The form element to associate the select with (its form owner). Must be the id of a form.\n */\n @Prop() form?: string | null;\n\n /**\n * Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc.\n * Default is Monday.\n */\n @Prop() firstDayOfWeek?: DaysOfWeek;\n\n /**\n * Button labels, day names, month names, etc, used for localization.\n * Default is English.\n */\n @Prop() localization?: DuetLocalizedText;\n\n /**\n * If `true`, the user cannot interact with the input.\n */\n @Prop() disabled = false;\n\n /**\n * The color to use from the application's color palette.\n */\n @Prop() color?: Color;\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 * String to place within a label element. Alternatively you may use a label slot.\n */\n @Prop() label?: string;\n\n /**\n * Instructional text that shows before the input has a value.\n * The pattern prop will be used to create a placeholder automatically if unused.\n */\n @Prop({ mutable: true }) placeholder: string;\n\n /**\n * Current value. Must be in IS0-8601 format: YYYY-MM-DD.\n */\n @Prop({ reflect: true, mutable: true }) value: string = '';\n\n @Watch('value')\n handleValueChange() {\n if (!this.directInput) this.inputValue = this.formatIsoDate(this.value);\n this.nanoChange.emit({ value: this.value, date: parseISODate(this.value) });\n this.directInput = false;\n }\n\n /**\n * When should the field perform validation\n */\n @Prop() validateOn?: 'dirty' | 'submit' | 'submitThenDirty' = 'submit';\n\n /**\n * Whether to show validation errors underneath input\n */\n @Prop({ reflect: true }) showInlineError = true;\n\n /**\n * The order of the date parts for entry and display.\n * e.g. dmy = dd mm yyyy\n */\n @Prop() dateOrder: 'dmy' | 'mdy' | 'ymd' | 'dym' = 'dmy';\n\n @Watch('dateOrder')\n handleDateOrderChange() {\n this.setDatePattern();\n }\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop() required = false;\n\n /**\n * Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\n * This setting can be used alone or together with the max property.\n */\n @Prop() min?: string;\n\n /**\n * Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\n * This setting can be used alone or together with the min property.\n */\n @Prop() max?: string;\n\n /**\n * Visually hide the label - but make it accessible.\n */\n @Prop() hideLabel?: boolean = false;\n\n @Watch('min')\n @Watch('max')\n @Watch('value')\n testDateValidity() {\n const valueDate = parseISODate(this.value);\n let min: Date,\n max: Date,\n error: string = '';\n\n if (this.value && valueDate) {\n if (this.min && (min = parseISODate(this.min)) && valueDate < min) {\n error =\n 'Date below the minimum: ' +\n min.toLocaleDateString(this.locale, this.helperTextFormat);\n } else if (\n this.max &&\n (max = parseISODate(this.max)) &&\n valueDate > max\n ) {\n error =\n 'Date above the maximum: ' +\n max.toLocaleDateString(this.locale, this.helperTextFormat);\n }\n }\n\n setTimeout(async (_) => {\n if (!this.input) return;\n const input = await this.input.getInputElement();\n if (this.value.length && !valueDate) error = 'Please enter a valid date';\n\n input.setCustomValidity(error);\n if (this.input.validateOn === 'dirty') {\n this.input.showError(error);\n }\n }, 100);\n }\n\n /**\n * Show a date picker. Date pickers are not very useful\n * if the potential input is too far in the distance or past\n * e.g. Birthdays\n */\n @Prop() picker: boolean = true;\n\n /**\n * Initial picker date. Will be to `value` if set. Will be today's date if nothing set.\n * Must be in IS0-8601 format: YYYY-MM-DD.\n */\n @Prop() initialPickerDate?: string;\n\n /**\n * Set / read whether the picker is currently open.\n */\n @Prop({ reflect: true, mutable: true }) pickerOpen: boolean = false;\n\n @Watch('pickerOpen')\n handlePickerOpenChange() {\n this.dropdown.open = this.pickerOpen;\n }\n\n /**\n * Close the picker after a date is selected\n */\n @Prop() closeAfterPicked: boolean = true;\n\n /** nano-dropdown config options you can pass to the nested dropdown component */\n @Prop()\n get dropDownConfig() {\n return this._dropDownConfig;\n }\n set dropDownConfig(ddc: Partial<Dropdown>) {\n this._dropDownConfig = { ...this._dropDownConfig, ...ddc };\n }\n private _dropDownConfig: Partial<Dropdown> = {};\n\n // Event emitters\n\n /**\n * Event emitted when a date is selected.\n */\n @Event() nanoChange: EventEmitter<DateInputChangeEventDetail>;\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 // Methods\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 await this.input.reportValidity(validateFirst);\n }\n\n /**\n * Sets focus on the child `nano-input`.\n */\n @Method()\n async setFocus() {\n if (this.input) this.input.setFocus();\n }\n\n /**\n * Returns the native `<input>` element used under the hood.\n */\n @Method()\n async getInputElement() {\n return await this.input.getInputElement();\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.input) return;\n this.input.showError(message);\n }\n\n // Event handlers\n\n private onInputChange = (\n e: CustomEvent & {\n target: HTMLInputElement;\n }\n ) => {\n e.stopPropagation();\n this.setValue(e.target.value);\n };\n\n private onInputValidate = (e: CustomEvent<ControlValidityEventDetail>) => {\n e.stopPropagation();\n this._invalid = !e.detail.isValid;\n this.nanoValidate.emit({\n isValid: e.detail.isValid,\n errorMessage: e.detail.errorMessage,\n originalEvent: e.detail.originalEvent,\n });\n };\n\n private onInputKey = () => {\n this.directInput = true;\n };\n\n private onDatePicked = (e: { detail: PickerChangeEvent }) => {\n this.directInput = false;\n this.value = e.detail.value;\n if (this.closeAfterPicked) this.pickerOpen = false;\n };\n\n private onDropdownHide = () => {\n setTimeout((_) => (this.pickerOpen = false), 200);\n setTimeout((_) => this.trigger.focus(), 50);\n };\n\n private onDropdownShow = () => {\n setTimeout((_) => {\n this.pickerEle.setFocus(false, this.pickerOpenSource === 'key');\n this.pickerOpenSource = null;\n }, 200);\n };\n\n private onTriggerClick = () => {\n if (!this.pickerOpen) {\n this.pickerOpen = true;\n this.pickerOpenSource = 'mouse';\n }\n };\n\n private onTriggerKey = (e: KeyboardEvent) => {\n if ([' ', 'Enter'].includes(e.key)) {\n if (!this.pickerOpen) {\n this.pickerOpen = true;\n this.pickerOpenSource = 'key';\n }\n }\n };\n\n private onCloseClick = () => {\n if (this.pickerOpen) this.pickerOpen = false;\n };\n\n private onCloseKeyDown = (e: KeyboardEvent) => {\n // this ensures focus is trapped inside the picker\n if (e.key === 'Tab' && e.shiftKey) {\n this.pickerEle.setFocus(true);\n e.preventDefault();\n }\n if (e.key === ' ' || e.key === 'Enter') {\n if (this.pickerOpen) this.pickerOpen = false;\n }\n };\n\n // Private logic\n\n // set the regexp input pattern and placeholder (if necessary)\n private setDatePattern() {\n let dateRegexOrdered = [];\n let dateStrOrd = [];\n Array.from(this.dateOrder).map((datepart, i) => {\n dateRegexOrdered.push(DateRegxps[datepart]);\n this.dateOrderIndeces[datepart] = i;\n dateStrOrd.push(datepart === 'y' ? 'yyyy' : datepart + datepart);\n });\n this.pattern = dateRegexOrdered.join('\\\\W+');\n\n if (!this.placeholder && this.placeholder !== 'false')\n this.placeholder = dateStrOrd.join(' ');\n }\n\n // set the public facing date string\n private formatIsoDate(isoDate: string) {\n let dateRegexOrdered = [];\n Array.from('ymd').map((datepart) =>\n dateRegexOrdered.push(DateRegxps[datepart])\n );\n const matches = isoDate.match(new RegExp(dateRegexOrdered.join('\\\\W+')));\n if (!matches) return '';\n\n let formatted = [];\n formatted[this.dateOrderIndeces.d] = matches[3];\n formatted[this.dateOrderIndeces.m] = matches[2];\n formatted[this.dateOrderIndeces.y] = matches[1];\n\n return formatted.join(' ');\n }\n\n // on manual user entry, set the value that will be sent with the form field\n private setValue(inputValue: string) {\n const matches = inputValue.match(new RegExp(this.pattern));\n\n // it's an invalid date, but we still need to set it\n if (!matches) {\n this.value = inputValue;\n return;\n }\n\n let date = createDate(\n matches[this.dateOrderIndeces.y + 1],\n matches[this.dateOrderIndeces.m + 1],\n matches[this.dateOrderIndeces.d + 1]\n );\n\n if (!date) {\n // last ditch attempt - see if the browser can get something\n date = new Date(inputValue);\n\n // it's definitely an invalid date, but set it anyway for validation messages\n if (!date) {\n this.value = inputValue;\n return;\n }\n }\n\n const dateStr = printISODate(date);\n this.value = dateStr;\n return dateStr;\n }\n\n connectedCallback() {\n this.setDatePattern();\n this.handleValueChange();\n }\n\n componentDidLoad() {\n if (!this.pickerCloseBtn || !this.picker) return;\n this.pickerEle.firstFocusEle = this.pickerCloseBtn;\n this.dropdown.tetherTo = this.trigger;\n setTimeout((_) => this.handlePickerOpenChange(), 300);\n }\n\n render() {\n this.locale =\n (navigator.languages as string[]) || navigator.language || undefined;\n\n this.dropDownConfig.placement =\n this.dropDownConfig.placement || 'bottom-end';\n\n if ((this.host.ownerDocument as Document).dir === 'rtl') {\n this.dropDownConfig.placement.replace('start', 'end');\n }\n if (this.trigger) this.dropDownConfig.tetherTo = this.trigger;\n\n const valueDate = parseISODate(this.value);\n const hasHelperSlot = !!this.host.querySelector('[slot=\"helper\"]');\n\n return (\n <Host class={{ ...createColorClasses(this.color) }}>\n <div class=\"date-field\">\n <nano-input\n class=\"date-field__input\"\n slot=\"trigger\"\n required={this.required || undefined}\n showInlineError={this.showInlineError}\n validateOn={this.validateOn}\n placeholder={\n this.placeholder !== 'false' ? this.placeholder : undefined\n }\n pattern={this.pattern}\n label={this.label}\n disabled={this.disabled || undefined}\n color={this.color || undefined}\n autofocus={this.autofocus || undefined}\n clearInput={this.clearInput || undefined}\n onNanoChange={this.onInputChange}\n onNanoInput={this.onInputKey}\n onNanoValidate={this.onInputValidate}\n name=\"\"\n form={this.form || undefined}\n size={this.size || undefined}\n readonly={this.readonly}\n value={this.inputValue}\n ref={(input) => (this.input = input)}\n floatLabel={this.floatLabel}\n hideLabel={this.hideLabel}\n inputmode={'numeric'}\n part=\"input\"\n >\n <slot name=\"start\" slot=\"start\" />\n <slot name=\"label\" />\n <slot name=\"end\" slot=\"end\" />\n {this.picker && [\n <button\n slot=\"end\"\n class=\"date-field__open\"\n type=\"button\"\n onKeyDown={this.onTriggerKey}\n onClick={this.onTriggerClick}\n ref={(trigger) => (this.trigger = trigger)}\n disabled={this.disabled || this.readonly}\n >\n <nano-icon name=\"light/calendar-alt\"></nano-icon>\n </button>,\n\n <nano-dropdown\n slot=\"end\"\n onNanoHide={this.onDropdownHide}\n onNanoShow={this.onDropdownShow}\n dialogTitle=\"Choose a date\"\n class=\"date-field__dropdown\"\n ref={(dropdown) => (this.dropdown = dropdown)}\n {...this.dropDownConfig}\n part=\"dropdown\"\n >\n <div>\n <div class=\"date-field__close-bar\">\n <button\n class=\"date-field__close\"\n type=\"button\"\n onMouseDown={this.onCloseClick}\n onKeyDown={this.onCloseKeyDown}\n ref={(pickerClose) => (this.pickerCloseBtn = pickerClose)}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n <span class=\"vhidden\">Close window</span>\n </button>\n </div>\n <nano-date-picker\n onNanoDatePicked={this.onDatePicked}\n min={this.min || undefined}\n max={this.max || undefined}\n is-modal={true}\n ref={(picker) => (this.pickerEle = picker)}\n localization={this.localization}\n selectedDate={this.value || this.initialPickerDate}\n firstDayOfWeek={this.firstDayOfWeek}\n color={this.color || undefined}\n part=\"date-picker\"\n ></nano-date-picker>\n </div>\n </nano-dropdown>,\n ]}\n {(hasHelperSlot || this.helperText || this.showInlineError) && (\n <span slot=\"helper\">\n <span class={{ vhidden: !!this.value.length }}>\n <slot name=\"helper\" />\n </span>\n {this.helperText && !!valueDate && (\n <span>\n {valueDate.toLocaleDateString(\n this.locale,\n this.helperTextFormat\n )}\n </span>\n )}\n </span>\n )}\n </nano-input>\n <input type=\"hidden\" value={this.value} name={this.name} />\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Web Components for Nanopore digital Web Apps
3
- */
4
- (function(){if(typeof window==="undefined"||typeof document==="undefined"||typeof HTMLElement==="undefined"){return}var e=false;try{var n=document.createElement("div");n.addEventListener("focus",(function(e){e.preventDefault();e.stopPropagation()}),true);n.focus(Object.defineProperty({},"preventScroll",{get:function(){if(navigator&&typeof navigator.userAgent!=="undefined"&&navigator.userAgent&&navigator.userAgent.match(/Edge\/1[7-8]/)){return e=false}e=true}}))}catch(r){}if(HTMLElement.prototype.nativeFocus===undefined&&!e){HTMLElement.prototype.nativeFocus=HTMLElement.prototype.focus;var t=function(e){var n=e.parentNode;var t=[];var o=document.scrollingElement||document.documentElement;while(n&&n!==o){if(n.offsetHeight<n.scrollHeight||n.offsetWidth<n.scrollWidth){t.push([n,n.scrollTop,n.scrollLeft])}n=n.parentNode}n=o;t.push([n,n.scrollTop,n.scrollLeft]);return t};var o=function(e){for(var n=0;n<e.length;n++){e[n][0].scrollTop=e[n][1];e[n][0].scrollLeft=e[n][2]}e=[]};var i=function(e){if(e&&e.preventScroll){var n=t(this);if(typeof setTimeout==="function"){var i=this;setTimeout((function(){i.nativeFocus();o(n)}),0)}else{this.nativeFocus();o(n)}}else{this.nativeFocus()}};HTMLElement.prototype.focus=i}})();if(!("IntersectionObserver"in window)||!("IntersectionObserverEntry"in window)||!("intersectionRatio"in window.IntersectionObserverEntry.prototype)){__sc_import_nano_components("./p-f9c7d961.js")}if(!("scrollBehavior"in document.documentElement.style)){setTimeout((e=>{__sc_import_nano_components("./p-ea2de992.js").then((e=>{document.documentElement.style.scrollBehavior="smooth"}))}),0)}else document.documentElement.style.scrollBehavior="smooth";{const e=document.documentElement;const n=()=>{if(!e.classList.contains("hydrated"))return false;document.documentElement.dispatchEvent(new CustomEvent("nanoComponentsReady"));return true};if(!n()){let e=new MutationObserver((t=>{if(n()){e.disconnect();e=null}}));e.observe(document.documentElement,{childList:false,subtree:false,attributes:true})}}
5
- //# sourceMappingURL=p-11a2dcce.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["node_modules/focus-options-polyfill/index.js","src/global/script/global.ts"],"names":["window","document","HTMLElement","supportsPreventScrollOption","focusElem","createElement","addEventListener","event","preventDefault","stopPropagation","focus","Object","defineProperty","get","navigator","userAgent","match","e","prototype","nativeFocus","undefined","calcScrollableElements","element","parent","parentNode","scrollableElements","rootScrollingElement","scrollingElement","documentElement","offsetHeight","scrollHeight","offsetWidth","scrollWidth","push","scrollTop","scrollLeft","restoreScrollPosition","i","length","patchedFocus","args","preventScroll","evScrollableElements","this","setTimeout","thisElem","IntersectionObserverEntry","__sc_import_nano_components","style","_","scrollBehavior","docEle","docIsReady","classList","contains","dispatchEvent","CustomEvent","mutationO","MutationObserver","disconnect","observe","childList","subtree","attributes"],"mappings":";;;CACA,WACE,UACSA,SAAW,oBACXC,WAAa,oBACbC,cAAgB,YACvB,CACA,OAGF,IAAIC,EAA8B,MAClC,IACE,IAAIC,EAAYH,SAASI,cAAc,OACvCD,EAAUE,iBACR,SACA,SAASC,GACPA,EAAMC,iBACND,EAAME,oBAER,MAEFL,EAAUM,MACRC,OAAOC,eAAe,GAAI,gBAAiB,CACzCC,IAAK,WAEH,GACEC,kBACOA,UAAUC,YAAc,aAC/BD,UAAUC,WACVD,UAAUC,UAAUC,MAAM,gBAAiB,CACzC,OAAOb,EAA8B,MAGzCA,EAA8B,SAIpC,MAAOc,IAET,GACEf,YAAYgB,UAAUC,cAAgBC,YACrCjB,EACD,CACAD,YAAYgB,UAAUC,YAAcjB,YAAYgB,UAAUR,MAE1D,IAAIW,EAAyB,SAASC,GACpC,IAAIC,EAASD,EAAQE,WACrB,IAAIC,EAAqB,GACzB,IAAIC,EACFzB,SAAS0B,kBAAoB1B,SAAS2B,gBAExC,MAAOL,GAAUA,IAAWG,EAAsB,CAChD,GACEH,EAAOM,aAAeN,EAAOO,cAC7BP,EAAOQ,YAAcR,EAAOS,YAC5B,CACAP,EAAmBQ,KAAK,CACtBV,EACAA,EAAOW,UACPX,EAAOY,aAGXZ,EAASA,EAAOC,WAElBD,EAASG,EACTD,EAAmBQ,KAAK,CAACV,EAAQA,EAAOW,UAAWX,EAAOY,aAE1D,OAAOV,GAGT,IAAIW,EAAwB,SAASX,GACnC,IAAK,IAAIY,EAAI,EAAGA,EAAIZ,EAAmBa,OAAQD,IAAK,CAClDZ,EAAmBY,GAAG,GAAGH,UAAYT,EAAmBY,GAAG,GAC3DZ,EAAmBY,GAAG,GAAGF,WAAaV,EAAmBY,GAAG,GAE9DZ,EAAqB,IAGvB,IAAIc,EAAe,SAASC,GAC1B,GAAIA,GAAQA,EAAKC,cAAe,CAC9B,IAAIC,EAAuBrB,EAAuBsB,MAClD,UAAWC,aAAe,WAAY,CACpC,IAAIC,EAAWF,KACfC,YAAW,WACTC,EAAS1B,cACTiB,EAAsBM,KACrB,OACE,CACLC,KAAKxB,cACLiB,EAAsBM,QAGrB,CACHC,KAAKxB,gBAITjB,YAAYgB,UAAUR,MAAQ6B,IAhGlC,GCOA,KACI,yBAAAvC,WACA,8BAA+BA,WAC/B,sBAAuBA,OAAO8C,0BAAA5B,WAAA,CAEhC6B,+CAOF,KAAM,mBAAA9C,SAAA2B,gBAAAoB,OAAA,CACJJ,YAAYK,IACVF,yDAGE9C,SAAS2B,gBAAgBoB,MAAME,eAAiB,cAEjD,QACEjD,SAAA2B,gBAAAoB,MAAAE,eAAA,SAIc,CACnB,MAAMC,EAASlD,SAAA2B,gBACf,MAAMwB,EAAa,KACjB,IAAKD,EAAOE,UAAUC,SAAA,YAAsB,OAAO,MACnDrD,SAAS2B,gBAAA2B,cAAA,IAAAC,YAAA,wBAGT,OAAO,MAGT,IAAAJ,IAAA,CACE,IAAIK,EAAY,IAAAC,kBAAAT,IACd,GAAIG,IAAc,CAChBK,EAAUE,aACVF,EAAY,SAIhBA,EAAAG,QAAA3D,SAAA2B,gBAAA,CACEiC,UAAW,MACXC,QAAS,MACTC,WAAY","sourcesContent":["// focus - focusOptions - preventScroll polyfill\n(function() {\n if (\n typeof window === \"undefined\" ||\n typeof document === \"undefined\" ||\n typeof HTMLElement === \"undefined\"\n ) {\n return;\n }\n\n var supportsPreventScrollOption = false;\n try {\n var focusElem = document.createElement(\"div\");\n focusElem.addEventListener(\n \"focus\",\n function(event) {\n event.preventDefault();\n event.stopPropagation();\n },\n true\n );\n focusElem.focus(\n Object.defineProperty({}, \"preventScroll\", {\n get: function() {\n // Edge v18 gives a false positive for supporting inputs\n if (\n navigator &&\n typeof navigator.userAgent !== 'undefined' &&\n navigator.userAgent &&\n navigator.userAgent.match(/Edge\\/1[7-8]/)) {\n return supportsPreventScrollOption = false\n }\n\n supportsPreventScrollOption = true;\n }\n })\n );\n } catch (e) {}\n\n if (\n HTMLElement.prototype.nativeFocus === undefined &&\n !supportsPreventScrollOption\n ) {\n HTMLElement.prototype.nativeFocus = HTMLElement.prototype.focus;\n\n var calcScrollableElements = function(element) {\n var parent = element.parentNode;\n var scrollableElements = [];\n var rootScrollingElement =\n document.scrollingElement || document.documentElement;\n\n while (parent && parent !== rootScrollingElement) {\n if (\n parent.offsetHeight < parent.scrollHeight ||\n parent.offsetWidth < parent.scrollWidth\n ) {\n scrollableElements.push([\n parent,\n parent.scrollTop,\n parent.scrollLeft\n ]);\n }\n parent = parent.parentNode;\n }\n parent = rootScrollingElement;\n scrollableElements.push([parent, parent.scrollTop, parent.scrollLeft]);\n\n return scrollableElements;\n };\n\n var restoreScrollPosition = function(scrollableElements) {\n for (var i = 0; i < scrollableElements.length; i++) {\n scrollableElements[i][0].scrollTop = scrollableElements[i][1];\n scrollableElements[i][0].scrollLeft = scrollableElements[i][2];\n }\n scrollableElements = [];\n };\n\n var patchedFocus = function(args) {\n if (args && args.preventScroll) {\n var evScrollableElements = calcScrollableElements(this);\n if (typeof setTimeout === 'function') {\n var thisElem = this;\n setTimeout(function () {\n thisElem.nativeFocus();\n restoreScrollPosition(evScrollableElements);\n }, 0);\n } else {\n this.nativeFocus();\n restoreScrollPosition(evScrollableElements);\n }\n }\n else {\n this.nativeFocus();\n }\n };\n\n HTMLElement.prototype.focus = patchedFocus;\n }\n})();\n","import { Build } from '@stencil/core';\n\n// focus options\n\nimport 'focus-options-polyfill';\n\n// Intersection observer\n\nif (\n !('IntersectionObserver' in window) ||\n !('IntersectionObserverEntry' in window) ||\n !('intersectionRatio' in window.IntersectionObserverEntry.prototype)\n) {\n import(\n /* webpackChunkName: 'polyfills-intersection-observer' */ 'intersection-observer'\n );\n}\n\n// scroll-behaviour\n\nif (!('scrollBehavior' in document.documentElement.style)) {\n setTimeout((_) => {\n import(\n /* webpackChunkName: 'polyfills-scroll-behavior' */ 'scroll-behavior-polyfill'\n ).then((_) => {\n document.documentElement.style.scrollBehavior = 'smooth';\n });\n }, 0);\n} else document.documentElement.style.scrollBehavior = 'smooth';\n\n// fire global 'ready' event when everything is hydrated\n\nif (Build.isBrowser) {\n const docEle = document.documentElement;\n const docIsReady = () => {\n if (!docEle.classList.contains('hydrated')) return false;\n document.documentElement.dispatchEvent(\n new CustomEvent('nanoComponentsReady')\n );\n return true;\n };\n\n if (!docIsReady()) {\n let mutationO = new MutationObserver((_) => {\n if (docIsReady()) {\n mutationO.disconnect();\n mutationO = null;\n }\n });\n\n mutationO.observe(document.documentElement, {\n childList: false,\n subtree: false,\n attributes: true,\n });\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/tabs/tab.scss?tag=nano-tab&encapsulation=shadow","src/components/tabs/tab.tsx"],"names":["tabCss","id","Tab","exports","class_1","hostRef","_this","this","tabId","panel","active","disabled","closable","handleCloseClick","nanoTabClose","emit","prototype","setFocus","tab","focus","preventScroll","removeFocus","blur","render","h","Host","host","part","ref","el","class","nanotab","nanotab--active","nanotab--disabled","nanotab--closable","role","aria-disabled","aria-selected","tabindex","label","iconName","onClick","tabIndex"],"mappings":";;;qKAAA,IAAMA,EAAS,gvGCYf,IAAIC,EAAK,MAWIC,EAAGC,EAAA,WAAA,WALhB,SAAAC,EAAAC,GAAA,IAAAC,EAAAC,0DAMUA,KAAAC,MAAQ,eAAcP,EAMLM,KAAAE,MAAQ,GAGRF,KAAAG,OAAS,MAGTH,KAAAI,SAAW,MAG5BJ,KAAAK,SAAW,MAiBXL,KAAAM,iBAAmB,WACzBP,EAAKQ,aAAaC,QAXdX,EAAAY,UAAAC,SAAN,gGACEV,KAAKW,IAAIC,MAAM,CAAEC,cAAe,wBAK5BhB,EAAAY,UAAAK,YAAN,gGACEd,KAAKW,IAAII,wBAOXlB,EAAAY,UAAAO,OAAA,WAAA,IAAAjB,EAAAC,KACE,OACEiB,EAACC,EAAI,CAACxB,GAAIM,KAAKmB,KAAKzB,IAAMM,KAAKC,OAC7BgB,EAAA,MAAA,CACEG,KAAK,OACLC,IAAK,SAACC,GAAE,OAAMvB,EAAKY,IAAMW,GACzBC,MAAO,CACLC,QAAS,KACTC,kBAAmBzB,KAAKG,OACxBuB,oBAAqB1B,KAAKI,SAC1BuB,oBAAqB3B,KAAKK,UAE5BuB,KAAK,MAAKC,gBACK7B,KAAKI,SAAW,OAAS,QAAO0B,gBAChC9B,KAAKG,OAAS,OAAS,QACtC4B,SAAU/B,KAAKI,WAAaJ,KAAKG,OAAS,KAAO,KAEjDc,EAAA,OAAA,MACCjB,KAAKK,UACJY,EAAA,mBAAA,CACEe,MAAM,iBACNC,SAAS,cACTV,MAAM,wBACNW,QAASlC,KAAKM,iBACd6B,UAAW,8HA7DT","sourcesContent":["@use 'sass:map';\n@use 'sass:list';\n\n@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/layers';\n\n/**\n * @prop --focus-shadow: Defaults to #{$control-focus-style};\n\n * @prop --padding: Defaults to .75rem 1rem on placement 'top' and 1rem on placement 'start';\n\n * @prop --bg-rgb: Defaults to #{$layer-bg-color-rgb};\n * @prop --active-bg: Defaults to rgba(var(--bg-rgb), 1);\n * @prop --disabled-bg-rgb: Defaults to var(--bg-rgb);\n * @prop --inactive-bg: Defaults to rgba(var(--bg-rgb), 0.7);\n\n * @prop --text-color: Defaults to #{map.get($colors, blue)};\n * @prop --disabled-text-color: Defaults to #{map.get($colors, darkgrey)};\n * @prop --active-text-color: Defaults to #{map.get($colors, darkblue)};\n\n * @prop --h-font-size: Defaults to .93em;\n * @prop --v-font-size: Defaults to .875em;\n * @prop --tab-spacing: Gap between tabs. Defaults to 1rem;\n * @prop --tab-divider-size: Defaults to 0;\n * @prop --tab-divider-color: Defaults to #{map.get($colors, lightblue)};\n */\n\n:host {\n --focus-shadow: #{$control-focus-style};\n --padding: 0.75rem 1rem;\n --bg-rgb: #{$layer-bg-color-rgb};\n --active-bg: rgba(var(--bg-rgb), 1);\n --inactive-bg: rgba(var(--bg-rgb), 0.7);\n --disabled-bg-rgb: var(--bg-rgb);\n --text-color: #{map.get($colors, blue)};\n --disabled-text-color: #{map.get($colors, darkgrey)};\n --active-text-color: #{map.get($colors, darkblue)};\n --h-font-size: 0.93em;\n --v-font-size: 0.875em;\n --tab-spacing: 0.5rem;\n --tab-divider-size: 0;\n --tab-divider-color: #{map.get($colors, lightblue)};\n --tab-indicator-size: 5px;\n\n display: inline-block;\n}\n\n:host([direction='vertical']) {\n --padding: 1rem;\n\n .nanotab {\n font-size: var(--v-font-size);\n\n &.nanotab--active {\n font-weight: 600;\n color: var(--active-text-color);\n }\n }\n}\n\n:host([direction='horizontal']) {\n .nanotab {\n font-size: var(--h-font-size);\n margin-top: var(--tab-indicator-size);\n border-right: solid var(--tab-divider-size) var(--tab-divider-color);\n\n &.nanotab--active {\n margin-top: 0;\n border-top: solid var(--tab-indicator-size) var(--tab-indicator-color);\n background: var(--active-bg);\n color: var(--active-text-color);\n }\n }\n}\n\n.nanotab {\n @include text-inherit();\n @include margin(null, var(--tab-spacing), null, null);\n\n padding: var(--padding);\n display: flex;\n height: 100%;\n width: auto;\n background: var(--inactive-bg);\n border-radius: var(--border-radius) var(--border-radius) 0 0;\n user-select: none;\n cursor: pointer;\n overflow: visible;\n white-space: nowrap;\n align-items: center;\n\n & ::slotted(*) {\n display: flex;\n align-items: center;\n }\n\n :host(:last-of-type) & {\n @include margin(null, 0, null, null);\n }\n\n &:hover:not(.tab--disabled) {\n text-shadow: 0 0 0.01px var(--text-color);\n }\n\n &:focus {\n outline: none;\n outline-style: none;\n box-shadow: none;\n border-color: transparent;\n }\n\n &:focus:not(.nanotab--disabled) {\n box-shadow: var(--focus-shadow) inset;\n }\n\n &--disabled {\n background: rgba(var(--disabled-bg-rgb), 1);\n opacity: 0.5;\n cursor: not-allowed;\n color: var(--disabled-text-color);\n }\n\n &__close-button {\n @include margin(null, null, null, #{$spacing-small});\n\n --padding: #{$spacing-xsmall} !important;\n }\n}\n","import {\n Component,\n Element,\n Host,\n ComponentInterface,\n Method,\n Prop,\n h,\n Event,\n EventEmitter,\n} from '@stencil/core';\n\nlet id = 0;\n\n/**\n * @slot - The tab's label.\n */\n\n@Component({\n tag: 'nano-tab',\n styleUrl: 'tab.scss',\n shadow: true,\n})\nexport class Tab implements ComponentInterface {\n private tabId = `nano-tab-${++id}`;\n private tab: HTMLElement;\n\n @Element() host: HTMLNanoTabElement;\n\n /** The name of the tab panel the tab will control. The panel must be located in the same tab group. */\n @Prop({ reflect: true }) panel = '';\n\n /** The active, selected tab. If none active, the first will automatically be selected. */\n @Prop({ reflect: true }) active = false;\n\n /** Set to true to draw the tab in an active state. */\n @Prop({ reflect: true }) disabled = false;\n\n /** When true, the tab will be rendered with a close icon. */\n @Prop() closable = false;\n\n /** Emitted when the tab is closable and the close button is activated. */\n @Event() nanoTabClose: EventEmitter;\n\n /** Sets focus to the tab. */\n @Method()\n async setFocus() {\n this.tab.focus({ preventScroll: true });\n }\n\n /** Removes focus from the tab. */\n @Method()\n async removeFocus() {\n this.tab.blur();\n }\n\n private handleCloseClick = () => {\n this.nanoTabClose.emit();\n };\n\n render() {\n return (\n <Host id={this.host.id || this.tabId}>\n <div\n part=\"base\"\n ref={(el) => (this.tab = el)}\n class={{\n nanotab: true,\n 'nanotab--active': this.active,\n 'nanotab--disabled': this.disabled,\n 'nanotab--closable': this.closable,\n }}\n role=\"tab\"\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-selected={this.active ? 'true' : 'false'}\n tabindex={this.disabled || !this.active ? '-1' : '0'}\n >\n <slot />\n {this.closable && (\n <nano-icon-button\n label=\"Close this tab\"\n iconName=\"light/times\"\n class=\"nanotab__close-button\"\n onClick={this.handleCloseClick}\n tabIndex={-1}\n />\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Web Components for Nanopore digital Web Apps
3
- */
4
- import{r as t,c as i,f as e,h as s,e as n,g as o}from"./p-ab5813a7.js";import{r as a}from"./p-289aa03f.js";import{d as r}from"./p-1da5f8df.js";import{g as l}from"./p-b619500f.js";import{g as h}from"./p-8971a867.js";import{g as d}from"./p-74a7fc4f.js";const c=":host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}:host{--padding-top:var(--nano-spacing-small, 8px);--padding-bottom:var(--nano-spacing-small, 8px);--padding-start:var(--nano-spacing-xlarge, 24px);--padding-end:var(--nano-spacing-xlarge, 24px);--font-size:0.8em;--color:#b5aea7;color:var(--color)}.dlist--isfiltered ::slotted(*:not(nano-option):not([slot=no-result]):not([slot=list-top]):not([slot=list-bottom])){display:none !important}.dlist__dropdown{--min-width:100%;--overflow:auto}.dlist__status{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.dlist__menu{--padding-top:inherit;--padding-bottom:inherit;--padding-start:inherit;--padding-end:inherit;--font-size:inherit}";function p(t){let i;if(t.id){i=document.querySelector(`label[for='${t.id}']`)}if(!i){i=t.closest("label")}return i}let f=0;let u=class{constructor(e){t(this,e);this.nanoSelect=i(this,"nanoSelect",7);this.nanoDeselect=i(this,"nanoDeselect",7);this.nanoOptionsUpdated=i(this,"nanoOptionsUpdated",7);this.isNanoInput=false;this.typeToSelect="";this.listId=`nano-datalist-${f++}`;this.isFiltered=false;this.shouldFocus=false;this._allOptEles=[];this.actvOptEles=[];this.canOpen=true;this.optionIds=[];this.selected=[];this._dropDownConfig={skidding:-1};this.options=[];this.type="input";this.open=false;this.disableFilter=false;this.disabled=false;this.optSelected=t=>{t.stopPropagation();this.changeInputValue(t.detail);a((()=>this.inputChange()));if(this.type==="select")this.shouldOpen=false};this.handleShow=async()=>{if(this.shouldFocus){this.shouldFocus=false;this.listBox.setFocus()}else if(this.type==="select")this.listBox.showActiveElement()};this.inputClick=()=>{this.shouldOpen=true;this.manageDropdownDisplay()};this.inputKeydown=t=>{const i=["Shift","ArrowRight","ArrowLeft","Escape","Enter","Tab"];if(i.includes(t.key)){if(t.key==="Tab")this.shouldOpen=false;return}if(this.type==="select"&&!["ArrowDown","ArrowUp"].includes(t.key)&&(t.key!==" "||this.typeToSelectTimeout)){if(t.key===" "||/^[a-z0-9]+$/i.test(t.key)){clearTimeout(this.typeToSelectTimeout);this.typeToSelectTimeout=window.setTimeout((()=>{this.typeToSelect="";this.typeToSelectTimeout=0}),750);this.typeToSelect+=t.key;this.setOptStartsWith()}return}this.shouldOpen=true;this.manageDropdownDisplay();if(["ArrowDown","ArrowUp"].includes(t.key))this.shouldFocus=true};this.optionKeyDown=t=>{const i=["Shift","ArrowUp","ArrowDown","Escape","Enter","Tab","Space","PageUp","PageDown","Home","End"," "];if(i.includes(t.key)){if(t.key==="Escape")this.connectedInput.focus();return}const e=["Delete","Backspace"];if(this.type!=="select"&&(!this.exactMatch||e.includes(t.key))){this.connectedInput.focus()}};this.inputChange=r(this.inputChange.bind(this),50)}get allOptEles(){return this._allOptEles}set allOptEles(t){var i;this._allOptEles=t;if((i=this.connectedInput)===null||i===void 0?void 0:i.value)return;t.forEach((t=>{if(t.selected&&!this.selected.includes(t.value)){this.changeInputValue(t)}}))}get dropDownConfig(){return this._dropDownConfig}set dropDownConfig(t){this._dropDownConfig=Object.assign(Object.assign({},this._dropDownConfig),t)}get activeOptions(){return this.allOptEles}openWatcher(){e((()=>{this.nanoDropdown.open=this.open;this.connectedInput.setAttribute("aria-expanded",this.open.toString())}))}async watchInputChange(){let t;if(t=this.host.closest("nano-input")){this.isNanoInput=true;this.connectedInput=await t.getInputElement()}else if(this.input&&typeof this.input==="string"&&(t=document.querySelector(this.input))){this.isNanoInput=false;this.connectedInput=t}else if(this.input instanceof HTMLElement){this.connectedInput=this.input}}manageSlotChangeListener(){var t;if(!this.host)return;if((!this.options||!this.options.length)&&!this.mo){{const t=this.mo=new MutationObserver((()=>this.processSlottedContent()));t.observe(this.host,{childList:true,subtree:true})}this.processSlottedContent();return}if((t=this.options)===null||t===void 0?void 0:t.length){if(!!this.mo){this.mo.disconnect();this.mo=undefined}e((()=>{var t;this.allOptEles=this.options.flatMap(((t,i)=>{if(t.value||t.label){const e=Object.assign(document.createElement("nano-option"),{label:t.label,value:t.value,ariaPosinset:i,ariaSetsize:this.options.length,selected:t.selected,id:this.listId+"-option-"+i,textContent:t.label?t.label:t.value,slot:"internal-opts"});this.host.append(e);return e}}));if(((t=this.connectedInput)===null||t===void 0?void 0:t.value.length)&&this.type!=="select"){this.inputChange()}else this.actvOptEles=[...this.allOptEles]}))}}watchTypeChange(){if(!this.connectedInput)return;let t={closeOnSelect:false};let i="both";let e=false;switch(this.type){case"selctMulti":break;case"select":i="list";e=true;t={closeOnSelect:true,placement:"center"};break}if(!this.isNanoInput){t.tetherTo=this.connectedInput}this.dropDownConfig=Object.assign(Object.assign({},this.dropDownConfig),t);this.connectedInput.setAttribute("aria-autocomplete",i);this.connectedInput.readOnly=e}manageInputEvents(t,i){var s;if(!!i){const t=i.closest("nano-input");if(t){t.removeEventListener("nanoChange",this.inputChange)}i.removeEventListener("change",this.inputChange);i.removeEventListener("click",this.inputClick);i.removeEventListener("keydown",this.inputKeydown);i.removeEventListener("input",this.inputChange);this.inputLabel=null;e((()=>{i.removeAttribute("role");i.removeAttribute("aria-expanded");i.removeAttribute("aria-controls");i.removeAttribute("aria-owns");i.removeAttribute("aria-haspopup");i.removeAttribute("aria-autocomplete");i.removeAttribute("autocomplete")}))}if(!!t){const i=t.closest("nano-input");if(i){i.addEventListener("nanoChange",this.inputChange)}t.addEventListener("change",this.inputChange);t.addEventListener("click",this.inputClick);t.addEventListener("keydown",this.inputKeydown);t.addEventListener("input",this.inputChange);this.listId=this.host.id||this.listId;this.inputLabel=((s=t===null||t===void 0?void 0:t.labels)===null||s===void 0?void 0:s.item(0))||p(t);e((()=>{this.host.id=this.listId;t.setAttribute("role","combobox");t.setAttribute("aria-expanded","false");t.setAttribute("aria-controls",this.listId);t.setAttribute("aria-owns",this.listId);t.setAttribute("aria-haspopup","listbox");t.setAttribute("autocomplete","off")}))}}watchActvOptChange(){var t;let i=0;const s=((t=this.connectedInput)===null||t===void 0?void 0:t.value)||"";const n=[];e((()=>{this.allOptEles.forEach(((t,e)=>{if(this.actvOptEles.includes(t)){i++;t.setAttribute("aria-posinset",i+"");t.setAttribute("aria-setsize",this.actvOptEles.length+"");t.hidden=false;this.isSelected(t,s)}else{t.removeAttribute("aria-posinset");t.removeAttribute("aria-setsize");t.hidden=true;t.selected=false}t.id=this.listId+"-option-"+e;n.push(t.id)}));this.optionIds=n}))}manageCanOpen(){if(this.actvOptEles.length||this.hasNoResult)this.canOpen=true;else this.canOpen=false}manageDropdownDisplay(){if(this.shouldOpen&&this.canOpen&&!this.disabled)this.open=true;if(!this.shouldOpen||!this.canOpen)this.open=false}fireActiveOptsEvent(){this.nanoOptionsUpdated.emit(this.actvOptEles)}isSelected(t,i){if(i===t.value||this.selected.includes(t.value)){t.selected=true}else t.selected=false}get dropwdownOpen(){if(!this.nanoDropdown||!this.open)return false;return true}get exactMatch(){return this.allOptEles.find((t=>this.connectedInput.value===t.value))}changeInputValue(t){var i;let e;if(this.selected.includes(t.value)){this.selected=this.selected.filter((i=>i!==t.value));e=this.nanoDeselect.emit(t)}else{this.selected=[...this.selected];e=this.nanoSelect.emit(t)}if(!e.defaultPrevented){if(this.connectedInput)this.connectedInput.value=t.value;const e=new window.Event("change");(i=this.connectedInput)===null||i===void 0?void 0:i.dispatchEvent(e)}}setOptStartsWith(){const t=t=>t.toLowerCase().substring(0,this.typeToSelect.length)===this.typeToSelect;const i=this.allOptEles.find((i=>i.value.trim().length>0&&!i.disabled&&(t(i.textContent)||t(i.value)||t(i.label)||t(i.filterMeta))));if(i)this.changeInputValue(i)}processSlottedContent(){a((()=>{var t;this.allOptEles=Array.from(this.host.querySelectorAll("nano-option"));this.hasNoResult=!!this.host.querySelector('[slot="no-result"]');if(((t=this.connectedInput)===null||t===void 0?void 0:t.value.length)&&this.type!=="select"){this.inputChange()}else this.actvOptEles=this.allOptEles}))}inputChange(){if(this.disableFilter){this.actvOptEles=this.allOptEles;return}const t=this.connectedInput.value;const i=t.trim().toLowerCase();let e=false;const s=[];const n=t=>t.toLowerCase().indexOf(i)>-1;this.allOptEles.forEach((i=>{if((t===i.value||t===i.label)&&this.type!=="selctMulti"){i.selected=true;e=true}else this.isSelected(i,t)}));this.allOptEles.forEach((t=>{if(!i.length||e){s.push(t)}else if(t.value.trim().length>0&&!t.disabled&&(n(t.textContent)||n(t.value)||n(t.label)||n(t.filterMeta))){s.push(t)}}));this.isFiltered=i.length&&!e;this.actvOptEles=s}connectedCallback(){this.watchInputChange()}componentDidLoad(){this.manageSlotChangeListener();this.openWatcher()}componentDidRender(){setTimeout((()=>{if(!this.connectedInput)console.warn("no `nano-input` found. `nano-datalist` should be nested within an `nano-input` or linked via `input` prop",this.host)}),500)}render(){return s(n,{role:"listbox","aria-owns":this.optionIds.join(" "),"aria-label":"Select options from the list below"},s("nano-dropdown",Object.assign({},this.dropDownConfig,{ref:t=>this.nanoDropdown=t,dialogTitle:"Select options from the list below",class:{dlist__dropdown:true,"dlist--isfiltered":this.isFiltered},onNanoAfterShow:this.handleShow,onNanoAfterHide:t=>this.open=false}),s("nano-menu",{hidden:!this.actvOptEles.length,type:"listbox",label:this.inputLabel?this.inputLabel.textContent:undefined,class:{dlist__menu:true,"dlist__menu--open":this.dropwdownOpen},tabIndex:-1,onNanoSelect:this.optSelected,onKeyDown:this.optionKeyDown,ref:t=>this.listBox=t},s("slot",{name:"list-top"}),!this.options.length&&s("slot",null),!!this.options.length&&s("slot",{name:"internal-opts"}),s("slot",{name:"list-bottom"})),s("nano-menu",{type:"listbox",label:"No results found",hidden:!!this.actvOptEles.length,class:{dlist__menu:true,"dlist__menu--open":this.dropwdownOpen}},s("slot",{name:"no-result"})),!!this.actvOptEles&&s("div",{"aria-live":"polite",role:"status",class:"dlist__status"},this.actvOptEles.length," result",this.actvOptEles.length>1?"s":""," available.")))}get host(){return o(this)}static get watchers(){return{open:["openWatcher"],input:["watchInputChange"],options:["manageSlotChangeListener"],type:["watchTypeChange"],connectedInput:["watchTypeChange","manageInputEvents"],selected:["watchActvOptChange"],actvOptEles:["watchActvOptChange","manageCanOpen","fireActiveOptsEvent"],hasNoResult:["manageCanOpen"],shouldOpen:["manageDropdownDisplay"],canOpen:["manageDropdownDisplay"]}}};u.style=c;const g=":host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}:host{--padding-start:var(--nano-spacing-medium, 16px);--padding-end:var(--nano-spacing-medium, 16px);--padding-top:var(--nano-spacing-small, 8px);--padding-bottom:var(--nano-spacing-small, 8px);--secondary-padding-top:0;--secondary-padding-bottom:0;--bg-color-hover:#f2f7f9;--bg-color-focus:#f2f7f9;--bg-color-selected:#f2f7f9;--color-hover:#007495;--color-selected:#007495;--color-focus:#007495;--focus-outline:none;--font-size:0.9em;display:block}.menu{font-size:var(--font-size, 0.9em);-ms-scroll-chaining:none;overscroll-behavior:none;min-width:var(--width);position:relative}.menu:focus{outline:none}::slotted(*:not(nano-nav-item):not(nano-option):not(hr):not(slot)){padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:block}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(*:not(nano-nav-item):not(nano-option):not(hr):not(slot)){padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}";const b=!!document.head.attachShadow;let m=class{constructor(e){t(this,e);this.nanoFocus=i(this,"nanoFocus",7);this.nanoBlur=i(this,"nanoBlur",7);this.nanoSelect=i(this,"nanoSelect",7);this.ignoreMouseEvents=false;this.typeToSelect="";this._hasFocus=false;this.type="menu";this.handleFocus=()=>{this.setActiveFocusItem(this.selectedItem||this.getItems[0]);this._hasFocus=true;this.nanoFocus.emit()};this.handleClick=t=>{const i=t.target;const e=i.closest("nano-nav-item");if(e&&!e.disabled){this.nanoSelect.emit(e)}};this.handleKeyDown=t=>{clearTimeout(this.ignoreMouseTimeout);this.ignoreMouseTimeout=setTimeout((()=>this.ignoreMouseEvents=false),500);this.ignoreMouseEvents=true;switch(t.key){case" ":if(this.activeItem)this.activeItem.click();break;case"ArrowDown":case"ArrowUp":case"PageDown":case"PageUp":case"Home":case"End":const i=this.getItems;const e=this.activeItem;let s=i.indexOf(e);if(i.length){t.preventDefault();if(t.key==="ArrowDown"){s++}else if(t.key==="ArrowUp"){s--}else if(t.key==="Home"||t.key==="PageUp"){s=0}else if(t.key==="End"||t.key==="PageDown"){s=i.length-1}if(s<0)s=i.length-1;if(s>i.length-1)s=0;this.setActiveFocusItem(i[s]);if(i[s])i[s].scrollIntoView({block:"nearest"});return}break}if(t.key===" "||/^[a-z0-9]+$/i.test(t.key)){clearTimeout(this.typeToSelectTimeout);this.typeToSelectTimeout=setTimeout((()=>this.typeToSelect=""),750);this.typeToSelect+=t.key;const i=this.getItems;for(const t of i){const i=t.shadowRoot.querySelector("slot:not([name])");const e=h(i).toLowerCase().trim();if(e.substring(0,this.typeToSelect.length)===this.typeToSelect){this.setActiveFocusItem(t);break}}}};this.handleMouseOver=t=>{const i=t.target;const e=i.closest("nano-nav-item")||i.closest("nano-option");if(e&&!this.ignoreMouseEvents){this.setActiveFocusItem(e)}}}get hasFocus(){return this._hasFocus}async setFocus(){var t;if((t=this.menu)===null||t===void 0?void 0:t.focus)this.menu.focus({preventScroll:true})}async removeFocus(){var t;if((t=this.menu)===null||t===void 0?void 0:t.blur)this.menu.blur()}async showActiveElement(){if(this.selectedItem)this.selectedItem.scrollIntoView({block:"nearest"})}async resetActiveItem(){this.getItems.filter((t=>t.tagName.toLowerCase()==="nano-option")).map((t=>t.setAttribute("tabindex","-1")))}get getItems(){let t;let i=this.el.querySelectorAll("nano-nav-item.secondary-open");if(i.length){const e=i[i.length-1];t=Array.from(e.querySelectorAll("nano-nav-item, nano-option"))}else{t=l(this.el,"nano-nav-item, nano-option","slot")}return t.filter((t=>!t.disabled&&!t.hidden))}get activeItem(){const t=d();return this.getItems.find((i=>i.getAttribute("tabindex")==="0"||i===t||i.classList.contains("has-focus")))}get selectedItem(){return this.getItems.find((t=>t.selected))}async setActiveFocusItem(t,i=true){const e=this.getItems;let s=!t||t.disabled?e.find((t=>t.selected))||e[0]:t;e.filter((t=>t.tagName.toLowerCase()==="nano-option")).map((t=>t.setAttribute("tabindex",t===s?"0":"-1")));if(!i)return;if(s){s.setFocus?s.setFocus():s.focus()}else this.menu.focus()}handleBlur(t){if(!this.hasFocus)return;const i=t;let e;if(i.key){if(i.key!=="Tab")return;e=d()&&d().closest(this.el.tagName.toLowerCase())===this.el}else e=!!t.composedPath().find((t=>t===this.el));if(!e){this.resetActiveItem();this._hasFocus=false;this.nanoBlur.emit()}}render(){return s(n,{class:{legacy:!b}},s("div",{onClick:this.handleClick,onKeyDown:this.handleKeyDown,onMouseOver:this.handleMouseOver,onFocus:this.handleFocus,"aria-label":this.label?this.label:undefined,role:this.type,ref:t=>this.menu=t,part:"base",class:{menu:true,["menu--"+this.type]:true,"menu--has-focus":this.hasFocus},tabIndex:-1},s("slot",null)))}get el(){return o(this)}};m.style=g;const v=":host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}:host{--bg:none;--bg-selected:var(--nano-select-opt-bg, #f2f7f9);--bg-focus:var(--nano-color-base, var(--nano-color-primary-tint, #2689a5));--bg-disabled:none;--color:var(--input-text-color, var(--nano-input-text-color, #4a4a4a));--color-selected:var(--nano-color-base, var(--nano-color-primary, #007495));--color-focus:var(--nano-color-contrast, var(--nano-color-primary-contrast, #fff));--color-disabled:#b5aea7;--opt-icon-size:1.6em;display:block;color:var(--color);overflow:hidden;font-size:14px;font-size:clamp(12px, .9em, 16px)}:host(:focus){outline:none}.option{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%;background:var(--bg);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.option{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(:focus) .option:not(.option--disabled),:host .option.option--selected{outline:none;background:var(--bg-selected);color:var(--color-selected)}:host(:focus) .option:not(.option--disabled){background:var(--bg-focus);color:var(--color-focus)}.option.option--disabled{outline:none;color:var(--color-disabled);cursor:not-allowed;background:var(--bg-disabled)}.option.option--novalue{font-style:italic;opacity:0.7}.option__label{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.option__start{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.option__start ::slotted(nano-icon){font-size:var(--opt-icon-size)}.option__start ::slotted(:last-child){margin-right:0.5em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.option__start ::slotted(:last-child){margin-right:unset;-webkit-margin-end:0.5em;margin-inline-end:0.5em}}.option__end{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.option__end ::slotted(nano-icon){font-size:var(--opt-icon-size)}.option__end ::slotted(:first-child){margin-left:0.5em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.option__end ::slotted(:first-child){margin-left:unset;-webkit-margin-start:0.5em;margin-inline-start:0.5em;}}.option__check{visibility:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;left:0.6em;top:calc(50% - 0.6em);-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:0.9em}.option--selected:not(.option--novalue) .option__check{visibility:visible}";let w=0;let x=class{constructor(e){t(this,e);this.nanoSelect=i(this,"nanoSelect",7);this.optId=`nano-option-${w++}`;this.hasFocus=false;this.value="";this.label="";this.selected=false;this.disabled=false;this.filterMeta="";this.handleClick=r(this.handleClick.bind(this),5)}valueChanged(){if(!this.value||!this.value.length)this.value=this.labelContent}labelChanged(){if(!this.label||!this.label.length)this.label=this.labelContent.length?this.labelContent:this.value}handleKeyDown(t){if(t.key!==" "&&t.key!=="Enter")return;t.preventDefault();this.nanoSelect.emit(this.host)}handleClick(){if(this.disabled)return;this.nanoSelect.emit(this.host)}get labelContent(){return l(this.host,"*:not([slot])",false).map((t=>t.textContent)).join(" ").trim()}componentWillLoad(){this.valueChanged();this.labelChanged()}render(){return s(n,{role:"option","aria-selected":this.selected?"true":"false","aria-disabled":this.disabled?"true":"false"},s("div",{onMouseDown:this.handleClick,id:this.optId,class:{option:true,"option--selected":this.selected,"option--disabled":this.disabled,"option--novalue":!this.value}},s("div",{part:"check-icon",class:"option__check"},s("slot",{name:"check-icon"},s("nano-icon",{name:"light/check","aria-hidden":"true"}))),s("div",{part:"start",class:"option__start"},s("slot",{name:"start"})),s("div",{part:"label",class:"option__label"},s("slot",null,this.label||this.value)),s("div",{part:"end",class:"option__end"},s("slot",{name:"end"}))))}get host(){return o(this)}static get watchers(){return{value:["valueChanged"],label:["labelChanged"]}}};x.style=v;export{u as nano_datalist,m as nano_menu,x as nano_option};
5
- //# sourceMappingURL=p-1ca46443.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/datalist/datalist.scss?tag=nano-datalist&encapsulation=shadow","src/components/datalist/datalist.tsx","src/components/menu/menu.scss?tag=nano-menu&encapsulation=shadow","src/components/menu/menu.tsx","src/components/option/option.scss?tag=nano-option&encapsulation=shadow","src/components/option/option.tsx"],"names":["datalistCss","findLabel","formCtrl","foundLabel","id","document","querySelector","closest","listIds","DataList","[object Object]","hostRef","this","isNanoInput","typeToSelect","listId","isFiltered","shouldFocus","_allOptEles","actvOptEles","canOpen","optionIds","selected","_dropDownConfig","skidding","options","type","open","disableFilter","disabled","optSelected","e","stopPropagation","changeInputValue","detail","raf","inputChange","shouldOpen","handleShow","async","listBox","setFocus","showActiveElement","inputClick","manageDropdownDisplay","inputKeydown","ignoreKeys","includes","key","typeToSelectTimeout","test","clearTimeout","window","setTimeout","setOptStartsWith","optionKeyDown","connectedInput","focus","deleteKeys","exactMatch","debounce","bind","allOptEles","opts","_a","value","forEach","opt","dropDownConfig","ddc","Object","assign","activeOptions","writeTask","nanoDropdown","setAttribute","toString","nanoInput","host","getInputElement","input","HTMLElement","length","mo","MutationObserver","processSlottedContent","observe","childList","subtree","disconnect","undefined","flatMap","option","i","label","createElement","ariaPosinset","ariaSetsize","textContent","slot","append","dwConfig","closeOnSelect","autocompleteType","readonly","placement","tetherTo","readOnly","newInput","oldInput","removeEventListener","inputLabel","removeAttribute","addEventListener","labels","item","c","val","optIds","hidden","isSelected","push","hasNoResult","nanoOptionsUpdated","emit","dropwdownOpen","find","nanoSelected","filter","nanoDeselect","nanoSelect","defaultPrevented","event","Event","dispatchEvent","attrFind","toFind","toLowerCase","substring","foundEle","trim","filterMeta","Array","from","querySelectorAll","valStr","activeEles","indexOf","watchInputChange","manageSlotChangeListener","openWatcher","console","warn","h","Host","role","aria-owns","join","aria-label","ref","el","dialogTitle","class","dlist__dropdown","dlist--isfiltered","onNanoAfterShow","onNanoAfterHide","_","dlist__menu","dlist__menu--open","tabIndex","onNanoSelect","onKeyDown","name","aria-live","menuCss","CANSHADOW","head","attachShadow","Menu","ignoreMouseEvents","_hasFocus","handleFocus","setActiveFocusItem","selectedItem","getItems","nanoFocus","handleClick","target","handleKeyDown","ignoreMouseTimeout","activeItem","click","items","index","preventDefault","scrollIntoView","block","shadowRoot","getTextContent","handleMouseOver","hasFocus","menu","preventScroll","blur","tagName","map","opened","ctx","getDirectChildren","activeElement","getActiveElement","getAttribute","classList","contains","kev","found","composedPath","resetActiveItem","nanoBlur","legacy","onClick","onMouseOver","onFocus","part","menu--has-focus","optionCss","Option","optId","labelContent","valueChanged","labelChanged","aria-selected","aria-disabled","onMouseDown","option--selected","option--disabled","option--novalue","aria-hidden"],"mappings":"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","sourcesContent":["@use 'sass:map';\n@use 'sass:list';\n\n@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/layers';\n\n:host {\n /**\n * @prop --padding-top: for all nested `nano-option` elements. Defaults to #{$spacing-small};\n * @prop --padding-bottom: for all nested `nano-option` elements. Defaults to #{$spacing-small};\n * @prop --padding-start: for all nested `nano-option` elements. Defaults to #{$spacing-xlarge};\n * @prop --padding-end: for all nested `nano-option` elements. Defaults to #{$spacing-xlarge};\n * @prop --font-size: for all nested `nano-option` elements. Defaults to .8em;\n * @prop --color: default text color of content other than `nano-option`. Defaults to #{map.get($colors, palegrey)};\n */\n\n --padding-top: #{$spacing-small};\n --padding-bottom: #{$spacing-small};\n --padding-start: #{$spacing-xlarge};\n --padding-end: #{$spacing-xlarge};\n --font-size: 0.8em;\n --color: #{map.get($colors, palegrey)};\n\n color: var(--color);\n}\n\n.dlist {\n &--isfiltered {\n ::slotted(*:not(nano-option):not([slot='no-result']):not([slot='list-top']):not([slot='list-bottom'])) {\n display: none !important;\n }\n }\n\n &__dropdown {\n --min-width: 100%;\n --overflow: auto;\n }\n\n &__status {\n @include visually-hide();\n }\n\n &__menu {\n --padding-top: inherit;\n --padding-bottom: inherit;\n --padding-start: inherit;\n --padding-end: inherit;\n --font-size: inherit;\n }\n}\n","import {\n Component,\n ComponentInterface,\n h,\n Host,\n Element,\n State,\n Watch,\n Prop,\n Event,\n EventEmitter,\n writeTask,\n Build,\n} from '@stencil/core';\nimport { debounce, raf } from '../../utils';\nimport type { Dropdown } from '../dropdown/dropdown';\nimport type { OptionInterface } from '../../interface';\n\nfunction findLabel(formCtrl: Element) {\n let foundLabel: HTMLLabelElement;\n\n if (formCtrl.id) {\n foundLabel = document.querySelector(`label[for='${formCtrl.id}']`);\n }\n if (!foundLabel) {\n foundLabel = formCtrl.closest('label');\n }\n return foundLabel;\n}\n\nlet listIds = 0;\n\n/**\n * `nano-datalist` a visually consistent and more flexible replacement for a native\n * [datalist](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datalist). Can be nested within a `nano-input`\n * or linked to any input control via the `input` prop. Is used internally within `nano-select`.\n * Options can be defined declaratively by nesting `<nano-option>` elements or imperatively using the `options` prop\n *\n * @slot - use `<nano-option>` elements for more complex html. Alternatively use the `options` prop\n * @slot list-top - shows at the top of the list when there are options present\n * @slot list-bottom - shows at the bottom of the list when there are options present\n * @slot no-result - shown when there are no results otherwise nothing will be shown\n */\n@Component({\n tag: 'nano-datalist',\n styleUrl: 'datalist.scss',\n shadow: true,\n})\nexport class DataList implements ComponentInterface {\n // Private State\n\n private isNanoInput = false;\n private typeToSelect = '';\n private typeToSelectTimeout: number;\n private nanoDropdown: HTMLNanoDropdownElement;\n private listBox: HTMLNanoMenuElement;\n private mo?: MutationObserver;\n private listId = `nano-datalist-${listIds++}`;\n private isFiltered = false;\n private shouldFocus = false;\n // all potential option eles. Set via slot or `options` prop.\n // Some may get hidden due to filtering\n private get allOptEles() {\n return this._allOptEles;\n }\n private set allOptEles(opts) {\n // when allOptEles are initially set (on slot change / options) -\n // add options to 'selected' and fire selected event *if*\n // value isn't set on the input\n this._allOptEles = opts;\n if (this.connectedInput?.value) return;\n\n opts.forEach((opt) => {\n if (opt.selected && !this.selected.includes(opt.value)) {\n this.changeInputValue(opt);\n }\n });\n }\n private _allOptEles: HTMLNanoOptionElement[] = [];\n\n @Element() host: HTMLNanoDatalistElement;\n\n // active option eles that are not hidden.\n @State() actvOptEles: HTMLNanoOptionElement[] = [];\n @State() connectedInput: HTMLInputElement | HTMLTextAreaElement;\n @State() inputLabel: HTMLLabelElement;\n @State() hasNoResult: boolean;\n @State() shouldOpen: boolean;\n @State() canOpen: boolean = true;\n @State() optionIds: string[] = [];\n\n constructor() {\n this.inputChange = debounce(this.inputChange.bind(this), 50);\n }\n\n // Public API\n\n /** By default, items in the list will appear 'selected' when the value in the linked input control matches.\n * However you can add other selected options via the the selected prop. */\n @Prop({ mutable: true }) selected: string[] = [];\n\n /** nano-dropdown config options you can pass to the nested dropdown component */\n @Prop()\n get dropDownConfig() {\n return this._dropDownConfig;\n }\n set dropDownConfig(ddc: Partial<Dropdown>) {\n this._dropDownConfig = { ...this._dropDownConfig, ...ddc };\n }\n private _dropDownConfig: Partial<Dropdown> = {\n skidding: -1,\n };\n\n /** Provide an option list.\n * Options can be defined declaratively by nesting `<nano-option>` elements or imperatively using this prop */\n @Prop() options?: OptionInterface[] = [];\n\n /** A selector to a HTMLInputElement */\n @Prop() input?: string | HTMLInputElement;\n\n /** Tweaks the datalist behaviour and linked control semantics and behaviour.\n * e.g. 'select' will make the linked input control `readonly`.\n */\n @Prop() type: 'select' | 'selctMulti' | 'input' = 'input';\n\n /** return all the active options currently within the datalist. Can be useful for validation */\n @Prop()\n get activeOptions() {\n return this.allOptEles;\n }\n\n /** Force datalist open */\n @Prop({ mutable: true }) open: boolean = false;\n\n @Watch('open')\n openWatcher() {\n writeTask(() => {\n this.nanoDropdown.open = this.open;\n this.connectedInput.setAttribute('aria-expanded', this.open.toString());\n });\n }\n\n /** Use this option to disable to default filtering. This is useful if filtering happens\n * externally via another method (e.g. via ajax)\n */\n @Prop() disableFilter = false;\n\n /** Activate / deactivate the datalist control */\n @Prop() disabled = false;\n\n // State change watchers\n\n @Watch('input')\n async watchInputChange() {\n let nanoInput;\n if ((nanoInput = this.host.closest('nano-input'))) {\n this.isNanoInput = true;\n this.connectedInput = await nanoInput.getInputElement();\n } else if (\n this.input &&\n typeof this.input === 'string' &&\n (nanoInput = document.querySelector(this.input))\n ) {\n this.isNanoInput = false;\n this.connectedInput = nanoInput;\n } else if (this.input instanceof HTMLElement) {\n this.connectedInput = this.input;\n }\n }\n\n @Watch('options')\n manageSlotChangeListener() {\n if (!this.host) return;\n\n // we're not using `options` - setup new MO\n if ((!this.options || !this.options.length) && !this.mo) {\n if (Build.isBrowser) {\n const mo = (this.mo = new MutationObserver(() =>\n this.processSlottedContent()\n ));\n mo.observe(this.host, { childList: true, subtree: true });\n }\n this.processSlottedContent();\n return;\n }\n\n // we're using `options` - trash current MO\n if (this.options?.length) {\n if (!!this.mo) {\n this.mo.disconnect();\n this.mo = undefined;\n }\n\n // add imperative `options`\n writeTask(() => {\n this.allOptEles = this.options.flatMap((option, i) => {\n if (option.value || option.label) {\n const opt = Object.assign(document.createElement('nano-option'), {\n label: option.label,\n value: option.value,\n ariaPosinset: i,\n ariaSetsize: this.options.length,\n selected: option.selected,\n id: this.listId + '-option-' + i,\n textContent: option.label ? option.label : option.value,\n slot: 'internal-opts',\n });\n this.host.append(opt);\n return opt;\n }\n });\n\n if (this.connectedInput?.value.length && this.type !== 'select') {\n this.inputChange();\n } else this.actvOptEles = [...this.allOptEles];\n });\n }\n // forceUpdate(this.host);\n }\n\n @Watch('type')\n @Watch('connectedInput')\n watchTypeChange() {\n if (!this.connectedInput) return;\n\n let dwConfig: Partial<Dropdown> = { closeOnSelect: false };\n let autocompleteType: 'list' | 'both' = 'both';\n let readonly = false;\n\n switch (this.type) {\n case 'selctMulti':\n // dwConfig.closeOnSelect = false;\n break;\n case 'select':\n autocompleteType = 'list';\n readonly = true;\n dwConfig = { closeOnSelect: true, placement: 'center' };\n break;\n }\n\n if (!this.isNanoInput) {\n dwConfig.tetherTo = this.connectedInput;\n }\n\n this.dropDownConfig = { ...this.dropDownConfig, ...dwConfig };\n this.connectedInput.setAttribute('aria-autocomplete', autocompleteType);\n this.connectedInput.readOnly = readonly;\n }\n\n @Watch('connectedInput')\n manageInputEvents(newInput?: HTMLInputElement, oldInput?: HTMLInputElement) {\n if (!!oldInput) {\n const nanoInput = oldInput.closest('nano-input');\n if (nanoInput) {\n nanoInput.removeEventListener('nanoChange', this.inputChange);\n }\n oldInput.removeEventListener('change', this.inputChange);\n oldInput.removeEventListener('click', this.inputClick);\n oldInput.removeEventListener('keydown', this.inputKeydown);\n oldInput.removeEventListener('input', this.inputChange);\n\n this.inputLabel = null;\n\n writeTask(() => {\n oldInput.removeAttribute('role');\n oldInput.removeAttribute('aria-expanded');\n oldInput.removeAttribute('aria-controls');\n oldInput.removeAttribute('aria-owns');\n oldInput.removeAttribute('aria-haspopup');\n oldInput.removeAttribute('aria-autocomplete');\n oldInput.removeAttribute('autocomplete');\n });\n }\n if (!!newInput) {\n const nanoInput = newInput.closest('nano-input');\n if (nanoInput) {\n nanoInput.addEventListener('nanoChange', this.inputChange);\n }\n newInput.addEventListener('change', this.inputChange);\n newInput.addEventListener('click', this.inputClick);\n newInput.addEventListener('keydown', this.inputKeydown);\n newInput.addEventListener('input', this.inputChange);\n this.listId = this.host.id || this.listId;\n\n this.inputLabel = newInput?.labels?.item(0) || findLabel(newInput);\n\n writeTask(() => {\n this.host.id = this.listId;\n newInput.setAttribute('role', 'combobox');\n newInput.setAttribute('aria-expanded', 'false');\n newInput.setAttribute('aria-controls', this.listId);\n newInput.setAttribute('aria-owns', this.listId);\n newInput.setAttribute('aria-haspopup', 'listbox');\n newInput.setAttribute('autocomplete', 'off');\n });\n }\n }\n\n @Watch('selected')\n @Watch('actvOptEles')\n watchActvOptChange() {\n let c = 0;\n const val = this.connectedInput?.value || '';\n const optIds = [];\n\n writeTask(() => {\n this.allOptEles.forEach((opt, i) => {\n if (this.actvOptEles.includes(opt)) {\n c++;\n opt.setAttribute('aria-posinset', c + '');\n opt.setAttribute('aria-setsize', this.actvOptEles.length + '');\n opt.hidden = false;\n this.isSelected(opt, val);\n } else {\n opt.removeAttribute('aria-posinset');\n opt.removeAttribute('aria-setsize');\n opt.hidden = true;\n opt.selected = false;\n }\n opt.id = this.listId + '-option-' + i;\n optIds.push(opt.id);\n });\n this.optionIds = optIds;\n });\n }\n\n @Watch('actvOptEles')\n @Watch('hasNoResult')\n manageCanOpen() {\n if (this.actvOptEles.length || this.hasNoResult) this.canOpen = true;\n else this.canOpen = false;\n }\n\n /**\n * Opens the dropdown if it can, it should and there are items to display.\n */\n @Watch('shouldOpen')\n @Watch('canOpen')\n manageDropdownDisplay() {\n if (this.shouldOpen && this.canOpen && !this.disabled) this.open = true;\n if (!this.shouldOpen || !this.canOpen) this.open = false;\n }\n\n @Watch('actvOptEles')\n fireActiveOptsEvent() {\n this.nanoOptionsUpdated.emit(this.actvOptEles);\n }\n\n // Events\n\n /** Fired when an item is selected. */\n @Event() nanoSelect: EventEmitter<HTMLNanoOptionElement>;\n\n /** Fired when a currently selected item is reselected. */\n @Event() nanoDeselect: EventEmitter<HTMLNanoOptionElement>;\n\n /** Fired when active options change */\n @Event() nanoOptionsUpdated: EventEmitter<HTMLNanoOptionElement[]>;\n\n // Private logic\n\n private isSelected(opt: HTMLNanoOptionElement, val: string) {\n if (val === opt.value || this.selected.includes(opt.value)) {\n opt.selected = true;\n } else opt.selected = false;\n }\n\n private get dropwdownOpen() {\n if (!this.nanoDropdown || !this.open) return false;\n return true;\n }\n\n private get exactMatch() {\n return this.allOptEles.find(\n (opt) => this.connectedInput.value === opt.value\n );\n }\n\n /** reflect value back to the connected input unless the event is cancelled */\n private changeInputValue(opt: HTMLNanoOptionElement) {\n let nanoSelected;\n\n if (this.selected.includes(opt.value)) {\n // deselect option\n this.selected = this.selected.filter((val) => val !== opt.value);\n nanoSelected = this.nanoDeselect.emit(opt);\n } else {\n // select new option\n this.selected = [...this.selected];\n nanoSelected = this.nanoSelect.emit(opt);\n }\n\n if (!nanoSelected.defaultPrevented) {\n if (this.connectedInput) this.connectedInput.value = opt.value;\n\n const event = new window.Event('change');\n this.connectedInput?.dispatchEvent(event);\n }\n }\n\n // a new option has been picked\n private optSelected = (e: CustomEvent<HTMLNanoOptionElement>) => {\n e.stopPropagation();\n this.changeInputValue(e.detail);\n raf(() => this.inputChange());\n\n if (this.type === 'select') this.shouldOpen = false;\n };\n\n // this is for type=\"select\" only.\n // Filter options that start with text - aggregates letters (as opposed to getting the value from input)\n private setOptStartsWith() {\n const attrFind = (toFind: string) =>\n toFind.toLowerCase().substring(0, this.typeToSelect.length) ===\n this.typeToSelect;\n\n const foundEle = this.allOptEles.find(\n (opt) =>\n opt.value.trim().length > 0 &&\n !opt.disabled &&\n (attrFind(opt.textContent) ||\n attrFind(opt.value) ||\n attrFind(opt.label) ||\n attrFind(opt.filterMeta))\n );\n if (foundEle) this.changeInputValue(foundEle);\n }\n\n // Event handlers\n\n private processSlottedContent() {\n raf(() => {\n this.allOptEles = Array.from(this.host.querySelectorAll('nano-option'));\n this.hasNoResult = !!this.host.querySelector('[slot=\"no-result\"]');\n\n if (this.connectedInput?.value.length && this.type !== 'select') {\n this.inputChange();\n } else this.actvOptEles = this.allOptEles;\n });\n }\n\n // sets focus immediately on open when 'select' - mirroring native behaviour\n private handleShow = async () => {\n if (this.shouldFocus) {\n this.shouldFocus = false;\n this.listBox.setFocus();\n } else if (this.type === 'select') this.listBox.showActiveElement();\n };\n\n // any changes to the connected input value will filter the list of active options\n private inputChange() {\n if (this.disableFilter) {\n this.actvOptEles = this.allOptEles;\n return;\n }\n\n const val = this.connectedInput.value;\n const valStr = val.trim().toLowerCase();\n\n let exactMatch = false;\n const activeEles = [];\n const attrFind = (toFind: string) =>\n toFind.toLowerCase().indexOf(valStr) > -1;\n\n this.allOptEles.forEach((opt) => {\n if (\n (val === opt.value || val === opt.label) &&\n this.type !== 'selctMulti'\n ) {\n opt.selected = true;\n exactMatch = true;\n } else this.isSelected(opt, val);\n });\n\n this.allOptEles.forEach((opt) => {\n if (!valStr.length || exactMatch) {\n activeEles.push(opt);\n } else if (\n opt.value.trim().length > 0 &&\n !opt.disabled &&\n (attrFind(opt.textContent) ||\n attrFind(opt.value) ||\n attrFind(opt.label) ||\n attrFind(opt.filterMeta))\n ) {\n activeEles.push(opt);\n }\n });\n\n this.isFiltered = valStr.length && !exactMatch;\n this.actvOptEles = activeEles;\n }\n\n private inputClick = () => {\n this.shouldOpen = true;\n // open dropdown if possible\n this.manageDropdownDisplay();\n };\n\n private inputKeydown = (e: KeyboardEvent) => {\n const ignoreKeys = [\n 'Shift',\n 'ArrowRight',\n 'ArrowLeft',\n 'Escape',\n 'Enter',\n 'Tab',\n ];\n if (ignoreKeys.includes(e.key)) {\n if (e.key === 'Tab') this.shouldOpen = false;\n return;\n }\n\n // When select, mirror native select behaviour. Search on closed list\n if (\n this.type === 'select' &&\n !['ArrowDown', 'ArrowUp'].includes(e.key) &&\n (e.key !== ' ' || this.typeToSelectTimeout)\n ) {\n if (e.key === ' ' || /^[a-z0-9]+$/i.test(e.key)) {\n clearTimeout(this.typeToSelectTimeout);\n this.typeToSelectTimeout = window.setTimeout(() => {\n this.typeToSelect = '';\n this.typeToSelectTimeout = 0;\n }, 750);\n this.typeToSelect += e.key;\n this.setOptStartsWith();\n }\n return;\n }\n\n this.shouldOpen = true;\n // open dropdown if possible\n this.manageDropdownDisplay();\n if (['ArrowDown', 'ArrowUp'].includes(e.key)) this.shouldFocus = true;\n };\n\n // handles key down on options. Either 'picks'\n // an option or passes event back to input for search / filter\n private optionKeyDown = (\n e: KeyboardEvent & { target: HTMLNanoOptionElement }\n ) => {\n const ignoreKeys = [\n 'Shift',\n 'ArrowUp',\n 'ArrowDown',\n 'Escape',\n 'Enter',\n 'Tab',\n 'Space',\n 'PageUp',\n 'PageDown',\n 'Home',\n 'End',\n ' ',\n ];\n if (ignoreKeys.includes(e.key)) {\n if (e.key === 'Escape') this.connectedInput.focus();\n return;\n }\n\n const deleteKeys = ['Delete', 'Backspace'];\n // this passes whatever's typed back to our input control\n if (\n this.type !== 'select' &&\n (!this.exactMatch || deleteKeys.includes(e.key))\n ) {\n this.connectedInput.focus();\n }\n };\n\n // Component lifecycle\n\n connectedCallback() {\n this.watchInputChange();\n }\n\n componentDidLoad() {\n this.manageSlotChangeListener();\n this.openWatcher();\n }\n\n componentDidRender(): void {\n setTimeout(() => {\n if (!this.connectedInput)\n console.warn(\n 'no `nano-input` found. `nano-datalist` should be nested within an `nano-input` or linked via `input` prop',\n this.host\n );\n }, 500);\n }\n\n render() {\n return (\n <Host\n role=\"listbox\"\n aria-owns={this.optionIds.join(' ')}\n aria-label=\"Select options from the list below\"\n >\n <nano-dropdown\n {...this.dropDownConfig}\n ref={(el) => (this.nanoDropdown = el)}\n dialogTitle=\"Select options from the list below\"\n class={{\n dlist__dropdown: true,\n 'dlist--isfiltered': this.isFiltered,\n }}\n onNanoAfterShow={this.handleShow}\n onNanoAfterHide={(_) => (this.open = false)}\n >\n <nano-menu\n hidden={!this.actvOptEles.length}\n type=\"listbox\"\n label={this.inputLabel ? this.inputLabel.textContent : undefined}\n class={{\n dlist__menu: true,\n 'dlist__menu--open': this.dropwdownOpen,\n }}\n tabIndex={-1}\n onNanoSelect={this.optSelected}\n onKeyDown={this.optionKeyDown}\n ref={(el) => (this.listBox = el)}\n >\n <slot name=\"list-top\" />\n {!this.options.length && <slot />}\n {!!this.options.length && <slot name=\"internal-opts\" />}\n <slot name=\"list-bottom\" />\n </nano-menu>\n <nano-menu\n type=\"listbox\"\n label=\"No results found\"\n hidden={!!this.actvOptEles.length}\n class={{\n dlist__menu: true,\n 'dlist__menu--open': this.dropwdownOpen,\n }}\n >\n <slot name=\"no-result\" />\n </nano-menu>\n {!!this.actvOptEles && (\n <div aria-live=\"polite\" role=\"status\" class=\"dlist__status\">\n {this.actvOptEles.length} result\n {this.actvOptEles.length > 1 ? 's' : ''} available.\n </div>\n )}\n </nano-dropdown>\n </Host>\n );\n }\n}\n","@use 'sass:map';\n@use 'sass:list';\n\n@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/colours';\n@import '../../global/style/nano-theme/layers';\n\n:host {\n /**\n * @prop --padding-start: padding at the start of nav-items (left r2l / right l2r). Defaults to '10px'\n * @prop --padding-end: padding at the end of nav-items (right r2l / left l2r). Defaults to '10px'\n * @prop --padding-top: padding at the top of nav-items. Defaults to '10px'\n * @prop --padding-bottom: padding at the bottom of nav-items. Defaults to '10px'\n\n * @prop --secondary-padding-top: padding at the top of nested nav-items. Defaults to 0\n * @prop --secondary-padding-bottom: padding at the bottom of nested nav-items. Defaults to 0\n\n * @prop --bg-color-hover: bg hover color of nav-items. Defaults to #{map.get($colors, blue--faded)};\n * @prop --bg-color-focus: bg focus color of nav-items. Defaults to #{map.get($colors, blue--faded)};\n * @prop --bg-color-selected: bg selected color of nav-items. Defaults to #{map.get($colors, blue--faded)};\n\n * @prop --color-hover: text hover color of nav-items. Defaults to #{map.get($colors, blue)}\n * @prop --color-selected: text selected color of nav-items. Defaults to #{map.get($colors, blue)}\n * @prop --color-focus: text focus color of nav-items. Defaults to #{map.get($colors, blue)}\n\n * @prop --focus-outline: the focus style of nav-items. Defaults to 'none'\n * @prop --font-size: default font-size for all items. Defaults .9em;\n */\n\n --padding-start: #{$spacing-medium};\n --padding-end: #{$spacing-medium};\n --padding-top: #{$spacing-small};\n --padding-bottom: #{$spacing-small};\n --secondary-padding-top: 0;\n --secondary-padding-bottom: 0;\n --bg-color-hover: #{map.get($colors, blue--faded)};\n --bg-color-focus: #{map.get($colors, blue--faded)};\n --bg-color-selected: #{map.get($colors, blue--faded)};\n --color-hover: #{map.get($colors, blue)};\n --color-selected: #{map.get($colors, blue)};\n --color-focus: #{map.get($colors, blue)};\n --focus-outline: none;\n --font-size: 0.9em;\n\n display: block;\n}\n\n.menu {\n font-size: var(--font-size, 0.9em);\n overscroll-behavior: none;\n min-width: var(--width);\n position: relative;\n\n &:focus {\n outline: none;\n }\n}\n\n::slotted(*:not(nano-nav-item):not(nano-option):not(hr):not(slot)) {\n @include padding(\n var(--padding-top),\n var(--padding-end),\n var(--padding-bottom),\n var(--padding-start)\n );\n\n display: block;\n}\n","import {\n Component,\n Event,\n EventEmitter,\n Method,\n h,\n Host,\n Element,\n Prop,\n Listen,\n} from '@stencil/core';\nimport {\n getTextContent,\n getDirectChildren,\n getActiveElement,\n} from '../../utils';\n\nconst CANSHADOW = !!document.head.attachShadow;\n\ntype ValidElement = HTMLNanoNavItemElement | HTMLNanoOptionElement;\ntype NNI = HTMLNanoNavItemElement;\n\n/**\n * Menu element. Commonly wrapped by `nano-dropdown` with `nano-option` and `nano-nav-item` elements nested.\n * Manages focus state / active.\n * @slot - The menu's content; `nano-option`, `nano-nav-item` elements as well as <hr> and more.\n */\n@Component({\n tag: 'nano-menu',\n styleUrl: 'menu.scss',\n shadow: true,\n})\nexport class Menu {\n private ignoreMouseEvents = false;\n private ignoreMouseTimeout: any;\n private menu: HTMLElement;\n private typeToSelect = '';\n private typeToSelectTimeout: any;\n\n @Element() private el: HTMLNanoMenuElement;\n\n // Public API\n\n /** get the focus state of the menu @readonly */\n @Prop()\n get hasFocus() {\n return this._hasFocus;\n }\n private _hasFocus = false;\n\n /** changes the role of the underlying control - sometimes required for semantics */\n @Prop() type: 'menu' | 'listbox' = 'menu';\n\n /** an accessible label */\n @Prop() label: string;\n\n // Events\n\n /** Emitted when the menu gains focus. */\n @Event() nanoFocus: EventEmitter;\n\n /** Emitted when the menu loses focus. */\n @Event() nanoBlur: EventEmitter;\n\n /** Emitted when a menu item is selected. */\n @Event() nanoSelect: EventEmitter<\n HTMLNanoOptionElement | HTMLNanoNavItemElement\n >;\n\n // Public Methods\n\n /** Sets focus on the menu. */\n @Method()\n async setFocus() {\n if (this.menu?.focus) this.menu.focus({ preventScroll: true });\n }\n\n /** Removes focus from the menu. */\n @Method()\n async removeFocus() {\n if (this.menu?.blur) this.menu.blur();\n }\n\n /** Sets the current active item */\n @Method()\n async showActiveElement() {\n if (this.selectedItem)\n this.selectedItem.scrollIntoView({ block: 'nearest' });\n }\n\n /** Removes any active item's state */\n @Method()\n async resetActiveItem() {\n this.getItems\n .filter((i) => i.tagName.toLowerCase() === 'nano-option')\n .map((i) => i.setAttribute('tabindex', '-1'));\n }\n\n // Private methods\n\n get getItems() {\n let items: ValidElement[];\n let opened = this.el.querySelectorAll('nano-nav-item.secondary-open');\n if (opened.length) {\n const ctx = opened[opened.length - 1] as HTMLNanoNavItemElement;\n items = Array.from(ctx.querySelectorAll('nano-nav-item, nano-option'));\n } else {\n items = getDirectChildren(\n this.el,\n 'nano-nav-item, nano-option',\n 'slot'\n ) as ValidElement[];\n }\n return items.filter((el) => !el.disabled && !el.hidden);\n }\n\n get activeItem() {\n const activeElement = getActiveElement();\n return this.getItems.find(\n (i) =>\n i.getAttribute('tabindex') === '0' ||\n i === activeElement ||\n i.classList.contains('has-focus')\n );\n }\n\n get selectedItem() {\n return this.getItems.find((i) => i.selected);\n }\n\n private async setActiveFocusItem(item?: ValidElement, focus = true) {\n const items = this.getItems;\n let activeItem =\n !item || item.disabled ? items.find((i) => i.selected) || items[0] : item;\n\n items\n .filter((i) => i.tagName.toLowerCase() === 'nano-option')\n .map((i: HTMLNanoOptionElement) =>\n i.setAttribute('tabindex', i === activeItem ? '0' : '-1')\n );\n\n if (!focus) return;\n\n if (activeItem) {\n (activeItem as NNI).setFocus\n ? (activeItem as NNI).setFocus()\n : activeItem.focus();\n } else this.menu.focus();\n }\n\n // Event Handlers\n\n @Listen('mousedown', { target: 'body' })\n @Listen('keydown')\n handleBlur(e: KeyboardEvent | MouseEvent) {\n if (!this.hasFocus) return;\n\n const kev = e as KeyboardEvent;\n let found: boolean;\n\n if (kev.key) {\n if (kev.key !== 'Tab') return;\n found =\n getActiveElement() &&\n getActiveElement().closest(this.el.tagName.toLowerCase()) === this.el;\n } else found = !!e.composedPath().find((el) => el === this.el);\n\n if (!found) {\n this.resetActiveItem();\n this._hasFocus = false;\n this.nanoBlur.emit();\n }\n }\n\n private handleFocus = () => {\n this.setActiveFocusItem(this.selectedItem || this.getItems[0]);\n\n this._hasFocus = true;\n this.nanoFocus.emit();\n };\n\n private handleClick = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const item = target.closest('nano-nav-item');\n\n if (item && !item.disabled) {\n this.nanoSelect.emit(item);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n // When keying through the menu, if the mouse happens to be hovering over a menu item and the menu scrolls, the\n // mouseout/mouseover event will fire causing the selection to be different than what the user expects. This gives\n // us a way to temporarily ignore mouse events while the user is interacting with a keyboard.\n clearTimeout(this.ignoreMouseTimeout);\n this.ignoreMouseTimeout = setTimeout(\n () => (this.ignoreMouseEvents = false),\n 500\n );\n this.ignoreMouseEvents = true;\n\n // Make a selection when pressing enter\n switch (event.key) {\n case ' ':\n if (this.activeItem) this.activeItem.click();\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n case 'PageDown':\n case 'PageUp':\n case 'Home':\n case 'End':\n const items = this.getItems;\n const selectedItem = this.activeItem;\n let index = items.indexOf(selectedItem);\n\n if (items.length) {\n event.preventDefault();\n\n if (event.key === 'ArrowDown') {\n index++;\n } else if (event.key === 'ArrowUp') {\n index--;\n } else if (event.key === 'Home' || event.key === 'PageUp') {\n index = 0;\n } else if (event.key === 'End' || event.key === 'PageDown') {\n index = items.length - 1;\n }\n\n if (index < 0) index = items.length - 1;\n if (index > items.length - 1) index = 0;\n\n this.setActiveFocusItem(items[index]);\n if (items[index]) items[index].scrollIntoView({ block: 'nearest' });\n return;\n }\n break;\n }\n\n // Handle type-to-search behavior when non-control characters are entered\n if (event.key === ' ' || /^[a-z0-9]+$/i.test(event.key)) {\n clearTimeout(this.typeToSelectTimeout);\n this.typeToSelectTimeout = setTimeout(\n () => (this.typeToSelect = ''),\n 750\n );\n this.typeToSelect += event.key;\n\n const items = this.getItems;\n for (const item of items) {\n const slot = item.shadowRoot.querySelector(\n 'slot:not([name])'\n ) as HTMLSlotElement;\n const label = getTextContent(slot).toLowerCase().trim();\n if (\n label.substring(0, this.typeToSelect.length) === this.typeToSelect\n ) {\n this.setActiveFocusItem(item);\n break;\n }\n }\n }\n };\n\n private handleMouseOver = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const item =\n target.closest('nano-nav-item') || target.closest('nano-option');\n\n if (item && !this.ignoreMouseEvents) {\n this.setActiveFocusItem(item);\n }\n };\n\n // Component Lifecycle\n\n render() {\n return (\n <Host\n class={{\n legacy: !CANSHADOW,\n }}\n >\n <div\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onMouseOver={this.handleMouseOver}\n onFocus={this.handleFocus}\n aria-label={this.label ? this.label : undefined}\n role={this.type}\n ref={(el) => (this.menu = el)}\n part=\"base\"\n class={{\n menu: true,\n ['menu--' + this.type]: true,\n 'menu--has-focus': this.hasFocus,\n }}\n tabIndex={-1}\n >\n <slot />\n </div>\n </Host>\n );\n }\n}\n","@use 'sass:map';\n@use 'sass:list';\n\n@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/layers';\n\n:host {\n /**\n * @prop --padding-top: Defaults to #{$spacing-small};\n * @prop --padding-bottom: Defaults to #{$spacing-small};\n * @prop --padding-start: Defaults to #{$spacing-small};\n * @prop --padding-end: Defaults to #{$spacing-small};\n\n * @prop --bg: default background. Defaults to none;\n * @prop --bg-selected: background when selected. Defaults to #{$select-opt-selected};\n * @prop --bg-focus: background when focused. Defaults to var(--nano-color-base, #{nano-color(primary, tint)});\n * @prop --bg-disabled: background when disabled. Defaults to none;\n\n * @prop --color: default text color. Defaults to var(--input-text-color, #{$input-text-color});\n * @prop --color-selected: text color when selected. Defaults to var(--nano-color-base, #{nano-color(primary, base)});\n * @prop --color-focus: text color when focused. Defaults to var(--nano-color-base, #{nano-color(primary, contrast)});\n * @prop --color-disabled: text color when disabled. Defaults to #{map.get($colors, palegrey)};\n\n * @prop --opt-icon-size: Sizes all icons within the option. Defaults to 1.4em;\n */\n\n --bg: none;\n --bg-selected: #{$select-opt-selected};\n --bg-focus: var(--nano-color-base, #{nano-color(primary, tint)});\n --bg-disabled: none;\n --color: var(--input-text-color, #{$input-text-color});\n --color-selected: var(--nano-color-base, #{nano-color(primary, base)});\n --color-focus: var(--nano-color-contrast, #{nano-color(primary, contrast)});\n --color-disabled: #{map.get($colors, palegrey)};\n --opt-icon-size: 1.6em;\n\n display: block;\n color: var(--color);\n overflow: hidden;\n font-size: 14px;\n font-size: #{'clamp(12px, .9em, 16px)'};\n}\n\n:host(:focus) {\n outline: none;\n}\n\n.option {\n $self: &;\n\n position: relative;\n user-select: none;\n cursor: pointer;\n display: flex;\n align-items: stretch;\n width: 100%;\n background: var(--bg);\n\n @include padding(\n var(--padding-top),\n var(--padding-end),\n var(--padding-bottom),\n var(--padding-start)\n );\n\n // focus\n :host(:focus) &:not(.option--disabled),\n :host &.option--selected {\n outline: none;\n background: var(--bg-selected);\n color: var(--color-selected);\n }\n\n :host(:focus) &:not(.option--disabled) {\n background: var(--bg-focus);\n color: var(--color-focus);\n }\n\n // disabled\n &.option--disabled {\n outline: none;\n color: var(--color-disabled);\n cursor: not-allowed;\n background: var(--bg-disabled);\n }\n\n // no value\n &.option--novalue {\n font-style: italic;\n opacity: 0.7;\n }\n\n &__label {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n }\n\n &__start {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n\n ::slotted(nano-icon) {\n font-size: var(--opt-icon-size);\n }\n\n ::slotted(:last-child) {\n @include margin(null, 0.5em, null, null);\n }\n }\n\n &__end {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n\n ::slotted(nano-icon) {\n font-size: var(--opt-icon-size);\n }\n\n ::slotted(:first-child) {\n @include margin(null, null, null, 0.5em);\n }\n }\n\n &__check {\n visibility: hidden;\n display: flex;\n position: absolute;\n left: 0.6em;\n top: calc(50% - 0.6em);\n align-items: center;\n font-size: 0.9em;\n\n #{$self}--selected:not(#{$self}--novalue) & {\n visibility: visible;\n }\n }\n}\n","import {\n Component,\n Prop,\n h,\n Host,\n State,\n Watch,\n Element,\n Listen,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { OptionInterface } from '../../interface';\nimport { debounce, getDirectChildren } from '../../utils';\n\nlet optIds = 0;\n\n/**\n * Select options to be used with [nano-select](/story/nano-components-select) or [nano-datalist](/story/nano-components-select)\n *\n * @slot - main label. Defaults to `label` or `value` prop\n * @slot checked-icon - icon to indicated checked / selected state. Defaults to fontawesome light/check\n * @slot start - suitable for an icon or content displayed at the start of the main label\n * @slot end - suitable for an icon or content displayed at the end of the main label\n */\n@Component({\n tag: 'nano-option',\n styleUrl: 'option.scss',\n shadow: true,\n})\nexport class Option implements OptionInterface {\n private optId = `nano-option-${optIds++}`;\n @Element() host: HTMLNanoOptionElement;\n @State() hasFocus = false;\n\n constructor() {\n this.handleClick = debounce(this.handleClick.bind(this), 5);\n }\n\n // Public API\n\n /**\n * Value of the option\n */\n @Prop({ mutable: true, reflect: true }) value: string = '';\n\n @Watch('value')\n valueChanged() {\n if (!this.value || !this.value.length) this.value = this.labelContent;\n }\n\n /**\n * Label of the option\n */\n @Prop({ mutable: true, reflect: true }) label: string = '';\n\n @Watch('label')\n labelChanged() {\n if (!this.label || !this.label.length)\n this.label = this.labelContent.length ? this.labelContent : this.value;\n }\n\n /**\n * Whether this option is selected\n */\n @Prop({ reflect: true }) selected: boolean = false;\n\n /**\n * Whether this option should be disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** You can add extra meta for this option. When displayed in a list, users\n * search / filter via extra related terms. Another usecase is 'endonyms'\n */\n @Prop() filterMeta: string = '';\n\n /** Fired when an option is selected */\n @Event() nanoSelect!: EventEmitter<HTMLNanoOptionElement>;\n\n // Event handlers\n\n // stop scrolling on select\n @Listen('keydown')\n handleKeyDown(e: KeyboardEvent) {\n if (e.key !== ' ' && e.key !== 'Enter') return;\n e.preventDefault();\n this.nanoSelect.emit(this.host);\n }\n\n private handleClick() {\n if (this.disabled) return;\n this.nanoSelect.emit(this.host);\n }\n\n // Private logic\n\n private get labelContent() {\n return getDirectChildren(this.host, '*:not([slot])', false)\n .map((el) => el.textContent)\n .join(' ')\n .trim();\n }\n\n // Component lifecycle\n\n componentWillLoad() {\n this.valueChanged();\n this.labelChanged();\n }\n\n render() {\n return (\n <Host\n role=\"option\"\n aria-selected={this.selected ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n >\n <div\n onMouseDown={this.handleClick}\n id={this.optId}\n class={{\n option: true,\n 'option--selected': this.selected,\n 'option--disabled': this.disabled,\n 'option--novalue': !this.value,\n }}\n >\n <div part=\"check-icon\" class=\"option__check\">\n <slot name=\"check-icon\">\n <nano-icon name=\"light/check\" aria-hidden=\"true\" />\n </slot>\n </div>\n <div part=\"start\" class=\"option__start\">\n <slot name=\"start\"></slot>\n </div>\n <div part=\"label\" class=\"option__label\">\n <slot>{this.label || this.value}</slot>\n </div>\n <div part=\"end\" class=\"option__end\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Web Components for Nanopore digital Web Apps
3
- */
4
- import{r as t,c as o,h as i,e as r,g as s}from"./p-ab5813a7.js";import{P as e}from"./p-3de7735c.js";import"./p-289aa03f.js";const n=':host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}:host{--max-width:20rem;--hide-delay:0s;--hide-duration:0.125s;--hide-timing-function:ease;--show-delay:0.125s;--show-duration:0.125s;--show-timing-function:ease;display:contents}.tooltip{max-width:var(--max-width);border-radius:var(--nano-tooltip-border-radius, var(--nano-border-radius-small, 2px));background-color:black;font-size:var(--nano-fontsize-small, 0.875rem);line-height:1.5;color:white;opacity:0;padding:var(--nano-tooltip-padding, var(--nano-spacing-xsmall, 4px) var(--nano-spacing-small, 8px));-webkit-transform:translateY(10px) translateZ(0);transform:translateY(10px) translateZ(0);-webkit-transform-origin:bottom;transform-origin:bottom;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, -webkit-transform;transition-property:opacity, transform;transition-property:opacity, transform, -webkit-transform;-webkit-transition-delay:var(--hide-delay);transition-delay:var(--hide-delay);-webkit-transition-duration:var(--hide-duration);transition-duration:var(--hide-duration);-webkit-transition-timing-function:var(--hide-timing-function);transition-timing-function:var(--hide-timing-function);white-space:normal}.tooltip-arrow{content:"";position:absolute;width:0;height:0;color:black;-webkit-transition:0.2s ease transform;transition:0.2s ease transform}.tooltip-positioner{position:absolute;z-index:var(--nano-layer-index-tooltip, 1000);pointer-events:none}.tooltip-positioner[data-popper-placement^=top] .tooltip{-webkit-transform-origin:bottom;transform-origin:bottom;-webkit-transform:translateY(-10px) translateZ(0);transform:translateY(-10px) translateZ(0)}.tooltip-positioner[data-popper-placement^=bottom] .tooltip{-webkit-transform-origin:top;transform-origin:top}.tooltip-positioner[data-popper-placement^=left] .tooltip{-webkit-transform-origin:right;transform-origin:right}.tooltip-positioner[data-popper-placement^=right] .tooltip{-webkit-transform-origin:left;transform-origin:left}.tooltip-positioner.popover-visible .tooltip{opacity:1;-webkit-transform:none;transform:none;-webkit-transition-delay:var(--show-delay);transition-delay:var(--show-delay);-webkit-transition-duration:var(--show-duration);transition-duration:var(--show-duration);-webkit-transition-timing-function:var(--show-timing-function);transition-timing-function:var(--show-timing-function)}.tooltip-positioner[data-popper-placement^=bottom] .tooltip-arrow{bottom:100%;left:calc(50% - 5px);border-bottom:5px solid;border-left:5px solid transparent;border-right:5px solid transparent}.tooltip-positioner[data-popper-placement=bottom-start] .tooltip-arrow{left:5px}.tooltip-positioner[data-popper-placement=bottom-end] .tooltip-arrow{right:5px;left:auto}.tooltip-positioner[data-popper-placement^=top] .tooltip-arrow{top:100%;left:calc(50% - 5px);border-top:5px solid;border-left:5px solid transparent;border-right:5px solid transparent}.tooltip-positioner[data-popper-placement=top-start] .tooltip-arrow{left:5px}.tooltip-positioner[data-popper-placement=top-end] .tooltip-arrow{right:5px;left:auto}.tooltip-positioner[data-popper-placement^=left] .tooltip-arrow{top:calc(50% - 5px);left:100%;border-left:5px solid;border-top:5px solid transparent;border-bottom:5px solid transparent}.tooltip-positioner[data-popper-placement=left-start] .tooltip-arrow{top:5px}.tooltip-positioner[data-popper-placement=left-end] .tooltip-arrow{top:auto;bottom:5px}.tooltip-positioner[data-popper-placement^=right] .tooltip-arrow{top:calc(50% - 5px);right:100%;border-right:5px solid;border-top:5px solid transparent;border-bottom:5px solid transparent}.tooltip-positioner[data-popper-placement=right-start] .tooltip-arrow{top:5px}.tooltip-positioner[data-popper-placement=right-end] .tooltip-arrow{top:auto;bottom:5px}';let a=0;let p=class{constructor(i){t(this,i);this.nanoShow=o(this,"nanoShow",7);this.nanoAfterShow=o(this,"nanoAfterShow",7);this.nanoHide=o(this,"nanoHide",7);this.nanoAfterHide=o(this,"nanoAfterHide",7);this.componentId=`tooltip-${++a}`;this.isVisible=false;this.content="";this.placement="top";this.disabled=false;this.distance=10;this.open=false;this.skidding=0;this.trigger="hover focus";this.handleBlur=()=>{if(this.hasTrigger("focus")){this.hide()}};this.handleClick=()=>{if(this.hasTrigger("click")){this.open?this.hide():this.show()}};this.handleFocus=()=>{if(this.hasTrigger("focus")){this.show()}};this.handleKeyDown=t=>{if(this.open&&t.key==="Escape"){t.stopPropagation();this.hide()}};this.handleMouseOver=()=>{if(this.hasTrigger("hover")){this.show()}};this.handleMouseOut=()=>{if(this.hasTrigger("hover")){this.hide()}};this.handleSlotChange=()=>{this.target=this.getTarget()};this.handleTTSlotChange=()=>{const t=this.host.querySelector(`[id="${this.componentId}"]`)||this.host.shadowRoot.getElementById(this.componentId);Array.from(this.host.querySelectorAll('[slot="content"]')).filter((o=>o!==t)).forEach((o=>{t.appendChild(o)}))}}get target(){return this._target}set target(t){if(t!==this._target&&this._target){this._target.removeAttribute("aria-describedby")}t.setAttribute("aria-describedby",this.componentId);this._target=t}handleOpenChange(){this.open?this.show():this.hide()}async show(){if(this.isVisible){return}const t=this.nanoShow.emit();if(t.defaultPrevented){this.open=false;return}this.isVisible=true;this.open=true;this.popover.show()}async hide(){if(!this.isVisible){return}const t=this.nanoHide.emit();if(t.defaultPrevented){this.open=true;return}this.isVisible=false;this.open=false;this.popover.hide()}getTarget(){const t=[...Array.from(this.host.children)].find((t=>t.tagName.toLowerCase()!=="style"&&t.getAttribute("slot")!=="content"));if(!t){throw new Error("Invalid tooltip target: no child element was found.")}return t}hasTrigger(t){const o=this.trigger.split(" ");return o.includes(t)}syncOptions(){this.popover.setOptions({placement:this.placement,distance:this.distance,skidding:this.skidding,transitionElement:this.tooltip,onAfterHide:()=>this.nanoAfterHide.emit(),onAfterShow:()=>this.nanoAfterShow.emit()})}componentDidLoad(){this.target=this.getTarget();this.popover=new e(this.target,this.tooltipPositioner);this.syncOptions();const t=this.host.shadowRoot.getElementById(this.componentId);t.slot="content";this.host.appendChild(t);this.handleTTSlotChange();this.tooltipPositioner.hidden=!this.open;if(this.open){this.show()}}componentDidUpdate(){this.syncOptions()}disconnectedCallback(){this.popover.destroy()}render(){return i(r,{onKeyDown:this.handleKeyDown,onMouseOver:this.handleMouseOver,onMouseOut:this.handleMouseOut,onBlur:this.handleBlur,onFocus:this.handleFocus,onClick:this.handleClick},i("slot",{onSlotchange:this.handleSlotChange}),!this.disabled&&i("div",{ref:t=>this.tooltipPositioner=t,class:"tooltip-positioner"},i("div",{part:"base",ref:t=>this.tooltip=t,class:{tooltip:true,"tooltip--open":this.open},role:"tooltip","aria-hidden":this.open?"false":"true"},i("slot",{name:"content",onSlotchange:this.handleTTSlotChange},i("div",{id:this.componentId},this.content)),i("div",{class:"tooltip-arrow","data-popper-arrow":true}))))}get host(){return s(this)}static get watchers(){return{open:["handleOpenChange"]}}};p.style=n;export{p as nano_tooltip};
5
- //# sourceMappingURL=p-1e8321ea.entry.js.map