@nanoporetech-digital/components 1.13.21 → 1.15.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 (706) hide show
  1. package/CHANGELOG.md +653 -14
  2. package/README.md +3 -2
  3. package/dist/cjs/{algolia-data-771a61ea.js → algolia-data-a98ccf4f.js} +2 -2
  4. package/dist/cjs/algolia-data-a98ccf4f.js.map +1 -0
  5. package/dist/cjs/algoliasearch.umd-5dc661c5.js +12 -0
  6. package/dist/cjs/algoliasearch.umd-5dc661c5.js.map +1 -0
  7. package/dist/cjs/{component-store-c8440fd7.js → component-store-8d99743e.js} +2 -2
  8. package/dist/cjs/{component-store-c8440fd7.js.map → component-store-8d99743e.js.map} +1 -1
  9. package/dist/cjs/{css-shim-208c6c2d.js → css-shim-8983f2ba.js} +2 -2
  10. package/dist/cjs/{css-shim-208c6c2d.js.map → css-shim-8983f2ba.js.map} +1 -1
  11. package/dist/cjs/{dom-1b5e30a5.js → dom-28d4395c.js} +2 -2
  12. package/dist/cjs/{dom-1b5e30a5.js.map → dom-28d4395c.js.map} +1 -1
  13. package/dist/cjs/{global-befb7a64.js → global-aa92d50f.js} +5 -3
  14. package/dist/cjs/global-aa92d50f.js.map +1 -0
  15. package/dist/cjs/{utils-e9e37c80.js → index-e517a673.js} +1 -1
  16. package/dist/cjs/{utils-e9e37c80.js.map → index-e517a673.js.map} +1 -1
  17. package/dist/cjs/{index-43791691.js → index-f12395b8.js} +10 -3
  18. package/dist/cjs/index-f12395b8.js.map +1 -0
  19. package/dist/cjs/index.cjs.js +4 -4
  20. package/dist/cjs/index.cjs.js.map +1 -1
  21. package/dist/cjs/loader.cjs.js +5 -5
  22. package/dist/cjs/loader.cjs.js.map +1 -1
  23. package/dist/cjs/nano-accordion.cjs.entry.js +1 -1
  24. package/dist/cjs/nano-accordion.cjs.entry.js.map +1 -1
  25. package/dist/cjs/nano-alert.cjs.entry.js +7 -7
  26. package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nano-algolia-filter.cjs.entry.js +3 -3
  28. package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nano-algolia-input.cjs.entry.js +5 -5
  30. package/dist/cjs/nano-algolia-input.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nano-algolia-pagination.cjs.entry.js +2 -2
  32. package/dist/cjs/nano-algolia-results.cjs.entry.js +2 -2
  33. package/dist/cjs/nano-algolia.cjs.entry.js +5 -5
  34. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nano-aspect-ratio.cjs.entry.js +12 -4
  36. package/dist/cjs/nano-aspect-ratio.cjs.entry.js.map +1 -1
  37. package/dist/cjs/nano-checkbox-group.cjs.entry.js +31 -16
  38. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  39. package/dist/cjs/nano-checkbox.cjs.entry.js +33 -15
  40. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  41. package/dist/cjs/nano-components.cjs.js +5 -5
  42. package/dist/cjs/nano-components.cjs.js.map +1 -1
  43. package/dist/cjs/nano-date-input.cjs.entry.js +45 -13
  44. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  45. package/dist/cjs/nano-date-picker_2.cjs.entry.js +117 -72
  46. package/dist/cjs/nano-date-picker_2.cjs.entry.js.map +1 -1
  47. package/dist/cjs/nano-details.cjs.entry.js +16 -10
  48. package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
  49. package/dist/cjs/nano-dialog.cjs.entry.js +5 -9
  50. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  51. package/dist/cjs/nano-drawer.cjs.entry.js +1 -1
  52. package/dist/cjs/nano-file-upload.cjs.entry.js +7 -14
  53. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nano-global-nav.cjs.entry.js +6 -6
  55. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  56. package/dist/cjs/nano-global-search-results.cjs.entry.js +2 -2
  57. package/dist/cjs/nano-grid_3.cjs.entry.js +1 -1
  58. package/dist/cjs/nano-grid_3.cjs.entry.js.map +1 -1
  59. package/dist/cjs/nano-hero.cjs.entry.js +3 -3
  60. package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
  61. package/dist/cjs/nano-icon-button.cjs.entry.js +2 -2
  62. package/dist/cjs/nano-icon.cjs.entry.js +1 -1
  63. package/dist/cjs/nano-input.cjs.entry.js +12 -2
  64. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  65. package/dist/cjs/nano-menu-drawer.cjs.entry.js +1 -1
  66. package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
  67. package/dist/cjs/nano-menu.cjs.entry.js +2 -2
  68. package/dist/cjs/nano-menu.cjs.entry.js.map +1 -1
  69. package/dist/cjs/nano-nav-item_2.cjs.entry.js +6 -6
  70. package/dist/cjs/nano-nav-item_2.cjs.entry.js.map +1 -1
  71. package/dist/cjs/nano-range.cjs.entry.js +11 -11
  72. package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
  73. package/dist/cjs/nano-rating.cjs.entry.js +3 -3
  74. package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
  75. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -1
  76. package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
  77. package/dist/cjs/nano-select-option.cjs.entry.js +1 -1
  78. package/dist/cjs/nano-slide.cjs.entry.js +1 -1
  79. package/dist/cjs/nano-slides.cjs.entry.js +2 -2
  80. package/dist/cjs/nano-spinner.cjs.entry.js +2 -2
  81. package/dist/cjs/nano-sticker.cjs.entry.js +9 -9
  82. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  83. package/dist/cjs/nano-tab-content.cjs.entry.js +1 -1
  84. package/dist/cjs/nano-tab-group.cjs.entry.js +6 -6
  85. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  86. package/dist/cjs/nano-tab.cjs.entry.js +2 -2
  87. package/dist/cjs/nano-tooltip.cjs.entry.js +49 -35
  88. package/dist/cjs/nano-tooltip.cjs.entry.js.map +1 -1
  89. package/dist/cjs/{popover-eccc07bd.js → popover-9289f217.js} +32 -32
  90. package/dist/cjs/popover-9289f217.js.map +1 -0
  91. package/dist/cjs/{shadow-css-c5dce0c8.js → shadow-css-a482ec93.js} +2 -2
  92. package/dist/cjs/shadow-css-a482ec93.js.map +1 -0
  93. package/dist/collection/collection-manifest.json +1 -1
  94. package/dist/collection/components/accordion/accordion.js +2 -2
  95. package/dist/collection/components/accordion/accordion.js.map +1 -1
  96. package/dist/collection/components/alert/alert.css +3 -3
  97. package/dist/collection/components/alert/alert.helpers.js +1 -1
  98. package/dist/collection/components/alert/alert.helpers.js.map +1 -1
  99. package/dist/collection/components/alert/alert.js +2 -2
  100. package/dist/collection/components/alert/alert.js.map +1 -1
  101. package/dist/collection/components/algolia/algolia-data.js.map +1 -1
  102. package/dist/collection/components/algolia/algolia-filter.js +3 -3
  103. package/dist/collection/components/algolia/algolia-filter.js.map +1 -1
  104. package/dist/collection/components/algolia/algolia-input.js +7 -7
  105. package/dist/collection/components/algolia/algolia-input.js.map +1 -1
  106. package/dist/collection/components/algolia/algolia-results.js +1 -1
  107. package/dist/collection/components/algolia/algolia.js +8 -8
  108. package/dist/collection/components/algolia/algolia.js.map +1 -1
  109. package/dist/collection/components/aspect-ratio/aspect-ratio.js +9 -1
  110. package/dist/collection/components/aspect-ratio/aspect-ratio.js.map +1 -1
  111. package/dist/collection/components/checkbox/__tests__/__fixtures__/checkbox-templates.js +117 -0
  112. package/dist/collection/components/checkbox/__tests__/__fixtures__/checkbox-templates.js.map +1 -0
  113. package/dist/collection/components/checkbox/checkbox-group.css +3 -3
  114. package/dist/collection/components/checkbox/checkbox-group.js +39 -26
  115. package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
  116. package/dist/collection/components/checkbox/checkbox.css +13 -2
  117. package/dist/collection/components/checkbox/checkbox.js +63 -28
  118. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  119. package/dist/collection/components/date-input/date-input.css +2 -4
  120. package/dist/collection/components/date-input/date-input.js +81 -29
  121. package/dist/collection/components/date-input/date-input.js.map +1 -1
  122. package/dist/collection/components/date-picker/date-picker.css +15 -4
  123. package/dist/collection/components/date-picker/date-picker.js +45 -17
  124. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  125. package/dist/collection/components/details/details.css +3 -3
  126. package/dist/collection/components/details/details.js +14 -8
  127. package/dist/collection/components/details/details.js.map +1 -1
  128. package/dist/collection/components/dialog/dialog.css +2 -3
  129. package/dist/collection/components/dialog/dialog.js +6 -10
  130. package/dist/collection/components/dialog/dialog.js.map +1 -1
  131. package/dist/collection/components/dropdown/dropdown.js +134 -85
  132. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  133. package/dist/collection/components/file-upload/file-upload-interface.js.map +1 -1
  134. package/dist/collection/components/file-upload/file-upload.css +9 -17
  135. package/dist/collection/components/file-upload/file-upload.js +17 -20
  136. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  137. package/dist/collection/components/global-nav/global-nav.css +2 -2
  138. package/dist/collection/components/global-nav/global-nav.js +5 -5
  139. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  140. package/dist/collection/components/global-search-results/global-search-results.css +3 -3
  141. package/dist/collection/components/grid/grid-item.js +1 -1
  142. package/dist/collection/components/grid/grid.js +1 -1
  143. package/dist/collection/components/grid/grid.js.map +1 -1
  144. package/dist/collection/components/hero/hero.js +1 -1
  145. package/dist/collection/components/hero/hero.js.map +1 -1
  146. package/dist/collection/components/icon/icon.js +1 -1
  147. package/dist/collection/components/icon-button/icon-button.css +2 -2
  148. package/dist/collection/components/input/input.css +9 -11
  149. package/dist/collection/components/input/input.js +26 -7
  150. package/dist/collection/components/input/input.js.map +1 -1
  151. package/dist/collection/components/menu/menu.css +7 -7
  152. package/dist/collection/components/menu/menu.js +1 -1
  153. package/dist/collection/components/menu/menu.js.map +1 -1
  154. package/dist/collection/components/menu-drawer/menu-drawer.js +1 -1
  155. package/dist/collection/components/menu-drawer/menu-drawer.js.map +1 -1
  156. package/dist/collection/components/nav-item/nav-item.js +5 -5
  157. package/dist/collection/components/nav-item/nav-item.js.map +1 -1
  158. package/dist/collection/components/range/range.css +4 -4
  159. package/dist/collection/components/range/range.js +5 -5
  160. package/dist/collection/components/range/range.js.map +1 -1
  161. package/dist/collection/components/rating/rating.js +1 -1
  162. package/dist/collection/components/rating/rating.js.map +1 -1
  163. package/dist/collection/components/resize-observe/resize-observe.js +2 -2
  164. package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
  165. package/dist/collection/components/select/select.css +4 -4
  166. package/dist/collection/components/select/select.js +6 -6
  167. package/dist/collection/components/select/select.js.map +1 -1
  168. package/dist/collection/components/slides/slides.css +2 -2
  169. package/dist/collection/components/slides/slides.js +7 -7
  170. package/dist/collection/components/spinner/spinner.css +2 -2
  171. package/dist/collection/components/sticky/sticker.js +1 -1
  172. package/dist/collection/components/sticky/sticker.js.map +1 -1
  173. package/dist/collection/components/tabs/tab-group.css +6 -6
  174. package/dist/collection/components/tabs/tab-group.js +3 -3
  175. package/dist/collection/components/tabs/tab-group.js.map +1 -1
  176. package/dist/collection/components/tabs/tab.css +2 -2
  177. package/dist/collection/components/tooltip/tooltip.css +15 -13
  178. package/dist/collection/components/tooltip/tooltip.js +50 -34
  179. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  180. package/dist/collection/global/script/global.js +4 -2
  181. package/dist/collection/global/script/global.js.map +1 -1
  182. package/dist/collection/index.js +1 -1
  183. package/dist/collection/index.js.map +1 -1
  184. package/dist/collection/utils/gesture/swipe-back.js +1 -1
  185. package/dist/collection/utils/gesture/swipe-back.js.map +1 -1
  186. package/dist/collection/utils/{utils.js → index.js} +1 -1
  187. package/dist/collection/utils/{utils.js.map → index.js.map} +1 -1
  188. package/dist/collection/utils/store/component-store.js +1 -1
  189. package/dist/collection/utils/store/component-store.js.map +1 -1
  190. package/dist/collection/utils/testing/index.js +242 -0
  191. package/dist/collection/utils/testing/index.js.map +1 -0
  192. package/dist/custom-elements/index.js +374 -228
  193. package/dist/custom-elements/index.js.map +1 -1
  194. package/dist/esm/{algolia-data-a84aeef1.js → algolia-data-b31a9800.js} +2 -2
  195. package/dist/esm/algolia-data-b31a9800.js.map +1 -0
  196. package/dist/esm/algoliasearch.umd-7ecbe0e9.js +10 -0
  197. package/dist/esm/algoliasearch.umd-7ecbe0e9.js.map +1 -0
  198. package/dist/esm/{component-store-182d1931.js → component-store-93172454.js} +2 -2
  199. package/dist/esm/{component-store-182d1931.js.map → component-store-93172454.js.map} +1 -1
  200. package/dist/esm/{css-shim-f12af614.js → css-shim-4e602522.js} +2 -2
  201. package/dist/esm/{css-shim-f12af614.js.map → css-shim-4e602522.js.map} +1 -1
  202. package/dist/esm/{dom-2f25dd5a.js → dom-acc01cc2.js} +2 -2
  203. package/dist/esm/{dom-2f25dd5a.js.map → dom-acc01cc2.js.map} +1 -1
  204. package/dist/esm/{global-c85d24a2.js → global-118ae701.js} +5 -3
  205. package/dist/esm/global-118ae701.js.map +1 -0
  206. package/dist/esm/{utils-fd1ada22.js → index-269c88a9.js} +1 -1
  207. package/dist/esm/{utils-fd1ada22.js.map → index-269c88a9.js.map} +1 -1
  208. package/dist/esm/{index-20becda2.js → index-912ef959.js} +10 -3
  209. package/dist/esm/index-912ef959.js.map +1 -0
  210. package/dist/esm/index.js +2 -2
  211. package/dist/esm/index.js.map +1 -1
  212. package/dist/esm/loader.js +5 -5
  213. package/dist/esm/loader.js.map +1 -1
  214. package/dist/esm/nano-accordion.entry.js +1 -1
  215. package/dist/esm/nano-accordion.entry.js.map +1 -1
  216. package/dist/esm/nano-alert.entry.js +3 -3
  217. package/dist/esm/nano-alert.entry.js.map +1 -1
  218. package/dist/esm/nano-algolia-filter.entry.js +3 -3
  219. package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
  220. package/dist/esm/nano-algolia-input.entry.js +5 -5
  221. package/dist/esm/nano-algolia-input.entry.js.map +1 -1
  222. package/dist/esm/nano-algolia-pagination.entry.js +2 -2
  223. package/dist/esm/nano-algolia-results.entry.js +2 -2
  224. package/dist/esm/nano-algolia.entry.js +5 -5
  225. package/dist/esm/nano-algolia.entry.js.map +1 -1
  226. package/dist/esm/nano-aspect-ratio.entry.js +12 -4
  227. package/dist/esm/nano-aspect-ratio.entry.js.map +1 -1
  228. package/dist/esm/nano-checkbox-group.entry.js +31 -16
  229. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  230. package/dist/esm/nano-checkbox.entry.js +33 -15
  231. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  232. package/dist/esm/nano-components.js +5 -5
  233. package/dist/esm/nano-components.js.map +1 -1
  234. package/dist/esm/nano-date-input.entry.js +45 -13
  235. package/dist/esm/nano-date-input.entry.js.map +1 -1
  236. package/dist/esm/nano-date-picker_2.entry.js +116 -71
  237. package/dist/esm/nano-date-picker_2.entry.js.map +1 -1
  238. package/dist/esm/nano-details.entry.js +15 -9
  239. package/dist/esm/nano-details.entry.js.map +1 -1
  240. package/dist/esm/nano-dialog.entry.js +5 -9
  241. package/dist/esm/nano-dialog.entry.js.map +1 -1
  242. package/dist/esm/nano-drawer.entry.js +1 -1
  243. package/dist/esm/nano-file-upload.entry.js +7 -14
  244. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  245. package/dist/esm/nano-global-nav.entry.js +5 -5
  246. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  247. package/dist/esm/nano-global-search-results.entry.js +2 -2
  248. package/dist/esm/nano-grid_3.entry.js +1 -1
  249. package/dist/esm/nano-grid_3.entry.js.map +1 -1
  250. package/dist/esm/nano-hero.entry.js +2 -2
  251. package/dist/esm/nano-hero.entry.js.map +1 -1
  252. package/dist/esm/nano-icon-button.entry.js +2 -2
  253. package/dist/esm/nano-icon.entry.js +1 -1
  254. package/dist/esm/nano-input.entry.js +12 -2
  255. package/dist/esm/nano-input.entry.js.map +1 -1
  256. package/dist/esm/nano-menu-drawer.entry.js +1 -1
  257. package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
  258. package/dist/esm/nano-menu.entry.js +2 -2
  259. package/dist/esm/nano-menu.entry.js.map +1 -1
  260. package/dist/esm/nano-nav-item_2.entry.js +4 -4
  261. package/dist/esm/nano-nav-item_2.entry.js.map +1 -1
  262. package/dist/esm/nano-range.entry.js +3 -3
  263. package/dist/esm/nano-range.entry.js.map +1 -1
  264. package/dist/esm/nano-rating.entry.js +2 -2
  265. package/dist/esm/nano-rating.entry.js.map +1 -1
  266. package/dist/esm/nano-resize-observe_2.entry.js +1 -1
  267. package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
  268. package/dist/esm/nano-select-option.entry.js +1 -1
  269. package/dist/esm/nano-slide.entry.js +1 -1
  270. package/dist/esm/nano-slides.entry.js +2 -2
  271. package/dist/esm/nano-spinner.entry.js +2 -2
  272. package/dist/esm/nano-sticker.entry.js +2 -2
  273. package/dist/esm/nano-sticker.entry.js.map +1 -1
  274. package/dist/esm/nano-tab-content.entry.js +1 -1
  275. package/dist/esm/nano-tab-group.entry.js +4 -4
  276. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  277. package/dist/esm/nano-tab.entry.js +2 -2
  278. package/dist/esm/nano-tooltip.entry.js +49 -35
  279. package/dist/esm/nano-tooltip.entry.js.map +1 -1
  280. package/dist/esm/{popover-05f61b5f.js → popover-a57d8413.js} +32 -32
  281. package/dist/esm/popover-a57d8413.js.map +1 -0
  282. package/dist/esm/{shadow-css-70953e54.js → shadow-css-460f0f5c.js} +2 -2
  283. package/dist/esm/shadow-css-460f0f5c.js.map +1 -0
  284. package/dist/esm-es5/{algolia-data-a84aeef1.js → algolia-data-b31a9800.js} +2 -2
  285. package/dist/esm-es5/algolia-data-b31a9800.js.map +1 -0
  286. package/dist/esm-es5/algoliasearch.umd-7ecbe0e9.js +4 -0
  287. package/dist/esm-es5/algoliasearch.umd-7ecbe0e9.js.map +1 -0
  288. package/dist/esm-es5/{component-store-182d1931.js → component-store-93172454.js} +2 -2
  289. package/dist/esm-es5/{component-store-182d1931.js.map → component-store-93172454.js.map} +1 -1
  290. package/dist/esm-es5/{css-shim-f12af614.js → css-shim-4e602522.js} +1 -1
  291. package/dist/esm-es5/{css-shim-f12af614.js.map → css-shim-4e602522.js.map} +1 -1
  292. package/dist/esm-es5/{dom-2f25dd5a.js → dom-acc01cc2.js} +1 -1
  293. package/dist/esm-es5/{dom-2f25dd5a.js.map → dom-acc01cc2.js.map} +1 -1
  294. package/dist/esm-es5/{global-c85d24a2.js → global-118ae701.js} +2 -2
  295. package/dist/esm-es5/global-118ae701.js.map +1 -0
  296. package/dist/esm-es5/{utils-fd1ada22.js → index-269c88a9.js} +1 -1
  297. package/dist/esm-es5/{utils-fd1ada22.js.map → index-269c88a9.js.map} +1 -1
  298. package/dist/esm-es5/index-912ef959.js +2 -0
  299. package/dist/esm-es5/index-912ef959.js.map +1 -0
  300. package/dist/esm-es5/index.js +1 -1
  301. package/dist/esm-es5/index.js.map +1 -1
  302. package/dist/esm-es5/loader.js +1 -1
  303. package/dist/esm-es5/loader.js.map +1 -1
  304. package/dist/esm-es5/nano-accordion.entry.js +1 -1
  305. package/dist/esm-es5/nano-accordion.entry.js.map +1 -1
  306. package/dist/esm-es5/nano-alert.entry.js +1 -1
  307. package/dist/esm-es5/nano-alert.entry.js.map +1 -1
  308. package/dist/esm-es5/nano-algolia-filter.entry.js +1 -1
  309. package/dist/esm-es5/nano-algolia-filter.entry.js.map +1 -1
  310. package/dist/esm-es5/nano-algolia-input.entry.js +1 -1
  311. package/dist/esm-es5/nano-algolia-input.entry.js.map +1 -1
  312. package/dist/esm-es5/nano-algolia-pagination.entry.js +1 -1
  313. package/dist/esm-es5/nano-algolia-results.entry.js +1 -1
  314. package/dist/esm-es5/nano-algolia.entry.js +1 -1
  315. package/dist/esm-es5/nano-algolia.entry.js.map +1 -1
  316. package/dist/esm-es5/nano-aspect-ratio.entry.js +1 -1
  317. package/dist/esm-es5/nano-aspect-ratio.entry.js.map +1 -1
  318. package/dist/esm-es5/nano-checkbox-group.entry.js +1 -1
  319. package/dist/esm-es5/nano-checkbox-group.entry.js.map +1 -1
  320. package/dist/esm-es5/nano-checkbox.entry.js +1 -1
  321. package/dist/esm-es5/nano-checkbox.entry.js.map +1 -1
  322. package/dist/esm-es5/nano-components.js +1 -1
  323. package/dist/esm-es5/nano-components.js.map +1 -1
  324. package/dist/esm-es5/nano-date-input.entry.js +1 -1
  325. package/dist/esm-es5/nano-date-input.entry.js.map +1 -1
  326. package/dist/esm-es5/nano-date-picker_2.entry.js +1 -1
  327. package/dist/esm-es5/nano-date-picker_2.entry.js.map +1 -1
  328. package/dist/esm-es5/nano-details.entry.js +1 -1
  329. package/dist/esm-es5/nano-details.entry.js.map +1 -1
  330. package/dist/esm-es5/nano-dialog.entry.js +1 -1
  331. package/dist/esm-es5/nano-dialog.entry.js.map +1 -1
  332. package/dist/esm-es5/nano-drawer.entry.js +1 -1
  333. package/dist/esm-es5/nano-file-upload.entry.js +1 -1
  334. package/dist/esm-es5/nano-file-upload.entry.js.map +1 -1
  335. package/dist/esm-es5/nano-global-nav.entry.js +1 -1
  336. package/dist/esm-es5/nano-global-nav.entry.js.map +1 -1
  337. package/dist/esm-es5/nano-global-search-results.entry.js +1 -1
  338. package/dist/esm-es5/nano-grid_3.entry.js +1 -1
  339. package/dist/esm-es5/nano-grid_3.entry.js.map +1 -1
  340. package/dist/esm-es5/nano-hero.entry.js +1 -1
  341. package/dist/esm-es5/nano-hero.entry.js.map +1 -1
  342. package/dist/esm-es5/nano-icon-button.entry.js +1 -1
  343. package/dist/esm-es5/nano-icon.entry.js +1 -1
  344. package/dist/esm-es5/nano-input.entry.js +1 -1
  345. package/dist/esm-es5/nano-input.entry.js.map +1 -1
  346. package/dist/esm-es5/nano-menu-drawer.entry.js +1 -1
  347. package/dist/esm-es5/nano-menu-drawer.entry.js.map +1 -1
  348. package/dist/esm-es5/nano-menu.entry.js +1 -1
  349. package/dist/esm-es5/nano-menu.entry.js.map +1 -1
  350. package/dist/esm-es5/nano-nav-item_2.entry.js +1 -1
  351. package/dist/esm-es5/nano-nav-item_2.entry.js.map +1 -1
  352. package/dist/esm-es5/nano-range.entry.js +1 -1
  353. package/dist/esm-es5/nano-range.entry.js.map +1 -1
  354. package/dist/esm-es5/nano-rating.entry.js +1 -1
  355. package/dist/esm-es5/nano-rating.entry.js.map +1 -1
  356. package/dist/esm-es5/nano-resize-observe_2.entry.js +1 -1
  357. package/dist/esm-es5/nano-resize-observe_2.entry.js.map +1 -1
  358. package/dist/esm-es5/nano-select-option.entry.js +1 -1
  359. package/dist/esm-es5/nano-slide.entry.js +1 -1
  360. package/dist/esm-es5/nano-slides.entry.js +2 -2
  361. package/dist/esm-es5/nano-spinner.entry.js +1 -1
  362. package/dist/esm-es5/nano-sticker.entry.js +1 -1
  363. package/dist/esm-es5/nano-sticker.entry.js.map +1 -1
  364. package/dist/esm-es5/nano-tab-content.entry.js +1 -1
  365. package/dist/esm-es5/nano-tab-group.entry.js +1 -1
  366. package/dist/esm-es5/nano-tab-group.entry.js.map +1 -1
  367. package/dist/esm-es5/nano-tab.entry.js +1 -1
  368. package/dist/esm-es5/nano-tooltip.entry.js +1 -1
  369. package/dist/esm-es5/nano-tooltip.entry.js.map +1 -1
  370. package/dist/esm-es5/popover-a57d8413.js +2 -0
  371. package/dist/{esm/popover-05f61b5f.js.map → esm-es5/popover-a57d8413.js.map} +1 -1
  372. package/dist/esm-es5/{shadow-css-70953e54.js → shadow-css-460f0f5c.js} +1 -1
  373. package/dist/esm-es5/shadow-css-460f0f5c.js.map +1 -0
  374. package/dist/nano-components/index.esm.js +1 -1
  375. package/dist/nano-components/index.esm.js.map +1 -1
  376. package/dist/nano-components/nano-components.esm.js +1 -1
  377. package/dist/nano-components/nano-components.esm.js.map +1 -1
  378. package/dist/nano-components/nano-components.js +1 -1
  379. package/dist/nano-components/{p-c8ff45ab.system.entry.js → p-007c6041.system.entry.js} +2 -2
  380. package/dist/nano-components/{p-c8ff45ab.system.entry.js.map → p-007c6041.system.entry.js.map} +0 -0
  381. package/dist/nano-components/{p-1ce90ea4.entry.js → p-02177814.entry.js} +2 -2
  382. package/dist/nano-components/p-02177814.entry.js.map +1 -0
  383. package/dist/nano-components/{p-9b9ca075.system.entry.js → p-046af455.system.entry.js} +2 -2
  384. package/dist/nano-components/p-046af455.system.entry.js.map +1 -0
  385. package/dist/nano-components/p-05c062ae.js +4 -0
  386. package/dist/nano-components/p-05c062ae.js.map +1 -0
  387. package/dist/nano-components/{p-4365edc6.js → p-0c9eb057.js} +1 -1
  388. package/dist/nano-components/{p-4365edc6.js.map → p-0c9eb057.js.map} +1 -1
  389. package/dist/nano-components/{p-dce1f547.entry.js → p-104a9d64.entry.js} +2 -2
  390. package/dist/nano-components/p-104a9d64.entry.js.map +1 -0
  391. package/dist/nano-components/{p-8611e764.system.entry.js → p-10f24f67.system.entry.js} +2 -2
  392. package/dist/nano-components/{p-8611e764.system.entry.js.map → p-10f24f67.system.entry.js.map} +0 -0
  393. package/dist/nano-components/p-1477b91d.system.js +2 -0
  394. package/dist/nano-components/p-1477b91d.system.js.map +1 -0
  395. package/dist/nano-components/{p-461c539f.system.entry.js → p-1c7614c4.system.entry.js} +2 -2
  396. package/dist/nano-components/p-1c7614c4.system.entry.js.map +1 -0
  397. package/dist/nano-components/{p-8a41ccd9.system.entry.js → p-1d16e897.system.entry.js} +2 -2
  398. package/dist/nano-components/{p-8a41ccd9.system.entry.js.map → p-1d16e897.system.entry.js.map} +0 -0
  399. package/dist/nano-components/{p-4042379b.system.entry.js → p-21a6f295.system.entry.js} +2 -2
  400. package/dist/nano-components/p-21a6f295.system.entry.js.map +1 -0
  401. package/dist/nano-components/{p-9a456956.system.js → p-2671d998.system.js} +2 -2
  402. package/dist/nano-components/p-2671d998.system.js.map +1 -0
  403. package/dist/nano-components/{p-7367dfd5.system.entry.js → p-273b19b0.system.entry.js} +2 -2
  404. package/dist/nano-components/{p-7367dfd5.system.entry.js.map → p-273b19b0.system.entry.js.map} +0 -0
  405. package/dist/nano-components/p-28123e6e.entry.js +2 -0
  406. package/dist/nano-components/p-28123e6e.entry.js.map +1 -0
  407. package/dist/nano-components/{p-7b3de191.entry.js → p-2ae39fa1.entry.js} +2 -2
  408. package/dist/nano-components/p-2ae39fa1.entry.js.map +1 -0
  409. package/dist/nano-components/{p-47d2a49e.system.js → p-2d0b8da6.system.js} +1 -1
  410. package/dist/nano-components/{p-47d2a49e.system.js.map → p-2d0b8da6.system.js.map} +1 -1
  411. package/dist/nano-components/{p-6a9fe61f.system.entry.js → p-2edaf0eb.system.entry.js} +3 -3
  412. package/dist/nano-components/{p-6a9fe61f.system.entry.js.map → p-2edaf0eb.system.entry.js.map} +0 -0
  413. package/dist/nano-components/{p-be430309.system.entry.js → p-2f876f68.system.entry.js} +2 -2
  414. package/dist/nano-components/{p-be430309.system.entry.js.map → p-2f876f68.system.entry.js.map} +1 -1
  415. package/dist/nano-components/{p-e1429ff0.system.entry.js → p-305ba54b.system.entry.js} +2 -2
  416. package/dist/nano-components/p-305ba54b.system.entry.js.map +1 -0
  417. package/dist/nano-components/{p-e142f6b6.system.entry.js → p-30a22cd0.system.entry.js} +2 -2
  418. package/dist/nano-components/p-30a22cd0.system.entry.js.map +1 -0
  419. package/dist/nano-components/{p-a897cfae.system.entry.js → p-31c52d0a.system.entry.js} +2 -2
  420. package/dist/nano-components/p-31c52d0a.system.entry.js.map +1 -0
  421. package/dist/nano-components/{p-f578998d.system.entry.js → p-325f32b3.system.entry.js} +2 -2
  422. package/dist/nano-components/p-325f32b3.system.entry.js.map +1 -0
  423. package/dist/nano-components/{p-bc09eba8.entry.js → p-3b2ea5fd.entry.js} +2 -2
  424. package/dist/nano-components/p-3b2ea5fd.entry.js.map +1 -0
  425. package/dist/nano-components/{p-0283a2ec.js → p-4370f8ae.js} +2 -2
  426. package/dist/nano-components/p-4370f8ae.js.map +1 -0
  427. package/dist/nano-components/{p-d7eb8c22.system.js → p-4647a31f.system.js} +2 -2
  428. package/dist/nano-components/{p-d7eb8c22.system.js.map → p-4647a31f.system.js.map} +1 -1
  429. package/dist/nano-components/{p-79e11525.system.entry.js → p-491096f0.system.entry.js} +2 -2
  430. package/dist/nano-components/p-491096f0.system.entry.js.map +1 -0
  431. package/dist/nano-components/{p-fb8aa0a7.system.entry.js → p-4e21bfe1.system.entry.js} +2 -2
  432. package/dist/nano-components/{p-fb8aa0a7.system.entry.js.map → p-4e21bfe1.system.entry.js.map} +0 -0
  433. package/dist/nano-components/{p-847ce50c.entry.js → p-4fa0b560.entry.js} +2 -2
  434. package/dist/nano-components/{p-847ce50c.entry.js.map → p-4fa0b560.entry.js.map} +0 -0
  435. package/dist/nano-components/{p-1bd92497.system.entry.js → p-4fbc3c8b.system.entry.js} +2 -2
  436. package/dist/nano-components/{p-1bd92497.system.entry.js.map → p-4fbc3c8b.system.entry.js.map} +0 -0
  437. package/dist/nano-components/{p-5198e4c6.system.js → p-508484f8.system.js} +2 -2
  438. package/dist/nano-components/p-508484f8.system.js.map +1 -0
  439. package/dist/nano-components/p-5672ebbb.system.entry.js +2 -0
  440. package/dist/nano-components/p-5672ebbb.system.entry.js.map +1 -0
  441. package/dist/nano-components/{p-405d92a0.entry.js → p-574143b5.entry.js} +2 -2
  442. package/dist/nano-components/{p-405d92a0.entry.js.map → p-574143b5.entry.js.map} +0 -0
  443. package/dist/nano-components/{p-346f0d8c.system.entry.js → p-57434dc5.system.entry.js} +2 -2
  444. package/dist/nano-components/{p-346f0d8c.system.entry.js.map → p-57434dc5.system.entry.js.map} +0 -0
  445. package/dist/nano-components/{p-7b94cd1c.entry.js → p-574f1393.entry.js} +2 -2
  446. package/dist/nano-components/p-574f1393.entry.js.map +1 -0
  447. package/dist/nano-components/{p-6b22f5db.entry.js → p-580eac05.entry.js} +2 -2
  448. package/dist/nano-components/p-580eac05.entry.js.map +1 -0
  449. package/dist/nano-components/{p-fa884269.entry.js → p-59aba360.entry.js} +2 -2
  450. package/dist/nano-components/{p-fa884269.entry.js.map → p-59aba360.entry.js.map} +0 -0
  451. package/dist/nano-components/{p-e886b71e.system.js → p-698a8ab3.system.js} +2 -2
  452. package/dist/nano-components/p-698a8ab3.system.js.map +1 -0
  453. package/dist/nano-components/{p-6ba91d36.entry.js → p-6a3eee01.entry.js} +2 -2
  454. package/dist/nano-components/p-6a3eee01.entry.js.map +1 -0
  455. package/dist/nano-components/{p-1ed74370.entry.js → p-6aab52a0.entry.js} +2 -2
  456. package/dist/nano-components/p-6aab52a0.entry.js.map +1 -0
  457. package/dist/nano-components/{p-e5a19e7f.entry.js → p-6dc59ae8.entry.js} +2 -2
  458. package/dist/nano-components/{p-e5a19e7f.entry.js.map → p-6dc59ae8.entry.js.map} +0 -0
  459. package/dist/nano-components/{p-c171b273.entry.js → p-6eba639a.entry.js} +3 -3
  460. package/dist/nano-components/{p-c171b273.entry.js.map → p-6eba639a.entry.js.map} +0 -0
  461. package/dist/nano-components/{p-4739c706.system.entry.js → p-73d969d0.system.entry.js} +2 -2
  462. package/dist/nano-components/{p-4739c706.system.entry.js.map → p-73d969d0.system.entry.js.map} +1 -1
  463. package/dist/nano-components/{p-a50ca06f.system.entry.js → p-7dc79f13.system.entry.js} +2 -2
  464. package/dist/nano-components/{p-a50ca06f.system.entry.js.map → p-7dc79f13.system.entry.js.map} +0 -0
  465. package/dist/nano-components/{p-ba59977d.entry.js → p-7df31b1c.entry.js} +2 -2
  466. package/dist/nano-components/{p-ba59977d.entry.js.map → p-7df31b1c.entry.js.map} +0 -0
  467. package/dist/nano-components/{p-60b2ba81.system.entry.js → p-7e208086.system.entry.js} +2 -2
  468. package/dist/nano-components/p-7e208086.system.entry.js.map +1 -0
  469. package/dist/nano-components/{p-63cc5e0d.system.entry.js → p-7e4129b4.system.entry.js} +2 -2
  470. package/dist/nano-components/{p-63cc5e0d.system.entry.js.map → p-7e4129b4.system.entry.js.map} +0 -0
  471. package/dist/nano-components/{p-7fdff708.entry.js → p-7e68796f.entry.js} +2 -2
  472. package/dist/nano-components/p-7e68796f.entry.js.map +1 -0
  473. package/dist/nano-components/{p-027c5ed7.entry.js → p-81d7fd45.entry.js} +2 -2
  474. package/dist/nano-components/{p-027c5ed7.entry.js.map → p-81d7fd45.entry.js.map} +0 -0
  475. package/dist/nano-components/{p-d795cbd4.entry.js → p-82571543.entry.js} +2 -2
  476. package/dist/nano-components/p-82571543.entry.js.map +1 -0
  477. package/dist/nano-components/{p-7a0e9c6f.system.entry.js → p-844a1134.system.entry.js} +2 -2
  478. package/dist/nano-components/{p-7a0e9c6f.system.entry.js.map → p-844a1134.system.entry.js.map} +0 -0
  479. package/dist/nano-components/p-8535a942.entry.js +2 -0
  480. package/dist/nano-components/p-8535a942.entry.js.map +1 -0
  481. package/dist/nano-components/{p-c6796f75.entry.js → p-8c1d85ae.entry.js} +2 -2
  482. package/dist/nano-components/p-8c1d85ae.entry.js.map +1 -0
  483. package/dist/nano-components/{p-b6f5e5ef.system.js → p-8d24287e.system.js} +1 -1
  484. package/dist/nano-components/{p-b6f5e5ef.system.js.map → p-8d24287e.system.js.map} +1 -1
  485. package/dist/nano-components/{p-20ad4e90.system.entry.js → p-8ed6acea.system.entry.js} +2 -2
  486. package/dist/nano-components/{p-20ad4e90.system.entry.js.map → p-8ed6acea.system.entry.js.map} +0 -0
  487. package/dist/nano-components/p-9164e5e2.system.entry.js +2 -0
  488. package/dist/nano-components/p-9164e5e2.system.entry.js.map +1 -0
  489. package/dist/nano-components/{p-9920e725.system.js → p-9348c301.system.js} +1 -1
  490. package/dist/nano-components/p-9348c301.system.js.map +1 -0
  491. package/dist/nano-components/p-9371d81b.system.entry.js +2 -0
  492. package/dist/nano-components/p-9371d81b.system.entry.js.map +1 -0
  493. package/dist/nano-components/{p-89a5c54a.system.js → p-94f03788.system.js} +1 -1
  494. package/dist/nano-components/{p-89a5c54a.system.js.map → p-94f03788.system.js.map} +1 -1
  495. package/dist/nano-components/{p-fa926d02.system.entry.js → p-95a4c3f2.system.entry.js} +2 -2
  496. package/dist/nano-components/p-95a4c3f2.system.entry.js.map +1 -0
  497. package/dist/nano-components/p-96ba0d00.entry.js +2 -0
  498. package/dist/nano-components/p-96ba0d00.entry.js.map +1 -0
  499. package/dist/nano-components/p-99637978.entry.js +2 -0
  500. package/dist/nano-components/p-99637978.entry.js.map +1 -0
  501. package/dist/nano-components/{p-f5f76780.entry.js → p-9ccd832b.entry.js} +2 -2
  502. package/dist/nano-components/p-9ccd832b.entry.js.map +1 -0
  503. package/dist/nano-components/{p-e1fd68eb.js → p-a1680208.js} +2 -2
  504. package/dist/nano-components/{p-e1fd68eb.js.map → p-a1680208.js.map} +1 -1
  505. package/dist/nano-components/{p-fb7ae92c.entry.js → p-a53a193c.entry.js} +2 -2
  506. package/dist/nano-components/p-a53a193c.entry.js.map +1 -0
  507. package/dist/nano-components/p-a7ac7964.system.entry.js +2 -0
  508. package/dist/nano-components/p-a7ac7964.system.entry.js.map +1 -0
  509. package/dist/nano-components/{p-ec01a0ad.system.entry.js → p-aadd8c31.system.entry.js} +2 -2
  510. package/dist/nano-components/p-aadd8c31.system.entry.js.map +1 -0
  511. package/dist/nano-components/p-ab666582.entry.js +2 -0
  512. package/dist/nano-components/p-ab666582.entry.js.map +1 -0
  513. package/dist/nano-components/p-acd5d0f0.system.entry.js +2 -0
  514. package/dist/nano-components/p-acd5d0f0.system.entry.js.map +1 -0
  515. package/dist/nano-components/p-af9f6453.system.js +2 -0
  516. package/dist/nano-components/p-af9f6453.system.js.map +1 -0
  517. package/dist/nano-components/p-b1d3ab54.system.entry.js +2 -0
  518. package/dist/nano-components/p-b1d3ab54.system.entry.js.map +1 -0
  519. package/dist/nano-components/{p-27520572.entry.js → p-b3131821.entry.js} +2 -2
  520. package/dist/nano-components/{p-27520572.entry.js.map → p-b3131821.entry.js.map} +0 -0
  521. package/dist/nano-components/{p-e24d3e8a.entry.js → p-b7a58722.entry.js} +2 -2
  522. package/dist/nano-components/p-b7a58722.entry.js.map +1 -0
  523. package/dist/nano-components/p-bb0619e6.js +2 -0
  524. package/dist/nano-components/p-bb0619e6.js.map +1 -0
  525. package/dist/nano-components/{p-d0c501a0.entry.js → p-c3f861c5.entry.js} +2 -2
  526. package/dist/nano-components/{p-d0c501a0.entry.js.map → p-c3f861c5.entry.js.map} +1 -1
  527. package/dist/nano-components/{p-21f484a3.system.entry.js → p-c655e010.system.entry.js} +2 -2
  528. package/dist/nano-components/{p-21f484a3.system.entry.js.map → p-c655e010.system.entry.js.map} +1 -1
  529. package/dist/nano-components/p-c72b22be.entry.js +2 -0
  530. package/dist/nano-components/p-c72b22be.entry.js.map +1 -0
  531. package/dist/nano-components/p-d112948c.js +2 -0
  532. package/dist/nano-components/p-d112948c.js.map +1 -0
  533. package/dist/nano-components/{p-09b702fb.entry.js → p-d250987a.entry.js} +2 -2
  534. package/dist/nano-components/{p-09b702fb.entry.js.map → p-d250987a.entry.js.map} +0 -0
  535. package/dist/nano-components/p-d393d10a.system.entry.js +2 -0
  536. package/dist/nano-components/p-d393d10a.system.entry.js.map +1 -0
  537. package/dist/nano-components/p-db271541.entry.js +2 -0
  538. package/dist/nano-components/p-db271541.entry.js.map +1 -0
  539. package/dist/nano-components/p-dccd86ec.system.js +4 -0
  540. package/dist/nano-components/p-dccd86ec.system.js.map +1 -0
  541. package/dist/nano-components/p-e0cc37fb.entry.js +2 -0
  542. package/dist/nano-components/{p-2e1f6c4a.entry.js.map → p-e0cc37fb.entry.js.map} +1 -1
  543. package/dist/nano-components/{p-76bf0452.system.entry.js → p-e28536b4.system.entry.js} +2 -2
  544. package/dist/nano-components/p-e28536b4.system.entry.js.map +1 -0
  545. package/dist/nano-components/{p-acfe1b68.entry.js → p-ebf34764.entry.js} +2 -2
  546. package/dist/nano-components/{p-acfe1b68.entry.js.map → p-ebf34764.entry.js.map} +0 -0
  547. package/dist/nano-components/{p-e33dd8b9.js → p-ed174626.js} +1 -1
  548. package/dist/nano-components/p-ed174626.js.map +1 -0
  549. package/dist/nano-components/{p-c930d4f5.js → p-ed2efbeb.js} +1 -1
  550. package/dist/nano-components/{p-c930d4f5.js.map → p-ed2efbeb.js.map} +1 -1
  551. package/dist/nano-components/p-edddeaae.system.js +2 -0
  552. package/dist/nano-components/p-edddeaae.system.js.map +1 -0
  553. package/dist/nano-components/p-ef5d9308.entry.js +2 -0
  554. package/dist/nano-components/p-ef5d9308.entry.js.map +1 -0
  555. package/dist/nano-components/p-f234e064.system.entry.js +2 -0
  556. package/dist/nano-components/p-f234e064.system.entry.js.map +1 -0
  557. package/dist/nano-components/{p-507490fc.system.entry.js → p-f27c9429.system.entry.js} +2 -2
  558. package/dist/nano-components/{p-507490fc.system.entry.js.map → p-f27c9429.system.entry.js.map} +1 -1
  559. package/dist/nano-components/{p-372ce425.entry.js → p-f3688bce.entry.js} +2 -2
  560. package/dist/nano-components/{p-372ce425.entry.js.map → p-f3688bce.entry.js.map} +0 -0
  561. package/dist/nano-components/{p-35eb8352.system.entry.js → p-f86db7c0.system.entry.js} +2 -2
  562. package/dist/nano-components/{p-35eb8352.system.entry.js.map → p-f86db7c0.system.entry.js.map} +1 -1
  563. package/dist/nano-components/{p-6747f517.system.entry.js → p-fa86645d.system.entry.js} +2 -2
  564. package/dist/nano-components/p-fa86645d.system.entry.js.map +1 -0
  565. package/dist/nano-components/{p-9c26b459.js → p-fd0fca23.js} +1 -1
  566. package/dist/nano-components/{p-9c26b459.js.map → p-fd0fca23.js.map} +1 -1
  567. package/dist/nano-components/p-fdfa03d7.entry.js +2 -0
  568. package/dist/nano-components/p-fdfa03d7.entry.js.map +1 -0
  569. package/dist/nano-components/p-ff2ff5b0.js +2 -0
  570. package/dist/nano-components/p-ff2ff5b0.js.map +1 -0
  571. package/dist/nano-components/p-ff5890b4.entry.js +2 -0
  572. package/dist/nano-components/p-ff5890b4.entry.js.map +1 -0
  573. package/dist/nano-components/{p-23e9f09e.entry.js → p-ffab923c.entry.js} +2 -2
  574. package/dist/nano-components/p-ffab923c.entry.js.map +1 -0
  575. package/dist/themes/nanopore.css +1 -1
  576. package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +1 -1
  577. package/dist/types/components/checkbox/__tests__/__fixtures__/checkbox-templates.d.ts +8 -0
  578. package/dist/types/components/checkbox/checkbox-group.d.ts +4 -2
  579. package/dist/types/components/checkbox/checkbox.d.ts +9 -5
  580. package/dist/types/components/date-input/date-input.d.ts +9 -0
  581. package/dist/types/components/date-picker/date-picker.d.ts +9 -4
  582. package/dist/types/components/details/details.d.ts +1 -0
  583. package/dist/types/components/dropdown/dropdown.d.ts +21 -14
  584. package/dist/types/components/file-upload/file-upload-interface.d.ts +4 -3
  585. package/dist/types/components/file-upload/file-upload.d.ts +2 -12
  586. package/dist/types/components/input/input.d.ts +2 -1
  587. package/dist/types/components/tooltip/tooltip.d.ts +10 -7
  588. package/dist/types/components.d.ts +40 -14
  589. package/dist/types/index.d.ts +1 -1
  590. package/dist/types/utils/{utils.d.ts → index.d.ts} +0 -0
  591. package/dist/types/utils/testing/index.d.ts +49 -0
  592. package/docs-json.json +125 -47
  593. package/docs-vscode.json +9 -1
  594. package/package.json +10 -8
  595. package/dist/cjs/algolia-data-771a61ea.js.map +0 -1
  596. package/dist/cjs/algoliasearch.umd-51f0001d.js +0 -12
  597. package/dist/cjs/algoliasearch.umd-51f0001d.js.map +0 -1
  598. package/dist/cjs/global-befb7a64.js.map +0 -1
  599. package/dist/cjs/index-43791691.js.map +0 -1
  600. package/dist/cjs/popover-eccc07bd.js.map +0 -1
  601. package/dist/cjs/shadow-css-c5dce0c8.js.map +0 -1
  602. package/dist/collection/utils/testing-utils.js +0 -156
  603. package/dist/collection/utils/testing-utils.js.map +0 -1
  604. package/dist/esm/algolia-data-a84aeef1.js.map +0 -1
  605. package/dist/esm/algoliasearch.umd-2c129faa.js +0 -10
  606. package/dist/esm/algoliasearch.umd-2c129faa.js.map +0 -1
  607. package/dist/esm/global-c85d24a2.js.map +0 -1
  608. package/dist/esm/index-20becda2.js.map +0 -1
  609. package/dist/esm/shadow-css-70953e54.js.map +0 -1
  610. package/dist/esm-es5/algolia-data-a84aeef1.js.map +0 -1
  611. package/dist/esm-es5/algoliasearch.umd-2c129faa.js +0 -4
  612. package/dist/esm-es5/algoliasearch.umd-2c129faa.js.map +0 -1
  613. package/dist/esm-es5/global-c85d24a2.js.map +0 -1
  614. package/dist/esm-es5/index-20becda2.js +0 -2
  615. package/dist/esm-es5/index-20becda2.js.map +0 -1
  616. package/dist/esm-es5/popover-05f61b5f.js +0 -2
  617. package/dist/esm-es5/popover-05f61b5f.js.map +0 -1
  618. package/dist/esm-es5/shadow-css-70953e54.js.map +0 -1
  619. package/dist/nano-components/p-0283a2ec.js.map +0 -1
  620. package/dist/nano-components/p-1ce90ea4.entry.js.map +0 -1
  621. package/dist/nano-components/p-1ed74370.entry.js.map +0 -1
  622. package/dist/nano-components/p-1f7502fa.js +0 -2
  623. package/dist/nano-components/p-1f7502fa.js.map +0 -1
  624. package/dist/nano-components/p-1fd60eec.system.js +0 -2
  625. package/dist/nano-components/p-1fd60eec.system.js.map +0 -1
  626. package/dist/nano-components/p-201b5f5b.entry.js +0 -2
  627. package/dist/nano-components/p-201b5f5b.entry.js.map +0 -1
  628. package/dist/nano-components/p-214ad382.entry.js +0 -2
  629. package/dist/nano-components/p-214ad382.entry.js.map +0 -1
  630. package/dist/nano-components/p-23da4de5.js +0 -4
  631. package/dist/nano-components/p-23da4de5.js.map +0 -1
  632. package/dist/nano-components/p-23e9f09e.entry.js.map +0 -1
  633. package/dist/nano-components/p-2d59dda3.system.js +0 -2
  634. package/dist/nano-components/p-2d59dda3.system.js.map +0 -1
  635. package/dist/nano-components/p-2e1f6c4a.entry.js +0 -2
  636. package/dist/nano-components/p-4042379b.system.entry.js.map +0 -1
  637. package/dist/nano-components/p-45e06083.system.entry.js +0 -2
  638. package/dist/nano-components/p-45e06083.system.entry.js.map +0 -1
  639. package/dist/nano-components/p-461c539f.system.entry.js.map +0 -1
  640. package/dist/nano-components/p-4bca8761.entry.js +0 -2
  641. package/dist/nano-components/p-4bca8761.entry.js.map +0 -1
  642. package/dist/nano-components/p-4ee095f3.js +0 -2
  643. package/dist/nano-components/p-4ee095f3.js.map +0 -1
  644. package/dist/nano-components/p-5198e4c6.system.js.map +0 -1
  645. package/dist/nano-components/p-568be88a.entry.js +0 -2
  646. package/dist/nano-components/p-568be88a.entry.js.map +0 -1
  647. package/dist/nano-components/p-5918ac51.entry.js +0 -2
  648. package/dist/nano-components/p-5918ac51.entry.js.map +0 -1
  649. package/dist/nano-components/p-5f716719.system.entry.js +0 -2
  650. package/dist/nano-components/p-5f716719.system.entry.js.map +0 -1
  651. package/dist/nano-components/p-60b2ba81.system.entry.js.map +0 -1
  652. package/dist/nano-components/p-6747f517.system.entry.js.map +0 -1
  653. package/dist/nano-components/p-6b22f5db.entry.js.map +0 -1
  654. package/dist/nano-components/p-6ba91d36.entry.js.map +0 -1
  655. package/dist/nano-components/p-76bf0452.system.entry.js.map +0 -1
  656. package/dist/nano-components/p-79e11525.system.entry.js.map +0 -1
  657. package/dist/nano-components/p-7b3de191.entry.js.map +0 -1
  658. package/dist/nano-components/p-7b94cd1c.entry.js.map +0 -1
  659. package/dist/nano-components/p-7f3b4f80.entry.js +0 -2
  660. package/dist/nano-components/p-7f3b4f80.entry.js.map +0 -1
  661. package/dist/nano-components/p-7fdff708.entry.js.map +0 -1
  662. package/dist/nano-components/p-8fe04c5c.system.entry.js +0 -2
  663. package/dist/nano-components/p-8fe04c5c.system.entry.js.map +0 -1
  664. package/dist/nano-components/p-93b1eeea.system.js +0 -2
  665. package/dist/nano-components/p-93b1eeea.system.js.map +0 -1
  666. package/dist/nano-components/p-9920e725.system.js.map +0 -1
  667. package/dist/nano-components/p-9a456956.system.js.map +0 -1
  668. package/dist/nano-components/p-9b9ca075.system.entry.js.map +0 -1
  669. package/dist/nano-components/p-a897cfae.system.entry.js.map +0 -1
  670. package/dist/nano-components/p-bc09eba8.entry.js.map +0 -1
  671. package/dist/nano-components/p-c3401b82.entry.js +0 -2
  672. package/dist/nano-components/p-c3401b82.entry.js.map +0 -1
  673. package/dist/nano-components/p-c4edcfc5.system.entry.js +0 -2
  674. package/dist/nano-components/p-c4edcfc5.system.entry.js.map +0 -1
  675. package/dist/nano-components/p-c6796f75.entry.js.map +0 -1
  676. package/dist/nano-components/p-c8792b54.system.entry.js +0 -2
  677. package/dist/nano-components/p-c8792b54.system.entry.js.map +0 -1
  678. package/dist/nano-components/p-cb750e49.system.js +0 -4
  679. package/dist/nano-components/p-cb750e49.system.js.map +0 -1
  680. package/dist/nano-components/p-cc5080df.entry.js +0 -2
  681. package/dist/nano-components/p-cc5080df.entry.js.map +0 -1
  682. package/dist/nano-components/p-d2ae5ac1.entry.js +0 -2
  683. package/dist/nano-components/p-d2ae5ac1.entry.js.map +0 -1
  684. package/dist/nano-components/p-d795cbd4.entry.js.map +0 -1
  685. package/dist/nano-components/p-da9f75d2.system.entry.js +0 -2
  686. package/dist/nano-components/p-da9f75d2.system.entry.js.map +0 -1
  687. package/dist/nano-components/p-dce1f547.entry.js.map +0 -1
  688. package/dist/nano-components/p-dd66cc74.entry.js +0 -2
  689. package/dist/nano-components/p-dd66cc74.entry.js.map +0 -1
  690. package/dist/nano-components/p-e1429ff0.system.entry.js.map +0 -1
  691. package/dist/nano-components/p-e142f6b6.system.entry.js.map +0 -1
  692. package/dist/nano-components/p-e24d3e8a.entry.js.map +0 -1
  693. package/dist/nano-components/p-e2848c8a.system.entry.js +0 -2
  694. package/dist/nano-components/p-e2848c8a.system.entry.js.map +0 -1
  695. package/dist/nano-components/p-e33dd8b9.js.map +0 -1
  696. package/dist/nano-components/p-e886b71e.system.js.map +0 -1
  697. package/dist/nano-components/p-e8a97250.system.entry.js +0 -2
  698. package/dist/nano-components/p-e8a97250.system.entry.js.map +0 -1
  699. package/dist/nano-components/p-ec01a0ad.system.entry.js.map +0 -1
  700. package/dist/nano-components/p-f55560d3.js +0 -2
  701. package/dist/nano-components/p-f55560d3.js.map +0 -1
  702. package/dist/nano-components/p-f578998d.system.entry.js.map +0 -1
  703. package/dist/nano-components/p-f5f76780.entry.js.map +0 -1
  704. package/dist/nano-components/p-fa926d02.system.entry.js.map +0 -1
  705. package/dist/nano-components/p-fb7ae92c.entry.js.map +0 -1
  706. package/dist/types/utils/testing-utils.d.ts +0 -41
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["src/utils/fetch.ts","src/components/global-nav/global-nav.scss?tag=nano-global-nav&encapsulation=shadow","src/components/global-nav/global-nav.tsx"],"names":["clientFetch","url","_a","body","customConfig","__rest","headers","Accept","Access-Control-Allow-Origin","Content-Type","Cache","config","Object","assign","method","credentials","keepalive","mode","JSON","stringify","id","setTimeout","window","AbortController","controller_1","_b","timeout","abort","signal","fetch","response","_c","sent","clearTimeout","ok","json","text","errorMessage","Error","globalNavCss","THRESHOLDLIMIT","GlobalNav","exports","class_1","hostRef","_this","this","currSize","thresholdsGoingUp","autocompleteEles","currAIndex","isLoggedIn","myAccData","aboutNavItms","siteNavItms","loggedInNavItms","hasLoggedinSlot","hasSiteSlot","hasPromotionSlot","aboutSlotLen","iconSlotLen","mainSlotLen","overflowSlotLen","searchSlotLen","internalSearchIndeces","thresholdReady","remoteDataReady","ready","isResizing","threshold","modalOpen","modalIsOpen","searchBarShown","scrollingUp","searchLoading","showAutocomplete","secondaryMenuOpen","userMenuOpen","menuFullScreen","searchValInternal","env","ssoRedirect","encodeURIComponent","location","href","getMyAccountData","activeMyAccountSections","showSearch","showLogo","logoUrl","protocol","host","searchIndeces","myAccountUser","searchValue","searchIndex","cartCount","msgCount","cartUrl","msgUrl","setResizingState","state","debounceSetResizingState","debounce","onMenuBtnKeyDown","ev","key","menuClose","menuOpen","onMenuBtnClick","e","preventDefault","menuDiv","style","display","menuWrapDiv","addEventListener","focus","preventScroll","scrollHeight","innerHeight","document","overflow","overflowX","onMenuHidden","removeEventListener","activeElement","menuBtn","mainBarDiv","force","relatedTarget","closestElement","closest","subMenuClose","target","open","onUserBtnClick","onUserBtnKeyDown","onUserMenuBlur","onSearchBtnClick","searchbarShow","searchbarHide","onSearchBtnKeyDown","onSearchBarShown","searchBarEl","searchInput","setFocus","length","onSearchBarHidden","height","onSearchInput","value","isSearchValSet","detail","onSearchSubmit","onSearchChange","__awaiter","autocompleteResults","nanoSearchReset","emit","currentIndex","currentSelectedIndex","processSearchResults","alogliaIndex","search","attributesToSnippet","hitsPerPage","filters","Math","floor","Date","now","apply","_e","console","error","e_1","scopeSearch","_d","showAutocompleteResults","algoliaSearchResults","queries","map","index","indexName","query","facets","algoliaClient","multipleQueries","nanoSearchError","e_2","results","result","i","name","selected","domain","domains","allGroup","nanoSearchResult","client","apiKey","searchApiKey","appId","searchAppId","onSearchIndexChange","indexStr","selectedIndex","find","switchIndexSubmit","onAutocompleteBlur","hits","onAutocompleteInteract","testIndex","el","shadowRoot","found_1","ele","setActiveElement","found","click","prototype","submitSearch","warn","foundIndex","changeInternalSearchVal","initAlgoliaClient","algoliasearch","addAlgoliaIndeces","addIndeces","__spreadArray","forEach","initIndex","thresholdChange","newThreshold","oldThreshold","ratioChange","intersectRatio","siteContent","minHeight","barsDiv","clientHeight","menuItems_1","barItems_1","readTask","Array","from","querySelectorAll","push","writeTask","item","classList","add","remove","assessReady","remoteReady","attachIO","isReady","nanoIsReady","setupAutocompleteBlur","slotChange","thresholdClasses","classes","onWindowResize","innerWidth","secondaryOpen","secondaryMenu","stopPropagation","menuContentDiv","secondaryClose","handleUserMenu","displayTransition","userLinkPanel","querySelector","autocompleteSnippet","hit","lookFor","_snippetResult","prop","matchLevel","title","substring","resetHitFocus","autocompleteEle","setAttribute","assessSlottedContent","io","root","IntersectionObserver","data","slice","intersectionRatio","observe","componentDidLoad","debounceResize","bind","componentWillLoad","ComponentStore","init","MutationObserver","mo","childList","subtree","disconnectedCallback","disconnect","undefined","connectedCallback","getMyAccData","autocompleteList","content","currentScopeHits","scopeChangeSuggestions","scopeSuggestReducer","total","currentSuggestReducer","reduce","scopeSuggestions_1","h","class","role","ref","a","tabindex","innerHTML","button","onClick","onMouseDown","aria-expanded","hidden","searchWidget","onSubmit","label","hideLabel","showInlineError","onNanoChange","mask","slot","aria-label","clear-input","placeholder","type","input","onNanoInput","aria-autocomplete","aria-activedescendant","aria-controls","onNanoFocus","search-icon","search-icon--search","search-icon--show","search-icon--loader","render","isRtl","ownerDocument","dir","Host","join","resizing","global-nav","scrolling-down","menu","has-promotion","menu-full-screen","secondary-open","div","onKeyDown","includes","urls","login","link","address","forgot_password","logout","auto-resize","break-point-max","quietMode","w","btn","src","getAssetPath","alt","aria-owns","icon-btn","user-links-btn","search-bar","show","onTouchEnd","domainFor","origin","dm","multiResults","singleResult","match","user","processMyAccLinks","processMyAccData","e_3","module","import","indeces","api_key","app_id","cart","count","notifications","messages","links","area"],"mappings":"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","sourcesContent":["interface FetchInputConfig {\n body?: { [prop: string]: string };\n headers?: { [prop: string]: string };\n [prop: string]: any;\n}\n\nexport async function clientFetch(\n url: string,\n { body, ...customConfig }: FetchInputConfig = {}\n) {\n const headers: { [prop: string]: string } = {\n Accept: 'application/json, text/plain, */*',\n 'Access-Control-Allow-Origin': '*',\n 'Content-Type': 'application/json',\n Cache: 'no-cache',\n };\n const config: RequestInit = {\n method: body ? 'POST' : 'GET',\n credentials: 'include',\n keepalive: true,\n mode: 'cors',\n ...customConfig,\n headers: {\n ...headers,\n ...customConfig.headers,\n },\n };\n if (body) {\n config.body = JSON.stringify(body);\n }\n\n let id = setTimeout(() => {}, 0);\n if (window.AbortController) {\n const controller = new AbortController();\n const { timeout = 500 } = customConfig;\n id = setTimeout(() => controller.abort(), timeout);\n config.signal = controller.signal;\n }\n\n const response = await fetch(url, config);\n clearTimeout(id);\n\n if (response.ok) {\n return await response.json();\n } else {\n const errorMessage = await response.text();\n return new Error(errorMessage);\n }\n}\n","@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/colours';\n@import '../../global/style/nano-theme/layers';\n\n:host {\n /**\n * @prop --padding: padding used for many elements. Defaults to '12px 0'.\n * @prop --padding-top: top padding used for many elements. Defaults to --padding.\n * @prop --padding-bottom: bottom padding used for many elements. Defaults to --padding.\n * @prop --padding-end: end (left on l2r / right on r2l) padding used for many elements. Defaulst to --padding.\n * @prop --padding-start: start (right on l2r / left on r2l) padding used for many elements. Defaults to --padding.\n * @prop --bar-background: Background of the bar element. Defaults to rgb(17, 85, 113).\n * @prop --bar-text-color: Text color within the bar element. Defaults to white.\n * @prop --bar-color-shade: Color variant used within the bar element. Defaults to rgb(40, 110, 133).\n * @prop --bar-color-tint: Color variant used within the bar element. Defaults to rgb(88, 140, 161).\n * @prop --bar-color-focus: Focus color of the form element within search. Defaults to #90c6e7;\n * @prop --bar-color-focus: Focus color of the form element within search. Defaults to #90c6e7;\n * @prop --menu-background: Background 'burger', menu element. Defaults to #001a21;\n * @prop --menu-text-color: Text color 'burger', menu element. Defaults to white;\n */\n --padding: 12px;\n --padding-top: var(--padding);\n --padding-end: var(--padding);\n --padding-bottom: var(--padding);\n --padding-start: var(--padding);\n --bar-background: #005c75;\n --bar-text-color: white;\n --bar-color-shade: rgb(19, 89, 111);\n --bar-color-tint: rgb(19, 89, 111);\n --bar-color-focus: #90c6e7;\n --menu-background: #001a21;\n --menu-text-color: white;\n --menu-dropdown-bg: #196c82;\n --menu-dropdown-color: white;\n\n display: block;\n position: relative;\n line-height: 1.5;\n height: 100%;\n\n * {\n box-sizing: inherit;\n }\n}\n\n// Common\n.global-nav {\n @include text-inherit();\n\n font-size: 0.88em;\n position: relative;\n z-index: #{$layer-index-menubar};\n\n button {\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n }\n\n .icon-btn {\n position: relative;\n background: none;\n color: inherit;\n border: none;\n align-self: normal;\n padding: 9px 7px;\n cursor: pointer;\n display: flex;\n align-items: center;\n\n nano-icon {\n width: 18px;\n height: 18px;\n }\n }\n\n ::slotted(nano-nav-item[slot='icon']) {\n --padding-top: 9px;\n --padding-bottom: 9px;\n --padding-start: 7px;\n --padding-end: 7px;\n --display: flex;\n\n font-size: 18px;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n white-space: nowrap;\n }\n\n .nav-links {\n &_title {\n margin: 8px 0 3px;\n }\n\n ul {\n margin: 0;\n padding: 0;\n }\n\n li {\n list-style: none;\n }\n }\n\n .login-btn {\n display: flex;\n align-items: center;\n font-size: 0.94em;\n }\n\n .menu-btn {\n padding: 9px var(--padding) 9px var(--padding);\n }\n}\n\n// Popup / Slideout Menu\n.menu {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -1;\n display: none;\n transition: z-index 0.01s ease 0.2s;\n height: 100vh;\n width: 100vw;\n overflow-y: auto;\n\n @include rtl-host() {\n left: auto;\n right: 0;\n }\n\n :host(.threshold-2) & {\n position: absolute;\n width: calc(100vw - 20px);\n }\n\n &.menu-full-screen {\n width: 100vw !important;\n }\n\n // &.secondary-open {\n // overflow-y: hidden;\n // }\n\n &_wrap {\n max-width: 92vw;\n width: 335px;\n background: var(--menu-background);\n color: var(--menu-text-color);\n padding: var(--padding) 0;\n box-shadow: 0 0 36px 0 rgba(0, 0, 0, 0.8);\n position: relative;\n pointer-events: all;\n margin-bottom: 36px;\n opacity: 0;\n outline: none;\n transition: transform 0.2s ease, opacity 0.2s ease;\n\n &.has-promotion {\n padding: var(--padding) 0 0;\n }\n }\n\n &.open {\n z-index: #{$layer-index-dropdown};\n transition: z-index 0.01s ease;\n\n .menu_wrap {\n opacity: 1;\n transform: translate3d(0, 0, 0) !important;\n transition: transform 0.2s ease 0.01s, opacity 0.2s ease 0.01s;\n }\n }\n\n &_actions {\n @include padding(null, calc(var(--padding) / 2), null, null);\n\n display: flex;\n justify-content: space-between;\n\n &-counter {\n background: #d0021b;\n color: #fff;\n position: absolute;\n bottom: 4px;\n right: 0;\n left: auto;\n font-size: 9px;\n height: 14px;\n line-height: 14px;\n width: auto;\n min-width: 14px;\n border-radius: 50%;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n text-align: center;\n text-indent: 0;\n }\n }\n\n .content {\n &-wrap {\n position: relative;\n overflow: hidden;\n transition: 0.2s ease min-height;\n min-height: 190px;\n }\n\n &--sub {\n padding: var(--padding) 0 var(--padding) 7px;\n }\n }\n\n .menu-btn {\n @include margin(null, auto, null, null);\n }\n\n .nav-links {\n display: flex;\n flex-wrap: wrap;\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n --icon-size: 14px;\n --display: inline-block;\n --secondary-bg-color: #001a21;\n --padding-top: 10px;\n --padding-bottom: 10px;\n --padding-end: calc(var(--padding) * 2);\n --padding-start: calc(var(--padding) + 3px);\n --color: white;\n --color-hover: #{$color-lightblue};\n --bg-color-hover: transparent;\n --bg-color-focus: #002530;\n --focus-outline: none;\n\n font-size: 0.99em;\n width: 100%;\n // margin: 0 0;\n }\n\n .user-nav {\n --bg-color: #193037;\n --padding-top: 9px;\n --padding-bottom: 9px;\n\n font-weight: bold;\n margin: 5px 0 0;\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n font-weight: 500;\n\n --bg-color: transparent;\n }\n }\n\n &_title {\n margin: 0 var(--padding) 4px;\n border-bottom: 1px solid #33484d;\n padding-bottom: 8px;\n font-size: 0.86em;\n text-transform: uppercase;\n color: $color-lightblue;\n letter-spacing: 1px;\n font-weight: 700;\n }\n\n &-wrap {\n margin: 18px 0;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .back-btn {\n border-top: 1px solid #33484d;\n border-bottom: 1px solid #33484d;\n display: flex;\n align-items: center;\n padding: 10px 11px 10px 0;\n width: 100%;\n font-size: 12px;\n text-transform: uppercase;\n color: $color-lightblue;\n letter-spacing: 1px;\n font-weight: 700;\n\n nano-icon {\n @include margin(null, 10px, null, null);\n\n font-size: 12px;\n color: white;\n }\n }\n\n &--sub {\n display: flex;\n flex-wrap: wrap;\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n --border-bottom: none;\n --padding-end: var(--padding);\n --padding-start: var(--padding);\n --padding-top: 8px;\n --padding-bottom: 8px;\n\n margin: 0;\n width: 50%;\n line-height: 1.8;\n }\n }\n\n .content {\n padding: 8px var(--padding);\n }\n }\n\n .login-btn {\n @include padding(9px, var(--padding), 9px, 7px);\n\n nano-icon {\n @include margin(null, null, null, 10px);\n }\n }\n\n .logout-btn {\n justify-content: flex-end;\n\n a {\n padding: 0 5px;\n }\n }\n}\n\n// Main Bar\n.sticker-trigger {\n background: var(--bar-background);\n width: 100%;\n z-index: calc(#{$layer-index-menubar} + 1);\n}\n\n.bars {\n color: var(--bar-text-color);\n z-index: #{$layer-index-menubar};\n position: relative;\n max-width: 100%;\n min-width: 100%;\n box-shadow: none;\n transition: 0.2s ease box-shadow;\n\n [stuck] & {\n box-shadow: 0 1px 25px 0 rgba(0, 0, 0, 0.15);\n }\n\n &::before {\n content: '';\n width: 100%;\n height: 100%;\n z-index: -1;\n background: var(--bar-background);\n position: absolute;\n }\n\n .search {\n &-widget {\n @include margin(null, auto, null, 11px);\n\n position: relative;\n flex: 1 1 auto;\n max-width: 45vw;\n min-width: 269px;\n max-height: 36px;\n }\n\n &-inputs {\n display: flex;\n margin: 0;\n\n input[type='submit'] {\n display: none;\n }\n }\n\n &-autocomplete {\n position: absolute;\n top: calc(100% - 2px);\n width: 100%;\n left: 0;\n background: white;\n border: 2px solid var(--bar-color-tint);\n border-radius: 0 0 5px 5px;\n color: $color-black;\n font-size: 0.85em;\n padding: calc(var(--padding) / 2) 0 1px 0;\n z-index: 1;\n\n @include rtl-host() {\n left: auto;\n right: 0;\n }\n\n &-hit {\n padding:\n calc(var(--padding) / 4) var(--padding)\n calc(var(--padding) / 4) var(--padding);\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: block;\n text-align: left;\n line-height: 1.5;\n cursor: pointer;\n\n @include rtl-host() {\n text-align: right;\n }\n\n &-scope {\n font-size: 0.76em;\n // text-indent: 10px;\n color: rgb(167, 176, 179);\n font-weight: 600;\n }\n\n &:hover,\n &:focus {\n background-color: $color-lightgrey;\n }\n\n .search__highlight,\n em {\n font-weight: bold;\n font-style: normal;\n }\n\n &--no-result {\n &:hover,\n &:focus {\n background: none !important;\n }\n }\n }\n\n &-foot {\n margin: 7px 0 0;\n }\n\n &-submit {\n background: none;\n border: none;\n align-self: normal;\n padding: 9px var(--padding);\n cursor: pointer;\n display: flex;\n align-items: center;\n color: $color-blue;\n justify-content: flex-end;\n width: 100%;\n text-decoration: underline;\n border-top: 1px solid rgb(232, 234, 234);\n\n &:hover,\n &:focus {\n background-color: $color-lightgrey;\n }\n }\n }\n }\n\n .search-input {\n --input-border-style: solid 1px rgb(85, 140, 157);\n --input-border-style--focus: solid 1px var(--bar-color-focus, #90c6e7);\n --input-border-width: 1px;\n\n font-size: 0.9em;\n }\n\n nano-select.search-input {\n --input-bg-color: var(--bar-color-tint, rgb(88, 140, 161));\n --input-text-color: inherit;\n --input-border-radius: 5px 0 0 5px;\n\n flex: 0 1 auto;\n width: auto;\n display: flex;\n align-items: center;\n flex-direction: column;\n position: relative;\n left: 1px;\n\n @include rtl-host() {\n --input-border-radius: 0 5px 5px 0;\n }\n\n :host(:not(.ready)) & {\n overflow: hidden;\n max-height: 1em;\n }\n }\n\n nano-input.search-input {\n --input-text-color: inherit;\n --input-bg-color: var(--bar-color-shade, rgb(40, 110, 133));\n --clear-btn-color: #{$color-black};\n --input-border-radius: 0 5px 5px 0;\n --placeholder-color: white;\n\n width: 206px;\n display: flex;\n align-items: center;\n flex-direction: column;\n flex: 1;\n\n @include rtl-host() {\n --input-border-radius: 5px 0 0 5px;\n }\n\n :host(:not(.ready)) & {\n overflow: hidden;\n max-height: 1em;\n }\n\n &.has-value {\n --input-bg-color: #{$color-white};\n --input-text-color: #{$color-black};\n\n .search-icon {\n color: #{$color-black};\n }\n }\n\n .search-icon {\n background: none;\n color: white;\n padding: 0 8px;\n display: none;\n\n &--show {\n display: flex;\n }\n\n &--loader {\n animation: spin 1s linear infinite;\n\n @keyframes spin {\n 100% {\n transform: rotate(360deg);\n }\n }\n }\n\n nano-icon {\n height: 1.4em;\n }\n }\n }\n}\n\n.main-bar {\n width: 100%;\n\n @include padding(var(--padding), var(--padding), var(--padding), 0);\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n overflow-x: hidden;\n\n &:focus {\n outline: none;\n }\n\n :host(.ready) & {\n overflow-x: visible;\n }\n\n > *,\n ::slotted(*) {\n transition: opacity 0.2s ease;\n\n :host(:not(.ready)) & {\n opacity: 0 !important;\n }\n\n :host(.ready) & {\n opacity: 1;\n }\n\n :host(.resizing) & {\n opacity: 0 !important;\n }\n }\n\n > * {\n flex: 0 0 auto;\n\n ::slotted(nano-nav-item[slot='icon']) {\n @include margin(null, null, null, 11px);\n }\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n --color-hover: #{$color-lightgrey};\n --secondary-bg-color: var(--menu-dropdown-bg);\n --secondary-color: var(--menu-dropdown-color);\n --bg-color-open: var(--bar-background);\n\n text-decoration: none !important;\n }\n }\n\n .icon-btn {\n @include margin(0, null, 0, 6px);\n\n :host(.threshold-2) & {\n @include margin(0, null, 0, 11px);\n }\n }\n\n .menu-btn.icon-btn {\n margin: 0 !important;\n\n @include ltr-host() {\n border-right: 1.5px solid var(--bar-color-shade);\n }\n\n @include rtl-host() {\n border-left: 1.5px solid var(--bar-color-shade);\n }\n }\n\n .user-links {\n position: relative;\n\n .icon-btn {\n @include padding(null, 0, null, null);\n\n font-size: 0.93em;\n font-weight: 500;\n\n nano-icon {\n @include margin(null, null, null, 5px);\n\n width: 16px;\n height: 16px;\n transform-origin: center;\n transition: transform 0.2s ease, color 0.2s ease;\n }\n\n &.open {\n nano-icon {\n transform: rotate(180deg);\n color: $color-blue;\n }\n }\n }\n\n &-panel {\n display: none;\n position: absolute;\n border-radius: 4px 0 4px 4px;\n box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.4);\n background-color: #568c9d;\n opacity: 0;\n transform: translate3d(0, 24px, 0);\n transition: transform 0.2s ease, opacity 0.2s ease;\n right: 0;\n font-size: 0.85em;\n min-width: 250px;\n z-index: 1;\n\n @include rtl-host() {\n right: auto;\n left: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n &.show {\n opacity: 1;\n transform: translate3d(0, 4px, 0);\n }\n\n &-content {\n padding: 0 18px;\n display: flex;\n flex-direction: column;\n\n a {\n padding: 11px 0;\n border-bottom: #669dac 1px solid;\n\n &:hover,\n &:focus {\n color: $color-darkgrey;\n }\n\n &:last-child {\n border-bottom: none;\n }\n }\n }\n\n &-foot {\n background-color: #aac5cd;\n border-radius: 0 0 4px 4px;\n padding: var(--padding);\n color: #455556;\n display: flex;\n align-items: center;\n font-weight: 500;\n justify-content: space-between;\n\n a:hover {\n text-decoration: underline;\n }\n }\n }\n }\n\n .logo {\n height: 34px;\n width: auto;\n min-width: 196px;\n\n :host(:not(.threshold-1)) & {\n height: 30px;\n }\n }\n\n .logo-link {\n @include margin(null, auto, null, 0);\n @include padding(null, 11px, null, 11px);\n\n display: flex;\n align-items: center;\n border: none;\n }\n\n .nav-links {\n font-size: 0.86em;\n flex: 1 0 auto;\n display: flex;\n justify-content: space-around;\n\n ul {\n display: flex;\n justify-content: space-around;\n }\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n --padding-top: 7px;\n --padding-bottom: 7px;\n --padding-end: 2px;\n --padding-start: 2px;\n --margin: 0 11px;\n }\n\n &--main {\n font-weight: bold;\n justify-content: flex-start;\n\n ::slotted(nano-nav-item) {\n --color: white;\n --padding-end: 6px;\n --padding-start: 6px;\n }\n }\n\n &--sub {\n @include margin(null, null, null, 6px);\n\n --color: #e2e2e2;\n\n justify-content: flex-end;\n }\n }\n\n .login-btn {\n display: inline-block;\n border-radius: 4px;\n background-color: #17bb75;\n color: #fff;\n padding: 3px 10px;\n position: relative;\n left: auto;\n bottom: auto;\n\n @include margin(null, 0, null, 11px);\n }\n\n .measure-ele {\n min-width: 1px;\n display: block;\n margin: 0;\n padding: 0;\n }\n}\n\n.search-bar {\n height: 0;\n overflow: hidden;\n transition: 0.2s ease height;\n padding: 0 var(--padding);\n outline: none;\n\n .search-widget {\n @include margin(0, 0, 0, 0);\n\n overflow: inherit;\n max-width: none;\n max-height: none;\n padding: 0 0 var(--padding);\n }\n\n .search-inputs {\n padding: 0 0;\n margin: 0 0;\n }\n\n .search-autocomplete {\n top: calc(100% - (var(--padding) + 1px));\n }\n}\n\n.site-content {\n display: flex;\n transition: min-height 0.2s ease;\n min-height: calc(100% - 61px);\n position: relative;\n z-index: auto;\n align-items: stretch;\n}\n\n.mask {\n opacity: 0;\n background: rgba(0, 0, 0, 0.3);\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n height: 100vh;\n z-index: -1;\n transition:\n transform 0.2s ease,\n opacity 0.2s ease,\n visibility 0.01s ease 0.2s,\n z-index 0.01s ease 0.2s;\n visibility: hidden;\n\n &.open {\n opacity: 1;\n transition:\n z-index 0.01s ease,\n visibility 0.01s ease,\n transform 0.2s ease 0.01s,\n opacity 0.2s ease 0.01s;\n z-index: 3;\n visibility: visible;\n }\n}\n","import {\n Component,\n h,\n Host,\n Element,\n State,\n Watch,\n Event,\n EventEmitter,\n Prop,\n Listen,\n Build,\n getAssetPath,\n readTask,\n writeTask,\n Method,\n VNode,\n ComponentInterface,\n} from '@stencil/core';\nimport algoliasearch, { SearchClient as AlgoliaClient } from 'algoliasearch';\nimport { debounce, closestElement, displayTransition } from '../../utils';\nimport { clientFetch } from '../../utils/fetch';\nimport {\n InputChangeEventDetail,\n SelectChangeEventDetail,\n AlgoliaResults,\n SearchIndex,\n MyAccountLink,\n AloliaSearchResultDetail,\n AlgoliaMultiResult,\n MyAccountUser,\n NavItemEventDetail,\n AlgoliaResultHit,\n AlgoliaNetworkError,\n AlgoliaMultiResults,\n} from '../../interface';\nimport { ComponentStore } from '../../utils/store/component-store';\n\ninterface MyAccountData {\n user: MyAccountUser;\n cart: {\n count: number;\n url: string;\n };\n notifications: { count: number };\n hs: { lists?: Array<number> };\n registration: { next_url: string | null };\n links: null | MyAccountLink[];\n urls: {\n forgot_password: string | null;\n logout: string | null;\n login: string | null;\n messages: string | null;\n cart: string | null;\n };\n domains: [\n {\n origin: string;\n domain: string;\n }\n ];\n search: {\n app_id: string;\n api_key: string;\n indeces: [\n {\n index: string;\n name: string;\n domain: string;\n all_group?: boolean;\n filters?: [string];\n }\n ];\n };\n}\n\nconst THRESHOLDLIMIT = 5;\n/**\n * Nanopore digital global navigation and search bar.\n * Incorporates MyAccount / SSO states (messages / cart / user name etc).\n * Incorporates Algolia search.\n * GlobalNav is designed to be at the root of the `<body>`.\n * There should only be one <nano-global-nav> in the DOM.\n * The following demo uses static data.\n * @slot main - main nav items. Should be used with nano-nav-item's\n * @slot icon - nano-nav-item's displayed alongside icon links that come from MyAccount\n * @slot loggedin - nano-nav-item's to display when users are signed in, alongside links from from MyAccount (within the overflow menu panel).\n * @slot about - nano-nav-item's to display with about links that come from MyAccount\n * @slot site - nano-nav-item's to display with site links that come from MyAccount\n * @slot overflow - items to always display in the overflow menu\n * @slot search - when not using myaccount search OR show-search=\"false\" you can utilise the search slot\n * @slot promotion - a free area for any promotional content, displayed within the overflow menu panel\n * @slot logo - when show-logo=\"false\" you can utilise the logo slot\n */\n@Component({\n tag: 'nano-global-nav',\n styleUrl: 'global-nav.scss',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class GlobalNav implements ComponentInterface {\n // position and dimension state\n private io: IntersectionObserver;\n private debounceResize: () => {};\n private debounceSetResizingState: () => {};\n private currSize: number = 0;\n private thresholdsGoingUp: boolean = false;\n\n // menu\n private menuDiv: HTMLElement;\n private menuBtn: HTMLButtonElement;\n private menuWrapDiv: HTMLDivElement;\n private menuContentDiv: HTMLDivElement;\n\n // search\n private searchBarEl: HTMLDivElement;\n private searchInput: HTMLNanoInputElement;\n private algoliaClient: AlgoliaClient;\n private currentIndex: SearchIndex;\n private autocompleteResults: AlgoliaResults | null;\n private autocompleteEles: Array<HTMLAnchorElement | HTMLButtonElement> = [];\n private currAIndex: number = -1;\n private algoliaSearchResults: AlgoliaMultiResults | null;\n private scopeSearch: AlgoliaMultiResults | null;\n\n // general\n private mainBarDiv: HTMLElement;\n private barsDiv: HTMLDivElement;\n private siteContent: HTMLDivElement;\n private userLinkPanel: HTMLDivElement;\n private isLoggedIn: boolean = false;\n\n private myAccData: MyAccountData = null;\n\n // myaccount links\n private aboutNavItms: MyAccountLink[] = [];\n private siteNavItms: MyAccountLink[] = [];\n private loggedInNavItms: MyAccountLink[] = [];\n\n // has slot tests\n private mo?: MutationObserver;\n @State() hasLoggedinSlot: boolean = false;\n @State() hasSiteSlot: boolean = false;\n @State() hasPromotionSlot: boolean = false;\n\n // slot item number tests\n @State() aboutSlotLen: number = 0;\n @State() iconSlotLen: number = 0;\n @State() mainSlotLen: number = 0;\n @State() overflowSlotLen: number = 0;\n @State() searchSlotLen: number = 0;\n\n @State() internalSearchIndeces: Array<SearchIndex> = [];\n @State() thresholdReady: boolean = false;\n @State() remoteDataReady: boolean = false;\n @State() ready: boolean = false;\n @State() isResizing: boolean = false;\n @State() intersectRatio: number;\n @State() threshold: number = THRESHOLDLIMIT;\n @State() modalOpen: boolean = false;\n @State() modalIsOpen: boolean = false;\n @State() searchBarShown: boolean = false;\n @State() scrollingUp: boolean = true;\n @State() searchLoading: boolean = false;\n @State() showAutocomplete: boolean = false;\n @State() secondaryMenuOpen: boolean = false;\n @State() userMenuOpen: boolean = false;\n @State() menuFullScreen: boolean = false;\n @State() searchValInternal: string = '';\n\n @Element() private el: HTMLNanoGlobalNavElement;\n\n /**\n * Connect to local, dev, test or prod MyAccount\n * environments to retrieve global nav / sso data\n */\n @Prop() env: 'local' | 'dev' | 'test' | 'prod' = 'prod';\n\n /**\n * Where to take user after SSO login\n */\n @Prop() ssoRedirect: string = encodeURIComponent(window.location.href);\n\n /**\n * Whether to attempt to get global nav / sso data from MyAccount\n */\n @Prop() getMyAccountData: boolean = true;\n\n /**\n * Active MyAccount link sections. By default all will show.\n */\n @Prop() activeMyAccountSections: (\n | 'about'\n | 'loggedin'\n | 'sites'\n | 'icons'\n )[] = null;\n\n /**\n * Whether to show search functionality\n */\n @Prop() showSearch: boolean = true;\n\n /**\n * Whether to show Nanopore logo\n */\n @Prop() showLogo: boolean = true;\n\n /**\n * The link to put on the logo\n */\n @Prop() logoUrl: string = location.protocol + '//' + location.host;\n\n /**\n * An array of Algolia search indexes (and optional display names). Will be automatically populated from MyAccount\n */\n @Prop() searchIndeces: Array<SearchIndex> = [];\n\n /**\n * Logged in user details automatically populated from MyAccount\n */\n @Prop() myAccountUser: {\n id: string | null;\n name: string | null;\n first_name: string | null;\n last_name: string | null;\n email: string | null;\n company: string | null;\n lifecycle_stage: string | null;\n indirect_customer: boolean;\n } = null;\n\n /**\n * An Algolia App ID key. Will be automatically populated from MyAccount\n */\n @Prop({ mutable: true }) searchAppId: string;\n\n /**\n * An Algolia API Key. Will be automatically populated from MyAccount\n */\n @Prop({ mutable: true }) searchApiKey: string;\n\n /**\n * A search value to passed to Algolia to programatically get or to preload search results\n */\n @Prop({ mutable: true }) searchValue: string = '';\n\n /**\n * Algolia search index to programatically set or to set an initial index\n */\n @Prop({ mutable: true }) searchIndex: string = 'all_prod_en';\n\n /**\n * MyAccount store cart count.\n */\n @Prop({ mutable: true }) cartCount: number = 0;\n\n /**\n * MyAccount undread message count.\n */\n @Prop({ mutable: true }) msgCount: number = 0;\n\n /**\n * Url to the Nanopore store cart. Will default to the url supplied by MyAccount\n */\n @Prop({ mutable: true }) cartUrl: string = null;\n\n /**\n * Url to the Nanopore message center. Will default to the url supplied by MyAccount\n */\n @Prop({ mutable: true }) msgUrl: string = null;\n\n /**\n * Emitted when the global nav is ready.\n */\n @Event() nanoIsReady!: EventEmitter<void>;\n\n /**\n * Emitted when search results are successfully returned from Algolia.\n */\n @Event() nanoSearchResult!: EventEmitter<AloliaSearchResultDetail>;\n\n /**\n * Emitted when algolia returns an error.\n */\n @Event() nanoSearchError!: EventEmitter<AlgoliaNetworkError>;\n\n /**\n * Emitted when search field is cleared.\n */\n @Event() nanoSearchReset!: EventEmitter<AloliaSearchResultDetail>;\n\n /**\n * Submit the search form (a search value must be present)\n */\n @Method()\n async submitSearch() {\n this.onSearchSubmit();\n this.showAutocomplete = false;\n return;\n }\n\n @Watch('searchIndex')\n currentSelectedIndex() {\n if (!this.internalSearchIndeces.length) {\n console.warn('no indexes currently set');\n return;\n }\n\n let foundIndex = this.internalSearchIndeces.find(\n (index) => index.index === this.searchIndex\n );\n\n if (!foundIndex) {\n this.currentIndex = this.internalSearchIndeces[0];\n console.error('index not found');\n return;\n }\n\n this.currentIndex = foundIndex;\n return foundIndex;\n }\n\n @Watch('searchValInternal')\n changeInternalSearchVal() {\n if (this.searchValInternal !== this.searchValue)\n this.searchValue = this.searchValInternal;\n }\n\n // @Watch('searchValue')\n // changeSearchVal() {\n // if (!this.algoliaClient || !this.internalSearchIndeces.length\n // || !this.searchValue.length || !this.searchInput || this.searchValInternal === this.searchValue) return;\n\n // this.searchLoading = true;\n // this.searchInput.value = this.searchValue;\n // }\n\n @Watch('searchApiKey')\n @Watch('searchAppId')\n initAlgoliaClient() {\n if (!this.searchAppId || !this.searchApiKey) return;\n\n this.algoliaClient = algoliasearch(this.searchAppId, this.searchApiKey);\n this.addAlgoliaIndeces();\n }\n\n @Watch('searchIndeces')\n addIndeces() {\n this.internalSearchIndeces = [\n ...this.internalSearchIndeces,\n ...this.searchIndeces,\n ];\n }\n\n @Watch('internalSearchIndeces')\n addAlgoliaIndeces() {\n if (!this.algoliaClient || !this.internalSearchIndeces.length) return;\n\n this.internalSearchIndeces.forEach((searchIndex) => {\n searchIndex.alogliaIndex = this.algoliaClient.initIndex(\n searchIndex.index\n );\n });\n if (!this.searchIndex)\n this.searchIndex = this.internalSearchIndeces[0].index;\n }\n\n @Watch('threshold')\n thresholdChange(newThreshold, oldThreshold) {\n if (newThreshold > oldThreshold) {\n // we've resized to larger screen.\n this.thresholdsGoingUp = true;\n this.setResizingState(true);\n }\n }\n\n /**\n * Primary logic for resizing changes.\n * When content doesn't fit - we loop down through break points until it does\n */\n @Watch('intersectRatio')\n ratioChange() {\n if (this.intersectRatio < 1 && this.threshold > 0) {\n // content doesn't fit\n if (this.thresholdsGoingUp) this.setResizingState(true);\n this.threshold--;\n setTimeout(() => this.ratioChange(), 500);\n } else {\n this.thresholdReady = true;\n // content now fits so add / remove context classes\n // on nav-items depending on whether they're added to bar or burger.\n this.siteContent.style.minHeight = `calc(100% - ${\n this.barsDiv.clientHeight + 1\n }px)`;\n\n let menuItems: Array<Element>, barItems: Array<Element>;\n readTask(() => {\n menuItems = [\n ...Array.from(this.el.querySelectorAll('nano-nav-item[slot=\"site\"]')),\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"overflow\"]')\n ),\n ];\n barItems = [];\n\n if (this.threshold < THRESHOLDLIMIT - 4)\n menuItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"icon\"]')\n )\n );\n else\n barItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"icon\"]')\n )\n );\n\n if (this.threshold < THRESHOLDLIMIT - 3)\n menuItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"loggedin\"]')\n )\n );\n else\n barItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"loggedin\"]')\n )\n );\n\n if (this.threshold < THRESHOLDLIMIT - 2)\n menuItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"main\"]')\n )\n );\n else\n barItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"main\"]')\n )\n );\n\n if (this.threshold < THRESHOLDLIMIT - 1)\n menuItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"about\"]')\n )\n );\n else\n barItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"about\"]')\n )\n );\n });\n\n writeTask(() => {\n menuItems.forEach((item) => {\n item.classList.add('nano-global-nav-menu');\n item.classList.remove('nano-global-nav-bar');\n });\n barItems.forEach((item) => {\n item.classList.remove('nano-global-nav-menu');\n item.classList.add('nano-global-nav-bar');\n });\n });\n }\n }\n\n @Watch('thresholdReady')\n @Watch('remoteDataReady')\n assessReady() {\n if (this.thresholdReady && this.remoteDataReady) {\n this.ready = true;\n }\n }\n\n @Watch('remoteDataReady')\n remoteReady() {\n this.attachIO();\n }\n\n @Watch('ready')\n isReady() {\n this.nanoIsReady.emit();\n }\n\n /**\n * Add / remove events when autocomplete results show / hide.\n */\n @Watch('showAutocomplete')\n setupAutocompleteBlur() {\n this.searchInput.clientWidth; // force reflow\n if (this.showAutocomplete) {\n this.el.shadowRoot.addEventListener('click', this.onAutocompleteBlur);\n this.el.shadowRoot.addEventListener(\n 'keydown',\n this.onAutocompleteInteract\n );\n } else {\n this.el.shadowRoot.removeEventListener('click', this.onAutocompleteBlur);\n this.el.shadowRoot.removeEventListener(\n 'keydown',\n this.onAutocompleteInteract\n );\n }\n }\n\n /**\n * As relevant slotted items change, reset resizing breakpoints\n */\n @Watch('aboutSlotLen')\n @Watch('iconSlotLen')\n @Watch('mainSlotLen')\n @Watch('overflowSlotLen')\n @Watch('searchSlotLen')\n slotChange() {\n this.threshold = THRESHOLDLIMIT;\n }\n\n // General classes for visuals\n\n private thresholdClasses() {\n let classes = [];\n let i = 0;\n for (i; i < this.threshold; i++) classes.push('threshold-' + (i + 1));\n return classes;\n }\n\n /**\n * provides 'isResizing' - we use this to fade content out on 'breakpoint' increase\n * (when the screen size increases). Otherwise the stepping through of\n * breakpoints to calculate if content currently fits shows on screen (looks ugly)\n */\n private setResizingState = (state: boolean = false) => {\n if (typeof this.debounceSetResizingState === 'undefined') {\n this.debounceSetResizingState = debounce(this.setResizingState, 600);\n }\n if (state) {\n this.isResizing = true;\n this.debounceSetResizingState();\n } else {\n this.isResizing = false;\n this.thresholdsGoingUp = false;\n }\n };\n\n // Global DOM Events\n\n private onWindowResize() {\n if (this.threshold < THRESHOLDLIMIT && window.innerWidth > this.currSize) {\n this.threshold = THRESHOLDLIMIT;\n }\n this.currSize = window.innerWidth;\n this.searchBarShown = false;\n }\n\n // Burger / Overflow Menu\n\n // listen to nav-item secondary open / close events primarily for resizing the menu\n @Listen('nanoOpen')\n secondaryOpen(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n this.secondaryMenuOpen = true;\n this.menuContentDiv.style.minHeight =\n (ev.detail as NavItemEventDetail).secondaryMenu.scrollHeight + 'px';\n }\n\n @Listen('nanoClose')\n secondaryClose(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n this.secondaryMenuOpen = false;\n this.menuContentDiv.style.minHeight = '';\n }\n\n private onMenuBtnKeyDown = (ev: KeyboardEvent) => {\n switch (ev.key) {\n case 'Enter':\n case ' ':\n this.modalOpen ? this.menuClose(ev, true) : this.menuOpen();\n break;\n }\n };\n\n private onMenuBtnClick = (ev: MouseEvent) => {\n this.menuClose(ev, true);\n };\n\n private menuOpen = (e?: MouseEvent) => {\n if (e) e.preventDefault();\n\n this.menuDiv.style.display = 'block';\n // need to open menu in stages\n // wait for re-flow after changing display\n // wait for repaint after animate, then focus\n\n this.menuDiv.clientWidth; // force reflow\n\n this.modalOpen = true;\n this.modalIsOpen = true;\n this.menuWrapDiv.addEventListener('focusout', this.menuClose);\n\n this.menuDiv.clientWidth; // force reflow\n\n this.menuWrapDiv.focus({ preventScroll: true });\n if (\n this.threshold < 2 ||\n this.menuWrapDiv.scrollHeight > window.innerHeight\n ) {\n document.body.style.overflow = 'hidden';\n this.menuFullScreen = true;\n } else document.body.style.overflowX = 'hidden';\n };\n\n private onMenuHidden = () => {\n this.menuDiv.removeEventListener('transitionend', this.onMenuHidden);\n this.menuWrapDiv.removeEventListener('focusout', this.menuClose);\n\n document.body.style.overflow = '';\n this.menuDiv.style.display = 'none';\n this.modalIsOpen = false;\n this.menuFullScreen = false;\n\n setTimeout(() => {\n if (document.activeElement === document.body && this.menuBtn)\n this.mainBarDiv.focus({ preventScroll: true });\n }, 50);\n };\n\n private menuClose = (\n ev?: FocusEvent | MouseEvent | KeyboardEvent | TouchEvent,\n force: boolean = false\n ) => {\n if (!force) {\n let e = ev as FocusEvent;\n if (\n e &&\n e.relatedTarget &&\n closestElement('#global-nav-menu', e.relatedTarget as HTMLElement)\n )\n return;\n if (\n e &&\n e.relatedTarget &&\n (e.relatedTarget as HTMLElement).closest('#global-nav-menu')\n )\n return;\n if (\n e &&\n e.relatedTarget &&\n (e.relatedTarget as HTMLElement).closest('[slot=\"promotion\"]')\n )\n return;\n if (this.secondaryMenuOpen) return;\n }\n\n this.modalOpen = false;\n this.menuDiv.addEventListener('transitionend', this.onMenuHidden);\n };\n\n private subMenuClose = (ev?: MouseEvent) => {\n ev.preventDefault();\n (ev.target as HTMLNanoNavItemElement).closest('nano-nav-item').open = false;\n };\n\n // User profile menu\n\n private onUserBtnClick = (ev: MouseEvent) => {\n ev.preventDefault();\n this.userMenuOpen = !this.userMenuOpen;\n };\n\n private onUserBtnKeyDown = (ev: KeyboardEvent) => {\n switch (ev.key) {\n case 'Enter':\n case ' ':\n this.userMenuOpen = !this.userMenuOpen;\n break;\n }\n };\n\n private onUserMenuBlur = (ev: FocusEvent) => {\n if (!ev.relatedTarget) {\n this.userMenuOpen = false;\n return;\n }\n if (!!(ev.relatedTarget as HTMLElement).closest('.user-links-panel'))\n return false;\n this.userMenuOpen = false;\n };\n\n @Watch('userMenuOpen')\n async handleUserMenu() {\n await displayTransition(this.userLinkPanel, 'show', this.userMenuOpen);\n if (this.userMenuOpen) {\n this.userLinkPanel.focus();\n this.userLinkPanel.addEventListener('focusout', this.onUserMenuBlur);\n } else {\n this.userLinkPanel.removeEventListener('focusout', this.onUserMenuBlur);\n this.el.focus();\n }\n }\n\n // Search bar (smaller screens / mobile)\n\n private onSearchBtnClick = (ev: MouseEvent) => {\n ev.preventDefault();\n if (!this.searchBarShown) this.searchbarShow();\n else this.searchbarHide();\n };\n\n private onSearchBtnKeyDown = (ev: KeyboardEvent) => {\n switch (ev.key) {\n case 'Enter':\n case ' ':\n this.searchBarShown ? this.searchbarHide() : this.searchbarShow();\n break;\n }\n };\n\n private searchbarShow() {\n this.searchBarShown = true;\n this.searchBarEl.addEventListener('transitionend', this.onSearchBarShown);\n this.searchBarEl.style.display = 'block';\n\n setTimeout(() => {\n this.searchBarEl.style.height =\n this.searchBarEl.querySelector('.search-widget').scrollHeight + 'px';\n }, 50);\n }\n\n private onSearchBarShown = () => {\n this.searchBarEl.removeEventListener(\n 'transitionend',\n this.onSearchBarShown\n );\n if (this.searchInput) this.searchInput.setFocus();\n this.searchBarEl.style.overflow = 'visible';\n };\n\n private searchbarHide = (ev?: FocusEvent) => {\n if (\n ev &&\n ev.relatedTarget &&\n (ev.relatedTarget as HTMLElement).closest('#global-nav-search-bar')\n )\n return;\n this.showAutocomplete = false;\n if (this.searchValInternal.length && ev) return;\n\n this.searchBarEl.addEventListener('transitionend', this.onSearchBarHidden);\n this.searchBarEl.style.overflow = 'hidden';\n this.searchBarEl.style.height = '0px';\n };\n\n private onSearchBarHidden = () => {\n this.searchBarEl.removeEventListener(\n 'transitionend',\n this.onSearchBarHidden\n );\n this.searchBarEl.style.display = 'none';\n this.searchBarShown = false;\n };\n\n // Algolia search\n\n private autocompleteSnippet(hit: AlgoliaResultHit) {\n let lookFor = ['title']; // , 'body'\n if (hit._snippetResult) {\n let found = lookFor.find(\n (prop) =>\n hit._snippetResult[prop] &&\n hit._snippetResult[prop].matchLevel !== 'none'\n );\n\n if (found) {\n if (found !== 'title')\n return (\n (hit.title.length > 15\n ? hit.title.substring(0, 15) + ' ...'\n : hit.title) +\n ' ' +\n hit._snippetResult[found].value\n );\n else return hit._snippetResult['title'].value;\n }\n }\n return hit.title;\n }\n\n private onSearchInput = (ev: CustomEvent<KeyboardEvent>) => {\n this.showAutocomplete = false;\n this.searchValInternal = this.searchInput.value;\n\n if (!this.isSearchValSet()) {\n this.searchLoading = false;\n return;\n }\n this.searchLoading = true;\n\n switch (ev.detail.key) {\n case 'Enter':\n this.onSearchSubmit();\n break;\n }\n };\n\n private onSearchChange = async (ev?: CustomEvent<InputChangeEventDetail>) => {\n this.searchValInternal = this.searchValue = ev\n ? ev.detail.value\n : this.searchValInternal;\n this.showAutocomplete = false;\n this.autocompleteResults = null;\n\n if (!this.isSearchValSet()) {\n if (!this.searchValInternal.length) {\n this.nanoSearchReset.emit();\n }\n this.searchLoading = false;\n return;\n }\n if (!this.currentIndex) this.currentSelectedIndex();\n\n try {\n this.autocompleteResults = this.processSearchResults(\n (await this.currentIndex.alogliaIndex.search(this.searchValInternal, {\n attributesToSnippet: ['body:5', 'title:8'],\n hitsPerPage: 5,\n filters: 'created > ' + Math.floor((Date.now() - 63115200000) / 1000), // only get last 2 years\n })) as any\n ) as AlgoliaResults;\n } catch (e) {\n console.error(e);\n }\n\n this.scopeSearch = null;\n this.scopeSearch = await this.onSearchSubmit(null, false);\n\n this.searchLoading = false;\n this.showAutocompleteResults();\n };\n\n private onSearchSubmit = async (ev?, emit: boolean = true) => {\n if (ev) ev.preventDefault();\n if (!this.isSearchValSet()) return;\n this.searchLoading = true;\n this.algoliaSearchResults = null;\n\n let queries = this.internalSearchIndeces.map((index) => {\n return {\n indexName: index.index,\n query: this.searchValInternal,\n facets: index.filters,\n hitsPerPage: 10,\n filters: 'created > ' + Math.floor((Date.now() - 63115200000) / 1000), // only get last 2 years\n };\n });\n\n try {\n this.algoliaSearchResults = this.processSearchResults(\n (await this.algoliaClient.multipleQueries(queries)) as any\n ) as AlgoliaMultiResults;\n } catch (e) {\n this.nanoSearchError.emit(e as AlgoliaNetworkError);\n }\n this.searchLoading = false;\n if (!this.algoliaSearchResults) return;\n\n this.algoliaSearchResults.results.map((result, i) => {\n result.indexName = this.internalSearchIndeces[i].name;\n result.selected =\n this.currentIndex.name === this.internalSearchIndeces[i].name;\n result.domain = this.currentIndex.domain || null;\n result.domains = this.myAccData.domains || null;\n result.allGroup = !!this.internalSearchIndeces[i].allGroup;\n result.filters = this.internalSearchIndeces[i].filters;\n });\n\n if (emit) {\n this.nanoSearchResult.emit({\n results: this.algoliaSearchResults.results,\n client: { apiKey: this.searchApiKey, appId: this.searchAppId },\n });\n this.showAutocomplete = false;\n }\n return this.algoliaSearchResults;\n };\n\n private onSearchIndexChange = async (\n index: CustomEvent<SelectChangeEventDetail> | string\n ) => {\n let ev = index as CustomEvent<SelectChangeEventDetail>;\n let indexStr = index as string;\n\n if (!this.currentIndex) this.currentSelectedIndex();\n\n if (ev.detail && ev.detail.value.length)\n indexStr = ev.detail.value as string;\n if (!indexStr || !indexStr.length) return;\n if (this.currentIndex.index === indexStr) return;\n\n let selectedIndex = this.internalSearchIndeces.find(\n (index) => index.index === indexStr\n );\n if (!selectedIndex || !selectedIndex.alogliaIndex) return;\n\n this.searchIndex = selectedIndex.index;\n if (this.isSearchValSet()) await this.onSearchChange();\n };\n\n private isSearchValSet() {\n if (this.searchValInternal.length < 3) return false;\n return true;\n }\n\n private switchIndexSubmit = async (index: string) => {\n if (this.isSearchValSet()) {\n await this.onSearchIndexChange(index);\n this.onSearchSubmit();\n } else this.onSearchIndexChange(index);\n };\n\n // Autocomplete\n\n @Watch('showAutocomplete')\n resetHitFocus() {\n this.currAIndex = -1;\n }\n\n private onAutocompleteBlur = (ev: MouseEvent) => {\n if (!this.showAutocomplete || !this.autocompleteResults) return;\n if (ev && ev.target && (ev.target as HTMLElement).closest('.search-widget'))\n return;\n this.showAutocomplete = false;\n };\n\n private showAutocompleteResults = () => {\n if (!this.autocompleteResults || !this.autocompleteResults.hits) return;\n this.showAutocomplete = true;\n };\n\n private setActiveElement(\n autocompleteEle: HTMLAnchorElement | HTMLButtonElement\n ) {\n this.autocompleteEles.map((ele) =>\n ele.setAttribute('aria-selected', 'false')\n );\n autocompleteEle.focus({ preventScroll: true });\n autocompleteEle.setAttribute('aria-selected', 'true');\n }\n\n private onAutocompleteInteract = (ev: KeyboardEvent) => {\n // list open, navigate items with arrows\n if (!this.showAutocomplete || !this.autocompleteResults) return;\n let testIndex = this.currAIndex;\n\n switch (ev.key) {\n case 'Tab':\n setTimeout(() => {\n if (\n !this.el.shadowRoot.activeElement ||\n !this.el.shadowRoot.activeElement.closest('.search-widget')\n ) {\n this.showAutocomplete = false;\n return;\n } else {\n let found = this.autocompleteEles.find((ele, i) => {\n if (ele === this.el.shadowRoot.activeElement) {\n this.currAIndex = i;\n return true;\n }\n });\n if (found) this.setActiveElement(found);\n else this.currAIndex = -1;\n }\n });\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n if (ev.key === 'ArrowDown') testIndex++;\n else if (ev.key === 'ArrowUp') testIndex--;\n\n let found = this.autocompleteEles[testIndex];\n if (\n found ||\n testIndex < 0 ||\n testIndex > this.autocompleteEles.length - 1\n )\n ev.preventDefault();\n this.searchInput.clientWidth; // force reflow\n\n if (found) {\n this.setActiveElement(found);\n this.currAIndex = testIndex;\n } else if (testIndex < 0) {\n this.searchInput.setFocus();\n this.currAIndex = -1;\n }\n break;\n case 'Enter':\n case ' ':\n if (this.autocompleteEles[this.currAIndex]) {\n this.autocompleteEles[this.currAIndex].click();\n }\n break;\n }\n };\n\n // Various.\n\n /**\n * Assesses what content is present in which slots\n */\n private assessSlottedContent() {\n readTask(() => {\n this.hasSiteSlot = !!this.el.querySelectorAll('[slot=\"site\"]').length;\n this.hasLoggedinSlot =\n !!this.el.querySelectorAll('[slot=\"loggedin\"]').length;\n this.hasPromotionSlot =\n !!this.el.querySelectorAll('[slot=\"promotion\"]').length;\n\n this.aboutSlotLen = this.el.querySelectorAll('[slot=\"about\"]').length;\n this.iconSlotLen = this.el.querySelectorAll('[slot=\"icon\"]').length;\n this.mainSlotLen = this.el.querySelectorAll('[slot=\"main\"]').length;\n this.overflowSlotLen =\n this.el.querySelectorAll('[slot=\"overflow\"]').length;\n this.searchSlotLen = this.el.querySelectorAll('[slot=\"search\"]').length;\n });\n }\n\n /**\n * Attach the IntersectionObserver - from which all threshold / breakpoint logic hinges\n */\n private attachIO() {\n if (this.io) return;\n let root = this.el.shadowRoot.querySelector('.global-nav .main-bar');\n if (\n Build.isBrowser &&\n typeof window !== 'undefined' &&\n (window as any).IntersectionObserver &&\n !!root\n ) {\n const io = (this.io = new (window as any).IntersectionObserver(\n (data: IntersectionObserverEntry[]) => {\n this.intersectRatio = data.slice(-1)[0].intersectionRatio;\n },\n { root, threshold: 1 }\n ));\n io.observe(root.querySelector('.measure-ele'));\n }\n }\n\n // Stencil Lifecycle / Rendering\n\n componentDidLoad() {\n if (Build.isBrowser) {\n this.debounceResize = debounce(this.onWindowResize.bind(this), 300);\n\n window.addEventListener('resize', this.debounceResize);\n this.currSize = window.innerWidth;\n }\n\n this.initAlgoliaClient();\n this.addAlgoliaIndeces();\n if (this.remoteDataReady) this.attachIO();\n }\n\n componentWillLoad() {\n ComponentStore.init(\n this,\n ['searchIndex', 'searchValue'],\n 'url-hash',\n 'gns'\n );\n\n if (\n Build.isBrowser &&\n typeof window !== 'undefined' &&\n (window as any).MutationObserver\n ) {\n const mo = (this.mo = new MutationObserver(() => {\n this.assessSlottedContent();\n }));\n mo.observe(this.el, { childList: true, subtree: false });\n }\n this.assessSlottedContent();\n }\n\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n if (this.mo) {\n this.mo.disconnect();\n this.mo = undefined;\n }\n if (Build.isBrowser)\n window.removeEventListener('resize', this.debounceResize);\n }\n\n async connectedCallback() {\n this.getMyAccData();\n }\n\n // Render output\n\n private autocompleteList(): VNode {\n let content;\n if (this.showAutocomplete && this.scrollingUp) {\n let currentScopeHits = 0;\n let scopeChangeSuggestions = 0;\n\n let scopeSuggestReducer = (total: number, result: AlgoliaMultiResult) => {\n return result.index !== this.currentIndex.index\n ? total + result.hits.length\n : total;\n };\n let currentSuggestReducer = (\n total: number,\n result: AlgoliaMultiResult\n ) => {\n return result.index === this.currentIndex.index\n ? total + result.hits.length\n : total;\n };\n\n if (this.scopeSearch) {\n scopeChangeSuggestions = this.scopeSearch.results.reduce(\n scopeSuggestReducer,\n 0\n );\n currentScopeHits = this.scopeSearch.results.reduce(\n currentSuggestReducer,\n 0\n );\n }\n\n if (\n (this.autocompleteResults && this.autocompleteResults.hits.length) ||\n (scopeChangeSuggestions && !currentScopeHits)\n ) {\n let scopeSuggestions = 0;\n\n content = (\n <div>\n {!currentScopeHits && (\n <div class=\"search-autocomplete-hit search-autocomplete-hit--no-result\">\n No results matching '{this.searchValInternal}' were found in{' '}\n <strong>{this.currentIndex.name}</strong>. Try another phrase.\n </div>\n )}\n {this.autocompleteResults && [\n this.autocompleteResults.hits.map((hit, i) => {\n return (\n <a\n role=\"option\"\n ref={(a) => this.autocompleteEles.push(a)}\n tabindex=\"-1\"\n id={'autocomplete-hit-' + i}\n href={hit.url}\n class=\"search-autocomplete-hit\"\n innerHTML={this.autocompleteSnippet(hit)}\n ></a>\n );\n }),\n ]}\n {(!currentScopeHits || this.currentIndex.allGroup) &&\n this.scopeSearch &&\n this.scopeSearch.results && [\n this.scopeSearch.results.map((result, i) => {\n if (\n !result.hits.length ||\n result.index === this.currentIndex.index ||\n scopeSuggestions > 1\n )\n return;\n scopeSuggestions++;\n return (\n <button\n role=\"option\"\n ref={(button) => this.autocompleteEles.push(button)}\n tabindex=\"-1\"\n id={'autocomplete-scope-' + i}\n class=\"search-autocomplete-hit\"\n onClick={() => this.switchIndexSubmit(result.index)}\n onMouseDown={() => this.switchIndexSubmit(result.index)}\n >\n \"{this.searchValInternal}\"{' '}\n <div class=\"search-autocomplete-hit-scope\">\n in {result.indexName}\n </div>\n </button>\n );\n }),\n ]}\n {!!currentScopeHits && (\n <div class=\"search-autocomplete-foot\">\n <button\n role=\"option\"\n class=\"search-autocomplete-submit\"\n ref={(button) => this.autocompleteEles.push(button)}\n id={'autocomplete-foot'}\n onClick={this.onSearchSubmit}\n onMouseDown={this.onSearchSubmit}\n >\n View all results\n </button>\n </div>\n )}\n </div>\n );\n } else if (!currentScopeHits) {\n content = (\n <div class=\"search-autocomplete-hit search-autocomplete-hit--no-result\">\n No results matching '{this.searchValInternal}' were found. Try\n another phrase.\n </div>\n );\n }\n }\n\n return (\n <div\n class=\"search-autocomplete\"\n role=\"listbox\"\n id=\"autocomplete-results\"\n aria-expanded={this.showAutocomplete ? 'true' : 'false'}\n hidden={!this.showAutocomplete}\n >\n {content}\n </div>\n );\n }\n\n private searchWidget(): VNode[] {\n return [\n <form\n class=\"search-inputs\"\n onSubmit={this.onSearchSubmit}\n id=\"global-nav-search\"\n >\n <nano-select\n class=\"search-input\"\n label=\"Which area of content would you like to search?\"\n hideLabel={true}\n showInlineError={false}\n value={this.searchIndex}\n onNanoChange={this.onSearchIndexChange}\n mask={true}\n >\n {this.internalSearchIndeces.map((index) => {\n return (\n <option\n selected={index.index === this.searchIndex}\n value={index.index}\n >\n {index.name || index.index}\n </option>\n );\n })}\n <nano-icon name=\"solid/caret-down\" slot=\"icon\"></nano-icon>\n </nano-select>\n <nano-input\n class=\"search-input\"\n label=\"What would you like to search for?\"\n aria-label=\"What would you like to search for?\"\n hideLabel={true}\n showInlineError={false}\n clear-input\n placeholder=\"Search...\"\n type=\"text\"\n ref={(input) => (this.searchInput = input)}\n onNanoChange={this.onSearchChange}\n onNanoInput={this.onSearchInput}\n debounce={500}\n aria-autocomplete=\"list\"\n aria-activedescendant={\n this.autocompleteEles[this.currAIndex]\n ? this.autocompleteEles[this.currAIndex].id\n : false\n }\n aria-controls=\"autocomplete-results\"\n onNanoFocus={this.showAutocompleteResults}\n value={this.searchValue}\n role=\"textbox\"\n >\n <span\n class={{\n 'search-icon': true,\n 'search-icon--search': true,\n 'search-icon--show': !this.searchValInternal.length,\n }}\n slot=\"inline-button\"\n >\n <nano-icon name=\"light/search\"></nano-icon>\n </span>\n <span\n class={{\n 'search-icon': true,\n 'search-icon--loader': true,\n 'search-icon--show': this.searchLoading,\n }}\n slot=\"inline-button\"\n >\n <nano-icon name=\"light/spinner-third\"></nano-icon>\n </span>\n </nano-input>\n <input type=\"submit\" />\n </form>,\n ];\n }\n\n render() {\n this.autocompleteEles = [];\n let isRtl = (this.el.ownerDocument as Document).dir === 'rtl';\n\n let searchWidget = this.searchWidget();\n searchWidget.push(this.autocompleteList());\n\n return (\n <Host\n class={{\n [this.thresholdClasses().join(' ')]: true,\n ready: this.ready,\n 'search-bar-shown': this.searchBarShown && this.scrollingUp,\n 'search-auto-complete-shown':\n this.showAutocomplete && this.scrollingUp,\n 'modal-open': this.modalIsOpen,\n resizing: this.isResizing,\n }}\n dir={isRtl ? 'rtl' : null}\n >\n <div\n class={{\n 'global-nav': true,\n 'scrolling-down': !this.scrollingUp,\n }}\n >\n <nav\n id=\"global-nav-menu\"\n class={{\n menu: true,\n open: this.modalOpen,\n 'has-promotion': this.hasPromotionSlot,\n 'menu-full-screen': this.menuFullScreen,\n 'secondary-open': this.secondaryMenuOpen,\n }}\n aria-expanded={this.modalOpen ? 'true' : 'false'}\n ref={(div) => (this.menuDiv = div)}\n >\n <div\n class=\"menu_wrap\"\n ref={(div) => (this.menuWrapDiv = div)}\n tabindex=\"-1\"\n >\n <div class=\"menu_actions\">\n <button\n class=\"menu-btn icon-btn icon-btn\"\n onMouseDown={this.onMenuBtnClick}\n onKeyDown={this.onMenuBtnKeyDown}\n >\n {this.threshold < THRESHOLDLIMIT - 3 && (\n <nano-icon\n name=\"light/times\"\n aria-label=\"close menu\"\n ></nano-icon>\n )}\n {this.threshold >= THRESHOLDLIMIT - 3 && (\n <nano-icon\n name=\"light/bars\"\n aria-label=\"close menu\"\n ></nano-icon>\n )}\n </button>\n\n {this.threshold < THRESHOLDLIMIT - 4 && [\n !!this.iconSlotLen && <slot name=\"icon\" />,\n this.myAccData &&\n (!this.activeMyAccountSections ||\n this.activeMyAccountSections.includes('icons')) && [\n this.msgUrl && (\n <a href={this.msgUrl} class=\"icon-btn\">\n <nano-icon name=\"light/bell\"></nano-icon>\n {this.msgCount > 0 && (\n <span class=\"menu_actions-counter\">\n {this.msgCount}\n </span>\n )}\n </a>\n ),\n this.cartUrl && (\n <a href={this.cartUrl} class=\"icon-btn\">\n <nano-icon name=\"light/shopping-cart\"></nano-icon>\n {this.cartCount > 0 && (\n <span class=\"menu_actions-counter\">\n {this.cartCount}\n </span>\n )}\n </a>\n ),\n ],\n ]}\n\n {this.myAccData && this.myAccData.urls.login && (\n <a\n href={this.myAccData.urls.login + this.ssoRedirect}\n class=\"login-btn\"\n >\n Login / Register{' '}\n <nano-icon name=\"solid/chevron-right\"></nano-icon>\n </a>\n )}\n </div>\n\n <div\n class=\"content-wrap\"\n ref={(div) => (this.menuContentDiv = div)}\n >\n <div class=\"content\">\n <nav class=\"nav-links nav-links--main\">\n <slot name=\"overflow\" />\n {this.threshold < THRESHOLDLIMIT - 2 &&\n !!this.mainSlotLen && <slot name=\"main\" />}\n </nav>\n\n {(((!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold < THRESHOLDLIMIT) ||\n this.hasSiteSlot ||\n !!this.siteNavItms.length) && (\n <div>\n {(!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold < THRESHOLDLIMIT && [\n (this.threshold >= THRESHOLDLIMIT - 2 ||\n this.mainSlotLen < 2) &&\n this.overflowSlotLen < 2 && (\n <div class=\"nav-links-wrap\">\n {!!this.aboutNavItms.length && (\n <h4 class=\"nav-links_title\">About</h4>\n )}\n <nav\n class=\"nav-links nav-links--sub\"\n aria-label=\"About the company links\"\n >\n <slot name=\"about\" />\n\n {this.aboutNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={link.address}\n target={link.target}\n >\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n </nav>\n </div>\n ),\n ((this.threshold < THRESHOLDLIMIT - 2 &&\n this.mainSlotLen >= 2) ||\n this.overflowSlotLen >= 2) && (\n <nav\n class=\"nav-links\"\n aria-label=\"About the company links\"\n >\n {!this.aboutNavItms.length && (\n <slot name=\"about\" />\n )}\n {!!this.aboutNavItms.length && (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n Company\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-right\"\n ></nano-icon>\n <div slot=\"secondary\">\n <div class=\"content\">\n <button\n class=\"back-btn\"\n onClick={this.subMenuClose}\n >\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-left\"\n aria-label=\"go back\"\n ></nano-icon>\n Company\n </button>\n <slot name=\"about\" />\n <div class=\"content--sub\">\n {this.aboutNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={link.address}\n target={link.target}\n >\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n </div>\n </div>\n </div>\n </nano-nav-item>\n )}\n </nav>\n ),\n ]}\n\n {(this.hasSiteSlot || !!this.siteNavItms.length) && [\n (this.threshold >= THRESHOLDLIMIT - 2 ||\n this.mainSlotLen < 2) &&\n this.overflowSlotLen < 2 && (\n <div class=\"nav-links-wrap\">\n <h4 class=\"nav-links_title\">Sites</h4>\n <nav\n class=\"nav-links nav-links--sub\"\n aria-label=\"Different company site links\"\n >\n <slot name=\"site\" />\n {this.siteNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={link.address}\n target={link.target}\n >\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n </nav>\n </div>\n ),\n ((this.threshold < THRESHOLDLIMIT - 2 &&\n this.mainSlotLen >= 2) ||\n this.overflowSlotLen >= 2) && (\n <nav\n class=\"nav-links\"\n aria-label=\"Different company site links\"\n >\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n Sites\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-right\"\n ></nano-icon>\n <div slot=\"secondary\">\n <div class=\"content\">\n <button\n class=\"back-btn\"\n onClick={this.subMenuClose}\n >\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-left\"\n aria-label=\"go back\"\n ></nano-icon>\n Sites\n </button>\n <div class=\"content--sub\">\n <slot name=\"site\" />\n {this.siteNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={link.address}\n target={link.target}\n >\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n </div>\n </div>\n </div>\n </nano-nav-item>\n </nav>\n ),\n ]}\n </div>\n )}\n </div>\n\n {this.isLoggedIn &&\n this.threshold < THRESHOLDLIMIT - 3 &&\n (this.loggedInNavItms.length || this.hasLoggedinSlot) && (\n <nav class=\"nav-links\" aria-label=\"Your user account links\">\n <nano-nav-item class=\"nano-global-nav user-nav nano-global-nav-menu\">\n {this.myAccountUser.name}\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-right\"\n ></nano-icon>\n <div slot=\"secondary\">\n <div class=\"content\">\n <button\n class=\"back-btn\"\n onClick={this.subMenuClose}\n >\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-left\"\n aria-label=\"go back\"\n ></nano-icon>\n {this.myAccountUser.name}\n </button>\n <div class=\"content--sub\">\n <slot name=\"loggedin\" />\n {this.loggedInNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a href={link.address} target={link.target}>\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={\n this.myAccData.urls.forgot_password +\n this.ssoRedirect\n }\n >\n Change Password\n </a>\n </nano-nav-item>\n </div>\n </div>\n </div>\n </nano-nav-item>\n </nav>\n )}\n\n <slot name=\"promotion\" />\n\n {this.myAccData && this.myAccData.urls.logout && (\n <div class=\"login-btn logout-btn\">\n <a href={this.myAccData.urls.logout + this.ssoRedirect}>\n Logout\n </a>\n </div>\n )}\n </div>\n </div>\n </nav>\n <nano-sticker\n auto-resize=\"false\"\n break-point-max=\"800\"\n quietMode={{ h: 600, w: 800 }}\n >\n <div class=\"bars\" ref={(div) => (this.barsDiv = div)}>\n <nav\n class=\"main-bar\"\n aria-label=\"Main site navigation\"\n tabindex=\"-1\"\n ref={(div) => (this.mainBarDiv = div)}\n >\n {(this.hasPromotionSlot ||\n !!this.overflowSlotLen ||\n ((this.myAccData || !!this.iconSlotLen) &&\n this.threshold < THRESHOLDLIMIT - 4) ||\n (this.isLoggedIn &&\n (!!this.loggedInNavItms.length || this.hasLoggedinSlot) &&\n this.threshold < THRESHOLDLIMIT - 3) ||\n (!!this.mainSlotLen && this.threshold < THRESHOLDLIMIT - 2) ||\n ((!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold < THRESHOLDLIMIT) ||\n this.hasSiteSlot ||\n !!this.siteNavItms.length) && (\n <button\n class=\"menu-btn icon-btn\"\n onMouseDown={this.menuOpen}\n onKeyDown={this.onMenuBtnKeyDown}\n aria-expanded={this.modalOpen ? 'true' : 'false'}\n aria-controls=\"global-nav-menu\"\n ref={(btn) => (this.menuBtn = btn)}\n >\n <nano-icon\n name=\"light/bars\"\n aria-label=\"open menu\"\n ></nano-icon>\n </button>\n )}\n\n {this.showLogo && (\n <a href={this.logoUrl} class=\"logo-link\">\n <img\n src={getAssetPath(`./assets/ont-logo.svg`)}\n alt=\"Oxford Nanopore Technologies Logo\"\n class=\"logo\"\n />\n </a>\n )}\n {!this.showLogo && (\n <div class=\"logo-link\">\n <slot name=\"logo\" />\n </div>\n )}\n\n <div\n class=\"nav-links nav-links--main\"\n hidden={\n !(\n this.threshold >= THRESHOLDLIMIT - 2 && !!this.mainSlotLen\n )\n }\n >\n <slot name=\"main\" />\n </div>\n\n {this.threshold >= THRESHOLDLIMIT - 1 && [\n this.showSearch && !!this.internalSearchIndeces.length && (\n <div\n class=\"search-widget\"\n role=\"combobox\"\n aria-owns=\"autocomplete-results\"\n aria-expanded={\n this.showAutocomplete && this.autocompleteResults\n ? 'true'\n : 'false'\n }\n >\n {searchWidget}\n </div>\n ),\n (!this.showSearch || !this.myAccData) &&\n !!this.searchSlotLen && <slot name=\"search\" />,\n ]}\n\n {(this.threshold >= THRESHOLDLIMIT - 1 ||\n !this.showSearch ||\n !this.internalSearchIndeces.length) && (\n <nav\n class=\"nav-links nav-links--sub\"\n aria-label=\"About the company links\"\n >\n {(!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold === THRESHOLDLIMIT && [\n <slot name=\"about\" />,\n this.aboutNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-bar\">\n <a href={link.address} target={link.target}>\n {link.title}\n </a>\n </nano-nav-item>\n );\n }),\n ]}\n </nav>\n )}\n\n {this.threshold < THRESHOLDLIMIT - 1 &&\n ((this.showSearch && !!this.internalSearchIndeces.length) ||\n !!this.searchSlotLen) && (\n <button\n class=\"icon-btn\"\n aria-controls=\"global-nav-search-bar\"\n aria-expanded={this.searchBarShown ? 'true' : 'false'}\n onMouseDown={this.onSearchBtnClick}\n onKeyDown={this.onSearchBtnKeyDown}\n >\n <nano-icon name=\"light/search\"></nano-icon>\n </button>\n )}\n\n {this.threshold >= THRESHOLDLIMIT - 4 && [\n !!this.iconSlotLen && <slot name=\"icon\" />,\n this.myAccData &&\n (!this.activeMyAccountSections ||\n this.activeMyAccountSections.includes('icons')) && [\n this.msgUrl && (\n <a href={this.msgUrl} class=\"icon-btn\">\n <nano-icon name=\"light/bell\"></nano-icon>\n {this.msgCount > 0 && (\n <span class=\"menu_actions-counter\">\n {this.msgCount}\n </span>\n )}\n </a>\n ),\n this.cartUrl && (\n <a href={this.cartUrl} class=\"icon-btn\">\n <nano-icon name=\"light/shopping-cart\"></nano-icon>\n {this.cartCount > 0 && (\n <span class=\"menu_actions-counter\">\n {this.cartCount}\n </span>\n )}\n </a>\n ),\n ],\n ]}\n\n {this.myAccData &&\n this.threshold >= THRESHOLDLIMIT - 3 && [\n this.myAccData.urls.login && (\n <a\n href={this.myAccData.urls.login + this.ssoRedirect}\n class=\"login-btn\"\n >\n Login / Register\n </a>\n ),\n this.myAccountUser && (\n <div class=\"user-links\">\n <button\n class={{\n 'icon-btn': true,\n 'user-links-btn': true,\n open: this.userMenuOpen,\n }}\n onMouseDown={this.onUserBtnClick}\n onKeyDown={this.onUserBtnKeyDown}\n >\n {' '}\n {this.myAccountUser.name}\n <nano-icon name=\"solid/caret-down\"></nano-icon>\n </button>\n <div\n class=\"user-links-panel\"\n tabindex=\"-1\"\n ref={(div) => (this.userLinkPanel = div)}\n >\n <div class=\"user-links-panel-content\">\n {this.loggedInNavItms.map((link) => {\n return (\n <a href={link.address} target={link.target}>\n {link.title}\n </a>\n );\n })}\n </div>\n <div class=\"user-links-panel-foot\">\n <a\n href={\n this.myAccData.urls.forgot_password +\n this.ssoRedirect\n }\n >\n Change Password\n </a>\n <a\n href={\n this.myAccData.urls.logout + this.ssoRedirect\n }\n >\n Logout\n </a>\n </div>\n </div>\n </div>\n ),\n ]}\n <span class=\"measure-ele\"></span>\n </nav>\n\n {this.threshold < THRESHOLDLIMIT - 1 && (\n <div\n id=\"global-nav-search-bar\"\n class={{\n 'search-bar': true,\n show: this.searchBarShown,\n }}\n aria-expanded={this.searchBarShown ? 'true' : 'false'}\n role=\"region\"\n tabindex=\"-1\"\n ref={(div) => (this.searchBarEl = div)}\n >\n <div class=\"search-widget\">\n {this.showSearch && !!this.internalSearchIndeces.length && (\n <div>{searchWidget}</div>\n )}\n {(!this.showSearch || !this.myAccData) &&\n !!this.searchSlotLen && <slot name=\"search\" />}\n </div>\n </div>\n )}\n </div>\n </nano-sticker>\n\n {(this.threshold < THRESHOLDLIMIT - 3 || this.menuFullScreen) && (\n <div\n class={{\n mask: true,\n open: this.modalOpen,\n }}\n onClick={this.menuClose}\n onTouchEnd={this.menuClose}\n ></div>\n )}\n </div>\n <div class=\"site-content\" ref={(div) => (this.siteContent = div)}>\n <slot />\n </div>\n </Host>\n );\n }\n\n // Data processing\n\n private domainFor(origin: string): string {\n if (!this.myAccData) return '';\n let domain = this.myAccData.domains.find((dm) => dm.origin === origin);\n return domain ? domain.domain : '';\n }\n\n private processSearchResults(results: AlgoliaMultiResults | AlgoliaResults) {\n let multiResults = results as AlgoliaMultiResults;\n let singleResult = results as AlgoliaResults;\n\n if (multiResults.results) {\n multiResults.results.forEach((result, i) => {\n multiResults.results[i] = this.processSearchResults(\n result\n ) as AlgoliaResults;\n });\n return multiResults;\n } else {\n singleResult.hits.map((hit) => {\n if (hit.url && !hit.url.match(/^http/))\n hit.url =\n location.protocol + '//' + this.domainFor(hit.origin) + hit.url;\n });\n return singleResult;\n }\n }\n\n private async getMyAccData() {\n if (!this.getMyAccountData || this.myAccData) {\n this.remoteDataReady = true;\n return;\n }\n\n let url;\n switch (this.env) {\n case 'local':\n url = 'http://my-account.local:3000/';\n break;\n case 'dev':\n url = 'https://myaccount-dev.nanoporetech.com/';\n break;\n case 'test':\n url = 'https://myaccount-test.nanoporetech.com/';\n break;\n default:\n url = 'https://myaccount.nanoporetech.com/';\n break;\n }\n\n var config = { timeout: 5000 };\n\n try {\n this.myAccData = await clientFetch(url + 'nav_bar_data.json', config);\n if (this.myAccData.user.id) {\n this.isLoggedIn = true;\n this.myAccountUser = this.myAccData.user;\n }\n this.processMyAccLinks();\n this.processMyAccData();\n setTimeout(() => (this.remoteDataReady = true), 300);\n } catch (e) {\n console.error(e);\n if (this.env === 'local') {\n this.myAccData = (await import(\n `./assets/local-my-account.json`\n )) as unknown as MyAccountData;\n if (this.myAccData.user.id) {\n this.isLoggedIn = true;\n this.myAccountUser = this.myAccData.user;\n }\n this.processMyAccLinks();\n this.processMyAccData();\n setTimeout(() => (this.remoteDataReady = true), 5000);\n return;\n }\n this.remoteDataReady = true;\n }\n }\n\n private processMyAccData() {\n if (!this.myAccData || !this.myAccData.search.indeces.length) return;\n\n if (this.myAccData.search.api_key)\n this.searchApiKey = this.myAccData.search.api_key;\n if (this.myAccData.search.app_id)\n this.searchAppId = this.myAccData.search.app_id;\n\n if (this.myAccData.cart.count) this.cartCount = this.myAccData.cart.count;\n if (this.myAccData.notifications.count)\n this.msgCount = this.myAccData.notifications.count;\n\n if (!this.searchAppId || !this.searchApiKey) return;\n this.internalSearchIndeces = [\n ...this.myAccData.search.indeces,\n ...this.searchIndeces,\n ];\n\n if (this.myAccData.urls.cart && !this.cartUrl)\n this.cartUrl = this.myAccData.urls.cart;\n if (this.myAccData.urls.messages && !this.msgUrl)\n this.msgUrl = this.myAccData.urls.messages;\n }\n\n private processMyAccLinks() {\n if (!this.myAccData.links || !this.myAccData.links.length) return;\n\n this.myAccData.links.forEach((link) => {\n switch (link.area) {\n case 'left-side-logged-in':\n case 'left-side-logged-out':\n if (\n this.activeMyAccountSections &&\n !this.activeMyAccountSections.includes('sites')\n )\n break;\n if (this.isLoggedIn && link.area === 'left-side-logged-in')\n this.siteNavItms.push(link);\n else if (!this.isLoggedIn && link.area === 'left-side-logged-out')\n this.siteNavItms.push(link);\n break;\n case 'right-side-logged-in':\n case 'right-side-logged-out':\n if (\n this.activeMyAccountSections &&\n !this.activeMyAccountSections.includes('about')\n )\n break;\n if (this.isLoggedIn && link.area === 'right-side-logged-in')\n this.aboutNavItms.push(link);\n else if (!this.isLoggedIn && link.area === 'right-side-logged-out')\n this.aboutNavItms.push(link);\n break;\n case 'profile-panel-list':\n if (\n this.activeMyAccountSections &&\n !this.activeMyAccountSections.includes('loggedin')\n )\n break;\n this.loggedInNavItms.push(link);\n break;\n }\n });\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- var __awaiter=this&&this.__awaiter||function(n,t,e,r){function o(n){return n instanceof e?n:new e((function(t){t(n)}))}return new(e||(e=Promise))((function(e,i){function a(n){try{s(r.next(n))}catch(t){i(t)}}function c(n){try{s(r["throw"](n))}catch(t){i(t)}}function s(n){n.done?e(n.value):o(n.value).then(a,c)}s((r=r.apply(n,t||[])).next())}))};var __generator=this&&this.__generator||function(n,t){var e={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},r,o,i,a;return a={next:c(0),throw:c(1),return:c(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function c(n){return function(t){return s([n,t])}}function s(a){if(r)throw new TypeError("Generator is already executing.");while(e)try{if(r=1,o&&(i=a[0]&2?o["return"]:a[0]?o["throw"]||((i=o["return"])&&i.call(o),0):o.next)&&!(i=i.call(o,a[1])).done)return i;if(o=0,i)a=[a[0]&2,i.value];switch(a[0]){case 0:case 1:i=a;break;case 4:e.label++;return{value:a[1],done:false};case 5:e.label++;o=a[1];a=[0];continue;case 7:a=e.ops.pop();e.trys.pop();continue;default:if(!(i=e.trys,i=i.length>0&&i[i.length-1])&&(a[0]===6||a[0]===2)){e=0;continue}if(a[0]===3&&(!i||a[1]>i[0]&&a[1]<i[3])){e.label=a[1];break}if(a[0]===6&&e.label<i[1]){e.label=i[1];i=a;break}if(i&&e.label<i[2]){e.label=i[2];e.ops.push(a);break}if(i[2])e.ops.pop();e.trys.pop();continue}a=t.call(n,e)}catch(c){a=[6,c];o=0}finally{r=i=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};System.register(["./p-89a5c54a.system.js","./p-22b50344.system.js"],(function(n){"use strict";var t;return{setters:[function(e){t=e.r;n("nanoRaf",e.r)},function(t){var e={};e.nanoDebounce=t.d;e.nanoThrottle=t.t;n(e)}],execute:function(){n({nanoCreateDialog:o,nanoShowAlert:r,nanoShowToast:e});function e(n,e,r,o){if(e===void 0){e="tr"}return __awaiter(this,void 0,void 0,(function(){var i,a;var c=this;return __generator(this,(function(s){i=Object.assign({color:"primary",duration:3e3,closable:true},o);r=r||"light/info-circle";a=Object.assign(document.createElement("nano-alert"),Object.assign(Object.assign({},i),{open:false,innerHTML:'\n <nano-icon name="'+r+'" slot="icon"></nano-icon>\n '+n+"\n "}));document.body.appendChild(a);return[2,new Promise((function(n){t((function(n){return __awaiter(c,void 0,void 0,(function(){return __generator(this,(function(n){switch(n.label){case 0:return[4,a.toast(e)];case 1:n.sent();return[2]}}))}))}))}))]}))}))}function r(n,e,r,o,i){var a=this;if(e===void 0){e=[]}if(r===void 0){r="light/info-circle"}var c=Object.assign({color:"primary",duration:Infinity,closable:false},i);r=r||"light/info-circle";var s=Object.assign(document.createElement("nano-alert"),Object.assign(Object.assign({},c),{open:false,innerHTML:"\n "+(r?'<nano-icon name="'+r+'" slot="icon"></nano-icon>':"")+"\n "+n+"\n "+(e.length?e.map((function(n,t){return'<button data-btn="'+t+'" class="button '+n.classes+'" slot="footer">'+n.content+"</button>"})).join(""):"")}));if(e.length){Array.from(s.querySelectorAll('button[slot="footer"]')).map((function(n){var t=e.find((function(t,e){return n.dataset.btn===e.toString()}));if(t&&t.handler){n.addEventListener("click",t.handler)}}))}document.body.appendChild(s);return new Promise((function(n){t((function(n){return __awaiter(a,void 0,void 0,(function(){return __generator(this,(function(n){switch(n.label){case 0:return[4,s.alert(o)];case 1:n.sent();return[2]}}))}))}))}))}function o(n,t,e){if(t===void 0){t=[]}var r=Object.assign({noUserDismiss:false,label:"Dialog"},e);var o=Object.assign(document.createElement("nano-dialog"),Object.assign(Object.assign({},r),{open:false,innerHTML:"\n "+n+"\n "+(t.length?t.map((function(n,t){return'<button data-btn="'+t+'" class="button '+n.classes+'" slot="footer">'+n.content+"</button>"})).join(""):"")}));if(t.length){Array.from(o.querySelectorAll('button[slot="footer"]')).map((function(n){var e=t.find((function(t,e){return n.dataset.btn===e.toString()}));if(e&&e.handler){n.addEventListener("click",e.handler)}}))}document.body.appendChild(o);return o}}}}));
2
- //# sourceMappingURL=p-9a456956.system.js.map
1
+ var __awaiter=this&&this.__awaiter||function(n,t,e,r){function o(n){return n instanceof e?n:new e((function(t){t(n)}))}return new(e||(e=Promise))((function(e,i){function a(n){try{s(r.next(n))}catch(t){i(t)}}function c(n){try{s(r["throw"](n))}catch(t){i(t)}}function s(n){n.done?e(n.value):o(n.value).then(a,c)}s((r=r.apply(n,t||[])).next())}))};var __generator=this&&this.__generator||function(n,t){var e={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},r,o,i,a;return a={next:c(0),throw:c(1),return:c(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function c(n){return function(t){return s([n,t])}}function s(a){if(r)throw new TypeError("Generator is already executing.");while(e)try{if(r=1,o&&(i=a[0]&2?o["return"]:a[0]?o["throw"]||((i=o["return"])&&i.call(o),0):o.next)&&!(i=i.call(o,a[1])).done)return i;if(o=0,i)a=[a[0]&2,i.value];switch(a[0]){case 0:case 1:i=a;break;case 4:e.label++;return{value:a[1],done:false};case 5:e.label++;o=a[1];a=[0];continue;case 7:a=e.ops.pop();e.trys.pop();continue;default:if(!(i=e.trys,i=i.length>0&&i[i.length-1])&&(a[0]===6||a[0]===2)){e=0;continue}if(a[0]===3&&(!i||a[1]>i[0]&&a[1]<i[3])){e.label=a[1];break}if(a[0]===6&&e.label<i[1]){e.label=i[1];i=a;break}if(i&&e.label<i[2]){e.label=i[2];e.ops.push(a);break}if(i[2])e.ops.pop();e.trys.pop();continue}a=t.call(n,e)}catch(c){a=[6,c];o=0}finally{r=i=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};System.register(["./p-94f03788.system.js","./p-22b50344.system.js"],(function(n){"use strict";var t;return{setters:[function(e){t=e.r;n("nanoRaf",e.r)},function(t){var e={};e.nanoDebounce=t.d;e.nanoThrottle=t.t;n(e)}],execute:function(){n({nanoCreateDialog:o,nanoShowAlert:r,nanoShowToast:e});function e(n,e,r,o){if(e===void 0){e="tr"}return __awaiter(this,void 0,void 0,(function(){var i,a;var c=this;return __generator(this,(function(s){i=Object.assign({color:"primary",duration:3e3,closable:true},o);r=r||"light/info-circle";a=Object.assign(document.createElement("nano-alert"),Object.assign(Object.assign({},i),{open:false,innerHTML:'\n <nano-icon name="'+r+'" slot="icon"></nano-icon>\n '+n+"\n "}));document.body.appendChild(a);return[2,new Promise((function(n){t((function(n){return __awaiter(c,void 0,void 0,(function(){return __generator(this,(function(n){switch(n.label){case 0:return[4,a.toast(e)];case 1:n.sent();return[2]}}))}))}))}))]}))}))}function r(n,e,r,o,i){var a=this;if(e===void 0){e=[]}if(r===void 0){r="light/info-circle"}var c=Object.assign({color:"primary",duration:Infinity,closable:false},i);r=r||"light/info-circle";var s=Object.assign(document.createElement("nano-alert"),Object.assign(Object.assign({},c),{open:false,innerHTML:"\n "+(r?'<nano-icon name="'+r+'" slot="icon"></nano-icon>':"")+"\n "+n+"\n "+(e.length?e.map((function(n,t){return'<button data-btn="'+t+'" class="button '+n.classes+'" slot="footer">'+n.content+"</button>"})).join(""):"")}));if(e.length){Array.from(s.querySelectorAll('button[slot="footer"]')).map((function(n){var t=e.find((function(t,e){return n.dataset.btn===e.toString()}));if(t&&t.handler){n.addEventListener("click",t.handler)}}))}document.body.appendChild(s);return new Promise((function(n){t((function(n){return __awaiter(a,void 0,void 0,(function(){return __generator(this,(function(n){switch(n.label){case 0:return[4,s.alert(o)];case 1:n.sent();return[2]}}))}))}))}))}function o(n,t,e){if(t===void 0){t=[]}var r=Object.assign({noUserDismiss:false,label:"Dialog"},e);var o=Object.assign(document.createElement("nano-dialog"),Object.assign(Object.assign({},r),{open:false,innerHTML:"\n "+n+"\n "+(t.length?t.map((function(n,t){return'<button data-btn="'+t+'" class="button '+n.classes+'" slot="footer">'+n.content+"</button>"})).join(""):"")}));if(t.length){Array.from(o.querySelectorAll('button[slot="footer"]')).map((function(n){var e=t.find((function(t,e){return n.dataset.btn===e.toString()}));if(e&&e.handler){n.addEventListener("click",e.handler)}}))}document.body.appendChild(o);return o}}}}));
2
+ //# sourceMappingURL=p-2671d998.system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["src/components/alert/alert.helpers.ts","src/components/dialog/dialog.helpers.ts"],"names":["nanoShowToast","message","position","icon","alertOptions","opts","Object","assign","color","duration","closable","alert","document","createElement","open","innerHTML","body","appendChild","Promise","resolve","raf","_","__awaiter","_this","toast","_a","sent","nanoShowAlert","buttons","label","Infinity","length","map","btn","i","classes","content","join","Array","from","querySelectorAll","foundBtn","find","_fb","dataset","toString","handler","addEventListener","nanoCreateDialog","dialogOptions","noUserDismiss","dialog"],"mappings":"8tDAiBO,SAAeA,EACpBC,EACAC,EACAC,EACAC,GAFA,GAAAF,SAAA,EAAA,CAAAA,EAAA,6GAIMG,EAAIC,OAAAC,OAAA,CACRC,MAAO,UACPC,SAAU,IACVC,SAAU,MACPN,GAELD,EAAOA,GAAQ,oBACTQ,EAA8BL,OAAOC,OACzCK,SAASC,cAAc,cAAaP,OAAAC,OAAAD,OAAAC,OAAA,GAE/BF,GAAI,CACPS,KAAM,MACNC,UAAW,4BACQZ,EAAI,qCACrBF,EAAO,YAIbW,SAASI,KAAKC,YAAYN,GAC1B,MAAA,CAAA,EAAO,IAAIO,SAAc,SAACC,GACxBC,GAAI,SAAOC,GAAC,OAAAC,UAAAC,OAAA,OAAA,GAAA,uEACV,MAAA,CAAA,EAAMZ,EAAMa,MAAMtB,WAAlBuB,EAAAC,8CAeUC,EACd1B,EACA2B,EACAzB,EACA0B,EACAzB,cAHA,GAAAwB,SAAA,EAAA,CAAAA,EAAA,GACA,GAAAzB,SAAA,EAAA,CAAAA,EAAA,oBAIA,IAAME,EAAIC,OAAAC,OAAA,CACRC,MAAO,UACPC,SAAUqB,SACVpB,SAAU,OACPN,GAELD,EAAOA,GAAQ,oBACf,IAAMQ,EAA8BL,OAAOC,OACzCK,SAASC,cAAc,cAAaP,OAAAC,OAAAD,OAAAC,OAAA,GAE/BF,GAAI,CACPS,KAAM,MACNC,UAAW,YACTZ,EAAO,oBAAoBA,EAAI,6BAA+B,IAAE,WAChEF,EAAO,YAEP2B,EAAQG,OACJH,EACGI,KACC,SAACC,EAAKC,GACJ,MAAA,qBAAqBA,EAAC,mBAAmBD,EAAIE,QAAO,mBAAmBF,EAAIG,QAAO,eAErFC,KAAK,IACR,OAKV,GAAIT,EAAQG,OAAQ,CAClBO,MAAMC,KAAK5B,EAAM6B,iBAAiB,0BAA0BR,KAC1D,SAACC,GACC,IAAMQ,EAAWb,EAAQc,MACvB,SAACC,EAAKT,GAAM,OAAAD,EAAIW,QAAQX,MAAQC,EAAEW,cAEpC,GAAIJ,GAAYA,EAASK,QAAS,CAChCb,EAAIc,iBAAiB,QAASN,EAASK,aAM/ClC,SAASI,KAAKC,YAAYN,GAC1B,OAAO,IAAIO,SAAc,SAACC,GACxBC,GAAI,SAAOC,GAAC,OAAAC,UAAAC,OAAA,OAAA,GAAA,uEACV,MAAA,CAAA,EAAMZ,EAAMA,MAAMkB,WAAlBJ,EAAAC,uCCjGUsB,EACdhC,EACAY,EACAqB,GADA,GAAArB,SAAA,EAAA,CAAAA,EAAA,GAGA,IAAMvB,EAAIC,OAAAC,OAAA,CACR2C,cAAe,MACfrB,MAAO,UACJoB,GAEL,IAAME,EAAgC7C,OAAOC,OAC3CK,SAASC,cAAc,eAAcP,OAAAC,OAAAD,OAAAC,OAAA,GAEhCF,GAAI,CACPS,KAAM,MACNC,UAAW,WACTC,EAAI,YAEJY,EAAQG,OACJH,EACGI,KACC,SAACC,EAAKC,GACJ,MAAA,qBAAqBA,EAAC,mBAAmBD,EAAIE,QAAO,mBAAmBF,EAAIG,QAAO,eAErFC,KAAK,IACR,OAKV,GAAIT,EAAQG,OAAQ,CAClBO,MAAMC,KAAKY,EAAOX,iBAAiB,0BAA0BR,KAC3D,SAACC,GACC,IAAMQ,EAAWb,EAAQc,MACvB,SAACC,EAAKT,GAAM,OAAAD,EAAIW,QAAQX,MAAQC,EAAEW,cAEpC,GAAIJ,GAAYA,EAASK,QAAS,CAChCb,EAAIc,iBAAiB,QAASN,EAASK,aAM/ClC,SAASI,KAAKC,YAAYkC,GAC1B,OAAOA","sourcesContent":["import { Color, AlertToastPosition } from '../../interface';\nimport { raf } from '../../utils';\n\ninterface ImperativeAlertOptions {\n color?: Color;\n duration?: number;\n closable?: boolean;\n}\n\n/**\n * `nano-alert` helper to create toast notifications imperatively.\n * @param message - a JS template string e.g. `<h4>Hello</h4> ${aVariable}`\n * @param position - the position of the toast. Options are 'tr', 'tl', 'bl' & 'br'\n * @param icon - name for the `nano-icon`\n * @param alertOptions - { color: Color, duration: number, closable: boolean }\n * @returns `Promise<void>`\n */\nexport async function nanoShowToast(\n message: string,\n position: AlertToastPosition = 'tr',\n icon?: string | undefined,\n alertOptions?: ImperativeAlertOptions\n) {\n const opts: ImperativeAlertOptions = {\n color: 'primary',\n duration: 3000,\n closable: true,\n ...alertOptions,\n };\n icon = icon || 'light/info-circle';\n const alert: HTMLNanoAlertElement = Object.assign(\n document.createElement('nano-alert'),\n {\n ...opts,\n open: false,\n innerHTML: `\n <nano-icon name=\"${icon}\" slot=\"icon\"></nano-icon>\n ${message}\n `,\n }\n );\n document.body.appendChild(alert);\n return new Promise<void>((resolve) => {\n raf(async (_) => {\n await alert.toast(position);\n resolve;\n });\n });\n}\n\n/**\n * `nano-alert` helper to create alert notifications imperatively.\n * @param message - a JS template string e.g. `<h4>Hello</h4> ${aVariable}`\n * @param buttons - { classes: string; content: string; handler: () => {} }[]\n * @param icon - name for the `nano-icon`\n * @param label - descriptive label for assitive technology\n * @param alertOptions - { color: Color, duration: number, closable: boolean }\n * @returns `Promise<void>`\n */\nexport function nanoShowAlert(\n message: string,\n buttons: { classes: string; content: string; handler?: () => void }[] = [],\n icon: string | undefined = 'light/info-circle',\n label: string,\n alertOptions: ImperativeAlertOptions\n) {\n const opts: ImperativeAlertOptions = {\n color: 'primary',\n duration: Infinity,\n closable: false,\n ...alertOptions,\n };\n icon = icon || 'light/info-circle';\n const alert: HTMLNanoAlertElement = Object.assign(\n document.createElement('nano-alert'),\n {\n ...opts,\n open: false,\n innerHTML: `\n ${icon ? `<nano-icon name=\"${icon}\" slot=\"icon\"></nano-icon>` : ''}\n ${message}\n ${\n buttons.length\n ? buttons\n .map(\n (btn, i) =>\n `<button data-btn=\"${i}\" class=\"button ${btn.classes}\" slot=\"footer\">${btn.content}</button>`\n )\n .join('')\n : ''\n }`,\n }\n );\n\n if (buttons.length) {\n Array.from(alert.querySelectorAll('button[slot=\"footer\"]')).map(\n (btn: HTMLElement) => {\n const foundBtn = buttons.find(\n (_fb, i) => btn.dataset.btn === i.toString()\n );\n if (foundBtn && foundBtn.handler) {\n btn.addEventListener('click', foundBtn.handler);\n }\n }\n );\n }\n\n document.body.appendChild(alert);\n return new Promise<void>((resolve) => {\n raf(async (_) => {\n await alert.alert(label);\n resolve;\n });\n });\n}\n","interface ImperativeDialogOptions {\n noUserDismiss: boolean;\n noHeader?: boolean;\n noFooter?: boolean;\n label: string;\n}\n/**\n * `nano-dialog` helper to create dialog modals imperatively.\n * @param body - a JS template string e.g. `<h4>Hello</h4> ${aVariable}`\n * @param buttons - { classes: string; content: string; handler: () => {} }[]\n * @param dialogOptions - { noUserDismiss: boolean, noHeader?: boolean, noFooter?: boolean, label: string }\n * @returns `Promise<void>`\n */\nexport function nanoCreateDialog(\n body: string,\n buttons: { classes: string; content: string; handler: () => {} }[] = [],\n dialogOptions: ImperativeDialogOptions\n) {\n const opts: ImperativeDialogOptions = {\n noUserDismiss: false,\n label: 'Dialog',\n ...dialogOptions,\n };\n const dialog: HTMLNanoDialogElement = Object.assign(\n document.createElement('nano-dialog'),\n {\n ...opts,\n open: false,\n innerHTML: `\n ${body}\n ${\n buttons.length\n ? buttons\n .map(\n (btn, i) =>\n `<button data-btn=\"${i}\" class=\"button ${btn.classes}\" slot=\"footer\">${btn.content}</button>`\n )\n .join('')\n : ''\n }`,\n }\n );\n\n if (buttons.length) {\n Array.from(dialog.querySelectorAll('button[slot=\"footer\"]')).map(\n (btn: HTMLElement) => {\n const foundBtn = buttons.find(\n (_fb, i) => btn.dataset.btn === i.toString()\n );\n if (foundBtn && foundBtn.handler) {\n btn.addEventListener('click', foundBtn.handler);\n }\n }\n );\n }\n\n document.body.appendChild(dialog);\n return dialog;\n}\n"]}
@@ -1,2 +1,2 @@
1
- System.register(["./p-2d59dda3.system.js"],(function(n){"use strict";var e,t,a;return{setters:[function(n){e=n.r;t=n.h;a=n.g}],execute:function(){var r=':host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{display:inline-block;--base-color-rgb:var(--nano-spinner-base-rgb, 0, 132, 169);--indicator-color:var(\n --nano-spinner-indicator-color,\n rgba(var(--base-color-rgb), 1)\n );--track-color:var(--nano-track-color, rgba(var(--base-color-rgb), 0.2));--overlay-color:var(--nano-layer-overlay-light, rgba(255, 255, 255, .7))}.spinner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}:host([overlay]:not([overlay=false])) .spinner{position:absolute;top:0;left:0;right:0;bottom:0}:host([overlay]:not([overlay=false])) .spinner .spinner__loader,:host([overlay]:not([overlay=false])) .spinner .spinner__text{z-index:1}.spinner__overlay{background:var(--overlay-color);position:absolute;top:0;bottom:0;left:0;right:0;z-index:0;-webkit-backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px));backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px))}.spinner__loader{font-size:var(--spinner-scale, 1em)}.spinner__spin{display:block;margin:auto;width:1em;height:1em;border-radius:50%;border:solid 0.1em var(--track-color);border-top-color:var(--indicator-color);border-right-color:var(--indicator-color);border-left-color:var(--indicator-color);-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}.spinner__dna{font-size:0.2286em;display:-webkit-box;display:-ms-flexbox;display:flex}.spinner__dnatrack{position:relative;padding:0 0.625em;height:4.375em;width:0.625em;overflow:hidden}.spinner__dnatrack::before{content:"";position:absolute;top:1.875em;left:50%;-webkit-transform:translateX(-50%) translateZ(0);transform:translateX(-50%) translateZ(0);width:0.0625em;width:max(.0625em, 1px);height:0.625em;background:var(--track-color);-webkit-animation:flex 1.5s linear infinite;animation:flex 1.5s linear infinite;-webkit-transform-origin:center center;transform-origin:center center}.spinner__dnatrack--2::before{-webkit-animation:flex 1.5s -1.3s linear infinite;animation:flex 1.5s -1.3s linear infinite}.spinner__dnatrack--3::before{-webkit-animation:flex 1.5s -1.1s linear infinite;animation:flex 1.5s -1.1s linear infinite}.spinner__dnatrack--4::before{-webkit-animation:flex 1.5s -0.9s linear infinite;animation:flex 1.5s -0.9s linear infinite}.spinner__dnatrack--5::before{-webkit-animation:flex 1.5s -0.75s linear infinite;animation:flex 1.5s -0.75s linear infinite}.spinner__dnadot{position:absolute;width:0.5em;height:0.5em;border-radius:50% 50%;background:var(--indicator-color);-webkit-animation:rotate 1.5s linear infinite;animation:rotate 1.5s linear infinite;-webkit-transform-origin:center center;transform-origin:center center;left:50%;-webkit-transform:translateX(-50%) translateZ(0) translateY(0);transform:translateX(-50%) translateZ(0) translateY(0)}.spinner__dnadot--2{-webkit-animation:rotate 1.5s -0.75s linear infinite;animation:rotate 1.5s -0.75s linear infinite}.spinner__dnadot--3{-webkit-animation:rotate 1.5s -1.3s linear infinite;animation:rotate 1.5s -1.3s linear infinite}.spinner__dnadot--4{-webkit-animation:rotate 1.5s -0.55s linear infinite;animation:rotate 1.5s -0.55s linear infinite}.spinner__dnadot--5{-webkit-animation:rotate 1.5s -1.1s linear infinite;animation:rotate 1.5s -1.1s linear infinite}.spinner__dnadot--6{-webkit-animation:rotate 1.5s -0.35s linear infinite;animation:rotate 1.5s -0.35s linear infinite}.spinner__dnadot--7{-webkit-animation:rotate 1.5s -0.9s linear infinite;animation:rotate 1.5s -0.9s linear infinite}.spinner__dnadot--8{-webkit-animation:rotate 1.5s -0.15s linear infinite;animation:rotate 1.5s -0.15s linear infinite}.spinner__dnadot--9{-webkit-animation:rotate 1.5s -0.75s linear infinite;animation:rotate 1.5s -0.75s linear infinite}.spinner__dnadot--10{-webkit-animation:rotate 1.5s 0s linear infinite;animation:rotate 1.5s 0s linear infinite}.spinner__text{text-align:center;position:relative;margin-top:0.5em}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes rotate{0%,100%{-webkit-transform:translateX(-50%) translateY(0) scale(1);transform:translateX(-50%) translateY(0) scale(1)}25%{-webkit-transform:translateX(-50%) translateY(1.875em) scale(2);transform:translateX(-50%) translateY(1.875em) scale(2)}50%{-webkit-transform:translateX(-50%) translateY(3.75em) scale(1);transform:translateX(-50%) translateY(3.75em) scale(1)}75%{-webkit-transform:translateX(-50%) translateY(1.875em) scale(0.3);transform:translateX(-50%) translateY(1.875em) scale(0.3)}}@keyframes rotate{0%,100%{-webkit-transform:translateX(-50%) translateY(0) scale(1);transform:translateX(-50%) translateY(0) scale(1)}25%{-webkit-transform:translateX(-50%) translateY(1.875em) scale(2);transform:translateX(-50%) translateY(1.875em) scale(2)}50%{-webkit-transform:translateX(-50%) translateY(3.75em) scale(1);transform:translateX(-50%) translateY(3.75em) scale(1)}75%{-webkit-transform:translateX(-50%) translateY(1.875em) scale(0.3);transform:translateX(-50%) translateY(1.875em) scale(0.3)}}@-webkit-keyframes flex{0%,100%{-webkit-transform:translateX(-50%) scaleY(5);transform:translateX(-50%) scaleY(5)}25%{-webkit-transform:translateX(-50%) scaleY(1);transform:translateX(-50%) scaleY(1)}50%{-webkit-transform:translateX(-50%) scaleY(5);transform:translateX(-50%) scaleY(5)}75%{-webkit-transform:translateX(-50%) scaleY(1);transform:translateX(-50%) scaleY(1)}}@keyframes flex{0%,100%{-webkit-transform:translateX(-50%) scaleY(5);transform:translateX(-50%) scaleY(5)}25%{-webkit-transform:translateX(-50%) scaleY(1);transform:translateX(-50%) scaleY(1)}50%{-webkit-transform:translateX(-50%) scaleY(5);transform:translateX(-50%) scaleY(5)}75%{-webkit-transform:translateX(-50%) scaleY(1);transform:translateX(-50%) scaleY(1)}}';var i=n("nano_spinner",function(){function n(n){e(this,n);this.hasText=false;this.type="dna";this.overlay=false}n.prototype.componentWillLoad=function(){this.hasText=!!this.el.childNodes.length};n.prototype.render=function(){return t("div",{class:"spinner","aria-busy":"true","aria-live":"polite"},t("div",{class:"spinner__loader"},this.type==="dna"&&t("div",{class:"spinner__dna"},t("div",{class:"spinner__dnatrack spinner__dnatrack--1"},t("div",{class:"spinner__dnadot spinner__dnadot--1"}),t("div",{class:"spinner__dnadot spinner__dnadot--2"})),t("div",{class:"spinner__dnatrack spinner__dnatrack--2"},t("div",{class:"spinner__dnadot spinner__dnadot--3"}),t("div",{class:"spinner__dnadot spinner__dnadot--4"})),t("div",{class:"spinner__dnatrack spinner__dnatrack--3"},t("div",{class:"spinner__dnadot spinner__dnadot--5"}),t("div",{class:"spinner__dnadot spinner__dnadot--6"})),t("div",{class:"spinner__dnatrack spinner__dnatrack--4"},t("div",{class:"spinner__dnadot spinner__dnadot--7"}),t("div",{class:"spinner__dnadot spinner__dnadot--8"})),t("div",{class:"spinner__dnatrack spinner__dnatrack--5"},t("div",{class:"spinner__dnadot spinner__dnadot--9"}),t("div",{class:"spinner__dnadot spinner__dnadot--10"}))),this.type==="circle"&&t("span",{class:"spinner__spin"})),this.hasText&&t("div",{class:"spinner__text"},t("slot",null)),this.overlay&&t("div",{class:"spinner__overlay"}))};Object.defineProperty(n.prototype,"el",{get:function(){return a(this)},enumerable:false,configurable:true});return n}());i.style=r}}}));
2
- //# sourceMappingURL=p-7367dfd5.system.entry.js.map
1
+ System.register(["./p-af9f6453.system.js"],(function(n){"use strict";var e,t,a;return{setters:[function(n){e=n.r;t=n.h;a=n.g}],execute:function(){var r=':host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{display:inline-block;--base-color-rgb:var(--nano-spinner-base-rgb, 0, 116, 149);--indicator-color:var(\n --nano-spinner-indicator-color,\n rgba(var(--base-color-rgb), 1)\n );--track-color:var(--nano-track-color, rgba(var(--base-color-rgb), 0.2));--overlay-color:var(--nano-layer-overlay-light, rgba(255, 255, 255, .7))}.spinner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}:host([overlay]:not([overlay=false])) .spinner{position:absolute;top:0;left:0;right:0;bottom:0}:host([overlay]:not([overlay=false])) .spinner .spinner__loader,:host([overlay]:not([overlay=false])) .spinner .spinner__text{z-index:1}.spinner__overlay{background:var(--overlay-color);position:absolute;top:0;bottom:0;left:0;right:0;z-index:0;-webkit-backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px));backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px))}.spinner__loader{font-size:var(--spinner-scale, 1em)}.spinner__spin{display:block;margin:auto;width:1em;height:1em;border-radius:50%;border:solid 0.1em var(--track-color);border-top-color:var(--indicator-color);border-right-color:var(--indicator-color);border-left-color:var(--indicator-color);-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}.spinner__dna{font-size:0.2286em;display:-webkit-box;display:-ms-flexbox;display:flex}.spinner__dnatrack{position:relative;padding:0 0.625em;height:4.375em;width:0.625em;overflow:hidden}.spinner__dnatrack::before{content:"";position:absolute;top:1.875em;left:50%;-webkit-transform:translateX(-50%) translateZ(0);transform:translateX(-50%) translateZ(0);width:0.0625em;width:max(.0625em, 1px);height:0.625em;background:var(--track-color);-webkit-animation:flex 1.5s linear infinite;animation:flex 1.5s linear infinite;-webkit-transform-origin:center center;transform-origin:center center}.spinner__dnatrack--2::before{-webkit-animation:flex 1.5s -1.3s linear infinite;animation:flex 1.5s -1.3s linear infinite}.spinner__dnatrack--3::before{-webkit-animation:flex 1.5s -1.1s linear infinite;animation:flex 1.5s -1.1s linear infinite}.spinner__dnatrack--4::before{-webkit-animation:flex 1.5s -0.9s linear infinite;animation:flex 1.5s -0.9s linear infinite}.spinner__dnatrack--5::before{-webkit-animation:flex 1.5s -0.75s linear infinite;animation:flex 1.5s -0.75s linear infinite}.spinner__dnadot{position:absolute;width:0.5em;height:0.5em;border-radius:50% 50%;background:var(--indicator-color);-webkit-animation:rotate 1.5s linear infinite;animation:rotate 1.5s linear infinite;-webkit-transform-origin:center center;transform-origin:center center;left:50%;-webkit-transform:translateX(-50%) translateZ(0) translateY(0);transform:translateX(-50%) translateZ(0) translateY(0)}.spinner__dnadot--2{-webkit-animation:rotate 1.5s -0.75s linear infinite;animation:rotate 1.5s -0.75s linear infinite}.spinner__dnadot--3{-webkit-animation:rotate 1.5s -1.3s linear infinite;animation:rotate 1.5s -1.3s linear infinite}.spinner__dnadot--4{-webkit-animation:rotate 1.5s -0.55s linear infinite;animation:rotate 1.5s -0.55s linear infinite}.spinner__dnadot--5{-webkit-animation:rotate 1.5s -1.1s linear infinite;animation:rotate 1.5s -1.1s linear infinite}.spinner__dnadot--6{-webkit-animation:rotate 1.5s -0.35s linear infinite;animation:rotate 1.5s -0.35s linear infinite}.spinner__dnadot--7{-webkit-animation:rotate 1.5s -0.9s linear infinite;animation:rotate 1.5s -0.9s linear infinite}.spinner__dnadot--8{-webkit-animation:rotate 1.5s -0.15s linear infinite;animation:rotate 1.5s -0.15s linear infinite}.spinner__dnadot--9{-webkit-animation:rotate 1.5s -0.75s linear infinite;animation:rotate 1.5s -0.75s linear infinite}.spinner__dnadot--10{-webkit-animation:rotate 1.5s 0s linear infinite;animation:rotate 1.5s 0s linear infinite}.spinner__text{text-align:center;position:relative;margin-top:0.5em}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes rotate{0%,100%{-webkit-transform:translateX(-50%) translateY(0) scale(1);transform:translateX(-50%) translateY(0) scale(1)}25%{-webkit-transform:translateX(-50%) translateY(1.875em) scale(2);transform:translateX(-50%) translateY(1.875em) scale(2)}50%{-webkit-transform:translateX(-50%) translateY(3.75em) scale(1);transform:translateX(-50%) translateY(3.75em) scale(1)}75%{-webkit-transform:translateX(-50%) translateY(1.875em) scale(0.3);transform:translateX(-50%) translateY(1.875em) scale(0.3)}}@keyframes rotate{0%,100%{-webkit-transform:translateX(-50%) translateY(0) scale(1);transform:translateX(-50%) translateY(0) scale(1)}25%{-webkit-transform:translateX(-50%) translateY(1.875em) scale(2);transform:translateX(-50%) translateY(1.875em) scale(2)}50%{-webkit-transform:translateX(-50%) translateY(3.75em) scale(1);transform:translateX(-50%) translateY(3.75em) scale(1)}75%{-webkit-transform:translateX(-50%) translateY(1.875em) scale(0.3);transform:translateX(-50%) translateY(1.875em) scale(0.3)}}@-webkit-keyframes flex{0%,100%{-webkit-transform:translateX(-50%) scaleY(5);transform:translateX(-50%) scaleY(5)}25%{-webkit-transform:translateX(-50%) scaleY(1);transform:translateX(-50%) scaleY(1)}50%{-webkit-transform:translateX(-50%) scaleY(5);transform:translateX(-50%) scaleY(5)}75%{-webkit-transform:translateX(-50%) scaleY(1);transform:translateX(-50%) scaleY(1)}}@keyframes flex{0%,100%{-webkit-transform:translateX(-50%) scaleY(5);transform:translateX(-50%) scaleY(5)}25%{-webkit-transform:translateX(-50%) scaleY(1);transform:translateX(-50%) scaleY(1)}50%{-webkit-transform:translateX(-50%) scaleY(5);transform:translateX(-50%) scaleY(5)}75%{-webkit-transform:translateX(-50%) scaleY(1);transform:translateX(-50%) scaleY(1)}}';var i=n("nano_spinner",function(){function n(n){e(this,n);this.hasText=false;this.type="dna";this.overlay=false}n.prototype.componentWillLoad=function(){this.hasText=!!this.el.childNodes.length};n.prototype.render=function(){return t("div",{class:"spinner","aria-busy":"true","aria-live":"polite"},t("div",{class:"spinner__loader"},this.type==="dna"&&t("div",{class:"spinner__dna"},t("div",{class:"spinner__dnatrack spinner__dnatrack--1"},t("div",{class:"spinner__dnadot spinner__dnadot--1"}),t("div",{class:"spinner__dnadot spinner__dnadot--2"})),t("div",{class:"spinner__dnatrack spinner__dnatrack--2"},t("div",{class:"spinner__dnadot spinner__dnadot--3"}),t("div",{class:"spinner__dnadot spinner__dnadot--4"})),t("div",{class:"spinner__dnatrack spinner__dnatrack--3"},t("div",{class:"spinner__dnadot spinner__dnadot--5"}),t("div",{class:"spinner__dnadot spinner__dnadot--6"})),t("div",{class:"spinner__dnatrack spinner__dnatrack--4"},t("div",{class:"spinner__dnadot spinner__dnadot--7"}),t("div",{class:"spinner__dnadot spinner__dnadot--8"})),t("div",{class:"spinner__dnatrack spinner__dnatrack--5"},t("div",{class:"spinner__dnadot spinner__dnadot--9"}),t("div",{class:"spinner__dnadot spinner__dnadot--10"}))),this.type==="circle"&&t("span",{class:"spinner__spin"})),this.hasText&&t("div",{class:"spinner__text"},t("slot",null)),this.overlay&&t("div",{class:"spinner__overlay"}))};Object.defineProperty(n.prototype,"el",{get:function(){return a(this)},enumerable:false,configurable:true});return n}());i.style=r}}}));
2
+ //# sourceMappingURL=p-273b19b0.system.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as a,c as i,h as t,e as o,g as n}from"./p-bb0619e6.js";let e=0,l=()=>new DataTransfer;try{l()}catch(r){try{l=()=>new ClipboardEvent("").clipboardData,l()}catch(d){l=null}}let s=class{constructor(o){a(this,o),this.nanoChange=i(this,"nanoChange",7),this.nanoFocus=i(this,"nanoFocus",7),this.nanoBlur=i(this,"nanoBlur",7),this.nanoValidate=i(this,"nanoValidate",7),this.fileInputId="nano-file-upload-"+e++,this.canChangeFileList=!!l,this.removeFiles=[],this.errorMessage=null,this.isDragging=!1,this.fileList=[],this.maxFileSize=1,this.maxFiles=1,this.placeholder="Choose a file...",this.hideLabel=!1,this.required=!1,this.disabled=!1,this.clearInput=!1,this.showInlineError=!0,this.validateOn="submit",this._invalid=!1,this.onClearClick=()=>{this.value=""},this.onBlur=()=>{this.hasFocus=!1,"dirty"===this.validateOn&&this.validate(),this.nanoBlur.emit()},this.onFocus=()=>{this.hasFocus=!0,this.nanoFocus.emit()},this.validate=a=>{let i;this.errorMessage=null,this.inputEl.setCustomValidity(""),"submitThenDirty"===this.validateOn&&(this.validateOn="dirty"),this.inputEl.validity.valid?(this.fileList.forEach((a=>{i=null,this.checkFileSize(a.file.size)?this.checkFileType(a.file.type)||(i=`File type is not allowed (${this.accept})`):i="Maximum file size exceeded. Max file size is "+this.maxFileSize+"Mb",!this.errorMessage&&i&&(this.errorMessage=i),a.validationMessage=i,a.valid=!i})),this.fileList.length>this.maxFiles&&(this.errorMessage=`Maxinum number of files exceeded (${this.maxFiles})`)):this.showInlineError&&(this.errorMessage=this.inputEl.validationMessage),this.errorMessage?(this._invalid=!0,this.inputEl.setCustomValidity(this.errorMessage)):this._invalid=!1,this.nanoValidate.emit({isValid:!this._invalid,errorMessage:this.inputEl.validationMessage,originalEvent:a})},this.onInvalid=a=>{this.validate(a),this.showInlineError&&a.preventDefault()},this.onFileChoose=a=>{const i=a.target.files;i&&i.length&&this.addNewFiles(a.target.files)},this.onFileRemoveFileClick=(a,i)=>{this.canChangeFileList&&(this.removeFiles.push(i),a.target.closest(".file-upload__list-item--active").classList.remove("file-upload__list-item--active"))},this.onFileRemoveAnim=()=>{this.canChangeFileList&&this.removeFiles.length&&(this.fileList=this.fileList.filter((a=>!this.removeFiles.find((i=>i===a)))),this.removeFiles=[])},this.onInputChange=()=>{this.nanoChange.emit({value:this.value,files:this.files})},this.onDragStop=a=>{a.preventDefault(),a.stopPropagation(),this.isDragging=!1},this.onDragStart=a=>{a.preventDefault(),a.stopPropagation(),this.isDragging=!0},this.onDrop=a=>{this.onDragStop(a),a.dataTransfer.files&&a.dataTransfer.files.length&&this.addNewFiles(a.dataTransfer.files)},this.FileUploadInput=(a,i)=>{const o=this.fileInputId+"-lbl",n=this.showInlineError||this.hasHelperSlot?this.fileInputId+"-more":"";return[t("div",{class:"file-upload__"+a+"-wrap"},t("label",{class:"file-upload__"+a,htmlFor:this.fileInputId,id:o,onDrop:a=>{this.onDrop(a),this.onDragStop(a)},onDragEnd:this.onDragStop,onDragLeave:this.onDragStop,onDragEnter:this.onDragStart,onDragOver:this.onDragStart},t("div",{class:"file-upload__label "+(this.hideLabel||"drop"!==a?"visually-hide":"")},this.label&&this.label,!this.label&&this.hasLabelSlot&&t("slot",{name:"label"})),"drop"===a&&t("div",{class:"file-upload__drop-area"},"Drap and drop or ",t("span",null,"browse")),"btn"===a&&t("div",{class:"file-upload__button button--keyline button--icon-start "+(this.hasFocus?"button--focus":"")},t("div",{class:"file-upload__btn-content"},t("nano-icon",{name:"regular/cloud-upload"}),t("span",null,this.fileList.length?this.fileList[0].file.name:this.placeholder),!!this.value&&this.clearInput&&!this.disabled&&t("button",{type:"button",class:"icon file-upload__clear-btn",tabindex:"-1",onClick:this.onClearClick},t("nano-icon",{name:"light/times"})))),t("input",{"aria-labelledby":o+" "+n+" "+i,type:"file",id:this.fileInputId,accept:this.accept,class:"file-upload__input",multiple:this.maxFiles>1,disabled:this.disabled,name:this.canChangeFileList?void 0:this.name,ref:a=>{this.canChangeFileList?this.publicInputEl=a:this.inputEl=a},onChange:this.onFileChoose,onFocus:this.onFocus,onReset:this.onInputChange})),t("input",{name:this.canChangeFileList?this.name:void 0,ref:a=>{this.canChangeFileList&&(this.inputEl=a)},type:"file",id:this.fileInputId+"-hidden",tabIndex:-1,multiple:!0,class:"file-upload__input",disabled:this.disabled,required:this.required,accept:this.accept,onInvalid:this.onInvalid,onChange:this.onInputChange})),this.showInlineError||this.hasHelperSlot?t("div",{class:"file-upload__more",id:n},this.showInlineError?t("div",{class:"file-upload__error"},this.errorMessage):"",t("div",{class:"file-upload__help"},t("slot",{name:"helper"}))):""]},this.button=()=>this.FileUploadInput("btn"),this.dropArea=()=>{const a=this.fileInputId+"-list";return[this.FileUploadInput("drop",a),t("output",{class:"file-upload__list-wrap",id:a},!!this.fileList&&this.fileList.length>0&&t("ul",{class:"file-upload__list list"},this.fileList.map((a=>t("li",{key:a.file.name,class:"file-upload__list-item file-upload__list-item--active list-item",onAnimationEnd:()=>this.onFileRemoveAnim()},t("span",{class:"list-title"},a.file.name),!a.valid&&t("nano-tooltip",{content:a.validationMessage,placement:"left"},t("nano-icon-button",{class:"list-button list-error",iconName:"light/exclamation-triangle",label:"File error"})),this.canChangeFileList&&t("nano-icon-button",{class:"list-button list-button--view",type:"button",iconName:"light/eye",label:"View file",target:"_blank",href:a.location}),this.canChangeFileList&&t("nano-icon-button",{onClick:i=>this.onFileRemoveFileClick(i,a),class:"list-button list-button--remove",iconName:"light/times",label:"Remove file"}))))))]}}fileListChange(){this.canChangeFileList&&(this.publicInputEl.value="",this.inputEl.files=this.arrToFileList(this.fileList.map((a=>a.file))),this.nanoChange.emit({value:this.value,files:this.files}))}shouldValidate(){this.inputEl&&setTimeout((()=>{"dirty"===this.validateOn&&this.validate()}),20)}get invalid(){return this._invalid}get files(){return this.inputEl?Array.from(this.inputEl.files).map((a=>(a.objectURL=URL.createObjectURL(a),a))):[]}get value(){return this.inputEl?this.inputEl.value:""}set value(a){""===a&&this.inputEl&&(this.fileList=[],this.inputEl.value="")}async reportValidity(a){return a&&this.validate(),{isValid:!this.invalid,errorMessage:this.inputEl.validationMessage}}async setFocus(){this.inputEl&&this.inputEl.focus()}getInputElement(){return Promise.resolve(this.inputEl)}async showError(a){this.inputEl&&(this.inputEl.setCustomValidity(a),this.validate())}globalClickHandler(a){this.hasFocus&&a.composedPath().every((a=>a!==this.host))&&this.onBlur()}globalKeydownHandler(a){this.hasFocus&&"Tab"===a.key&&a.target!==this.inputEl&&this.onBlur()}arrToFileList(a){const i=l();for(var t=0,o=a.length;t<o;t++)i.items.add(a[t]);return i.files}checkFileSize(a){return a/1e6<=this.maxFileSize}checkFileType(a){return!this.accept||this.accept.match(a)&&this.accept.match(a).length>0}slotChangeObserver(){this.mo&&this.mo.disconnect(),(this.mo=new MutationObserver((()=>this.processSlottedContent()))).observe(this.host,{childList:!0,subtree:!0})}processSlottedContent(){this.hasLabelSlot=!!this.host.querySelectorAll('[slot="label"]'),this.hasHelperSlot=!!this.host.querySelector('[slot="helper"]')}addNewFiles(a){const i=Array.from(a).map((a=>({file:a,location:URL.createObjectURL(a),valid:!0,validationMessage:null})));if(this.canChangeFileList&&this.maxFiles>1){const a=i.filter((a=>!this.fileList.find((i=>i.file.name===a.file.name))));this.fileList=[...this.fileList,...a]}else this.fileList=i}disconnectedCallback(){this.mo&&this.mo.disconnect()}componentDidLoad(){this.slotChangeObserver()}componentWillLoad(){this.processSlottedContent()}render(){return t(o,null,t("div",{class:{"file-upload":!0,"file-upload--dragging":this.isDragging,"file-upload--focus":this.hasFocus,"file-upload--invalid":this._invalid}},t(this.maxFiles>1?this.dropArea:this.button,null)))}get host(){return n(this)}static get watchers(){return{fileList:["fileListChange","shouldValidate"],maxFiles:["shouldValidate"],maxFileSize:["shouldValidate"],capture:["shouldValidate"],accept:["shouldValidate"],required:["shouldValidate"],disabled:["shouldValidate"],validateOn:["shouldValidate"]}}};s.style='.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}.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, 8px));--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, #fee8de);--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{display:none}.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{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:white;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:white;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.3));box-shadow:var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.3))}.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}';export{s as nano_file_upload}
2
+ //# sourceMappingURL=p-28123e6e.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["src/components/file-upload/file-upload.tsx","src/components/file-upload/file-upload.scss?tag=nano-file-upload&encapsulation=scoped"],"names":["fileInputIds","getDataTransfer","DataTransfer","_a","ClipboardEvent","clipboardData","_b","FileUpload","[object Object]","hostRef","this","fileInputId","canChangeFileList","removeFiles","errorMessage","isDragging","fileList","maxFileSize","maxFiles","placeholder","hideLabel","required","disabled","clearInput","showInlineError","validateOn","_invalid","onClearClick","value","onBlur","hasFocus","validate","nanoBlur","emit","onFocus","nanoFocus","ev","error","inputEl","setCustomValidity","validity","valid","forEach","fileItem","checkFileSize","file","size","checkFileType","type","accept","validationMessage","length","nanoValidate","isValid","originalEvent","onInvalid","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","ref","input","publicInputEl","onChange","onReset","tabIndex","button","dropArea","map","key","onAnimationEnd","content","placement","iconName","href","location","arrToFileList","setTimeout","invalid","Array","from","objectURL","URL","createObjectURL","val","validateFirst","focus","Promise","resolve","message","composedPath","every","node","host","i","len","items","add","match","mo","disconnect","MutationObserver","processSlottedContent","observe","childList","subtree","querySelectorAll","querySelector","newFiles","findFile","slotChangeObserver","Host","file-upload","file-upload--dragging","file-upload--focus","file-upload--invalid"],"mappings":"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","sourcesContent":["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 = null;\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 this.nanoChange.emit({ value: this.value, files: this.files });\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 @Watch('maxFiles')\n @Watch('maxFileSize')\n @Watch('capture')\n @Watch('accept')\n @Watch('required')\n @Watch('disabled')\n @Watch('validateOn')\n @Watch('fileList')\n protected shouldValidate() {\n if (!this.inputEl) return;\n setTimeout(() => {\n if (this.validateOn === 'dirty') this.validate();\n }, 20);\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 /** 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) this.validate();\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 }\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 // Private methods\n\n private onClearClick = () => {\n this.value = '';\n };\n\n private onBlur = () => {\n this.hasFocus = false;\n if (this.validateOn === 'dirty') this.validate();\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 = (ev?: Event) => {\n this.errorMessage = null;\n this.inputEl.setCustomValidity('');\n let error: string;\n\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n\n if (!this.inputEl.validity.valid) {\n if (this.showInlineError)\n this.errorMessage = 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 if (!this.errorMessage && error) this.errorMessage = error;\n fileItem.validationMessage = error;\n fileItem.valid = !error;\n });\n if (this.fileList.length > this.maxFiles)\n this.errorMessage = `Maxinum number of files exceeded (${this.maxFiles})`;\n }\n\n if (!!this.errorMessage) {\n this._invalid = true;\n this.inputEl.setCustomValidity(this.errorMessage);\n } else {\n this._invalid = false;\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 this.validate(ev);\n if (this.showInlineError) ev.preventDefault();\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 <div\n class={`file-upload__label ${\n this.hideLabel || eleType !== 'drop' ? 'visually-hide' : ''\n }`}\n >\n {this.label && this.label}\n {!this.label && this.hasLabelSlot && <slot name=\"label\" />}\n </div>\n {eleType === 'drop' && (\n <div class=\"file-upload__drop-area\">\n Drap and drop or&nbsp;<span>browse</span>\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 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 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 ? (\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","@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 #{$color-blue--faded};\n * @prop --drop-text: Default value #{$color-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: #{$color-blue--faded};\n --drop-text: #{darken($color-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 display: none;\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 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: #{$color-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: white;\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: white;\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"]}