@nanoporetech-digital/components 3.2.0 → 3.3.1

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 (463) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/cjs/dom-d7c33f11.js.map +1 -1
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{modal-f09e431f.js → modal-e4defcc3.js} +3 -3
  6. package/dist/cjs/{modal-f09e431f.js.map → modal-e4defcc3.js.map} +1 -1
  7. package/dist/cjs/nano-alert.cjs.entry.js +3 -3
  8. package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
  9. package/dist/cjs/nano-algolia.cjs.entry.js +1 -1
  10. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  11. package/dist/cjs/nano-aspect-ratio.cjs.entry.js +1 -1
  12. package/dist/cjs/nano-aspect-ratio.cjs.entry.js.map +1 -1
  13. package/dist/cjs/nano-checkbox-group.cjs.entry.js +1 -1
  14. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  15. package/dist/cjs/nano-checkbox.cjs.entry.js +1 -1
  16. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  17. package/dist/cjs/nano-components.cjs.js +1 -1
  18. package/dist/cjs/nano-datalist_3.cjs.entry.js +2 -2
  19. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
  20. package/dist/cjs/nano-date-input.cjs.entry.js +1 -1
  21. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  22. package/dist/cjs/nano-date-picker.cjs.entry.js +1 -1
  23. package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -1
  24. package/dist/cjs/nano-details.cjs.entry.js +1 -1
  25. package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nano-dialog.cjs.entry.js +3 -3
  27. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  28. package/dist/cjs/nano-drawer.cjs.entry.js +3 -3
  29. package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
  30. package/dist/cjs/nano-dropdown.cjs.entry.js +2 -2
  31. package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
  32. package/dist/cjs/nano-file-upload.cjs.entry.js +1 -1
  33. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  34. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +13 -8
  35. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
  36. package/dist/cjs/nano-global-nav.cjs.entry.js +35 -15
  37. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  38. package/dist/cjs/nano-global-search-results.cjs.entry.js +6 -3
  39. package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
  40. package/dist/cjs/nano-grid_3.cjs.entry.js +2 -2
  41. package/dist/cjs/nano-grid_3.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nano-hero.cjs.entry.js +1 -1
  43. package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
  44. package/dist/cjs/nano-icon-button.cjs.entry.js +1 -1
  45. package/dist/cjs/nano-icon-button.cjs.entry.js.map +1 -1
  46. package/dist/cjs/nano-icon.cjs.entry.js +1 -1
  47. package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
  48. package/dist/cjs/nano-input.cjs.entry.js +1 -1
  49. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  50. package/dist/cjs/nano-menu-drawer.cjs.entry.js +1 -1
  51. package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nano-progress-bar.cjs.entry.js +1 -1
  53. package/dist/cjs/nano-progress-bar.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nano-range.cjs.entry.js +1 -1
  55. package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
  56. package/dist/cjs/nano-rating.cjs.entry.js +1 -1
  57. package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
  58. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +23 -12
  59. package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
  60. package/dist/cjs/nano-slide.cjs.entry.js +1 -1
  61. package/dist/cjs/nano-slide.cjs.entry.js.map +1 -1
  62. package/dist/cjs/nano-slides.cjs.entry.js +1 -1
  63. package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
  64. package/dist/cjs/nano-spinner.cjs.entry.js +1 -1
  65. package/dist/cjs/nano-spinner.cjs.entry.js.map +1 -1
  66. package/dist/cjs/nano-split-pane.cjs.entry.js +1 -1
  67. package/dist/cjs/nano-split-pane.cjs.entry.js.map +1 -1
  68. package/dist/cjs/nano-sticker.cjs.entry.js +1 -1
  69. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  70. package/dist/cjs/nano-tab-content.cjs.entry.js +1 -1
  71. package/dist/cjs/nano-tab-content.cjs.entry.js.map +1 -1
  72. package/dist/cjs/nano-tab-group.cjs.entry.js +1 -1
  73. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  74. package/dist/cjs/nano-tab.cjs.entry.js +1 -1
  75. package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
  76. package/dist/cjs/{nano-table-7dbe799c.js → nano-table-10d45fe4.js} +36 -33
  77. package/dist/cjs/nano-table-10d45fe4.js.map +1 -0
  78. package/dist/cjs/nano-table.cjs.entry.js +1 -1
  79. package/dist/cjs/nano-tooltip.cjs.entry.js +1 -1
  80. package/dist/cjs/nano-tooltip.cjs.entry.js.map +1 -1
  81. package/dist/cjs/{tabbable-de4c23d8.js → tabbable-bdf10c84.js} +13 -4
  82. package/dist/cjs/tabbable-bdf10c84.js.map +1 -0
  83. package/dist/cjs/{table.worker-fe960deb.js → table.worker-a192a107.js} +2 -2
  84. package/dist/cjs/table.worker-a192a107.js.map +1 -0
  85. package/dist/collection/components/alert/alert.css +16 -56
  86. package/dist/collection/components/algolia/algolia.css +5 -22
  87. package/dist/collection/components/aspect-ratio/aspect-ratio.css +2 -4
  88. package/dist/collection/components/checkbox/checkbox-group.css +8 -19
  89. package/dist/collection/components/checkbox/checkbox.css +24 -61
  90. package/dist/collection/components/date-input/date-input.css +8 -29
  91. package/dist/collection/components/date-picker/date-picker.css +22 -61
  92. package/dist/collection/components/details/details.css +7 -27
  93. package/dist/collection/components/dialog/dialog.css +20 -79
  94. package/dist/collection/components/drawer/drawer.css +13 -42
  95. package/dist/collection/components/dropdown/dropdown.css +5 -13
  96. package/dist/collection/components/file-upload/file-upload.css +45 -127
  97. package/dist/collection/components/global-nav/global-nav.js +38 -17
  98. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  99. package/dist/collection/components/global-nav/style/global-nav.css +160 -320
  100. package/dist/collection/components/global-search-results/global-search-results.css +81 -248
  101. package/dist/collection/components/global-search-results/global-search-results.js +22 -2
  102. package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
  103. package/dist/collection/components/grid/grid.css +21 -76
  104. package/dist/collection/components/hero/hero.css +22 -63
  105. package/dist/collection/components/icon/icon.css +2 -5
  106. package/dist/collection/components/icon-button/icon-button.css +4 -15
  107. package/dist/collection/components/img/img.css +9 -19
  108. package/dist/collection/components/input/input.css +34 -148
  109. package/dist/collection/components/menu/menu.css +1 -2
  110. package/dist/collection/components/menu-drawer/menu-drawer.css +16 -47
  111. package/dist/collection/components/nav-item/nav-item.css +73 -147
  112. package/dist/collection/components/nav-item/nav-item.js +22 -6
  113. package/dist/collection/components/nav-item/nav-item.js.map +1 -1
  114. package/dist/collection/components/option/option.css +10 -40
  115. package/dist/collection/components/progress-bar/progress-bar.css +5 -26
  116. package/dist/collection/components/range/range.css +20 -56
  117. package/dist/collection/components/rating/rating.css +9 -28
  118. package/dist/collection/components/resize-observe/resize-observe.js +38 -12
  119. package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
  120. package/dist/collection/components/select/select.css +56 -210
  121. package/dist/collection/components/skeleton/skeleton.css +2 -17
  122. package/dist/collection/components/slides/slide.css +4 -13
  123. package/dist/collection/components/slides/slides.css +3 -14
  124. package/dist/collection/components/spinner/spinner.css +34 -122
  125. package/dist/collection/components/split-pane/split-pane.css +4 -18
  126. package/dist/collection/components/sticker/sticker.css +8 -18
  127. package/dist/collection/components/table/table.children.js +11 -11
  128. package/dist/collection/components/table/table.children.js.map +1 -1
  129. package/dist/collection/components/table/table.css +110 -50
  130. package/dist/collection/components/table/table.js +28 -24
  131. package/dist/collection/components/table/table.js.map +1 -1
  132. package/dist/collection/components/table/table.service.js +1 -1
  133. package/dist/collection/components/table/table.service.js.map +1 -1
  134. package/dist/collection/components/table/table.store.js +2 -2
  135. package/dist/collection/components/table/table.store.js.map +1 -1
  136. package/dist/collection/components/tabs/tab-content.css +11 -59
  137. package/dist/collection/components/tabs/tab-group.css +20 -77
  138. package/dist/collection/components/tabs/tab.css +11 -30
  139. package/dist/collection/components/tooltip/tooltip.css +26 -56
  140. package/dist/collection/utils/dom.js.map +1 -1
  141. package/dist/collection/utils/modal.js +1 -1
  142. package/dist/collection/utils/modal.js.map +1 -1
  143. package/dist/collection/utils/tabbable.js +12 -3
  144. package/dist/collection/utils/tabbable.js.map +1 -1
  145. package/dist/components/algolia.js +1 -1
  146. package/dist/components/algolia.js.map +1 -1
  147. package/dist/components/date-picker.js +1 -1
  148. package/dist/components/date-picker.js.map +1 -1
  149. package/dist/components/dom.js.map +1 -1
  150. package/dist/components/dropdown.js +1 -1
  151. package/dist/components/dropdown.js.map +1 -1
  152. package/dist/components/grid.js +1 -1
  153. package/dist/components/grid.js.map +1 -1
  154. package/dist/components/icon-button.js +1 -1
  155. package/dist/components/icon-button.js.map +1 -1
  156. package/dist/components/icon.js +1 -1
  157. package/dist/components/icon.js.map +1 -1
  158. package/dist/components/img.js +1 -1
  159. package/dist/components/img.js.map +1 -1
  160. package/dist/components/input.js +1 -1
  161. package/dist/components/input.js.map +1 -1
  162. package/dist/components/menu.js +1 -1
  163. package/dist/components/menu.js.map +1 -1
  164. package/dist/components/modal.js +1 -1
  165. package/dist/components/modal.js.map +1 -1
  166. package/dist/components/nano-alert.js +1 -1
  167. package/dist/components/nano-alert.js.map +1 -1
  168. package/dist/components/nano-aspect-ratio.js +1 -1
  169. package/dist/components/nano-aspect-ratio.js.map +1 -1
  170. package/dist/components/nano-checkbox-group.js +1 -1
  171. package/dist/components/nano-checkbox-group.js.map +1 -1
  172. package/dist/components/nano-checkbox.js +1 -1
  173. package/dist/components/nano-checkbox.js.map +1 -1
  174. package/dist/components/nano-date-input.js +1 -1
  175. package/dist/components/nano-date-input.js.map +1 -1
  176. package/dist/components/nano-details.js +1 -1
  177. package/dist/components/nano-details.js.map +1 -1
  178. package/dist/components/nano-dialog.js +1 -1
  179. package/dist/components/nano-dialog.js.map +1 -1
  180. package/dist/components/nano-drawer.js +1 -1
  181. package/dist/components/nano-drawer.js.map +1 -1
  182. package/dist/components/nano-file-upload.js +1 -1
  183. package/dist/components/nano-file-upload.js.map +1 -1
  184. package/dist/components/nano-global-nav.js +35 -15
  185. package/dist/components/nano-global-nav.js.map +1 -1
  186. package/dist/components/nano-global-search-results.js +7 -4
  187. package/dist/components/nano-global-search-results.js.map +1 -1
  188. package/dist/components/nano-hero.js +1 -1
  189. package/dist/components/nano-hero.js.map +1 -1
  190. package/dist/components/nano-menu-drawer.js +1 -1
  191. package/dist/components/nano-menu-drawer.js.map +1 -1
  192. package/dist/components/nano-range.js +1 -1
  193. package/dist/components/nano-range.js.map +1 -1
  194. package/dist/components/nano-rating.js +1 -1
  195. package/dist/components/nano-rating.js.map +1 -1
  196. package/dist/components/nano-slide.js +1 -1
  197. package/dist/components/nano-slide.js.map +1 -1
  198. package/dist/components/nano-slides.js +1 -1
  199. package/dist/components/nano-slides.js.map +1 -1
  200. package/dist/components/nano-split-pane.js +1 -1
  201. package/dist/components/nano-split-pane.js.map +1 -1
  202. package/dist/components/nano-tab-content.js +1 -1
  203. package/dist/components/nano-tab-content.js.map +1 -1
  204. package/dist/components/nano-tab-group.js +1 -1
  205. package/dist/components/nano-tab-group.js.map +1 -1
  206. package/dist/components/nano-tab.js +1 -1
  207. package/dist/components/nano-tab.js.map +1 -1
  208. package/dist/components/nano-table.js +34 -31
  209. package/dist/components/nano-table.js.map +1 -1
  210. package/dist/components/nav-item.js +12 -7
  211. package/dist/components/nav-item.js.map +1 -1
  212. package/dist/components/option.js +1 -1
  213. package/dist/components/option.js.map +1 -1
  214. package/dist/components/progress-bar.js +1 -1
  215. package/dist/components/progress-bar.js.map +1 -1
  216. package/dist/components/resize-observe.js +23 -13
  217. package/dist/components/resize-observe.js.map +1 -1
  218. package/dist/components/select.js +1 -1
  219. package/dist/components/select.js.map +1 -1
  220. package/dist/components/skeleton.js +1 -1
  221. package/dist/components/skeleton.js.map +1 -1
  222. package/dist/components/spinner.js +1 -1
  223. package/dist/components/spinner.js.map +1 -1
  224. package/dist/components/sticker.js +1 -1
  225. package/dist/components/sticker.js.map +1 -1
  226. package/dist/components/tabbable.js +12 -3
  227. package/dist/components/tabbable.js.map +1 -1
  228. package/dist/components/tooltip.js +1 -1
  229. package/dist/components/tooltip.js.map +1 -1
  230. package/dist/custom-elements/index.js +157 -107
  231. package/dist/custom-elements/index.js.map +1 -1
  232. package/dist/esm/dom-d3ad49e2.js.map +1 -1
  233. package/dist/esm/index.js +1 -1
  234. package/dist/esm/loader.js +1 -1
  235. package/dist/esm/{modal-215df46b.js → modal-5c9ce466.js} +3 -3
  236. package/dist/esm/{modal-215df46b.js.map → modal-5c9ce466.js.map} +1 -1
  237. package/dist/esm/nano-alert.entry.js +3 -3
  238. package/dist/esm/nano-alert.entry.js.map +1 -1
  239. package/dist/esm/nano-algolia.entry.js +1 -1
  240. package/dist/esm/nano-algolia.entry.js.map +1 -1
  241. package/dist/esm/nano-aspect-ratio.entry.js +1 -1
  242. package/dist/esm/nano-aspect-ratio.entry.js.map +1 -1
  243. package/dist/esm/nano-checkbox-group.entry.js +1 -1
  244. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  245. package/dist/esm/nano-checkbox.entry.js +1 -1
  246. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  247. package/dist/esm/nano-components.js +1 -1
  248. package/dist/esm/nano-datalist_3.entry.js +2 -2
  249. package/dist/esm/nano-datalist_3.entry.js.map +1 -1
  250. package/dist/esm/nano-date-input.entry.js +1 -1
  251. package/dist/esm/nano-date-input.entry.js.map +1 -1
  252. package/dist/esm/nano-date-picker.entry.js +1 -1
  253. package/dist/esm/nano-date-picker.entry.js.map +1 -1
  254. package/dist/esm/nano-details.entry.js +1 -1
  255. package/dist/esm/nano-details.entry.js.map +1 -1
  256. package/dist/esm/nano-dialog.entry.js +3 -3
  257. package/dist/esm/nano-dialog.entry.js.map +1 -1
  258. package/dist/esm/nano-drawer.entry.js +3 -3
  259. package/dist/esm/nano-drawer.entry.js.map +1 -1
  260. package/dist/esm/nano-dropdown.entry.js +2 -2
  261. package/dist/esm/nano-dropdown.entry.js.map +1 -1
  262. package/dist/esm/nano-file-upload.entry.js +1 -1
  263. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  264. package/dist/esm/nano-global-nav-user-profile_3.entry.js +13 -8
  265. package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
  266. package/dist/esm/nano-global-nav.entry.js +35 -15
  267. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  268. package/dist/esm/nano-global-search-results.entry.js +7 -4
  269. package/dist/esm/nano-global-search-results.entry.js.map +1 -1
  270. package/dist/esm/nano-grid_3.entry.js +2 -2
  271. package/dist/esm/nano-grid_3.entry.js.map +1 -1
  272. package/dist/esm/nano-hero.entry.js +1 -1
  273. package/dist/esm/nano-hero.entry.js.map +1 -1
  274. package/dist/esm/nano-icon-button.entry.js +1 -1
  275. package/dist/esm/nano-icon-button.entry.js.map +1 -1
  276. package/dist/esm/nano-icon.entry.js +1 -1
  277. package/dist/esm/nano-icon.entry.js.map +1 -1
  278. package/dist/esm/nano-input.entry.js +1 -1
  279. package/dist/esm/nano-input.entry.js.map +1 -1
  280. package/dist/esm/nano-menu-drawer.entry.js +1 -1
  281. package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
  282. package/dist/esm/nano-progress-bar.entry.js +1 -1
  283. package/dist/esm/nano-progress-bar.entry.js.map +1 -1
  284. package/dist/esm/nano-range.entry.js +1 -1
  285. package/dist/esm/nano-range.entry.js.map +1 -1
  286. package/dist/esm/nano-rating.entry.js +1 -1
  287. package/dist/esm/nano-rating.entry.js.map +1 -1
  288. package/dist/esm/nano-resize-observe_2.entry.js +23 -12
  289. package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
  290. package/dist/esm/nano-slide.entry.js +1 -1
  291. package/dist/esm/nano-slide.entry.js.map +1 -1
  292. package/dist/esm/nano-slides.entry.js +1 -1
  293. package/dist/esm/nano-slides.entry.js.map +1 -1
  294. package/dist/esm/nano-spinner.entry.js +1 -1
  295. package/dist/esm/nano-spinner.entry.js.map +1 -1
  296. package/dist/esm/nano-split-pane.entry.js +1 -1
  297. package/dist/esm/nano-split-pane.entry.js.map +1 -1
  298. package/dist/esm/nano-sticker.entry.js +1 -1
  299. package/dist/esm/nano-sticker.entry.js.map +1 -1
  300. package/dist/esm/nano-tab-content.entry.js +1 -1
  301. package/dist/esm/nano-tab-content.entry.js.map +1 -1
  302. package/dist/esm/nano-tab-group.entry.js +1 -1
  303. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  304. package/dist/esm/nano-tab.entry.js +1 -1
  305. package/dist/esm/nano-tab.entry.js.map +1 -1
  306. package/dist/esm/{nano-table-93d25a68.js → nano-table-a7a5a3f8.js} +36 -33
  307. package/dist/esm/nano-table-a7a5a3f8.js.map +1 -0
  308. package/dist/esm/nano-table.entry.js +1 -1
  309. package/dist/esm/nano-tooltip.entry.js +1 -1
  310. package/dist/esm/nano-tooltip.entry.js.map +1 -1
  311. package/dist/esm/{tabbable-614f515e.js → tabbable-31485ff7.js} +13 -4
  312. package/dist/esm/tabbable-31485ff7.js.map +1 -0
  313. package/dist/esm/{table.worker-5d681b97.js → table.worker-d2b4d395.js} +2 -2
  314. package/dist/esm/table.worker-d2b4d395.js.map +1 -0
  315. package/dist/nano-components/index.esm.js +1 -1
  316. package/dist/nano-components/nano-components.css +1 -1
  317. package/dist/nano-components/nano-components.esm.js +1 -1
  318. package/dist/nano-components/p-11d3a90b.js +5 -0
  319. package/dist/nano-components/p-11d3a90b.js.map +1 -0
  320. package/dist/nano-components/p-14329940.entry.js +5 -0
  321. package/dist/nano-components/p-14329940.entry.js.map +1 -0
  322. package/dist/nano-components/{p-35295332.entry.js → p-151aad1e.entry.js} +5 -5
  323. package/dist/nano-components/{p-35295332.entry.js.map → p-151aad1e.entry.js.map} +1 -1
  324. package/dist/nano-components/p-15543295.entry.js +5 -0
  325. package/dist/nano-components/{p-6e3412d2.entry.js.map → p-15543295.entry.js.map} +1 -1
  326. package/dist/nano-components/p-1e709f87.entry.js +5 -0
  327. package/dist/nano-components/p-1e709f87.entry.js.map +1 -0
  328. package/dist/nano-components/p-1f347342.entry.js +5 -0
  329. package/dist/nano-components/{p-02df1f62.entry.js.map → p-1f347342.entry.js.map} +1 -1
  330. package/dist/nano-components/p-23575705.entry.js +5 -0
  331. package/dist/nano-components/{p-6958df8c.entry.js.map → p-23575705.entry.js.map} +1 -1
  332. package/dist/nano-components/p-244223f0.entry.js +5 -0
  333. package/dist/nano-components/{p-6cd59e58.entry.js.map → p-244223f0.entry.js.map} +1 -1
  334. package/dist/nano-components/p-284dd9a2.entry.js +5 -0
  335. package/dist/nano-components/{p-5107646c.entry.js.map → p-284dd9a2.entry.js.map} +1 -1
  336. package/dist/nano-components/p-2cb4615b.entry.js +5 -0
  337. package/dist/nano-components/{p-e3730878.entry.js.map → p-2cb4615b.entry.js.map} +1 -1
  338. package/dist/nano-components/p-36842a50.entry.js +5 -0
  339. package/dist/nano-components/{p-f69f93e9.entry.js.map → p-36842a50.entry.js.map} +1 -1
  340. package/dist/nano-components/p-3a1026d1.entry.js +5 -0
  341. package/dist/nano-components/p-3a1026d1.entry.js.map +1 -0
  342. package/dist/nano-components/p-40e13cd4.entry.js +5 -0
  343. package/dist/nano-components/p-40e13cd4.entry.js.map +1 -0
  344. package/dist/nano-components/p-41addb3a.entry.js +5 -0
  345. package/dist/nano-components/{p-0a5ad0ef.entry.js.map → p-41addb3a.entry.js.map} +1 -1
  346. package/dist/nano-components/{p-9a385481.js → p-45abbbdd.js} +2 -2
  347. package/dist/nano-components/p-45abbbdd.js.map +1 -0
  348. package/dist/nano-components/p-46b348b7.entry.js +5 -0
  349. package/dist/nano-components/{p-28f713fb.entry.js.map → p-46b348b7.entry.js.map} +1 -1
  350. package/dist/nano-components/p-4b69178e.entry.js +5 -0
  351. package/dist/nano-components/{p-5e33798f.entry.js.map → p-4b69178e.entry.js.map} +1 -1
  352. package/dist/nano-components/p-4f0e14b5.entry.js +5 -0
  353. package/dist/nano-components/{p-8f5e0022.entry.js.map → p-4f0e14b5.entry.js.map} +1 -1
  354. package/dist/nano-components/p-559a6492.entry.js +5 -0
  355. package/dist/nano-components/p-559a6492.entry.js.map +1 -0
  356. package/dist/nano-components/p-601e18d5.entry.js +5 -0
  357. package/dist/nano-components/p-601e18d5.entry.js.map +1 -0
  358. package/dist/nano-components/{p-619a1c8e.js → p-64200e25.js} +2 -2
  359. package/dist/nano-components/{p-39124baa.entry.js.map → p-64200e25.js.map} +0 -0
  360. package/dist/nano-components/p-69e5a37d.entry.js +5 -0
  361. package/dist/nano-components/{p-282987e6.entry.js.map → p-69e5a37d.entry.js.map} +1 -1
  362. package/dist/nano-components/p-751927d1.entry.js +5 -0
  363. package/dist/nano-components/{p-5d81773d.entry.js.map → p-751927d1.entry.js.map} +1 -1
  364. package/dist/nano-components/p-845ae77e.js.map +1 -1
  365. package/dist/nano-components/p-9059c8c1.entry.js +5 -0
  366. package/dist/nano-components/{p-d8e8d7e3.entry.js.map → p-9059c8c1.entry.js.map} +1 -1
  367. package/dist/nano-components/p-92504f7f.entry.js +5 -0
  368. package/dist/nano-components/{p-50fcb11c.entry.js.map → p-92504f7f.entry.js.map} +1 -1
  369. package/dist/nano-components/p-99fbae74.entry.js +5 -0
  370. package/dist/nano-components/{p-8a52a411.entry.js.map → p-99fbae74.entry.js.map} +1 -1
  371. package/dist/nano-components/p-9eeed8f5.entry.js +5 -0
  372. package/dist/nano-components/{p-4c97f05f.entry.js.map → p-9eeed8f5.entry.js.map} +1 -1
  373. package/dist/nano-components/p-a183e3c7.entry.js +5 -0
  374. package/dist/nano-components/{p-b290a970.entry.js.map → p-a183e3c7.entry.js.map} +1 -1
  375. package/dist/nano-components/p-a2e38472.entry.js +5 -0
  376. package/dist/nano-components/p-a2e38472.entry.js.map +1 -0
  377. package/dist/nano-components/p-b87539f0.entry.js +5 -0
  378. package/dist/nano-components/{p-efa8c520.entry.js.map → p-b87539f0.entry.js.map} +1 -1
  379. package/dist/nano-components/p-b9c8b99f.entry.js +5 -0
  380. package/dist/nano-components/p-b9c8b99f.entry.js.map +1 -0
  381. package/dist/nano-components/{p-cb79d1ec.js → p-c9a7c7ea.js} +2 -2
  382. package/dist/nano-components/{p-cb79d1ec.js.map → p-c9a7c7ea.js.map} +1 -1
  383. package/dist/nano-components/{p-c45851c3.entry.js → p-d1c8eca4.entry.js} +2 -2
  384. package/dist/nano-components/{p-c45851c3.entry.js.map → p-d1c8eca4.entry.js.map} +1 -1
  385. package/dist/nano-components/{p-39124baa.entry.js → p-d9d2807a.entry.js} +2 -2
  386. package/dist/nano-components/{p-619a1c8e.js.map → p-d9d2807a.entry.js.map} +0 -0
  387. package/dist/nano-components/{p-916e4b6b.entry.js → p-dba8a88d.entry.js} +2 -2
  388. package/dist/nano-components/{p-916e4b6b.entry.js.map → p-dba8a88d.entry.js.map} +1 -1
  389. package/dist/nano-components/p-e5408bc8.entry.js +5 -0
  390. package/dist/nano-components/{p-c5bb5540.entry.js.map → p-e5408bc8.entry.js.map} +1 -1
  391. package/dist/nano-components/p-f43d1d8e.entry.js +5 -0
  392. package/dist/nano-components/{p-66099557.entry.js.map → p-f43d1d8e.entry.js.map} +1 -1
  393. package/dist/nano-components/p-f7471cca.entry.js +5 -0
  394. package/dist/nano-components/{p-66ad1418.entry.js.map → p-f7471cca.entry.js.map} +1 -1
  395. package/dist/nano-components/p-fe94eeff.entry.js +5 -0
  396. package/dist/nano-components/{p-701e8ebf.entry.js.map → p-fe94eeff.entry.js.map} +1 -1
  397. package/dist/nano-components/p-feb9f164.entry.js +5 -0
  398. package/dist/nano-components/{p-81136f24.entry.js.map → p-feb9f164.entry.js.map} +1 -1
  399. package/dist/themes/nanopore.css +1 -1
  400. package/dist/themes/nanopore.css.map +1 -1
  401. package/dist/types/components/global-nav/global-nav.d.ts +11 -6
  402. package/dist/types/components/global-search-results/global-search-results.d.ts +5 -1
  403. package/dist/types/components/nav-item/nav-item.d.ts +11 -0
  404. package/dist/types/components/resize-observe/resize-observe.d.ts +5 -2
  405. package/dist/types/components/table/table.d.ts +9 -8
  406. package/dist/types/components/table/table.store.d.ts +1 -1
  407. package/dist/types/components.d.ts +12 -0
  408. package/dist/types/utils/dom.d.ts +1 -1
  409. package/docs-json.json +313 -52
  410. package/docs-vscode.json +2 -2
  411. package/package.json +2 -2
  412. package/dist/cjs/nano-table-7dbe799c.js.map +0 -1
  413. package/dist/cjs/tabbable-de4c23d8.js.map +0 -1
  414. package/dist/cjs/table.worker-fe960deb.js.map +0 -1
  415. package/dist/collection/components/global-nav/search-widget.js +0 -4
  416. package/dist/collection/components/global-nav/search-widget.js.map +0 -1
  417. package/dist/esm/nano-table-93d25a68.js.map +0 -1
  418. package/dist/esm/tabbable-614f515e.js.map +0 -1
  419. package/dist/esm/table.worker-5d681b97.js.map +0 -1
  420. package/dist/nano-components/p-02df1f62.entry.js +0 -5
  421. package/dist/nano-components/p-0a5ad0ef.entry.js +0 -5
  422. package/dist/nano-components/p-282987e6.entry.js +0 -5
  423. package/dist/nano-components/p-28b43ee9.entry.js +0 -5
  424. package/dist/nano-components/p-28b43ee9.entry.js.map +0 -1
  425. package/dist/nano-components/p-28f713fb.entry.js +0 -5
  426. package/dist/nano-components/p-37553477.entry.js +0 -5
  427. package/dist/nano-components/p-37553477.entry.js.map +0 -1
  428. package/dist/nano-components/p-42fa11c3.entry.js +0 -5
  429. package/dist/nano-components/p-42fa11c3.entry.js.map +0 -1
  430. package/dist/nano-components/p-4c386a43.js +0 -5
  431. package/dist/nano-components/p-4c386a43.js.map +0 -1
  432. package/dist/nano-components/p-4c97f05f.entry.js +0 -5
  433. package/dist/nano-components/p-50fcb11c.entry.js +0 -5
  434. package/dist/nano-components/p-5107646c.entry.js +0 -5
  435. package/dist/nano-components/p-5d81773d.entry.js +0 -5
  436. package/dist/nano-components/p-5e33798f.entry.js +0 -5
  437. package/dist/nano-components/p-653a25f8.entry.js +0 -5
  438. package/dist/nano-components/p-653a25f8.entry.js.map +0 -1
  439. package/dist/nano-components/p-66099557.entry.js +0 -5
  440. package/dist/nano-components/p-66ad1418.entry.js +0 -5
  441. package/dist/nano-components/p-6958df8c.entry.js +0 -5
  442. package/dist/nano-components/p-6cd59e58.entry.js +0 -5
  443. package/dist/nano-components/p-6e3412d2.entry.js +0 -5
  444. package/dist/nano-components/p-701e8ebf.entry.js +0 -5
  445. package/dist/nano-components/p-716064b6.entry.js +0 -5
  446. package/dist/nano-components/p-716064b6.entry.js.map +0 -1
  447. package/dist/nano-components/p-81136f24.entry.js +0 -5
  448. package/dist/nano-components/p-8a52a411.entry.js +0 -5
  449. package/dist/nano-components/p-8f5e0022.entry.js +0 -5
  450. package/dist/nano-components/p-9a385481.js.map +0 -1
  451. package/dist/nano-components/p-a151dea5.entry.js +0 -5
  452. package/dist/nano-components/p-a151dea5.entry.js.map +0 -1
  453. package/dist/nano-components/p-b290a970.entry.js +0 -5
  454. package/dist/nano-components/p-c5bb5540.entry.js +0 -5
  455. package/dist/nano-components/p-d8e8d7e3.entry.js +0 -5
  456. package/dist/nano-components/p-e3730878.entry.js +0 -5
  457. package/dist/nano-components/p-efa8c520.entry.js +0 -5
  458. package/dist/nano-components/p-f69f93e9.entry.js +0 -5
  459. package/dist/nano-components/p-f71f69c9.entry.js +0 -5
  460. package/dist/nano-components/p-f71f69c9.entry.js.map +0 -1
  461. package/dist/nano-components/p-fa2a6733.entry.js +0 -5
  462. package/dist/nano-components/p-fa2a6733.entry.js.map +0 -1
  463. package/dist/types/components/global-nav/search-widget.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/utils/fetch.ts","src/components/global-nav/style/global-nav.scss?tag=nano-global-nav&encapsulation=shadow","src/components/global-nav/global-nav.tsx"],"names":["async","clientFetch","url","body","customConfig","headers","Accept","Access-Control-Allow-Origin","Content-Type","Cache","config","method","credentials","keepalive","mode","JSON","stringify","id","setTimeout","window","AbortController","controller","timeout","abort","signal","response","fetch","clearTimeout","ok","json","errorMessage","text","Error","globalNavCss","THRESHOLDBREAKS","about","main","login","search","icon","GlobalNav","this","currSize","thresholdsGoingUp","THRESHOLDLIMIT","Object","keys","length","autocompleteEles","currAIndex","isLoggedIn","myAccData","aboutNavItms","siteNavItms","loggedInNavItms","setResizingState","state","debounceSetResizingState","debounce","isResizing","onMenuBtnKeyDown","ev","key","modalOpen","menuClose","menuOpen","onMenuBtnClick","e","preventDefault","menuDiv","style","display","modalIsOpen","menuWrapDiv","addEventListener","focus","preventScroll","threshold","scrollHeight","innerHeight","document","overflow","menuFullScreen","overflowX","onMenuHidden","removeEventListener","activeElement","menuBtn","mainBarDiv","force","relatedTarget","closestElement","closest","secondaryMenuOpen","subMenuClose","target","open","onUserBtnClick","userMenuOpen","onUserBtnKeyDown","onUserMenuBlur","onSearchBtnClick","searchBarShown","searchbarShow","searchbarHide","onSearchBtnKeyDown","onSearchBarShown","searchBarEl","searchInput","setFocus","showAutocomplete","searchValInternal","onSearchBarHidden","height","onSearchInput","value","isSearchValSet","searchLoading","detail","type","onSearchChange","searchValue","autocompleteResults","nanoSearchReset","emit","currentIndex","currentSelectedIndex","processSearchResults","alogliaIndex","attributesToSnippet","hitsPerPage","filters","Math","floor","Date","now","console","error","scopeSearch","onSearchSubmit","showAutocompleteResults","algoliaSearchResults","queries","internalSearchIndeces","map","index","indexName","query","facets","algoliaClient","multipleQueries","nanoSearchError","results","result","i","name","selected","domain","domains","allGroup","nanoSearchResult","client","apiKey","searchApiKey","appId","searchAppId","onSearchIndexChange","indexStr","selectedIndex","find","searchIndex","switchIndexSubmit","onAutocompleteBlur","hits","onAutocompleteInteract","testIndex","el","shadowRoot","found","ele","setActiveElement","click","encodeURIComponent","location","href","protocol","host","[object Object]","env","userProfileUrl","getMyAccountData","remoteDataReady","ssoDataUrl","import","user","myAccountUser","processMyAccLinks","processMyAccData","foundIndex","algoliasearch","addAlgoliaIndeces","searchIndeces","forEach","initIndex","newThreshold","oldThreshold","intersectRatio","ratioChange","thresholdReady","siteContent","minHeight","barsDiv","clientHeight","menuItems","barItems","readTask","Array","from","querySelectorAll","push","writeTask","item","classList","add","remove","ready","attachIO","nanoIsReady","classes","innerWidth","secondaryMenu","stopPropagation","menuContentDiv","displayTransition","userLinkPanel","querySelector","hit","lookFor","_snippetResult","prop","matchLevel","title","substring","autocompleteEle","setAttribute","hasSiteSlot","hasLoggedinSlot","hasPromotionSlot","aboutSlotLen","iconSlotLen","mainSlotLen","overflowSlotLen","searchSlotLen","io","root","IntersectionObserver","data","slice","intersectionRatio","observe","debounceResize","onWindowResize","bind","initAlgoliaClient","ComponentStore","init","MutationObserver","mo","assessSlottedContent","childList","subtree","disconnect","undefined","getMyAccData","content","scrollingUp","currentScopeHits","scopeChangeSuggestions","scopeSuggestReducer","total","currentSuggestReducer","reduce","scopeSuggestions","h","class","role","ref","a","tabindex","innerHTML","autocompleteSnippet","button","onClick","onMouseDown","aria-expanded","hidden","onKeyDown","onSubmit","label","hideLabel","showInlineError","onNanoChange","mask","aria-label","clear-input","placeholder","input","onNanoInput","aria-autocomplete","aria-activedescendant","aria-controls","onNanoFocus","search-icon","search-icon--search","search-icon--show","slot","search-icon--loader","isRtl","ownerDocument","dir","searchWidget","autocompleteList","Host","thresholdClasses","join","search-bar-shown","search-auto-complete-shown","modal-open","resizing","global-nav","scrolling-down","gn-menu","has-promotion","menu-full-screen","secondary-open","div","activeMyAccountSections","includes","msgUrl","msgCount","cartUrl","cartCount","urls","ssoRedirect","link","address","small_avatar_url","forgot_password","logout","auto-resize","break-point-max","quietMode","w","btn","showLogo","logoUrl","src","getAssetPath","alt","showSearch","aria-owns","icon-btn","search-btn","search-btn--open","user-links-btn","search-bar","show","onTouchEnd","origin","dm","multiResults","singleResult","match","domainFor","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","@use 'sass:map';\n@use 'sass:list';\n\n// globals\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// local\n@import 'setup';\n@import 'bar';\n@import 'burger';\n@import 'search';\n@import 'user';\n\n:host {\n /**\n * @prop --bar-vertical-padding. Defaults to 21px;\n * @prop --bar-item-spacing. Defaults to 16px;\n * @prop --bar-background. Defaults to white;\n * @prop --bar-text-color. Defaults to #196c82;\n * @prop --bar-color-shade. Defaults to rgb(19, 89, 111);\n * @prop --bar-color-tint. Defaults to rgb(19, 89, 111);\n * @prop --bar-color-focus. Defaults to #001a21;\n * @prop --bar-user-panel-bg. Defaults to #016d86;\n\n * @prop --menu-background. Defaults to #001a21;\n * @prop --menu-text-color. Defaults to white;\n * @prop --bar-dropdown-bg. Defaults to #196c82;\n * @prop --bar-dropdown-text. Defaults to white;\n * @prop --menu-user-profile-bg. Defaults to #001a21;\n * @prop --menu-user-panel-bg. Defaults to #193037;\n * @prop --menu-padding. Defaults to 12px;\n * @prop --menu-hint-color. Defaults to #33484d;\n * @prop --menu-title-text. Defaults to #{map.get($colors, lightblue)};\n * @prop --menu-icon-color. Defaults to white;\n\n * @prop --login-button-bg. Defaults to #17bb75;\n * @prop --login-button-text. Defaults to white;\n */\n\n --bar-vertical-padding: 21px;\n --bar-item-spacing: 13px;\n --bar-background: white;\n --bar-text-color: #196c82;\n --bar-color-shade: rgb(19, 89, 111);\n --bar-color-tint: rgb(19, 89, 111);\n --bar-color-focus: #001a21;\n --bar-user-panel-bg: #016d86;\n --bar-dropdown-bg: #196c82;\n --bar-dropdown-text: white;\n --menu-background: #001a21;\n --menu-text-color: white;\n --menu-user-profile-bg: #001a21;\n --menu-user-panel-bg: #193037;\n --menu-padding: 12px;\n --menu-hint-color: #33484d;\n --menu-title-text: #{map.get($colors, lightblue)};\n --menu-icon-color: white;\n --login-button-bg: #17bb75;\n --login-button-text: white;\n\n // not sure if this required any more\n --padding: 12px;\n --padding-top: var(--padding);\n --padding-end: var(--padding);\n --padding-bottom: var(--padding);\n --padding-start: var(--padding);\n\n display: block;\n position: relative;\n line-height: 1.5;\n height: 100%;\n font-size: 0.9375em;\n font-size: clamp(0.77rem, 1vw, 0.9rem);\n\n input,\n select,\n button {\n font-family: inherit;\n appearance: none;\n font-size: inherit;\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 { closestElement } from '../../utils/dom';\nimport { clientFetch } from '../../utils/fetch';\nimport { ComponentStore } from '../../utils/store/component-store';\nimport { debounce } from '../../utils/throttle';\nimport { displayTransition } from '../../utils/transitions';\nimport type {\n InputChangeEventDetail,\n SelectChangeEventDetail,\n AlgoliaResults,\n SearchIndex,\n MyAccountLink,\n AloliaSearchResultDetail,\n AlgoliaMultiResult,\n MyAccountUser,\n MyAccountData,\n NavItemEventDetail,\n AlgoliaResultHit,\n AlgoliaNetworkError,\n AlgoliaMultiResults,\n} from '../../interface';\n\n// the 'breakpoints' where different segments of content go into or out-of the burger / overflow menu\nconst THRESHOLDBREAKS = {\n about: 0,\n main: 1,\n login: 2,\n search: 3,\n icon: 4,\n};\n\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: 'style/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 private THRESHOLDLIMIT = Object.keys(THRESHOLDBREAKS).length;\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 // user profile link\n @State() userProfileUrl: string = '';\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 = this.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 * Alternatively, you can use the `ssoDataUrl` prop.\n */\n @Prop() env?: 'local' | 'dev' | 'test' | 'prod' = 'prod';\n\n /**\n * A base url to retrieve global nav / sso data.\n * `nav_bar_data.json` will be appended to this url.\n * An alternative to the pre-defined `env` urls\n */\n @Prop() ssoDataUrl?: string;\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({ mutable: true }) myAccountUser: MyAccountUser = 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 un-read 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('env')\n @Watch('ssoDataUrl')\n async getMyAccData() {\n switch (this.env) {\n case 'prod':\n this.userProfileUrl = 'https://community.nanoporetech.com/profile/me';\n case 'local':\n case 'dev':\n case 'test':\n default:\n this.userProfileUrl =\n 'https://community-test.nanoporetech.com/profile/me';\n break;\n }\n\n if (!this.getMyAccountData || this.myAccData) {\n this.remoteDataReady = true;\n return;\n }\n\n let url = this.ssoDataUrl;\n\n if (!url) {\n switch (this.env) {\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\n const config = { timeout: 5000 };\n\n try {\n if (this.env === 'local') {\n this.myAccData = (await import(\n `./assets/local-my-account.json`\n )) as unknown as MyAccountData;\n } else {\n this.myAccData = await clientFetch(url + 'nav_bar_data.json', config);\n }\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 this.remoteDataReady = true;\n }\n }\n\n @Watch('searchIndex')\n currentSelectedIndex() {\n if (!this.internalSearchIndeces.length) {\n return;\n }\n\n const 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('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\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 < this.THRESHOLDLIMIT - THRESHOLDBREAKS.icon)\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 < this.THRESHOLDLIMIT - THRESHOLDBREAKS.login)\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 < this.THRESHOLDLIMIT - THRESHOLDBREAKS.main)\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 < this.THRESHOLDLIMIT - THRESHOLDBREAKS.about)\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 } else {\n this.el.shadowRoot.removeEventListener('click', this.onAutocompleteBlur);\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 = this.THRESHOLDLIMIT;\n }\n\n // General classes for visuals\n\n private thresholdClasses() {\n const 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 (\n this.threshold < this.THRESHOLDLIMIT &&\n window.innerWidth > this.currSize\n ) {\n this.threshold = this.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 const 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 const lookFor = ['title']; // , 'body'\n if (hit._snippetResult) {\n const 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<InputEvent>) => {\n this.searchValInternal = this.searchInput.value;\n\n if (!this.isSearchValSet()) {\n this.searchLoading = false;\n return;\n }\n\n if (ev.detail.type === 'input') {\n this.showAutocomplete = false;\n this.searchLoading = true;\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 if (!this.currentIndex) this.currentSelectedIndex();\n\n const 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 const 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 const 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 const 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 const 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 const 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 const scopeSuggestReducer = (\n total: number,\n result: AlgoliaMultiResult\n ) => {\n return result.index !== this.currentIndex.index\n ? total + result.hits.length\n : total;\n };\n const 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 onKeyDown={this.onAutocompleteInteract}\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 <nano-option\n selected={index.index === this.searchIndex}\n value={index.index}\n >\n {index.name || index.index}\n </nano-option>\n );\n })}\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 Nanopore\"\n type=\"text\"\n ref={(input) => (this.searchInput = input)}\n onNanoChange={this.onSearchChange}\n onNanoInput={this.onSearchInput}\n onKeyDown={this.onAutocompleteInteract}\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 <button\n class={{\n 'search-icon': true,\n 'search-icon--search': true,\n 'search-icon--show': !this.searchValInternal.length,\n }}\n slot=\"end\"\n onMouseDown={(e) => {\n this.searchValInternal = this.searchInput.value;\n this.onSearchSubmit(e, true);\n }}\n >\n <nano-icon name=\"light/search\"></nano-icon>\n </button>\n <span\n class={{\n 'search-icon': true,\n 'search-icon--loader': true,\n 'search-icon--show': this.searchLoading,\n }}\n slot=\"end\"\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 const isRtl = (this.el.ownerDocument as Document).dir === 'rtl';\n\n const 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 {/* START BURGER / OVERFLOW MENU */}\n <nav\n id=\"global-nav-menu\"\n class={{\n 'gn-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=\"gn-menu_wrap\"\n ref={(div) => (this.menuWrapDiv = div)}\n tabindex=\"-1\"\n >\n <div class=\"gn-menu_actions\">\n <button\n class=\"menu-btn icon-btn icon-btn\"\n onMouseDown={this.onMenuBtnClick}\n onKeyDown={this.onMenuBtnKeyDown}\n >\n {this.threshold < this.THRESHOLDLIMIT - 3 && (\n <nano-icon\n name=\"light/times\"\n aria-label=\"close menu\"\n ></nano-icon>\n )}\n {this.threshold >= this.THRESHOLDLIMIT - 3 && (\n <nano-icon\n name=\"light/bars\"\n aria-label=\"close menu\"\n ></nano-icon>\n )}\n </button>\n\n {this.threshold <\n this.THRESHOLDLIMIT - THRESHOLDBREAKS.icon && [\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=\"gn-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=\"gn-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 <\n this.THRESHOLDLIMIT - THRESHOLDBREAKS.main &&\n !!this.mainSlotLen && <slot name=\"main\" />}\n </nav>\n\n {/* ABOUT AND SITE MENU IN BURGER */}\n {(((!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.hasSiteSlot) ||\n !!this.siteNavItms.length) && (\n <div>\n {(!!this.aboutSlotLen || !!this.aboutNavItms.length) && [\n // About Menu as an open list (before more items are added to burger)`\n (this.threshold >=\n this.THRESHOLDLIMIT - (THRESHOLDBREAKS.about + 1) ||\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 // About Menu as hidden list (when more items are added to burger)\n ((this.threshold <\n this.THRESHOLDLIMIT - (THRESHOLDBREAKS.about + 1) &&\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 && <slot name=\"about\" />}\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 {/* SITES MENU (Always in burger) */}\n {(this.hasSiteSlot || !!this.siteNavItms.length) && [\n (this.threshold >= this.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 < this.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 <\n this.THRESHOLDLIMIT - THRESHOLDBREAKS.login &&\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 {!!this.myAccountUser?.small_avatar_url && (\n <nano-global-nav-user-profile\n myAccountUser={this.myAccountUser}\n userProfileUrl={this.userProfileUrl}\n ></nano-global-nav-user-profile>\n )}\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 {/* END BURGER / OVERFLOW MENU */}\n\n {/* START MAIN NAV BAR */}\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 <\n this.THRESHOLDLIMIT - THRESHOLDBREAKS.icon) ||\n (this.isLoggedIn &&\n (!!this.loggedInNavItms.length || this.hasLoggedinSlot) &&\n this.threshold <\n this.THRESHOLDLIMIT - THRESHOLDBREAKS.login) ||\n (!!this.mainSlotLen &&\n this.threshold <\n this.THRESHOLDLIMIT - THRESHOLDBREAKS.main) ||\n ((!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold <\n this.THRESHOLDLIMIT - THRESHOLDBREAKS.about) ||\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 class=\"nav-links nav-links--main\">\n <slot name=\"main\" />\n </div>\n\n {/* search widget displayed in the bar (there is enough space to show it) */}\n {this.mainSlotLen === 0 &&\n this.threshold >=\n this.THRESHOLDLIMIT - THRESHOLDBREAKS.search && [\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 {/* Bar Icon buttons */}\n\n {/* Bar search icon button (when not enough to show search in bar) */}\n {(this.mainSlotLen > 0 ||\n this.threshold <\n this.THRESHOLDLIMIT - THRESHOLDBREAKS.search) &&\n ((this.showSearch && !!this.internalSearchIndeces.length) ||\n !!this.searchSlotLen) && (\n <button\n class={{\n 'icon-btn': true,\n 'search-btn': true,\n 'search-btn--open': this.searchBarShown,\n }}\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 {/* Bar cart and notifications */}\n {this.threshold >=\n this.THRESHOLDLIMIT - THRESHOLDBREAKS.icon && [\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=\"gn-menu_actions-counter\">\n {this.msgCount}\n </span>\n )}\n </a>\n ),\n this.cartUrl && !!this.cartCount && (\n <a href={this.cartUrl} class=\"icon-btn\">\n <nano-icon name=\"light/shopping-cart\"></nano-icon>\n {this.cartCount > 0 && (\n <span class=\"gn-menu_actions-counter\">\n {this.cartCount}\n </span>\n )}\n </a>\n ),\n ],\n ]}\n\n {/* Bar about links */}\n {(!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold >=\n this.THRESHOLDLIMIT - THRESHOLDBREAKS.about && (\n <nav\n class=\"nav-links nav-links--sub\"\n aria-label=\"About the company. Links\"\n >\n <slot name=\"about\" />\n {!!this.aboutNavItms.length && (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-bar\">\n <a\n href={this.aboutNavItms[0].address}\n target={this.aboutNavItms[0].target}\n >\n {this.aboutNavItms[0].title}\n </a>\n </nano-nav-item>\n )}\n </nav>\n )}\n\n {/* Bar login button / User panel */}\n {this.myAccData &&\n (!this.activeMyAccountSections ||\n this.activeMyAccountSections.includes('loggedin')) &&\n this.threshold >=\n this.THRESHOLDLIMIT - THRESHOLDBREAKS.login && [\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 {!!this.myAccountUser?.small_avatar_url && (\n <nano-global-nav-user-profile\n myAccountUser={this.myAccountUser}\n userProfileUrl={this.userProfileUrl}\n ></nano-global-nav-user-profile>\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 {/* Search widget shown in bar underneath main bar when there is not enough space */}\n {(this.mainSlotLen > 0 ||\n this.threshold <\n this.THRESHOLDLIMIT - THRESHOLDBREAKS.search) && (\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 <div class=\"sticker-trigger\" />\n {/* END MAIN NAV BAR */}\n\n {(this.threshold < this.THRESHOLDLIMIT - 3 ||\n 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 const domain = this.myAccData.domains.find((dm) => dm.origin === origin);\n return domain ? domain.domain : '';\n }\n\n private processSearchResults(results: AlgoliaMultiResults | AlgoliaResults) {\n const multiResults = results as AlgoliaMultiResults;\n const 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 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,5 +0,0 @@
1
- /*!
2
- * Web Components for Nanopore digital Web Apps
3
- */
4
- import{r,h as a,g as e}from"./p-1fe12320.js";const t=":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--height:1em;--track-color:rgba(var(--nano-track-rgb, 228, 230, 232), 1);--indicator-color:rgba(var(--nano-indicator-rgb, 84, 140, 175), 1);--label-color:var(--nano-color-white, white);display:block}.progress-bar{position:relative;background-color:var(--track-color);height:var(--height);border-radius:var(--nano-layer-border-radius, var(--nano-border-radius-medium, 4px));overflow:hidden}.progress-bar__indicator{height:100%;font-size:0.75em;background-color:var(--indicator-color);color:var(--label-color);text-align:center;white-space:nowrap;overflow:hidden;-webkit-transition:0.4s width, 0.4s background-color;transition:0.4s width, 0.4s background-color;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transform-origin:left;transform-origin:left}.progress-bar--indeterminate .progress-bar__indicator{-webkit-animation:indeterminate 2.5s infinite cubic-bezier(0.37, 0, 0.63, 1);animation:indeterminate 2.5s infinite cubic-bezier(0.37, 0, 0.63, 1)}@-webkit-keyframes indeterminate{0%{scale:1 1;-webkit-transform:translateX(-100%) translateZ(0);transform:translateX(-100%) translateZ(0)}75%,100%{scale:1 1;-webkit-transform:translateX(100%) translateZ(0);transform:translateX(100%) translateZ(0)}}@keyframes indeterminate{0%{scale:1 1;-webkit-transform:translateX(-100%) translateZ(0);transform:translateX(-100%) translateZ(0)}75%,100%{scale:1 1;-webkit-transform:translateX(100%) translateZ(0);transform:translateX(100%) translateZ(0)}}";const s=class{constructor(a){r(this,a);this.value=0;this.indeterminate=false;this.showPercent=false}render(){return a("div",{part:"base",class:{"progress-bar":true,"progress-bar--indeterminate":this.indeterminate},role:"progressbar",title:this.host.title||undefined,"aria-label":"Progress","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":this.indeterminate?null:this.value},a("div",{part:"indicator",class:"progress-bar__indicator",style:{width:!this.indeterminate?`${this.value}%`:undefined}},a("span",{part:"label",class:"progress-bar__label"},a("slot",null,!this.indeterminate&&this.showPercent?`${this.value}%`:""))))}get host(){return e(this)}};s.style=t;export{s as nano_progress_bar};
5
- //# sourceMappingURL=p-66099557.entry.js.map
@@ -1,5 +0,0 @@
1
- /*!
2
- * Web Components for Nanopore digital Web Apps
3
- */
4
- import{r as t,h as a,a as e,g as r}from"./p-1fe12320.js";const n=":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{display:block;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-animation:opacity 0.3s ease-in-out forwards;animation:opacity 0.3s ease-in-out forwards;opacity:1}@media only screen and (max-width: 768px){:host([animation-dir=left]){-webkit-animation:slide-right 0.3s ease-in-out;animation:slide-right 0.3s ease-in-out;opacity:1}:host([animation-dir=right]){-webkit-animation:slide-left 0.3s ease-in-out;animation:slide-left 0.3s ease-in-out;opacity:1}}.nano-tab-content{position:relative}@-webkit-keyframes opacity{0%{opacity:0}100%{opacity:100%}}@keyframes opacity{0%{opacity:0}100%{opacity:100%}}@-webkit-keyframes slide-left{0%{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}50%{-webkit-transform:translate3d(0%) translate3d(-0.9em);transform:translate3d(0%) translate3d(-0.9em)}100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@keyframes slide-left{0%{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}50%{-webkit-transform:translate3d(0%) translate3d(-0.9em);transform:translate3d(0%) translate3d(-0.9em)}100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@-webkit-keyframes slide-right{0%{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}50%{-webkit-transform:translateX(0%) translate3d(0.9em);transform:translateX(0%) translate3d(0.9em)}100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@keyframes slide-right{0%{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}50%{-webkit-transform:translateX(0%) translate3d(0.9em);transform:translateX(0%) translate3d(0.9em)}100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@media (prefers-reduced-motion: reduce){*{-webkit-animation:none !important;animation:none !important}}";let s=0;const i=class{constructor(a){t(this,a);this.tabContentId=`nano-tab-content-${++s}`;this.name="";this.active=false}render(){return a(e,{id:this.host.id||this.tabContentId,style:{display:this.active?"block":"none"},role:"tabpanel","aria-hidden":this.active?"false":"true"},a("div",{part:"base",class:"nano-tab-content"},a("slot",null)))}get host(){return r(this)}};i.style=n;export{i as nano_tab_content};
5
- //# sourceMappingURL=p-66ad1418.entry.js.map
@@ -1,5 +0,0 @@
1
- /*!
2
- * Web Components for Nanopore digital Web Apps
3
- */
4
- import{r as s,c as t,h as i,g as n}from"./p-1fe12320.js";import{f as a}from"./p-f8f89998.js";import{c as o}from"./p-ee045579.js";const r=".sc-nano-rating-h{box-sizing:border-box}*.sc-nano-rating,*.sc-nano-rating::before,*.sc-nano-rating::after{box-sizing:border-box}[hidden].sc-nano-rating{display:none !important}.sc-nano-rating-h{--symbol-color:#b5aea7;--symbol-color-active:#f5cc49;--symbol-spacing:0.25rem;--focus-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));display:inline-block}.rating-wrap.sc-nano-rating{position:relative;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-after:0;margin-block-end:0;-webkit-margin-start:calc(var(--symbol-spacing) * -1);margin-inline-start:calc(var(--symbol-spacing) * -1);-webkit-margin-end:calc(var(--symbol-spacing) * -1);margin-inline-end:calc(var(--symbol-spacing) * -1)}.rating.sc-nano-rating{position:relative;border-radius:5px;vertical-align:middle;inline-size:100%;-webkit-transition:-webkit-box-shadow 0.15s ease;transition:-webkit-box-shadow 0.15s ease;transition:box-shadow 0.15s ease;transition:box-shadow 0.15s ease, -webkit-box-shadow 0.15s ease}.rating.sc-nano-rating:focus{outline:none}.rating.focus-visible.sc-nano-rating:focus{-webkit-box-shadow:var(--focus-shadow);box-shadow:var(--focus-shadow)}.rating__symbols.sc-nano-rating{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:var(--symbol-size);color:var(--symbol-color);white-space:nowrap;cursor:pointer;line-height:0;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.rating__symbols--inactive.sc-nano-rating .rating__symbol.sc-nano-rating>.sc-nano-rating:not(nano-icon){background-color:currentColor !important}.rating__symbols.sc-nano-rating>*.sc-nano-rating{margin:var(--symbol-spacing)}.rating__symbols--indicator.sc-nano-rating{position:absolute;inset-block-start:0;inset-inline-start:0;color:var(--symbol-color-active);pointer-events:none;inline-size:100%}.rating__symbol.sc-nano-rating{-webkit-transition:0.2s -webkit-transform;transition:0.2s -webkit-transform;transition:0.2s transform;transition:0.2s transform, 0.2s -webkit-transform;text-align:center}.rating__symbol--hover.sc-nano-rating{-webkit-transform:scale(1.2);transform:scale(1.2)}.rating--disabled.sc-nano-rating .rating__symbols.sc-nano-rating,.rating--readonly.sc-nano-rating .rating__symbols.sc-nano-rating{cursor:default}.rating--disabled.sc-nano-rating .rating__symbol.sc-nano-rating,.rating--readonly.sc-nano-rating .rating__symbol.sc-nano-rating{-webkit-transform:none !important;transform:none !important}.rating--disabled.sc-nano-rating{opacity:0.5}.rating--disabled.sc-nano-rating .rating__symbols.sc-nano-rating{cursor:not-allowed}";const e=class{constructor(i){s(this,i);this.nanoChange=t(this,"nanoChange",7);this.nanoBlur=t(this,"nanoBlur",7);this.nanoFocus=t(this,"nanoFocus",7);this.handleClick=s=>{if(this.disabled||this.readonly){return}const t=this.getValueFromMousePosition(s);this.value=t===this.value?0:t;this.isHovering=false};this.handleKeyDown=s=>{if(this.disabled||this.readonly){return}if(s.key==="ArrowLeft"){const t=s.shiftKey?1:this.precision;this.value=this.roundToPrecision(Math.max(0,this.value-t));s.preventDefault()}if(s.key==="ArrowRight"){const t=s.shiftKey?1:this.precision;this.value=this.roundToPrecision(Math.min(this.max,this.value+t));s.preventDefault()}if(s.key==="Home"){this.value=0;s.preventDefault()}if(s.key==="End"){this.value=this.max;s.preventDefault()}};this.handleMouseEnter=()=>{this.isHovering=true};this.handleMouseLeave=()=>{this.isHovering=false};this.handleFocus=()=>{this.nanoFocus.emit()};this.handleBlur=()=>{this.nanoBlur.emit()};this.handleMouseMove=s=>{this.hoverValue=this.getValueFromMousePosition(s)};this.hoverValue=0;this.isHovering=false;this.value=0;this.max=5;this.precision=1;this.readonly=false;this.disabled=false;this.name="";this.symbolName="solid/star";this.symbol=s=>'<nano-icon name="'+this.symbolName+'"></nano-icon>'}handleValueChange(){this.nanoChange.emit()}handleSymbolChange(){this.symbol=s=>'<nano-icon name="'+this.symbolName+'"></nano-icon>'}async setFocus(){this.rating.focus()}async removeFocus(){this.rating.blur()}getValueFromMousePosition(s){const t=this.rating.getBoundingClientRect().left;const i=this.rating.getBoundingClientRect().width;let n;n=this.roundToPrecision((s.clientX-t)/i*this.max,this.precision);if(this.isRtl)n=this.max+this.precision-n;return o(n,0,this.max)}roundToPrecision(s,t=.5){const i=1/t;return Math.ceil(s*i)/i}clip(s){if(!this.rating)return;const t=this.rating.getBoundingClientRect().width;if(this.isRtl)return`rect(0, ${t}px, 2em, ${t-t/100*(s/this.max*100)}px)`;return`rect(0, ${t/100*(s/this.max*100)}px, 2em, 0)`}componentDidLoad(){a.observe(this.rating);setTimeout((()=>this.indicator.style.clip=this.clip(this.value)),20)}connectedCallback(){this.isRtl=this.host.dir==="rtl"||this.host.ownerDocument.dir==="rtl"}disconnectedCallback(){a.unobserve(this.rating)}render(){this.isRtl=this.host.dir==="rtl"||this.host.ownerDocument.dir==="rtl";const s=Array.from(Array(this.max).keys());let t=0;if(this.disabled||this.readonly){t=this.value}else{t=this.isHovering?this.hoverValue:this.value}return i("div",{class:"rating-wrap"},i("div",{dir:this.isRtl?"rtl":null,ref:s=>this.rating=s,part:"base",class:{rating:true,"rating--readonly":this.readonly,"rating--disabled":this.disabled},"aria-disabled":this.disabled?"true":"false","aria-readonly":this.readonly?"true":"false","aria-valuenow":this.value,"aria-valuemin":0,"aria-valuemax":this.max,tabIndex:this.disabled?-1:0,onClick:this.handleClick,onKeyDown:this.handleKeyDown,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,onMouseMove:this.handleMouseMove,onFocus:this.handleFocus,onBlur:this.handleBlur},i("span",{class:"rating__symbols rating__symbols--inactive"},s.map((s=>i("span",{class:{rating__symbol:true,"rating__symbol--hover":this.isHovering&&Math.ceil(t)===s+1},role:"presentation",onMouseEnter:this.handleMouseEnter,innerHTML:this.symbol(s+1)})))),i("span",{ref:s=>this.indicator=s,class:"rating__symbols rating__symbols--indicator",style:{clip:this.clip(t)}},s.map((s=>i("span",{class:{rating__symbol:true,"rating__symbol--hover":this.isHovering&&Math.ceil(t)===s+1},role:"presentation",innerHTML:this.symbol(s+1)})))),i("input",{type:"hidden",name:this.name,value:this.value,disabled:this.disabled||this.readonly})))}get host(){return n(this)}static get watchers(){return{value:["handleValueChange"],symbolName:["handleSymbolChange"]}}};e.style=r;export{e as nano_rating};
5
- //# sourceMappingURL=p-6958df8c.entry.js.map
@@ -1,5 +0,0 @@
1
- /*!
2
- * Web Components for Nanopore digital Web Apps
3
- */
4
- import{r as t,c as a,h as o,a as i,g as n}from"./p-1fe12320.js";import{g as r,a as s}from"./p-845ae77e.js";import{f as e}from"./p-f8f89998.js";import{s as l}from"./p-885b6950.js";import{C as b}from"./p-e3860f00.js";import{c}from"./p-7b3638b7.js";import{d}from"./p-167b9165.js";import"./p-9746b0a5.js";import"./p-69a3e911.js";const h=':host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--indicator-transition:var(--nano-transition-fast, 0.3s);--indicator-color:#90c6e7;--indicator-track-color:#e4e6e8;--indicator-size:0;--border-radius:var(--nano-layer-border-radius, var(--nano-border-radius-medium, 4px));--background-rgb:var(--nano-layer-bg-rgb, 255, 255, 255);--scroll-btn-color:"currentColor";--content-padding:2rem 2.5rem;--content-bg:rgb(var(--background-rgb));--content-border-radius:var(--border-radius);--tabs-padding-start:2.5rem;--tabs-padding-end:2.5rem;--tabs-padding-top:0;--tabs-padding-bottom:0;--tabs-container-bg:"transparent";--tabs-bg-rgb:var(--background-rgb);--tab-border-radius:var(--border-radius);--tab-text-color:#007495;--shadow-opacity:0.1;--fade-transparency:0;display:block;position:relative;z-index:var(--nano-layer-index-raised, 5)}@media only screen and (max-width: 768px){:host{--tabs-padding-start:1.5rem;--tabs-padding-end:1.5rem}}:host ::slotted(nano-tab){--tab-indicator-color:var(--indicator-color);--bg-rgb:var(--tabs-bg-rgb);--border-radius:var(--tab-border-radius)}:host([placement=start]),:host([placement=end]){--content-padding:1rem;--tabs-padding-start:0;--tabs-padding-end:0;--tabs-padding-top:0;--tabs-padding-bottom:0;--tab-text-color:#455556;--indicator-color:#007495;--indicator-size:2px}:host(.nano-color){--indicator-color:var(--nano-color-tint, var(--nano-color-primary-tint, #2689a5));--tab-text-color:rgba(var(--nano-color-base-rgb), 0.7)}:host(.nano-color) ::slotted(nano-tab){--active-text-color:var(--nano-color-shade, var(--nano-color-primary-shade, #00637f))}.nano-tab-group{display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:0;width:100%;-webkit-box-flex:inherit;-ms-flex:inherit;flex:inherit}.nano-tab-group__tabs{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;width:100%}.nano-tab-group__active-tab-indicator{position:absolute;-webkit-transition:var(--indicator-transition) transform ease, var(--indicator-transition) width ease;transition:var(--indicator-transition) transform ease, var(--indicator-transition) width ease}.nano-tab-group__body{background:var(--content-bg)}.nano-tab-group:not(.focus-visible) ::slotted(nano-tab){--focus-shadow:none}.nano-tab-group .nano-tab-group__nav-container{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;background:var(--tabs-container-bg)}.nano-tab-group button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.nano-tab-group__scroll-button{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;position:absolute;inset-block:0;border:unset;z-index:2;-webkit-transition:var(--nano-transition-fast, 0.3s) ease opacity;transition:var(--nano-transition-fast, 0.3s) ease opacity;opacity:0;color:var(--scroll-btn-color)}.nano-tab-group__scroll-button:focus{outline:none}.nano-tab-group__scroll-button.is-shown{opacity:1}.nano-tab-group__scroll-button.focus-visible:focus{-webkit-box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8))) inset;box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8))) inset}.nano-tab-group__scroll-button--left{inset-inline-start:0}.nano-tab-group__scroll-button--right{inset-inline-end:0}.nano-tab-group__scroll-button nano-icon{font-size:16px}.nano-tab-group--top{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.nano-tab-group--top .nano-tab-group__nav-container::after{content:"";width:86%;-webkit-box-shadow:0 10px 40px 10px rgba(0, 0, 0, var(--shadow-opacity));box-shadow:0 10px 40px 10px rgba(0, 0, 0, var(--shadow-opacity));height:10px;position:absolute;inset-inline-start:7%;inset-block-end:-10px;border-radius:10px;z-index:-1}.nano-tab-group--top .nano-tab-group__nav{scrollbar-width:none;-ms-overflow-style:none;padding-inline:var(--tabs-padding-start) var(--tabs-padding-end);padding-block:var(--tabs-padding-top) var(--tabs-padding-bottom);display:-webkit-box;display:-ms-flexbox;display:flex;overflow-x:auto;overflow-y:hidden;-webkit-transition:var(--nano-transition-medium, 0.5s) ease;transition:var(--nano-transition-medium, 0.5s) ease;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:-webkit-gradient(linear, right top, left top, color-stop(0, rgba(0, 0, 0, var(--fade-transparency))), color-stop(rgba(0, 0, 0, var(--fade-transparency))), color-stop(black), color-stop(black), color-stop(rgba(0, 0, 0, var(--fade-transparency))), to(rgba(0, 0, 0, var(--fade-transparency))));-webkit-mask-image:linear-gradient(to left, rgba(0, 0, 0, var(--fade-transparency)) 0, rgba(0, 0, 0, var(--fade-transparency)) var(--tabs-padding-start), black calc(var(--tabs-padding-start) * 2), black calc(100% - var(--tabs-padding-end) * 2), rgba(0, 0, 0, var(--fade-transparency)) calc(100% - var(--tabs-padding-end)), rgba(0, 0, 0, var(--fade-transparency)));mask-image:-webkit-gradient(linear, right top, left top, color-stop(0, rgba(0, 0, 0, var(--fade-transparency))), color-stop(rgba(0, 0, 0, var(--fade-transparency))), color-stop(black), color-stop(black), color-stop(rgba(0, 0, 0, var(--fade-transparency))), to(rgba(0, 0, 0, var(--fade-transparency))));mask-image:linear-gradient(to left, rgba(0, 0, 0, var(--fade-transparency)) 0, rgba(0, 0, 0, var(--fade-transparency)) var(--tabs-padding-start), black calc(var(--tabs-padding-start) * 2), black calc(100% - var(--tabs-padding-end) * 2), rgba(0, 0, 0, var(--fade-transparency)) calc(100% - var(--tabs-padding-end)), rgba(0, 0, 0, var(--fade-transparency)));-webkit-mask-size:calc(100% + var(--tabs-padding-end) * 4);mask-size:calc(100% + var(--tabs-padding-end) * 4);-webkit-mask-position:calc(var(--tabs-padding-end) * -2);mask-position:calc(var(--tabs-padding-end) * -2)}.nano-tab-group--top .nano-tab-group__nav::-webkit-scrollbar{inline-size:0;block-size:0}.nano-tab-group--top .nano-tab-group__nav::after{content:" ";padding-inline:0 var(--tabs-padding-end);padding-block:var(--tabs-padding-top) var(--tabs-padding-bottom);line-height:1;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.nano-tab-group--top.nano-tab-group--has-scroll-controls-left .nano-tab-group__nav{-webkit-mask-position:0;mask-position:0;-webkit-mask-size:calc(100% + var(--tabs-padding-end) * 2);mask-size:calc(100% + var(--tabs-padding-end) * 2)}.nano-tab-group--top.nano-tab-group--has-scroll-controls-right .nano-tab-group__nav{-webkit-mask-position:calc(var(--tabs-padding-end) * -1);mask-position:calc(var(--tabs-padding-end) * -1);-webkit-mask-size:calc(100% + var(--tabs-padding-end));mask-size:calc(100% + var(--tabs-padding-end))}.nano-tab-group--top.nano-tab-group--has-scroll-controls-left.nano-tab-group--has-scroll-controls-right .nano-tab-group__nav{-webkit-mask-size:100%;mask-size:100%;-webkit-mask-position:0;mask-position:0}.nano-tab-group--top .nano-tab-group__tabs{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;text-align:center;color:var(--tab-text-color);width:auto}.nano-tab-group--top .nano-tab-group__active-tab-indicator{inset-block-end:-2px;-webkit-border-after:solid var(--indicator-size) var(--indicator-color);border-block-end:solid var(--indicator-size) var(--indicator-color)}.nano-tab-group--top .nano-tab-group__body{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2;background:var(--content-bg);position:relative;overflow:hidden;width:auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:var(--content-padding);border-radius:var(--content-border-radius);-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.nano-tab-group--start{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.nano-tab-group--start .nano-tab-group__tabs{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;color:var(--tab-text-color);background:rgb(var(--tabs-bg-rgb));-webkit-border-start:solid var(--indicator-size) var(--indicator-track-color);border-inline-start:solid var(--indicator-size) var(--indicator-track-color);text-align:start}.nano-tab-group--start .nano-tab-group__active-tab-indicator{inset-inline-start:-2px;-webkit-border-start:solid var(--indicator-size) var(--indicator-color);border-inline-start:solid var(--indicator-size) var(--indicator-color)}.nano-tab-group--start .nano-tab-group__body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2;padding:var(--content-padding);overflow:hidden;border-start-start-radius:0;border-start-end-radius:var(--content-border-radius);border-end-end-radius:var(--content-border-radius);border-end-start-radius:0}';const p=class{constructor(o){t(this,o);this.nanoTabShow=a(this,"nanoTabShow",7);this.nanoTabHide=a(this,"nanoTabHide",7);this.nanoTabWillClose=a(this,"nanoTabWillClose",7);this.nanoTabClose=a(this,"nanoTabClose",7);this.initialTouchX=null;this.initialTouchY=null;this.mutationObservers=new WeakMap;this.updateScrollControls=()=>{if(this.noScrollControls){this.hasScrollControls=false}else{this.hasScrollControls=["top"].includes(this.placement)&&this.nav.scrollWidth>this.nav.clientWidth&&this.nav.scrollWidth>this.tabs.clientWidth}};this.handleClick=t=>{const a=t.target;const o=a.closest("nano-tab");if(o)this.setActiveTab(o)};this.handleKeyDown=t=>{if(["Enter"," "].includes(t.key)){const a=t.target;const o=a.closest("nano-tab");if(o){this.setActiveTab(o);t.preventDefault()}}if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(t.key)){const a=document.activeElement;if(a&&a.tagName.toLowerCase()==="nano-tab"){const o=this.getAllActiveTabs;let i=o.indexOf(a);if(t.key==="Home"){i=0}else if(t.key==="End"){i=o.length-1}else if(this.isRtl&&t.key==="ArrowRight"||!this.isRtl&&t.key==="ArrowLeft"){i=Math.max(0,i-1)}else if(this.isRtl&&t.key==="ArrowLeft"||!this.isRtl&&t.key==="ArrowRight"){i=Math.min(o.length-1,i+1)}o[i].setFocus();if(["top"].includes(this.placement)){l(o[i],this.nav,"horizontal","center")}t.stopPropagation();t.preventDefault()}}};this.handleTabScroll=()=>{if(!this.hasScrollControls){this.hideControlLeft=this.hideControlRight=true;return}const t=this.isRtl?this.nav.scrollLeft===0:this.nav.scrollWidth-this.nav.scrollLeft===this.nav.clientWidth;const a=this.isRtl?this.nav.scrollWidth+this.nav.scrollLeft===this.nav.clientWidth:this.nav.scrollLeft===0;if(a){this.hideControlLeft=true;this.hideControlRight=false}else if(t){this.hideControlLeft=false;this.hideControlRight=true}else{this.hideControlRight=false;this.hideControlLeft=false}};this.handleBtnClick=(t=false)=>{const a=this.getNavWidth();let o;if(t)o=this.nav.scrollLeft+a-20;else o=this.nav.scrollLeft-a+20;try{this.nav.scroll({left:o,behavior:"smooth"})}catch(t){this.nav.scrollLeft=o}};this.handleTouchStart=t=>{if(this.disableSwipe)return;const a=t.changedTouches[0];this.initialTouchX=a.pageX;this.initialTouchY=a.pageY};this.handleTouchEnd=t=>{if(this.disableSwipe)return;const a=t.changedTouches[0];const o=a.pageX-this.initialTouchX;const i=a.pageY-this.initialTouchY;const n=70;const r=this.initialTouchX-a.clientX;const s=this.initialTouchY-a.clientY;const e=Math.abs(o)>=n&&Math.abs(i)<=n;const l=this.getAllActiveTabs;const b=l.findIndex((t=>t.active));if(e){const t=o<0&&this.placement==="top"||o>0&&this.placement!=="top"?1:-1;if(l[b+t]){this.setActiveTab(l[b+t]);if(Math.abs(r)>Math.abs(s)){if(r>0)this.activePanel.setAttribute("animation-dir","left");else this.activePanel.setAttribute("animation-dir","right")}}}this.initialTouchX=null;this.initialTouchY=null};this.handleContentSlotChange=()=>{setTimeout((()=>{this.setAriaLabels();this.setActiveTab(this.getActiveTab||this.getAllActiveTabs[0],false)}))};this.handleTabSlotChange=t=>{setTimeout((()=>{this.setAriaLabels();this.handleTabScroll();this.setActiveTab(this.getActiveTab||this.getAllActiveTabs[0],false);this.updateScrollControls()}),500);const a=t.target.assignedNodes({flatten:true});a.forEach((t=>{if(!this.mutationObservers.get(t)){const a=new MutationObserver((()=>{setTimeout((()=>{this.syncActiveTabIndicator();this.handleTabScroll();this.updateScrollControls()}),500)}));this.mutationObservers.set(t,a);a.observe(t,{characterData:true,childList:true,subtree:true})}}))};this.hasScrollControls=false;this.hideControlRight=true;this.hideControlLeft=true;this.tab=undefined;this.placement="top";this.noScrollControls=false;this.color=undefined;this.storeId=undefined;this.storeMethod="session";this.disableSwipe=undefined}handleTabNameChange(){if(this.activeTab&&this.activeTab.panel===this.tab)return;const t=this.getAllActiveTabs.find((t=>t.panel===this.tab));this.setActiveTab(t)}handlePlacementChange(){this.syncActiveTabIndicator()}handleNoScrollControlsChange(){this.updateScrollControls()}hideRightBtn(){if(!this.rightBtn)return;d(this.rightBtn,"is-shown",!this.hideControlRight)}hideLeftBtn(){if(!this.leftBtn)return;d(this.leftBtn,"is-shown",!this.hideControlLeft)}watchScrollControls(){if(this.hasScrollControls)setTimeout((t=>this.handleTabScroll()),20);else setTimeout((t=>{this.hideControlLeft=this.hideControlRight=true}),20)}async show(t){if(this.activeTab&&this.activeTab.panel===t)return;const a=this.getAllActiveTabs.find((a=>a.panel===t));if(a)this.setActiveTab(a)}get getAllActiveTabs(){return this.getAllTabs.filter((t=>!t.disabled))}get getAllTabs(){return r(this.host,"nano-tab")}get getAllPanels(){return r(this.host,"nano-tab-content")}get getActiveTab(){return this.getAllActiveTabs.find((t=>t.active))}setActiveTab(t,a=true){if(t&&t!==this.activeTab&&!t.disabled&&this.getAllActiveTabs.includes(t)){const o=this.activeTab;this.activeTab=t;this.tab=t.panel;this.getAllActiveTabs.map((t=>t.active=t===this.activeTab));this.getAllPanels.map((t=>{if(t.name===this.activeTab.panel){t.active=true;this.activePanel=t}else t.active=false;t.removeAttribute("animation-dir")}));this.syncActiveTabIndicator();if(["top"].includes(this.placement)){l(this.activeTab,this.nav,"horizontal","center")}if(a){if(o){this.nanoTabHide.emit({name:o.panel})}this.nanoTabShow.emit({name:this.activeTab.panel})}}}setAriaLabels(){const t=this.getAllActiveTabs;const a=this.getAllPanels;t.map((t=>{const o=a.find((a=>a.name===t.panel));if(o){t.setAttribute("aria-controls",o.getAttribute("id"));o.setAttribute("aria-labelledby",t.getAttribute("id"))}}))}syncActiveTabIndicator(){this.getAllTabs.forEach((t=>t.setAttribute("direction",this.placement==="top"?"horizontal":"vertical")));const t=this.getActiveTab;const a=t.shadowRoot.querySelector(".nanotab")?.clientWidth||0;const o=t.clientHeight;const i=s(t,this.tabs);const n=i.top+this.nav.scrollTop;const r=i.left;switch(this.placement){case"top":this.activeTabIndicator.style.width=`${a}px`;this.activeTabIndicator.style.height=null;this.activeTabIndicator.style.transform=`translateX(${r}px)`;break;case"start":this.activeTabIndicator.style.width=null;this.activeTabIndicator.style.height=`${o}px`;this.activeTabIndicator.style.transform=`translateY(${n}px)`;break}}getNavWidth(){if(!this.nav)return 0;const t=getComputedStyle(this.nav);let a=this.nav.clientWidth;return a-=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight)}handleTabClose(t){let a=this.getAllActiveTabs.indexOf(t.target);const o=t.target;if(a<0)return;const i=this.getAllPanels.find((t=>t.name===o.panel));if(!i)return;t.stopImmediatePropagation();const n=this.nanoTabWillClose.emit({name:o.panel});if(n.defaultPrevented)return;if(o.active){a=a===0?1:a-1;const t=this.getAllActiveTabs[a]?.panel;if(t)this.host.show(t)}o.remove();i.remove();this.nanoTabClose.emit({name:o.panel})}componentDidLoad(){const t=new IntersectionObserver(((t,a)=>{if(t[0].intersectionRatio>0){this.setAriaLabels();this.setActiveTab(this.getActiveTab||this.getAllActiveTabs[0],false);if(this.storeId)b.init(this,["tab"],this.storeMethod,this.storeId);a.unobserve(t[0].target)}}));t.observe(this.host);e.observe(this.tabGroup);if(this.leftBtn){e.observe(this.leftBtn);e.observe(this.rightBtn)}this.resizeObserver=new ResizeObserver((()=>{setTimeout((()=>{this.updateScrollControls();this.syncActiveTabIndicator();l(this.activeTab,this.nav,"horizontal","center")}),500)}));this.resizeObserver.observe(this.nav);requestAnimationFrame((()=>this.updateScrollControls()))}connectedCallback(){this.isRtl=this.host.dir==="rtl"||this.host.ownerDocument.dir==="rtl"}disconnectedCallback(){e.unobserve(this.tabGroup);if(this.leftBtn){e.unobserve(this.leftBtn);e.unobserve(this.rightBtn)}if(this.resizeObserver)this.resizeObserver.unobserve(this.nav)}render(){this.isRtl=this.host.ownerDocument.dir==="rtl";return o(i,{class:{...c(this.color)},dir:this.isRtl?"rtl":null},o("div",{part:"base",ref:t=>this.tabGroup=t,class:{"nano-tab-group":true,"nano-tab-group--top":this.placement==="top","nano-tab-group--start":this.placement==="start","nano-tab-group--has-scroll-controls":this.hasScrollControls,"nano-tab-group--has-scroll-controls-left":!this.hideControlLeft,"nano-tab-group--has-scroll-controls-right":!this.hideControlRight},onClick:this.handleClick,onKeyDown:this.handleKeyDown},o("div",{class:"nano-tab-group__nav-container",part:"nav"},this.placement==="top"&&o("button",{class:{"nano-tab-group__scroll-button":true,"nano-tab-group__scroll-button--left":true},ref:t=>this.leftBtn=t,onClick:()=>this.handleBtnClick(false)},o("nano-icon",{name:"light/chevron-left"})),o("div",{ref:t=>this.nav=t,class:"nano-tab-group__nav",onScroll:this.handleTabScroll},o("div",{ref:t=>this.tabs=t,part:"tabs",class:"nano-tab-group__tabs",role:"tablist"},o("div",{ref:t=>this.activeTabIndicator=t,part:"active-tab-indicator",class:"nano-tab-group__active-tab-indicator"}),o("slot",{name:"tabs",onSlotchange:this.handleTabSlotChange}))),this.placement==="top"&&o("button",{class:{"nano-tab-group__scroll-button":true,"nano-tab-group__scroll-button--right":true},ref:t=>this.rightBtn=t,onClick:()=>this.handleBtnClick(true)},o("nano-icon",{name:"light/chevron-right"}))),o("slot",{name:"tab-content-header"}),o("div",{part:"body",class:"nano-tab-group__body",onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd},o("slot",{onSlotchange:this.handleContentSlotChange}))))}get host(){return n(this)}static get watchers(){return{tab:["handleTabNameChange"],placement:["handlePlacementChange"],noScrollControls:["handleNoScrollControlsChange"],hideControlRight:["hideRightBtn"],hideControlLeft:["hideLeftBtn"],hasScrollControls:["watchScrollControls"]}}};p.style=h;export{p as nano_tab_group};
5
- //# sourceMappingURL=p-6cd59e58.entry.js.map
@@ -1,5 +0,0 @@
1
- /*!
2
- * Web Components for Nanopore digital Web Apps
3
- */
4
- import{g as t,e as i,r as s,c as e,w as n,d as r,h as a,a as o}from"./p-1fe12320.js";import{a as h}from"./p-a0b93616.js";import{g as l}from"./p-845ae77e.js";import{C as u}from"./p-e3860f00.js";import{b as f,c,a as d}from"./p-69a3e911.js";import{d as p}from"./p-9746b0a5.js";import{S as v}from"./p-63834d50.js";var m=new Map;var y=function(t,i){var s=t.fields,e=t.updater;s.forEach((function(t){e(t,i[t])}))};var b={create:function(i,s){var e=t(i);var n=new Map;var r={wormholes:n,state:s};m.set(i,r);var a=i.connectedCallback;i.connectedCallback=function(){m.set(i,r);if(a){a.call(i)}};var o=i.disconnectedCallback;i.disconnectedCallback=function(){m.delete(i);if(o){o.call(i)}};e.addEventListener("openWormhole",(function(t){t.stopPropagation();var i=t.detail,s=i.consumer,e=i.onOpen;if(n.has(s))return;if(typeof s!=="symbol"){var a=s.connectedCallback,o=s.disconnectedCallback;s.connectedCallback=function(){n.set(s,t.detail);if(a){a.call(s)}};s.disconnectedCallback=function(){n.delete(s);if(o){o.call(s)}}}n.set(s,t.detail);y(t.detail,r.state);e===null||e===void 0?void 0:e.resolve((function(){n.delete(s)}))}));e.addEventListener("closeWormhole",(function(t){var i=t.detail;n.delete(i)}))},Provider:function(t,s){var e=t.state;var n=i();if(m.has(n)){var r=m.get(n);r.state=e;r.wormholes.forEach((function(t){y(t,e)}))}return s}};class g{constructor(){this.queue=[];this.workingOnPromise=false;this.stop=false;this.limit=null}enqueue(t){return new Promise(((i,s)=>{this.queue.push({promise:t,resolve:i,reject:s});this.dequeue()}))}dequeue(){if(this.workingOnPromise){return false}if(this.stop){this.queue=[];this.stop=false;return}const t=this.queue.shift();if(!t){return false}try{this.workingOnPromise=true;t.promise().then((i=>{this.workingOnPromise=false;t.resolve(i);this.dequeue()})).catch((i=>{this.workingOnPromise=false;t.reject(i);this.dequeue()}))}catch(i){this.workingOnPromise=false;t.reject(i);this.dequeue()}return true}}g.pendingPromise=false;var w=c((function(t,i){!function(t,s){s(i)}(d,(function(t){function i(t){var s,e,n=new Error(t);return s=n,e=i.prototype,Object.setPrototypeOf?Object.setPrototypeOf(s,e):s.__proto__=e,n}function s(t,s,e){var n=s.slice(0,e).split(/\n/),r=n.length,a=n[r-1].length+1;throw i(t+=" at line "+r+" col "+a+":\n\n "+s.split(/\n/)[r-1]+"\n "+Array(a).join(" ")+"^")}i.prototype=Object.create(Error.prototype,{name:{value:"Squirrelly Error",enumerable:!1}});var e=new Function("return this")().Promise,n=!1;try{n=new Function("return (async function(){}).constructor")()}catch(t){if(!(t instanceof SyntaxError))throw t}function r(t,i){return Object.prototype.hasOwnProperty.call(t,i)}function a(t,i,s){for(var e in i)r(i,e)&&(null==i[e]||"object"!=typeof i[e]||"storage"!==e&&"prefixes"!==e||s?t[e]=i[e]:t[e]=a({},i[e]));return t}var o=/^async +/,h=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,l=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,u=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g,f=/[.*+\-?^${}()|[\]\\]/g;function c(t){return f.test(t)?t.replace(f,"\\$&"):t}function d(t,e){e.rmWhitespace&&(t=t.replace(/[\r\n]+/g,"\n").replace(/^\s+|\s+$/gm,"")),h.lastIndex=0,l.lastIndex=0,u.lastIndex=0;var n=e.prefixes,r=[n.h,n.b,n.i,n.r,n.c,n.e].reduce((function(t,i){return t&&i?t+"|"+c(i):i?c(i):t}),""),a=new RegExp("([|()]|=>)|('|\"|`|\\/\\*)|\\s*((\\/)?(-|_)?"+c(e.tags[1])+")","g"),f=new RegExp("([^]*?)"+c(e.tags[0])+"(-|_)?\\s*("+r+")?\\s*","g"),d=0,p=!1;function v(i,n){var r,c={f:[]},v=0,m="c";function y(i){var n=t.slice(d,i),r=n.trim();if("f"===m)"safe"===r?c.raw=!0:e.async&&o.test(r)?(r=r.replace(o,""),c.f.push([r,"",!0])):c.f.push([r,""]);else if("fp"===m)c.f[c.f.length-1][1]+=r;else if("err"===m){if(r){var a=n.search(/\S/);s("invalid syntax",t,d+a)}}else c[m]=r;d=i+1}for("h"===n||"b"===n||"c"===n?m="n":"r"===n&&(c.raw=!0,n="i"),a.lastIndex=d;null!==(r=a.exec(t));){var b=r[1],g=r[2],w=r[3],x=r[4],k=r[5],F=r.index;if(b)"("===b?(0===v&&("n"===m?(y(F),m="p"):"f"===m&&(y(F),m="fp")),v++):")"===b?0===--v&&"c"!==m&&(y(F),m="err"):0===v&&"|"===b?(y(F),m="f"):"=>"===b&&(y(F),d+=1,m="res");else if(g){if("/*"===g){var C=t.indexOf("*/",a.lastIndex);-1===C&&s("unclosed comment",t,r.index),a.lastIndex=C+2}else if("'"===g){l.lastIndex=r.index,l.exec(t)?a.lastIndex=l.lastIndex:s("unclosed string",t,r.index)}else if('"'===g){u.lastIndex=r.index,u.exec(t)?a.lastIndex=u.lastIndex:s("unclosed string",t,r.index)}else if("`"===g){h.lastIndex=r.index,h.exec(t)?a.lastIndex=h.lastIndex:s("unclosed string",t,r.index)}}else if(w)return y(F),d=F+r[0].length,f.lastIndex=d,p=k,x&&"h"===n&&(n="s"),c.t=n,c}return s("unclosed tag",t,i),c}var m=function r(a,h){a.b=[],a.d=[];var l,u=!1,c=[];function m(t,i){t&&(t=function(t,i,s,e){var n,r;return"string"==typeof i.autoTrim?n=r=i.autoTrim:Array.isArray(i.autoTrim)&&(n=i.autoTrim[1],r=i.autoTrim[0]),(s||!1===s)&&(n=s),(e||!1===e)&&(r=e),"slurp"===n&&"slurp"===r?t.trim():("_"===n||"slurp"===n?t=String.prototype.trimLeft?t.trimLeft():t.replace(/^[\s\uFEFF\xA0]+/,""):"-"!==n&&"nl"!==n||(t=t.replace(/^(?:\n|\r|\r\n)/,"")),"_"===r||"slurp"===r?t=String.prototype.trimRight?t.trimRight():t.replace(/[\s\uFEFF\xA0]+$/,""):"-"!==r&&"nl"!==r||(t=t.replace(/(?:\n|\r|\r\n)$/,"")),t)}(t,e,p,i))&&(t=t.replace(/\\|'/g,"\\$&").replace(/\r\n|\n|\r/g,"\\n"),c.push(t))}for(;null!==(l=f.exec(t));){var y,b=l[1],g=l[2],w=l[3]||"";for(var x in n)if(n[x]===w){y=x;break}m(b,g),d=l.index+l[0].length,y||s("unrecognized tag type: "+w,t,d);var k=v(l.index,y),F=k.t;if("h"===F){var C=k.n||"";e.async&&o.test(C)&&(k.a=!0,k.n=C.replace(o,"")),k=r(k),c.push(k)}else if("c"===F){if(a.n===k.n)return u?(u.d=c,a.b.push(u)):a.d=c,a;s("Helper start and end don't match",t,l.index+l[0].length)}else if("b"===F){u?(u.d=c,a.b.push(u)):a.d=c;var z=k.n||"";e.async&&o.test(z)&&(k.a=!0,k.n=z.replace(o,"")),u=k,c=[]}else if("s"===F){var j=k.n||"";e.async&&o.test(j)&&(k.a=!0,k.n=j.replace(o,"")),c.push(k)}else c.push(k)}if(!h)throw i('unclosed helper "'+a.n+'"');return m(t.slice(d,t.length),!1),a.d=c,a}({f:[]},!0);if(e.plugins)for(var y=0;y<e.plugins.length;y++){var b=e.plugins[y];b.processAST&&(m.d=b.processAST(m.d,e))}return m.d}function p(t,i){var s=d(t,i),e="var tR='';"+(i.useWith?"with("+i.varName+"||{}){":"")+g(s,i)+"if(cb){cb(null,tR)} return tR"+(i.useWith?"}":"");if(i.plugins)for(var n=0;n<i.plugins.length;n++){var r=i.plugins[n];r.processFnString&&(e=r.processFnString(e,i))}return e}function v(t,i){for(var s=0;s<i.length;s++){var e=i[s][0],n=i[s][1];t=(i[s][2]?"await ":"")+"c.l('F','"+e+"')("+t,n&&(t+=","+n),t+=")"}return t}function m(t,i,s,e,n,r){var a="{exec:"+(n?"async ":"")+b(s,i,t)+",params:["+e+"]";return r&&(a+=",name:'"+r+"'"),n&&(a+=",async:true"),a+="}"}function y(t,i){for(var s="[",e=0;e<t.length;e++){var n=t[e];s+=m(i,n.res||"",n.d,n.p||"",n.a,n.n),e<t.length&&(s+=",")}return s+="]"}function b(t,i,s){return"function("+i+"){var tR='';"+g(t,s)+"return tR}"}function g(t,i){for(var s=0,e=t.length,n="";s<e;s++){var r=t[s];if("string"==typeof r){n+="tR+='"+r+"';"}else{var a=r.t,o=r.c||"",h=r.f,l=r.n||"",u=r.p||"",f=r.res||"",c=r.b,d=!!r.a;if("i"===a){i.defaultFilter&&(o="c.l('F','"+i.defaultFilter+"')("+o+")");var p=v(o,h);!r.raw&&i.autoEscape&&(p="c.l('F','e')("+p+")"),n+="tR+="+p+";"}else if("h"===a)if(i.storage.nativeHelpers.get(l))n+=i.storage.nativeHelpers.get(l)(r,i);else{var b=(d?"await ":"")+"c.l('H','"+l+"')("+m(i,f,r.d,u,d);b+=c?","+y(c,i):",[]",n+="tR+="+v(b+=",c)",h)+";"}else"s"===a?n+="tR+="+v((d?"await ":"")+"c.l('H','"+l+"')({params:["+u+"]},[],c)",h)+";":"e"===a&&(n+=o+"\n")}}return n}var w=function(){function t(t){this.cache=t}return t.prototype.define=function(t,i){this.cache[t]=i},t.prototype.get=function(t){return this.cache[t]},t.prototype.remove=function(t){delete this.cache[t]},t.prototype.reset=function(){this.cache={}},t.prototype.load=function(t){a(this.cache,t,!0)},t}();function x(t,s,e,n){if(s&&s.length>0)throw i((n?"Native":"")+"Helper '"+t+"' doesn't accept blocks");if(e&&e.length>0)throw i((n?"Native":"")+"Helper '"+t+"' doesn't accept filters")}var k={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function F(t){return k[t]}var C=new w({}),z=new w({each:function(t,i){var s="",e=t.params[0];if(x("each",i,!1),t.async)return new Promise((function(i){!function t(i,s,e,n,r){e(i[s],s).then((function(a){n+=a,s===i.length-1?r(n):t(i,s+1,e,n,r)}))}(e,0,t.exec,s,i)}));for(var n=0;n<e.length;n++)s+=t.exec(e[n],n);return s},foreach:function(t,i){var s=t.params[0];if(x("foreach",i,!1),t.async)return new Promise((function(i){!function t(i,s,e,n,r,a){n(s[e],i[s[e]]).then((function(o){r+=o,e===s.length-1?a(r):t(i,s,e+1,n,r,a)}))}(s,Object.keys(s),0,t.exec,"",i)}));var e="";for(var n in s)r(s,n)&&(e+=t.exec(n,s[n]));return e},include:function(t,s,e){x("include",s,!1);var n=e.storage.templates.get(t.params[0]);if(!n)throw i('Could not fetch template "'+t.params[0]+'"');return n(t.params[1],e)},extends:function(t,s,e){var n=t.params[1]||{};n.content=t.exec();for(var r=0;r<s.length;r++){var a=s[r];n[a.name]=a.exec()}var o=e.storage.templates.get(t.params[0]);if(!o)throw i('Could not fetch template "'+t.params[0]+'"');return o(n,e)},useScope:function(t,i){return x("useScope",i,!1),t.exec(t.params[0])}}),j=new w({if:function(t,i){x("if",!1,t.f,!0);var s="if("+t.p+"){"+g(t.d,i)+"}";if(t.b)for(var e=0;e<t.b.length;e++){var n=t.b[e];"else"===n.n?s+="else{"+g(n.d,i)+"}":"elif"===n.n&&(s+="else if("+n.p+"){"+g(n.d,i)+"}")}return s},try:function(t,s){if(x("try",!1,t.f,!0),!t.b||1!==t.b.length||"catch"!==t.b[0].n)throw i("native helper 'try' only accepts 1 block, 'catch'");var e="try{"+g(t.d,s)+"}",n=t.b[0];return e+="catch"+(n.res?"("+n.res+")":"")+"{"+g(n.d,s)+"}"},block:function(t,i){return x("block",t.b,t.f,!0),"if(!"+i.varName+"["+t.p+"]){tR+=("+b(t.d,"",i)+")()}else{tR+="+i.varName+"["+t.p+"]}"}}),I=new w({e:function(t){var i=String(t);return/[&<>"']/.test(i)?i.replace(/[&<>"']/g,F):i}}),S={varName:"it",autoTrim:[!1,"nl"],autoEscape:!0,defaultFilter:!1,tags:["{{","}}"],l:function(t,s){if("H"===t){var e=this.storage.helpers.get(s);if(e)return e;throw i("Can't find helper '"+s+"'")}if("F"===t){var n=this.storage.filters.get(s);if(n)return n;throw i("Can't find filter '"+s+"'")}},async:!1,storage:{helpers:z,nativeHelpers:j,filters:I,templates:C},prefixes:{h:"@",b:"#",i:"",r:"*",c:"/",e:"!"},cache:!1,plugins:[],useWith:!1};function R(t,i){var s={};return a(s,S),i&&a(s,i),t&&a(s,t),s.l.bind(s),s}function A(t,s){var e=R(s||{}),r=Function;if(e.async){if(!n)throw i("This environment doesn't support async/await");r=n}try{return new r(e.varName,"c","cb",p(t,e))}catch(s){throw s instanceof SyntaxError?i("Bad template syntax\n\n"+s.message+"\n"+Array(s.message.length+1).join("=")+"\n"+p(t,e)):s}}function O(t,i){var s;return i.cache&&i.name&&i.storage.templates.get(i.name)?i.storage.templates.get(i.name):(s="function"==typeof t?t:A(t,i),i.cache&&i.name&&i.storage.templates.define(i.name,s),s)}S.l.bind(S),t.compile=A,t.compileScope=g,t.compileScopeIntoFunction=b,t.compileToString=p,t.defaultConfig=S,t.filters=I,t.getConfig=R,t.helpers=z,t.nativeHelpers=j,t.parse=d,t.render=function(t,s,n,r){var a=R(n||{});if(!a.async)return O(t,a)(s,a);if(!r){if("function"==typeof e)return new e((function(i,e){try{i(O(t,a)(s,a))}catch(t){e(t)}}));throw i("Please provide a callback function, this env doesn't support Promises")}try{O(t,a)(s,a,r)}catch(t){return r(t)}},t.templates=C,Object.defineProperty(t,"__esModule",{value:!0})}))}));const x=f(w);const k=Object.freeze(Object.assign(Object.create(null),w,{default:x}));const F=k;F.filters.define("date_long",((t,i={year:"numeric",month:"long",day:"numeric"})=>{if(!t)return;const s=new Date(parseInt(t)*1e3);t=s.toLocaleDateString("en-GB",i);return t}));F.filters.define("date_short",((t,i="d/m/y")=>{if(!t)return;const s=new Date(parseInt(t)*1e3);t=i.replace(/(d)/,s.getDate().toString());t=t.replace(/(m)/,(s.getMonth()+1).toString());t=t.replace(/(y)/,s.getFullYear().toString());return t}));F.filters.define("public_name",(t=>{if(!t)return;t=t.split("_").map((t=>t.length<3?t.toUpperCase():t)).join(" ");return t.charAt(0).toUpperCase()+t.slice(1)}));F.filters.define("trim_to",((t,i=100)=>{if(!t)return;if(t.length<=i)return t;return t.substr(0,i)+"..."}));F.filters.define("classname",(t=>{if(!t)return;return t.replace(/[\W]+/g,"")}));F.filters.define("abs_url",((t,i=null,s)=>{if(!i)return t;if(!t)return;let e=undefined;if(i.domains&&s&&s.origin){const t=i.domains.find((t=>t.origin===s.origin));e=t?t.domain:""}else if(i.domain)e=i.domain;if(!e)return t;return t.match(/^http/)?t:location.protocol+"//"+e+t}));F.filters.define("replace",((t,i,s)=>t.replace(i,s)));F.filters.define("remove_spaces",(t=>t.replace(/ /g,"_")));F.filters.define("add_spaces",(t=>t=t.replace(/[_\-]/g," ")));F.filters.define("capitalise",(t=>t=t.charAt(0).toUpperCase()+t.slice(1)));F.filters.define("lowercase",(t=>t=t.toLowerCase()));const C=F;const z=":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{position:relative;display:block}:host ::slotted([slot=search-template]){display:none !important}.loader{opacity:0;position:fixed;block-size:100%;inline-size:100%;min-block-size:100%;max-block-size:100vh !important;max-inline-size:100vw !important;inset-inline-start:0;inset-block-start:0;z-index:-10;font-size:60px;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;-webkit-transition:opacity 0.2s ease, z-index 0.01s ease 0.2s;transition:opacity 0.2s ease, z-index 0.01s ease 0.2s}.loader.loading{opacity:1;z-index:10;-webkit-transition:z-index 0.01s ease, opacity 0.2s ease 0.01s;transition:z-index 0.01s ease, opacity 0.2s ease 0.01s}.default{block-size:100%}.default:focus{outline:none}.results{opacity:0;outline:none;overflow:auto;-webkit-transition:opacity 0.3s ease, visibility 0.01s ease 0.3s, z-index 0.01s ease 0.3s, -webkit-transform 0.3s ease;transition:opacity 0.3s ease, visibility 0.01s ease 0.3s, z-index 0.01s ease 0.3s, -webkit-transform 0.3s ease;transition:transform 0.3s ease, opacity 0.3s ease, visibility 0.01s ease 0.3s, z-index 0.01s ease 0.3s;transition:transform 0.3s ease, opacity 0.3s ease, visibility 0.01s ease 0.3s, z-index 0.01s ease 0.3s, -webkit-transform 0.3s ease;-webkit-transform:translate(0, 100px);transform:translate(0, 100px);visibility:hidden;z-index:-1;position:absolute;inset-block-start:0;inset-inline-start:0;display:none}.results-container{position:relative}.results.show{-webkit-transition:z-index 0.01s ease, visibility 0.01s ease, opacity 0.3s ease 0.01s, -webkit-transform 0.3s ease 0.01s;transition:z-index 0.01s ease, visibility 0.01s ease, opacity 0.3s ease 0.01s, -webkit-transform 0.3s ease 0.01s;transition:z-index 0.01s ease, visibility 0.01s ease, transform 0.3s ease 0.01s, opacity 0.3s ease 0.01s;transition:z-index 0.01s ease, visibility 0.01s ease, transform 0.3s ease 0.01s, opacity 0.3s ease 0.01s, -webkit-transform 0.3s ease 0.01s;-webkit-transform:translate(0, 0);transform:translate(0, 0);visibility:visible;opacity:1;z-index:10;overflow:hidden}.results.shown{block-size:auto !important;inline-size:auto !important;display:block;position:static;-webkit-transform:none;transform:none;z-index:auto;visibility:inherit;opacity:initial}";const j=class{constructor(t){s(this,t);this.nanoDidLoad=e(this,"nanoDidLoad",7);this.nanoResultsShown=e(this,"nanoResultsShown",3);this.nanoBeforeQuery=e(this,"nanoBeforeQuery",7);this.nanoAfterQuery=e(this,"nanoAfterQuery",7);this.nanoNewResults=e(this,"nanoNewResults",7);this.staticFacetFilters={};this.dynFacetFilters={};this.hasLoadSlot=false;this.placedAlgoliaEles=[];this.promiseQueue=new g;this.searchChange=async()=>{if(!this.algoliaIndex)return;if(!this.query||this.query.length<this.minChars){if(!this.browseIndex){if(!this.query||this.query.length===0){this.handleSearchReset();return}else return}else if(this.query!=="*"){this.query="*";return}}this.isLoading=true;setTimeout((async()=>{this.resetPage();await this.algoliaSearch(v.Init);await this.updateContent();setTimeout((t=>this.isLoading=false),800);this.showResults=true;this.nanoResultsShown.emit(this.indexResults)}),200)};this.makeAppliedFilters=()=>{const t=[];const i=i=>{Object.values(i).forEach((i=>{if(i.value&&i.value.length){const s=t.find((t=>t.name===i.facetName));if(!s)t.push({name:i.facetName,values:[...i.value]});else s.values=[...s.values,...i.value]}}))};i(this.dynFacetFilters);i(this.staticFacetFilters);if(t.length)return t;return null};this.algoliaSearch=async t=>this.promiseQueue.enqueue((()=>this.queueSearch(t)));this.queueSearch=async t=>{if(!this.algoliaIndex||!this.query||!this.searchIndex||!this.searchIndex.index)return;this.nanoBeforeQuery.emit(this.indexResults);if(v.Init===t)this.clearAllFacetFilters();const i={filters:this.algoliaFilterStr(),page:this.indexResults?this.indexResults.currentPage:0};if(this.searchIndex.filters)i.facets=this.searchIndex.filters;if(this.searchIndex.hitsPerPage)i.hitsPerPage=this.searchIndex.hitsPerPage;let s=await this.algoliaIndex.search(this.query,i);s=this.fixDomain(s);this.changeEvent=t;if(t===v.Init||!this.indexResults){this.indexResults={currentPage:0,totalHits:s.nbHits,hitsPerPage:null,origFilters:s.facets,query:this.query,domain:this.searchIndex.domain||null,totalHitsWithFilters:0,results:[],totalPages:0,appliedFilters:this.makeAppliedFilters(),indexName:this.searchIndex.name||null,index:this.searchIndex.index}}this.indexResults.dynFilters=s.facets;this.indexResults.results=s.hits;this.indexResults.totalHitsWithFilters=s.nbHits;this.indexResults.currentPage=s.page;this.indexResults.totalPages=s.nbPages;this.indexResults.hitsPerPage=s.hitsPerPage;this.indexResults.query=s.query;if(this.changeEvent!==v.Page&&this.changeEvent!==v.Replica){this.facets=s.facets}this.nanoAfterQuery.emit(this.indexResults);return new Promise((t=>{setTimeout((()=>t("tpl updated")),20)})).then((t=>{this.currentHits=this.indexResults.results;this.resultsPage=this.indexResults.currentPage}))};this.handleSearchReset=()=>{this.showResults=false;this.indexResults=null};this.onResultDisplay=()=>{n((()=>{this.resultsDiv.removeEventListener("transitionend",this.onResultDisplay);if(!this.showResults)this.resultsDiv.style.display="none";else{this.defaultDiv.style.display="none";this.resultsDiv.classList.add("shown");this.resultsDiv.style.minHeight="";this.resultsDiv.style.width=""}}))};this._dynFacetFilters={};this.inputField=undefined;this.algoliaIndex=undefined;this.indeces=[];this.resultsEmitterEle=undefined;this.indexResults=undefined;this.filterChanged="";this.currentHits=undefined;this.changeEvent=v.Init;this.isLoading=false;this.wormholeState=this;this.showResults=false;this.resultsPage=0;this.appId=undefined;this.apiKey=undefined;this.searchIndex={};this.searchIndexName="";this.listenTo=null;this.query="";this.operator="and";this.filters=[];this.tplEngine=C;this.tplRenderFn=C.render;this.replicaIndex="";this.browseIndex=false;this.minChars=2;this.storeId=undefined;this.storeMethod="session"}async removeFilters(t,i){if(!t&&!i)this.clearAllFacetFilters();else{Object.keys(this._dynFacetFilters).forEach((s=>{if(t&&this._dynFacetFilters[s].facetName===t){if(!i)this._dynFacetFilters[s].element.value="";else{this._dynFacetFilters[s].element.value=this._dynFacetFilters[s].value.filter((t=>t!==i))}}}))}}onAllTplUpdate(t){t.stopPropagation();if(t.target.tagName==="NANO-ALGOLIA-RESULTS"){requestAnimationFrame((()=>{this.nanoNewResults.emit(this.indexResults)}))}}async onPageChange(t){if(!this.indexResults)return;let i=this.resultsPage;if(t){t.stopPropagation();i=t.detail.page}i=Math.min(this.indexResults.totalPages-1,i);i=Math.max(i,0);if(this.indexResults.currentPage===i)return;this.indexResults.currentPage=i;await this.algoliaSearch(v.Page)}async onFilterChange(t){t.stopPropagation();const i={};const s=t.detail;s.element=t.target;if(this.indexResults){if(this.staticFacetFilters[s.filterId])this.staticFacetFilters[s.filterId]=s;else{i[s.filterId]=s;this._dynFacetFilters={...this._dynFacetFilters,...i}}this.indexResults.appliedFilters=this.makeAppliedFilters()}else this.staticFacetFilters[s.filterId]=s;this.filterChanged=s.value&&s.value.length?s.filterId:"all";this.resetPage();this.algoliaSearch(v.Filter)}dynFacetFiltersChange(){Object.values(this._dynFacetFilters).forEach((t=>{if(this.host.ownerDocument===t.element.ownerDocument)this.dynFacetFilters[t.filterId]=t;else delete this.dynFacetFilters[t.filterId]}))}browseIndexChange(){if(this.browseIndex&&(!this.query||this.query.length<this.minChars)){this.query="*"}}inputFieldSet(){if(!this.inputField)return;if(this.query!=="*"&&this.inputField&&this.inputField.value!==this.query)this.inputField.value=this.query}queryChange(){this.searchChange()}async internalIndexSwitch(){if(!this.replicaIndex||!this.indexResults||this.indexResults.index===this.replicaIndex)return;this.indexResults.index=this.replicaIndex;this.algoliaIndex=this.algoliaClient.initIndex(this.indexResults.index);this.resetPage();this.algoliaSearch(v.Replica)}pageChange(){this.onPageChange()}searchIndexNameChange(){if(!this.searchIndexName||!this.searchIndexName.length||this.searchIndex&&this.searchIndex.index===this.searchIndexName)return;this.searchIndex={index:this.searchIndexName}}initAlgoliaClient(){if(!this.appId||!this.apiKey)return;this.algoliaClient=h(this.appId,this.apiKey)}initAlgoliaIndex(){if(!this.algoliaClient||!this.searchIndex)return;if(this.searchIndex.index){if(this.replicaIndex)this.searchIndex.index=this.replicaIndex;this.searchIndexName=this.searchIndex.index;this.algoliaIndex=this.algoliaClient.initIndex(this.searchIndex.index);this.searchChange()}}showResultsChange(){if(!this.resultsDiv||!this.defaultDiv)return;if(this.showResults){this.resultsDiv.style.width=this.host.scrollWidth+"px";this.resultsDiv.style.minHeight=this.host.scrollHeight+"px";n((()=>{this.resultsDiv.addEventListener("transitionend",this.onResultDisplay);this.resultsDiv.style.display="block";setTimeout((()=>this.resultsDiv.classList.add("show")),50)}))}else{n((()=>{this.resultsDiv.classList.remove("shown");this.defaultDiv.style.display="block";setTimeout((()=>{this.resultsDiv.addEventListener("transitionend",this.onResultDisplay);this.resultsDiv.classList.remove("show");if(!!this.slottedInput)this.slottedInput.focus({preventScroll:true});else this.defaultDiv.focus({preventScroll:true})}),50)}))}}handleFilterpropChange(){this.algoliaSearch(v.Init)}fixDomain(t){if(!this.searchIndex||!this.searchIndex.domain)return t;t.hits.map((t=>{if(t.url&&!t.url.match(/^http/))t.url=location.protocol+"//"+this.searchIndex.domain+t.url}));return t}resetPage(){if(!this.indexResults)return;this.indexResults.currentPage=0}clearAllFacetFilters(){Object.values(this._dynFacetFilters).forEach((t=>{t.element.value=""}));this._dynFacetFilters={}}algoliaFilterStr(){const t={};const i=i=>{let s;let e;Object.keys(i).forEach((n=>{s=i[n];t[n]=t[n]||{name:s.facetName,or:[],and:[],not:[]};e=t[n][s.operator];if(s.value&&s.value.length){t[n][s.operator]=[...e,...s.value]}}))};i(this.dynFacetFilters);i(this.staticFacetFilters);const s=(t,i)=>{if(i.indexOf(" ")>-1)return t+':"'+i+'"';else return t+":"+i};let e=[];let n;let r;Object.values(t).forEach((function(t){Object.keys(t).filter((t=>t.match(/(or|and|not)/))).forEach((i=>{n=t;r=t.name;if(i==="or"||i==="and"){if(n[i].length){e.push("( "+n[i].map((t=>{if(t.length)return s(r,t)})).join(" "+i.toLocaleUpperCase()+" ")+" )")}}else{if(n.not.length){e.push("( "+n[i].map((t=>{if(t.length)return"NOT "+s(r,t)})).join(" AND ")+" )")}}}))}));e=[...this.filters,...e];return e.join(" "+this.operator.toLocaleUpperCase()+" ")}handleInputChange(t){if(t.target!==this.inputField)return;this.query=this.inputField.value}async updateContent(){return this.promiseQueue.enqueue((()=>this.updateContentQueue()))}async updateContentQueue(){const t=this.outputSlot||this.resultsDiv;if(!t||!this.tpl)return"no tpl";const i=document.createElement("div");i.innerHTML=this.tpl;const s=[];this.placedAlgoliaEles=[];Array.from(i.querySelectorAll("nano-algolia, nano-algolia-filter, nano-algolia-results")).forEach(((t,i)=>{const e=document.createElement("div");e.dataset.placeholderId=i.toString();e.classList.add("nano-ele-placeholder");s.push(t);t.parentNode.replaceChild(e,t)}));t.innerHTML=this.tplRenderFn(i.innerHTML.replace(/&gt;/gm,">").replace(/&lt;/gm,"<").replace(/&amp;/gm,"&"),this.indexResults);Array.from(t.querySelectorAll("div.nano-ele-placeholder")).forEach((t=>{t.parentNode.replaceChild(s[parseInt(t.dataset.placeholderId)],t);this.placedAlgoliaEles.push(s[parseInt(t.dataset.placeholderId)])}));if(!this.placedAlgoliaEles.length)return Promise.resolve("algolia setup");return new Promise((i=>{const s=e=>{this.placedAlgoliaEles=this.placedAlgoliaEles.filter((t=>t!==e.detail));if(!this.placedAlgoliaEles.length){setTimeout((()=>i("tpl updated")),500);t.removeEventListener("nanoTplUpdated",s)}};t.addEventListener("nanoTplUpdated",s)}))}componentWillLoad(){r((t=>{this.tplSlot=l(this.host,'[slot="template"]')[0];this.outputSlot=l(this.host,'[slot="output"]')[0];this.slottedInput=l(this.host,'[slot="search-input"]')[0];this.hasLoadSlot=!!l(this.host,'[slot="loader"]')[0];if(!!this.tplSlot)this.tpl=this.tplSlot.innerHTML;if(this.slottedInput&&(this.slottedInput.tagName.toLocaleLowerCase()==="nano-input"||this.slottedInput instanceof HTMLInputElement)){this.inputField=this.slottedInput}else if(this.slottedInput){this.inputField=this.slottedInput.querySelector('nano-input, input:not([type="radio"]):not([type="checkbox"])')}n((t=>{if(this.showResults&&this.tpl)this.searchChange()}))}));this.searchIndexNameChange();this.initAlgoliaClient();this.initAlgoliaIndex();b.create(this,this.wormholeState);if(this.storeId){u.init(this,["query","replicaIndex"],this.storeMethod,this.storeId);u.init(this,["apiKey","appId","searchIndex"],"session",this.storeId+"_api")}this.internalIndexSwitch()}connectedCallback(){this.searchChange=p(this.searchChange,300);this.browseIndexChange();this.host.dispatchEvent(new CustomEvent("nanoDidLoad",{detail:this.host}))}render(){const t={indexResults:this.indexResults,results:this.currentHits,filterChanged:this.filterChanged,tplRenderFn:this.tplRenderFn,resultsPage:this.resultsPage,changeEvent:this.changeEvent,facets:this.facets,algoliaIndex:this.algoliaIndex,searchIndex:this.searchIndex,globalStoreMethod:this.storeMethod,isLoading:this.isLoading};return a(o,{class:{"show-results":this.showResults,"is-loading":this.isLoading},"aria-busy":this.isLoading},this.hasLoadSlot&&a("div",{hidden:!this.isLoading},a("slot",{name:"loader"})),!this.hasLoadSlot&&a("div",{class:{loader:true,loading:this.isLoading}},a("nano-spinner",{overlay:true,type:"circle"})),a(b.Provider,{state:t},a("slot",{name:"search-input"}),a("div",{class:"results-container","aria-live":"polite"},a("div",{ref:t=>this.resultsDiv=t,class:"results"},a("slot",{name:"output"})))),a("div",{ref:t=>this.defaultDiv=t,class:"default",tabindex:"-1"},a("slot",null)))}get host(){return t(this)}static get watchers(){return{_dynFacetFilters:["dynFacetFiltersChange"],browseIndex:["browseIndexChange"],inputField:["inputFieldSet"],query:["queryChange"],replicaIndex:["internalIndexSwitch"],resultsPage:["pageChange"],searchIndexName:["searchIndexNameChange"],apiKey:["initAlgoliaClient"],appId:["initAlgoliaClient"],searchIndex:["initAlgoliaIndex"],showResults:["showResultsChange"],filters:["handleFilterpropChange"]}}};j.style=z;export{j as nano_algolia};
5
- //# sourceMappingURL=p-6e3412d2.entry.js.map
@@ -1,5 +0,0 @@
1
- /*!
2
- * Web Components for Nanopore digital Web Apps
3
- */
4
- import{r as o,c as n,f as t,h as i,a as r,g as s}from"./p-1fe12320.js";import{g as e}from"./p-7b3638b7.js";import{d as a}from"./p-9746b0a5.js";const c='.sc-nano-checkbox-group-h{box-sizing:border-box}*.sc-nano-checkbox-group,*.sc-nano-checkbox-group::before,*.sc-nano-checkbox-group::after{box-sizing:border-box}[hidden].sc-nano-checkbox-group{display:none !important}.sc-nano-checkbox-group-h{--control-margin-top:0;--control-margin-end:0;--control-margin-bottom:0;--control-margin-start:0;--invalid-msg-color:var(--nano-color-danger, #ef4135);--invalid-msg-font-size:var(--nano-input-help-font-size, 0.75em);--help-msg-color:var(--nano-input-help-color, #616d6e);--label-color:var(--nano-input-label-color, "currentColor");--label-color--invalid:var(--nano-input-label-color-invalid, "currentColor");--label-font-size:var(--nano-input-label-color, 1em);--label-padding:var(--nano-input-padding-bottom, var(--nano-input-padding, 6px));display:block}.sc-nano-checkbox-group-h *.sc-nano-checkbox-group{-webkit-box-sizing:inherit;box-sizing:inherit}[types-tag].sc-nano-checkbox-group-h,[types-segment].sc-nano-checkbox-group-h{--control-margin-top:0;--control-margin-end:8px;--control-margin-bottom:6px;--control-margin-start:0}[types-checkbox].sc-nano-checkbox-group-h,[types-radio].sc-nano-checkbox-group-h{--control-margin-top:0;--control-margin-end:10px;--control-margin-bottom:6px;--control-margin-start:0}.nanogroupcb.sc-nano-checkbox-group{border:none;margin:0;padding:0}.nanogroupcb__error.sc-nano-checkbox-group,.nanogroupcb__help.sc-nano-checkbox-group,.nanogroupcb__more.sc-nano-checkbox-group{display:block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nanogroupcb__legend.sc-nano-checkbox-group{font-size:var(--label-font-size);padding:0 0 var(--label-padding);margin:0;line-height:1.5;white-space:normal;display:block;width:100%}[invalid].sc-nano-checkbox-group-h:not([invalid=false]) .nanogroupcb__legend.sc-nano-checkbox-group{color:var(--label-color--invalid)}.nanogroupcb__more.sc-nano-checkbox-group{height:1em;-webkit-margin-before:calc(var(--label-padding) - var(--control-margin-bottom));margin-block-start:calc(var(--label-padding) - var(--control-margin-bottom));-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-after:var(--label-padding);margin-block-end:var(--label-padding);-webkit-margin-start:3px;margin-inline-start:3px;position:relative}.nanogroupcb__error.sc-nano-checkbox-group,.nanogroupcb__help.sc-nano-checkbox-group{inset-block-start:0;inset-inline-start:0;position:absolute;font-size:var(--invalid-msg-font-size);line-height:1.2;-webkit-transition:0.3s ease-out opacity;transition:0.3s ease-out opacity}.show-error.sc-nano-checkbox-group .nanogroupcb__error.sc-nano-checkbox-group,.show-error.sc-nano-checkbox-group .nanogroupcb__help.sc-nano-checkbox-group{opacity:1}.nanogroupcb__error.sc-nano-checkbox-group{color:var(--invalid-msg-color);font-stretch:condensed;opacity:0}.show-error.sc-nano-checkbox-group .nanogroupcb__error.sc-nano-checkbox-group{opacity:1}.nanogroupcb__help.sc-nano-checkbox-group{font-style:italic;opacity:1;color:var(--help-msg-color)}.show-error.sc-nano-checkbox-group .nanogroupcb__help.sc-nano-checkbox-group{opacity:0}.nanogroupcb__cbs.sc-nano-checkbox-group{margin:0;padding:0;line-height:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.nanogroupcb__cbs.sc-nano-checkbox-group-s>*:not([type=tag]):not([type=segment]):not([type=segment-pill]),.nanogroupcb__cbs .sc-nano-checkbox-group-s>*:not([type=tag]):not([type=segment]):not([type=segment-pill]){--check-base-size:1.2em;font-size:0.85em}.nanogroupcb__cbs.sc-nano-checkbox-group-s>*,.nanogroupcb__cbs .sc-nano-checkbox-group-s>*{margin-inline:var(--control-margin-start) var(--control-margin-end);margin-block:var(--control-margin-top) var(--control-margin-bottom)}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.nanogroupcb__cbs.sc-nano-checkbox-group-s>*,.nanogroupcb__cbs .sc-nano-checkbox-group-s>*{-webkit-margin-start:var(--control-margin-start);margin-inline-start:var(--control-margin-start);-webkit-margin-end:var(--control-margin-end);margin-inline-end:var(--control-margin-end)}}';const h=class{constructor(t){o(this,t);this.nanoValidate=n(this,"nanoValidate",7);this.grpId=`nano-checkbox-group-${l++}`;this.handleInvalid=o=>{this._invalid=true;if(this.validateOn==="submit"){this._invalid=this.showErrorMsg=this.customValidate()}if(!!this.showInlineError)o.preventDefault();this.showInlineValidation(o)};this.showInlineValidation=o=>{if(!this.nativeCbs||!this.nativeCbs.length)return;if(this.validateOn==="submitThenDirty")this.validateOn="dirty";this.showErrorMsg=false;this._invalid=false;this.nativeCbs.forEach(((o,n)=>{if(!o.validity.valid){this.errorMessage=o.validationMessage;this.showErrorMsg=true;this._invalid=true}}));this.nanoValidate.emit({isValid:!this.invalid,errorMessage:this.errorMessage,originalEvent:o})};this.checkboxes=undefined;this.nativeCbs=undefined;this.errorMessage="";this.showErrorMsg=false;this.hasHelperSlot=false;this.validateOn="submitThenDirty";this.showInlineError=true;this.min=0;this.max=null;this.disabled=null;this.legend="";this._invalid=false}get invalid(){return this._invalid}get validityMessage(){return this.errorMessage}async reportValidity(o){return new Promise((n=>{if(o){this.customValidate();this.showInlineValidation()}setTimeout((()=>{n({isValid:!this.invalid,errorMessage:this.errorMessage})}),50)}))}async showError(o,n){let t;if(n)t=this.checkboxes.find((o=>o.value===n));if(!t)t=this.checkboxes[0];if(!t)return;this.errorMessage=o;await t.setError(o);if(!!this.showInlineError)this.showInlineValidation()}handleCbChange(){if(this.invalid)this.showErrorMsg=this._invalid=false;this.customValidate();if(this.validateOn!=="dirty")return;this.showInlineValidation()}customValidate(){if(!this.nativeCbs||!this.nativeCbs.length||!this.checkboxes)return;const o=this.nativeCbs.filter((o=>o.type==="radio"));if(o&&o.length&&(this.showErrorMsg||this.validateOn==="dirty")){const n=o.find((o=>o.required));const t=o.filter((o=>o.checked));if(n&&t){this.checkboxes.forEach((o=>o.reportValidity(false)));return false}else if(n&&!t)return true}const n=this.nativeCbs.filter((o=>o.type==="checkbox"));if(!n||!n.length)return;const t=n.filter((o=>o.checked));const i=n.find((o=>o.required));let r=false;if(i&&!t.find((o=>o===i)))return true;this.checkboxes.forEach(((o,n)=>{const i=this.nativeCbs[n];o.setError("");i.setCustomValidity("");if(this.min&&t.length<this.min){this.errorMessage=`You must select a minimum of ${this.min} values.`;r=true}if(this.max&&t.length>this.max){this.errorMessage=`Only up to ${this.max} values are allowed.`;r=true}if(r){o.setError(this.errorMessage,this.showErrorMsg);i.setCustomValidity(this.errorMessage)}}));return r}handleComponentChange(){this.checkboxTypes=e(this.checkboxes.map((o=>"types-"+o.type)))}handleDisabledChange(){if(this.disabled===null)return;this.checkboxes.map((o=>o.disabled=this.disabled))}attachSlotObserver(){if(!!this.mo)return;const o=this.mo=new MutationObserver((()=>this.handleSlotChange()));o.observe(this.host,{childList:true})}async handleSlotChange(){t(this.host);this.checkboxes=Array.from(this.host.querySelectorAll("nano-checkbox"));this.hasHelperSlot=!!this.host.querySelector('[slot="helper"]');this.nativeCbs=await Promise.all(this.checkboxes.reduce(((o,n)=>{o.push(n.getInputElement());return o}),[]));this.nativeCbs.forEach((o=>o.addEventListener("invalid",this.handleInvalid)))}componentWillLoad(){this.showInlineValidation=a(this.showInlineValidation,50);this.customValidate=this.customValidate.bind(this);this.handleDisabledChange()}connectedCallback(){this.attachSlotObserver()}disconnectedCallback(){if(this.mo)this.mo.disconnect()}componentDidLoad(){this.handleComponentChange()}render(){const o=this.grpId+"-lbl";const n=this.showInlineError||this.hasHelperSlot?this.grpId+"-more":"";return i(r,{...this.checkboxTypes},i("fieldset",{disabled:this.disabled,class:{nanogroupcb:true,"show-error":this.showErrorMsg}},i("legend",{class:"nanogroupcb__legend",id:o},this.legend),i("div",{class:"nanogroupcb__cbs",role:"group","aria-labelledby":o+" "+n},i("slot",null)),(this.showInlineError||this.hasHelperSlot)&&i("div",{class:"nanogroupcb__more",id:n},!!this.showInlineError?i("div",{class:"nanogroupcb__error"},this.errorMessage):"",i("div",{class:"nanogroupcb__help"},i("slot",{name:"helper"})))))}get host(){return s(this)}static get watchers(){return{min:["handleCbChange"],max:["handleCbChange"],nativeCbs:["customValidate"],checkboxes:["handleComponentChange","handleDisabledChange"],disabled:["handleDisabledChange"]}}};let l=0;h.style=c;export{h as nano_checkbox_group};
5
- //# sourceMappingURL=p-701e8ebf.entry.js.map