@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
@@ -0,0 +1,527 @@
1
+ /*!
2
+ * Web Components for Nanopore digital Web Apps
3
+ */
4
+ import { k as getRenderingRef, j as forceUpdate, r as registerInstance, c as createEvent, h, e as Host, g as getElement } from './index-c42becad.js';
5
+
6
+ const appendToMap = (map, propName, value) => {
7
+ const items = map.get(propName);
8
+ if (!items) {
9
+ map.set(propName, [value]);
10
+ }
11
+ else if (!items.includes(value)) {
12
+ items.push(value);
13
+ }
14
+ };
15
+ const debounce = (fn, ms) => {
16
+ let timeoutId;
17
+ return (...args) => {
18
+ if (timeoutId) {
19
+ clearTimeout(timeoutId);
20
+ }
21
+ timeoutId = setTimeout(() => {
22
+ timeoutId = 0;
23
+ fn(...args);
24
+ }, ms);
25
+ };
26
+ };
27
+
28
+ /**
29
+ * Check if a possible element isConnected.
30
+ * The property might not be there, so we check for it.
31
+ *
32
+ * We want it to return true if isConnected is not a property,
33
+ * otherwise we would remove these elements and would not update.
34
+ *
35
+ * Better leak in Edge than to be useless.
36
+ */
37
+ const isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;
38
+ const cleanupElements = debounce((map) => {
39
+ for (let key of map.keys()) {
40
+ map.set(key, map.get(key).filter(isConnected));
41
+ }
42
+ }, 2000);
43
+ const stencilSubscription = () => {
44
+ if (typeof getRenderingRef !== 'function') {
45
+ // If we are not in a stencil project, we do nothing.
46
+ // This function is not really exported by @stencil/core.
47
+ return {};
48
+ }
49
+ const elmsToUpdate = new Map();
50
+ return {
51
+ dispose: () => elmsToUpdate.clear(),
52
+ get: (propName) => {
53
+ const elm = getRenderingRef();
54
+ if (elm) {
55
+ appendToMap(elmsToUpdate, propName, elm);
56
+ }
57
+ },
58
+ set: (propName) => {
59
+ const elements = elmsToUpdate.get(propName);
60
+ if (elements) {
61
+ elmsToUpdate.set(propName, elements.filter(forceUpdate));
62
+ }
63
+ cleanupElements(elmsToUpdate);
64
+ },
65
+ reset: () => {
66
+ elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));
67
+ cleanupElements(elmsToUpdate);
68
+ },
69
+ };
70
+ };
71
+
72
+ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {
73
+ let states = new Map(Object.entries(defaultState !== null && defaultState !== void 0 ? defaultState : {}));
74
+ const handlers = {
75
+ dispose: [],
76
+ get: [],
77
+ set: [],
78
+ reset: [],
79
+ };
80
+ const reset = () => {
81
+ states = new Map(Object.entries(defaultState !== null && defaultState !== void 0 ? defaultState : {}));
82
+ handlers.reset.forEach((cb) => cb());
83
+ };
84
+ const dispose = () => {
85
+ // Call first dispose as resetting the state would
86
+ // cause less updates ;)
87
+ handlers.dispose.forEach((cb) => cb());
88
+ reset();
89
+ };
90
+ const get = (propName) => {
91
+ handlers.get.forEach((cb) => cb(propName));
92
+ return states.get(propName);
93
+ };
94
+ const set = (propName, value) => {
95
+ const oldValue = states.get(propName);
96
+ if (shouldUpdate(value, oldValue, propName)) {
97
+ states.set(propName, value);
98
+ handlers.set.forEach((cb) => cb(propName, value, oldValue));
99
+ }
100
+ };
101
+ const state = (typeof Proxy === 'undefined'
102
+ ? {}
103
+ : new Proxy(defaultState, {
104
+ get(_, propName) {
105
+ return get(propName);
106
+ },
107
+ ownKeys(_) {
108
+ return Array.from(states.keys());
109
+ },
110
+ getOwnPropertyDescriptor() {
111
+ return {
112
+ enumerable: true,
113
+ configurable: true,
114
+ };
115
+ },
116
+ has(_, propName) {
117
+ return states.has(propName);
118
+ },
119
+ set(_, propName, value) {
120
+ set(propName, value);
121
+ return true;
122
+ },
123
+ }));
124
+ const on = (eventName, callback) => {
125
+ handlers[eventName].push(callback);
126
+ return () => {
127
+ removeFromArray(handlers[eventName], callback);
128
+ };
129
+ };
130
+ const onChange = (propName, cb) => {
131
+ const unSet = on('set', (key, newValue) => {
132
+ if (key === propName) {
133
+ cb(newValue);
134
+ }
135
+ });
136
+ const unReset = on('reset', () => cb(defaultState[propName]));
137
+ return () => {
138
+ unSet();
139
+ unReset();
140
+ };
141
+ };
142
+ const use = (...subscriptions) => {
143
+ const unsubs = subscriptions.reduce((unsubs, subscription) => {
144
+ if (subscription.set) {
145
+ unsubs.push(on('set', subscription.set));
146
+ }
147
+ if (subscription.get) {
148
+ unsubs.push(on('get', subscription.get));
149
+ }
150
+ if (subscription.reset) {
151
+ unsubs.push(on('reset', subscription.reset));
152
+ }
153
+ if (subscription.dispose) {
154
+ unsubs.push(on('dispose', subscription.dispose));
155
+ }
156
+ return unsubs;
157
+ }, []);
158
+ return () => unsubs.forEach((unsub) => unsub());
159
+ };
160
+ const forceUpdate = (key) => {
161
+ const oldValue = states.get(key);
162
+ handlers.set.forEach((cb) => cb(key, oldValue, oldValue));
163
+ };
164
+ return {
165
+ state,
166
+ get,
167
+ set,
168
+ on,
169
+ onChange,
170
+ use,
171
+ dispose,
172
+ reset,
173
+ forceUpdate,
174
+ };
175
+ };
176
+ const removeFromArray = (array, item) => {
177
+ const index = array.indexOf(item);
178
+ if (index >= 0) {
179
+ array[index] = array[array.length - 1];
180
+ array.length--;
181
+ }
182
+ };
183
+
184
+ const createStore = (defaultState, shouldUpdate) => {
185
+ const map = createObservableMap(defaultState, shouldUpdate);
186
+ map.use(stencilSubscription());
187
+ return map;
188
+ };
189
+
190
+ let FieldValidator = class {
191
+ constructor(hostRef) {
192
+ registerInstance(this, hostRef);
193
+ this.nanoPayloadChange = createEvent(this, "nanoPayloadChange", 7);
194
+ this.nanoSubmit = createEvent(this, "nanoSubmit", 7);
195
+ this.nanoInvalid = createEvent(this, "nanoInvalid", 7);
196
+ this.submitted = false;
197
+ this.fields = [];
198
+ // annoyingly, whenever we attempt to checkValidty it fires `invalid` events.
199
+ // this is used to prevent infinite loops / multiple calls
200
+ this.internalValidate = false;
201
+ // Public API
202
+ /** When should the fields perform validation. Will override / sync all nested `nano-...` controls */
203
+ this.validateOn = 'submitThenDirty';
204
+ /** Tries to scroll to the first invalid field on submit */
205
+ this.scrollToInvalid = true;
206
+ this._dirty = false;
207
+ // Event handlers
208
+ /** Fired whenever store values change and potentially checks validity */
209
+ this.handleStoreChange = async (_key, _newVal) => {
210
+ if (this.validateOn === 'dirty' && this.dirty) {
211
+ this.internalValidate = true;
212
+ await this.validateAllFields();
213
+ this._valid = this.activeForm.checkValidity();
214
+ this.internalValidate = false;
215
+ }
216
+ this.nanoPayloadChange.emit(this.store.state);
217
+ };
218
+ /** Handles field value changes and passes to store */
219
+ this.handleFieldChange = (ev) => {
220
+ this._dirty = true;
221
+ this.setFieldValue([ev.target]);
222
+ };
223
+ /** Handles default field validation events */
224
+ this.handleFormInvalid = async (ev) => {
225
+ ev.preventDefault();
226
+ this._valid = false;
227
+ if (this.internalValidate)
228
+ return;
229
+ if (this.validateOn === 'submitThenDirty')
230
+ this.validateOn = 'dirty';
231
+ this.submitted = true;
232
+ await this.validateAllFields();
233
+ // kinda insane...but if we're only validating on submit, then if the form is currently
234
+ // in an invalid state, when submitting, it will fire an invalid event and not
235
+ // submit the form. So let's test to make sure it is really invalid, and submit if not
236
+ if (this.validateOn === 'submit') {
237
+ this.internalValidate = true;
238
+ this._valid = this.activeForm.checkValidity();
239
+ this.internalValidate = false;
240
+ if (this._valid) {
241
+ this.submitForm();
242
+ return;
243
+ }
244
+ }
245
+ this.scrollToFirstInvalid();
246
+ this.nanoInvalid.emit();
247
+ };
248
+ /** stops default form submission, checks if valid, then submits manually */
249
+ this.handleSubmit = async (e) => {
250
+ e.preventDefault();
251
+ if (this.validateOn === 'submitThenDirty')
252
+ this.validateOn = 'dirty';
253
+ this.submitted = true;
254
+ await this.validateAllFields();
255
+ this.internalValidate = true;
256
+ this._valid = this.activeForm.checkValidity();
257
+ this.internalValidate = false;
258
+ if (!this._valid) {
259
+ this.scrollToFirstInvalid();
260
+ return;
261
+ }
262
+ this.submitForm();
263
+ };
264
+ }
265
+ userFormChange() {
266
+ if (!!this.userForm)
267
+ this.activeForm = this.userForm;
268
+ }
269
+ get activeForm() {
270
+ return this._activeForm;
271
+ }
272
+ set activeForm(form) {
273
+ if (this._activeForm)
274
+ this._activeForm.removeEventListener('invalid', this.handleFormInvalid, true);
275
+ if (form)
276
+ form.addEventListener('invalid', this.handleFormInvalid, true);
277
+ this._activeForm = form;
278
+ }
279
+ /** Sync up validateOn with all fields */
280
+ validateOnChange() {
281
+ this.fields.forEach((field) => {
282
+ if (field.tagName === 'NANO-CHECKBOX') {
283
+ const cbg = field.closest('nano-checkbox-group');
284
+ if (cbg)
285
+ cbg.validateOn = this.validateOn;
286
+ }
287
+ else {
288
+ field.validateOn =
289
+ this.validateOn;
290
+ }
291
+ });
292
+ }
293
+ /** Returns true if any nested fields have been changed @readonly */
294
+ get dirty() {
295
+ return this._dirty;
296
+ }
297
+ /** Returns true if all the nested fields are currently valid @readonly */
298
+ get valid() {
299
+ return this._valid;
300
+ }
301
+ /** The current form payload as a reactive store. @readonly */
302
+ get payload() {
303
+ return this.store.state;
304
+ }
305
+ /** Returns true if validation errors will be displayed to the user */
306
+ get showValidation() {
307
+ return (this.validateOn === 'dirty' && this.dirty) || this.submitted;
308
+ }
309
+ /** Get the current validation state of all form fields. @readonly
310
+ * ```
311
+ {
312
+ fields: NanoFormEles[];
313
+ valid: boolean;
314
+ validityMessage: string;
315
+ dirty: boolean;
316
+ name: string | number;
317
+ value: any;
318
+ }[]
319
+ ```
320
+ */
321
+ get validationState() {
322
+ const validationState = [];
323
+ this.fields.forEach(async (field) => {
324
+ const found = validationState.find((v) => v.name === field.name);
325
+ if (found) {
326
+ found.validityMessage = field.validityMessage.length
327
+ ? field.validityMessage
328
+ : found.validityMessage;
329
+ if (!found.fields.find((f) => f === field))
330
+ found.fields.push(field);
331
+ if (found.valid && field.invalid)
332
+ found.valid = false;
333
+ return;
334
+ }
335
+ validationState.push({
336
+ fields: [field],
337
+ name: field.name,
338
+ valid: !field.invalid,
339
+ value: this.store.state[field.name],
340
+ dirty: false,
341
+ validityMessage: field.validityMessage,
342
+ });
343
+ });
344
+ return validationState;
345
+ }
346
+ // private methods
347
+ attachSlotObserver() {
348
+ if (!!this.mo)
349
+ return;
350
+ const mo = (this.mo = new MutationObserver((_entries) => {
351
+ const form = this.host.querySelector('form');
352
+ if (form !== this.activeForm)
353
+ this.activeForm = form;
354
+ this.setupFields();
355
+ }));
356
+ mo.observe(this.host, {
357
+ childList: true,
358
+ attributes: true,
359
+ attributeFilter: ['name'],
360
+ subtree: true,
361
+ });
362
+ }
363
+ /** Checks for new `nano-...` fields and adds them to our watch array and value store */
364
+ setupFields() {
365
+ let fields = Array.from(this.host.querySelectorAll(`
366
+ nano-input,
367
+ nano-select,
368
+ nano-file-upload,
369
+ nano-date-input,
370
+ nano-checkbox
371
+ `));
372
+ fields = fields.filter((f) => !!f.name && !!f.name.length);
373
+ // do we have any currently un-watched fields?
374
+ if (!fields.filter((f) => !this.fields.includes(f)).length)
375
+ return;
376
+ // setup the initial store state / refresh on new fields
377
+ this.fields = fields;
378
+ this.validateOnChange();
379
+ this.setFieldValue(this.fields);
380
+ this.nanoPayloadChange.emit(this.store.state);
381
+ }
382
+ /** Loops through all `nano-...` fields and extracts their values into our store */
383
+ setFieldValue(fields) {
384
+ fields.forEach((field) => {
385
+ const fieldName = field.name;
386
+ if (!fieldName.length)
387
+ return;
388
+ switch (field.tagName) {
389
+ case 'NANO-CHECKBOX':
390
+ let cb = field;
391
+ if (cb.type === 'radio' ||
392
+ cb.type === 'segment' ||
393
+ cb.type === 'segment-pill') {
394
+ if (cb.checked)
395
+ this.store.state[fieldName] = cb.value;
396
+ else if (!cb.checked &&
397
+ (cb.value === this.store.state[fieldName] ||
398
+ !this.store.state[fieldName]))
399
+ this.store.state[fieldName] = '';
400
+ }
401
+ else if (this.fields.filter((f) => f.name === fieldName && f.tagName === 'NANO-CHECKBOX').length > 1) {
402
+ const currentArr = Array.isArray(this.store.state[fieldName])
403
+ ? this.store.state[fieldName]
404
+ : [];
405
+ if (cb.checked) {
406
+ if (!this.store.state[fieldName].includes(cb.value)) {
407
+ this.store.state[fieldName] = [...currentArr, cb.value];
408
+ }
409
+ }
410
+ else {
411
+ this.store.state[fieldName] = currentArr.filter((v) => v !== cb.value);
412
+ }
413
+ }
414
+ else
415
+ this.store.state[fieldName] = cb.value;
416
+ break;
417
+ case 'NANO-FILE-UPLOAD':
418
+ this.store.state[fieldName] = field.files;
419
+ break;
420
+ default:
421
+ this.store.state[fieldName] = field.value;
422
+ break;
423
+ }
424
+ });
425
+ }
426
+ /** Checks for user defined validations */
427
+ async validate(key, newVal) {
428
+ if (!this.validation)
429
+ return;
430
+ const res = this.validation(key, newVal, this.store.state);
431
+ // no nothing - return
432
+ if (!res)
433
+ return;
434
+ // stencil public methods are async
435
+ // so we must to coerce our validation
436
+ // collection loop into a promise
437
+ await Promise.all(Object.entries(res).map(async ([key, o]) => {
438
+ // switch on/off validation messages
439
+ const field = this.fields.find((f) => f.name === key);
440
+ let validityTarget = field;
441
+ if (field.tagName === 'NANO-CHECKBOX') {
442
+ const cbg = field.closest('nano-checkbox-group');
443
+ validityTarget = cbg || field;
444
+ }
445
+ // status is now valid - clear the error
446
+ if (validityTarget.validityMessage === o.msg && o.valid)
447
+ await this.setFieldError(validityTarget, '');
448
+ // status is invalid. Set the error
449
+ else if (!o.valid) {
450
+ await this.setFieldError(validityTarget, o.msg);
451
+ }
452
+ }));
453
+ }
454
+ /**
455
+ * Utility to smooth out setting error messages
456
+ * (it's a different method on `nano-checkbox` 'cos they don't show errors themselves)
457
+ * @param field
458
+ * @param msg
459
+ */
460
+ async setFieldError(field, msg) {
461
+ if (field['showError'])
462
+ await field.showError(msg);
463
+ else
464
+ await field.setError(msg);
465
+ }
466
+ /** Loops through all store entries and checks field validity */
467
+ async validateAllFields() {
468
+ // This forces our loop to `await` and finish sequentially ... silly async stencil methods
469
+ await Object.entries(this.store.state).reduce(async (memo, [key, value]) => {
470
+ await memo;
471
+ await this.validate(key, value);
472
+ }, undefined);
473
+ }
474
+ scrollToFirstInvalid() {
475
+ if (!this.scrollToInvalid)
476
+ return;
477
+ setTimeout(() => {
478
+ const invalidField = this.validationState.find((f) => !f.valid);
479
+ if (!invalidField)
480
+ return;
481
+ invalidField.fields[0].scrollIntoView({
482
+ behavior: 'smooth',
483
+ block: 'nearest',
484
+ });
485
+ }, 200);
486
+ }
487
+ submitForm() {
488
+ const nanoSubmit = this.nanoSubmit.emit();
489
+ if (nanoSubmit.defaultPrevented)
490
+ return;
491
+ this.activeForm.submit();
492
+ }
493
+ connectedCallback() {
494
+ this.userForm = this.host.querySelector('form');
495
+ }
496
+ componentDidLoad() {
497
+ requestAnimationFrame(() => {
498
+ this.store = createStore({});
499
+ this.setupFields();
500
+ this.attachSlotObserver();
501
+ this.store.on('set', (key, value) => this.handleStoreChange(key, value));
502
+ this.host.addEventListener('nanoChange', this.handleFieldChange);
503
+ this.host.addEventListener('submit', this.handleSubmit);
504
+ });
505
+ }
506
+ disconnectedCallback() {
507
+ if (this.mo)
508
+ this.mo.disconnect();
509
+ this.store.dispose();
510
+ this.host.removeEventListener('nanoChange', this.handleFieldChange);
511
+ this.host.removeEventListener('submit', this.handleSubmit);
512
+ if (this.activeForm)
513
+ this.activeForm.removeEventListener('invalid', this.handleFormInvalid, true);
514
+ }
515
+ render() {
516
+ return (h(Host, null, this.userForm && h("slot", null), !this.userForm && (h("form", { ref: (f) => (this.activeForm = f) }, h("slot", null)))));
517
+ }
518
+ get host() { return getElement(this); }
519
+ static get watchers() { return {
520
+ "userForm": ["userFormChange"],
521
+ "validateOn": ["validateOnChange"]
522
+ }; }
523
+ };
524
+
525
+ export { FieldValidator as nano_field_validator };
526
+
527
+ //# sourceMappingURL=nano-field-validator.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"nano-field-validator.entry.js","mappings":"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","names":[],"sources":["./node_modules/@stencil/store/dist/index.mjs","./src/components/field-validator/field-validator.tsx"],"sourcesContent":["import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n let states = new Map(Object.entries(defaultState !== null && defaultState !== void 0 ? defaultState : {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n const reset = () => {\n states = new Map(Object.entries(defaultState !== null && defaultState !== void 0 ? defaultState : {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(defaultState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const unSet = on('set', (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n });\n const unReset = on('reset', () => cb(defaultState[propName]));\n return () => {\n unSet();\n unReset();\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","import {\n Component,\n Prop,\n h,\n Host,\n Element,\n ComponentInterface,\n State,\n Watch,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { createStore, ObservableMap } from '@stencil/store';\n\ntype NanoFormEles =\n | HTMLNanoInputElement\n | HTMLNanoCheckboxElement\n | HTMLNanoSelectElement\n | HTMLNanoDateInputElement\n | HTMLNanoFileUploadElement;\ntype NanoEvent = CustomEvent & { target: NanoFormEles };\ninterface ValueStore {\n [key: string]: any;\n}\n\ninterface ValidationState {\n fields: NanoFormEles[];\n valid: boolean;\n validityMessage: string;\n dirty: boolean;\n name: string | number;\n value: any;\n}\n\n/**\n * A toolbox for `nano-...` form fields and form validation.\n *\n * - Easy to add validation accross field dependencies - e.g. \"When Field1 contains '123' Field2 must contain '456'\"\n * - Easy access to whole form and individual field validity states\n * - Easy access to form data payload\n * - Scroll to invalid field on submit\n */\n@Component({\n tag: 'nano-field-validator',\n})\nexport class FieldValidator implements ComponentInterface {\n // Internal State\n\n @Element() host: HTMLNanoFieldValidatorElement;\n @State() store: ObservableMap<ValueStore>;\n @State() userForm: HTMLFormElement;\n @State() submitted = false;\n @Watch('userForm')\n userFormChange() {\n if (!!this.userForm) this.activeForm = this.userForm;\n }\n\n private get activeForm() {\n return this._activeForm;\n }\n private set activeForm(form: HTMLFormElement) {\n if (this._activeForm)\n this._activeForm.removeEventListener(\n 'invalid',\n this.handleFormInvalid,\n true\n );\n if (form) form.addEventListener('invalid', this.handleFormInvalid, true);\n this._activeForm = form;\n }\n private _activeForm: HTMLFormElement;\n private mo: MutationObserver;\n private fields: NanoFormEles[] = [];\n // annoyingly, whenever we attempt to checkValidty it fires `invalid` events.\n // this is used to prevent infinite loops / multiple calls\n private internalValidate = false;\n\n // Public API\n\n /** When should the fields perform validation. Will override / sync all nested `nano-...` controls */\n @Prop({ mutable: true }) validateOn?: 'dirty' | 'submit' | 'submitThenDirty' =\n 'submitThenDirty';\n\n /** Sync up validateOn with all fields */\n @Watch('validateOn')\n validateOnChange() {\n this.fields.forEach((field) => {\n if (field.tagName === 'NANO-CHECKBOX') {\n const cbg = field.closest('nano-checkbox-group');\n if (cbg) cbg.validateOn = this.validateOn;\n } else {\n (field as Exclude<NanoFormEles, HTMLNanoCheckboxElement>).validateOn =\n this.validateOn;\n }\n });\n }\n\n /** Tries to scroll to the first invalid field on submit */\n @Prop() scrollToInvalid = true;\n\n /** Returns true if any nested fields have been changed @readonly */\n @Prop({ reflect: true })\n get dirty() {\n return this._dirty;\n }\n @State() _dirty = false;\n\n /** Returns true if all the nested fields are currently valid @readonly */\n @Prop({ reflect: true })\n get valid() {\n return this._valid;\n }\n @State() _valid: boolean;\n\n /** The current form payload as a reactive store. @readonly */\n @Prop()\n get payload() {\n return this.store.state;\n }\n\n /** Returns true if validation errors will be displayed to the user */\n @Prop()\n get showValidation() {\n return (this.validateOn === 'dirty' && this.dirty) || this.submitted;\n }\n\n /** Get the current validation state of all form fields. @readonly\n * ```\n {\n fields: NanoFormEles[];\n valid: boolean;\n validityMessage: string;\n dirty: boolean;\n name: string | number;\n value: any;\n }[]\n ```\n */\n @Prop() get validationState(): ValidationState[] {\n const validationState: ValidationState[] = [];\n\n this.fields.forEach(async (field) => {\n const found = validationState.find((v) => v.name === field.name);\n\n if (found) {\n found.validityMessage = field.validityMessage.length\n ? field.validityMessage\n : found.validityMessage;\n if (!found.fields.find((f) => f === field)) found.fields.push(field);\n if (found.valid && field.invalid) found.valid = false;\n return;\n }\n\n validationState.push({\n fields: [field],\n name: field.name,\n valid: !field.invalid,\n value: this.store.state[field.name],\n dirty: false,\n validityMessage: field.validityMessage,\n });\n });\n return validationState;\n }\n\n /** A validation callback method.\n * @param field - The field name currently being evaluated\n * @param value - The value of the field currently being evaluated\n * @param fields - an array of all currently observered form fields and values\n * @returns field names mapped to an object of status message and validity e.g.\n * ```js\n * {field1: {msg: `This is invalid!`}, field2: {msg: `This is valid!`, valid: true}}\n * ```\n */\n @Prop() validation: (\n field: string,\n value: string,\n fields: ValueStore\n ) => { [key: string]: { msg: string; valid?: boolean } };\n\n /** Fired whenever the payload changes */\n @Event() nanoPayloadChange: EventEmitter<ValueStore>;\n\n /**\n * Fired on valid form submission.\n * Note: if you wish to prevent a form from submitting, instead\n * of using / preventing the native `submit` event, use this event\n * ```js\n * ele.addEventListener('nanoSubmit', (e) => {\n * e.preventDefault()\n * })\n * ```\n */\n @Event() nanoSubmit: EventEmitter;\n\n /** Fire on invalid form submission attempt */\n @Event() nanoInvalid: EventEmitter;\n\n // private methods\n\n private attachSlotObserver() {\n if (!!this.mo) return;\n const mo = (this.mo = new MutationObserver((_entries) => {\n const form = this.host.querySelector('form');\n if (form !== this.activeForm) this.activeForm = form;\n this.setupFields();\n }));\n mo.observe(this.host, {\n childList: true,\n attributes: true,\n attributeFilter: ['name'],\n subtree: true,\n });\n }\n\n /** Checks for new `nano-...` fields and adds them to our watch array and value store */\n private setupFields() {\n let fields = Array.from(\n this.host.querySelectorAll<NanoFormEles>(`\n nano-input,\n nano-select,\n nano-file-upload,\n nano-date-input,\n nano-checkbox\n `)\n );\n fields = fields.filter((f) => !!f.name && !!f.name.length);\n\n // do we have any currently un-watched fields?\n if (!fields.filter((f) => !this.fields.includes(f)).length) return;\n\n // setup the initial store state / refresh on new fields\n this.fields = fields;\n this.validateOnChange();\n this.setFieldValue(this.fields);\n this.nanoPayloadChange.emit(this.store.state);\n }\n\n /** Loops through all `nano-...` fields and extracts their values into our store */\n private setFieldValue(fields: NanoFormEles[]) {\n fields.forEach((field) => {\n const fieldName = field.name;\n if (!fieldName.length) return;\n\n switch (field.tagName) {\n case 'NANO-CHECKBOX':\n let cb = field as HTMLNanoCheckboxElement;\n if (\n cb.type === 'radio' ||\n cb.type === 'segment' ||\n cb.type === 'segment-pill'\n ) {\n if (cb.checked) this.store.state[fieldName] = cb.value;\n else if (\n !cb.checked &&\n (cb.value === this.store.state[fieldName] ||\n !this.store.state[fieldName])\n )\n this.store.state[fieldName] = '';\n } else if (\n this.fields.filter(\n (f) => f.name === fieldName && f.tagName === 'NANO-CHECKBOX'\n ).length > 1\n ) {\n const currentArr = Array.isArray(this.store.state[fieldName])\n ? this.store.state[fieldName]\n : [];\n if (cb.checked) {\n if (!this.store.state[fieldName].includes(cb.value)) {\n this.store.state[fieldName] = [...currentArr, cb.value];\n }\n } else {\n this.store.state[fieldName] = currentArr.filter(\n (v) => v !== cb.value\n );\n }\n } else this.store.state[fieldName] = cb.value;\n break;\n case 'NANO-FILE-UPLOAD':\n this.store.state[fieldName] = (\n field as HTMLNanoFileUploadElement\n ).files;\n break;\n default:\n this.store.state[fieldName] = field.value;\n break;\n }\n });\n }\n\n /** Checks for user defined validations */\n private async validate(key: string | number, newVal: any) {\n if (!this.validation) return;\n\n const res = this.validation(key as string, newVal, this.store.state);\n\n // no nothing - return\n if (!res) return;\n\n // stencil public methods are async\n // so we must to coerce our validation\n // collection loop into a promise\n await Promise.all(\n Object.entries(res).map(async ([key, o]) => {\n // switch on/off validation messages\n const field = this.fields.find((f) => f.name === key);\n let validityTarget: NanoFormEles | HTMLNanoCheckboxGroupElement = field;\n\n if (field.tagName === 'NANO-CHECKBOX') {\n const cbg = field.closest('nano-checkbox-group');\n validityTarget = cbg || field;\n }\n\n // status is now valid - clear the error\n if (validityTarget.validityMessage === o.msg && o.valid)\n await this.setFieldError(validityTarget, '');\n // status is invalid. Set the error\n else if (!o.valid) {\n await this.setFieldError(validityTarget, o.msg);\n }\n })\n );\n }\n\n /**\n * Utility to smooth out setting error messages\n * (it's a different method on `nano-checkbox` 'cos they don't show errors themselves)\n * @param field\n * @param msg\n */\n private async setFieldError(\n field: NanoFormEles | HTMLNanoCheckboxGroupElement,\n msg: string\n ) {\n if (field['showError'])\n await (field as Exclude<NanoFormEles, HTMLNanoCheckboxElement>).showError(\n msg\n );\n else await (field as HTMLNanoCheckboxElement).setError(msg);\n }\n\n /** Loops through all store entries and checks field validity */\n private async validateAllFields() {\n // This forces our loop to `await` and finish sequentially ... silly async stencil methods\n await Object.entries(this.store.state).reduce(\n async (memo, [key, value]) => {\n await memo;\n await this.validate(key, value);\n },\n undefined as any\n );\n }\n\n private scrollToFirstInvalid() {\n if (!this.scrollToInvalid) return;\n\n setTimeout(() => {\n const invalidField = this.validationState.find((f) => !f.valid);\n if (!invalidField) return;\n invalidField.fields[0].scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n }, 200);\n }\n\n private submitForm() {\n const nanoSubmit = this.nanoSubmit.emit();\n if (nanoSubmit.defaultPrevented) return;\n this.activeForm.submit();\n }\n\n // Event handlers\n\n /** Fired whenever store values change and potentially checks validity */\n private handleStoreChange = async (_key: string | number, _newVal: any) => {\n if (this.validateOn === 'dirty' && this.dirty) {\n this.internalValidate = true;\n await this.validateAllFields();\n this._valid = this.activeForm.checkValidity();\n this.internalValidate = false;\n }\n this.nanoPayloadChange.emit(this.store.state);\n };\n\n /** Handles field value changes and passes to store */\n private handleFieldChange = (ev: NanoEvent) => {\n this._dirty = true;\n this.setFieldValue([ev.target]);\n };\n\n /** Handles default field validation events */\n private handleFormInvalid = async (ev: Event) => {\n ev.preventDefault();\n this._valid = false;\n\n if (this.internalValidate) return;\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n this.submitted = true;\n\n await this.validateAllFields();\n\n // kinda insane...but if we're only validating on submit, then if the form is currently\n // in an invalid state, when submitting, it will fire an invalid event and not\n // submit the form. So let's test to make sure it is really invalid, and submit if not\n if (this.validateOn === 'submit') {\n this.internalValidate = true;\n this._valid = this.activeForm.checkValidity();\n this.internalValidate = false;\n\n if (this._valid) {\n this.submitForm();\n return;\n }\n }\n\n this.scrollToFirstInvalid();\n this.nanoInvalid.emit();\n };\n\n /** stops default form submission, checks if valid, then submits manually */\n private handleSubmit = async (e: Event) => {\n e.preventDefault();\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n this.submitted = true;\n await this.validateAllFields();\n\n this.internalValidate = true;\n this._valid = this.activeForm.checkValidity();\n this.internalValidate = false;\n\n if (!this._valid) {\n this.scrollToFirstInvalid();\n return;\n }\n this.submitForm();\n };\n\n connectedCallback(): void {\n this.userForm = this.host.querySelector('form');\n }\n\n componentDidLoad() {\n requestAnimationFrame(() => {\n this.store = createStore<ValueStore>({});\n\n this.setupFields();\n this.attachSlotObserver();\n\n this.store.on('set', (key, value) => this.handleStoreChange(key, value));\n this.host.addEventListener('nanoChange', this.handleFieldChange);\n this.host.addEventListener('submit', this.handleSubmit);\n });\n }\n\n disconnectedCallback() {\n if (this.mo) this.mo.disconnect();\n this.store.dispose();\n this.host.removeEventListener('nanoChange', this.handleFieldChange);\n this.host.removeEventListener('submit', this.handleSubmit);\n if (this.activeForm)\n this.activeForm.removeEventListener(\n 'invalid',\n this.handleFormInvalid,\n true\n );\n }\n\n render() {\n return (\n <Host>\n {this.userForm && <slot />}\n {!this.userForm && (\n <form ref={(f) => (this.activeForm = f)}>\n <slot />\n </form>\n )}\n </Host>\n );\n }\n}\n"],"version":3}