@nanoporetech-digital/components 2.9.0 → 2.10.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 (473) hide show
  1. package/CHANGELOG.md +23 -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/index-cb62df44.js +5 -0
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/nano-algolia-filter.cjs.entry.js +1 -1
  9. package/dist/cjs/nano-algolia-input.cjs.entry.js +2 -2
  10. package/dist/cjs/nano-algolia.cjs.entry.js +2 -2
  11. package/dist/cjs/nano-checkbox-group.cjs.entry.js +58 -20
  12. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  13. package/dist/cjs/nano-checkbox.cjs.entry.js +27 -15
  14. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  15. package/dist/cjs/nano-components.cjs.js +1 -1
  16. package/dist/cjs/nano-date-input.cjs.entry.js +17 -4
  17. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nano-dialog.cjs.entry.js +13 -2
  19. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  20. package/dist/cjs/nano-field-validator.cjs.entry.js +529 -0
  21. package/dist/cjs/nano-field-validator.cjs.entry.js.map +1 -0
  22. package/dist/cjs/nano-file-upload.cjs.entry.js +59 -36
  23. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  24. package/dist/cjs/nano-global-nav.cjs.entry.js +2 -2
  25. package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nano-input.cjs.entry.js +25 -13
  27. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  28. package/dist/cjs/nano-nav-item_2.cjs.entry.js +40 -15
  29. package/dist/cjs/nano-nav-item_2.cjs.entry.js.map +1 -1
  30. package/dist/cjs/nano-sticker.cjs.entry.js +2 -2
  31. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  32. package/dist/cjs/nano-tab-group.cjs.entry.js +1 -1
  33. package/dist/collection/collection-manifest.json +2 -1
  34. package/dist/collection/components/accordion/accordion.js +1 -1
  35. package/dist/collection/components/alert/alert.js +1 -1
  36. package/dist/collection/components/algolia/algolia-filter.js +2 -2
  37. package/dist/collection/components/algolia/algolia-input.js +5 -5
  38. package/dist/collection/components/algolia/algolia-results.js +1 -1
  39. package/dist/collection/components/algolia/algolia.js +6 -6
  40. package/dist/collection/components/checkbox/checkbox-group.css +5 -5
  41. package/dist/collection/components/checkbox/checkbox-group.js +119 -25
  42. package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
  43. package/dist/collection/components/checkbox/checkbox.css +1 -1
  44. package/dist/collection/components/checkbox/checkbox.js +83 -22
  45. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  46. package/dist/collection/components/datalist/datalist.js +1 -1
  47. package/dist/collection/components/date-input/date-input.js +44 -12
  48. package/dist/collection/components/date-input/date-input.js.map +1 -1
  49. package/dist/collection/components/date-picker/date-picker.js +5 -5
  50. package/dist/collection/components/details/details.js +1 -1
  51. package/dist/collection/components/dialog/dialog.js +34 -1
  52. package/dist/collection/components/dialog/dialog.js.map +1 -1
  53. package/dist/collection/components/dropdown/dropdown.js +1 -1
  54. package/dist/collection/components/field-validator/field-validator.js +577 -0
  55. package/dist/collection/components/field-validator/field-validator.js.map +1 -0
  56. package/dist/collection/components/file-upload/file-upload.css +17 -5
  57. package/dist/collection/components/file-upload/file-upload.js +111 -44
  58. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  59. package/dist/collection/components/global-nav/global-nav.js +4 -4
  60. package/dist/collection/components/grid/grid-item.js +1 -1
  61. package/dist/collection/components/icon/icon.js +2 -2
  62. package/dist/collection/components/icon/icon.js.map +1 -1
  63. package/dist/collection/components/input/input.css +2 -2
  64. package/dist/collection/components/input/input.js +51 -22
  65. package/dist/collection/components/input/input.js.map +1 -1
  66. package/dist/collection/components/nav-item/nav-item.js +4 -4
  67. package/dist/collection/components/range/range.js +4 -4
  68. package/dist/collection/components/resize-observe/resize-observe.js +1 -1
  69. package/dist/collection/components/select/select.css +2 -2
  70. package/dist/collection/components/select/select.js +74 -25
  71. package/dist/collection/components/select/select.js.map +1 -1
  72. package/dist/collection/components/slides/slides.js +7 -7
  73. package/dist/collection/components/{sticky → sticker}/sticker.css +0 -0
  74. package/dist/collection/components/{sticky → sticker}/sticker.js +2 -2
  75. package/dist/collection/components/sticker/sticker.js.map +1 -0
  76. package/dist/collection/components/tabs/tab-group.js +2 -2
  77. package/dist/collection/utils/store/component-store.js +4 -13
  78. package/dist/collection/utils/store/component-store.js.map +1 -1
  79. package/dist/collection/utils/store/get-set.js +15 -1
  80. package/dist/collection/utils/store/get-set.js.map +1 -1
  81. package/dist/components/algoliasearch.umd.js +2 -2
  82. package/dist/components/algoliasearch.umd.js.map +1 -1
  83. package/dist/components/component-store.js +36 -24
  84. package/dist/components/component-store.js.map +1 -1
  85. package/dist/components/icon.js.map +1 -1
  86. package/dist/components/input.js +27 -14
  87. package/dist/components/input.js.map +1 -1
  88. package/dist/components/nano-checkbox-group.js +62 -21
  89. package/dist/components/nano-checkbox-group.js.map +1 -1
  90. package/dist/components/nano-checkbox.js +31 -17
  91. package/dist/components/nano-checkbox.js.map +1 -1
  92. package/dist/components/nano-date-input.js +18 -4
  93. package/dist/components/nano-date-input.js.map +1 -1
  94. package/dist/components/nano-dialog.js +13 -1
  95. package/dist/components/nano-dialog.js.map +1 -1
  96. package/dist/components/nano-field-validator.d.ts +11 -0
  97. package/dist/components/nano-field-validator.js +557 -0
  98. package/dist/components/nano-field-validator.js.map +1 -0
  99. package/dist/components/nano-file-upload.js +62 -37
  100. package/dist/components/nano-file-upload.js.map +1 -1
  101. package/dist/components/select.js +44 -17
  102. package/dist/components/select.js.map +1 -1
  103. package/dist/components/sticker.js +2 -2
  104. package/dist/components/sticker.js.map +1 -1
  105. package/dist/custom-elements/index.d.ts +6 -0
  106. package/dist/custom-elements/index.js +2436 -554
  107. package/dist/custom-elements/index.js.map +1 -1
  108. package/dist/esm/{algolia-data-dd72d1b7.js → algolia-data-80c1169a.js} +2 -2
  109. package/dist/esm/{algolia-data-dd72d1b7.js.map → algolia-data-80c1169a.js.map} +1 -1
  110. package/dist/esm/{algoliasearch.umd-6143495f.js → algoliasearch.umd-86359963.js} +3 -3
  111. package/dist/esm/{algoliasearch.umd-6143495f.js.map → algoliasearch.umd-86359963.js.map} +1 -1
  112. package/dist/esm/{component-store-b6fbfa35.js → component-store-d238fee4.js} +38 -26
  113. package/dist/esm/component-store-d238fee4.js.map +1 -0
  114. package/dist/esm/{form-control-cf23c6a2.js → form-control-ad05507c.js} +2 -2
  115. package/dist/esm/{form-control-cf23c6a2.js.map → form-control-ad05507c.js.map} +1 -1
  116. package/dist/esm/{index-5f8d16e7.js → index-c42becad.js} +7 -2
  117. package/dist/esm/{index-5f8d16e7.js.map → index-c42becad.js.map} +1 -1
  118. package/dist/esm/loader.js +2 -2
  119. package/dist/esm/nano-accordion.entry.js +1 -1
  120. package/dist/esm/nano-alert.entry.js +1 -1
  121. package/dist/esm/nano-algolia-filter.entry.js +3 -3
  122. package/dist/esm/nano-algolia-input.entry.js +4 -4
  123. package/dist/esm/nano-algolia-pagination.entry.js +2 -2
  124. package/dist/esm/nano-algolia-results.entry.js +2 -2
  125. package/dist/esm/nano-algolia.entry.js +4 -4
  126. package/dist/esm/nano-aspect-ratio.entry.js +1 -1
  127. package/dist/esm/nano-checkbox-group.entry.js +59 -21
  128. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  129. package/dist/esm/nano-checkbox.entry.js +28 -16
  130. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  131. package/dist/esm/nano-components.js +2 -2
  132. package/dist/esm/nano-datalist_3.entry.js +1 -1
  133. package/dist/esm/nano-date-input.entry.js +18 -5
  134. package/dist/esm/nano-date-input.entry.js.map +1 -1
  135. package/dist/esm/nano-date-picker.entry.js +1 -1
  136. package/dist/esm/nano-details.entry.js +1 -1
  137. package/dist/esm/nano-dialog.entry.js +14 -3
  138. package/dist/esm/nano-dialog.entry.js.map +1 -1
  139. package/dist/esm/nano-drawer.entry.js +1 -1
  140. package/dist/esm/nano-dropdown.entry.js +1 -1
  141. package/dist/esm/nano-field-validator.entry.js +525 -0
  142. package/dist/esm/nano-field-validator.entry.js.map +1 -0
  143. package/dist/esm/nano-file-upload.entry.js +60 -37
  144. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  145. package/dist/esm/nano-global-nav.entry.js +3 -3
  146. package/dist/esm/nano-global-search-results.entry.js +1 -1
  147. package/dist/esm/nano-grid_3.entry.js +1 -1
  148. package/dist/esm/nano-hero.entry.js +1 -1
  149. package/dist/esm/nano-icon-button.entry.js +1 -1
  150. package/dist/esm/nano-icon.entry.js +1 -1
  151. package/dist/esm/nano-icon.entry.js.map +1 -1
  152. package/dist/esm/nano-input.entry.js +28 -16
  153. package/dist/esm/nano-input.entry.js.map +1 -1
  154. package/dist/esm/nano-menu-drawer.entry.js +1 -1
  155. package/dist/esm/nano-nav-item_2.entry.js +43 -18
  156. package/dist/esm/nano-nav-item_2.entry.js.map +1 -1
  157. package/dist/esm/nano-range.entry.js +1 -1
  158. package/dist/esm/nano-rating.entry.js +1 -1
  159. package/dist/esm/nano-resize-observe_2.entry.js +1 -1
  160. package/dist/esm/nano-slide.entry.js +1 -1
  161. package/dist/esm/nano-slides.entry.js +1 -1
  162. package/dist/esm/nano-spinner.entry.js +1 -1
  163. package/dist/esm/nano-split-pane.entry.js +1 -1
  164. package/dist/esm/nano-sticker.entry.js +3 -3
  165. package/dist/esm/nano-sticker.entry.js.map +1 -1
  166. package/dist/esm/nano-tab-content.entry.js +1 -1
  167. package/dist/esm/nano-tab-group.entry.js +2 -2
  168. package/dist/esm/nano-tab.entry.js +1 -1
  169. package/dist/esm/nano-tooltip.entry.js +1 -1
  170. package/dist/esm-es5/{algolia-data-dd72d1b7.js → algolia-data-80c1169a.js} +2 -2
  171. package/dist/esm-es5/{algolia-data-dd72d1b7.js.map → algolia-data-80c1169a.js.map} +0 -0
  172. package/dist/esm-es5/{algoliasearch.umd-6143495f.js → algoliasearch.umd-86359963.js} +3 -3
  173. package/dist/esm-es5/{algoliasearch.umd-6143495f.js.map → algoliasearch.umd-86359963.js.map} +1 -1
  174. package/dist/esm-es5/component-store-d238fee4.js +5 -0
  175. package/dist/esm-es5/component-store-d238fee4.js.map +1 -0
  176. package/dist/esm-es5/{form-control-cf23c6a2.js → form-control-ad05507c.js} +2 -2
  177. package/dist/esm-es5/{form-control-cf23c6a2.js.map → form-control-ad05507c.js.map} +0 -0
  178. package/dist/esm-es5/{index-5f8d16e7.js → index-c42becad.js} +2 -2
  179. package/dist/esm-es5/{index-5f8d16e7.js.map → index-c42becad.js.map} +0 -0
  180. package/dist/esm-es5/loader.js +1 -1
  181. package/dist/esm-es5/loader.js.map +1 -1
  182. package/dist/esm-es5/nano-accordion.entry.js +1 -1
  183. package/dist/esm-es5/nano-alert.entry.js +1 -1
  184. package/dist/esm-es5/nano-algolia-filter.entry.js +1 -1
  185. package/dist/esm-es5/nano-algolia-input.entry.js +1 -1
  186. package/dist/esm-es5/nano-algolia-pagination.entry.js +1 -1
  187. package/dist/esm-es5/nano-algolia-results.entry.js +1 -1
  188. package/dist/esm-es5/nano-algolia.entry.js +1 -1
  189. package/dist/esm-es5/nano-aspect-ratio.entry.js +1 -1
  190. package/dist/esm-es5/nano-checkbox-group.entry.js +2 -2
  191. package/dist/esm-es5/nano-checkbox-group.entry.js.map +1 -1
  192. package/dist/esm-es5/nano-checkbox.entry.js +1 -1
  193. package/dist/esm-es5/nano-checkbox.entry.js.map +1 -1
  194. package/dist/esm-es5/nano-components.js +1 -1
  195. package/dist/esm-es5/nano-components.js.map +1 -1
  196. package/dist/esm-es5/nano-datalist_3.entry.js +1 -1
  197. package/dist/esm-es5/nano-date-input.entry.js +1 -1
  198. package/dist/esm-es5/nano-date-input.entry.js.map +1 -1
  199. package/dist/esm-es5/nano-date-picker.entry.js +1 -1
  200. package/dist/esm-es5/nano-details.entry.js +1 -1
  201. package/dist/esm-es5/nano-dialog.entry.js +1 -1
  202. package/dist/esm-es5/nano-dialog.entry.js.map +1 -1
  203. package/dist/esm-es5/nano-drawer.entry.js +1 -1
  204. package/dist/esm-es5/nano-dropdown.entry.js +1 -1
  205. package/dist/esm-es5/nano-field-validator.entry.js +5 -0
  206. package/dist/esm-es5/nano-field-validator.entry.js.map +1 -0
  207. package/dist/esm-es5/nano-file-upload.entry.js +2 -2
  208. package/dist/esm-es5/nano-file-upload.entry.js.map +1 -1
  209. package/dist/esm-es5/nano-global-nav.entry.js +1 -1
  210. package/dist/esm-es5/nano-global-search-results.entry.js +1 -1
  211. package/dist/esm-es5/nano-grid_3.entry.js +1 -1
  212. package/dist/esm-es5/nano-hero.entry.js +1 -1
  213. package/dist/esm-es5/nano-icon-button.entry.js +1 -1
  214. package/dist/esm-es5/nano-icon.entry.js +1 -1
  215. package/dist/esm-es5/nano-icon.entry.js.map +1 -1
  216. package/dist/esm-es5/nano-input.entry.js +1 -1
  217. package/dist/esm-es5/nano-input.entry.js.map +1 -1
  218. package/dist/esm-es5/nano-menu-drawer.entry.js +1 -1
  219. package/dist/esm-es5/nano-nav-item_2.entry.js +1 -1
  220. package/dist/esm-es5/nano-nav-item_2.entry.js.map +1 -1
  221. package/dist/esm-es5/nano-range.entry.js +1 -1
  222. package/dist/esm-es5/nano-rating.entry.js +1 -1
  223. package/dist/esm-es5/nano-resize-observe_2.entry.js +1 -1
  224. package/dist/esm-es5/nano-slide.entry.js +1 -1
  225. package/dist/esm-es5/nano-slides.entry.js +1 -1
  226. package/dist/esm-es5/nano-spinner.entry.js +1 -1
  227. package/dist/esm-es5/nano-split-pane.entry.js +1 -1
  228. package/dist/esm-es5/nano-sticker.entry.js +1 -1
  229. package/dist/esm-es5/nano-sticker.entry.js.map +1 -1
  230. package/dist/esm-es5/nano-tab-content.entry.js +1 -1
  231. package/dist/esm-es5/nano-tab-group.entry.js +1 -1
  232. package/dist/esm-es5/nano-tab.entry.js +2 -2
  233. package/dist/esm-es5/nano-tooltip.entry.js +1 -1
  234. package/dist/nano-components/nano-components.css +1 -1
  235. package/dist/nano-components/nano-components.esm.js +1 -1
  236. package/dist/nano-components/nano-components.esm.js.map +1 -1
  237. package/dist/nano-components/nano-components.js +1 -1
  238. package/dist/nano-components/{p-6f94d755.entry.js → p-00eaa36a.entry.js} +2 -2
  239. package/dist/nano-components/{p-6f94d755.entry.js.map → p-00eaa36a.entry.js.map} +0 -0
  240. package/dist/nano-components/{p-4429caac.system.entry.js → p-0c6c2141.system.entry.js} +2 -2
  241. package/dist/nano-components/{p-4429caac.system.entry.js.map → p-0c6c2141.system.entry.js.map} +0 -0
  242. package/dist/nano-components/{p-7232c046.system.entry.js → p-0d0dfc06.system.entry.js} +2 -2
  243. package/dist/nano-components/{p-7232c046.system.entry.js.map → p-0d0dfc06.system.entry.js.map} +0 -0
  244. package/dist/nano-components/{p-e562bffd.entry.js → p-0e2e3f4a.entry.js} +2 -2
  245. package/dist/nano-components/{p-e562bffd.entry.js.map → p-0e2e3f4a.entry.js.map} +0 -0
  246. package/dist/nano-components/{p-56ba0d63.entry.js → p-1030797a.entry.js} +2 -2
  247. package/dist/nano-components/{p-56ba0d63.entry.js.map → p-1030797a.entry.js.map} +0 -0
  248. package/dist/nano-components/p-11451a4b.system.entry.js +5 -0
  249. package/dist/nano-components/p-11451a4b.system.entry.js.map +1 -0
  250. package/dist/nano-components/p-129e2b4b.system.js +5 -0
  251. package/dist/nano-components/p-129e2b4b.system.js.map +1 -0
  252. package/dist/nano-components/{p-c0ddb4c3.entry.js → p-166ade3e.entry.js} +2 -2
  253. package/dist/nano-components/{p-c0ddb4c3.entry.js.map → p-166ade3e.entry.js.map} +0 -0
  254. package/dist/nano-components/{p-5653961d.system.entry.js → p-1a30dfdd.system.entry.js} +2 -2
  255. package/dist/nano-components/p-1a30dfdd.system.entry.js.map +1 -0
  256. package/dist/nano-components/p-1b120f53.entry.js +5 -0
  257. package/dist/nano-components/p-1b120f53.entry.js.map +1 -0
  258. package/dist/nano-components/{p-7d351076.system.entry.js → p-21af2a5e.system.entry.js} +2 -2
  259. package/dist/nano-components/{p-7d351076.system.entry.js.map → p-21af2a5e.system.entry.js.map} +0 -0
  260. package/dist/nano-components/{p-346588cc.entry.js → p-222d8095.entry.js} +2 -2
  261. package/dist/nano-components/{p-346588cc.entry.js.map → p-222d8095.entry.js.map} +0 -0
  262. package/dist/nano-components/{p-933c35a6.system.entry.js → p-241d90eb.system.entry.js} +2 -2
  263. package/dist/nano-components/{p-933c35a6.system.entry.js.map → p-241d90eb.system.entry.js.map} +0 -0
  264. package/dist/nano-components/{p-040b6cda.entry.js → p-2649fc8e.entry.js} +2 -2
  265. package/dist/nano-components/{p-040b6cda.entry.js.map → p-2649fc8e.entry.js.map} +0 -0
  266. package/dist/nano-components/{p-3456db01.entry.js → p-27efac97.entry.js} +2 -2
  267. package/dist/nano-components/{p-3456db01.entry.js.map → p-27efac97.entry.js.map} +0 -0
  268. package/dist/nano-components/{p-462ad4f1.entry.js → p-2c8d7273.entry.js} +2 -2
  269. package/dist/nano-components/{p-462ad4f1.entry.js.map → p-2c8d7273.entry.js.map} +0 -0
  270. package/dist/nano-components/{p-2e6c55e2.entry.js → p-2d53d1a0.entry.js} +2 -2
  271. package/dist/nano-components/{p-2e6c55e2.entry.js.map → p-2d53d1a0.entry.js.map} +0 -0
  272. package/dist/nano-components/{p-1f99d776.entry.js → p-3093915f.entry.js} +2 -2
  273. package/dist/nano-components/{p-1f99d776.entry.js.map → p-3093915f.entry.js.map} +0 -0
  274. package/dist/nano-components/{p-8a8f893b.system.entry.js → p-316f83a9.system.entry.js} +2 -2
  275. package/dist/nano-components/{p-8a8f893b.system.entry.js.map → p-316f83a9.system.entry.js.map} +0 -0
  276. package/dist/nano-components/{p-7246bef5.entry.js → p-325c1cad.entry.js} +2 -2
  277. package/dist/nano-components/{p-7246bef5.entry.js.map → p-325c1cad.entry.js.map} +0 -0
  278. package/dist/nano-components/{p-ec39b143.system.entry.js → p-32f396c0.system.entry.js} +2 -2
  279. package/dist/nano-components/{p-ec39b143.system.entry.js.map → p-32f396c0.system.entry.js.map} +0 -0
  280. package/dist/nano-components/p-32f4516e.js +5 -0
  281. package/dist/nano-components/p-32f4516e.js.map +1 -0
  282. package/dist/nano-components/{p-43543d18.entry.js → p-333237e8.entry.js} +2 -2
  283. package/dist/nano-components/{p-43543d18.entry.js.map → p-333237e8.entry.js.map} +0 -0
  284. package/dist/nano-components/{p-1e8321ea.entry.js → p-35108e08.entry.js} +2 -2
  285. package/dist/nano-components/{p-1e8321ea.entry.js.map → p-35108e08.entry.js.map} +0 -0
  286. package/dist/nano-components/{p-a898bf92.system.entry.js → p-379e21d9.system.entry.js} +2 -2
  287. package/dist/nano-components/{p-a898bf92.system.entry.js.map → p-379e21d9.system.entry.js.map} +0 -0
  288. package/dist/nano-components/{p-3ad1d5aa.system.entry.js → p-39d36fd1.system.entry.js} +2 -2
  289. package/dist/nano-components/{p-3ad1d5aa.system.entry.js.map → p-39d36fd1.system.entry.js.map} +0 -0
  290. package/dist/nano-components/{p-41a2e2e4.system.js → p-3a00de47.system.js} +2 -2
  291. package/dist/nano-components/{p-41a2e2e4.system.js.map → p-3a00de47.system.js.map} +0 -0
  292. package/dist/nano-components/{p-6afdb510.system.entry.js → p-3ccb176c.system.entry.js} +2 -2
  293. package/dist/nano-components/{p-6afdb510.system.entry.js.map → p-3ccb176c.system.entry.js.map} +0 -0
  294. package/dist/nano-components/{p-08b43111.entry.js → p-3e930ac7.entry.js} +2 -2
  295. package/dist/nano-components/{p-08b43111.entry.js.map → p-3e930ac7.entry.js.map} +0 -0
  296. package/dist/nano-components/{p-d8d8bac6.system.entry.js → p-42cebbfe.system.entry.js} +2 -2
  297. package/dist/nano-components/{p-d8d8bac6.system.entry.js.map → p-42cebbfe.system.entry.js.map} +0 -0
  298. package/dist/nano-components/{p-1ca46443.entry.js → p-45070c8f.entry.js} +2 -2
  299. package/dist/nano-components/{p-1ca46443.entry.js.map → p-45070c8f.entry.js.map} +0 -0
  300. package/dist/nano-components/{p-3ef30ded.system.entry.js → p-48874481.system.entry.js} +2 -2
  301. package/dist/nano-components/{p-3ef30ded.system.entry.js.map → p-48874481.system.entry.js.map} +0 -0
  302. package/dist/nano-components/{p-08ffc9a1.entry.js → p-4e2c0abb.entry.js} +2 -2
  303. package/dist/nano-components/{p-08ffc9a1.entry.js.map → p-4e2c0abb.entry.js.map} +0 -0
  304. package/dist/nano-components/{p-090f22a9.system.entry.js → p-5100ae70.system.entry.js} +2 -2
  305. package/dist/nano-components/{p-090f22a9.system.entry.js.map → p-5100ae70.system.entry.js.map} +0 -0
  306. package/dist/nano-components/{p-593de29b.system.entry.js → p-52769304.system.entry.js} +2 -2
  307. package/dist/nano-components/{p-593de29b.system.entry.js.map → p-52769304.system.entry.js.map} +0 -0
  308. package/dist/nano-components/{p-8278c5d2.system.entry.js → p-56f86047.system.entry.js} +2 -2
  309. package/dist/nano-components/{p-8278c5d2.system.entry.js.map → p-56f86047.system.entry.js.map} +0 -0
  310. package/dist/nano-components/{p-2057d480.system.entry.js → p-5b66bb8f.system.entry.js} +2 -2
  311. package/dist/nano-components/{p-2057d480.system.entry.js.map → p-5b66bb8f.system.entry.js.map} +0 -0
  312. package/dist/nano-components/{p-033296c7.system.entry.js → p-5d17cfbb.system.entry.js} +2 -2
  313. package/dist/nano-components/{p-033296c7.system.entry.js.map → p-5d17cfbb.system.entry.js.map} +0 -0
  314. package/dist/nano-components/{p-88f17c86.system.entry.js → p-5d5ea4ab.system.entry.js} +2 -2
  315. package/dist/nano-components/{p-88f17c86.system.entry.js.map → p-5d5ea4ab.system.entry.js.map} +0 -0
  316. package/dist/nano-components/{p-20387cde.system.entry.js → p-6b4dd158.system.entry.js} +2 -2
  317. package/dist/nano-components/{p-20387cde.system.entry.js.map → p-6b4dd158.system.entry.js.map} +0 -0
  318. package/dist/nano-components/{p-d24811c8.system.js → p-6b5760b1.system.js} +3 -3
  319. package/dist/nano-components/{p-d24811c8.system.js.map → p-6b5760b1.system.js.map} +1 -1
  320. package/dist/nano-components/p-6d138abf.entry.js +5 -0
  321. package/dist/nano-components/p-6d138abf.entry.js.map +1 -0
  322. package/dist/nano-components/{p-5066e563.system.entry.js → p-6dad332b.system.entry.js} +2 -2
  323. package/dist/nano-components/{p-5066e563.system.entry.js.map → p-6dad332b.system.entry.js.map} +0 -0
  324. package/dist/nano-components/{p-730f60ea.entry.js → p-6ddb51e4.entry.js} +2 -2
  325. package/dist/nano-components/p-6ddb51e4.entry.js.map +1 -0
  326. package/dist/nano-components/p-71bbb7ba.entry.js +5 -0
  327. package/dist/nano-components/p-71bbb7ba.entry.js.map +1 -0
  328. package/dist/nano-components/{p-a6c84740.js → p-71e9fa33.js} +2 -2
  329. package/dist/nano-components/{p-a6c84740.js.map → p-71e9fa33.js.map} +0 -0
  330. package/dist/nano-components/{p-39a5280e.system.entry.js → p-72ed603c.system.entry.js} +2 -2
  331. package/dist/nano-components/{p-39a5280e.system.entry.js.map → p-72ed603c.system.entry.js.map} +0 -0
  332. package/dist/nano-components/{p-313970ff.entry.js → p-73985eda.entry.js} +2 -2
  333. package/dist/nano-components/{p-313970ff.entry.js.map → p-73985eda.entry.js.map} +0 -0
  334. package/dist/nano-components/{p-58d7f10f.entry.js → p-76c903db.entry.js} +2 -2
  335. package/dist/nano-components/{p-58d7f10f.entry.js.map → p-76c903db.entry.js.map} +0 -0
  336. package/dist/nano-components/{p-3aa1d07d.entry.js → p-76d9d1d4.entry.js} +2 -2
  337. package/dist/nano-components/p-76d9d1d4.entry.js.map +1 -0
  338. package/dist/nano-components/{p-f53989c3.system.entry.js → p-7aa7425d.system.entry.js} +2 -2
  339. package/dist/nano-components/{p-f53989c3.system.entry.js.map → p-7aa7425d.system.entry.js.map} +1 -1
  340. package/dist/nano-components/{p-531d5275.system.entry.js → p-7ad4a27a.system.entry.js} +2 -2
  341. package/dist/nano-components/p-7ad4a27a.system.entry.js.map +1 -0
  342. package/dist/nano-components/{p-2ae4918d.system.entry.js → p-7e55b214.system.entry.js} +2 -2
  343. package/dist/nano-components/{p-2ae4918d.system.entry.js.map → p-7e55b214.system.entry.js.map} +0 -0
  344. package/dist/nano-components/{p-62ecd3a1.system.entry.js → p-7f1374b6.system.entry.js} +2 -2
  345. package/dist/nano-components/{p-62ecd3a1.system.entry.js.map → p-7f1374b6.system.entry.js.map} +0 -0
  346. package/dist/nano-components/{p-1e974cad.entry.js → p-7fe9d769.entry.js} +2 -2
  347. package/dist/nano-components/{p-1e974cad.entry.js.map → p-7fe9d769.entry.js.map} +0 -0
  348. package/dist/nano-components/p-85c8b070.system.entry.js +5 -0
  349. package/dist/nano-components/p-85c8b070.system.entry.js.map +1 -0
  350. package/dist/nano-components/{p-f2e7d2f9.system.entry.js → p-88779174.system.entry.js} +2 -2
  351. package/dist/nano-components/{p-f2e7d2f9.system.entry.js.map → p-88779174.system.entry.js.map} +0 -0
  352. package/dist/nano-components/{p-4535e3bb.entry.js → p-8b6fcd6d.entry.js} +2 -2
  353. package/dist/nano-components/{p-4535e3bb.entry.js.map → p-8b6fcd6d.entry.js.map} +0 -0
  354. package/dist/nano-components/{p-6ade3290.entry.js → p-8eb4f24a.entry.js} +2 -2
  355. package/dist/nano-components/{p-6ade3290.entry.js.map → p-8eb4f24a.entry.js.map} +0 -0
  356. package/dist/nano-components/{p-07bdf44d.entry.js → p-8fe2f846.entry.js} +2 -2
  357. package/dist/nano-components/{p-07bdf44d.entry.js.map → p-8fe2f846.entry.js.map} +0 -0
  358. package/dist/nano-components/p-96150b2c.system.entry.js +5 -0
  359. package/dist/nano-components/p-96150b2c.system.entry.js.map +1 -0
  360. package/dist/nano-components/{p-bcd69559.entry.js → p-97b13ad2.entry.js} +2 -2
  361. package/dist/nano-components/{p-bcd69559.entry.js.map → p-97b13ad2.entry.js.map} +0 -0
  362. package/dist/nano-components/{p-c9c1a345.system.entry.js → p-a02cc654.system.entry.js} +2 -2
  363. package/dist/nano-components/{p-c9c1a345.system.entry.js.map → p-a02cc654.system.entry.js.map} +0 -0
  364. package/dist/nano-components/{p-a77e3fbb.js → p-a0b93616.js} +3 -3
  365. package/dist/nano-components/{p-a77e3fbb.js.map → p-a0b93616.js.map} +1 -1
  366. package/dist/nano-components/p-a4969844.entry.js +5 -0
  367. package/dist/nano-components/p-a4969844.entry.js.map +1 -0
  368. package/dist/nano-components/{p-70dec19f.entry.js → p-a6327a9a.entry.js} +2 -2
  369. package/dist/nano-components/{p-70dec19f.entry.js.map → p-a6327a9a.entry.js.map} +0 -0
  370. package/dist/nano-components/p-a81db037.entry.js +5 -0
  371. package/dist/nano-components/p-a81db037.entry.js.map +1 -0
  372. package/dist/nano-components/{p-a315ed2c.entry.js → p-a9a4fc3e.entry.js} +2 -2
  373. package/dist/nano-components/{p-a315ed2c.entry.js.map → p-a9a4fc3e.entry.js.map} +1 -1
  374. package/dist/nano-components/{p-98222c39.system.entry.js → p-ab07c1fa.system.entry.js} +2 -2
  375. package/dist/nano-components/{p-98222c39.system.entry.js.map → p-ab07c1fa.system.entry.js.map} +0 -0
  376. package/dist/nano-components/{p-ab5813a7.js → p-b5c33aff.js} +2 -2
  377. package/dist/nano-components/{p-ab5813a7.js.map → p-b5c33aff.js.map} +0 -0
  378. package/dist/nano-components/p-bc394857.system.entry.js +5 -0
  379. package/dist/nano-components/p-bc394857.system.entry.js.map +1 -0
  380. package/dist/nano-components/{p-b4f8e541.entry.js → p-bce998f2.entry.js} +2 -2
  381. package/dist/nano-components/{p-b4f8e541.entry.js.map → p-bce998f2.entry.js.map} +0 -0
  382. package/dist/nano-components/{p-92f85aaf.system.entry.js → p-bf9aa89d.system.entry.js} +2 -2
  383. package/dist/nano-components/{p-92f85aaf.system.entry.js.map → p-bf9aa89d.system.entry.js.map} +0 -0
  384. package/dist/nano-components/p-c070ffd3.system.entry.js +5 -0
  385. package/dist/nano-components/p-c070ffd3.system.entry.js.map +1 -0
  386. package/dist/nano-components/{p-50514e5e.entry.js → p-c4156fea.entry.js} +2 -2
  387. package/dist/nano-components/{p-50514e5e.entry.js.map → p-c4156fea.entry.js.map} +0 -0
  388. package/dist/nano-components/p-c9a2d24c.entry.js +5 -0
  389. package/dist/nano-components/p-c9a2d24c.entry.js.map +1 -0
  390. package/dist/nano-components/{p-6eb25600.system.js → p-d01bd3c3.system.js} +2 -2
  391. package/dist/nano-components/{p-6eb25600.system.js.map → p-d01bd3c3.system.js.map} +0 -0
  392. package/dist/nano-components/{p-1238f0fc.system.entry.js → p-d0385948.system.entry.js} +2 -2
  393. package/dist/nano-components/{p-1238f0fc.system.entry.js.map → p-d0385948.system.entry.js.map} +0 -0
  394. package/dist/nano-components/{p-b59d2bd5.entry.js → p-d122b1ff.entry.js} +2 -2
  395. package/dist/nano-components/{p-b59d2bd5.entry.js.map → p-d122b1ff.entry.js.map} +0 -0
  396. package/dist/nano-components/{p-394c3c19.entry.js → p-defd4552.entry.js} +2 -2
  397. package/dist/nano-components/{p-394c3c19.entry.js.map → p-defd4552.entry.js.map} +0 -0
  398. package/dist/nano-components/p-e7140887.system.js +5 -0
  399. package/dist/nano-components/p-e7140887.system.js.map +1 -0
  400. package/dist/nano-components/{p-69439aa1.system.entry.js → p-e817ab4a.system.entry.js} +2 -2
  401. package/dist/nano-components/{p-69439aa1.system.entry.js.map → p-e817ab4a.system.entry.js.map} +0 -0
  402. package/dist/nano-components/{p-22884654.system.entry.js → p-eacf5b5b.system.entry.js} +2 -2
  403. package/dist/nano-components/{p-22884654.system.entry.js.map → p-eacf5b5b.system.entry.js.map} +0 -0
  404. package/dist/nano-components/p-ed336501.entry.js +5 -0
  405. package/dist/nano-components/p-ed336501.entry.js.map +1 -0
  406. package/dist/nano-components/{p-5ae80fd7.js → p-ef7f1e9c.js} +2 -2
  407. package/dist/nano-components/{p-5ae80fd7.js.map → p-ef7f1e9c.js.map} +0 -0
  408. package/dist/nano-components/{p-59b3d24b.system.js → p-f48be9f5.system.js} +2 -2
  409. package/dist/nano-components/{p-59b3d24b.system.js.map → p-f48be9f5.system.js.map} +0 -0
  410. package/dist/nano-components/p-f710c763.system.entry.js +5 -0
  411. package/dist/nano-components/p-f710c763.system.entry.js.map +1 -0
  412. package/dist/nano-components/{p-65c10b3f.entry.js → p-fbe3c89e.entry.js} +2 -2
  413. package/dist/nano-components/{p-65c10b3f.entry.js.map → p-fbe3c89e.entry.js.map} +0 -0
  414. package/dist/nano-components/p-fc3702a0.system.entry.js +5 -0
  415. package/dist/nano-components/p-fc3702a0.system.entry.js.map +1 -0
  416. package/dist/nano-components/{p-ba13bb56.entry.js → p-ffc2063a.entry.js} +2 -2
  417. package/dist/nano-components/{p-ba13bb56.entry.js.map → p-ffc2063a.entry.js.map} +0 -0
  418. package/dist/nano-components/{p-4870e76d.system.entry.js → p-fff27907.system.entry.js} +2 -2
  419. package/dist/nano-components/{p-4870e76d.system.entry.js.map → p-fff27907.system.entry.js.map} +0 -0
  420. package/dist/types/components/checkbox/checkbox-group.d.ts +12 -1
  421. package/dist/types/components/checkbox/checkbox.d.ts +11 -3
  422. package/dist/types/components/date-input/date-input.d.ts +4 -0
  423. package/dist/types/components/dialog/dialog.d.ts +4 -1
  424. package/dist/types/components/field-validator/field-validator.d.ts +125 -0
  425. package/dist/types/components/file-upload/file-upload.d.ts +8 -0
  426. package/dist/types/components/icon/icon.d.ts +1 -1
  427. package/dist/types/components/input/input.d.ts +6 -1
  428. package/dist/types/components/select/select.d.ts +7 -1
  429. package/dist/types/components/{sticky → sticker}/sticker.d.ts +0 -0
  430. package/dist/types/components.d.ts +187 -4
  431. package/dist/types/utils/store/get-set.d.ts +1 -1
  432. package/docs-json.json +436 -14
  433. package/docs-vscode.json +77 -1
  434. package/package.json +3 -2
  435. package/dist/cjs/component-store-722032a5.js.map +0 -1
  436. package/dist/collection/components/sticky/sticker.js.map +0 -1
  437. package/dist/esm/component-store-b6fbfa35.js.map +0 -1
  438. package/dist/esm-es5/component-store-b6fbfa35.js +0 -5
  439. package/dist/esm-es5/component-store-b6fbfa35.js.map +0 -1
  440. package/dist/nano-components/p-096682d9.system.js +0 -5
  441. package/dist/nano-components/p-096682d9.system.js.map +0 -1
  442. package/dist/nano-components/p-09e38c5f.system.entry.js +0 -5
  443. package/dist/nano-components/p-09e38c5f.system.entry.js.map +0 -1
  444. package/dist/nano-components/p-10a6216d.system.entry.js +0 -5
  445. package/dist/nano-components/p-10a6216d.system.entry.js.map +0 -1
  446. package/dist/nano-components/p-3aa1d07d.entry.js.map +0 -1
  447. package/dist/nano-components/p-4265cf95.system.entry.js +0 -5
  448. package/dist/nano-components/p-4265cf95.system.entry.js.map +0 -1
  449. package/dist/nano-components/p-44c08842.system.entry.js +0 -5
  450. package/dist/nano-components/p-44c08842.system.entry.js.map +0 -1
  451. package/dist/nano-components/p-457d4893.entry.js +0 -5
  452. package/dist/nano-components/p-457d4893.entry.js.map +0 -1
  453. package/dist/nano-components/p-531d5275.system.entry.js.map +0 -1
  454. package/dist/nano-components/p-5653961d.system.entry.js.map +0 -1
  455. package/dist/nano-components/p-5a0095f9.js +0 -5
  456. package/dist/nano-components/p-5a0095f9.js.map +0 -1
  457. package/dist/nano-components/p-5a315696.entry.js +0 -5
  458. package/dist/nano-components/p-5a315696.entry.js.map +0 -1
  459. package/dist/nano-components/p-730f60ea.entry.js.map +0 -1
  460. package/dist/nano-components/p-802e1416.system.entry.js +0 -5
  461. package/dist/nano-components/p-802e1416.system.entry.js.map +0 -1
  462. package/dist/nano-components/p-84767e87.entry.js +0 -5
  463. package/dist/nano-components/p-84767e87.entry.js.map +0 -1
  464. package/dist/nano-components/p-971b40a4.system.entry.js +0 -5
  465. package/dist/nano-components/p-971b40a4.system.entry.js.map +0 -1
  466. package/dist/nano-components/p-9d35768b.entry.js +0 -5
  467. package/dist/nano-components/p-9d35768b.entry.js.map +0 -1
  468. package/dist/nano-components/p-9ea13fbe.entry.js +0 -5
  469. package/dist/nano-components/p-9ea13fbe.entry.js.map +0 -1
  470. package/dist/nano-components/p-e1f46998.system.js +0 -5
  471. package/dist/nano-components/p-e1f46998.system.js.map +0 -1
  472. package/dist/nano-components/p-e7c69d4f.entry.js +0 -5
  473. package/dist/nano-components/p-e7c69d4f.entry.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["src/components/input/input.scss?tag=nano-input&encapsulation=scoped","src/components/input/input.tsx"],"names":["inputCss","inputIds","Input","[object Object]","hostRef","this","inputId","didBlurAfterEdit","rtl","charCount","hasRendered","hasFocus","hasLabelSlot","hasHelperSlot","hasHelperEndSlot","errorMessage","datalist","_invalid","autocapitalise","autocomplete","autocorrect","autofocus","clearInput","debounce","disabled","validateOn","showInlineError","hideLabel","floatLabel","name","readonly","required","spellcheck","type","value","resize","rows","showCharCount","validate","ev","nativeInput","validity","valid","preventDefault","validationMessage","nanoValidate","emit","isValid","originalEvent","onInput","input","target","nanoInput","onBlur","focusChanged","nanoBlur","onFocus","nanoFocus","onKeydown","shouldClearOnEdit","hasValue","clearTextInput","stopPropagation","event","window","Event","dispatchEvent","nativeInputWrap","_nativeInputWrap","ele","setDataListOpts","currDWConfig","dropDownConfig","Object","assign","skidding","tetherTo","invalid","validityMessage","requestAnimationFrame","nanoChange","length","style","height","scrollHeight","debounceEvent","validateFirst","Promise","resolve","setTimeout","focus","click","message","setCustomValidity","e","form","document","querySelector","el","closest","kev","raf","key","activeElement","closestElement","tagName","toLowerCase","clearOnEdit","undefined","getValue","mo","disconnect","MutationObserver","processSlottedContent","observe","childList","subtree","querySelectorAll","console","warn","debounceChanged","CustomEvent","detail","slotChangeObserver","_","setFocus","labelId","moreId","helperEndId","ownerDocument","dir","compWrapOptions","label","placeholder","maxlength","wrapOptions","controlId","controlOptions","clearControl","h","Host","aria-disabled","class","createColorClasses","color","has-value","has-focus","is-invalid","FormControlWrap","FormControl","onClearText","control","ref","id","aria-labelledby","accept","autoCapitalize","autoComplete","autoCorrect","autoFocus","inputMode","inputmode","min","max","minLength","minlength","maxLength","multiple","pattern","readOnly","step","size","onChange","onKeyDown","onInvalid","input__native-ctrl","input__resizable"],"mappings":";;;6PAAA,MAAMA,EAAW,izjBCgCjB,IAAIC,EAAW,MAqBFC,EAAK,MAqBhBC,YAAAC,kSAnBQC,KAAAC,QAAU,cAAcL,MACxBI,KAAAE,iBAAmB,MACnBF,KAAAG,IAAe,MAEfH,KAAAI,UAAY,EACZJ,KAAAK,YAAc,MAkBbL,KAAAM,SAAW,MACXN,KAAAO,aAAe,MACfP,KAAAQ,cAAgB,MAChBR,KAAAS,iBAAmB,MACnBT,KAAAU,aAAuB,GACvBV,KAAAW,SAAoC,KAuBpCX,KAAAY,SAAW,MAwBZZ,KAAAa,eACN,OAKMb,KAAAc,aAA6B,MAK7Bd,KAAAe,YAA4B,MAK5Bf,KAAAgB,UAAY,MAKZhB,KAAAiB,WAAa,MAUbjB,KAAAkB,SAAW,EAKMlB,KAAAmB,SAAW,MAoBXnB,KAAAoB,WACvB,kBAKuBpB,KAAAqB,gBAAkB,KAUnCrB,KAAAsB,UAAsB,MAKtBtB,KAAAuB,WAAsB,MA8BtBvB,KAAAwB,KAAexB,KAAKC,QAeHD,KAAAyB,SAAW,MAK5BzB,KAAA0B,SAAW,MAKX1B,KAAA2B,WAAa,MAgBI3B,KAAA4B,KAAuB,OAUvB5B,KAAA6B,MAAwB,GAKzC7B,KAAA8B,OAAoC,OAKpC9B,KAAA+B,KAAO,EAKP/B,KAAAgC,cAAgB,MAwKhBhC,KAAAiC,SAAYC,IAClB,GAAIlC,KAAKoB,aAAe,kBAAmBpB,KAAKoB,WAAa,QAE7D,IAAKpB,KAAKmC,YAAYC,SAASC,MAAO,CACpC,GAAIrC,KAAKqB,gBAAiB,CACxB,GAAIa,EAAIA,EAAGI,iBACXtC,KAAKU,aAAeV,KAAKmC,YAAYI,kBAEvCvC,KAAKY,SAAW,UACXZ,KAAKY,SAAW,MAEvBZ,KAAKwC,aAAaC,KAAK,CACrBC,SAAU1C,KAAKY,SACfF,aAAcV,KAAKmC,YAAYI,kBAC/BI,cAAeT,KAIXlC,KAAA4C,QAAWV,IACjB,MAAMW,EAAQX,EAAGY,OACjB9C,KAAK6B,OAAQgB,IAAK,MAALA,SAAK,OAAA,EAALA,EAAOhB,QAAS,GAC7B7B,KAAK+C,UAAUN,KAAKP,IAGdlC,KAAAgD,OAAS,KACfhD,KAAKM,SAAW,MAChBN,KAAKiD,eACL,GAAIjD,KAAKoB,aAAe,QAASpB,KAAKiC,WACtCjC,KAAKkD,SAAST,QAGRzC,KAAAmD,QAAU,KAChBnD,KAAKM,SAAW,KAChBN,KAAKiD,eACLjD,KAAKoD,UAAUX,QAGTzC,KAAAqD,UAAY,KAClB,GAAIrD,KAAKsD,oBAAqB,CAE5B,GAAItD,KAAKE,kBAAoBF,KAAKuD,WAAY,CAE5CvD,KAAKwD,iBAIPxD,KAAKE,iBAAmB,QAIpBF,KAAAwD,eAAkBtB,IACxB,GAAIlC,KAAKiB,aAAejB,KAAKyB,WAAazB,KAAKmB,UAAYe,EAAI,CAC7DA,EAAGI,iBACHJ,EAAGuB,kBAGLzD,KAAK6B,MAAQ,GACb7B,KAAKmC,YAAYN,MAAQ,GACzB,MAAM6B,EAAQ,IAAIC,OAAOC,MAAM,UAC/B5D,KAAKmC,YAAY0B,cAAcH,IAvc/B1D,KAAKiC,SAAWf,EAASlB,KAAKiC,SAAU,IAV1C6B,sBACE,OAAO9D,KAAK+D,iBAEdD,oBAA4BE,GAC1B,GAAIhE,KAAK+D,mBAAqBC,EAAK,OACnChE,KAAK+D,iBAAmBC,EACxBhE,KAAKiE,kBAePnE,kBACE,IAAKE,KAAKW,SAAU,OACpB,MAAMuD,EAAelE,KAAKW,SAASwD,gBAAkB,GACrDnE,KAAKW,SAASwD,eAAcC,OAAAC,OAAAD,OAAAC,OAAA,GACvBH,GAAY,CACfI,UAAW,EACXC,SAAUvE,KAAK8D,kBAUnBU,cAEE,OAAOxE,KAAKY,SAOd6D,sBAEE,IAAKzE,KAAKmC,YAAa,MAAO,GAC9B,OAAOnC,KAAKmC,YAAYI,kBAwMhBzC,iBACR,IAAKE,KAAKK,YAAa,OACvBqE,uBAAsB,KACpB,GAAI1E,KAAKoB,aAAe,QAASpB,KAAKiC,cAQhCnC,eACRE,KAAK2E,WAAWlC,KAAK,CAAEZ,MAAO7B,KAAK6B,QACnC7B,KAAKI,UAAYJ,KAAK6B,MAAM+C,OAE5B,GAAI5E,KAAK4B,OAAS,YAAc5B,KAAK8B,SAAW,OAAQ,CACtD9B,KAAKmC,YAAY0C,MAAMC,OAAS,OAChC,GAAI9E,KAAK6B,MAAM+C,OACb5E,KAAKmC,YAAY0C,MAAMC,OAAS9E,KAAKmC,YAAY4C,aAAe,KAGpEL,uBAAsB,KACpB,GAAI1E,KAAKoB,aAAe,QAASpB,KAAKiC,cAKhCnC,kBACRE,KAAK2E,WAAaK,EAAchF,KAAK2E,WAAY3E,KAAKkB,UA+CxDpB,qBAAqBmF,GACnB,OAAO,IAAIC,SAASC,IAClB,GAAIF,EAAejF,KAAKiC,WACxBmD,YAAW,KACTD,EAAQ,CACNzC,SAAU1C,KAAKY,SACfF,aAAcV,KAAKmC,YAAYI,sBAEhC,OASPzC,iBACE,GAAIE,KAAKmC,YAAa,CACpBnC,KAAKmC,YAAYkD,QACjBrF,KAAKmC,YAAYmD,SAQrBxF,kBACE,OAAOoF,QAAQC,QAAQnF,KAAKmC,aAO9BrC,gBAAgByF,GACd,GAAIvF,KAAKmC,YAAa,CACpBnC,KAAKmC,YAAYqD,kBAAkBD,GACnCvF,KAAKiC,YAKTnC,QAAQ2F,GACN,MAAMC,EAAO1F,KAAK0F,KACdC,SAASC,cAAc,IAAM5F,KAAK0F,MAClC1F,KAAK6F,GAAGC,QAAQ,QACpB,IAAKJ,GAAQD,EAAE3C,SAAW9C,KAAK6F,GAAGC,QAAQ,QAAS,OAEnD9F,KAAK6B,MAAQ,GAKf/B,WAAW2F,GACT,IAAKzF,KAAKM,SAAU,OAEpB,MAAMyF,EAAMN,EACZ,IAAI3C,EAEJkD,GAAI,KACF,GAAID,EAAIE,IAAK,CACX,GAAIF,EAAIE,MAAQ,MAAO,OACvBnD,EAAS6C,SAASO,mBACbpD,EAAS2C,EAAE3C,OAElB,GAAIqD,EAAenG,KAAK6F,GAAGO,QAAQC,cAAevD,KAAY9C,KAAK6F,GAAI,CACrE7F,KAAKgD,aAKHlD,oBACN,MAAM8B,KAAEA,EAAI0E,YAAEA,GAAgBtG,KAC9B,OAAOsG,IAAgBC,UAAY3E,IAAS,WAAa0E,EAGnDxG,WACN,OAAOE,KAAK6B,OAAS,GAiEf/B,eAEN,IAAKE,KAAKM,UAAYN,KAAKsD,qBAAuBtD,KAAKuD,WAAY,CACjEvD,KAAKE,iBAAmB,MAIpBJ,WACN,OAAOE,KAAKwG,WAAW5B,OAAS,EAG1B9E,qBAGN,GAAIE,KAAKyG,GAAIzG,KAAKyG,GAAGC,aACrB,MAAMD,EAAMzG,KAAKyG,GAAK,IAAIE,kBAAiB,IACzC3G,KAAK4G,0BAEPH,EAAGI,QAAQ7G,KAAK6F,GAAI,CAAEiB,UAAW,KAAMC,QAAS,OAG1CjH,wBAENE,KAAKO,eAAiBP,KAAK6F,GAAGmB,iBAAiB,kBAC/ChH,KAAKQ,gBAAkBR,KAAK6F,GAAGD,cAAc,mBAC7C5F,KAAKS,mBAAqBT,KAAK6F,GAAGD,cAAc,uBAChD5F,KAAKW,SAAWX,KAAK6F,GAAGD,cAAc,6BAGtC,KAAM5F,KAAK6F,GAAGD,cAAc,0BAA2B,CACrDqB,QAAQC,KACN,gFACAlH,KAAK6F,IAKT,KAAM7F,KAAK6F,GAAGD,cAAc,mBAAoB,CAC9CqB,QAAQC,KACN,8DACAlH,KAAK6F,KAKX/F,oBACEE,KAAKmH,kBACgB,CACnBnH,KAAK6F,GAAGhC,cACN,IAAIuD,YAAY,cAAe,CAC7BC,OAAQrH,KAAK6F,OAMrB/F,uBACuB,CACnB6F,SAAS9B,cACP,IAAIuD,YAAY,gBAAiB,CAC/BC,OAAQrH,KAAK6F,MAInB,GAAI7F,KAAKyG,GAAIzG,KAAKyG,GAAGC,aAGvB5G,mBACEE,KAAKsH,qBACLtH,KAAKK,YAAc,KACnB,GAAIL,KAAKgB,UAAWoE,YAAYmC,GAAMvH,KAAKwH,YAAY,KAGzD1H,oBACEE,KAAK4G,wBAGP9G,SACE,MAAM+B,EAAQ7B,KAAKwG,WACnB,MAAMiB,EAAUzH,KAAKC,QAAU,OAC/B,MAAMyH,EACJ1H,KAAKqB,iBAAmBrB,KAAKQ,cAAgBR,KAAKC,QAAU,QAAU,GACxE,MAAM0H,EAAc3H,KAAKS,iBAAmBT,KAAKC,QAAU,UAAY,GACvED,KAAKG,IAAOH,KAAK6F,GAAG+B,cAA2BC,MAAQ,MAEvD,MAAMC,EAAkB,GACtBjC,GAAAA,EACAtE,WAAAA,EACAwG,MAAAA,EACArH,aAAAA,EACAkB,KAAAA,EACAP,gBAAAA,EACAb,cAAAA,EACAD,aAAAA,EACAe,UAAAA,EACA0G,YAAAA,EACAC,UAAAA,EACA7H,UAAAA,EACA4B,cAAAA,EACA7B,IAAAA,EACAM,iBAAAA,MACD,CACCoF,GAAAA,EACAtE,WAAAA,EACAwG,MAAAA,EACArH,aAAAA,EACAkB,KAAAA,EACAP,gBAAAA,EACAb,cAAAA,EACAD,aAAAA,EACAe,UAAAA,EACA0G,YAAAA,EACAC,UAAAA,EACA7H,UAAAA,EACA4B,cAAAA,EACA7B,IAAAA,EACAM,iBAAAA,IA/BsB,CAgCpBT,MACJ,MAAMkI,EAAW9D,OAAAC,OAAAD,OAAAC,OAAA,GACZyD,GAAe,CAClBL,QAAAA,EACAC,OAAAA,EACAC,YAAAA,EACApE,SAAUvD,KAAKuD,WACf4E,UAAWnI,KAAKC,UAGlB,MAAMmI,EAAiB,GAAInH,WAAAA,EAAYQ,SAAAA,EAAUN,SAAAA,MAAU,CACzDF,WAAAA,EACAQ,SAAAA,EACAN,SAAAA,EACAkH,aAAcrI,KAAKiB,aAJE,CAKnBjB,MAEJ,OACEsI,EAACC,EAAI,CAAAC,gBACYxI,KAAKmB,SAAW,OAAS,KACxC0G,IAAK7H,KAAKG,IAAM,MAAQ,KACxBsI,MAAKrE,OAAAC,OAAAD,OAAAC,OAAA,GACAqE,EAAmB1I,KAAK2I,QAAM,CACjCC,YAAa5I,KAAKuD,WAClBsF,YAAa7I,KAAKM,SAClBwI,aAAc9I,KAAKY,YAGrB0H,EAACS,EAAe3E,OAAAC,OAAA,GAAK6D,GACnBI,EAACU,EAAW5E,OAAAC,OAAA,GACN+D,EAAc,CAClBa,YAAajJ,KAAKwD,eAClB0F,QAASlJ,KAAK6F,GACdsD,IAAMtD,GAAQ7F,KAAK8D,gBAAkB+B,IAEpC7F,KAAK4B,OAAS,YACb0G,EAAA,QAAA,CACEc,GAAIpJ,KAAKC,QACTwI,MAAM,qBACNU,IAAMtG,GAAW7C,KAAKmC,YAAcU,EAAMwG,kBACzB5B,EAAU,IAAMC,EAAS,IAAMC,EAChDxG,SAAUnB,KAAKmB,SACfmI,OAAQtJ,KAAKsJ,OACbC,eAAgBvJ,KAAKa,eACrB2I,aAAcxJ,KAAKc,aACnB2I,YAAazJ,KAAKe,YAClB2I,UAAW1J,KAAKgB,UAChB2I,UAAW3J,KAAK4J,UAChBlE,KAAM1F,KAAK0F,KACXmE,IAAK7J,KAAK6J,IACVC,IAAK9J,KAAK8J,IACVC,UAAW/J,KAAKgK,UAChBC,UAAWjK,KAAKiI,UAChBiC,SAAUlK,KAAKkK,SACf1I,KAAMxB,KAAKwB,KACX2I,QAASnK,KAAKmK,QACdnC,YAAahI,KAAKgI,YAClBoC,SAAUpK,KAAKyB,SACfC,SAAU1B,KAAK0B,SACfC,WAAY3B,KAAK2B,WACjB0I,KAAMrK,KAAKqK,KACXC,KAAMtK,KAAKsK,KACX1I,KAAM5B,KAAK4B,KACXC,MAAOA,EACPe,QAAS5C,KAAK4C,QACd2H,SAAUvK,KAAK4C,QACfO,QAASnD,KAAKmD,QACdqH,UAAWxK,KAAKqD,UAChBoH,UAAWzK,KAAKiC,WAGnBjC,KAAK4B,OAAS,YACb0G,EAAA,WAAA,CACEvG,KAAM/B,KAAKuB,WAAa,EAAIvB,KAAK+B,KACjCqH,GAAIpJ,KAAKC,QACTwI,MAAO,CACLiC,qBAAsB,KACtBC,iBAAkB3K,KAAK8B,SAAW,QAEpCqH,IAAMtG,GAAW7C,KAAKmC,YAAcU,EAAMwG,kBACzB5B,EAAU,IAAMC,EAAS,IAAMC,EAChDxG,SAAUnB,KAAKmB,SACfoI,eAAgBvJ,KAAKa,eACrB4I,YAAazJ,KAAKe,YAClB2I,UAAW1J,KAAKgB,UAChB2I,UAAW3J,KAAK4J,UAChBlE,KAAM1F,KAAK0F,KACXqE,UAAW/J,KAAKgK,UAChBC,UAAWjK,KAAKiI,UAChBzG,KAAMxB,KAAKwB,KACXwG,YAAahI,KAAKgI,YAClBoC,SAAUpK,KAAKyB,SACfC,SAAU1B,KAAK0B,SACfC,WAAY3B,KAAK2B,WACjBE,MAAOA,EACPe,QAAS5C,KAAK4C,QACd2H,SAAUvK,KAAK4C,QACfO,QAASnD,KAAKmD,QACdqH,UAAWxK,KAAKqD,UAChBoH,UAAWzK,KAAKiC,YAItBqG,EAAA,OAAA","sourcesContent":["@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import '../form-control/form-control';\n@import '../form-control/form-control-vars';\n\n:host {\n @include formControlVars;\n\n position: relative;\n width: 100%;\n padding: 0 !important;\n color: currentColor;\n display: block;\n}\n\n:host(.nano-color) {\n color: current-color(base);\n\n --input-border-style--focus: #{$input-border-style} var(--nano-color-tint, #{nano-color(primary, tint)});\n}\n\n.input__native-ctrl {\n @include text-inherit();\n\n padding-left: unset;\n padding-right: unset;\n padding-top: 0;\n padding-bottom: 0;\n padding-inline-start: var(--padding-start);\n padding-inline-end: var(--padding-end);\n border-radius: var(--input-border-radius);\n text-overflow: ellipsis;\n color: var(--input-text-color);\n display: inline-block;\n flex: 1;\n width: 100%;\n max-width: 100%;\n max-height: 100%;\n border: 0;\n outline: none;\n background: transparent;\n appearance: none;\n margin: 0;\n box-sizing: border-box;\n resize: none;\n overflow: hidden;\n line-height: 2.5em;\n min-height: 2.5em;\n\n .has-float-label & {\n line-height: 2.1em;\n min-height: 2.1em;\n padding-top: 1.4em;\n }\n\n &::placeholder {\n color: var(--placeholder-color);\n font-family: inherit;\n font-style: var(--placeholder-font-style);\n font-weight: var(--placeholder-font-weight);\n opacity: var(--placeholder-opacity);\n line-height: inherit;\n min-height: inherit;\n }\n\n &::-moz-placeholder {\n line-height: 2.8em;\n text-overflow: ellipsis;\n }\n\n &:-webkit-autofill {\n background-color: transparent;\n }\n\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n appearance: none;\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &::-ms-clear,\n &::-ms-reveal {\n display: none;\n }\n\n &.input__resizable {\n resize: vertical;\n overflow: auto;\n }\n\n .form-ctrl__textarea & {\n line-height: 1.5em;\n padding-top: var(--padding-top);\n padding-bottom: 0.25em;\n white-space: pre-wrap;\n\n &::placeholder {\n line-height: 1.5em;\n }\n\n .has-float-label & {\n padding-top: 1.75em;\n }\n }\n\n :host([readonly]:not([readonly='false'])) & {\n user-select: none;\n }\n}\n","import {\n Build,\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n Watch,\n h,\n Listen,\n} from '@stencil/core';\n\nimport {\n Color,\n ControlValidity,\n ControlValidityEventDetail,\n InputChangeEventDetail,\n TextFieldTypes,\n} from '../../interface';\nimport {\n debounceEvent,\n closestElement,\n createColorClasses,\n raf,\n debounce,\n} from '../../utils';\nimport { FormControl, FormControlWrap } from '../form-control/form-control';\n\nlet inputIds = 0;\n\n/**\n * The input component is a wrapper to the HTML input element with custom styling and additional functionality. It accepts most of the same properties as the HTML [input](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input), but works great on desktop devices and integrates with the keyboard on mobile devices.\n\nIt is meant for text type inputs only, such as \"text\", \"password\", \"email\", \"number\", \"search\", \"tel\", and \"url\". It supports all standard text input events including keyup, keydown, keypress, and more.\nThe default styling reference comes from the [ONT styleguide](https://nanoporetech.zeroheight.com/styleguide/s/31282/p/230c74-text-input--textarea/b/942ee4)\n * @slot start - suitable for inline action buttons or icons that may add extra contextual information\n * @slot end - suitable for inline action buttons or icons that may add extra contextual information\n * @slot value-start - similar to 'start', however clicking elements using this slot will activate the input control. This would be suitable to show a secodary 'value' for context or to show a dropdown arrow if using a datalist\n * @slot value-end - similar to 'end', however clicking elements using this slot will activate the input control. This would be suitable to show a secodary 'value' for context or to show a dropdown arrow if using a datalist\n * @slot label - if you do not set a label attribute, you can use this slot for more complex markup\n * @slot helper - helper text to accompany the form field underneath.\n * @slot helper-end - helper text to accompany the form field on the side.\n * @slot - can be used with a `nano-datalist`. See the `nano-datalist` docs for more information\n */\n@Component({\n tag: 'nano-input',\n styleUrl: 'input.scss',\n scoped: true,\n})\nexport class Input implements ComponentInterface {\n private nativeInput?: HTMLInputElement | HTMLTextAreaElement;\n private inputId = `nano-input-${inputIds++}`;\n private didBlurAfterEdit = false;\n private rtl: boolean = false;\n private mo?: MutationObserver;\n private charCount = 0;\n private hasRendered = false;\n\n // we don't want these rendered eles decorated with @State\n // because that will cause re-renders. User get/set to set datalist options\n private _nativeInputWrap: HTMLElement;\n private get nativeInputWrap() {\n return this._nativeInputWrap;\n }\n private set nativeInputWrap(ele: HTMLElement) {\n if (this._nativeInputWrap === ele) return;\n this._nativeInputWrap = ele;\n this.setDataListOpts();\n }\n\n constructor() {\n this.validate = debounce(this.validate, 50);\n }\n\n @State() hasFocus = false;\n @State() hasLabelSlot = false;\n @State() hasHelperSlot = false;\n @State() hasHelperEndSlot = false;\n @State() errorMessage: string = '';\n @State() datalist: HTMLNanoDatalistElement = null;\n\n @Watch('datalist')\n setDataListOpts() {\n if (!this.datalist) return;\n const currDWConfig = this.datalist.dropDownConfig || {};\n this.datalist.dropDownConfig = {\n ...currDWConfig,\n skidding: -1,\n tetherTo: this.nativeInputWrap,\n };\n }\n\n @Element() el!: HTMLNanoInputElement;\n\n /**\n * This will be true when the control is in an invalid state.\n * Validity is determined by the `required` prop. Or if custom validity message is set. @readonly\n */\n @Prop({ reflect: true })\n get invalid() {\n return this._invalid;\n }\n @State() _invalid = false;\n\n /**\n * Current validation message - if any. @readonly\n */\n @Prop()\n get validityMessage() {\n if (!this.nativeInput) return '';\n return this.nativeInput.validationMessage;\n }\n\n /**\n * The color to use from the application's color palette.\n */\n @Prop() color?: Color;\n\n /**\n * If the value of the type attribute is `\"file\"`, then this attribute will indicate the types of files that the server accepts, otherwise it will be ignored. The value must be a comma-separated list of unique content type specifiers.\n */\n @Prop() accept?: string;\n\n /**\n * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\n */\n @Prop() autocapitalise: 'none' | 'sentences' | 'words' | 'characters' =\n 'none';\n\n /**\n * Indicates whether the value of the control can be automatically completed by the browser.\n */\n @Prop() autocomplete: 'on' | 'off' = 'off';\n\n /**\n * Whether auto correction should be enabled when the user is entering/editing the text value.\n */\n @Prop() autocorrect: 'on' | 'off' = 'off';\n\n /**\n * This Boolean attribute lets you specify that a form control should have input focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input.\n */\n @Prop() clearInput = false;\n\n /**\n * If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `\"password\"`, `false` for all other types.\n */\n @Prop() clearOnEdit?: boolean;\n\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `nanoChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n\n /**\n * If `true`, the user cannot interact with the input.\n */\n @Prop({ reflect: true }) disabled = false;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode?:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search';\n\n /**\n * When should the field perform validation\n */\n @Prop({ mutable: true }) validateOn: 'dirty' | 'submit' | 'submitThenDirty' =\n 'submitThenDirty';\n\n /**\n * Whether to show validation errors underneath input\n */\n @Prop({ reflect: true }) showInlineError = true;\n\n /**\n * String to place within a label element. Alternatively you may use a label slot.\n */\n @Prop() label!: string;\n\n /**\n * Visually hide the label - but make it accessible.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * Enable floating label behaviour. Will disable placeholder if set.\n */\n @Prop() floatLabel: boolean = false;\n\n /**\n * The maximum value, which must not be less than its minimum (min attribute) value.\n */\n @Prop() max?: string;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the maximum number of characters that the user can enter.\n */\n @Prop() maxlength?: number;\n\n /**\n * The minimum value, which must not be greater than its maximum (max attribute) value.\n */\n @Prop() min?: string;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the minimum number of characters that the user can enter.\n */\n @Prop() minlength?: number;\n\n /**\n * If `true`, the user can enter more than one value. This attribute applies when the type attribute is set to `\"email\"` or `\"file\"`, otherwise it is ignored.\n */\n @Prop() multiple?: boolean;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * A regular expression that the value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, or `\"password\"`, otherwise it is ignored.\n */\n @Prop() pattern?: string;\n\n /**\n * Instructional text that shows before the input has a value.\n */\n @Prop() placeholder?: string | null;\n\n /**\n * If `true`, the user cannot modify the value.\n */\n @Prop({ reflect: true }) readonly = false;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the element will have its spelling and grammar checked.\n */\n @Prop() spellcheck = false;\n\n /**\n * Works with the min and max attributes to limit the increments at which a value can be set.\n * Possible values are: `\"any\"` or a positive floating point number.\n */\n @Prop() step?: string;\n\n /**\n * The initial size of the control. This value is in pixels unless the value of the type attribute is `\"text\"` or `\"password\"`, in which case it is an integer number of characters. This attribute applies only when the `type` attribute is set to `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, or `\"password\"`, otherwise it is ignored.\n */\n @Prop() size?: number;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop({ reflect: true }) type: TextFieldTypes = 'text';\n\n /**\n * The form element to associate the input with (its form owner). Must be the id of a form.\n */\n @Prop() form?: string | null;\n\n /**\n * The value of the input.\n */\n @Prop({ mutable: true }) value?: string | null = '';\n\n /**\n * relevant to type=\"textarea\". Vertical resizing - enable / disable or make automatic.\n */\n @Prop() resize: 'true' | 'false' | 'auto' = 'auto';\n\n /**\n * relevant to type=\"textarea\". Default number of rows to show\n */\n @Prop() rows = 2;\n\n /**\n * relevant to type=\"textarea\".\n */\n @Prop() showCharCount = false;\n\n @Watch('minlength')\n @Watch('maxlength')\n @Watch('min')\n @Watch('max')\n @Watch('required')\n @Watch('disabled')\n @Watch('readonly')\n @Watch('pattern')\n @Watch('inputmode')\n protected shouldValidate() {\n if (!this.hasRendered) return;\n requestAnimationFrame(() => {\n if (this.validateOn === 'dirty') this.validate();\n });\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n this.nanoChange.emit({ value: this.value });\n this.charCount = this.value.length;\n\n if (this.type === 'textarea' && this.resize === 'auto') {\n this.nativeInput.style.height = 'auto';\n if (this.value.length)\n this.nativeInput.style.height = this.nativeInput.scrollHeight + 'px';\n }\n\n requestAnimationFrame(() => {\n if (this.validateOn === 'dirty') this.validate();\n });\n }\n\n @Watch('debounce')\n protected debounceChanged() {\n this.nanoChange = debounceEvent(this.nanoChange, this.debounce);\n }\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() nanoInput!: EventEmitter<InputEvent>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() nanoChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the input has been created.\n * @internal\n */\n @Event() nanoDidLoad!: EventEmitter<void>;\n\n /**\n * Emitted when the input has been removed.\n * @internal\n */\n @Event() nanoDidUnload!: EventEmitter<void>;\n\n /**\n * Called when validation is performed (which depends on `validateOn`).\n * @returns event.detail: `{ isValid: boolean, errorMessage: string, originalEvent: Event }`.\n */\n @Event() nanoValidate: EventEmitter<ControlValidityEventDetail>;\n\n /**\n * Get the current state of the control.\n * @param validateFirst - perform validation first before reporting\n * @returns `{ isValid: boolean, errorMessage: string }`\n */\n @Method()\n async reportValidity(validateFirst: boolean): Promise<ControlValidity> {\n return new Promise((resolve) => {\n if (validateFirst) this.validate();\n setTimeout(() => {\n resolve({\n isValid: !this._invalid,\n errorMessage: this.nativeInput.validationMessage,\n });\n }, 50);\n });\n }\n\n /**\n * Sets focus on the specified `nano-input`. Use this method instead of the global\n * `input.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n this.nativeInput.click();\n }\n }\n\n /**\n * Returns the native `<input>` element used under the hood.\n */\n @Method()\n getInputElement(): Promise<HTMLInputElement | HTMLTextAreaElement> {\n return Promise.resolve(this.nativeInput);\n }\n\n /**\n * Invalidate the field and show a custom error message. To clear the error you will need to re-call this method with an empty string.\n */\n @Method()\n async showError(message: string) {\n if (this.nativeInput) {\n this.nativeInput.setCustomValidity(message);\n this.validate();\n }\n }\n\n @Listen('reset', { target: 'body' })\n onReset(e) {\n const form = this.form\n ? document.querySelector('#' + this.form)\n : this.el.closest('form');\n if (!form || e.target !== this.el.closest('form')) return;\n\n this.value = '';\n }\n\n @Listen('mousedown', { target: 'body' })\n @Listen('keydown')\n handleBlur(e: KeyboardEvent | MouseEvent) {\n if (!this.hasFocus) return;\n\n const kev = e as KeyboardEvent;\n let target: Element;\n\n raf(() => {\n if (kev.key) {\n if (kev.key !== 'Tab') return;\n target = document.activeElement;\n } else target = e.target as Element;\n\n if (closestElement(this.el.tagName.toLowerCase(), target) !== this.el) {\n this.onBlur();\n }\n });\n }\n\n private shouldClearOnEdit() {\n const { type, clearOnEdit } = this;\n return clearOnEdit === undefined ? type === 'password' : clearOnEdit;\n }\n\n private getValue(): string {\n return this.value || '';\n }\n\n private validate = (ev?: Event) => {\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n\n if (!this.nativeInput.validity.valid) {\n if (this.showInlineError) {\n if (ev) ev.preventDefault();\n this.errorMessage = this.nativeInput.validationMessage;\n }\n this._invalid = true;\n } else this._invalid = false;\n\n this.nanoValidate.emit({\n isValid: !this._invalid,\n errorMessage: this.nativeInput.validationMessage,\n originalEvent: ev,\n });\n };\n\n private onInput = (ev: InputEvent) => {\n const input = ev.target as HTMLInputElement | null;\n this.value = input?.value || '';\n this.nanoInput.emit(ev);\n };\n\n private onBlur = () => {\n this.hasFocus = false;\n this.focusChanged();\n if (this.validateOn === 'dirty') this.validate();\n this.nanoBlur.emit();\n };\n\n private onFocus = () => {\n this.hasFocus = true;\n this.focusChanged();\n this.nanoFocus.emit();\n };\n\n private onKeydown = () => {\n if (this.shouldClearOnEdit()) {\n // Did the input value change after it was blurred and edited?\n if (this.didBlurAfterEdit && this.hasValue()) {\n // Clear the input\n this.clearTextInput();\n }\n\n // Reset the flag\n this.didBlurAfterEdit = false;\n }\n };\n\n private clearTextInput = (ev?: Event) => {\n if (this.clearInput && !this.readonly && !this.disabled && ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n this.value = '';\n this.nativeInput.value = '';\n const event = new window.Event('change');\n this.nativeInput.dispatchEvent(event);\n };\n\n private focusChanged() {\n // If clearOnEdit is enabled and the input blurred but has a value, set a flag\n if (!this.hasFocus && this.shouldClearOnEdit() && this.hasValue()) {\n this.didBlurAfterEdit = true;\n }\n }\n\n private hasValue(): boolean {\n return this.getValue().length > 0;\n }\n\n private slotChangeObserver() {\n if (!Build.isBrowser) return;\n\n if (this.mo) this.mo.disconnect();\n const mo = (this.mo = new MutationObserver(() =>\n this.processSlottedContent()\n ));\n mo.observe(this.el, { childList: true, subtree: true });\n }\n\n private processSlottedContent() {\n // see if we have label / button content\n this.hasLabelSlot = !!this.el.querySelectorAll('[slot=\"label\"]');\n this.hasHelperSlot = !!this.el.querySelector('[slot=\"helper\"]');\n this.hasHelperEndSlot = !!this.el.querySelector('[slot=\"helper-end\"]');\n this.datalist = this.el.querySelector('nano-datalist:not([slot])');\n\n // breaking change introduced in v2. Rm in v3\n if (!!this.el.querySelector('[slot=\"inline-button\"]')) {\n console.warn(\n 'The `inline-button` slot was renamed to `end` in v2 - please update your code',\n this.el\n );\n }\n\n // breaking change introduced in v2. Rm in v3\n if (!!this.el.querySelector('[slot=\"legacy\"]')) {\n console.warn(\n 'The `legacy` slot has been removed. Please update your code',\n this.el\n );\n }\n }\n\n connectedCallback() {\n this.debounceChanged();\n if (Build.isBrowser) {\n this.el.dispatchEvent(\n new CustomEvent('nanoDidLoad', {\n detail: this.el,\n })\n );\n }\n }\n\n disconnectedCallback() {\n if (Build.isBrowser) {\n document.dispatchEvent(\n new CustomEvent('nanoDidUnload', {\n detail: this.el,\n })\n );\n }\n if (this.mo) this.mo.disconnect();\n }\n\n componentDidLoad() {\n this.slotChangeObserver();\n this.hasRendered = true;\n if (this.autofocus) setTimeout((_) => this.setFocus(), 300);\n }\n\n componentWillLoad() {\n this.processSlottedContent();\n }\n\n render() {\n const value = this.getValue();\n const labelId = this.inputId + '-lbl';\n const moreId =\n this.showInlineError || this.hasHelperSlot ? this.inputId + '-more' : '';\n const helperEndId = this.hasHelperEndSlot ? this.inputId + '-helper' : '';\n this.rtl = (this.el.ownerDocument as Document).dir === 'rtl';\n\n const compWrapOptions = (({\n el,\n floatLabel,\n label,\n errorMessage,\n type,\n showInlineError,\n hasHelperSlot,\n hasLabelSlot,\n hideLabel,\n placeholder,\n maxlength,\n charCount,\n showCharCount,\n rtl,\n hasHelperEndSlot,\n }) => ({\n el,\n floatLabel,\n label,\n errorMessage,\n type,\n showInlineError,\n hasHelperSlot,\n hasLabelSlot,\n hideLabel,\n placeholder,\n maxlength,\n charCount,\n showCharCount,\n rtl,\n hasHelperEndSlot,\n }))(this);\n const wrapOptions = {\n ...compWrapOptions,\n labelId,\n moreId,\n helperEndId,\n hasValue: this.hasValue(),\n controlId: this.inputId,\n };\n\n const controlOptions = (({ clearInput, readonly, disabled }) => ({\n clearInput,\n readonly,\n disabled,\n clearControl: this.clearInput,\n }))(this);\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n dir={this.rtl ? 'rtl' : null}\n class={{\n ...createColorClasses(this.color),\n 'has-value': this.hasValue(),\n 'has-focus': this.hasFocus,\n 'is-invalid': this._invalid,\n }}\n >\n <FormControlWrap {...wrapOptions}>\n <FormControl\n {...controlOptions}\n onClearText={this.clearTextInput}\n control={this.el}\n ref={(el) => (this.nativeInputWrap = el)}\n >\n {this.type !== 'textarea' && (\n <input\n id={this.inputId}\n class=\"input__native-ctrl\"\n ref={(input) => (this.nativeInput = input)}\n aria-labelledby={labelId + ' ' + moreId + ' ' + helperEndId}\n disabled={this.disabled}\n accept={this.accept}\n autoCapitalize={this.autocapitalise}\n autoComplete={this.autocomplete}\n autoCorrect={this.autocorrect}\n autoFocus={this.autofocus}\n inputMode={this.inputmode}\n form={this.form}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n step={this.step}\n size={this.size}\n type={this.type}\n value={value}\n onInput={this.onInput}\n onChange={this.onInput}\n onFocus={this.onFocus}\n onKeyDown={this.onKeydown}\n onInvalid={this.validate}\n />\n )}\n {this.type === 'textarea' && (\n <textarea\n rows={this.floatLabel ? 1 : this.rows}\n id={this.inputId}\n class={{\n 'input__native-ctrl': true,\n input__resizable: this.resize === 'true',\n }}\n ref={(input) => (this.nativeInput = input)}\n aria-labelledby={labelId + ' ' + moreId + ' ' + helperEndId}\n disabled={this.disabled}\n autoCapitalize={this.autocapitalise}\n autoCorrect={this.autocorrect}\n autoFocus={this.autofocus}\n inputMode={this.inputmode}\n form={this.form}\n minLength={this.minlength}\n maxLength={this.maxlength}\n name={this.name}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n value={value}\n onInput={this.onInput}\n onChange={this.onInput}\n onFocus={this.onFocus}\n onKeyDown={this.onKeydown}\n onInvalid={this.validate}\n ></textarea>\n )}\n </FormControl>\n <slot />\n </FormControlWrap>\n </Host>\n );\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import{k as n,r as i,h as t,e as o,g as r}from"./p-ab5813a7.js";import{c as s}from"./p-d99437a6.js";let e;const a=()=>{if(!e){const n=window;n.Nanoicons=n.Nanoicons||{};e=n.Nanoicons.map=n.Nanoicons.map||new Map}return e};const c=n=>{let i=f(n.src);if(i){return i}i=h(n.name,n.icon);if(i){return l(i)}if(n.icon){i=f(n.icon);if(i){return i}}return null};const l=i=>{const t=a().get(i);if(t){return t}return n(`../node_modules/@fortawesome/fontawesome-pro/svgs/${i}.svg`)};const h=(n,i)=>{if(!n&&i&&!m(i)){n=i}if(d(n)){n=g(n)}if(!d(n)||n.trim()===""){return null}const t=n.replace(/[a-z]|-|\/|\d/gi,"");if(t!==""){console.warn("invalid characters in icon name "+n);return null}return n};const f=n=>{if(d(n)){n=n.trim();if(m(n)){return n}}return null};const m=n=>n.length>0&&/(\/|\.)/.test(n);const d=n=>typeof n==="string";const g=n=>n.toLowerCase();const p=n=>{if(n){const i=document.createElement("div");i.innerHTML=n;for(let n=i.childNodes.length-1;n>=0;n--){if(i.childNodes[n].nodeName.toLowerCase()!=="svg"){i.removeChild(i.childNodes[n])}}const t=i.firstElementChild;if(t&&t.nodeName.toLowerCase()==="svg"){const n=t.getAttribute("class")||"";t.setAttribute("class",(n+" sc-nano-icon s-nano-icon svg").trim());if(u(t)){return i.innerHTML}}}return""};const u=n=>{if(n.nodeType===1){if(n.nodeName.toLowerCase()==="script"){return false}for(let i=0;i<n.attributes.length;i++){const t=n.attributes[i].value;if(d(t)&&t.toLowerCase().indexOf("on")===0){return false}}for(let i=0;i<n.childNodes.length;i++){if(!u(n.childNodes[i])){return false}}}return true};const b=new Map;const v=new Map;const w=n=>{let i=v.get(n);if(!i){i=fetch(n).then((i=>{if(i.ok){return i.text().then((i=>{b.set(n,p(i))}))}b.set(n,"")}));v.set(n,i)}return i};const y=':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{--color:var(--nano-color-base, "currentColor");--primary-color:var(--nano-color-tint, "currentColor");--secondary-color:var(--nano-color-shade, "currentColor");--stroke-width:32px;--primary-opacity:0.8;--secondary-opacity:1;--icon-size:var(--nano-icon-size, 1em);--icon-margin-top:var(--nano-icon-margin-top, 0);--icon-margin-end:var(--nano-icon-margin-end, 0);--icon-margin-bottom:var(--nano-icon-margin-bottom, 0);--icon-margin-start:var(--nano-icon-margin-start, 0);display:inline-block;width:var(--icon-size);height:var(--icon-size);min-width:var(--icon-size);min-height:var(--icon-size);contain:strict;fill:currentColor;-webkit-box-sizing:content-box !important;box-sizing:content-box !important;-webkit-transition:opacity 0.3s ease;transition:opacity 0.3s ease;color:var(--color);margin-left:var(--icon-margin-start);margin-right:var(--icon-margin-end);margin-top:var(--icon-margin-top);margin-bottom:var(--icon-margin-bottom)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{margin-left:unset;margin-right:unset;-webkit-margin-start:var(--icon-margin-start);margin-inline-start:var(--icon-margin-start);-webkit-margin-end:var(--icon-margin-end);margin-inline-end:var(--icon-margin-end)}}:host .nanoicon{stroke:currentColor}.nanoicon-fill-none{fill:none}.nanoicon-stroke-width{stroke-width:32px;stroke-width:var(--stroke-width)}.icon-inner,.nanoicon,svg,.svg{display:block;height:100%;width:100%;overflow:visible}:host(.loading){opacity:0}.fa-primary{color:var(--primary-color);opacity:var(--primary-opacity, 1)}.fa-secondary{color:var(--secondary-color);opacity:var(--secondary-opacity) !important}:host(.flip-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.icon-small){font-size:18px !important}:host(.icon-large){font-size:32px !important}';const k=!!document.head.attachShadow;let x=class{constructor(n){i(this,n);this.isVisible=false;this.isLoading=true;this.lazy=true}setAriaLabel(){if(!this.ariaLabel){const n=h(this.name,this.icon);if(n){this.ariaLabel=n.split("/").slice(-1)[0].replace(/\-/g," ")}}}connectedCallback(){this.waitUntilVisible(this.el,"50px",(()=>{this.isVisible=true;this.loadIcon()}))}disconnectedCallback(){if(this.io){this.io.disconnect();this.io=undefined}}componentWillLoad(){this.setAriaLabel()}waitUntilVisible(n,i,t){if(k&&this.lazy&&typeof window!=="undefined"&&window.IntersectionObserver){const o=this.io=new window.IntersectionObserver((n=>{if(n[0].isIntersecting||n[1]&&n[1].isIntersecting){o.disconnect();this.io=undefined;t()}}),{rootMargin:i});o.observe(n)}else{t()}}loadIcon(){if(this.isVisible){const n=c(this);if(n){if(b.has(n)){this.svgContent=b.get(n);this.isLoading=false}else{w(n).then((()=>{this.svgContent=b.get(n);this.isLoading=false}))}}}this.setAriaLabel()}render(){const n=this.flipRtl||this.name&&(this.name.indexOf("arrow")>-1||this.name.indexOf("chevron")>-1)&&this.el.ownerDocument.dir==="rtl"&&this.flipRtl!==false;return t(o,{role:"img",class:Object.assign(Object.assign({},s(this.color)),{loading:this.isLoading,[`icon-${this.size}`]:!!this.size,"flip-rtl":!!n})},this.svgContent?t("div",{class:"icon-inner",innerHTML:this.svgContent}):t("div",{class:"icon-inner"}))}static get assetsDirs(){return["../../../node_modules/@fortawesome/fontawesome-pro/svgs"]}get el(){return r(this)}static get watchers(){return{name:["loadIcon"],src:["loadIcon"],icon:["loadIcon"]}}};x.style=y;export{x as nano_icon};
5
- //# sourceMappingURL=p-a315ed2c.entry.js.map
4
+ import{l as n,r as i,h as t,e as o,g as r}from"./p-b5c33aff.js";import{c as s}from"./p-d99437a6.js";let e;const a=()=>{if(!e){const n=window;n.Nanoicons=n.Nanoicons||{};e=n.Nanoicons.map=n.Nanoicons.map||new Map}return e};const c=n=>{let i=h(n.src);if(i){return i}i=f(n.name,n.icon);if(i){return l(i)}if(n.icon){i=h(n.icon);if(i){return i}}return null};const l=i=>{const t=a().get(i);if(t){return t}return n(`../node_modules/@fortawesome/fontawesome-pro/svgs/${i}.svg`)};const f=(n,i)=>{if(!n&&i&&!m(i)){n=i}if(d(n)){n=g(n)}if(!d(n)||n.trim()===""){return null}const t=n.replace(/[a-z]|-|\/|\d/gi,"");if(t!==""){console.warn("invalid characters in icon name "+n);return null}return n};const h=n=>{if(d(n)){n=n.trim();if(m(n)){return n}}return null};const m=n=>n.length>0&&/(\/|\.)/.test(n);const d=n=>typeof n==="string";const g=n=>n.toLowerCase();const p=n=>{if(n){const i=document.createElement("div");i.innerHTML=n;for(let n=i.childNodes.length-1;n>=0;n--){if(i.childNodes[n].nodeName.toLowerCase()!=="svg"){i.removeChild(i.childNodes[n])}}const t=i.firstElementChild;if(t&&t.nodeName.toLowerCase()==="svg"){const n=t.getAttribute("class")||"";t.setAttribute("class",(n+" sc-nano-icon s-nano-icon svg").trim());if(u(t)){return i.innerHTML}}}return""};const u=n=>{if(n.nodeType===1){if(n.nodeName.toLowerCase()==="script"){return false}for(let i=0;i<n.attributes.length;i++){const t=n.attributes[i].value;if(d(t)&&t.toLowerCase().indexOf("on")===0){return false}}for(let i=0;i<n.childNodes.length;i++){if(!u(n.childNodes[i])){return false}}}return true};const b=new Map;const v=new Map;const w=n=>{let i=v.get(n);if(!i){i=fetch(n).then((i=>{if(i.ok){return i.text().then((i=>{b.set(n,p(i))}))}b.set(n,"")}));v.set(n,i)}return i};const y=':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{--color:var(--nano-color-base, "currentColor");--primary-color:var(--nano-color-tint, "currentColor");--secondary-color:var(--nano-color-shade, "currentColor");--stroke-width:32px;--primary-opacity:0.8;--secondary-opacity:1;--icon-size:var(--nano-icon-size, 1em);--icon-margin-top:var(--nano-icon-margin-top, 0);--icon-margin-end:var(--nano-icon-margin-end, 0);--icon-margin-bottom:var(--nano-icon-margin-bottom, 0);--icon-margin-start:var(--nano-icon-margin-start, 0);display:inline-block;width:var(--icon-size);height:var(--icon-size);min-width:var(--icon-size);min-height:var(--icon-size);contain:strict;fill:currentColor;-webkit-box-sizing:content-box !important;box-sizing:content-box !important;-webkit-transition:opacity 0.3s ease;transition:opacity 0.3s ease;color:var(--color);margin-left:var(--icon-margin-start);margin-right:var(--icon-margin-end);margin-top:var(--icon-margin-top);margin-bottom:var(--icon-margin-bottom)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{margin-left:unset;margin-right:unset;-webkit-margin-start:var(--icon-margin-start);margin-inline-start:var(--icon-margin-start);-webkit-margin-end:var(--icon-margin-end);margin-inline-end:var(--icon-margin-end)}}:host .nanoicon{stroke:currentColor}.nanoicon-fill-none{fill:none}.nanoicon-stroke-width{stroke-width:32px;stroke-width:var(--stroke-width)}.icon-inner,.nanoicon,svg,.svg{display:block;height:100%;width:100%;overflow:visible}:host(.loading){opacity:0}.fa-primary{color:var(--primary-color);opacity:var(--primary-opacity, 1)}.fa-secondary{color:var(--secondary-color);opacity:var(--secondary-opacity) !important}:host(.flip-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.icon-small){font-size:18px !important}:host(.icon-large){font-size:32px !important}';const k=!!document.head.attachShadow;let x=class{constructor(n){i(this,n);this.isVisible=false;this.isLoading=true;this.lazy=true}setAriaLabel(){if(!this.ariaLabel){const n=f(this.name,this.icon);if(n){this.ariaLabel=n.split("/").slice(-1)[0].replace(/\-/g," ")}}}connectedCallback(){this.waitUntilVisible(this.el,"50px",(()=>{this.isVisible=true;this.loadIcon()}))}disconnectedCallback(){if(this.io){this.io.disconnect();this.io=undefined}}componentWillLoad(){this.setAriaLabel()}waitUntilVisible(n,i,t){if(k&&this.lazy&&typeof window!=="undefined"&&window.IntersectionObserver){const o=this.io=new window.IntersectionObserver((n=>{if(n[0].isIntersecting||n[1]&&n[1].isIntersecting){o.disconnect();this.io=undefined;t()}}),{rootMargin:i});o.observe(n)}else{t()}}loadIcon(){if(this.isVisible){const n=c(this);if(n){if(b.has(n)){this.svgContent=b.get(n);this.isLoading=false}else{w(n).then((()=>{this.svgContent=b.get(n);this.isLoading=false}))}}}this.setAriaLabel()}render(){const n=this.flipRtl||this.name&&(this.name.indexOf("arrow")>-1||this.name.indexOf("chevron")>-1)&&this.el.ownerDocument.dir==="rtl"&&this.flipRtl!==false;return t(o,{role:"img",class:Object.assign(Object.assign({},s(this.color)),{loading:this.isLoading,[`icon-${this.size}`]:!!this.size,"flip-rtl":!!n})},this.svgContent?t("div",{class:"icon-inner",innerHTML:this.svgContent}):t("div",{class:"icon-inner"}))}static get assetsDirs(){return["../../../node_modules/@fortawesome/fontawesome-pro/svgs"]}get el(){return r(this)}static get watchers(){return{name:["loadIcon"],src:["loadIcon"],icon:["loadIcon"]}}};x.style=y;export{x as nano_icon};
5
+ //# sourceMappingURL=p-a9a4fc3e.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["src/components/icon/utils.ts","src/components/icon/validate.ts","src/components/icon/request.ts","src/components/icon/icon.scss?tag=nano-icon&encapsulation=shadow","src/components/icon/icon.tsx"],"names":["CACHED_MAP","getIconMap","win","window","Nanoicons","map","Map","getUrl","i","url","getSrc","src","getName","name","icon","getNamedUrl","iconName","get","getAssetPath","isSrc","isStr","toLower","trim","invalidChars","replace","console","warn","str","length","test","val","toLowerCase","validateContent","svgContent","div","document","createElement","innerHTML","childNodes","nodeName","removeChild","svgElm","firstElementChild","svgClass","getAttribute","setAttribute","isValid","elm","nodeType","attributes","value","indexOf","iconContent","requests","getSvgContent","req","fetch","then","rsp","ok","text","set","iconCss","CANSHADOW","head","attachShadow","Icon","[object Object]","hostRef","this","isVisible","isLoading","lazy","ariaLabel","label","split","slice","waitUntilVisible","el","loadIcon","io","disconnect","undefined","setAriaLabel","rootMargin","cb","IntersectionObserver","data","isIntersecting","observe","has","flipRtl","ownerDocument","dir","h","Host","role","class","Object","assign","createColorClasses","color","loading","size","flip-rtl"],"mappings":"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","sourcesContent":["import { getAssetPath } from '@stencil/core';\nimport { Icon } from './icon';\n\nlet CACHED_MAP: Map<string, string>;\n\nexport const getIconMap = (): Map<string, string> => {\n if (!CACHED_MAP) {\n const win = window as any;\n win.Nanoicons = win.Nanoicons || {};\n CACHED_MAP = win.Nanoicons.map = win.Nanoicons.map || new Map();\n }\n return CACHED_MAP;\n};\n\nexport const addIcons = (icons: { [name: string]: string }) => {\n const map = getIconMap();\n Object.keys(icons).forEach((name) => map.set(name, icons[name]));\n};\n\nexport const getUrl = (i: Icon) => {\n let url = getSrc(i.src);\n if (url) {\n return url;\n }\n\n url = getName(i.name, i.icon);\n if (url) {\n return getNamedUrl(url);\n }\n\n if (i.icon) {\n url = getSrc(i.icon);\n if (url) {\n return url;\n }\n }\n return null;\n};\n\nconst getNamedUrl = (iconName: string) => {\n const url = getIconMap().get(iconName);\n if (url) {\n return url;\n }\n return getAssetPath(\n `../node_modules/@fortawesome/fontawesome-pro/svgs/${iconName}.svg`\n );\n};\n\nexport const getName = (\n iconName: string | undefined,\n icon: string | undefined\n) => {\n if (!iconName && icon && !isSrc(icon)) {\n iconName = icon;\n }\n if (isStr(iconName)) {\n iconName = toLower(iconName);\n }\n\n if (!isStr(iconName) || iconName.trim() === '') {\n return null;\n }\n\n // only allow alpha characters and dash\n const invalidChars = iconName.replace(/[a-z]|-|\\/|\\d/gi, '');\n if (invalidChars !== '') {\n console.warn('invalid characters in icon name ' + iconName);\n return null;\n }\n return iconName;\n};\n\nexport const getSrc = (src: string | undefined) => {\n if (isStr(src)) {\n src = src.trim();\n if (isSrc(src)) {\n return src;\n }\n }\n return null;\n};\n\nexport const isSrc = (str: string) => str.length > 0 && /(\\/|\\.)/.test(str);\nexport const isStr = (val: any): val is string => typeof val === 'string';\nexport const toLower = (val: string) => val.toLowerCase();\n","import { isStr } from './utils';\n\nexport const validateContent = (svgContent: string | null) => {\n if (svgContent) {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n\n // setup this way to ensure it works on our buddy IE\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n\n // must only have 1 root element\n const svgElm = div.firstElementChild;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {\n const svgClass = svgElm.getAttribute('class') || '';\n svgElm.setAttribute(\n 'class',\n (svgClass + ' sc-nano-icon s-nano-icon svg').trim()\n );\n\n // root element must be an svg\n // lets double check we've got valid elements\n // do not allow scripts\n if (isValid(svgElm as any)) {\n return div.innerHTML;\n }\n }\n }\n return '';\n};\n\nexport const isValid = (elm: HTMLElement) => {\n if (elm.nodeType === 1) {\n if (elm.nodeName.toLowerCase() === 'script') {\n return false;\n }\n\n for (let i = 0; i < elm.attributes.length; i++) {\n const val = elm.attributes[i].value;\n if (isStr(val) && val.toLowerCase().indexOf('on') === 0) {\n return false;\n }\n }\n\n for (let i = 0; i < elm.childNodes.length; i++) {\n if (!isValid(elm.childNodes[i] as any)) {\n return false;\n }\n }\n }\n return true;\n};\n","import { validateContent } from './validate';\nexport const iconContent = new Map<string, string>();\nconst requests = new Map<string, Promise<any>>();\n\nexport const getSvgContent = (url: string) => {\n // see if we already have a request for this url\n let req = requests.get(url);\n if (!req) {\n // we don't already have a request\n req = fetch(url).then((rsp) => {\n if (rsp.ok) {\n return rsp.text().then((svgContent) => {\n iconContent.set(url, validateContent(svgContent));\n });\n }\n iconContent.set(url, '');\n });\n\n // cache for the same requests\n requests.set(url, req);\n }\n return req;\n};\n","@import '../../global/style/utilities/globals';\n\n:host {\n /**\n * @prop --color: defaults to current context color\n * @prop --primary-color: used for duotone icons to set the primary color\n * @prop --secondary-color: used for duotone icons to set the secondary color\n * @prop --primary-opacity: used for duotone icons to set the primary opacity\n * @prop --secondary-opacity: used for duotone icons to set the secondary opacity\n * @prop --stroke-width: 32px default stroke width\n */\n\n --color: var(--nano-color-base, 'currentColor');\n --primary-color: var(--nano-color-tint, 'currentColor');\n --secondary-color: var(--nano-color-shade, 'currentColor');\n --stroke-width: 32px;\n --primary-opacity: 0.8;\n --secondary-opacity: 1;\n --icon-size: var(--nano-icon-size, 1em);\n --icon-margin-top: var(--nano-icon-margin-top, 0);\n --icon-margin-end: var(--nano-icon-margin-end, 0);\n --icon-margin-bottom: var(--nano-icon-margin-bottom, 0);\n --icon-margin-start: var(--nano-icon-margin-start, 0);\n\n display: inline-block;\n width: var(--icon-size);\n height: var(--icon-size);\n min-width: var(--icon-size);\n min-height: var(--icon-size);\n contain: strict;\n fill: currentColor;\n box-sizing: content-box !important;\n transition: opacity 0.3s ease;\n color: var(--color);\n\n @include margin(\n var(--icon-margin-top),\n var(--icon-margin-end),\n var(--icon-margin-bottom),\n var(--icon-margin-start)\n );\n}\n\n:host .nanoicon {\n stroke: currentColor;\n}\n\n.nanoicon-fill-none {\n fill: none;\n}\n\n.nanoicon-stroke-width {\n stroke-width: 32px;\n stroke-width: var(--stroke-width);\n}\n\n.icon-inner,\n.nanoicon,\nsvg,\n.svg {\n display: block;\n height: 100%;\n width: 100%;\n overflow: visible;\n}\n\n:host(.loading) {\n opacity: 0;\n}\n\n.fa-primary {\n color: var(--primary-color);\n opacity: var(--primary-opacity, 1);\n}\n\n.fa-secondary {\n color: var(--secondary-color);\n opacity: var(--secondary-opacity) !important;\n}\n\n/* Icon RTL\n * -----------------------------------------------------------\n */\n:host(.flip-rtl) .icon-inner {\n transform: scaleX(-1);\n}\n\n/* Icon Sizes\n * -----------------------------------------------------------\n */\n:host(.icon-small) {\n font-size: 18px !important;\n}\n\n:host(.icon-large) {\n font-size: 32px !important;\n}\n","import {\n Build,\n Component,\n Element,\n Host,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\nimport { getSvgContent, iconContent } from './request';\nimport { getName, getUrl } from './utils';\nimport { Color } from '../../interface';\nimport { createColorClasses } from '../../utils/theme';\n\nconst CANSHADOW = !!document.head.attachShadow;\n\n/**\n * An SVG loader / helper. Comes bundled with all fontawesome pro icons by default but can use any custom SVG (with an correct path). Lazily loads SVG for each icon, so will only request the icons that you're using and that are visible.\n */\n@Component({\n tag: 'nano-icon',\n assetsDirs: ['../../../node_modules/@fortawesome/fontawesome-pro/svgs'],\n styleUrl: 'icon.scss',\n shadow: true,\n})\nexport class Icon {\n private io?: IntersectionObserver;\n\n @Element() el!: HTMLNanoIconElement;\n\n @State() private svgContent?: string;\n @State() private isVisible = false;\n @State() private isLoading = true;\n\n /**\n * Color to use from your application's color palette.\n * Default options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\n */\n @Prop() color?: Color;\n\n /**\n * Specifies the label to use for accessibility. Defaults to the icon name.\n */\n @Prop({ mutable: true, reflect: true }) ariaLabel?: string;\n\n /**\n * Specifies whether the icon should horizontally flip when `dir` is `\"rtl\"`.\n */\n @Prop() flipRtl?: boolean;\n\n /**\n * Specifies which icon to use from the built-in set of icons.\n */\n @Prop() name?: string;\n\n /**\n * Specifies the exact `src` of an SVG file to use.\n */\n @Prop() src?: string;\n\n /**\n * A combination of both `name` and `src`. If a `src` url is detected\n * it will set the `src` property. Otherwise it assumes it's a built-in named\n * SVG and set the `name` property.\n */\n @Prop() icon?: any;\n\n /**\n * The size of the icon.\n * Available options are: `\"small\"` and `\"large\"`.\n */\n @Prop() size?: 'small' | 'large';\n\n /**\n * If enabled, nano-icon will be loaded lazily when it's visible in the viewport.\n * Default, `false`.\n */\n @Prop() lazy = true;\n\n private setAriaLabel() {\n if (!this.ariaLabel) {\n const label = getName(this.name, this.icon);\n // user did not provide a label\n // come up with the label based on the icon name\n if (label) {\n this.ariaLabel = label.split('/').slice(-1)[0].replace(/\\-/g, ' ');\n }\n }\n }\n\n connectedCallback() {\n // purposely do not return the promise here because loading\n // the svg file should not hold up loading the app\n // only load the svg if it's visible\n this.waitUntilVisible(this.el, '50px', () => {\n this.isVisible = true;\n this.loadIcon();\n });\n }\n\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n\n componentWillLoad() {\n this.setAriaLabel();\n }\n\n private waitUntilVisible(\n el: HTMLElement,\n rootMargin: string,\n cb: () => void\n ) {\n if (\n Build.isBrowser &&\n CANSHADOW &&\n this.lazy &&\n typeof window !== 'undefined' &&\n (window as any).IntersectionObserver\n ) {\n const io = (this.io = new (window as any).IntersectionObserver(\n (data: IntersectionObserverEntry[]) => {\n if (data[0].isIntersecting || (data[1] && data[1].isIntersecting)) {\n io.disconnect();\n this.io = undefined;\n cb();\n }\n },\n { rootMargin }\n ));\n\n io.observe(el);\n } else {\n // browser doesn't support IntersectionObserver\n // so just fallback to always show it\n cb();\n }\n }\n\n @Watch('name')\n @Watch('src')\n @Watch('icon')\n loadIcon() {\n if (Build.isBrowser && this.isVisible) {\n const url = getUrl(this);\n if (url) {\n if (iconContent.has(url)) {\n // sync if it's already loaded\n this.svgContent = iconContent.get(url);\n this.isLoading = false;\n } else {\n // async if it hasn't been loaded\n getSvgContent(url).then(() => {\n this.svgContent = iconContent.get(url);\n this.isLoading = false;\n });\n }\n }\n }\n this.setAriaLabel();\n }\n\n render() {\n const flipRtl =\n this.flipRtl ||\n (this.name &&\n (this.name.indexOf('arrow') > -1 ||\n this.name.indexOf('chevron') > -1) &&\n (this.el.ownerDocument as Document).dir === 'rtl' &&\n this.flipRtl !== false);\n\n return (\n <Host\n role=\"img\"\n class={{\n ...createColorClasses(this.color),\n loading: this.isLoading,\n [`icon-${this.size}`]: !!this.size,\n 'flip-rtl': !!flipRtl,\n }}\n >\n {Build.isBrowser && this.svgContent ? (\n <div class=\"icon-inner\" innerHTML={this.svgContent}></div>\n ) : (\n <div class=\"icon-inner\"></div>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["src/components/icon/utils.ts","src/components/icon/validate.ts","src/components/icon/request.ts","src/components/icon/icon.scss?tag=nano-icon&encapsulation=shadow","src/components/icon/icon.tsx"],"names":["CACHED_MAP","getIconMap","win","window","Nanoicons","map","Map","getUrl","i","url","getSrc","src","getName","name","icon","getNamedUrl","iconName","get","getAssetPath","isSrc","isStr","toLower","trim","invalidChars","replace","console","warn","str","length","test","val","toLowerCase","validateContent","svgContent","div","document","createElement","innerHTML","childNodes","nodeName","removeChild","svgElm","firstElementChild","svgClass","getAttribute","setAttribute","isValid","elm","nodeType","attributes","value","indexOf","iconContent","requests","getSvgContent","req","fetch","then","rsp","ok","text","set","iconCss","CANSHADOW","head","attachShadow","Icon","[object Object]","hostRef","this","isVisible","isLoading","lazy","ariaLabel","label","split","slice","waitUntilVisible","el","loadIcon","io","disconnect","undefined","setAriaLabel","rootMargin","cb","IntersectionObserver","data","isIntersecting","observe","has","flipRtl","ownerDocument","dir","h","Host","role","class","Object","assign","createColorClasses","color","loading","size","flip-rtl"],"mappings":"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","sourcesContent":["import { getAssetPath } from '@stencil/core';\nimport { Icon } from './icon';\n\nlet CACHED_MAP: Map<string, string>;\n\nexport const getIconMap = (): Map<string, string> => {\n if (!CACHED_MAP) {\n const win = window as any;\n win.Nanoicons = win.Nanoicons || {};\n CACHED_MAP = win.Nanoicons.map = win.Nanoicons.map || new Map();\n }\n return CACHED_MAP;\n};\n\nexport const addIcons = (icons: { [name: string]: string }) => {\n const map = getIconMap();\n Object.keys(icons).forEach((name) => map.set(name, icons[name]));\n};\n\nexport const getUrl = (i: Icon) => {\n let url = getSrc(i.src);\n if (url) {\n return url;\n }\n\n url = getName(i.name, i.icon);\n if (url) {\n return getNamedUrl(url);\n }\n\n if (i.icon) {\n url = getSrc(i.icon);\n if (url) {\n return url;\n }\n }\n return null;\n};\n\nconst getNamedUrl = (iconName: string) => {\n const url = getIconMap().get(iconName);\n if (url) {\n return url;\n }\n return getAssetPath(\n `../node_modules/@fortawesome/fontawesome-pro/svgs/${iconName}.svg`\n );\n};\n\nexport const getName = (\n iconName: string | undefined,\n icon: string | undefined\n) => {\n if (!iconName && icon && !isSrc(icon)) {\n iconName = icon;\n }\n if (isStr(iconName)) {\n iconName = toLower(iconName);\n }\n\n if (!isStr(iconName) || iconName.trim() === '') {\n return null;\n }\n\n // only allow alpha characters and dash\n const invalidChars = iconName.replace(/[a-z]|-|\\/|\\d/gi, '');\n if (invalidChars !== '') {\n console.warn('invalid characters in icon name ' + iconName);\n return null;\n }\n return iconName;\n};\n\nexport const getSrc = (src: string | undefined) => {\n if (isStr(src)) {\n src = src.trim();\n if (isSrc(src)) {\n return src;\n }\n }\n return null;\n};\n\nexport const isSrc = (str: string) => str.length > 0 && /(\\/|\\.)/.test(str);\nexport const isStr = (val: any): val is string => typeof val === 'string';\nexport const toLower = (val: string) => val.toLowerCase();\n","import { isStr } from './utils';\n\nexport const validateContent = (svgContent: string | null) => {\n if (svgContent) {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n\n // setup this way to ensure it works on our buddy IE\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n\n // must only have 1 root element\n const svgElm = div.firstElementChild;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {\n const svgClass = svgElm.getAttribute('class') || '';\n svgElm.setAttribute(\n 'class',\n (svgClass + ' sc-nano-icon s-nano-icon svg').trim()\n );\n\n // root element must be an svg\n // lets double check we've got valid elements\n // do not allow scripts\n if (isValid(svgElm as any)) {\n return div.innerHTML;\n }\n }\n }\n return '';\n};\n\nexport const isValid = (elm: HTMLElement) => {\n if (elm.nodeType === 1) {\n if (elm.nodeName.toLowerCase() === 'script') {\n return false;\n }\n\n for (let i = 0; i < elm.attributes.length; i++) {\n const val = elm.attributes[i].value;\n if (isStr(val) && val.toLowerCase().indexOf('on') === 0) {\n return false;\n }\n }\n\n for (let i = 0; i < elm.childNodes.length; i++) {\n if (!isValid(elm.childNodes[i] as any)) {\n return false;\n }\n }\n }\n return true;\n};\n","import { validateContent } from './validate';\nexport const iconContent = new Map<string, string>();\nconst requests = new Map<string, Promise<any>>();\n\nexport const getSvgContent = (url: string) => {\n // see if we already have a request for this url\n let req = requests.get(url);\n if (!req) {\n // we don't already have a request\n req = fetch(url).then((rsp) => {\n if (rsp.ok) {\n return rsp.text().then((svgContent) => {\n iconContent.set(url, validateContent(svgContent));\n });\n }\n iconContent.set(url, '');\n });\n\n // cache for the same requests\n requests.set(url, req);\n }\n return req;\n};\n","@import '../../global/style/utilities/globals';\n\n:host {\n /**\n * @prop --color: defaults to current context color\n * @prop --primary-color: used for duotone icons to set the primary color\n * @prop --secondary-color: used for duotone icons to set the secondary color\n * @prop --primary-opacity: used for duotone icons to set the primary opacity\n * @prop --secondary-opacity: used for duotone icons to set the secondary opacity\n * @prop --stroke-width: 32px default stroke width\n */\n\n --color: var(--nano-color-base, 'currentColor');\n --primary-color: var(--nano-color-tint, 'currentColor');\n --secondary-color: var(--nano-color-shade, 'currentColor');\n --stroke-width: 32px;\n --primary-opacity: 0.8;\n --secondary-opacity: 1;\n --icon-size: var(--nano-icon-size, 1em);\n --icon-margin-top: var(--nano-icon-margin-top, 0);\n --icon-margin-end: var(--nano-icon-margin-end, 0);\n --icon-margin-bottom: var(--nano-icon-margin-bottom, 0);\n --icon-margin-start: var(--nano-icon-margin-start, 0);\n\n display: inline-block;\n width: var(--icon-size);\n height: var(--icon-size);\n min-width: var(--icon-size);\n min-height: var(--icon-size);\n contain: strict;\n fill: currentColor;\n box-sizing: content-box !important;\n transition: opacity 0.3s ease;\n color: var(--color);\n\n @include margin(\n var(--icon-margin-top),\n var(--icon-margin-end),\n var(--icon-margin-bottom),\n var(--icon-margin-start)\n );\n}\n\n:host .nanoicon {\n stroke: currentColor;\n}\n\n.nanoicon-fill-none {\n fill: none;\n}\n\n.nanoicon-stroke-width {\n stroke-width: 32px;\n stroke-width: var(--stroke-width);\n}\n\n.icon-inner,\n.nanoicon,\nsvg,\n.svg {\n display: block;\n height: 100%;\n width: 100%;\n overflow: visible;\n}\n\n:host(.loading) {\n opacity: 0;\n}\n\n.fa-primary {\n color: var(--primary-color);\n opacity: var(--primary-opacity, 1);\n}\n\n.fa-secondary {\n color: var(--secondary-color);\n opacity: var(--secondary-opacity) !important;\n}\n\n/* Icon RTL\n * -----------------------------------------------------------\n */\n:host(.flip-rtl) .icon-inner {\n transform: scaleX(-1);\n}\n\n/* Icon Sizes\n * -----------------------------------------------------------\n */\n:host(.icon-small) {\n font-size: 18px !important;\n}\n\n:host(.icon-large) {\n font-size: 32px !important;\n}\n","import {\n Build,\n Component,\n Element,\n Host,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\nimport { getSvgContent, iconContent } from './request';\nimport { getName, getUrl } from './utils';\nimport { Color } from '../../interface';\nimport { createColorClasses } from '../../utils/theme';\n\nconst CANSHADOW = !!document.head.attachShadow;\n\n/**\n * An SVG loader / helper. Comes bundled with all fontawesome pro icons by default but can use any custom SVG (with an correct path). Lazily loads SVG for each icon, so will only request the icons that you're using and that are visible.\n */\n@Component({\n tag: 'nano-icon',\n assetsDirs: ['../../../node_modules/@fortawesome/fontawesome-pro/svgs'],\n styleUrl: 'icon.scss',\n shadow: true,\n})\nexport class Icon {\n private io?: IntersectionObserver;\n\n @Element() el!: HTMLNanoIconElement;\n\n @State() private svgContent?: string;\n @State() private isVisible = false;\n @State() private isLoading = true;\n\n /**\n * Color to use from your application's color palette.\n * Default options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\n */\n @Prop() color?: Color;\n\n /**\n * Specifies the label to use for accessibility. Defaults to the icon name.\n */\n @Prop({ mutable: true, reflect: true }) ariaLabel: string;\n\n /**\n * Specifies whether the icon should horizontally flip when `dir` is `\"rtl\"`.\n */\n @Prop() flipRtl?: boolean;\n\n /**\n * Specifies which icon to use from the built-in set of icons.\n */\n @Prop() name?: string;\n\n /**\n * Specifies the exact `src` of an SVG file to use.\n */\n @Prop() src?: string;\n\n /**\n * A combination of both `name` and `src`. If a `src` url is detected\n * it will set the `src` property. Otherwise it assumes it's a built-in named\n * SVG and set the `name` property.\n */\n @Prop() icon?: any;\n\n /**\n * The size of the icon.\n * Available options are: `\"small\"` and `\"large\"`.\n */\n @Prop() size?: 'small' | 'large';\n\n /**\n * If enabled, nano-icon will be loaded lazily when it's visible in the viewport.\n * Default, `false`.\n */\n @Prop() lazy = true;\n\n private setAriaLabel() {\n if (!this.ariaLabel) {\n const label = getName(this.name, this.icon);\n // user did not provide a label\n // come up with the label based on the icon name\n if (label) {\n this.ariaLabel = label.split('/').slice(-1)[0].replace(/\\-/g, ' ');\n }\n }\n }\n\n connectedCallback() {\n // purposely do not return the promise here because loading\n // the svg file should not hold up loading the app\n // only load the svg if it's visible\n this.waitUntilVisible(this.el, '50px', () => {\n this.isVisible = true;\n this.loadIcon();\n });\n }\n\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n\n componentWillLoad() {\n this.setAriaLabel();\n }\n\n private waitUntilVisible(\n el: HTMLElement,\n rootMargin: string,\n cb: () => void\n ) {\n if (\n Build.isBrowser &&\n CANSHADOW &&\n this.lazy &&\n typeof window !== 'undefined' &&\n (window as any).IntersectionObserver\n ) {\n const io = (this.io = new (window as any).IntersectionObserver(\n (data: IntersectionObserverEntry[]) => {\n if (data[0].isIntersecting || (data[1] && data[1].isIntersecting)) {\n io.disconnect();\n this.io = undefined;\n cb();\n }\n },\n { rootMargin }\n ));\n\n io.observe(el);\n } else {\n // browser doesn't support IntersectionObserver\n // so just fallback to always show it\n cb();\n }\n }\n\n @Watch('name')\n @Watch('src')\n @Watch('icon')\n loadIcon() {\n if (Build.isBrowser && this.isVisible) {\n const url = getUrl(this);\n if (url) {\n if (iconContent.has(url)) {\n // sync if it's already loaded\n this.svgContent = iconContent.get(url);\n this.isLoading = false;\n } else {\n // async if it hasn't been loaded\n getSvgContent(url).then(() => {\n this.svgContent = iconContent.get(url);\n this.isLoading = false;\n });\n }\n }\n }\n this.setAriaLabel();\n }\n\n render() {\n const flipRtl =\n this.flipRtl ||\n (this.name &&\n (this.name.indexOf('arrow') > -1 ||\n this.name.indexOf('chevron') > -1) &&\n (this.el.ownerDocument as Document).dir === 'rtl' &&\n this.flipRtl !== false);\n\n return (\n <Host\n role=\"img\"\n class={{\n ...createColorClasses(this.color),\n loading: this.isLoading,\n [`icon-${this.size}`]: !!this.size,\n 'flip-rtl': !!flipRtl,\n }}\n >\n {Build.isBrowser && this.svgContent ? (\n <div class=\"icon-inner\" innerHTML={this.svgContent}></div>\n ) : (\n <div class=\"icon-inner\"></div>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  var __awaiter=this&&this.__awaiter||function(t,e,n,i){function s(t){return t instanceof n?t:new n((function(e){e(t)}))}return new(n||(n=Promise))((function(n,r){function o(t){try{a(i.next(t))}catch(e){r(e)}}function l(t){try{a(i["throw"](t))}catch(e){r(e)}}function a(t){t.done?n(t.value):s(t.value).then(o,l)}a((i=i.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var n={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},i,s,r,o;return o={next:l(0),throw:l(1),return:l(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function l(t){return function(e){return a([t,e])}}function a(o){if(i)throw new TypeError("Generator is already executing.");while(n)try{if(i=1,s&&(r=o[0]&2?s["return"]:o[0]?s["throw"]||((r=s["return"])&&r.call(s),0):s.next)&&!(r=r.call(s,o[1])).done)return r;if(s=0,r)o=[o[0]&2,r.value];switch(o[0]){case 0:case 1:r=o;break;case 4:n.label++;return{value:o[1],done:false};case 5:n.label++;s=o[1];o=[0];continue;case 7:o=n.ops.pop();n.trys.pop();continue;default:if(!(r=n.trys,r=r.length>0&&r[r.length-1])&&(o[0]===6||o[0]===2)){n=0;continue}if(o[0]===3&&(!r||o[1]>r[0]&&o[1]<r[3])){n.label=o[1];break}if(o[0]===6&&n.label<r[1]){n.label=r[1];r=o;break}if(r&&n.label<r[2]){n.label=r[2];n.ops.push(o);break}if(r[2])n.ops.pop();n.trys.pop();continue}o=e.call(t,n)}catch(l){o=[6,l];s=0}finally{i=r=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};
2
2
  /*!
3
3
  * Web Components for Nanopore digital Web Apps
4
- */System.register(["./p-59b3d24b.system.js","./p-41a2e2e4.system.js"],(function(t){"use strict";var e,n,i,s,r,o,l,a,u;return{setters:[function(t){e=t.r;n=t.c;i=t.B;s=t.i;r=t.h;o=t.e;l=t.g},function(t){a=t.S;u=t.W}],execute:function(){var h=t("nano_algolia_results",function(){function t(t){e(this,t);this.nanoPageChanged=n(this,"nanoPageChanged",7);this.nanoTplUpdated=n(this,"nanoTplUpdated",7);this.append=false;this.shouldClear=true;this.currHitNum=0;this.showResults=false;this.results=null;this.indexResults=null;this.resultsPage=0;this.changeEvent=a.Init;this.isLoading=true;this.infiniteScroll=false;this.appendPages=false}t.prototype.addContentIndex=function(){var t=this;this.shouldPageClear();if(this.shouldClear||this.resultsPage===0)this.currHitNum=0;if(this.indexResults&&this.indexResults.results){this.indexResults.results.map((function(e){e._uIndex=t.currHitNum++}))}};t.prototype.resultsChange=function(){this.shouldPageClear();this.updateResultContent();this.infiniteScrollChange()};t.prototype.headerFooterChange=function(){this.updateStartEndContent()};t.prototype.appendChange=function(){this.append=this.infiniteScroll?true:this.appendPages};t.prototype.infiniteScrollChange=function(){this.append=this.infiniteScroll?true:this.appendPages;this.infiniteScroll?this.attachIO():this.detachIO()};t.prototype.handlePageChage=function(){this.infiniteScroll?this.attachIO():this.detachIO()};t.prototype.handleLoading=function(){if(!this.isLoading)this.infiniteScrollChange()};t.prototype.shouldPageClear=function(){this.shouldClear=this.changeEvent===a.Page?!this.append:true};t.prototype.nextPage=function(){this.shouldClear=!this.append;this.nanoPageChanged.emit({page:this.resultsPage+1})};t.prototype.attachIO=function(){var t=this;if(!this.infiniteScrollBar||!this.infiniteScroll||this.io||!i.isBrowser||typeof window==="undefined"||!window.IntersectionObserver)return;this.io=new window.IntersectionObserver((function(e){return __awaiter(t,void 0,void 0,(function(){return __generator(this,(function(t){if(e[0].isIntersecting||e[1]&&e[1].isIntersecting){this.nextPage();this.detachIO()}return[2]}))}))}),{document:document,rootMargin:"100px",threshold:1});this.io.observe(this.infiniteScrollBar)};t.prototype.detachIO=function(){if(this.io){this.io.disconnect();this.io=null}};t.prototype.updateStartEndContent=function(){if(this.startTpl&&this.startOutputSlot){this.startOutputSlot.innerHTML=this.tplRenderFn(this.startTpl,this.indexResults)}if(this.endOutputSlot&&this.endTpl){this.endOutputSlot.innerHTML=this.tplRenderFn(this.endTpl,this.indexResults)}this.nanoTplUpdated.emit(this.el)};t.prototype.updateResultContent=function(){var t=this;this.outputTo=this.outputSlot||this.outputEle;if(!this.resultTpl||!this.indexResults)return;if(this.shouldClear)this.outputTo.innerHTML="";if(!this.tplRenderFn)return;var e=document.createElement("div");e.innerHTML=this.tplRenderFn(this.resultTpl,this.indexResults);Array.from(e.children).forEach((function(e){t.outputTo.appendChild(e)}));this.shouldClear=true;this.nanoTplUpdated.emit(this.el)};t.prototype.connectedCallback=function(){var t=this;s((function(){t.startTplSlot=t.el.querySelector('[slot="start-template"]');t.startOutputSlot=t.el.querySelector('[slot="start-output"]');if(!!t.startTplSlot){t.startTpl=t.startTplSlot.innerHTML;t.startTpl=t.startTpl.replace(/=&gt;/gm,"=>")}t.resultTplSlot=t.el.querySelector('[slot="result-template"]');t.outputSlot=t.el.querySelector('[slot="result-output"]');if(!!t.resultTplSlot){t.resultTpl=t.resultTplSlot.innerHTML;t.resultTpl=t.resultTpl.replace(/=&gt;/gm,"=>")}t.endTplSlot=t.el.querySelector('[slot="end-template"]');t.endOutputSlot=t.el.querySelector('[slot="end-output"]');if(!!t.endTplSlot){t.endTpl=t.endTplSlot.innerHTML;t.endTpl=t.endTpl.replace(/=&gt;/gm,"=>")}if(t.indexResults){t.addContentIndex();t.updateResultContent()}}))};t.prototype.componentDidLoad=function(){this.updateStartEndContent()};t.prototype.disconnectedCallback=function(){if(this.io){this.io.disconnect();this.io=undefined}};t.prototype.render=function(){var t=this;return r(o,{class:{"show-results":this.showResults}},r("div",{class:"default"},r("slot",null)),r("div",{ref:function(e){return t.outputEle=e}},r("slot",{name:"start-output"}),r("slot",{name:"result-output"}),r("div",{ref:function(e){return t.infiniteScrollBar=e}}),r("slot",{name:"end-output"})))};Object.defineProperty(t.prototype,"el",{get:function(){return l(this)},enumerable:false,configurable:true});Object.defineProperty(t,"watchers",{get:function(){return{results:["addContentIndex","resultsChange"],tplRenderFn:["resultsChange"],facets:["headerFooterChange"],appendPages:["appendChange"],infiniteScroll:["infiniteScrollChange"],resultsPage:["handlePageChage"],isLoading:["handleLoading"]}},enumerable:false,configurable:true});return t}());u(h,["indexResults","results","tplRenderFn","resultsPage","changeEvent","facets","isLoading"])}}}));
5
- //# sourceMappingURL=p-98222c39.system.entry.js.map
4
+ */System.register(["./p-f48be9f5.system.js","./p-3a00de47.system.js"],(function(t){"use strict";var e,n,i,s,r,o,l,a,u;return{setters:[function(t){e=t.r;n=t.c;i=t.B;s=t.i;r=t.h;o=t.e;l=t.g},function(t){a=t.S;u=t.W}],execute:function(){var h=t("nano_algolia_results",function(){function t(t){e(this,t);this.nanoPageChanged=n(this,"nanoPageChanged",7);this.nanoTplUpdated=n(this,"nanoTplUpdated",7);this.append=false;this.shouldClear=true;this.currHitNum=0;this.showResults=false;this.results=null;this.indexResults=null;this.resultsPage=0;this.changeEvent=a.Init;this.isLoading=true;this.infiniteScroll=false;this.appendPages=false}t.prototype.addContentIndex=function(){var t=this;this.shouldPageClear();if(this.shouldClear||this.resultsPage===0)this.currHitNum=0;if(this.indexResults&&this.indexResults.results){this.indexResults.results.map((function(e){e._uIndex=t.currHitNum++}))}};t.prototype.resultsChange=function(){this.shouldPageClear();this.updateResultContent();this.infiniteScrollChange()};t.prototype.headerFooterChange=function(){this.updateStartEndContent()};t.prototype.appendChange=function(){this.append=this.infiniteScroll?true:this.appendPages};t.prototype.infiniteScrollChange=function(){this.append=this.infiniteScroll?true:this.appendPages;this.infiniteScroll?this.attachIO():this.detachIO()};t.prototype.handlePageChage=function(){this.infiniteScroll?this.attachIO():this.detachIO()};t.prototype.handleLoading=function(){if(!this.isLoading)this.infiniteScrollChange()};t.prototype.shouldPageClear=function(){this.shouldClear=this.changeEvent===a.Page?!this.append:true};t.prototype.nextPage=function(){this.shouldClear=!this.append;this.nanoPageChanged.emit({page:this.resultsPage+1})};t.prototype.attachIO=function(){var t=this;if(!this.infiniteScrollBar||!this.infiniteScroll||this.io||!i.isBrowser||typeof window==="undefined"||!window.IntersectionObserver)return;this.io=new window.IntersectionObserver((function(e){return __awaiter(t,void 0,void 0,(function(){return __generator(this,(function(t){if(e[0].isIntersecting||e[1]&&e[1].isIntersecting){this.nextPage();this.detachIO()}return[2]}))}))}),{document:document,rootMargin:"100px",threshold:1});this.io.observe(this.infiniteScrollBar)};t.prototype.detachIO=function(){if(this.io){this.io.disconnect();this.io=null}};t.prototype.updateStartEndContent=function(){if(this.startTpl&&this.startOutputSlot){this.startOutputSlot.innerHTML=this.tplRenderFn(this.startTpl,this.indexResults)}if(this.endOutputSlot&&this.endTpl){this.endOutputSlot.innerHTML=this.tplRenderFn(this.endTpl,this.indexResults)}this.nanoTplUpdated.emit(this.el)};t.prototype.updateResultContent=function(){var t=this;this.outputTo=this.outputSlot||this.outputEle;if(!this.resultTpl||!this.indexResults)return;if(this.shouldClear)this.outputTo.innerHTML="";if(!this.tplRenderFn)return;var e=document.createElement("div");e.innerHTML=this.tplRenderFn(this.resultTpl,this.indexResults);Array.from(e.children).forEach((function(e){t.outputTo.appendChild(e)}));this.shouldClear=true;this.nanoTplUpdated.emit(this.el)};t.prototype.connectedCallback=function(){var t=this;s((function(){t.startTplSlot=t.el.querySelector('[slot="start-template"]');t.startOutputSlot=t.el.querySelector('[slot="start-output"]');if(!!t.startTplSlot){t.startTpl=t.startTplSlot.innerHTML;t.startTpl=t.startTpl.replace(/=&gt;/gm,"=>")}t.resultTplSlot=t.el.querySelector('[slot="result-template"]');t.outputSlot=t.el.querySelector('[slot="result-output"]');if(!!t.resultTplSlot){t.resultTpl=t.resultTplSlot.innerHTML;t.resultTpl=t.resultTpl.replace(/=&gt;/gm,"=>")}t.endTplSlot=t.el.querySelector('[slot="end-template"]');t.endOutputSlot=t.el.querySelector('[slot="end-output"]');if(!!t.endTplSlot){t.endTpl=t.endTplSlot.innerHTML;t.endTpl=t.endTpl.replace(/=&gt;/gm,"=>")}if(t.indexResults){t.addContentIndex();t.updateResultContent()}}))};t.prototype.componentDidLoad=function(){this.updateStartEndContent()};t.prototype.disconnectedCallback=function(){if(this.io){this.io.disconnect();this.io=undefined}};t.prototype.render=function(){var t=this;return r(o,{class:{"show-results":this.showResults}},r("div",{class:"default"},r("slot",null)),r("div",{ref:function(e){return t.outputEle=e}},r("slot",{name:"start-output"}),r("slot",{name:"result-output"}),r("div",{ref:function(e){return t.infiniteScrollBar=e}}),r("slot",{name:"end-output"})))};Object.defineProperty(t.prototype,"el",{get:function(){return l(this)},enumerable:false,configurable:true});Object.defineProperty(t,"watchers",{get:function(){return{results:["addContentIndex","resultsChange"],tplRenderFn:["resultsChange"],facets:["headerFooterChange"],appendPages:["appendChange"],infiniteScroll:["infiniteScrollChange"],resultsPage:["handlePageChage"],isLoading:["handleLoading"]}},enumerable:false,configurable:true});return t}());u(h,["indexResults","results","tplRenderFn","resultsPage","changeEvent","facets","isLoading"])}}}));
5
+ //# sourceMappingURL=p-ab07c1fa.system.entry.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- const t="nano-components";let e;let n;let s;let i=false;let l=false;let o=false;let f=false;let c=null;let r=false;const u=typeof window!=="undefined"?window:{};const a=u.CSS;const h=u.document||{head:{}};const d=u.HTMLElement||class{};const b={t:0,i:"",jmp:t=>t(),raf:t=>requestAnimationFrame(t),ael:(t,e,n,s)=>t.addEventListener(e,n,s),rel:(t,e,n,s)=>t.removeEventListener(e,n,s),ce:(t,e)=>new CustomEvent(t,e)};const m=(()=>(h.head.attachShadow+"").indexOf("[native")>-1)();const p=t=>Promise.resolve(t);const y=(()=>{try{new CSSStyleSheet;return typeof(new CSSStyleSheet).replace==="function"}catch(t){}return false})();const w=(t,e,n,s)=>{if(n){n.map((([n,s,i])=>{const l=$(t,n);const o=j(e,i);const f=O(n);b.ael(l,s,o,f);(e.l=e.l||[]).push((()=>b.rel(l,s,o,f)))}))}};const j=(t,e)=>n=>{try{{if(t.t&256){t.o[e](n)}else{(t.u=t.u||[]).push([e,n])}}}catch(s){se(s,t.h||null)}};const $=(t,e)=>{if(e&8)return u;if(e&16)return h.body;return t};const O=t=>(t&2)!==0;const g="{visibility:hidden}.hydrated{visibility:inherit}";const _="http://www.w3.org/1999/xlink";const k=(t,e="")=>{{return()=>{}}};const S=(t,e)=>{{return()=>{}}};const T=new WeakMap;const C=(t,e,n)=>{let s=oe.get(t);if(y&&n){s=s||new CSSStyleSheet;s.replace(e)}else{s=e}oe.set(t,s)};const M=(t,e,n,s)=>{let i=E(e);let l=oe.get(i);t=t.nodeType===11?t:h;if(l){if(typeof l==="string"){t=t.head||t;let n=T.get(t);let o;if(!n){T.set(t,n=new Set)}if(!n.has(i)){{if(b.m){o=b.m.createHostStyle(s,i,l,!!(e.t&10));const t=o["s-sc"];if(t){i=t;n=null}}else{o=h.createElement("style");o.innerHTML=l}t.insertBefore(o,t.querySelector("link"))}if(n){n.add(i)}}}else if(!t.adoptedStyleSheets.includes(l)){t.adoptedStyleSheets=[...t.adoptedStyleSheets,l]}}return i};const x=t=>{const e=t.p;const n=t.h;const s=e.t;const i=k("attachStyles",e.j);const l=M(m&&n.shadowRoot?n.shadowRoot:n.getRootNode(),e,t.$,n);if(s&10){n["s-sc"]=l;n.classList.add(l+"-h");if(s&2){n.classList.add(l+"-s")}}i()};const E=(t,e)=>"sc-"+t.j;const v={};const L=t=>t!=null;const H=t=>{t=typeof t;return t==="object"||t==="function"};const N=(t,e,...n)=>{let s=null;let i=null;let l=null;let o=false;let f=false;let c=[];const r=e=>{for(let n=0;n<e.length;n++){s=e[n];if(Array.isArray(s)){r(s)}else if(s!=null&&typeof s!=="boolean"){if(o=typeof t!=="function"&&!H(s)){s=String(s)}if(o&&f){c[c.length-1].O+=s}else{c.push(o?R(null,s):s)}f=o}}};r(n);if(e){if(e.key){i=e.key}if(e.name){l=e.name}{const t=e.className||e.class;if(t){e.class=typeof t!=="object"?t:Object.keys(t).filter((e=>t[e])).join(" ")}}}if(typeof t==="function"){return t(e===null?{}:e,c,A)}const u=R(t,null);u.g=e;if(c.length>0){u._=c}{u.k=i}{u.S=l}return u};const R=(t,e)=>{const n={t:0,T:t,O:e,C:null,_:null};{n.g=null}{n.k=null}{n.S=null}return n};const U={};const P=t=>t&&t.T===U;const A={forEach:(t,e)=>t.map(D).forEach(e),map:(t,e)=>t.map(D).map(e).map(W)};const D=t=>({vattrs:t.g,vchildren:t._,vkey:t.k,vname:t.S,vtag:t.T,vtext:t.O});const W=t=>{if(typeof t.vtag==="function"){const e=Object.assign({},t.vattrs);if(t.vkey){e.key=t.vkey}if(t.vname){e.name=t.vname}return N(t.vtag,e,...t.vchildren||[])}const e=R(t.vtag,t.vtext);e.g=t.vattrs;e._=t.vchildren;e.k=t.vkey;e.S=t.vname;return e};const B=(t,e,n,s,i,l)=>{if(n!==s){let f=ne(t,e);let c=e.toLowerCase();if(e==="class"){const e=t.classList;const i=q(n);const l=q(s);e.remove(...i.filter((t=>t&&!l.includes(t))));e.add(...l.filter((t=>t&&!i.includes(t))))}else if(e==="style"){{for(const e in n){if(!s||s[e]==null){if(e.includes("-")){t.style.removeProperty(e)}else{t.style[e]=""}}}}for(const e in s){if(!n||s[e]!==n[e]){if(e.includes("-")){t.style.setProperty(e,s[e])}else{t.style[e]=s[e]}}}}else if(e==="key");else if(e==="ref"){if(s){s(t)}}else if(!f&&e[0]==="o"&&e[1]==="n"){if(e[2]==="-"){e=e.slice(3)}else if(ne(u,c)){e=c.slice(2)}else{e=c[2]+e.slice(3)}if(n){b.rel(t,e,n,false)}if(s){b.ael(t,e,s,false)}}else{const r=H(s);if((f||r&&s!==null)&&!i){try{if(!t.tagName.includes("-")){let i=s==null?"":s;if(e==="list"){f=false}else if(n==null||t[e]!=i){t[e]=i}}else{t[e]=s}}catch(o){}}let u=false;{if(c!==(c=c.replace(/^xlink\:?/,""))){e=c;u=true}}if(s==null||s===false){if(s!==false||t.getAttribute(e)===""){if(u){t.removeAttributeNS(_,e)}else{t.removeAttribute(e)}}}else if((!f||l&4||i)&&!r){s=s===true?"":s;if(u){t.setAttributeNS(_,e,s)}else{t.setAttribute(e,s)}}}}};const F=/\s/;const q=t=>!t?[]:t.split(F);const I=(t,e,n,s)=>{const i=e.C.nodeType===11&&e.C.host?e.C.host:e.C;const l=t&&t.g||v;const o=e.g||v;{for(s in l){if(!(s in o)){B(i,s,l[s],undefined,n,e.t)}}}for(s in o){B(i,s,l[s],o[s],n,e.t)}};const V=t=>{const e=t.cloneNode;t.cloneNode=function(t){const n=this;const s=e.call(n,false);if(t){let t=0;let e,i;let l=["s-id","s-cr","s-lr","s-rc","s-sc","s-p","s-cn","s-sr","s-sn","s-hn","s-ol","s-nr","s-si","s-sf","s-sfc","s-hsf"];for(;t<n.__childNodes.length;t++){e=n.__childNodes[t]["s-nr"];i=l.every((e=>!n.__childNodes[t][e]));if(e){s.__appendChild(e.cloneNode(true))}if(i){s.__appendChild(n.__childNodes[t].cloneNode(true))}}}return s}};const z=t=>{G(t);Z(t);et(t);tt(t);st(t);it(t);lt(t);nt(t);J(t);K(t);Q(t)};const G=t=>{class e extends Array{item(t){return this[t]}}const n=Object.getOwnPropertyDescriptor(Node.prototype,"childNodes");if(n)Object.defineProperty(t,"__childNodes",n);let s=Object.getOwnPropertyDescriptor(Element.prototype,"children");if(!s)s=Object.getOwnPropertyDescriptor(HTMLElement.prototype,"children");if(s)Object.defineProperty(t,"__children",s);const i=Object.getOwnPropertyDescriptor(Element.prototype,"childElementCount");if(i)Object.defineProperty(t,"__childElementCount",i);Object.defineProperty(t,"children",{get(){return this.childNodes.map((t=>{if(t.nodeType===1)return t;else return null})).filter((t=>!!t))}});Object.defineProperty(t,"childElementCount",{get(){return t.children.length}});if(!n)return;Object.defineProperty(t,"childNodes",{get(){const t=this.__childNodes;const n=new e;for(let e=0;e<t.length;e++){const s=t[e]["s-nr"];if(s){n.push(s)}}return n}})};const J=t=>{let e=Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML");if(!e)e=Object.getOwnPropertyDescriptor(HTMLElement.prototype,"innerHTML");if(e)Object.defineProperty(t,"__innerHTML",e);Object.defineProperty(t,"innerHTML",{get:function(){let t="";this.childNodes.forEach((e=>t+=e.outerHTML||e.textContent));return t},set:function(t){this.childNodes.forEach((t=>{if(t["s-ol"])t["s-ol"].remove();t.remove()}));this.insertAdjacentHTML("beforeend",t)}})};const K=t=>{let e=Object.getOwnPropertyDescriptor(Element.prototype,"innerText");if(!e)e=Object.getOwnPropertyDescriptor(HTMLElement.prototype,"innerText");if(e)Object.defineProperty(t,"__innerText",e);Object.defineProperty(t,"innerText",{get:function(){let t="";this.childNodes.forEach((e=>t+=e.innerText||e.textContent.trimEnd()));return t},set:function(t){this.childNodes.forEach((t=>{if(t["s-ol"])t["s-ol"].remove();t.remove()}));this.insertAdjacentHTML("beforeend",t)}})};const Q=t=>{const e=Object.getOwnPropertyDescriptor(Node.prototype,"textContent");if(e)Object.defineProperty(t,"__textContent",e);Object.defineProperty(t,"textContent",{get:function(){let t="";this.childNodes.forEach((e=>t+=e.textContent||""));return t},set:function(t){this.childNodes.forEach((t=>{if(t["s-ol"])t["s-ol"].remove();t.remove()}));this.insertAdjacentHTML("beforeend",t)}})};const X=t=>{if(!t||t.__remove)return;t.__remove=t.remove||true;Y(t.parentNode);t.remove=function(){if(this.parentNode){return this.parentNode.removeChild(this)}return this.__remove()}};const Y=t=>{if(!t||t.__removeChild)return;t.__removeChild=t.removeChild;t.removeChild=function(t){if(t["s-sn"]){const e=ft(this.__childNodes||this.childNodes,t["s-sn"]);this.__removeChild(t);if(e&&e["s-hsf"])ut(this);return}return this.__removeChild(t)}};const Z=t=>{if(t.__appendChild)return;t.__appendChild=t.appendChild;t.appendChild=function(t){const e=t["s-sn"]=ot(t);const n=ft(this.__childNodes,e);if(n){const s=document.createTextNode("");s["s-nr"]=t;if(n["s-cr"].parentNode){n["s-cr"].parentNode.__appendChild(s)}t["s-ol"]=s;X(t);const i=ct(n,e);const l=i[i.length-1];l.parentNode.insertBefore(t,l.nextSibling);Y(t.parentNode);if(n["s-hsf"])ut(n.parentNode);return}if(t.nodeType===1&&!!t.getAttribute("slot")&&this.__childNodes)t.hidden=true;return this.__appendChild(t)}};const tt=t=>{if(t.__prepend)return;t.__prepend=t.prepend;t.prepend=function(...t){t.forEach((t=>{if(typeof t==="string"){t=this.ownerDocument.createTextNode(t)}const e=t["s-sn"]=ot(t);const n=ft(this.__childNodes,e);if(n){const s=document.createTextNode("");s["s-nr"]=t;if(n["s-cr"].parentNode){n["s-cr"].parentNode.__appendChild(s)}t["s-ol"]=s;X(t);const i=ct(n,e);const l=i[0];l.parentNode.insertBefore(t,l.nextSibling);Y(t.parentNode);if(n["s-hsf"])ut(n.parentNode);return}if(t.nodeType===1&&!!t.getAttribute("slot")&&this.__childNodes)t.hidden=true;return this.__prepend(t)}))}};const et=t=>{if(t.__append)return;t.__append=t.append;t.append=function(...t){t.forEach((t=>{if(typeof t==="string"){t=this.ownerDocument.createTextNode(t)}this.appendChild(t)}))}};const nt=t=>{if(t.__replaceChildren)return;t.__replaceChildren=t.replaceChildren;t.replaceChildren=function(...t){const e=ft(this.__childNodes,"");if(e){const n=ct(e,"");n.forEach((t=>{if(!t["s-sr"]){t.remove()}}));this.append(...t)}}};const st=t=>{if(t.__insertAdjacentHTML)return;t.__insertAdjacentHTML=t.insertAdjacentHTML;t.insertAdjacentHTML=function(t,e){if(t!=="afterbegin"&&t!=="beforeend"){return this.__insertAdjacentHTML(t,e)}const n=this.ownerDocument.createElement("_");let s;n.innerHTML=e;if(t==="afterbegin"){while(s=n.firstChild){this.prepend(s)}}else if(t==="beforeend"){while(s=n.firstChild){this.append(s)}}}};const it=t=>{if(t.__insertAdjacentText)return;t.__insertAdjacentText=t.insertAdjacentText;t.insertAdjacentText=function(t,e){this.insertAdjacentHTML(t,e)}};const lt=t=>{if(t.__insertAdjacentElement)return;t.__insertAdjacentElement=t.insertAdjacentElement;t.insertAdjacentElement=function(t,e){if(t!=="afterbegin"&&t!=="beforeend"){return this.__insertAdjacentElement(t,e)}if(t==="afterbegin"){this.prepend(e)}else if(t==="beforeend"){this.append(e)}}};const ot=t=>t["s-sn"]||t.nodeType===1&&t.getAttribute("slot")||t.slot||"";const ft=(t,e)=>{let n=0;let s;if(!t)return null;for(;n<t.length;n++){s=t[n];if(s["s-sr"]&&s["s-sn"]===e){return s}s=ft(s.childNodes,e);if(s){return s}}return null};const ct=(t,e)=>{const n=[t];while((t=t.nextSibling)&&t["s-sn"]===e){n.push(t)}return n};const rt=(t,e)=>{if(!t["s-hsf"])return;let n=t;while((n=n.previousSibling||n.parentNode)&&n.tagName!==t["s-hn"]){if(n["s-sr"]&&e&&n["s-psn"]&&n["s-psn"]===t["s-sn"]){rt(n,true);continue}if(n["s-sn"]!==t["s-sn"])continue;if(n.nodeType===1){n.hidden=e;n.style.display=e?"none":""}else if(!!n["s-sfc"]){if(e){n["s-sfc"]=n.textContent;n.textContent=""}else if(n.textContent.trim()===""){n.textContent=n["s-sfc"]}}}};const ut=t=>{let e=t.__childNodes||t.childNodes;let n;let s;let i;let l;let o;let f;for(s=0,i=e.length;s<i;s++){n=e[s];if(n["s-sr"]){o=n["s-sn"];rt(n,false);for(l=0;l<i;l++){f=e[l].nodeType;if(e[l]["s-sf"])continue;if(e[l]["s-hn"]!==n["s-hn"]||o!==""){if(f===1&&o===e[l]["s-sn"]){rt(n,true);X(e[l]);break}}else if(e[l]["s-sn"]===o){if(f===1||f===3&&e[l].textContent.trim()!==""){rt(n,true);X(e[l]);break}}}}ut(n)}};const at=(t,l,c,r)=>{let u=l._[c];let a=0;let d;let b;let m;if(!i){o=true;if(u.T==="slot"){if(e){r.classList.add(e+"-s")}u.t|=u._?2:1}}if(u.O!==null){d=u.C=h.createTextNode(u.O)}else if(u.t&(1|2)){d=u.C=h.createTextNode("")}else{d=u.C=h.createElement(u.T);{I(null,u,f)}if(L(e)&&d["s-si"]!==e){d.classList.add(d["s-si"]=e)}if(u._){for(a=0;a<u._.length;++a){b=at(t,u,a,d);if(b){d.__appendChild?d.__appendChild(b):d.appendChild(b)}}}}{d["s-hn"]=s;if(u.t&(2|1)){d["s-sr"]=true;d["s-cr"]=n;d["s-sn"]=u.S||"";if(l.S)d["s-psn"]=l.S;if(u.t&2){if(u._){for(a=0;a<u._.length;++a){let e=d.nodeType===1?d:r;while(e.nodeType!==1){e=e.parentNode}b=at(t,u,a,e);b["s-sf"]=d["s-hsf"]=true;if(typeof b["s-sn"]==="undefined")b["s-sn"]=u.S||"";if(b.nodeType===3){b["s-sfc"]=b.textContent}if(b){e.__appendChild?e.__appendChild(b):e.appendChild(b)}}}}m=t&&t._&&t._[c];if(m&&m.T===u.T&&t.C){ht(t.C,false)}}}return d};const ht=(t,e)=>{b.t|=1;const n=t.__childNodes||t.childNodes;for(let i=n.length-1;i>=0;i--){const t=n[i];if(t["s-hn"]!==s&&t["s-ol"]){jt(t).insertBefore(t,wt(t));t["s-ol"].remove();t["s-ol"]=undefined;o=true}if(e){ht(t,e)}}b.t&=~1};const dt=(t,e,n,i,l,o)=>{let f=t["s-cr"]&&t["s-cr"].parentNode||t;let c;if(f.shadowRoot&&f.tagName===s){f=f.shadowRoot}for(;l<=o;++l){if(i[l]){c=at(null,n,l,t);if(c){i[l].C=c;f.insertBefore(c,wt(e))}}}};const bt=t=>{let e;let n;let s;let i=t.__childNodes||t.childNodes;for(n=0,s=i.length;n<s;n++){e=i[n];if(e["s-ol"]){if(e["s-hn"])e["s-hn"]=undefined}else{bt(e)}}};const mt=(t,e,n,s,i)=>{for(;e<=n;++e){if(s=t[e]){i=s.C;kt(s);{l=true;bt(i);if(i["s-ol"]){i["s-ol"].remove()}else{ht(i,true)}}i.remove()}}};const pt=(t,e,n,s)=>{let i=0;let o=0;let f=0;let c=0;let r=0;let u=e.length-1;let a=e[0];let h=e[u];let d=s.length-1;let b=s[0];let m=s[d];let p;let y;let w;let j;let $=[];let O;let g={};let _;let k;let S;let T;while(i<=u&&o<=d){if(a==null){a=e[++i]}else if(h==null){h=e[--u]}else if(b==null){b=s[++o]}else if(m==null){m=s[--d]}else if(yt(a,b)){$t(a,b);a=e[++i];b=s[++o]}else if(yt(h,m)){$t(h,m);h=e[--u];m=s[--d]}else if(yt(a,m)){if(a.T==="slot"||m.T==="slot"){ht(a.C.parentNode,false)}$t(a,m);t.insertBefore(a.C,h.C.nextSibling);a=e[++i];m=s[--d]}else if(yt(h,b)){if(a.T==="slot"||m.T==="slot"){ht(h.C.parentNode,false)}$t(h,b);t.insertBefore(h.C,a.C);h=e[--u];b=s[++o]}else{f=-1;{for(c=i;c<=u;++c){if(e[c]&&e[c].k!==null&&e[c].k===b.k){f=c;break}}}if(f>=0){y=e[f];if(y.T!==b.T){p=at(e&&e[o],n,f,t)}else{$t(y,b);e[f]=undefined;p=y.C}b=s[++o]}else{p=at(e&&e[o],n,o,t);b=s[++o]}if(p){{jt(a.C).insertBefore(p,wt(a.C))}}}}if(i>u){dt(t,s[d+1]==null?null:s[d+1].C,n,s,o,d)}else if(o>d){mt(e,i,u)}if(t.parentNode&&n.C["s-hsf"]){w=t.parentNode.__childNodes||t.parentNode.childNodes;j=w.length-1;for(c=0;c<=j;++c){k=w[c];if(k["s-hsf"]){$.push(k);continue}if(k["s-sf"]){if(!g[k["s-sn"]])g[k["s-sn"]]=[];g[k["s-sn"]].push(k)}}O=$.length-1;for(c=0;c<=O;++c){S=$[c];if(!g[S["s-sn"]])continue;_=g[S["s-sn"]].length-1;for(r=0;r<=_;++r){T=g[S["s-sn"]][r];S.parentNode.insertBefore(T,S)}}l=true}};const yt=(t,e)=>{if(t.T===e.T){if(t.T==="slot"){return t.S===e.S}{return t.k===e.k}}return false};const wt=t=>t&&t["s-ol"]||t;const jt=t=>(t["s-ol"]?t["s-ol"]:t).parentNode;const $t=(t,e)=>{const n=e.C=t.C;const s=t._;const i=e._;const l=e.T;const o=e.O;let c;if(o===null){{if(l==="slot");else{I(t,e,f)}}if(s!==null&&i!==null){pt(n,s,e,i)}else if(i!==null){if(t.O!==null){n.textContent=""}dt(n,null,e,i,0,i.length-1)}else if(s!==null){mt(s,0,s.length-1)}}else if(c=n["s-cr"]){c.parentNode.textContent=o}else if(t.O!==o){n.textContent=o;if(n["s-sf"]){n["s-sfc"]=o}}};const Ot=[];const gt=t=>{let e;let n;let s;let i;let o;let f;let c=0;let r=t.__childNodes||t.childNodes;let u=r.length;for(;c<u;c++){e=r[c];if(e["s-sr"]&&(n=e["s-cr"])&&n.parentNode){if(e["s-hsf"]){l=true}s=n.parentNode.__childNodes||n.parentNode.childNodes;i=e["s-sn"];for(f=s.length-1;f>=0;f--){n=s[f];if(!n["s-cn"]&&!n["s-nr"]&&n["s-hn"]!==e["s-hn"]){if(_t(n,i)){o=Ot.find((t=>t.M===n));l=true;n["s-sn"]=n["s-sn"]||i;if(o){o.v=e}else{Ot.push({v:e,M:n})}if(n["s-sr"]){Ot.map((t=>{if(_t(t.M,n["s-sn"])){o=Ot.find((t=>t.M===n));if(o&&!t.v){t.v=o.v}}}))}}else if(!Ot.some((t=>t.M===n))){Ot.push({M:n})}}}}if(e.nodeType===1){gt(e)}}};const _t=(t,e)=>{if(t.nodeType===1){if(t.getAttribute("slot")===null&&e===""){return true}if(t.getAttribute("slot")===e){return true}return false}if(t["s-sn"]===e){return true}return e===""};const kt=t=>{{t.g&&t.g.ref&&t.g.ref(null);t._&&t._.map(kt)}};const St=(t,f)=>{const c=t.h;const r=t.p;const u=t.L||R(null,null);const a=P(f)?f:N(null,null,f);s=c.tagName;if(r.H){a.g=a.g||{};r.H.map((([t,e])=>a.g[e]=c[t]))}a.T=null;a.t|=4;t.L=a;a.C=u.C=c.shadowRoot||c;{e=c["s-sc"]}{n=c["s-cr"];i=m&&(r.t&1)!==0;l=false}$t(u,a);{b.t|=1;if(o){gt(a.C);let t;let e;let n;let s;let i;let l;let o;let f=0;for(;f<Ot.length;f++){t=Ot[f];e=t.M;if(!e["s-ol"]){n=h.createTextNode("");n["s-nr"]=e;e.parentNode.insertBefore(e["s-ol"]=n,e)}}for(f=0;f<Ot.length;f++){t=Ot[f];e=t.M;if(t.v){s=t.v.parentNode;i=t.v.nextSibling;n=e["s-ol"];o=i;while(n=n.previousSibling){l=n["s-nr"];if(l&&l["s-sn"]===e["s-sn"]&&s===l.parentNode){l=l.nextSibling;if(!l||!l["s-nr"]){i=l;break}}}if(!i&&s!==e.parentNode||e.nextSibling!==i){if(e!==i){if(!e["s-hn"]&&e["s-ol"]){e["s-hn"]=e["s-ol"].parentNode.nodeName}s.insertBefore(e,i);e.hidden=false}else{s.insertBefore(e,o)}}}else{if(e.nodeType===1){e.hidden=true}}}}if(l){ut(a.C)}b.t&=~1;Ot.length=0}};const Tt=t=>Zt(t).h;const Ct=(t,e,n)=>{const s=Tt(t);return{emit:t=>Mt(s,e,{bubbles:!!(n&4),composed:!!(n&2),cancelable:!!(n&1),detail:t})}};const Mt=(t,e,n)=>{const s=b.ce(e,n);t.dispatchEvent(s);return s};const xt=(t,e)=>{if(e&&!t.N&&e["s-p"]){e["s-p"].push(new Promise((e=>t.N=e)))}};const Et=(t,e)=>{{t.t|=16}if(t.t&4){t.t|=512;return}xt(t,t.R);const n=()=>vt(t,e);return be(n)};const vt=(t,e)=>{const n=t.h;const s=k("scheduleUpdate",t.p.j);const i=t.o;let l;if(e){{t.t|=256;if(t.u){t.u.map((([t,e])=>At(i,t,e,n)));t.u=null}}{l=At(i,"componentWillLoad",undefined,n)}}s();return Dt(l,(()=>Lt(t,i,e)))};const Lt=async(t,e,n)=>{const s=t.h;const i=k("update",t.p.j);const l=s["s-rc"];if(n){x(t)}const o=k("render",t.p.j);{Ht(t,e)}if(b.m){b.m.updateHost(s)}if(l){l.map((t=>t()));s["s-rc"]=undefined}o();i();{const e=s["s-p"];const n=()=>Rt(t);if(e.length===0){n()}else{Promise.all(e).then(n);t.t|=4;e.length=0}}};const Ht=(t,e,n)=>{try{c=e;e=e.render();{t.t&=~16}{t.t|=2}{{{St(t,e)}}}}catch(s){se(s,t.h)}c=null;return null};const Nt=()=>c;const Rt=t=>{const e=t.p.j;const n=t.h;const s=k("postUpdate",e);const i=t.o;const l=t.R;{At(i,"componentDidRender",undefined,n)}if(!(t.t&64)){t.t|=64;{Wt(n)}{At(i,"componentDidLoad",undefined,n)}s();{t.U(n);if(!l){Pt()}}}else{{At(i,"componentDidUpdate",undefined,n)}s()}{t.P(n)}{if(t.N){t.N();t.N=undefined}if(t.t&512){he((()=>Et(t,false)))}t.t&=~(4|512)}};const Ut=t=>{{const e=Zt(t);const n=e.h.isConnected;if(n&&(e.t&(2|16))===2){Et(e,false)}return n}};const Pt=e=>{{Wt(h.documentElement)}he((()=>Mt(u,"appload",{detail:{namespace:t}})))};const At=(t,e,n,s)=>{if(t&&t[e]){try{return t[e](n)}catch(i){se(i,s)}}return undefined};const Dt=(t,e)=>t&&t.then?t.then(e):e();const Wt=t=>t.classList.add("hydrated");const Bt=(t,e)=>{if(t!=null&&!H(t)){if(e&4){return t==="false"?false:t===""||!!t}if(e&2){return parseFloat(t)}if(e&1){return String(t)}return t}return t};const Ft=(t,e)=>Zt(t).A.get(e);const qt=(t,e,n,s,i=true)=>{const l=Zt(t);const o=l.h;const f=l.A.get(e);const c=l.t;const r=l.o;n=Bt(n,s.D[e][0]);if((!(c&8)||f===undefined)&&n!==f){l.A.set(e,n);if(r){if(s.W&&c&128&&i){const t=s.W[e];if(t){t.map((t=>{try{r[t](n,f,e)}catch(s){se(s,o)}}))}}if((c&(2|16))===2){Et(l,false)}}}};const It=(t,e,n)=>{if(e.D){if(t.watchers){e.W=t.watchers}const s=Object.entries(e.D);const i=t.prototype;s.map((([t,[s]])=>{if(s&31||n&2&&s&32){if((s&2048)===0){Object.defineProperty(i,t,{get(){return Ft(this,t)},set(n){qt(this,t,n,e)},configurable:true,enumerable:true})}else if(n&1&&s&2048){{Object.defineProperty(i,t,{get(){const e=Zt(this);const n=e?e.o:i;if(!n)return;return n[t]},configurable:true,enumerable:true})}}if(s&4096){const n=Object.getOwnPropertyDescriptor(i,t).set;Object.defineProperty(i,t,{set(s){const i=Zt(this);if(n){n.apply(this,[s]);qt(this,t,i.h[t],e);return}if(!i)return;const l=(n=false)=>{i.o[t]=s;qt(this,t,i.o[t],e,!n)};if(i.o){l()}else{i.B.then((()=>l(true)))}}})}}else if(n&1&&s&64){Object.defineProperty(i,t,{value(...e){const n=Zt(this);return n.B.then((()=>n.o[t](...e)))}})}}));if(n&1){const n=new Map;i.attributeChangedCallback=function(t,e,s){b.jmp((()=>{const e=n.get(t);if(this.hasOwnProperty(e)){s=this[e];delete this[e]}else if(i.hasOwnProperty(e)&&typeof this[e]==="number"&&this[e]==s){return}const l=Object.getOwnPropertyDescriptor(i,e);if(!l.get||!!l.set){this[e]=s===null&&typeof this[e]==="boolean"?false:s}}))};t.observedAttributes=s.filter((([t,e])=>e[0]&15)).map((([t,s])=>{const i=s[1]||t;n.set(i,t);if(s[0]&512){e.H.push([t,i])}return i}))}}return t};const Vt=async(t,e,n,s,i)=>{if((e.t&32)===0){{e.t|=32;i=le(n,e);if(i.then){const t=S();i=await i;t()}if(!i.isProxied){{n.W=i.watchers}It(i,n,2);i.isProxied=true}const s=k("createInstance",n.j);{e.t|=8}try{new i(e)}catch(f){se(f,t)}{e.t&=~8}{e.t|=128}s();zt(e.o,t)}if(i.style){let t=i.style;const e=E(n);if(!oe.has(e)){const s=k("registerStyles",n.j);if(n.t&8){t=await __sc_import_nano_components("./p-f3e66371.js").then((n=>n.scopeCss(t,e,false)))}C(e,t,!!(n.t&1));s()}}}const l=e.R;const o=()=>Et(e,true);if(l&&l["s-rc"]){l["s-rc"].push(o)}else{o()}};const zt=(t,e)=>{{At(t,"connectedCallback",undefined,e)}};const Gt=t=>{if((b.t&1)===0){const e=Zt(t);const n=e.p;const s=k("connectedCallback",n.j);if(!(e.t&1)){e.t|=1;{if(n.t&(4|8)){Jt(t)}}{let n=t;while(n=n.parentNode||n.host){if(n["s-p"]){xt(e,e.R=n);break}}}if(n.D){Object.entries(n.D).map((([e,[n]])=>{if(n&31&&t.hasOwnProperty(e)){const n=t[e];delete t[e];t[e]=n}}))}{Vt(t,e,n)}}else{w(t,e,n.F);zt(e.o,t);if(b.m&&t["s-sc"]){const n="sc-"+e.p.j;const s=oe.get(n);const i=t["s-sc"];const l=b.m.createHostStyle(t,n,s,true);const o=l["s-sc"];l.setAttribute("sty-id",o);let f=document.head;f.insertBefore(l,f.querySelector("link"));t["s-sc"]=o;t.classList.remove(i+"-h",i+"-s");t.classList.add(o+"-h",o+"-s");Array.from(t.querySelectorAll("."+i)).forEach((t=>{t.classList.remove(i,i+"-s");t.classList.add(o,o+"-s")}));b.m.updateHost(t)}}s()}};const Jt=t=>{const e=t["s-cr"]=h.createComment("");e["s-cn"]=true;if(!!t.firstChild)t.insertBefore(e,t.firstChild);else t.appendChild(e)};const Kt=t=>{if((b.t&1)===0){const e=Zt(t);const n=e.o;{if(e.l){e.l.map((t=>t()));e.l=undefined}}if(b.m){b.m.removeHost(t)}{At(n,"disconnectedCallback",undefined,t)}}};const Qt=(t,e={})=>{const n=k();const s=[];const i=e.exclude||[];const l=u.customElements;const o=h.head;const f=o.querySelector("meta[charset]");const c=h.createElement("style");const r=[];let a;let d=true;Object.assign(b,e);b.i=new URL(e.resourcesUrl||"./",h.baseURI).href;t.map((t=>{t[1].map((n=>{const o={t:n[0],j:n[1],D:n[2],F:n[3]};{o.D=n[2]}{o.F=n[3]}{o.H=[]}{o.W={}}if(!m&&o.t&1){o.t|=8}const f=e.transformTagName?e.transformTagName(o.j):o.j;const c=class extends HTMLElement{constructor(t){super(t);t=this;ee(t,o);if(o.t&1){if(m){{t.attachShadow({mode:"open"})}}else if(!("shadowRoot"in t)){t.shadowRoot=t}}}connectedCallback(){if(a){clearTimeout(a);a=null}if(d){r.push(this)}else{b.jmp((()=>Gt(this)))}}disconnectedCallback(){b.jmp((()=>Kt(this)))}componentOnReady(){return Zt(this).q}};if(o.t&4||o.t&8){z(c.prototype);{V(c.prototype)}}o.I=t[0];if(!i.includes(f)&&!l.get(f)){s.push(f);l.define(f,It(c,o,1))}}))}));{c.innerHTML=s+g;c.setAttribute("data-styles","");o.insertBefore(c,f?f.nextSibling:o.firstChild)}d=false;if(r.length){r.map((t=>t.connectedCallback()))}else{{b.jmp((()=>a=setTimeout(Pt,30)))}}n()};const Xt=t=>{const e=new URL(t,b.i);return e.origin!==u.location.origin?e.href:e.pathname};const Yt=new WeakMap;const Zt=t=>Yt.get(t);const te=(t,e)=>Yt.set(e.o=t,e);const ee=(t,e)=>{const n={t:0,h:t,p:e,A:new Map};{n.B=new Promise((t=>n.P=t))}{n.q=new Promise((t=>n.U=t));t["s-p"]=[];t["s-rc"]=[]}w(t,n,e.F);return Yt.set(t,n)};const ne=(t,e)=>e in t;const se=(t,e)=>(0,console.error)(t,e);const ie=new Map;const le=(t,e,n)=>{const s=t.j.replace(/-/g,"_");const i=t.I;const l=ie.get(i);if(l){return l[s]}return __sc_import_nano_components(`./${i}.entry.js${""}`).then((t=>{{ie.set(i,t)}return t[s]}),(t=>{se(t,e.h)}))};const oe=new Map;const fe=[];const ce=[];const re=(t,e)=>n=>{t.push(n);if(!r){r=true;if(e&&b.t&4){he(ae)}else{b.raf(ae)}}};const ue=t=>{for(let n=0;n<t.length;n++){try{t[n](performance.now())}catch(e){se(e)}}t.length=0};const ae=()=>{ue(fe);{ue(ce);if(r=fe.length>0){b.raf(ae)}}};const he=t=>p().then(t);const de=re(fe,false);const be=re(ce,true);const me={isDev:false,isBrowser:true,isServer:false,isTesting:false};export{me as B,a as C,d as H,t as N,p as a,Qt as b,Ct as c,h as d,U as e,be as f,Tt as g,N as h,de as i,Ut as j,Xt as k,Nt as l,b as p,te as r,u as w};
5
- //# sourceMappingURL=p-ab5813a7.js.map
4
+ const t="nano-components";let e;let n;let s;let i=false;let l=false;let o=false;let f=false;let c=null;let r=false;const u=typeof window!=="undefined"?window:{};const a=u.CSS;const h=u.document||{head:{}};const d=u.HTMLElement||class{};const b={t:0,i:"",jmp:t=>t(),raf:t=>requestAnimationFrame(t),ael:(t,e,n,s)=>t.addEventListener(e,n,s),rel:(t,e,n,s)=>t.removeEventListener(e,n,s),ce:(t,e)=>new CustomEvent(t,e)};const m=(()=>(h.head.attachShadow+"").indexOf("[native")>-1)();const p=t=>Promise.resolve(t);const y=(()=>{try{new CSSStyleSheet;return typeof(new CSSStyleSheet).replace==="function"}catch(t){}return false})();const w=(t,e,n,s)=>{if(n){n.map((([n,s,i])=>{const l=$(t,n);const o=j(e,i);const f=O(n);b.ael(l,s,o,f);(e.l=e.l||[]).push((()=>b.rel(l,s,o,f)))}))}};const j=(t,e)=>n=>{try{{if(t.t&256){t.o[e](n)}else{(t.u=t.u||[]).push([e,n])}}}catch(s){se(s,t.h||null)}};const $=(t,e)=>{if(e&8)return u;if(e&16)return h.body;return t};const O=t=>(t&2)!==0;const g="{visibility:hidden}.hydrated{visibility:inherit}";const _="http://www.w3.org/1999/xlink";const k=(t,e="")=>{{return()=>{}}};const S=(t,e)=>{{return()=>{}}};const T=new WeakMap;const C=(t,e,n)=>{let s=oe.get(t);if(y&&n){s=s||new CSSStyleSheet;s.replace(e)}else{s=e}oe.set(t,s)};const M=(t,e,n,s)=>{let i=E(e);let l=oe.get(i);t=t.nodeType===11?t:h;if(l){if(typeof l==="string"){t=t.head||t;let n=T.get(t);let o;if(!n){T.set(t,n=new Set)}if(!n.has(i)){{if(b.m){o=b.m.createHostStyle(s,i,l,!!(e.t&10));const t=o["s-sc"];if(t){i=t;n=null}}else{o=h.createElement("style");o.innerHTML=l}t.insertBefore(o,t.querySelector("link"))}if(n){n.add(i)}}}else if(!t.adoptedStyleSheets.includes(l)){t.adoptedStyleSheets=[...t.adoptedStyleSheets,l]}}return i};const x=t=>{const e=t.p;const n=t.h;const s=e.t;const i=k("attachStyles",e.j);const l=M(m&&n.shadowRoot?n.shadowRoot:n.getRootNode(),e,t.$,n);if(s&10){n["s-sc"]=l;n.classList.add(l+"-h");if(s&2){n.classList.add(l+"-s")}}i()};const E=(t,e)=>"sc-"+t.j;const v={};const L=t=>t!=null;const H=t=>{t=typeof t;return t==="object"||t==="function"};const N=(t,e,...n)=>{let s=null;let i=null;let l=null;let o=false;let f=false;let c=[];const r=e=>{for(let n=0;n<e.length;n++){s=e[n];if(Array.isArray(s)){r(s)}else if(s!=null&&typeof s!=="boolean"){if(o=typeof t!=="function"&&!H(s)){s=String(s)}if(o&&f){c[c.length-1].O+=s}else{c.push(o?R(null,s):s)}f=o}}};r(n);if(e){if(e.key){i=e.key}if(e.name){l=e.name}{const t=e.className||e.class;if(t){e.class=typeof t!=="object"?t:Object.keys(t).filter((e=>t[e])).join(" ")}}}if(typeof t==="function"){return t(e===null?{}:e,c,A)}const u=R(t,null);u.g=e;if(c.length>0){u._=c}{u.k=i}{u.S=l}return u};const R=(t,e)=>{const n={t:0,T:t,O:e,C:null,_:null};{n.g=null}{n.k=null}{n.S=null}return n};const U={};const P=t=>t&&t.T===U;const A={forEach:(t,e)=>t.map(D).forEach(e),map:(t,e)=>t.map(D).map(e).map(W)};const D=t=>({vattrs:t.g,vchildren:t._,vkey:t.k,vname:t.S,vtag:t.T,vtext:t.O});const W=t=>{if(typeof t.vtag==="function"){const e=Object.assign({},t.vattrs);if(t.vkey){e.key=t.vkey}if(t.vname){e.name=t.vname}return N(t.vtag,e,...t.vchildren||[])}const e=R(t.vtag,t.vtext);e.g=t.vattrs;e._=t.vchildren;e.k=t.vkey;e.S=t.vname;return e};const B=(t,e,n,s,i,l)=>{if(n!==s){let f=ne(t,e);let c=e.toLowerCase();if(e==="class"){const e=t.classList;const i=q(n);const l=q(s);e.remove(...i.filter((t=>t&&!l.includes(t))));e.add(...l.filter((t=>t&&!i.includes(t))))}else if(e==="style"){{for(const e in n){if(!s||s[e]==null){if(e.includes("-")){t.style.removeProperty(e)}else{t.style[e]=""}}}}for(const e in s){if(!n||s[e]!==n[e]){if(e.includes("-")){t.style.setProperty(e,s[e])}else{t.style[e]=s[e]}}}}else if(e==="key");else if(e==="ref"){if(s){s(t)}}else if(!f&&e[0]==="o"&&e[1]==="n"){if(e[2]==="-"){e=e.slice(3)}else if(ne(u,c)){e=c.slice(2)}else{e=c[2]+e.slice(3)}if(n){b.rel(t,e,n,false)}if(s){b.ael(t,e,s,false)}}else{const r=H(s);if((f||r&&s!==null)&&!i){try{if(!t.tagName.includes("-")){let i=s==null?"":s;if(e==="list"){f=false}else if(n==null||t[e]!=i){t[e]=i}}else{t[e]=s}}catch(o){}}let u=false;{if(c!==(c=c.replace(/^xlink\:?/,""))){e=c;u=true}}if(s==null||s===false){if(s!==false||t.getAttribute(e)===""){if(u){t.removeAttributeNS(_,e)}else{t.removeAttribute(e)}}}else if((!f||l&4||i)&&!r){s=s===true?"":s;if(u){t.setAttributeNS(_,e,s)}else{t.setAttribute(e,s)}}}}};const F=/\s/;const q=t=>!t?[]:t.split(F);const I=(t,e,n,s)=>{const i=e.C.nodeType===11&&e.C.host?e.C.host:e.C;const l=t&&t.g||v;const o=e.g||v;{for(s in l){if(!(s in o)){B(i,s,l[s],undefined,n,e.t)}}}for(s in o){B(i,s,l[s],o[s],n,e.t)}};const V=t=>{const e=t.cloneNode;t.cloneNode=function(t){const n=this;const s=e.call(n,false);if(t){let t=0;let e,i;let l=["s-id","s-cr","s-lr","s-rc","s-sc","s-p","s-cn","s-sr","s-sn","s-hn","s-ol","s-nr","s-si","s-sf","s-sfc","s-hsf"];for(;t<n.__childNodes.length;t++){e=n.__childNodes[t]["s-nr"];i=l.every((e=>!n.__childNodes[t][e]));if(e){s.__appendChild(e.cloneNode(true))}if(i){s.__appendChild(n.__childNodes[t].cloneNode(true))}}}return s}};const z=t=>{G(t);Z(t);et(t);tt(t);st(t);it(t);lt(t);nt(t);J(t);K(t);Q(t)};const G=t=>{class e extends Array{item(t){return this[t]}}const n=Object.getOwnPropertyDescriptor(Node.prototype,"childNodes");if(n)Object.defineProperty(t,"__childNodes",n);let s=Object.getOwnPropertyDescriptor(Element.prototype,"children");if(!s)s=Object.getOwnPropertyDescriptor(HTMLElement.prototype,"children");if(s)Object.defineProperty(t,"__children",s);const i=Object.getOwnPropertyDescriptor(Element.prototype,"childElementCount");if(i)Object.defineProperty(t,"__childElementCount",i);Object.defineProperty(t,"children",{get(){return this.childNodes.map((t=>{if(t.nodeType===1)return t;else return null})).filter((t=>!!t))}});Object.defineProperty(t,"childElementCount",{get(){return t.children.length}});if(!n)return;Object.defineProperty(t,"childNodes",{get(){const t=this.__childNodes;const n=new e;for(let e=0;e<t.length;e++){const s=t[e]["s-nr"];if(s){n.push(s)}}return n}})};const J=t=>{let e=Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML");if(!e)e=Object.getOwnPropertyDescriptor(HTMLElement.prototype,"innerHTML");if(e)Object.defineProperty(t,"__innerHTML",e);Object.defineProperty(t,"innerHTML",{get:function(){let t="";this.childNodes.forEach((e=>t+=e.outerHTML||e.textContent));return t},set:function(t){this.childNodes.forEach((t=>{if(t["s-ol"])t["s-ol"].remove();t.remove()}));this.insertAdjacentHTML("beforeend",t)}})};const K=t=>{let e=Object.getOwnPropertyDescriptor(Element.prototype,"innerText");if(!e)e=Object.getOwnPropertyDescriptor(HTMLElement.prototype,"innerText");if(e)Object.defineProperty(t,"__innerText",e);Object.defineProperty(t,"innerText",{get:function(){let t="";this.childNodes.forEach((e=>t+=e.innerText||e.textContent.trimEnd()));return t},set:function(t){this.childNodes.forEach((t=>{if(t["s-ol"])t["s-ol"].remove();t.remove()}));this.insertAdjacentHTML("beforeend",t)}})};const Q=t=>{const e=Object.getOwnPropertyDescriptor(Node.prototype,"textContent");if(e)Object.defineProperty(t,"__textContent",e);Object.defineProperty(t,"textContent",{get:function(){let t="";this.childNodes.forEach((e=>t+=e.textContent||""));return t},set:function(t){this.childNodes.forEach((t=>{if(t["s-ol"])t["s-ol"].remove();t.remove()}));this.insertAdjacentHTML("beforeend",t)}})};const X=t=>{if(!t||t.__remove)return;t.__remove=t.remove||true;Y(t.parentNode);t.remove=function(){if(this.parentNode){return this.parentNode.removeChild(this)}return this.__remove()}};const Y=t=>{if(!t||t.__removeChild)return;t.__removeChild=t.removeChild;t.removeChild=function(t){if(t["s-sn"]){const e=ft(this.__childNodes||this.childNodes,t["s-sn"]);this.__removeChild(t);if(e&&e["s-hsf"])ut(this);return}return this.__removeChild(t)}};const Z=t=>{if(t.__appendChild)return;t.__appendChild=t.appendChild;t.appendChild=function(t){const e=t["s-sn"]=ot(t);const n=ft(this.__childNodes,e);if(n){const s=document.createTextNode("");s["s-nr"]=t;if(n["s-cr"].parentNode){n["s-cr"].parentNode.__appendChild(s)}t["s-ol"]=s;X(t);const i=ct(n,e);const l=i[i.length-1];l.parentNode.insertBefore(t,l.nextSibling);Y(t.parentNode);if(n["s-hsf"])ut(n.parentNode);return}if(t.nodeType===1&&!!t.getAttribute("slot")&&this.__childNodes)t.hidden=true;return this.__appendChild(t)}};const tt=t=>{if(t.__prepend)return;t.__prepend=t.prepend;t.prepend=function(...t){t.forEach((t=>{if(typeof t==="string"){t=this.ownerDocument.createTextNode(t)}const e=t["s-sn"]=ot(t);const n=ft(this.__childNodes,e);if(n){const s=document.createTextNode("");s["s-nr"]=t;if(n["s-cr"].parentNode){n["s-cr"].parentNode.__appendChild(s)}t["s-ol"]=s;X(t);const i=ct(n,e);const l=i[0];l.parentNode.insertBefore(t,l.nextSibling);Y(t.parentNode);if(n["s-hsf"])ut(n.parentNode);return}if(t.nodeType===1&&!!t.getAttribute("slot")&&this.__childNodes)t.hidden=true;return this.__prepend(t)}))}};const et=t=>{if(t.__append)return;t.__append=t.append;t.append=function(...t){t.forEach((t=>{if(typeof t==="string"){t=this.ownerDocument.createTextNode(t)}this.appendChild(t)}))}};const nt=t=>{if(t.__replaceChildren)return;t.__replaceChildren=t.replaceChildren;t.replaceChildren=function(...t){const e=ft(this.__childNodes,"");if(e){const n=ct(e,"");n.forEach((t=>{if(!t["s-sr"]){t.remove()}}));this.append(...t)}}};const st=t=>{if(t.__insertAdjacentHTML)return;t.__insertAdjacentHTML=t.insertAdjacentHTML;t.insertAdjacentHTML=function(t,e){if(t!=="afterbegin"&&t!=="beforeend"){return this.__insertAdjacentHTML(t,e)}const n=this.ownerDocument.createElement("_");let s;n.innerHTML=e;if(t==="afterbegin"){while(s=n.firstChild){this.prepend(s)}}else if(t==="beforeend"){while(s=n.firstChild){this.append(s)}}}};const it=t=>{if(t.__insertAdjacentText)return;t.__insertAdjacentText=t.insertAdjacentText;t.insertAdjacentText=function(t,e){this.insertAdjacentHTML(t,e)}};const lt=t=>{if(t.__insertAdjacentElement)return;t.__insertAdjacentElement=t.insertAdjacentElement;t.insertAdjacentElement=function(t,e){if(t!=="afterbegin"&&t!=="beforeend"){return this.__insertAdjacentElement(t,e)}if(t==="afterbegin"){this.prepend(e)}else if(t==="beforeend"){this.append(e)}}};const ot=t=>t["s-sn"]||t.nodeType===1&&t.getAttribute("slot")||t.slot||"";const ft=(t,e)=>{let n=0;let s;if(!t)return null;for(;n<t.length;n++){s=t[n];if(s["s-sr"]&&s["s-sn"]===e){return s}s=ft(s.childNodes,e);if(s){return s}}return null};const ct=(t,e)=>{const n=[t];while((t=t.nextSibling)&&t["s-sn"]===e){n.push(t)}return n};const rt=(t,e)=>{if(!t["s-hsf"])return;let n=t;while((n=n.previousSibling||n.parentNode)&&n.tagName!==t["s-hn"]){if(n["s-sr"]&&e&&n["s-psn"]&&n["s-psn"]===t["s-sn"]){rt(n,true);continue}if(n["s-sn"]!==t["s-sn"])continue;if(n.nodeType===1){n.hidden=e;n.style.display=e?"none":""}else if(!!n["s-sfc"]){if(e){n["s-sfc"]=n.textContent;n.textContent=""}else if(n.textContent.trim()===""){n.textContent=n["s-sfc"]}}}};const ut=t=>{let e=t.__childNodes||t.childNodes;let n;let s;let i;let l;let o;let f;for(s=0,i=e.length;s<i;s++){n=e[s];if(n["s-sr"]){o=n["s-sn"];rt(n,false);for(l=0;l<i;l++){f=e[l].nodeType;if(e[l]["s-sf"])continue;if(e[l]["s-hn"]!==n["s-hn"]||o!==""){if(f===1&&o===e[l]["s-sn"]){rt(n,true);X(e[l]);break}}else if(e[l]["s-sn"]===o){if(f===1||f===3&&e[l].textContent.trim()!==""){rt(n,true);X(e[l]);break}}}}ut(n)}};const at=(t,l,c,r)=>{let u=l._[c];let a=0;let d;let b;let m;if(!i){o=true;if(u.T==="slot"){if(e){r.classList.add(e+"-s")}u.t|=u._?2:1}}if(u.O!==null){d=u.C=h.createTextNode(u.O)}else if(u.t&(1|2)){d=u.C=h.createTextNode("")}else{d=u.C=h.createElement(u.T);{I(null,u,f)}if(L(e)&&d["s-si"]!==e){d.classList.add(d["s-si"]=e)}if(u._){for(a=0;a<u._.length;++a){b=at(t,u,a,d);if(b){d.__appendChild?d.__appendChild(b):d.appendChild(b)}}}}{d["s-hn"]=s;if(u.t&(2|1)){d["s-sr"]=true;d["s-cr"]=n;d["s-sn"]=u.S||"";if(l.S)d["s-psn"]=l.S;if(u.t&2){if(u._){for(a=0;a<u._.length;++a){let e=d.nodeType===1?d:r;while(e.nodeType!==1){e=e.parentNode}b=at(t,u,a,e);b["s-sf"]=d["s-hsf"]=true;if(typeof b["s-sn"]==="undefined")b["s-sn"]=u.S||"";if(b.nodeType===3){b["s-sfc"]=b.textContent}if(b){e.__appendChild?e.__appendChild(b):e.appendChild(b)}}}}m=t&&t._&&t._[c];if(m&&m.T===u.T&&t.C){ht(t.C,false)}}}return d};const ht=(t,e)=>{b.t|=1;const n=t.__childNodes||t.childNodes;for(let i=n.length-1;i>=0;i--){const t=n[i];if(t["s-hn"]!==s&&t["s-ol"]){jt(t).insertBefore(t,wt(t));t["s-ol"].remove();t["s-ol"]=undefined;o=true}if(e){ht(t,e)}}b.t&=~1};const dt=(t,e,n,i,l,o)=>{let f=t["s-cr"]&&t["s-cr"].parentNode||t;let c;if(f.shadowRoot&&f.tagName===s){f=f.shadowRoot}for(;l<=o;++l){if(i[l]){c=at(null,n,l,t);if(c){i[l].C=c;f.insertBefore(c,wt(e))}}}};const bt=t=>{let e;let n;let s;let i=t.__childNodes||t.childNodes;for(n=0,s=i.length;n<s;n++){e=i[n];if(e["s-ol"]){if(e["s-hn"])e["s-hn"]=undefined}else{bt(e)}}};const mt=(t,e,n,s,i)=>{for(;e<=n;++e){if(s=t[e]){i=s.C;kt(s);{l=true;bt(i);if(i["s-ol"]){i["s-ol"].remove()}else{ht(i,true)}}i.remove()}}};const pt=(t,e,n,s)=>{let i=0;let o=0;let f=0;let c=0;let r=0;let u=e.length-1;let a=e[0];let h=e[u];let d=s.length-1;let b=s[0];let m=s[d];let p;let y;let w;let j;let $=[];let O;let g={};let _;let k;let S;let T;while(i<=u&&o<=d){if(a==null){a=e[++i]}else if(h==null){h=e[--u]}else if(b==null){b=s[++o]}else if(m==null){m=s[--d]}else if(yt(a,b)){$t(a,b);a=e[++i];b=s[++o]}else if(yt(h,m)){$t(h,m);h=e[--u];m=s[--d]}else if(yt(a,m)){if(a.T==="slot"||m.T==="slot"){ht(a.C.parentNode,false)}$t(a,m);t.insertBefore(a.C,h.C.nextSibling);a=e[++i];m=s[--d]}else if(yt(h,b)){if(a.T==="slot"||m.T==="slot"){ht(h.C.parentNode,false)}$t(h,b);t.insertBefore(h.C,a.C);h=e[--u];b=s[++o]}else{f=-1;{for(c=i;c<=u;++c){if(e[c]&&e[c].k!==null&&e[c].k===b.k){f=c;break}}}if(f>=0){y=e[f];if(y.T!==b.T){p=at(e&&e[o],n,f,t)}else{$t(y,b);e[f]=undefined;p=y.C}b=s[++o]}else{p=at(e&&e[o],n,o,t);b=s[++o]}if(p){{jt(a.C).insertBefore(p,wt(a.C))}}}}if(i>u){dt(t,s[d+1]==null?null:s[d+1].C,n,s,o,d)}else if(o>d){mt(e,i,u)}if(t.parentNode&&n.C["s-hsf"]){w=t.parentNode.__childNodes||t.parentNode.childNodes;j=w.length-1;for(c=0;c<=j;++c){k=w[c];if(k["s-hsf"]){$.push(k);continue}if(k["s-sf"]){if(!g[k["s-sn"]])g[k["s-sn"]]=[];g[k["s-sn"]].push(k)}}O=$.length-1;for(c=0;c<=O;++c){S=$[c];if(!g[S["s-sn"]])continue;_=g[S["s-sn"]].length-1;for(r=0;r<=_;++r){T=g[S["s-sn"]][r];S.parentNode.insertBefore(T,S)}}l=true}};const yt=(t,e)=>{if(t.T===e.T){if(t.T==="slot"){return t.S===e.S}{return t.k===e.k}}return false};const wt=t=>t&&t["s-ol"]||t;const jt=t=>(t["s-ol"]?t["s-ol"]:t).parentNode;const $t=(t,e)=>{const n=e.C=t.C;const s=t._;const i=e._;const l=e.T;const o=e.O;let c;if(o===null){{if(l==="slot");else{I(t,e,f)}}if(s!==null&&i!==null){pt(n,s,e,i)}else if(i!==null){if(t.O!==null){n.textContent=""}dt(n,null,e,i,0,i.length-1)}else if(s!==null){mt(s,0,s.length-1)}}else if(c=n["s-cr"]){c.parentNode.textContent=o}else if(t.O!==o){n.textContent=o;if(n["s-sf"]){n["s-sfc"]=o}}};const Ot=[];const gt=t=>{let e;let n;let s;let i;let o;let f;let c=0;let r=t.__childNodes||t.childNodes;let u=r.length;for(;c<u;c++){e=r[c];if(e["s-sr"]&&(n=e["s-cr"])&&n.parentNode){if(e["s-hsf"]){l=true}s=n.parentNode.__childNodes||n.parentNode.childNodes;i=e["s-sn"];for(f=s.length-1;f>=0;f--){n=s[f];if(!n["s-cn"]&&!n["s-nr"]&&n["s-hn"]!==e["s-hn"]){if(_t(n,i)){o=Ot.find((t=>t.M===n));l=true;n["s-sn"]=n["s-sn"]||i;if(o){o.v=e}else{Ot.push({v:e,M:n})}if(n["s-sr"]){Ot.map((t=>{if(_t(t.M,n["s-sn"])){o=Ot.find((t=>t.M===n));if(o&&!t.v){t.v=o.v}}}))}}else if(!Ot.some((t=>t.M===n))){Ot.push({M:n})}}}}if(e.nodeType===1){gt(e)}}};const _t=(t,e)=>{if(t.nodeType===1){if(t.getAttribute("slot")===null&&e===""){return true}if(t.getAttribute("slot")===e){return true}return false}if(t["s-sn"]===e){return true}return e===""};const kt=t=>{{t.g&&t.g.ref&&t.g.ref(null);t._&&t._.map(kt)}};const St=(t,f)=>{const c=t.h;const r=t.p;const u=t.L||R(null,null);const a=P(f)?f:N(null,null,f);s=c.tagName;if(r.H){a.g=a.g||{};r.H.map((([t,e])=>a.g[e]=c[t]))}a.T=null;a.t|=4;t.L=a;a.C=u.C=c.shadowRoot||c;{e=c["s-sc"]}{n=c["s-cr"];i=m&&(r.t&1)!==0;l=false}$t(u,a);{b.t|=1;if(o){gt(a.C);let t;let e;let n;let s;let i;let l;let o;let f=0;for(;f<Ot.length;f++){t=Ot[f];e=t.M;if(!e["s-ol"]){n=h.createTextNode("");n["s-nr"]=e;e.parentNode.insertBefore(e["s-ol"]=n,e)}}for(f=0;f<Ot.length;f++){t=Ot[f];e=t.M;if(t.v){s=t.v.parentNode;i=t.v.nextSibling;n=e["s-ol"];o=i;while(n=n.previousSibling){l=n["s-nr"];if(l&&l["s-sn"]===e["s-sn"]&&s===l.parentNode){l=l.nextSibling;if(!l||!l["s-nr"]){i=l;break}}}if(!i&&s!==e.parentNode||e.nextSibling!==i){if(e!==i){if(!e["s-hn"]&&e["s-ol"]){e["s-hn"]=e["s-ol"].parentNode.nodeName}s.insertBefore(e,i);e.hidden=false}else{s.insertBefore(e,o)}}}else{if(e.nodeType===1){e.hidden=true}}}}if(l){ut(a.C)}b.t&=~1;Ot.length=0}};const Tt=t=>Zt(t).h;const Ct=(t,e,n)=>{const s=Tt(t);return{emit:t=>Mt(s,e,{bubbles:!!(n&4),composed:!!(n&2),cancelable:!!(n&1),detail:t})}};const Mt=(t,e,n)=>{const s=b.ce(e,n);t.dispatchEvent(s);return s};const xt=(t,e)=>{if(e&&!t.N&&e["s-p"]){e["s-p"].push(new Promise((e=>t.N=e)))}};const Et=(t,e)=>{{t.t|=16}if(t.t&4){t.t|=512;return}xt(t,t.R);const n=()=>vt(t,e);return be(n)};const vt=(t,e)=>{const n=t.h;const s=k("scheduleUpdate",t.p.j);const i=t.o;let l;if(e){{t.t|=256;if(t.u){t.u.map((([t,e])=>At(i,t,e,n)));t.u=null}}{l=At(i,"componentWillLoad",undefined,n)}}s();return Dt(l,(()=>Lt(t,i,e)))};const Lt=async(t,e,n)=>{const s=t.h;const i=k("update",t.p.j);const l=s["s-rc"];if(n){x(t)}const o=k("render",t.p.j);{Ht(t,e)}if(b.m){b.m.updateHost(s)}if(l){l.map((t=>t()));s["s-rc"]=undefined}o();i();{const e=s["s-p"];const n=()=>Rt(t);if(e.length===0){n()}else{Promise.all(e).then(n);t.t|=4;e.length=0}}};const Ht=(t,e,n)=>{try{c=e;e=e.render();{t.t&=~16}{t.t|=2}{{{St(t,e)}}}}catch(s){se(s,t.h)}c=null;return null};const Nt=()=>c;const Rt=t=>{const e=t.p.j;const n=t.h;const s=k("postUpdate",e);const i=t.o;const l=t.R;{At(i,"componentDidRender",undefined,n)}if(!(t.t&64)){t.t|=64;{Wt(n)}{At(i,"componentDidLoad",undefined,n)}s();{t.U(n);if(!l){Pt()}}}else{{At(i,"componentDidUpdate",undefined,n)}s()}{t.P(n)}{if(t.N){t.N();t.N=undefined}if(t.t&512){he((()=>Et(t,false)))}t.t&=~(4|512)}};const Ut=t=>{{const e=Zt(t);const n=e.h.isConnected;if(n&&(e.t&(2|16))===2){Et(e,false)}return n}};const Pt=e=>{{Wt(h.documentElement)}he((()=>Mt(u,"appload",{detail:{namespace:t}})))};const At=(t,e,n,s)=>{if(t&&t[e]){try{return t[e](n)}catch(i){se(i,s)}}return undefined};const Dt=(t,e)=>t&&t.then?t.then(e):e();const Wt=t=>t.classList.add("hydrated");const Bt=(t,e)=>{if(t!=null&&!H(t)){if(e&4){return t==="false"?false:t===""||!!t}if(e&2){return parseFloat(t)}if(e&1){return String(t)}return t}return t};const Ft=(t,e)=>Zt(t).A.get(e);const qt=(t,e,n,s,i=true)=>{const l=Zt(t);const o=l.h;const f=l.A.get(e);const c=l.t;const r=l.o;n=Bt(n,s.D[e][0]);if((!(c&8)||f===undefined)&&n!==f){l.A.set(e,n);if(r){if(s.W&&c&128&&i){const t=s.W[e];if(t){t.map((t=>{try{r[t](n,f,e)}catch(s){se(s,o)}}))}}if((c&(2|16))===2){Et(l,false)}}}};const It=(t,e,n)=>{if(e.D){if(t.watchers){e.W=t.watchers}const s=Object.entries(e.D);const i=t.prototype;s.map((([t,[s]])=>{if(s&31||n&2&&s&32){if((s&2048)===0){Object.defineProperty(i,t,{get(){return Ft(this,t)},set(n){qt(this,t,n,e)},configurable:true,enumerable:true})}else if(n&1&&s&2048){{Object.defineProperty(i,t,{get(){const e=Zt(this);const n=e?e.o:i;if(!n)return;return n[t]},configurable:true,enumerable:true})}}if(s&4096){const n=Object.getOwnPropertyDescriptor(i,t).set;Object.defineProperty(i,t,{set(s){const i=Zt(this);if(n){n.apply(this,[s]);qt(this,t,i.h[t],e);return}if(!i)return;const l=(n=false)=>{i.o[t]=s;qt(this,t,i.o[t],e,!n)};if(i.o){l()}else{i.B.then((()=>l(true)))}}})}}else if(n&1&&s&64){Object.defineProperty(i,t,{value(...e){const n=Zt(this);return n.B.then((()=>n.o[t](...e)))}})}}));if(n&1){const n=new Map;i.attributeChangedCallback=function(t,e,s){b.jmp((()=>{const e=n.get(t);if(this.hasOwnProperty(e)){s=this[e];delete this[e]}else if(i.hasOwnProperty(e)&&typeof this[e]==="number"&&this[e]==s){return}const l=Object.getOwnPropertyDescriptor(i,e);if(!l.get||!!l.set){this[e]=s===null&&typeof this[e]==="boolean"?false:s}}))};t.observedAttributes=s.filter((([t,e])=>e[0]&15)).map((([t,s])=>{const i=s[1]||t;n.set(i,t);if(s[0]&512){e.H.push([t,i])}return i}))}}return t};const Vt=async(t,e,n,s,i)=>{if((e.t&32)===0){{e.t|=32;i=le(n,e);if(i.then){const t=S();i=await i;t()}if(!i.isProxied){{n.W=i.watchers}It(i,n,2);i.isProxied=true}const s=k("createInstance",n.j);{e.t|=8}try{new i(e)}catch(f){se(f,t)}{e.t&=~8}{e.t|=128}s();zt(e.o,t)}if(i.style){let t=i.style;const e=E(n);if(!oe.has(e)){const s=k("registerStyles",n.j);if(n.t&8){t=await __sc_import_nano_components("./p-f3e66371.js").then((n=>n.scopeCss(t,e,false)))}C(e,t,!!(n.t&1));s()}}}const l=e.R;const o=()=>Et(e,true);if(l&&l["s-rc"]){l["s-rc"].push(o)}else{o()}};const zt=(t,e)=>{{At(t,"connectedCallback",undefined,e)}};const Gt=t=>{if((b.t&1)===0){const e=Zt(t);const n=e.p;const s=k("connectedCallback",n.j);if(!(e.t&1)){e.t|=1;{if(n.t&(4|8)){Jt(t)}}{let n=t;while(n=n.parentNode||n.host){if(n["s-p"]){xt(e,e.R=n);break}}}if(n.D){Object.entries(n.D).map((([e,[n]])=>{if(n&31&&t.hasOwnProperty(e)){const n=t[e];delete t[e];t[e]=n}}))}{Vt(t,e,n)}}else{w(t,e,n.F);zt(e.o,t);if(b.m&&t["s-sc"]){const n="sc-"+e.p.j;const s=oe.get(n);const i=t["s-sc"];const l=b.m.createHostStyle(t,n,s,true);const o=l["s-sc"];l.setAttribute("sty-id",o);let f=document.head;f.insertBefore(l,f.querySelector("link"));t["s-sc"]=o;t.classList.remove(i+"-h",i+"-s");t.classList.add(o+"-h",o+"-s");Array.from(t.querySelectorAll("."+i)).forEach((t=>{t.classList.remove(i,i+"-s");t.classList.add(o,o+"-s")}));b.m.updateHost(t)}}s()}};const Jt=t=>{const e=t["s-cr"]=h.createComment("");e["s-cn"]=true;if(!!t.firstChild)t.insertBefore(e,t.firstChild);else t.appendChild(e)};const Kt=t=>{if((b.t&1)===0){const e=Zt(t);const n=e.o;{if(e.l){e.l.map((t=>t()));e.l=undefined}}if(b.m){b.m.removeHost(t)}{At(n,"disconnectedCallback",undefined,t)}}};const Qt=(t,e={})=>{const n=k();const s=[];const i=e.exclude||[];const l=u.customElements;const o=h.head;const f=o.querySelector("meta[charset]");const c=h.createElement("style");const r=[];let a;let d=true;Object.assign(b,e);b.i=new URL(e.resourcesUrl||"./",h.baseURI).href;t.map((t=>{t[1].map((n=>{const o={t:n[0],j:n[1],D:n[2],F:n[3]};{o.D=n[2]}{o.F=n[3]}{o.H=[]}{o.W={}}if(!m&&o.t&1){o.t|=8}const f=e.transformTagName?e.transformTagName(o.j):o.j;const c=class extends HTMLElement{constructor(t){super(t);t=this;ee(t,o);if(o.t&1){if(m){{t.attachShadow({mode:"open"})}}else if(!("shadowRoot"in t)){t.shadowRoot=t}}}connectedCallback(){if(a){clearTimeout(a);a=null}if(d){r.push(this)}else{b.jmp((()=>Gt(this)))}}disconnectedCallback(){b.jmp((()=>Kt(this)))}componentOnReady(){return Zt(this).q}};if(o.t&4||o.t&8){z(c.prototype);{V(c.prototype)}}o.I=t[0];if(!i.includes(f)&&!l.get(f)){s.push(f);l.define(f,It(c,o,1))}}))}));{c.innerHTML=s+g;c.setAttribute("data-styles","");o.insertBefore(c,f?f.nextSibling:o.firstChild)}d=false;if(r.length){r.map((t=>t.connectedCallback()))}else{{b.jmp((()=>a=setTimeout(Pt,30)))}}n()};const Xt=t=>{const e=new URL(t,b.i);return e.origin!==u.location.origin?e.href:e.pathname};const Yt=new WeakMap;const Zt=t=>Yt.get(t);const te=(t,e)=>Yt.set(e.o=t,e);const ee=(t,e)=>{const n={t:0,h:t,p:e,A:new Map};{n.B=new Promise((t=>n.P=t))}{n.q=new Promise((t=>n.U=t));t["s-p"]=[];t["s-rc"]=[]}w(t,n,e.F);return Yt.set(t,n)};const ne=(t,e)=>e in t;const se=(t,e)=>(0,console.error)(t,e);const ie=new Map;const le=(t,e,n)=>{const s=t.j.replace(/-/g,"_");const i=t.I;const l=ie.get(i);if(l){return l[s]}return __sc_import_nano_components(`./${i}.entry.js${""}`).then((t=>{{ie.set(i,t)}return t[s]}),(t=>{se(t,e.h)}))};const oe=new Map;const fe=[];const ce=[];const re=(t,e)=>n=>{t.push(n);if(!r){r=true;if(e&&b.t&4){he(ae)}else{b.raf(ae)}}};const ue=t=>{for(let n=0;n<t.length;n++){try{t[n](performance.now())}catch(e){se(e)}}t.length=0};const ae=()=>{ue(fe);{ue(ce);if(r=fe.length>0){b.raf(ae)}}};const he=t=>p().then(t);const de=re(fe,false);const be=re(ce,true);const me={isDev:false,isBrowser:true,isServer:false,isTesting:false};export{me as B,a as C,d as H,t as N,p as a,Qt as b,Ct as c,h as d,U as e,be as f,Tt as g,N as h,de as i,Ut as j,Nt as k,Xt as l,b as p,te as r,u as w};
5
+ //# sourceMappingURL=p-b5c33aff.js.map
@@ -0,0 +1,5 @@
1
+ var __awaiter=this&&this.__awaiter||function(e,n,t,i){function o(e){return e instanceof t?e:new t((function(n){n(e)}))}return new(t||(t=Promise))((function(t,a){function l(e){try{s(i.next(e))}catch(n){a(n)}}function r(e){try{s(i["throw"](e))}catch(n){a(n)}}function s(e){e.done?t(e.value):o(e.value).then(l,r)}s((i=i.apply(e,n||[])).next())}))};var __generator=this&&this.__generator||function(e,n){var t={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,o,a,l;return l={next:r(0),throw:r(1),return:r(2)},typeof Symbol==="function"&&(l[Symbol.iterator]=function(){return this}),l;function r(e){return function(n){return s([e,n])}}function s(l){if(i)throw new TypeError("Generator is already executing.");while(t)try{if(i=1,o&&(a=l[0]&2?o["return"]:l[0]?o["throw"]||((a=o["return"])&&a.call(o),0):o.next)&&!(a=a.call(o,l[1])).done)return a;if(o=0,a)l=[l[0]&2,a.value];switch(l[0]){case 0:case 1:a=l;break;case 4:t.label++;return{value:l[1],done:false};case 5:t.label++;o=l[1];l=[0];continue;case 7:l=t.ops.pop();t.trys.pop();continue;default:if(!(a=t.trys,a=a.length>0&&a[a.length-1])&&(l[0]===6||l[0]===2)){t=0;continue}if(l[0]===3&&(!a||l[1]>a[0]&&l[1]<a[3])){t.label=l[1];break}if(l[0]===6&&t.label<a[1]){t.label=a[1];a=l;break}if(a&&t.label<a[2]){t.label=a[2];t.ops.push(l);break}if(a[2])t.ops.pop();t.trys.pop();continue}l=n.call(e,t)}catch(r){l=[6,r];o=0}finally{i=a=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:true}}};var __spreadArray=this&&this.__spreadArray||function(e,n){for(var t=0,i=n.length,o=e.length;t<i;t++,o++)e[o]=n[t];return e};
2
+ /*!
3
+ * Web Components for Nanopore digital Web Apps
4
+ */System.register(["./p-f48be9f5.system.js"],(function(e){"use strict";var n,t,i,o,a;return{setters:[function(e){n=e.r;t=e.c;i=e.h;o=e.e;a=e.g}],execute:function(){var l='.sc-nano-file-upload-h{-webkit-box-sizing:border-box;box-sizing:border-box}*.sc-nano-file-upload,*.sc-nano-file-upload::before,*.sc-nano-file-upload::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden].sc-nano-file-upload{display:none !important}.sc-nano-file-upload-h{min-height:1rem;display:block;--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-font-size:var(--nano-input-label-color, 1em);--label-padding:var(--nano-input-padding-bottom, var(--nano-input-padding, 6px));--label-color--invalid:var(--nano-input-label-color-invalid, "currentColor");--drop-bg:#f2f7f9;--drop-text:#756f6a;--drop-height:3.5em;--drop-border-tint:var(--nano-color-primary-rgb, 0, 116, 149);--drop-border-width:2px;--drop-border-radius:5px;--drop-bg--invalid:var(--nano-input-background-color, white);--drop-border--invalid:var(--nano-color-danger-rgb, 239, 65, 53);--btn-bg:var(--nano-color-primary, #007495);--btn-text:var(--nano-color-primary-contrast, #fff);--btn-icon-size:var(--nano-btn-icon-size, 1.4em);--btn-padding-top:var(--nano-btn-padding-top, 0.5em);--btn-padding-bottom:var(--nano-btn-padding-bottom, 0.5em);--btn-padding-start:var(--nano-btn-padding-start, 1em);--btn-padding-end:var(--nano-btn-padding-end, 1em)}[disabled].sc-nano-file-upload-h:not([disabled=false]){opacity:0.7}[disabled].sc-nano-file-upload-h:not([disabled=false]) *.sc-nano-file-upload{pointer-events:none !important}.file-upload__label.sc-nano-file-upload{font-size:var(--label-font-size);padding:0 0 var(--label-padding);margin:0;line-height:1}[invalid].sc-nano-file-upload-h:not([invalid=false]) .file-upload__label.sc-nano-file-upload{color:var(--label-color--invalid)}.file-upload__input.sc-nano-file-upload{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}.file-upload__error.sc-nano-file-upload,.file-upload__help.sc-nano-file-upload,.file-upload__more.sc-nano-file-upload,.file-upload__label.sc-nano-file-upload{display:block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.file-upload__more.sc-nano-file-upload{height:1em;margin-left:3px;margin-right:0;margin-top:calc(var(--label-padding) / 2);margin-bottom:var(--label-padding);position:relative}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.file-upload__more.sc-nano-file-upload{margin-left:unset;margin-right:unset;-webkit-margin-start:3px;margin-inline-start:3px;-webkit-margin-end:0;margin-inline-end:0}}.file-upload__error.sc-nano-file-upload,.file-upload__help.sc-nano-file-upload{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}.file-upload--invalid.sc-nano-file-upload .file-upload__error.sc-nano-file-upload,.file-upload--invalid.sc-nano-file-upload .file-upload__help.sc-nano-file-upload{opacity:1}.file-upload__error.sc-nano-file-upload{color:var(--invalid-msg-color);font-stretch:condensed;opacity:0}.file-upload--invalid.sc-nano-file-upload .file-upload__error.sc-nano-file-upload{opacity:1}.file-upload__help.sc-nano-file-upload{font-style:italic;opacity:1;color:var(--help-msg-color)}.file-upload--invalid.sc-nano-file-upload .file-upload__help.sc-nano-file-upload{opacity:0}.file-upload__drop.sc-nano-file-upload{position:relative;width:100%;display:inline-block}.file-upload__drop-area.sc-nano-file-upload{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background-color:var(--drop-bg);color:var(--drop-text);min-height:var(--drop-height);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:0.9em;position:relative;-webkit-transition:background-color 0.15s ease-in-out;transition:background-color 0.15s ease-in-out;padding:0.5rem}[disabled].sc-nano-file-upload-h:not([disabled=false]) .file-upload__drop-area.sc-nano-file-upload{opacity:0.7}.file-upload--invalid.sc-nano-file-upload .file-upload__drop-area.sc-nano-file-upload{background-color:var(--drop-bg--invalid)}.file-upload--dragging.sc-nano-file-upload .file-upload__drop-area.sc-nano-file-upload{background-color:#fff}.file-upload__drop-area.sc-nano-file-upload::after{content:"";position:absolute;border-radius:var(--drop-border-radius);border-width:var(--drop-border-width);border-color:rgba(var(--drop-border-tint), 0.5);border-style:dashed;top:0;bottom:0;left:0;right:0;-webkit-transition:top 0.1s ease-in-out, bottom 0.1s ease-in-out, left 0.1s ease-in-out, right 0.1s ease-in-out;transition:top 0.1s ease-in-out, bottom 0.1s ease-in-out, left 0.1s ease-in-out, right 0.1s ease-in-out}.file-upload--invalid.sc-nano-file-upload .file-upload__drop-area.sc-nano-file-upload::after{border-color:rgba(var(--drop-border--invalid), 1)}.file-upload--dragging.sc-nano-file-upload .file-upload__drop-area.sc-nano-file-upload::after{top:5px;bottom:5px;left:5px;right:5px}.file-upload__drop-area.sc-nano-file-upload span.sc-nano-file-upload{color:rgba(var(--drop-border-tint), 1);text-decoration:underline;border-radius:2px;z-index:1;cursor:pointer;position:relative}.file-upload--focus.sc-nano-file-upload .file-upload__drop-area.sc-nano-file-upload span.sc-nano-file-upload{-webkit-box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)))}.file-upload__list.sc-nano-file-upload{list-style:none;margin:0;padding:0}.file-upload__list-wrap.sc-nano-file-upload{position:relative;top:-4px}.file-upload__list-item.sc-nano-file-upload{width:100%;margin:0 0 2px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-animation:hideListItem 0.3s ease-in-out forwards;animation:hideListItem 0.3s ease-in-out forwards}@-webkit-keyframes hideListItem{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform:translateZ(0);transform:translateZ(0)}100%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes hideListItem{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform:translateZ(0);transform:translateZ(0)}100%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform:translateZ(0);transform:translateZ(0)}}.file-upload__list-item--active.sc-nano-file-upload{-webkit-animation:showListItem 0.3s ease-in-out forwards;animation:showListItem 0.3s ease-in-out forwards}@-webkit-keyframes showListItem{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform:translateZ(0);transform:translateZ(0)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes showListItem{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform:translateZ(0);transform:translateZ(0)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform:translateZ(0);transform:translateZ(0)}}.file-upload__list.sc-nano-file-upload .list-title.sc-nano-file-upload{background:var(--nano-color-blue--faded);border-radius:5px;padding:5px 5px;margin-right:2px;display:block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:0.9em;color:var(--help-msg-color)}.file-upload__list.sc-nano-file-upload .list-button.sc-nano-file-upload{background:var(--nano-color-blue--faded);border-radius:5px;margin:2px}.file-upload__list.sc-nano-file-upload .list-error.sc-nano-file-upload{--color:rgba(var(--drop-border--invalid), 1)}.file-upload__button.sc-nano-file-upload{margin:0;padding:0;border:none;background-color:transparent;font:inherit;-webkit-box-align:center;text-decoration:none;color:inherit;-webkit-transition:background-color 100ms ease-in-out, border-color 100ms ease-in-out, color 100ms ease-in-out, -webkit-box-shadow 100ms ease-in-out;transition:background-color 100ms ease-in-out, border-color 100ms ease-in-out, color 100ms ease-in-out, -webkit-box-shadow 100ms ease-in-out;transition:background-color 100ms ease-in-out, box-shadow 100ms ease-in-out, border-color 100ms ease-in-out, color 100ms ease-in-out;transition:background-color 100ms ease-in-out, box-shadow 100ms ease-in-out, border-color 100ms ease-in-out, color 100ms ease-in-out, -webkit-box-shadow 100ms ease-in-out;padding-left:var(--nano-btn-padding-start, 1rem);padding-right:var(--nano-btn-padding-end, 1rem);padding-top:var(--nano-btn-padding-top, 0.5rem);padding-bottom:var(--nano-btn-padding-bottom, 0.5rem);-webkit-box-shadow:var(--nano-layer-shadow-medium, 0 2px 4px rgba(0, 0, 0, 0.2));box-shadow:var(--nano-layer-shadow-medium, 0 2px 4px rgba(0, 0, 0, 0.2));display:inline-block;border-radius:var(--nano-btn-border-radius, 5px);line-height:var(--nano-btn-line-height, 1.5rem);font-weight:500;cursor:pointer;background:rgba(0, 0, 0, 0.02);background-color:var(--btn-bg);color:var(--btn-text);--nano-btn-icon-size:var(--btn-icon-size);--nano-btn-line-height:var(--btn-icon-size);--nano-btn-padding-top:var(--btn-padding-top);--nano-btn-padding-bottom:var(--btn-padding-bottom);--nano-btn-padding-start:var(--btn-padding-start);--nano-btn-padding-end:var(--btn-padding-end);max-width:100%;font-size:0.9em}.file-upload__button.sc-nano-file-upload::-moz-focus-inner{border:0;padding:0}.file-upload__button.sc-nano-file-upload:hover,.file-upload__button.sc-nano-file-upload:focus{text-decoration:none;color:inherit}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.file-upload__button.sc-nano-file-upload{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--nano-btn-padding-start, 1rem);padding-inline-start:var(--nano-btn-padding-start, 1rem);-webkit-padding-end:var(--nano-btn-padding-end, 1rem);padding-inline-end:var(--nano-btn-padding-end, 1rem)}}@media print{.file-upload__button.sc-nano-file-upload{display:none}}.file-upload__button.sc-nano-file-upload:focus,.file-upload__button.button--focus.sc-nano-file-upload{outline:none;-webkit-box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)))}.file-upload__button.sc-nano-file-upload nano-icon.sc-nano-file-upload{margin-left:0.5rem;margin-right:0;font-size:var(--nano-btn-icon-size, 1rem);vertical-align:middle;margin-top:-0.188rem;display:inline-block}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.file-upload__button.sc-nano-file-upload nano-icon.sc-nano-file-upload{margin-left:unset;margin-right:unset;-webkit-margin-start:0.5rem;margin-inline-start:0.5rem;-webkit-margin-end:0;margin-inline-end:0}}.file-upload__button.button--icon-start.sc-nano-file-upload nano-icon.sc-nano-file-upload{margin-left:0;margin-right:0.5rem}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.file-upload__button.button--icon-start.sc-nano-file-upload nano-icon.sc-nano-file-upload{margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:0.5rem;margin-inline-end:0.5rem}}.file-upload__button.sc-nano-file-upload:hover:not(.file-upload__button--disabled){-webkit-box-shadow:var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2));box-shadow:var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2))}.file-upload__button.sc-nano-file-upload:active:not(.button--disabled):not(:disabled){-webkit-box-shadow:none;box-shadow:none}.file-upload__button--disabled.sc-nano-file-upload,.file-upload__button.sc-nano-file-upload:disabled{opacity:0.6}.file-upload__button--disabled.sc-nano-file-upload:hover,.file-upload__button.sc-nano-file-upload:disabled:hover{cursor:default}.file-upload__button.sc-nano-file-upload:hover:not(.button--disabled):not(:disabled),.file-upload__button.button--active.sc-nano-file-upload{background-color:var(--nano-color-primary-shade, #00637f);color:var(--btn-text)}.file-upload__button.sc-nano-file-upload:hover:not(.button--disabled):not(:disabled).button--keyline,.file-upload__button.button--active.button--keyline.sc-nano-file-upload{background-color:var(--btn-bg);color:var(--btn-text)}.file-upload__button.sc-nano-file-upload:focus{color:var(--btn-text)}.file-upload__button.button--keyline.sc-nano-file-upload{background:transparent;border-style:var(--nano-btn-border-style, solid);border-width:var(--nano-btn-border-width, 2px);border-radius:var(--nano-btn-border-radius, 5px);color:var(--btn-bg);border-color:var(--btn-bg)}.file-upload__button.button--keyline.sc-nano-file-upload:hover:not(.button--disabled):not(:disabled),.file-upload__button.button--keyline.sc-nano-file-upload:not(.button--focus),.file-upload__button.button--keyline.button--active.sc-nano-file-upload{-webkit-box-shadow:none;box-shadow:none}[disabled].sc-nano-file-upload-h:not([disabled=false]) .file-upload__button.sc-nano-file-upload{opacity:0.4}.file-upload--dragging.sc-nano-file-upload .file-upload__button.sc-nano-file-upload{--nano-btn-border-style:dashed}.file-upload__button.sc-nano-file-upload .file-upload__clear-btn.sc-nano-file-upload{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:inherit;padding:0;border:0;outline:none;background-color:transparent;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:auto;color:var(--clear-btn-color)}.is-invalid.sc-nano-file-upload-h .file-upload__button.sc-nano-file-upload .file-upload__clear-btn.sc-nano-file-upload{color:var(--clear-btn-color--invalid)}.file-upload__button.sc-nano-file-upload .file-upload__clear-btn.sc-nano-file-upload nano-icon.sc-nano-file-upload{margin-left:0.4rem;margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.file-upload__button.sc-nano-file-upload .file-upload__clear-btn.sc-nano-file-upload nano-icon.sc-nano-file-upload{margin-left:unset;margin-right:unset;-webkit-margin-start:0.4rem;margin-inline-start:0.4rem;-webkit-margin-end:0;margin-inline-end:0}}.file-upload__button.sc-nano-file-upload .file-upload__btn-content.sc-nano-file-upload{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.file-upload__button.sc-nano-file-upload .file-upload__btn-content.sc-nano-file-upload span.sc-nano-file-upload{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}';var r=0;var s=function(){return new DataTransfer};try{s()}catch(u){try{s=function(){return new ClipboardEvent("").clipboardData};s()}catch(p){s=null}}var d=e("nano_file_upload",function(){function e(e){var o=this;n(this,e);this.nanoChange=t(this,"nanoChange",7);this.nanoFocus=t(this,"nanoFocus",7);this.nanoBlur=t(this,"nanoBlur",7);this.nanoValidate=t(this,"nanoValidate",7);this.fileInputId="nano-file-upload-"+r++;this.canChangeFileList=!!s;this.removeFiles=[];this.errorMessage="";this.isDragging=false;this.fileList=[];this.maxFileSize=1;this.maxFiles=1;this.placeholder="Choose a file...";this.hideLabel=false;this.required=false;this.disabled=false;this.clearInput=false;this.showInlineError=true;this.validateOn="submit";this._invalid=false;this.onClearClick=function(){o.value=""};this.onBlur=function(){o.hasFocus=false;o.validate();if(o.validateOn==="dirty")o.showInlineValidation();o.nanoBlur.emit()};this.onFocus=function(){o.hasFocus=true;o.nanoFocus.emit()};this.validate=function(){o.errorMessage="";o.inputEl.setCustomValidity("");var e;if(!o.inputEl.validity.valid){e=o.inputEl.validationMessage}else{o.fileList.forEach((function(n){e=null;if(!o.checkFileSize(n.file.size)){e="Maximum file size exceeded. Max file size is "+o.maxFileSize+"Mb"}else if(!o.checkFileType(n.file.type))e="File type is not allowed ("+o.accept+")";n.validationMessage=e;n.valid=!e}));if(o.fileList.length>o.maxFiles)e="Maxinum number of files exceeded ("+o.maxFiles+")"}if(!!e)o.inputEl.setCustomValidity(e)};this.onInvalid=function(e){if(o.showInlineError)e.preventDefault();o.validate();o.showInlineValidation(e)};this.onFileChoose=function(e){var n=e.target.files;if(n&&n.length)o.addNewFiles(e.target.files)};this.onFileRemoveFileClick=function(e,n){if(!o.canChangeFileList)return;o.removeFiles.push(n);e.target.closest(".file-upload__list-item--active").classList.remove("file-upload__list-item--active")};this.onFileRemoveAnim=function(){if(!o.canChangeFileList||!o.removeFiles.length)return;o.fileList=o.fileList.filter((function(e){return!o.removeFiles.find((function(n){return n===e}))}));o.removeFiles=[]};this.onInputChange=function(){o.nanoChange.emit({value:o.value,files:o.files})};this.onDragStop=function(e){e.preventDefault();e.stopPropagation();o.isDragging=false};this.onDragStart=function(e){e.preventDefault();e.stopPropagation();o.isDragging=true};this.onDrop=function(e){o.onDragStop(e);if(e.dataTransfer.files&&e.dataTransfer.files.length)o.addNewFiles(e.dataTransfer.files)};this.FileUploadInput=function(e,n){var t=o.fileInputId+"-lbl";var a=o.showInlineError||o.hasHelperSlot?o.fileInputId+"-more":"";return[i("div",{class:"file-upload__"+e+"-wrap"},i("label",{class:"file-upload__"+e,htmlFor:o.fileInputId,id:t,onDrop:function(e){o.onDrop(e);o.onDragStop(e)},onDragEnd:o.onDragStop,onDragLeave:o.onDragStop,onDragEnter:o.onDragStart,onDragOver:o.onDragStart},(!!o.label||o.hasLabelSlot&&e!=="drop")&&i("div",{class:"file-upload__label "+(o.hideLabel?"visually-hide":"")},!!o.label&&!!o.label.length?o.label:"",!o.label&&o.hasLabelSlot&&e!=="drop"&&i("slot",{name:"label"})),e==="drop"&&i("div",{class:"file-upload__drop-area"},i("div",null,o.hasLabelSlot&&i("slot",{name:"label"})),i("div",null,"Drag and drop or ",i("span",null,"browse"))),e==="btn"&&i("div",{class:"file-upload__button button--keyline button--icon-start "+(o.hasFocus?"button--focus":"")},i("div",{class:"file-upload__btn-content"},i("nano-icon",{name:"regular/cloud-upload"}),i("span",null,!!o.fileList.length?o.fileList[0].file.name:o.placeholder),!!o.value&&o.clearInput&&!o.disabled&&i("button",{type:"button",class:"icon file-upload__clear-btn",tabindex:"-1",onClick:o.onClearClick},i("nano-icon",{name:"light/times"})))),i("input",{"aria-labelledby":t+" "+a+" "+n,type:"file",id:o.fileInputId,accept:o.accept,class:"file-upload__input",multiple:o.maxFiles>1,disabled:o.disabled,name:o.canChangeFileList?undefined:o.name,form:o.form,ref:function(e){if(o.canChangeFileList){o.publicInputEl=e;return}o.inputEl=e},onChange:o.onFileChoose,onFocus:o.onFocus,onReset:o.onInputChange})),i("input",{name:!o.canChangeFileList?undefined:o.name,form:o.form,ref:function(e){if(!o.canChangeFileList)return;o.inputEl=e},type:"file",id:o.fileInputId+"-hidden",tabIndex:-1,multiple:true,class:"file-upload__input",disabled:o.disabled,required:o.required,accept:o.accept,onInvalid:o.onInvalid,onChange:o.onInputChange})),o.showInlineError||o.hasHelperSlot?i("div",{class:"file-upload__more",id:a},o.showInlineError&&!!o.errorMessage.length?i("div",{class:"file-upload__error"},o.errorMessage):"",i("div",{class:"file-upload__help"},i("slot",{name:"helper"}))):""]};this.button=function(){return o.FileUploadInput("btn")};this.dropArea=function(){var e=o.fileInputId+"-list";return[o.FileUploadInput("drop",e),i("output",{class:"file-upload__list-wrap",id:e},!!o.fileList&&o.fileList.length>0&&i("ul",{class:"file-upload__list list"},o.fileList.map((function(e){return i("li",{key:e.file.name,class:"file-upload__list-item file-upload__list-item--active list-item",onAnimationEnd:function(e){return o.onFileRemoveAnim()}},i("span",{class:"list-title"},e.file.name),!e.valid&&i("nano-tooltip",{content:e.validationMessage,placement:"left"},i("nano-icon-button",{class:"list-button list-error",iconName:"light/exclamation-triangle",label:"File error"})),o.canChangeFileList&&i("nano-icon-button",{class:"list-button list-button--view",type:"button",iconName:"light/eye",label:"View file",target:"_blank",href:e.location}),o.canChangeFileList&&i("nano-icon-button",{onClick:function(n){return o.onFileRemoveFileClick(n,e)},class:"list-button list-button--remove",iconName:"light/times",label:"Remove file"}))}))))]}}e.prototype.fileListChange=function(){var e=this;if(this.canChangeFileList){this.publicInputEl.value="";this.inputEl.files=this.arrToFileList(this.fileList.map((function(e){return e.file})));setTimeout((function(){e.nanoChange.emit({value:e.value,files:e.files})}),20)}};e.prototype.shouldValidate=function(){var e=this;if(!this.inputEl)return;this.validate();requestAnimationFrame((function(){if(e.validateOn==="dirty")e.showInlineValidation()}))};Object.defineProperty(e.prototype,"invalid",{get:function(){return this._invalid},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"validityMessage",{get:function(){if(!this.inputEl)return"";return this.inputEl.validationMessage},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"files",{get:function(){return this.inputEl?Array.from(this.inputEl.files).map((function(e){e.objectURL=URL.createObjectURL(e);return e})):[]},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"value",{get:function(){return this.inputEl?this.inputEl.value:""},set:function(e){if(e===""&&this.inputEl){this.fileList=[];this.inputEl.value=""}},enumerable:false,configurable:true});e.prototype.reportValidity=function(e){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(n){if(e){this.validate();this.showInlineValidation()}return[2,{isValid:!this.invalid,errorMessage:this.inputEl.validationMessage}]}))}))};e.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){if(this.inputEl)this.inputEl.focus();return[2]}))}))};e.prototype.getInputElement=function(){return Promise.resolve(this.inputEl)};e.prototype.showError=function(e){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(n){if(this.inputEl){this.inputEl.setCustomValidity(e);this.validate();this.showInlineValidation()}return[2]}))}))};e.prototype.globalClickHandler=function(e){var n=this;if(!this.hasFocus)return;if(e.composedPath().every((function(e){return e!==n.host})))this.onBlur()};e.prototype.globalKeydownHandler=function(e){if(!this.hasFocus||e.key!=="Tab")return;if(e.target!==this.inputEl)this.onBlur()};e.prototype.onReset=function(e){var n=this.form?document.querySelector("#"+this.form):this.host.closest("form");if(!n||e.target!==this.host.closest("form"))return;this.value=""};e.prototype.arrToFileList=function(e){var n=s();for(var t=0,i=e.length;t<i;t++)n.items.add(e[t]);return n.files};e.prototype.checkFileSize=function(e){return e/1e6<=this.maxFileSize};e.prototype.checkFileType=function(e){if(!this.accept)return true;return this.accept.match(e)&&this.accept.match(e).length>0};e.prototype.showInlineValidation=function(e){if(this.validateOn==="submitThenDirty")this.validateOn="dirty";this._invalid=false;this.errorMessage="";if(!this.inputEl.validity.valid){this.errorMessage=this.inputEl.validationMessage;this._invalid=true}this.nanoValidate.emit({isValid:!this._invalid,errorMessage:this.inputEl.validationMessage,originalEvent:e})};e.prototype.slotChangeObserver=function(){var e=this;if(this.mo)this.mo.disconnect();var n=this.mo=new MutationObserver((function(){return e.processSlottedContent()}));n.observe(this.host,{childList:true,subtree:true})};e.prototype.processSlottedContent=function(){this.hasLabelSlot=!!this.host.querySelectorAll('[slot="label"]');this.hasHelperSlot=!!this.host.querySelector('[slot="helper"]')};e.prototype.addNewFiles=function(e){var n=this;var t=Array.from(e).map((function(e){return{file:e,location:URL.createObjectURL(e),valid:true,validationMessage:null}}));if(this.canChangeFileList&&this.maxFiles>1){var i=t.filter((function(e){return!n.fileList.find((function(n){return n.file.name===e.file.name}))}));this.fileList=__spreadArray(__spreadArray([],this.fileList),i)}else this.fileList=t};e.prototype.disconnectedCallback=function(){if(this.mo)this.mo.disconnect()};e.prototype.componentDidLoad=function(){this.slotChangeObserver()};e.prototype.componentWillLoad=function(){this.processSlottedContent()};e.prototype.render=function(){return i(o,null,i("div",{class:{"file-upload":true,"file-upload--dragging":this.isDragging,"file-upload--focus":this.hasFocus,"file-upload--invalid":this._invalid}},this.maxFiles>1?i(this.dropArea,null):i(this.button,null)))};Object.defineProperty(e.prototype,"host",{get:function(){return a(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{fileList:["fileListChange","shouldValidate"],maxFiles:["shouldValidate"],maxFileSize:["shouldValidate"],capture:["shouldValidate"],accept:["shouldValidate"],required:["shouldValidate"],disabled:["shouldValidate"]}},enumerable:false,configurable:true});return e}());d.style=l}}}));
5
+ //# sourceMappingURL=p-bc394857.system.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["src/components/file-upload/file-upload.scss?tag=nano-file-upload&encapsulation=scoped","src/components/file-upload/file-upload.tsx"],"names":["fileUploadCss","fileInputIds","getDataTransfer","DataTransfer","_a","ClipboardEvent","clipboardData","_b","FileUpload","exports","class_1","hostRef","_this","this","fileInputId","canChangeFileList","removeFiles","errorMessage","isDragging","fileList","maxFileSize","maxFiles","placeholder","hideLabel","required","disabled","clearInput","showInlineError","validateOn","_invalid","onClearClick","value","onBlur","hasFocus","validate","showInlineValidation","nanoBlur","emit","onFocus","nanoFocus","inputEl","setCustomValidity","error","validity","valid","validationMessage","forEach","fileItem","checkFileSize","file","size","checkFileType","type","accept","length","onInvalid","ev","preventDefault","onFileChoose","e","files","target","addNewFiles","onFileRemoveFileClick","push","closest","classList","remove","onFileRemoveAnim","filter","find","rmFile","onInputChange","nanoChange","onDragStop","stopPropagation","onDragStart","onDrop","dataTransfer","FileUploadInput","eleType","listId","labelId","moreId","hasHelperSlot","h","class","htmlFor","id","onDragEnd","onDragLeave","onDragEnter","onDragOver","label","hasLabelSlot","name","tabindex","onClick","aria-labelledby","multiple","undefined","form","ref","input","publicInputEl","onChange","onReset","tabIndex","button","dropArea","map","key","onAnimationEnd","_","content","placement","iconName","href","location","prototype","fileListChange","arrToFileList","setTimeout","shouldValidate","requestAnimationFrame","Object","defineProperty","Array","from","objectURL","URL","createObjectURL","val","reportValidity","validateFirst","isValid","invalid","setFocus","focus","getInputElement","Promise","resolve","showError","message","globalClickHandler","composedPath","every","node","host","globalKeydownHandler","document","querySelector","i","len","items","add","match","nanoValidate","originalEvent","slotChangeObserver","mo","disconnect","MutationObserver","processSlottedContent","observe","childList","subtree","querySelectorAll","newFiles","findFile","__spreadArray","disconnectedCallback","componentDidLoad","componentWillLoad","render","Host","file-upload","file-upload--dragging","file-upload--focus","file-upload--invalid"],"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/button';\n\n:host {\n /**\n * @prop --invalid-msg-color: Default value #{nano-color(danger, base)};\n * @prop --invalid-msg-font-size: Default value #{$input-help-font-size};\n\n * @prop --help-msg-color: Default value #{$input-help-color};\n\n * @prop --label-color: Default value #{$label-color};\n * @prop --label-color--invalid: Default value #{$label-color-invalid};\n * @prop --label-font-size: Default value #{$label-font-size};\n * @prop --label-padding: Default value #{$input-padding-bottom};\n * @prop --label-color--invalid: Default value #{$label-color-invalid};\n\n * @prop --drop-bg: Default value #{map.get($colors, blue--faded)};\n * @prop --drop-text: Default value #{map.get($colors, dimgrey)};\n * @prop --drop-height: Default value 3.5em;\n * @prop --drop-border-tint: Default value #{nano-color(primary, base, null, true)};\n * @prop --drop-border-width: Default value 2px;\n * @prop --drop-border-radius: Default value 5px;\n * @prop --drop-bg--invalid: Default value #{$input-background-color--invalid};\n * @prop --drop-border--invalid: Default value #{nano-color(danger, base, null, true)};\n\n * @prop --btn-bg: Default value #{nano-color(primary, base)};\n * @prop --btn-text: Default value #{nano-color(primary, contrast)};\n * @prop --btn-icon-size: Default value var(--nano-btn-icon-size, 1.4em);\n * @prop --btn-padding-top: Default value var(--nano-btn-padding-top, .5em);\n * @prop --btn-padding-bottom: Default value var(--nano-btn-padding-bottom, .5em);\n * @prop --btn-padding-start: Default value var(--nano-btn-padding-start, 1em);\n * @prop --btn-padding-end: Default value var(--nano-btn-padding-end, 1em);\n */\n\n min-height: 1rem;\n display: block;\n\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-font-size: #{$label-font-size};\n --label-padding: #{$input-padding-bottom};\n --label-color--invalid: #{$label-color-invalid};\n --drop-bg: #{map.get($colors, blue--faded)};\n --drop-text: #{darken(map.get($colors, dimgrey), 11%)};\n --drop-height: 3.5em;\n --drop-border-tint: #{nano-color(primary, base, null, true)};\n --drop-border-width: 2px;\n --drop-border-radius: 5px;\n --drop-bg--invalid: #{$input-background-color--invalid};\n --drop-border--invalid: #{nano-color(danger, base, null, true)};\n --btn-bg: #{nano-color(primary, base)};\n --btn-text: #{nano-color(primary, contrast)};\n --btn-icon-size: var(--nano-btn-icon-size, 1.4em);\n --btn-padding-top: var(--nano-btn-padding-top, 0.5em);\n --btn-padding-bottom: var(--nano-btn-padding-bottom, 0.5em);\n --btn-padding-start: var(--nano-btn-padding-start, 1em);\n --btn-padding-end: var(--nano-btn-padding-end, 1em);\n}\n\n:host([disabled]:not([disabled='false'])) {\n opacity: 0.7;\n\n * {\n pointer-events: none !important;\n }\n}\n\n.file-upload {\n $self: &;\n\n /* Common */\n\n &__label {\n font-size: var(--label-font-size);\n padding: 0 0 var(--label-padding);\n margin: 0;\n line-height: 1;\n\n :host([invalid]:not([invalid='false'])) & {\n color: var(--label-color--invalid);\n }\n }\n\n &__input {\n @include visually-hide();\n }\n\n &__error,\n &__help,\n &__more,\n &__label {\n display: block;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &__more {\n height: 1em;\n\n @include margin(\n calc(var(--label-padding) / 2),\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 .file-upload--invalid & {\n opacity: 1;\n }\n }\n\n &__error {\n color: var(--invalid-msg-color);\n font-stretch: condensed;\n opacity: 0;\n\n .file-upload--invalid & {\n opacity: 1;\n }\n }\n\n &__help {\n font-style: italic;\n opacity: 1;\n color: var(--help-msg-color);\n\n .file-upload--invalid & {\n opacity: 0;\n }\n }\n\n /* Drop area / Multi file upload */\n\n &__drop {\n position: relative;\n width: 100%;\n display: inline-block;\n }\n\n &__drop-area {\n flex-direction: column;\n background-color: var(--drop-bg);\n color: var(--drop-text);\n min-height: var(--drop-height);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.9em;\n position: relative;\n transition: background-color 0.15s ease-in-out;\n padding: 0.5rem;\n\n :host([disabled]:not([disabled='false'])) & {\n opacity: 0.7;\n }\n\n .file-upload--invalid & {\n background-color: var(--drop-bg--invalid);\n }\n\n .file-upload--dragging & {\n background-color: #{map.get($colors, white)};\n }\n\n &::after {\n content: '';\n position: absolute;\n border-radius: var(--drop-border-radius);\n border-width: var(--drop-border-width);\n border-color: rgba(var(--drop-border-tint), 0.5);\n border-style: dashed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n transition:\n top 0.1s ease-in-out,\n bottom 0.1s ease-in-out,\n left 0.1s ease-in-out,\n right 0.1s ease-in-out;\n\n .file-upload--invalid & {\n border-color: rgba(var(--drop-border--invalid), 1);\n }\n\n .file-upload--dragging & {\n top: 5px;\n bottom: 5px;\n left: 5px;\n right: 5px;\n }\n }\n\n span {\n color: rgba(var(--drop-border-tint), 1);\n text-decoration: underline;\n border-radius: 2px;\n z-index: 1;\n cursor: pointer;\n position: relative;\n\n .file-upload--focus & {\n box-shadow: #{$control-focus-style};\n }\n }\n }\n\n &__list {\n list-style: none;\n margin: 0;\n padding: 0;\n\n &-wrap {\n position: relative;\n top: -4px;\n }\n\n &-item {\n width: 100%;\n margin: 0 0 2px;\n display: flex;\n align-items: center;\n transform: translateZ(0);\n animation: hideListItem 0.3s ease-in-out forwards;\n\n @keyframes hideListItem {\n 0% {\n opacity: 1;\n transform: translateY(0);\n transform: translateZ(0);\n }\n\n 100% {\n opacity: 0;\n transform: translateY(10px);\n transform: translateZ(0);\n }\n }\n\n &--active {\n animation: showListItem 0.3s ease-in-out forwards;\n\n @keyframes showListItem {\n 0% {\n opacity: 0;\n transform: translateY(10px);\n transform: translateZ(0);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0);\n transform: translateZ(0);\n }\n }\n }\n }\n\n .list-title {\n background: var(--nano-color-blue--faded);\n border-radius: 5px;\n padding: 5px 5px;\n margin-right: 2px;\n display: block;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 0.9em;\n color: var(--help-msg-color);\n }\n\n .list-button {\n background: var(--nano-color-blue--faded);\n border-radius: 5px;\n margin: 2px;\n }\n\n .list-error {\n --color: rgba(var(--drop-border--invalid), 1);\n }\n }\n\n /* Button display / Single file upload */\n\n &__button {\n @include button-base;\n @include button-standard(\n var(--btn-bg),\n var(--btn-text),\n #{nano-color(primary, shade)}\n );\n\n --nano-btn-icon-size: var(--btn-icon-size);\n --nano-btn-line-height: var(--btn-icon-size);\n --nano-btn-padding-top: var(--btn-padding-top);\n --nano-btn-padding-bottom: var(--btn-padding-bottom);\n --nano-btn-padding-start: var(--btn-padding-start);\n --nano-btn-padding-end: var(--btn-padding-end);\n\n max-width: 100%;\n font-size: 0.9em;\n\n :host([disabled]:not([disabled='false'])) & {\n opacity: 0.4;\n }\n\n .file-upload--dragging & {\n --nano-btn-border-style: dashed;\n }\n #{$self}__clear-btn {\n @include margin(0);\n\n font-size: inherit;\n padding: 0;\n border: 0;\n outline: none;\n background-color: transparent;\n display: flex;\n align-items: stretch;\n width: auto;\n color: var(--clear-btn-color);\n\n :host(.is-invalid) & {\n color: var(--clear-btn-color--invalid);\n }\n\n nano-icon {\n @include margin(0, 0, 0, 0.4rem);\n }\n }\n #{$self}__btn-content {\n display: flex;\n align-items: center;\n\n span {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n }\n }\n }\n}\n","import {\n Component,\n Prop,\n h,\n Host,\n Element,\n ComponentInterface,\n State,\n Event,\n EventEmitter,\n Watch,\n VNode,\n Method,\n Listen,\n} from '@stencil/core';\nimport {\n ControlValidity,\n ControlValidityEventDetail,\n FileInputChangeEventDetail,\n FileWithUrl,\n} from '../../interface';\n\nlet fileInputIds = 0;\n\nlet getDataTransfer = () => new DataTransfer();\ntry {\n getDataTransfer();\n} catch {\n try {\n getDataTransfer = () => new ClipboardEvent('').clipboardData;\n getDataTransfer();\n } catch {\n getDataTransfer = null;\n }\n}\n\ninterface FileValidation {\n file: File;\n valid: boolean;\n validationMessage?: string;\n location?: string;\n}\n/**\n * A better UI experience for `input type=\"file\"` form controls.\n *\n * - Drag and Drop\n * - Validation options\n * - Preview and manage multiple files\n */\n@Component({\n tag: 'nano-file-upload',\n styleUrl: 'file-upload.scss',\n scoped: true,\n})\nexport class FileUpload implements ComponentInterface {\n private inputEl: HTMLInputElement;\n private publicInputEl: HTMLInputElement;\n private mo!: MutationObserver;\n private fileInputId = `nano-file-upload-${fileInputIds++}`;\n private canChangeFileList = !!getDataTransfer;\n private removeFiles: FileValidation[] = [];\n\n @State() hasHelperSlot: boolean;\n @State() hasLabelSlot: boolean;\n @State() errorMessage: string = '';\n @State() isDragging = false;\n @State() fileList: FileValidation[] = [];\n @Watch('fileList')\n fileListChange() {\n if (this.canChangeFileList) {\n this.publicInputEl.value = '';\n this.inputEl.files = this.arrToFileList(\n this.fileList.map((file) => file.file)\n );\n setTimeout(() => {\n this.nanoChange.emit({ value: this.value, files: this.files });\n }, 20);\n }\n }\n @State() hasFocus: boolean;\n\n @Element() host: HTMLNanoFileUploadElement;\n\n // public props\n\n /** Name of the form control. Submitted with the form as part of a name/value pair. */\n @Prop() name!: string;\n\n /** The accept attribute value is a string that defines the file types the file input should accept.\n * E.g. for a MS Word file: `.doc, .docx,application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document` */\n @Prop() accept?: string;\n\n /** Specifies which camera to use for capture of image or video data. `user` for the user-facing camera and/or microphone.\n * `environment` specifies the the outward-facing camera and/or microphone. If the requested facing mode isn't available,\n * the user agent may fall back to its preferred default mode. */\n @Prop() capture?: 'user' | 'environment';\n\n /** The maximum file size allowed per file (Megabytes) */\n @Prop() maxFileSize: number = 1;\n\n /** The maximum file size allowed per file (bytes). */\n @Prop() maxFiles: number = 1;\n\n /** String to place within a label element. */\n @Prop() label!: string;\n\n /** Placeholder only used within single file uploads. */\n @Prop() placeholder: string = 'Choose a file...';\n\n /** Visually hide the label - but make it accessible. */\n @Prop() hideLabel?: boolean = false;\n\n /** If `true`, the user must select a file to upload before submitting a form. */\n @Prop() required = false;\n\n /** If `true`, the user cannot interact with the select. */\n @Prop({ reflect: true }) disabled = false;\n\n /** If `true`, a clear icon will appear in the input when there is a value.\n * Clicking it clears the input. Only used within single file uploads. */\n @Prop() clearInput = false;\n\n /** Whether to show validation errors underneath input */\n @Prop({ reflect: true }) showInlineError = true;\n\n /** When should the field perform validation */\n @Prop({ mutable: true }) validateOn?: 'dirty' | 'submit' | 'submitThenDirty' =\n 'submit';\n\n /** The form element to associate with this input (its form owner). Must be the id of a form. */\n @Prop() form?: string | null;\n\n @Watch('maxFiles')\n @Watch('maxFileSize')\n @Watch('capture')\n @Watch('accept')\n @Watch('required')\n @Watch('disabled')\n @Watch('fileList')\n protected shouldValidate() {\n if (!this.inputEl) return;\n\n this.validate();\n requestAnimationFrame(() => {\n if (this.validateOn === 'dirty') this.showInlineValidation();\n });\n }\n\n @State() _invalid = false;\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 @Prop({ reflect: true })\n get invalid() {\n return this._invalid;\n }\n\n /**\n * Current validation message - if any. @readonly\n */\n @Prop()\n get validityMessage() {\n if (!this.inputEl) return '';\n return this.inputEl.validationMessage;\n }\n\n /** A File array that lists every selected file.\n * Has an added `objectURL` property returning a `DOMString`\n * containing an object URL that can be used to reference the contents of the specified source\n * This list has no more than one member unless the multiple attribute is specified. @readonly */\n @Prop()\n get files(): FileWithUrl[] {\n return this.inputEl\n ? Array.from(this.inputEl.files).map((file: FileWithUrl) => {\n file.objectURL = URL.createObjectURL(file);\n return file;\n })\n : [];\n }\n\n /** A file input's value attribute contains a DOMString that represents the path to the selected file(s).\n * If the user selected multiple files, the value represents the first file in the list of files they selected.\n * You can reset the file-upload control by setting the value to an emptry string e.g. `var input.value = ''` */\n @Prop()\n get value() {\n return this.inputEl ? this.inputEl.value : '';\n }\n set value(val: string) {\n if (val === '' && this.inputEl) {\n this.fileList = [];\n this.inputEl.value = '';\n }\n }\n\n // Events\n\n /** Emitted when the value has changed. */\n @Event() nanoChange!: EventEmitter<FileInputChangeEventDetail>;\n\n /** Emited when the checkbox is focused */\n @Event() nanoFocus: EventEmitter;\n\n /** Emited when the checkbox is blurred */\n @Event() nanoBlur: EventEmitter;\n\n /** Called when validation is performed (which depends on `validateOn`).\n * @returns event.detail: `{ isValid: boolean, errorMessage: string, originalEvent: Event }`. */\n @Event() nanoValidate: EventEmitter<ControlValidityEventDetail>;\n\n // Public methods\n\n /** Get the current state of the control.\n * @param validateFirst - perform validation first before reporting\n * @returns `{ isValid: boolean, errorMessage: string }` */\n @Method()\n async reportValidity(validateFirst: boolean): Promise<ControlValidity> {\n if (validateFirst) {\n this.validate();\n this.showInlineValidation();\n }\n return {\n isValid: !this.invalid,\n errorMessage: this.inputEl.validationMessage,\n };\n }\n\n /** Sets focus on the specified `nano-input`. Use this method instead of the global\n * `input.focus()`. */\n @Method()\n async setFocus() {\n if (this.inputEl) this.inputEl.focus();\n }\n\n /** Returns the native `<input>` element used under the hood */\n @Method()\n getInputElement(): Promise<HTMLInputElement | HTMLTextAreaElement> {\n return Promise.resolve(this.inputEl!);\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 * @param message */\n @Method()\n async showError(message: string) {\n if (this.inputEl) {\n this.inputEl.setCustomValidity(message);\n this.validate();\n this.showInlineValidation();\n }\n }\n\n // Listeners\n\n @Listen('click', { target: 'window' })\n globalClickHandler(e: Event) {\n if (!this.hasFocus) return;\n if (e.composedPath().every((node) => node !== this.host)) this.onBlur();\n }\n\n @Listen('keydown', { target: 'window' })\n globalKeydownHandler(e: KeyboardEvent) {\n if (!this.hasFocus || e.key !== 'Tab') return;\n if (e.target !== this.inputEl) this.onBlur();\n }\n\n @Listen('reset', { target: 'body' })\n onReset(e) {\n const form = this.form\n ? document.querySelector('#' + this.form)\n : this.host.closest('form');\n if (!form || e.target !== this.host.closest('form')) return;\n\n this.value = '';\n }\n\n // Private methods\n\n private onClearClick = () => {\n this.value = '';\n };\n\n private onBlur = () => {\n this.hasFocus = false;\n this.validate();\n if (this.validateOn === 'dirty') this.showInlineValidation();\n this.nanoBlur.emit();\n };\n\n private onFocus = () => {\n this.hasFocus = true;\n this.nanoFocus.emit();\n };\n\n private arrToFileList(files: File[]): FileList {\n const fileList = getDataTransfer();\n for (var i = 0, len = files.length; i < len; i++)\n fileList.items.add(files[i]);\n return fileList.files;\n }\n\n private checkFileSize(size: number): boolean {\n return size / 1000000 <= this.maxFileSize;\n }\n\n private checkFileType(type: string): boolean {\n if (!this.accept) return true;\n return this.accept.match(type) && this.accept.match(type).length > 0;\n }\n\n private validate = () => {\n this.errorMessage = '';\n this.inputEl.setCustomValidity('');\n let error: string;\n\n if (!this.inputEl.validity.valid) {\n error = this.inputEl.validationMessage;\n } else {\n this.fileList.forEach((fileItem) => {\n error = null;\n if (!this.checkFileSize(fileItem.file.size)) {\n error =\n 'Maximum file size exceeded. Max file size is ' +\n this.maxFileSize +\n 'Mb';\n } else if (!this.checkFileType(fileItem.file.type))\n error = `File type is not allowed (${this.accept})`;\n\n fileItem.validationMessage = error;\n fileItem.valid = !error;\n });\n if (this.fileList.length > this.maxFiles)\n error = `Maxinum number of files exceeded (${this.maxFiles})`;\n }\n\n if (!!error) this.inputEl.setCustomValidity(error);\n };\n\n private showInlineValidation(ev?: Event) {\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n\n this._invalid = false;\n this.errorMessage = '';\n\n if (!this.inputEl.validity.valid) {\n this.errorMessage = this.inputEl.validationMessage;\n this._invalid = true;\n }\n\n this.nanoValidate.emit({\n isValid: !this._invalid,\n errorMessage: this.inputEl.validationMessage,\n originalEvent: ev,\n });\n }\n\n private slotChangeObserver() {\n if (this.mo) this.mo.disconnect();\n const mo = (this.mo = new MutationObserver(() =>\n this.processSlottedContent()\n ));\n mo.observe(this.host, { childList: true, subtree: true });\n }\n\n private processSlottedContent() {\n // see if we have slot content\n this.hasLabelSlot = !!this.host.querySelectorAll('[slot=\"label\"]');\n this.hasHelperSlot = !!this.host.querySelector('[slot=\"helper\"]');\n }\n\n private addNewFiles(files: FileList) {\n const fileList: FileValidation[] = Array.from(files).map((file) => {\n return {\n file: file,\n location: URL.createObjectURL(file),\n valid: true,\n validationMessage: null,\n };\n });\n\n // if we have a list and we're in a browser that can amend files\n // append files to the list, otherwise replace\n if (this.canChangeFileList && this.maxFiles > 1) {\n const newFiles = fileList.filter(\n (findFile) =>\n !this.fileList.find((file) => file.file.name === findFile.file.name)\n );\n this.fileList = [...this.fileList, ...newFiles];\n } else this.fileList = fileList;\n }\n\n // event handlers & hooks\n\n private onInvalid = (ev: Event) => {\n if (this.showInlineError) ev.preventDefault();\n this.validate();\n this.showInlineValidation(ev);\n };\n\n private onFileChoose = (e: Event) => {\n const files = (e.target as HTMLInputElement).files;\n if (files && files.length)\n this.addNewFiles((e.target as HTMLInputElement).files);\n };\n\n private onFileRemoveFileClick = (e: Event, file: FileValidation) => {\n if (!this.canChangeFileList) return;\n this.removeFiles.push(file);\n\n (e.target as HTMLElement)\n .closest('.file-upload__list-item--active')\n .classList.remove('file-upload__list-item--active');\n };\n\n private onFileRemoveAnim = () => {\n if (!this.canChangeFileList || !this.removeFiles.length) return;\n this.fileList = this.fileList.filter(\n (fileItem) => !this.removeFiles.find((rmFile) => rmFile === fileItem)\n );\n this.removeFiles = [];\n };\n\n private onInputChange = () => {\n this.nanoChange.emit({ value: this.value, files: this.files });\n };\n\n private onDragStop = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n this.isDragging = false;\n };\n\n private onDragStart = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n this.isDragging = true;\n };\n\n private onDrop = (e: DragEvent) => {\n this.onDragStop(e);\n if (e.dataTransfer.files && e.dataTransfer.files.length)\n this.addNewFiles(e.dataTransfer.files);\n };\n\n // Component lifecycle\n\n disconnectedCallback() {\n if (this.mo) this.mo.disconnect();\n }\n\n componentDidLoad() {\n this.slotChangeObserver();\n }\n\n componentWillLoad() {\n this.processSlottedContent();\n }\n\n private FileUploadInput = (\n eleType: 'drop' | 'btn',\n listId?: string\n ): VNode[] => {\n const labelId = this.fileInputId + '-lbl';\n const moreId =\n this.showInlineError || this.hasHelperSlot\n ? this.fileInputId + '-more'\n : '';\n\n return [\n <div class={'file-upload__' + eleType + '-wrap'}>\n <label\n class={`file-upload__` + eleType}\n htmlFor={this.fileInputId}\n id={labelId}\n onDrop={(e) => {\n this.onDrop(e);\n this.onDragStop(e);\n }}\n onDragEnd={this.onDragStop}\n onDragLeave={this.onDragStop}\n onDragEnter={this.onDragStart}\n onDragOver={this.onDragStart}\n >\n {(!!this.label || (this.hasLabelSlot && eleType !== 'drop')) && (\n <div\n class={`file-upload__label ${\n this.hideLabel ? 'visually-hide' : ''\n }`}\n >\n {!!this.label && !!this.label.length ? this.label : ''}\n {!this.label && this.hasLabelSlot && eleType !== 'drop' && (\n <slot name=\"label\" />\n )}\n </div>\n )}\n {eleType === 'drop' && (\n <div class=\"file-upload__drop-area\">\n <div>{this.hasLabelSlot && <slot name=\"label\" />}</div>\n <div>\n Drag and drop or&nbsp;<span>browse</span>\n </div>\n </div>\n )}\n {eleType === 'btn' && (\n <div\n class={`file-upload__button button--keyline button--icon-start ${\n this.hasFocus ? 'button--focus' : ''\n }`}\n >\n <div class={`file-upload__btn-content`}>\n <nano-icon name=\"regular/cloud-upload\" />\n <span>\n {!!this.fileList.length\n ? this.fileList[0].file.name\n : this.placeholder}\n </span>\n {!!this.value && this.clearInput && !this.disabled && (\n <button\n type=\"button\"\n class=\"icon file-upload__clear-btn\"\n tabindex=\"-1\"\n onClick={this.onClearClick}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n </button>\n )}\n </div>\n </div>\n )}\n <input\n aria-labelledby={labelId + ' ' + moreId + ' ' + listId}\n type=\"file\"\n id={this.fileInputId}\n accept={this.accept}\n class=\"file-upload__input\"\n multiple={this.maxFiles > 1}\n disabled={this.disabled}\n name={this.canChangeFileList ? undefined : this.name}\n form={this.form}\n ref={(input) => {\n if (this.canChangeFileList) {\n this.publicInputEl = input;\n return;\n }\n this.inputEl = input;\n }}\n onChange={this.onFileChoose}\n onFocus={this.onFocus}\n onReset={this.onInputChange}\n />\n </label>\n <input\n name={!this.canChangeFileList ? undefined : this.name}\n form={this.form}\n ref={(input) => {\n if (!this.canChangeFileList) return;\n this.inputEl = input;\n }}\n type=\"file\"\n id={this.fileInputId + '-hidden'}\n tabIndex={-1}\n multiple={true}\n class=\"file-upload__input\"\n disabled={this.disabled}\n required={this.required}\n accept={this.accept}\n onInvalid={this.onInvalid}\n onChange={this.onInputChange}\n />\n </div>,\n this.showInlineError || this.hasHelperSlot ? (\n <div class=\"file-upload__more\" id={moreId}>\n {this.showInlineError && !!this.errorMessage.length ? (\n <div class=\"file-upload__error\">{this.errorMessage}</div>\n ) : (\n ''\n )}\n <div class=\"file-upload__help\">\n <slot name=\"helper\" />\n </div>\n </div>\n ) : (\n ''\n ),\n ];\n };\n\n private button = (): VNode[] => {\n return this.FileUploadInput('btn');\n };\n\n private dropArea = (): VNode[] => {\n const listId = this.fileInputId + '-list';\n return [\n this.FileUploadInput('drop', listId),\n <output class=\"file-upload__list-wrap\" id={listId}>\n {!!this.fileList && this.fileList.length > 0 && (\n <ul class=\"file-upload__list list\">\n {this.fileList.map((file) => {\n return (\n <li\n key={file.file.name}\n class=\"file-upload__list-item file-upload__list-item--active list-item\"\n onAnimationEnd={(_) => this.onFileRemoveAnim()}\n >\n <span class=\"list-title\">{file.file.name}</span>\n {!file.valid && (\n <nano-tooltip\n content={file.validationMessage}\n placement=\"left\"\n >\n <nano-icon-button\n class=\"list-button list-error\"\n iconName=\"light/exclamation-triangle\"\n label=\"File error\"\n />\n </nano-tooltip>\n )}\n {this.canChangeFileList && (\n <nano-icon-button\n class=\"list-button list-button--view\"\n type=\"button\"\n iconName=\"light/eye\"\n label=\"View file\"\n target=\"_blank\"\n href={file.location}\n />\n )}\n {this.canChangeFileList && (\n <nano-icon-button\n onClick={(e) => this.onFileRemoveFileClick(e, file)}\n class=\"list-button list-button--remove\"\n iconName=\"light/times\"\n label=\"Remove file\"\n />\n )}\n </li>\n );\n })}\n </ul>\n )}\n </output>,\n ];\n };\n\n render() {\n return (\n <Host>\n <div\n class={{\n 'file-upload': true,\n 'file-upload--dragging': this.isDragging,\n 'file-upload--focus': this.hasFocus,\n 'file-upload--invalid': this._invalid,\n }}\n >\n {this.maxFiles > 1 ? <this.dropArea /> : <this.button />}\n </div>\n </Host>\n );\n }\n}\n"]}