@nanoporetech-digital/components 1.15.6 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/dist/cjs/active-element-2f9bf0aa.js +21 -0
- package/dist/cjs/active-element-2f9bf0aa.js.map +1 -0
- package/dist/cjs/{algoliasearch.umd-0ccd70ce.js → algoliasearch.umd-4d15f5e0.js} +3 -3
- package/dist/cjs/{algoliasearch.umd-0ccd70ce.js.map → algoliasearch.umd-4d15f5e0.js.map} +1 -1
- package/dist/cjs/{dom-5f3fae1a.js → dom-52f9b8b7.js} +25 -6
- package/dist/cjs/dom-52f9b8b7.js.map +1 -0
- package/dist/cjs/form-control-3bc82e3e.js +80 -0
- package/dist/cjs/form-control-3bc82e3e.js.map +1 -0
- package/dist/cjs/{index-117f36a4.js → index-53d02e05.js} +12 -27
- package/dist/cjs/index-53d02e05.js.map +1 -0
- package/dist/cjs/index-cb62df44.js +12 -12
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{modal-01eed1bf.js → modal-f09e431f.js} +2 -2
- package/dist/cjs/{modal-01eed1bf.js.map → modal-f09e431f.js.map} +1 -1
- package/dist/cjs/nano-accordion.cjs.entry.js +2 -4
- package/dist/cjs/nano-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-alert.cjs.entry.js +6 -6
- package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-filter.cjs.entry.js +1 -1
- package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-input.cjs.entry.js +1 -1
- package/dist/cjs/nano-algolia.cjs.entry.js +9 -5
- package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-aspect-ratio.cjs.entry.js +1 -1
- package/dist/cjs/nano-aspect-ratio.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-checkbox-group.cjs.entry.js +4 -1
- package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-components.cjs.js +1 -1
- package/dist/cjs/nano-datalist_3.cjs.entry.js +776 -0
- package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -0
- package/dist/cjs/nano-date-input.cjs.entry.js +9 -5
- package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
- package/dist/cjs/{nano-date-picker_2.cjs.entry.js → nano-date-picker.cjs.entry.js} +2 -274
- package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -0
- package/dist/cjs/nano-details.cjs.entry.js +2 -2
- package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dialog.cjs.entry.js +5 -5
- package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-drawer.cjs.entry.js +5 -5
- package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dropdown.cjs.entry.js +307 -0
- package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -0
- package/dist/cjs/nano-file-upload.cjs.entry.js +1 -1
- package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-nav.cjs.entry.js +19 -24
- package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-search-results.cjs.entry.js +200 -115
- package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-grid_3.cjs.entry.js +15 -7
- package/dist/cjs/nano-grid_3.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-hero.cjs.entry.js +13 -5
- package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-icon-button.cjs.entry.js +2 -2
- package/dist/cjs/nano-icon-button.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-icon.cjs.entry.js +1 -1
- package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-input.cjs.entry.js +80 -75
- package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-menu-drawer.cjs.entry.js +2 -2
- package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-nav-item_2.cjs.entry.js +284 -533
- package/dist/cjs/nano-nav-item_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-range.cjs.entry.js +2 -2
- package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-rating.cjs.entry.js +2 -2
- package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -1
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-slide.cjs.entry.js +1 -1
- package/dist/cjs/nano-slide.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-slides.cjs.entry.js +1 -1
- package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-spinner.cjs.entry.js +1 -1
- package/dist/cjs/nano-spinner.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-sticker.cjs.entry.js +3 -3
- package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab-content.cjs.entry.js +2 -2
- package/dist/cjs/nano-tab-content.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab-group.cjs.entry.js +66 -33
- package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab.cjs.entry.js +9 -2
- package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/nano-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/{popover-d033efa2.js → popover-86f1775c.js} +10 -1
- package/dist/cjs/popover-86f1775c.js.map +1 -0
- package/dist/cjs/{scroll-d7753eed.js → scroll-6b9e6870.js} +2 -2
- package/dist/cjs/{scroll-d7753eed.js.map → scroll-6b9e6870.js.map} +1 -1
- package/dist/cjs/{tabbable-615c30e1.js → tabbable-de4c23d8.js} +8 -6
- package/dist/cjs/tabbable-de4c23d8.js.map +1 -0
- package/dist/collection/collection-manifest.json +3 -2
- package/dist/collection/components/accordion/accordion.css +3 -0
- package/dist/collection/components/accordion/accordion.js +2 -5
- package/dist/collection/components/accordion/accordion.js.map +1 -1
- package/dist/collection/components/alert/alert.css +5 -6
- package/dist/collection/components/alert/alert.helpers.js +2 -2
- package/dist/collection/components/alert/alert.helpers.js.map +1 -1
- package/dist/collection/components/alert/alert.js +1 -1
- package/dist/collection/components/algolia/algolia-filter.css +3 -0
- package/dist/collection/components/algolia/algolia-filter.js +2 -2
- package/dist/collection/components/algolia/algolia-input.js +5 -5
- package/dist/collection/components/algolia/algolia-results.js +1 -1
- package/dist/collection/components/algolia/algolia.css +3 -0
- package/dist/collection/components/algolia/algolia.js +6 -6
- package/dist/collection/components/aspect-ratio/aspect-ratio.css +3 -0
- package/dist/collection/components/checkbox/checkbox-group.css +3 -0
- package/dist/collection/components/checkbox/checkbox-group.js +5 -2
- package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox.css +3 -0
- package/dist/collection/components/checkbox/checkbox.js +3 -3
- package/dist/collection/components/datalist/datalist.css +55 -0
- package/dist/collection/components/datalist/datalist.js +782 -0
- package/dist/collection/components/datalist/datalist.js.map +1 -0
- package/dist/collection/components/date-input/date-input.css +3 -0
- package/dist/collection/components/date-input/date-input.js +18 -10
- package/dist/collection/components/date-input/date-input.js.map +1 -1
- package/dist/collection/components/date-picker/date-picker.css +3 -0
- package/dist/collection/components/date-picker/date-picker.js +5 -5
- package/dist/collection/components/details/details.css +3 -0
- package/dist/collection/components/details/details.js +2 -3
- package/dist/collection/components/details/details.js.map +1 -1
- package/dist/collection/components/dialog/dialog.css +4 -1
- package/dist/collection/components/dialog/dialog.helpers.js.map +1 -1
- package/dist/collection/components/dialog/dialog.js +1 -1
- package/dist/collection/components/drawer/drawer.css +3 -0
- package/dist/collection/components/dropdown/dropdown.css +19 -2
- package/dist/collection/components/dropdown/dropdown.js +56 -39
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/file-upload/file-upload.css +5 -2
- package/dist/collection/components/file-upload/file-upload.js +4 -4
- package/dist/collection/components/form-control/form-control.js +73 -0
- package/dist/collection/components/form-control/form-control.js.map +1 -0
- package/dist/collection/components/global-nav/global-nav.css +43 -37
- package/dist/collection/components/global-nav/global-nav.js +21 -26
- package/dist/collection/components/global-nav/global-nav.js.map +1 -1
- package/dist/collection/components/global-search-results/global-search-results.css +299 -18
- package/dist/collection/components/global-search-results/global-search-results.js +200 -113
- package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
- package/dist/collection/components/grid/grid-item.css +3 -0
- package/dist/collection/components/grid/grid-item.js +1 -1
- package/dist/collection/components/grid/grid.css +3 -0
- package/dist/collection/components/grid/grid.js +37 -6
- package/dist/collection/components/grid/grid.js.map +1 -1
- package/dist/collection/components/hero/hero.css +13 -5
- package/dist/collection/components/hero/hero.js +32 -22
- package/dist/collection/components/hero/hero.js.map +1 -1
- package/dist/collection/components/icon/icon.css +3 -0
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/icon-button/icon-button.css +6 -1
- package/dist/collection/components/icon-button/icon-button.js +1 -1
- package/dist/collection/components/icon-button/icon-button.js.map +1 -1
- package/dist/collection/components/img/img.css +3 -0
- package/dist/collection/components/input/input.css +242 -232
- package/dist/collection/components/input/input.js +111 -114
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/menu/menu.css +27 -35
- package/dist/collection/components/menu/menu.js +222 -48
- package/dist/collection/components/menu/menu.js.map +1 -1
- package/dist/collection/components/menu-drawer/menu-drawer.css +3 -0
- package/dist/collection/components/nav-item/nav-item.css +3 -0
- package/dist/collection/components/nav-item/nav-item.js +5 -5
- package/dist/collection/components/nav-item/nav-item.js.map +1 -1
- package/dist/collection/components/option/option-interface.js +5 -0
- package/dist/collection/components/option/option-interface.js.map +1 -0
- package/dist/collection/components/option/option.css +187 -0
- package/dist/collection/components/option/option.js +242 -0
- package/dist/collection/components/option/option.js.map +1 -0
- package/dist/collection/components/range/range.css +3 -0
- package/dist/collection/components/range/range.js +4 -4
- package/dist/collection/components/rating/rating.css +3 -0
- package/dist/collection/components/resize-observe/resize-observe.js +1 -1
- package/dist/collection/components/select/select.css +458 -391
- package/dist/collection/components/select/select.js +364 -607
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/skeleton/skeleton.css +3 -0
- package/dist/collection/components/slides/slide.css +3 -0
- package/dist/collection/components/slides/slides.css +3 -0
- package/dist/collection/components/slides/slides.js +7 -7
- package/dist/collection/components/spinner/spinner.css +3 -0
- package/dist/collection/components/sticky/sticker.css +3 -0
- package/dist/collection/components/tabs/tab-content.css +3 -0
- package/dist/collection/components/tabs/tab-content.js +3 -3
- package/dist/collection/components/tabs/tab-content.js.map +1 -1
- package/dist/collection/components/tabs/tab-group.css +16 -5
- package/dist/collection/components/tabs/tab-group.js +125 -38
- package/dist/collection/components/tabs/tab-group.js.map +1 -1
- package/dist/collection/components/tabs/tab.css +36 -6
- package/dist/collection/components/tabs/tab.js +45 -2
- package/dist/collection/components/tabs/tab.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.css +3 -0
- package/dist/collection/utils/active-element.js +16 -0
- package/dist/collection/utils/active-element.js.map +1 -0
- package/dist/collection/utils/dom.js +24 -5
- package/dist/collection/utils/dom.js.map +1 -1
- package/dist/collection/utils/index.js +13 -13
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/collection/utils/popover.js +9 -0
- package/dist/collection/utils/popover.js.map +1 -1
- package/dist/collection/utils/tabbable.js +7 -5
- package/dist/collection/utils/tabbable.js.map +1 -1
- package/dist/collection/utils/template.js +5 -1
- package/dist/collection/utils/template.js.map +1 -1
- package/dist/collection/utils/testing/index.js +11 -1
- package/dist/collection/utils/testing/index.js.map +1 -1
- package/dist/components/ResizeObserver.es.js +933 -0
- package/dist/components/ResizeObserver.es.js.map +1 -0
- package/dist/components/_commonjsHelpers.js +41 -0
- package/dist/components/_commonjsHelpers.js.map +1 -0
- package/dist/components/active-element.js +19 -0
- package/dist/components/active-element.js.map +1 -0
- package/dist/components/algolia-data.js +49 -0
- package/dist/components/algolia-data.js.map +1 -0
- package/dist/components/algolia.js +906 -0
- package/dist/components/algolia.js.map +1 -0
- package/dist/components/algoliasearch.umd.js +13 -0
- package/dist/components/algoliasearch.umd.js.map +1 -0
- package/dist/components/component-store.js +2234 -0
- package/dist/components/component-store.js.map +1 -0
- package/dist/components/datalist.js +543 -0
- package/dist/components/datalist.js.map +1 -0
- package/dist/components/date-picker.js +624 -0
- package/dist/components/date-picker.js.map +1 -0
- package/dist/{esm/dom-a791b223.js → components/dom.js} +25 -6
- package/dist/components/dom.js.map +1 -0
- package/dist/components/dropdown.js +332 -0
- package/dist/components/dropdown.js.map +1 -0
- package/dist/components/focus-visible.js +66 -0
- package/dist/components/focus-visible.js.map +1 -0
- package/dist/components/form-control.js +77 -0
- package/dist/components/form-control.js.map +1 -0
- package/dist/components/grid-item.js +112 -0
- package/dist/components/grid-item.js.map +1 -0
- package/dist/components/grid.js +276 -0
- package/dist/components/grid.js.map +1 -0
- package/dist/components/icon-button.js +70 -0
- package/dist/components/icon-button.js.map +1 -0
- package/dist/components/icon.js +269 -0
- package/dist/components/icon.js.map +1 -0
- package/dist/components/img.js +184 -0
- package/dist/components/img.js.map +1 -0
- package/dist/components/index.d.ts +26 -0
- package/dist/components/index.js +251 -0
- package/dist/components/index.js.map +1 -0
- package/dist/{esm/index-f41ae118.js → components/index2.js} +13 -27
- package/dist/components/index2.js.map +1 -0
- package/dist/components/index3.js +1075 -0
- package/dist/components/index3.js.map +1 -0
- package/dist/components/index4.js +637 -0
- package/dist/components/index4.js.map +1 -0
- package/dist/components/input.js +474 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/intersection-observer.js +985 -0
- package/dist/components/intersection-observer.js.map +1 -0
- package/dist/components/local-my-account.js +353 -0
- package/dist/components/local-my-account.js.map +1 -0
- package/dist/components/menu.js +235 -0
- package/dist/components/menu.js.map +1 -0
- package/dist/components/modal.js +48 -0
- package/dist/components/modal.js.map +1 -0
- package/dist/components/nano-accordion.d.ts +11 -0
- package/dist/components/nano-accordion.js +63 -0
- package/dist/components/nano-accordion.js.map +1 -0
- package/dist/components/nano-alert.d.ts +11 -0
- package/dist/components/nano-alert.js +296 -0
- package/dist/components/nano-alert.js.map +1 -0
- package/dist/components/nano-algolia-filter.d.ts +11 -0
- package/dist/components/nano-algolia-filter.js +317 -0
- package/dist/components/nano-algolia-filter.js.map +1 -0
- package/dist/components/nano-algolia-input.d.ts +11 -0
- package/dist/components/nano-algolia-input.js +224 -0
- package/dist/components/nano-algolia-input.js.map +1 -0
- package/dist/components/nano-algolia-pagination.d.ts +11 -0
- package/dist/components/nano-algolia-pagination.js +104 -0
- package/dist/components/nano-algolia-pagination.js.map +1 -0
- package/dist/components/nano-algolia-results.d.ts +11 -0
- package/dist/components/nano-algolia-results.js +224 -0
- package/dist/components/nano-algolia-results.js.map +1 -0
- package/dist/components/nano-algolia.d.ts +11 -0
- package/dist/components/nano-algolia.js +11 -0
- package/dist/components/nano-algolia.js.map +1 -0
- package/dist/components/nano-aspect-ratio.d.ts +11 -0
- package/dist/components/nano-aspect-ratio.js +74 -0
- package/dist/components/nano-aspect-ratio.js.map +1 -0
- package/dist/components/nano-checkbox-group.d.ts +11 -0
- package/dist/components/nano-checkbox-group.js +235 -0
- package/dist/components/nano-checkbox-group.js.map +1 -0
- package/dist/components/nano-checkbox.d.ts +11 -0
- package/dist/components/nano-checkbox.js +231 -0
- package/dist/components/nano-checkbox.js.map +1 -0
- package/dist/components/nano-datalist.d.ts +11 -0
- package/dist/components/nano-datalist.js +11 -0
- package/dist/components/nano-datalist.js.map +1 -0
- package/dist/components/nano-date-input.d.ts +11 -0
- package/dist/components/nano-date-input.js +408 -0
- package/dist/components/nano-date-input.js.map +1 -0
- package/dist/components/nano-date-picker.d.ts +11 -0
- package/dist/components/nano-date-picker.js +11 -0
- package/dist/components/nano-date-picker.js.map +1 -0
- package/dist/components/nano-details.d.ts +11 -0
- package/dist/components/nano-details.js +162 -0
- package/dist/components/nano-details.js.map +1 -0
- package/dist/components/nano-dialog.d.ts +11 -0
- package/dist/components/nano-dialog.js +231 -0
- package/dist/components/nano-dialog.js.map +1 -0
- package/dist/components/nano-drawer.d.ts +11 -0
- package/dist/components/nano-drawer.js +217 -0
- package/dist/components/nano-drawer.js.map +1 -0
- package/dist/components/nano-dropdown.d.ts +11 -0
- package/dist/components/nano-dropdown.js +11 -0
- package/dist/components/nano-dropdown.js.map +1 -0
- package/dist/components/nano-file-upload.d.ts +11 -0
- package/dist/components/nano-file-upload.js +421 -0
- package/dist/components/nano-file-upload.js.map +1 -0
- package/dist/components/nano-global-nav.d.ts +11 -0
- package/dist/components/nano-global-nav.js +1221 -0
- package/dist/components/nano-global-nav.js.map +1 -0
- package/dist/components/nano-global-search-results.d.ts +11 -0
- package/dist/components/nano-global-search-results.js +608 -0
- package/dist/components/nano-global-search-results.js.map +1 -0
- package/dist/components/nano-grid-item.d.ts +11 -0
- package/dist/components/nano-grid-item.js +11 -0
- package/dist/components/nano-grid-item.js.map +1 -0
- package/dist/components/nano-grid.d.ts +11 -0
- package/dist/components/nano-grid.js +11 -0
- package/dist/components/nano-grid.js.map +1 -0
- package/dist/components/nano-hero.d.ts +11 -0
- package/dist/components/nano-hero.js +187 -0
- package/dist/components/nano-hero.js.map +1 -0
- package/dist/components/nano-icon-button.d.ts +11 -0
- package/dist/components/nano-icon-button.js +11 -0
- package/dist/components/nano-icon-button.js.map +1 -0
- package/dist/components/nano-icon.d.ts +11 -0
- package/dist/components/nano-icon.js +11 -0
- package/dist/components/nano-icon.js.map +1 -0
- package/dist/components/nano-img.d.ts +11 -0
- package/dist/components/nano-img.js +11 -0
- package/dist/components/nano-img.js.map +1 -0
- package/dist/components/nano-input.d.ts +11 -0
- package/dist/components/nano-input.js +11 -0
- package/dist/components/nano-input.js.map +1 -0
- package/dist/components/nano-menu-drawer.d.ts +11 -0
- package/dist/components/nano-menu-drawer.js +221 -0
- package/dist/components/nano-menu-drawer.js.map +1 -0
- package/dist/components/nano-menu.d.ts +11 -0
- package/dist/components/nano-menu.js +11 -0
- package/dist/components/nano-menu.js.map +1 -0
- package/dist/components/nano-nav-item.d.ts +11 -0
- package/dist/components/nano-nav-item.js +11 -0
- package/dist/components/nano-nav-item.js.map +1 -0
- package/dist/components/nano-option.d.ts +11 -0
- package/dist/components/nano-option.js +11 -0
- package/dist/components/nano-option.js.map +1 -0
- package/dist/components/nano-range.d.ts +11 -0
- package/dist/components/nano-range.js +430 -0
- package/dist/components/nano-range.js.map +1 -0
- package/dist/components/nano-rating.d.ts +11 -0
- package/dist/components/nano-rating.js +240 -0
- package/dist/components/nano-rating.js.map +1 -0
- package/dist/components/nano-resize-observe.d.ts +11 -0
- package/dist/components/nano-resize-observe.js +11 -0
- package/dist/components/nano-resize-observe.js.map +1 -0
- package/dist/components/nano-select.d.ts +11 -0
- package/dist/components/nano-select.js +11 -0
- package/dist/components/nano-select.js.map +1 -0
- package/dist/components/nano-skeleton.d.ts +11 -0
- package/dist/components/nano-skeleton.js +11 -0
- package/dist/components/nano-skeleton.js.map +1 -0
- package/dist/components/nano-slide.d.ts +11 -0
- package/dist/components/nano-slide.js +66 -0
- package/dist/components/nano-slide.js.map +1 -0
- package/dist/components/nano-slides.d.ts +11 -0
- package/dist/components/nano-slides.js +4335 -0
- package/dist/components/nano-slides.js.map +1 -0
- package/dist/components/nano-spinner.d.ts +11 -0
- package/dist/components/nano-spinner.js +11 -0
- package/dist/components/nano-spinner.js.map +1 -0
- package/dist/components/nano-sticker.d.ts +11 -0
- package/dist/components/nano-sticker.js +11 -0
- package/dist/components/nano-sticker.js.map +1 -0
- package/dist/components/nano-tab-content.d.ts +11 -0
- package/dist/components/nano-tab-content.js +49 -0
- package/dist/components/nano-tab-content.js.map +1 -0
- package/dist/components/nano-tab-group.d.ts +11 -0
- package/dist/components/nano-tab-group.js +457 -0
- package/dist/components/nano-tab-group.js.map +1 -0
- package/dist/components/nano-tab.d.ts +11 -0
- package/dist/components/nano-tab.js +86 -0
- package/dist/components/nano-tab.js.map +1 -0
- package/dist/components/nano-tooltip.d.ts +11 -0
- package/dist/components/nano-tooltip.js +11 -0
- package/dist/components/nano-tooltip.js.map +1 -0
- package/dist/components/nav-item.js +327 -0
- package/dist/components/nav-item.js.map +1 -0
- package/dist/components/option.js +120 -0
- package/dist/components/option.js.map +1 -0
- package/dist/{esm/popover-2c7b2326.js → components/popover.js} +10 -1
- package/dist/components/popover.js.map +1 -0
- package/dist/components/resize-observe.js +162 -0
- package/dist/components/resize-observe.js.map +1 -0
- package/dist/{esm/scroll-5cd0ab13.js → components/scroll.js} +2 -2
- package/dist/components/scroll.js.map +1 -0
- package/dist/components/select.js +667 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/skeleton.js +43 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slot.js +48 -0
- package/dist/components/slot.js.map +1 -0
- package/dist/components/spinner.js +49 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/sticker.js +665 -0
- package/dist/components/sticker.js.map +1 -0
- package/dist/{esm/tabbable-e21f860a.js → components/tabbable.js} +8 -6
- package/dist/components/tabbable.js.map +1 -0
- package/dist/components/theme.js +29 -0
- package/dist/components/theme.js.map +1 -0
- package/dist/components/throttle.js +55 -0
- package/dist/components/throttle.js.map +1 -0
- package/dist/components/tooltip.js +216 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/custom-elements/index.d.ts +12 -6
- package/dist/custom-elements/index.js +1722 -1113
- package/dist/custom-elements/index.js.map +1 -1
- package/dist/esm/active-element-75b7c8a0.js +19 -0
- package/dist/esm/active-element-75b7c8a0.js.map +1 -0
- package/dist/esm/{algoliasearch.umd-8e5aff52.js → algoliasearch.umd-adbc4aa5.js} +3 -3
- package/dist/esm/{algoliasearch.umd-8e5aff52.js.map → algoliasearch.umd-adbc4aa5.js.map} +1 -1
- package/dist/esm/dom-faa69d29.js +75 -0
- package/dist/esm/dom-faa69d29.js.map +1 -0
- package/dist/esm/form-control-67eeb108.js +77 -0
- package/dist/esm/form-control-67eeb108.js.map +1 -0
- package/dist/esm/index-5f8d16e7.js +12 -12
- package/dist/esm/index-bf53664b.js +74 -0
- package/dist/esm/{index-f41ae118.js.map → index-bf53664b.js.map} +1 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{modal-eb0a9bb3.js → modal-215df46b.js} +2 -2
- package/dist/esm/{modal-eb0a9bb3.js.map → modal-215df46b.js.map} +1 -1
- package/dist/esm/nano-accordion.entry.js +2 -4
- package/dist/esm/nano-accordion.entry.js.map +1 -1
- package/dist/esm/nano-alert.entry.js +6 -6
- package/dist/esm/nano-alert.entry.js.map +1 -1
- package/dist/esm/nano-algolia-filter.entry.js +1 -1
- package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
- package/dist/esm/nano-algolia-input.entry.js +1 -1
- package/dist/esm/nano-algolia.entry.js +9 -5
- package/dist/esm/nano-algolia.entry.js.map +1 -1
- package/dist/esm/nano-aspect-ratio.entry.js +1 -1
- package/dist/esm/nano-aspect-ratio.entry.js.map +1 -1
- package/dist/esm/nano-checkbox-group.entry.js +4 -1
- package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
- package/dist/esm/nano-checkbox.entry.js +1 -1
- package/dist/esm/nano-checkbox.entry.js.map +1 -1
- package/dist/esm/nano-components.js +1 -1
- package/dist/esm/nano-datalist_3.entry.js +770 -0
- package/dist/esm/nano-datalist_3.entry.js.map +1 -0
- package/dist/esm/nano-date-input.entry.js +9 -5
- package/dist/esm/nano-date-input.entry.js.map +1 -1
- package/dist/esm/{nano-date-picker_2.entry.js → nano-date-picker.entry.js} +3 -274
- package/dist/esm/nano-date-picker.entry.js.map +1 -0
- package/dist/esm/nano-details.entry.js +2 -2
- package/dist/esm/nano-details.entry.js.map +1 -1
- package/dist/esm/nano-dialog.entry.js +5 -5
- package/dist/esm/nano-dialog.entry.js.map +1 -1
- package/dist/esm/nano-drawer.entry.js +5 -5
- package/dist/esm/nano-drawer.entry.js.map +1 -1
- package/dist/esm/nano-dropdown.entry.js +303 -0
- package/dist/esm/nano-dropdown.entry.js.map +1 -0
- package/dist/esm/nano-file-upload.entry.js +1 -1
- package/dist/esm/nano-file-upload.entry.js.map +1 -1
- package/dist/esm/nano-global-nav.entry.js +19 -24
- package/dist/esm/nano-global-nav.entry.js.map +1 -1
- package/dist/esm/nano-global-search-results.entry.js +200 -115
- package/dist/esm/nano-global-search-results.entry.js.map +1 -1
- package/dist/esm/nano-grid_3.entry.js +16 -8
- package/dist/esm/nano-grid_3.entry.js.map +1 -1
- package/dist/esm/nano-hero.entry.js +14 -6
- package/dist/esm/nano-hero.entry.js.map +1 -1
- package/dist/esm/nano-icon-button.entry.js +2 -2
- package/dist/esm/nano-icon-button.entry.js.map +1 -1
- package/dist/esm/nano-icon.entry.js +1 -1
- package/dist/esm/nano-icon.entry.js.map +1 -1
- package/dist/esm/nano-input.entry.js +80 -75
- package/dist/esm/nano-input.entry.js.map +1 -1
- package/dist/esm/nano-menu-drawer.entry.js +2 -2
- package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
- package/dist/esm/nano-nav-item_2.entry.js +284 -533
- package/dist/esm/nano-nav-item_2.entry.js.map +1 -1
- package/dist/esm/nano-range.entry.js +2 -2
- package/dist/esm/nano-range.entry.js.map +1 -1
- package/dist/esm/nano-rating.entry.js +2 -2
- package/dist/esm/nano-rating.entry.js.map +1 -1
- package/dist/esm/nano-resize-observe_2.entry.js +1 -1
- package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
- package/dist/esm/nano-slide.entry.js +1 -1
- package/dist/esm/nano-slide.entry.js.map +1 -1
- package/dist/esm/nano-slides.entry.js +1 -1
- package/dist/esm/nano-slides.entry.js.map +1 -1
- package/dist/esm/nano-spinner.entry.js +1 -1
- package/dist/esm/nano-spinner.entry.js.map +1 -1
- package/dist/esm/nano-sticker.entry.js +3 -3
- package/dist/esm/nano-sticker.entry.js.map +1 -1
- package/dist/esm/nano-tab-content.entry.js +2 -2
- package/dist/esm/nano-tab-content.entry.js.map +1 -1
- package/dist/esm/nano-tab-group.entry.js +66 -33
- package/dist/esm/nano-tab-group.entry.js.map +1 -1
- package/dist/esm/nano-tab.entry.js +10 -3
- package/dist/esm/nano-tab.entry.js.map +1 -1
- package/dist/esm/nano-tooltip.entry.js +2 -2
- package/dist/esm/nano-tooltip.entry.js.map +1 -1
- package/dist/esm/popover-db86a392.js +1893 -0
- package/dist/esm/popover-db86a392.js.map +1 -0
- package/dist/esm/scroll-881feb46.js +76 -0
- package/dist/esm/{scroll-5cd0ab13.js.map → scroll-881feb46.js.map} +1 -1
- package/dist/esm/tabbable-614f515e.js +94 -0
- package/dist/esm/tabbable-614f515e.js.map +1 -0
- package/dist/esm-es5/active-element-75b7c8a0.js +5 -0
- package/dist/esm-es5/active-element-75b7c8a0.js.map +1 -0
- package/dist/esm-es5/{algoliasearch.umd-8e5aff52.js → algoliasearch.umd-adbc4aa5.js} +3 -3
- package/dist/esm-es5/{algoliasearch.umd-8e5aff52.js.map → algoliasearch.umd-adbc4aa5.js.map} +1 -1
- package/dist/esm-es5/dom-faa69d29.js +5 -0
- package/dist/esm-es5/dom-faa69d29.js.map +1 -0
- package/dist/esm-es5/form-control-67eeb108.js +5 -0
- package/dist/esm-es5/form-control-67eeb108.js.map +1 -0
- package/dist/esm-es5/index-5f8d16e7.js +1 -1
- package/dist/esm-es5/index-bf53664b.js +5 -0
- package/dist/esm-es5/index-bf53664b.js.map +1 -0
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/index.js.map +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/esm-es5/{modal-eb0a9bb3.js → modal-215df46b.js} +2 -2
- package/dist/esm-es5/{modal-eb0a9bb3.js.map → modal-215df46b.js.map} +0 -0
- package/dist/esm-es5/nano-accordion.entry.js +1 -1
- package/dist/esm-es5/nano-accordion.entry.js.map +1 -1
- package/dist/esm-es5/nano-alert.entry.js +1 -1
- package/dist/esm-es5/nano-alert.entry.js.map +1 -1
- package/dist/esm-es5/nano-algolia-filter.entry.js +1 -1
- package/dist/esm-es5/nano-algolia-filter.entry.js.map +1 -1
- package/dist/esm-es5/nano-algolia-input.entry.js +1 -1
- package/dist/esm-es5/nano-algolia.entry.js +1 -1
- package/dist/esm-es5/nano-algolia.entry.js.map +1 -1
- package/dist/esm-es5/nano-aspect-ratio.entry.js +1 -1
- package/dist/esm-es5/nano-aspect-ratio.entry.js.map +1 -1
- package/dist/esm-es5/nano-checkbox-group.entry.js +1 -1
- package/dist/esm-es5/nano-checkbox-group.entry.js.map +1 -1
- package/dist/esm-es5/nano-checkbox.entry.js +1 -1
- package/dist/esm-es5/nano-checkbox.entry.js.map +1 -1
- package/dist/esm-es5/nano-components.js +1 -1
- package/dist/esm-es5/nano-components.js.map +1 -1
- package/dist/esm-es5/nano-datalist_3.entry.js +5 -0
- package/dist/esm-es5/nano-datalist_3.entry.js.map +1 -0
- package/dist/esm-es5/nano-date-input.entry.js +1 -1
- package/dist/esm-es5/nano-date-input.entry.js.map +1 -1
- package/dist/esm-es5/nano-date-picker.entry.js +5 -0
- package/dist/esm-es5/nano-date-picker.entry.js.map +1 -0
- package/dist/esm-es5/nano-details.entry.js +1 -1
- package/dist/esm-es5/nano-details.entry.js.map +1 -1
- package/dist/esm-es5/nano-dialog.entry.js +1 -1
- package/dist/esm-es5/nano-dialog.entry.js.map +1 -1
- package/dist/esm-es5/nano-drawer.entry.js +1 -1
- package/dist/esm-es5/nano-drawer.entry.js.map +1 -1
- package/dist/esm-es5/nano-dropdown.entry.js +5 -0
- package/dist/esm-es5/nano-dropdown.entry.js.map +1 -0
- package/dist/esm-es5/nano-file-upload.entry.js +1 -1
- package/dist/esm-es5/nano-file-upload.entry.js.map +1 -1
- package/dist/esm-es5/nano-global-nav.entry.js +1 -1
- package/dist/esm-es5/nano-global-nav.entry.js.map +1 -1
- package/dist/esm-es5/nano-global-search-results.entry.js +2 -2
- package/dist/esm-es5/nano-global-search-results.entry.js.map +1 -1
- package/dist/esm-es5/nano-grid_3.entry.js +1 -1
- package/dist/esm-es5/nano-grid_3.entry.js.map +1 -1
- package/dist/esm-es5/nano-hero.entry.js +1 -1
- package/dist/esm-es5/nano-hero.entry.js.map +1 -1
- package/dist/esm-es5/nano-icon-button.entry.js +1 -1
- package/dist/esm-es5/nano-icon-button.entry.js.map +1 -1
- package/dist/esm-es5/nano-icon.entry.js +1 -1
- package/dist/esm-es5/nano-icon.entry.js.map +1 -1
- package/dist/esm-es5/nano-input.entry.js +2 -2
- package/dist/esm-es5/nano-input.entry.js.map +1 -1
- package/dist/esm-es5/nano-menu-drawer.entry.js +1 -1
- package/dist/esm-es5/nano-menu-drawer.entry.js.map +1 -1
- package/dist/esm-es5/nano-nav-item_2.entry.js +1 -1
- package/dist/esm-es5/nano-nav-item_2.entry.js.map +1 -1
- package/dist/esm-es5/nano-range.entry.js +1 -1
- package/dist/esm-es5/nano-range.entry.js.map +1 -1
- package/dist/esm-es5/nano-rating.entry.js +1 -1
- package/dist/esm-es5/nano-rating.entry.js.map +1 -1
- package/dist/esm-es5/nano-resize-observe_2.entry.js +2 -2
- package/dist/esm-es5/nano-resize-observe_2.entry.js.map +1 -1
- package/dist/esm-es5/nano-slide.entry.js +1 -1
- package/dist/esm-es5/nano-slide.entry.js.map +1 -1
- package/dist/esm-es5/nano-slides.entry.js +1 -1
- package/dist/esm-es5/nano-slides.entry.js.map +1 -1
- package/dist/esm-es5/nano-spinner.entry.js +1 -1
- package/dist/esm-es5/nano-spinner.entry.js.map +1 -1
- package/dist/esm-es5/nano-sticker.entry.js +1 -1
- package/dist/esm-es5/nano-sticker.entry.js.map +1 -1
- package/dist/esm-es5/nano-tab-content.entry.js +1 -1
- package/dist/esm-es5/nano-tab-content.entry.js.map +1 -1
- package/dist/esm-es5/nano-tab-group.entry.js +2 -2
- package/dist/esm-es5/nano-tab-group.entry.js.map +1 -1
- package/dist/esm-es5/nano-tab.entry.js +2 -2
- package/dist/esm-es5/nano-tab.entry.js.map +1 -1
- package/dist/esm-es5/nano-tooltip.entry.js +1 -1
- package/dist/esm-es5/nano-tooltip.entry.js.map +1 -1
- package/dist/esm-es5/{popover-2c7b2326.js → popover-db86a392.js} +2 -2
- package/dist/esm-es5/popover-db86a392.js.map +1 -0
- package/dist/esm-es5/{scroll-5cd0ab13.js → scroll-881feb46.js} +2 -2
- package/dist/esm-es5/{scroll-5cd0ab13.js.map → scroll-881feb46.js.map} +0 -0
- package/dist/esm-es5/tabbable-614f515e.js +5 -0
- package/dist/esm-es5/tabbable-614f515e.js.map +1 -0
- package/dist/nano-components/index.esm.js +1 -1
- package/dist/nano-components/index.esm.js.map +1 -1
- package/dist/nano-components/nano-components.css +1 -1
- package/dist/nano-components/nano-components.esm.js +1 -1
- package/dist/nano-components/nano-components.esm.js.map +1 -1
- package/dist/nano-components/{p-2f21a443.system.entry.js → p-033296c7.system.entry.js} +2 -2
- package/dist/nano-components/{p-2f21a443.system.entry.js.map → p-033296c7.system.entry.js.map} +1 -1
- package/dist/nano-components/p-040b6cda.entry.js +5 -0
- package/dist/nano-components/{p-61565b5a.entry.js.map → p-040b6cda.entry.js.map} +1 -1
- package/dist/nano-components/p-05c7bde1.system.entry.js +5 -0
- package/dist/nano-components/{p-30df44d9.system.entry.js.map → p-05c7bde1.system.entry.js.map} +1 -1
- package/dist/nano-components/p-07bdf44d.entry.js +5 -0
- package/dist/nano-components/{p-88bcf55b.entry.js.map → p-07bdf44d.entry.js.map} +1 -1
- package/dist/nano-components/p-09066701.system.entry.js +5 -0
- package/dist/nano-components/p-09066701.system.entry.js.map +1 -0
- package/dist/nano-components/p-090f22a9.system.entry.js +5 -0
- package/dist/nano-components/{p-854df906.system.entry.js.map → p-090f22a9.system.entry.js.map} +1 -1
- package/dist/nano-components/p-096682d9.system.js +1 -1
- package/dist/nano-components/p-096682d9.system.js.map +1 -1
- package/dist/nano-components/p-09d2d944.system.js +5 -0
- package/dist/nano-components/p-09d2d944.system.js.map +1 -0
- package/dist/nano-components/p-14402794.entry.js +5 -0
- package/dist/nano-components/p-14402794.entry.js.map +1 -0
- package/dist/nano-components/{p-21c2a9a5.system.entry.js → p-173bae15.system.entry.js} +2 -2
- package/dist/nano-components/{p-21c2a9a5.system.entry.js.map → p-173bae15.system.entry.js.map} +1 -1
- package/dist/nano-components/p-17ebff74.system.entry.js +5 -0
- package/dist/nano-components/p-17ebff74.system.entry.js.map +1 -0
- package/dist/nano-components/{p-731935b1.js → p-1805d59a.js} +2 -2
- package/dist/nano-components/{p-731935b1.js.map → p-1805d59a.js.map} +0 -0
- package/dist/nano-components/p-1a293bd0.entry.js +5 -0
- package/dist/nano-components/{p-8b7f8ef4.entry.js.map → p-1a293bd0.entry.js.map} +1 -1
- package/dist/nano-components/p-1c216ca4.system.js +5 -0
- package/dist/{esm-es5/index-f41ae118.js.map → nano-components/p-1c216ca4.system.js.map} +1 -1
- package/dist/nano-components/p-1d13dbdf.system.js +5 -0
- package/dist/nano-components/p-1d13dbdf.system.js.map +1 -0
- package/dist/nano-components/p-1e974cad.entry.js +5 -0
- package/dist/nano-components/{p-7e60c331.entry.js.map → p-1e974cad.entry.js.map} +1 -1
- package/dist/nano-components/p-20387cde.system.entry.js +5 -0
- package/dist/nano-components/{p-91778977.system.entry.js.map → p-20387cde.system.entry.js.map} +1 -1
- package/dist/nano-components/p-20db18f3.entry.js +5 -0
- package/dist/nano-components/{p-a9dd7cf9.entry.js.map → p-20db18f3.entry.js.map} +1 -1
- package/dist/nano-components/p-22884654.system.entry.js +5 -0
- package/dist/nano-components/{p-3d0fbd0e.system.entry.js.map → p-22884654.system.entry.js.map} +1 -1
- package/dist/nano-components/p-239cc7ff.system.entry.js +5 -0
- package/dist/nano-components/p-239cc7ff.system.entry.js.map +1 -0
- package/dist/nano-components/p-2559e9c1.entry.js +5 -0
- package/dist/nano-components/p-2559e9c1.entry.js.map +1 -0
- package/dist/nano-components/p-289aa03f.js +5 -0
- package/dist/nano-components/p-289aa03f.js.map +1 -0
- package/dist/nano-components/p-2e6c55e2.entry.js +5 -0
- package/dist/nano-components/{p-6f3d20fe.entry.js.map → p-2e6c55e2.entry.js.map} +1 -1
- package/dist/nano-components/{p-8757b4eb.js → p-305abcb0.js} +3 -3
- package/dist/nano-components/{p-8757b4eb.js.map → p-305abcb0.js.map} +1 -1
- package/dist/nano-components/{p-60c9b580.system.js → p-3258c568.system.js} +2 -2
- package/dist/nano-components/p-3258c568.system.js.map +1 -0
- package/dist/nano-components/p-3456db01.entry.js +5 -0
- package/dist/nano-components/p-3456db01.entry.js.map +1 -0
- package/dist/nano-components/p-346588cc.entry.js +5 -0
- package/dist/nano-components/p-346588cc.entry.js.map +1 -0
- package/dist/nano-components/p-394c3c19.entry.js +5 -0
- package/dist/nano-components/{p-217f71aa.entry.js.map → p-394c3c19.entry.js.map} +1 -1
- package/dist/nano-components/p-3a13948a.system.entry.js +5 -0
- package/dist/nano-components/p-3a13948a.system.entry.js.map +1 -0
- package/dist/nano-components/p-3aa1d07d.entry.js +5 -0
- package/dist/nano-components/{p-6a1c69d3.entry.js.map → p-3aa1d07d.entry.js.map} +1 -1
- package/dist/nano-components/p-3ad1d5aa.system.entry.js +5 -0
- package/dist/nano-components/p-3ad1d5aa.system.entry.js.map +1 -0
- package/dist/nano-components/p-3ef30ded.system.entry.js +5 -0
- package/dist/nano-components/{p-9bf4a6e0.system.entry.js.map → p-3ef30ded.system.entry.js.map} +1 -1
- package/dist/nano-components/p-4429caac.system.entry.js +5 -0
- package/dist/nano-components/p-4429caac.system.entry.js.map +1 -0
- package/dist/nano-components/p-4535e3bb.entry.js +5 -0
- package/dist/nano-components/{p-143bca0d.entry.js.map → p-4535e3bb.entry.js.map} +1 -1
- package/dist/nano-components/p-462ad4f1.entry.js +5 -0
- package/dist/nano-components/p-462ad4f1.entry.js.map +1 -0
- package/dist/nano-components/p-5066e563.system.entry.js +5 -0
- package/dist/nano-components/{p-006f2fd3.system.entry.js.map → p-5066e563.system.entry.js.map} +1 -1
- package/dist/nano-components/p-52ab579e.system.entry.js +5 -0
- package/dist/nano-components/p-52ab579e.system.entry.js.map +1 -0
- package/dist/nano-components/p-531d5275.system.entry.js +5 -0
- package/dist/nano-components/{p-b79dc23a.system.entry.js.map → p-531d5275.system.entry.js.map} +1 -1
- package/dist/nano-components/p-55535a0c.system.entry.js +5 -0
- package/dist/nano-components/p-55535a0c.system.entry.js.map +1 -0
- package/dist/nano-components/p-5653961d.system.entry.js +5 -0
- package/dist/nano-components/{p-18f49ebf.system.entry.js.map → p-5653961d.system.entry.js.map} +1 -1
- package/dist/nano-components/p-56ba0d63.entry.js +5 -0
- package/dist/nano-components/p-56ba0d63.entry.js.map +1 -0
- package/dist/nano-components/p-593de29b.system.entry.js +5 -0
- package/dist/nano-components/{p-76b13c27.system.entry.js.map → p-593de29b.system.entry.js.map} +1 -1
- package/dist/nano-components/{p-8a608e6d.entry.js → p-5e7c7d3d.entry.js} +2 -2
- package/dist/nano-components/{p-8a608e6d.entry.js.map → p-5e7c7d3d.entry.js.map} +1 -1
- package/dist/nano-components/p-672e5547.js +5 -0
- package/dist/nano-components/p-672e5547.js.map +1 -0
- package/dist/nano-components/p-69439aa1.system.entry.js +5 -0
- package/dist/nano-components/p-69439aa1.system.entry.js.map +1 -0
- package/dist/nano-components/p-6ade3290.entry.js +5 -0
- package/dist/nano-components/{p-1e03f9bf.entry.js.map → p-6ade3290.entry.js.map} +1 -1
- package/dist/nano-components/p-70dec19f.entry.js +5 -0
- package/dist/nano-components/{p-d0e9b177.entry.js.map → p-70dec19f.entry.js.map} +1 -1
- package/dist/nano-components/p-7232c046.system.entry.js +5 -0
- package/dist/nano-components/{p-92b3f99b.system.entry.js.map → p-7232c046.system.entry.js.map} +1 -1
- package/dist/nano-components/p-730f60ea.entry.js +5 -0
- package/dist/nano-components/{p-78cf9d39.entry.js.map → p-730f60ea.entry.js.map} +1 -1
- package/dist/nano-components/{p-a16651a6.system.js → p-7319fa52.system.js} +3 -3
- package/dist/nano-components/{p-a16651a6.system.js.map → p-7319fa52.system.js.map} +1 -1
- package/dist/nano-components/p-74a7fc4f.js +5 -0
- package/dist/nano-components/p-74a7fc4f.js.map +1 -0
- package/dist/nano-components/{p-981cc614.entry.js → p-7a9aeeb5.entry.js} +2 -2
- package/dist/nano-components/{p-981cc614.entry.js.map → p-7a9aeeb5.entry.js.map} +0 -0
- package/dist/nano-components/{p-d31761c8.system.js → p-7be6b7f3.system.js} +2 -2
- package/dist/nano-components/p-7be6b7f3.system.js.map +1 -0
- package/dist/nano-components/p-7d2e2685.entry.js +5 -0
- package/dist/nano-components/p-7d2e2685.entry.js.map +1 -0
- package/dist/nano-components/p-820d9e23.system.entry.js +5 -0
- package/dist/nano-components/p-820d9e23.system.entry.js.map +1 -0
- package/dist/nano-components/p-8278c5d2.system.entry.js +5 -0
- package/dist/nano-components/{p-badf69ee.system.entry.js.map → p-8278c5d2.system.entry.js.map} +1 -1
- package/dist/nano-components/p-82f4b071.entry.js +5 -0
- package/dist/nano-components/p-82f4b071.entry.js.map +1 -0
- package/dist/nano-components/p-88f17c86.system.entry.js +5 -0
- package/dist/nano-components/p-88f17c86.system.entry.js.map +1 -0
- package/dist/nano-components/p-8a8f893b.system.entry.js +5 -0
- package/dist/nano-components/{p-cc668975.system.entry.js.map → p-8a8f893b.system.entry.js.map} +1 -1
- package/dist/nano-components/p-93448bcd.system.entry.js +5 -0
- package/dist/nano-components/{p-02e82e14.system.entry.js.map → p-93448bcd.system.entry.js.map} +1 -1
- package/dist/nano-components/p-94593617.system.entry.js +5 -0
- package/dist/nano-components/{p-2442eda0.system.entry.js.map → p-94593617.system.entry.js.map} +1 -1
- package/dist/nano-components/{p-56113dd3.js → p-9a385481.js} +2 -2
- package/dist/nano-components/p-9a385481.js.map +1 -0
- package/dist/nano-components/{p-8134c14e.system.js → p-9de508a5.system.js} +2 -2
- package/dist/nano-components/p-9de508a5.system.js.map +1 -0
- package/dist/nano-components/p-a315ed2c.entry.js +5 -0
- package/dist/nano-components/{p-13801651.entry.js.map → p-a315ed2c.entry.js.map} +1 -1
- package/dist/nano-components/{p-18411914.system.js → p-b370e3ef.system.js} +2 -2
- package/dist/nano-components/{p-18411914.system.js.map → p-b370e3ef.system.js.map} +0 -0
- package/dist/nano-components/p-b59d2bd5.entry.js +5 -0
- package/dist/nano-components/p-b59d2bd5.entry.js.map +1 -0
- package/dist/nano-components/p-b619500f.js +5 -0
- package/dist/nano-components/p-b619500f.js.map +1 -0
- package/dist/nano-components/{p-23f65b34.entry.js → p-ba13bb56.entry.js} +2 -2
- package/dist/nano-components/{p-23f65b34.entry.js.map → p-ba13bb56.entry.js.map} +1 -1
- package/dist/nano-components/p-c0ddb4c3.entry.js +5 -0
- package/dist/nano-components/{p-78569d39.entry.js.map → p-c0ddb4c3.entry.js.map} +1 -1
- package/dist/nano-components/p-c475b57f.system.entry.js +5 -0
- package/dist/nano-components/p-c475b57f.system.entry.js.map +1 -0
- package/dist/nano-components/{p-bfc12324.system.entry.js → p-c7c50a7d.system.entry.js} +2 -2
- package/dist/nano-components/{p-bfc12324.system.entry.js.map → p-c7c50a7d.system.entry.js.map} +0 -0
- package/dist/nano-components/p-c9c1a345.system.entry.js +5 -0
- package/dist/nano-components/{p-38a3e791.system.entry.js.map → p-c9c1a345.system.entry.js.map} +1 -1
- package/dist/nano-components/{p-8c8963f6.js → p-cb79d1ec.js} +2 -2
- package/dist/nano-components/{p-8c8963f6.js.map → p-cb79d1ec.js.map} +0 -0
- package/dist/nano-components/p-cce0806e.entry.js +5 -0
- package/dist/nano-components/p-cce0806e.entry.js.map +1 -0
- package/dist/nano-components/p-d6569144.entry.js +5 -0
- package/dist/nano-components/{p-c7b7f7ab.entry.js.map → p-d6569144.entry.js.map} +1 -1
- package/dist/nano-components/{p-2d1a856e.system.js → p-d84ef175.system.js} +2 -2
- package/dist/nano-components/{p-2d1a856e.system.js.map → p-d84ef175.system.js.map} +0 -0
- package/dist/nano-components/p-d857f3ed.entry.js +5 -0
- package/dist/nano-components/p-d857f3ed.entry.js.map +1 -0
- package/dist/nano-components/p-d9c7909e.js +5 -0
- package/dist/nano-components/p-d9c7909e.js.map +1 -0
- package/dist/nano-components/p-dfe50fff.entry.js +5 -0
- package/dist/nano-components/p-dfe50fff.entry.js.map +1 -0
- package/dist/nano-components/p-e11bd40d.entry.js +5 -0
- package/dist/nano-components/{p-a21d90aa.entry.js.map → p-e11bd40d.entry.js.map} +1 -1
- package/dist/nano-components/p-e15be516.system.entry.js +5 -0
- package/dist/nano-components/p-e15be516.system.entry.js.map +1 -0
- package/dist/nano-components/p-e35eac75.entry.js +5 -0
- package/dist/nano-components/p-e35eac75.entry.js.map +1 -0
- package/dist/nano-components/p-e562bffd.entry.js +5 -0
- package/dist/nano-components/p-e562bffd.entry.js.map +1 -0
- package/dist/nano-components/p-e64daa92.entry.js +5 -0
- package/dist/nano-components/p-e64daa92.entry.js.map +1 -0
- package/dist/nano-components/p-e6f41b97.entry.js +5 -0
- package/dist/nano-components/p-e6f41b97.entry.js.map +1 -0
- package/dist/nano-components/p-e6f8f9f7.system.entry.js +5 -0
- package/dist/nano-components/p-e6f8f9f7.system.entry.js.map +1 -0
- package/dist/nano-components/p-ea5eb591.system.js +5 -0
- package/dist/nano-components/p-ea5eb591.system.js.map +1 -0
- package/dist/nano-components/p-ef4e0912.system.entry.js +5 -0
- package/dist/nano-components/{p-2aed806d.system.entry.js.map → p-ef4e0912.system.entry.js.map} +1 -1
- package/dist/nano-components/p-f2e7d2f9.system.entry.js +5 -0
- package/dist/nano-components/p-f2e7d2f9.system.entry.js.map +1 -0
- package/dist/nano-components/p-f3bf942d.entry.js +5 -0
- package/dist/nano-components/p-f3bf942d.entry.js.map +1 -0
- package/dist/nano-components/p-f53989c3.system.entry.js +5 -0
- package/dist/nano-components/{p-6621e4f1.system.entry.js.map → p-f53989c3.system.entry.js.map} +1 -1
- package/dist/nano-components/p-f84998c9.system.entry.js +5 -0
- package/dist/nano-components/p-f84998c9.system.entry.js.map +1 -0
- package/dist/themes/nanopore.css +1 -1
- package/dist/themes/nanopore.css.map +1 -1
- package/dist/types/components/accordion/accordion.d.ts +0 -1
- package/dist/types/components/checkbox/checkbox-group.d.ts +1 -0
- package/dist/types/components/datalist/datalist.d.ts +98 -0
- package/dist/types/components/date-input/date-input.d.ts +2 -0
- package/dist/types/components/dialog/dialog.helpers.d.ts +2 -2
- package/dist/types/components/dropdown/dropdown.d.ts +8 -4
- package/dist/types/components/form-control/form-control.d.ts +35 -0
- package/dist/types/components/global-search-results/global-search-results.d.ts +1 -0
- package/dist/types/components/grid/grid.d.ts +7 -1
- package/dist/types/components/hero/hero.d.ts +2 -0
- package/dist/types/components/input/input.d.ts +13 -9
- package/dist/types/components/menu/menu.d.ts +22 -8
- package/dist/types/components/option/option-interface.d.ts +7 -0
- package/dist/types/components/option/option.d.ts +45 -0
- package/dist/types/components/select/select.d.ts +43 -49
- package/dist/types/components/tabs/tab-group.d.ts +26 -6
- package/dist/types/components/tabs/tab.d.ts +6 -1
- package/dist/types/components.d.ts +241 -70
- package/dist/types/interface.d.ts +1 -0
- package/dist/types/utils/active-element.d.ts +1 -0
- package/dist/types/utils/dom.d.ts +9 -1
- package/dist/types/utils/index.d.ts +2 -1
- package/dist/types/utils/tabbable.d.ts +2 -2
- package/dist/types/utils/testing/index.d.ts +3 -2
- package/docs-json.json +1223 -261
- package/docs-vscode.json +102 -33
- package/package.json +5 -5
- package/dist/cjs/dom-5f3fae1a.js.map +0 -1
- package/dist/cjs/index-117f36a4.js.map +0 -1
- package/dist/cjs/nano-date-picker_2.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-menu.cjs.entry.js +0 -156
- package/dist/cjs/nano-menu.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-select-option.cjs.entry.js +0 -43
- package/dist/cjs/nano-select-option.cjs.entry.js.map +0 -1
- package/dist/cjs/popover-d033efa2.js.map +0 -1
- package/dist/cjs/tabbable-615c30e1.js.map +0 -1
- package/dist/collection/components/select/select-option.css +0 -15
- package/dist/collection/components/select/select-option.js +0 -127
- package/dist/collection/components/select/select-option.js.map +0 -1
- package/dist/esm/dom-a791b223.js.map +0 -1
- package/dist/esm/nano-date-picker_2.entry.js.map +0 -1
- package/dist/esm/nano-menu.entry.js +0 -152
- package/dist/esm/nano-menu.entry.js.map +0 -1
- package/dist/esm/nano-select-option.entry.js +0 -39
- package/dist/esm/nano-select-option.entry.js.map +0 -1
- package/dist/esm/popover-2c7b2326.js.map +0 -1
- package/dist/esm/tabbable-e21f860a.js.map +0 -1
- package/dist/esm-es5/dom-a791b223.js +0 -5
- package/dist/esm-es5/dom-a791b223.js.map +0 -1
- package/dist/esm-es5/index-f41ae118.js +0 -5
- package/dist/esm-es5/nano-date-picker_2.entry.js +0 -5
- package/dist/esm-es5/nano-date-picker_2.entry.js.map +0 -1
- package/dist/esm-es5/nano-menu.entry.js +0 -5
- package/dist/esm-es5/nano-menu.entry.js.map +0 -1
- package/dist/esm-es5/nano-select-option.entry.js +0 -5
- package/dist/esm-es5/nano-select-option.entry.js.map +0 -1
- package/dist/esm-es5/popover-2c7b2326.js.map +0 -1
- package/dist/esm-es5/tabbable-e21f860a.js +0 -5
- package/dist/esm-es5/tabbable-e21f860a.js.map +0 -1
- package/dist/nano-components/p-006f2fd3.system.entry.js +0 -5
- package/dist/nano-components/p-02e82e14.system.entry.js +0 -5
- package/dist/nano-components/p-05a8014a.entry.js +0 -5
- package/dist/nano-components/p-05a8014a.entry.js.map +0 -1
- package/dist/nano-components/p-13801651.entry.js +0 -5
- package/dist/nano-components/p-13fa75fc.entry.js +0 -5
- package/dist/nano-components/p-13fa75fc.entry.js.map +0 -1
- package/dist/nano-components/p-143bca0d.entry.js +0 -5
- package/dist/nano-components/p-18f49ebf.system.entry.js +0 -5
- package/dist/nano-components/p-19428228.system.entry.js +0 -5
- package/dist/nano-components/p-19428228.system.entry.js.map +0 -1
- package/dist/nano-components/p-1e03f9bf.entry.js +0 -5
- package/dist/nano-components/p-217f71aa.entry.js +0 -5
- package/dist/nano-components/p-2442eda0.system.entry.js +0 -5
- package/dist/nano-components/p-2946bd70.system.entry.js +0 -5
- package/dist/nano-components/p-2946bd70.system.entry.js.map +0 -1
- package/dist/nano-components/p-2aed806d.system.entry.js +0 -5
- package/dist/nano-components/p-30df44d9.system.entry.js +0 -5
- package/dist/nano-components/p-38a3e791.system.entry.js +0 -5
- package/dist/nano-components/p-3a49ceab.entry.js +0 -5
- package/dist/nano-components/p-3a49ceab.entry.js.map +0 -1
- package/dist/nano-components/p-3d0fbd0e.system.entry.js +0 -5
- package/dist/nano-components/p-3f00179c.js +0 -5
- package/dist/nano-components/p-3f00179c.js.map +0 -1
- package/dist/nano-components/p-48e6bea3.entry.js +0 -5
- package/dist/nano-components/p-48e6bea3.entry.js.map +0 -1
- package/dist/nano-components/p-4d62ec32.system.js +0 -5
- package/dist/nano-components/p-4d62ec32.system.js.map +0 -1
- package/dist/nano-components/p-4e451498.entry.js +0 -5
- package/dist/nano-components/p-4e451498.entry.js.map +0 -1
- package/dist/nano-components/p-51d9570d.entry.js +0 -5
- package/dist/nano-components/p-51d9570d.entry.js.map +0 -1
- package/dist/nano-components/p-51fa04a6.entry.js +0 -5
- package/dist/nano-components/p-51fa04a6.entry.js.map +0 -1
- package/dist/nano-components/p-55189485.system.entry.js +0 -5
- package/dist/nano-components/p-55189485.system.entry.js.map +0 -1
- package/dist/nano-components/p-56113dd3.js.map +0 -1
- package/dist/nano-components/p-5bbd6c81.entry.js +0 -5
- package/dist/nano-components/p-5bbd6c81.entry.js.map +0 -1
- package/dist/nano-components/p-5e9170ae.entry.js +0 -5
- package/dist/nano-components/p-5e9170ae.entry.js.map +0 -1
- package/dist/nano-components/p-60c9b580.system.js.map +0 -1
- package/dist/nano-components/p-61565b5a.entry.js +0 -5
- package/dist/nano-components/p-621750cc.js +0 -5
- package/dist/nano-components/p-621750cc.js.map +0 -1
- package/dist/nano-components/p-6621e4f1.system.entry.js +0 -5
- package/dist/nano-components/p-6a1c69d3.entry.js +0 -5
- package/dist/nano-components/p-6ab8d211.system.entry.js +0 -5
- package/dist/nano-components/p-6ab8d211.system.entry.js.map +0 -1
- package/dist/nano-components/p-6e9b3d60.system.entry.js +0 -5
- package/dist/nano-components/p-6e9b3d60.system.entry.js.map +0 -1
- package/dist/nano-components/p-6f3d20fe.entry.js +0 -5
- package/dist/nano-components/p-6feac35e.entry.js +0 -5
- package/dist/nano-components/p-6feac35e.entry.js.map +0 -1
- package/dist/nano-components/p-723c212f.system.entry.js +0 -5
- package/dist/nano-components/p-723c212f.system.entry.js.map +0 -1
- package/dist/nano-components/p-76b13c27.system.entry.js +0 -5
- package/dist/nano-components/p-78569d39.entry.js +0 -5
- package/dist/nano-components/p-78cf9d39.entry.js +0 -5
- package/dist/nano-components/p-7e60c331.entry.js +0 -5
- package/dist/nano-components/p-8134c14e.system.js.map +0 -1
- package/dist/nano-components/p-81b4ed2a.system.entry.js +0 -5
- package/dist/nano-components/p-81b4ed2a.system.entry.js.map +0 -1
- package/dist/nano-components/p-854df906.system.entry.js +0 -5
- package/dist/nano-components/p-88bcf55b.entry.js +0 -5
- package/dist/nano-components/p-8b7f8ef4.entry.js +0 -5
- package/dist/nano-components/p-8c3993ff.entry.js +0 -5
- package/dist/nano-components/p-8c3993ff.entry.js.map +0 -1
- package/dist/nano-components/p-91778977.system.entry.js +0 -5
- package/dist/nano-components/p-92b3f99b.system.entry.js +0 -5
- package/dist/nano-components/p-9bd73d1d.js +0 -5
- package/dist/nano-components/p-9bd73d1d.js.map +0 -1
- package/dist/nano-components/p-9bf4a6e0.system.entry.js +0 -5
- package/dist/nano-components/p-9df226fd.system.entry.js +0 -5
- package/dist/nano-components/p-9df226fd.system.entry.js.map +0 -1
- package/dist/nano-components/p-a0b55c38.system.entry.js +0 -5
- package/dist/nano-components/p-a0b55c38.system.entry.js.map +0 -1
- package/dist/nano-components/p-a21d90aa.entry.js +0 -5
- package/dist/nano-components/p-a9dd7cf9.entry.js +0 -5
- package/dist/nano-components/p-ad069ba4.entry.js +0 -5
- package/dist/nano-components/p-ad069ba4.entry.js.map +0 -1
- package/dist/nano-components/p-b246a7bb.entry.js +0 -5
- package/dist/nano-components/p-b246a7bb.entry.js.map +0 -1
- package/dist/nano-components/p-b45d4be9.entry.js +0 -5
- package/dist/nano-components/p-b45d4be9.entry.js.map +0 -1
- package/dist/nano-components/p-b79dc23a.system.entry.js +0 -5
- package/dist/nano-components/p-b86fc6b7.system.js +0 -5
- package/dist/nano-components/p-b86fc6b7.system.js.map +0 -1
- package/dist/nano-components/p-badf69ee.system.entry.js +0 -5
- package/dist/nano-components/p-bde0deae.system.entry.js +0 -5
- package/dist/nano-components/p-bde0deae.system.entry.js.map +0 -1
- package/dist/nano-components/p-be3df2e8.system.entry.js +0 -5
- package/dist/nano-components/p-be3df2e8.system.entry.js.map +0 -1
- package/dist/nano-components/p-c39c1e8d.entry.js +0 -5
- package/dist/nano-components/p-c39c1e8d.entry.js.map +0 -1
- package/dist/nano-components/p-c7b7f7ab.entry.js +0 -5
- package/dist/nano-components/p-c82ccbc8.entry.js +0 -5
- package/dist/nano-components/p-c82ccbc8.entry.js.map +0 -1
- package/dist/nano-components/p-cc668975.system.entry.js +0 -5
- package/dist/nano-components/p-cfd4c9de.system.entry.js +0 -5
- package/dist/nano-components/p-cfd4c9de.system.entry.js.map +0 -1
- package/dist/nano-components/p-d0e9b177.entry.js +0 -5
- package/dist/nano-components/p-d31761c8.system.js.map +0 -1
- package/dist/nano-components/p-d47d297b.system.entry.js +0 -5
- package/dist/nano-components/p-d47d297b.system.entry.js.map +0 -1
- package/dist/nano-components/p-e48a53f5.system.entry.js +0 -5
- package/dist/nano-components/p-e48a53f5.system.entry.js.map +0 -1
- package/dist/nano-components/p-e5f01860.entry.js +0 -5
- package/dist/nano-components/p-e5f01860.entry.js.map +0 -1
- package/dist/nano-components/p-f2b2cd38.system.entry.js +0 -5
- package/dist/nano-components/p-f2b2cd38.system.entry.js.map +0 -1
- package/dist/nano-components/p-fcb5ffaf.system.entry.js +0 -5
- package/dist/nano-components/p-fcb5ffaf.system.entry.js.map +0 -1
- package/dist/types/components/select/select-option.d.ts +0 -23
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["src/utils/fetch.ts","src/components/global-nav/global-nav.scss?tag=nano-global-nav&encapsulation=shadow","src/components/global-nav/global-nav.tsx"],"names":["clientFetch","url","_a","body","customConfig","__rest","headers","Accept","Access-Control-Allow-Origin","Content-Type","Cache","config","Object","assign","method","credentials","keepalive","mode","JSON","stringify","id","setTimeout","window","AbortController","controller_1","_b","timeout","abort","signal","fetch","response","_c","sent","clearTimeout","ok","json","text","errorMessage","Error","globalNavCss","THRESHOLDLIMIT","GlobalNav","class_1","hostRef","_this","this","currSize","thresholdsGoingUp","autocompleteEles","currAIndex","isLoggedIn","myAccData","aboutNavItms","siteNavItms","loggedInNavItms","hasLoggedinSlot","hasSiteSlot","hasPromotionSlot","aboutSlotLen","iconSlotLen","mainSlotLen","overflowSlotLen","searchSlotLen","internalSearchIndeces","thresholdReady","remoteDataReady","ready","isResizing","threshold","modalOpen","modalIsOpen","searchBarShown","scrollingUp","searchLoading","showAutocomplete","secondaryMenuOpen","userMenuOpen","menuFullScreen","searchValInternal","env","ssoRedirect","encodeURIComponent","location","href","getMyAccountData","activeMyAccountSections","showSearch","showLogo","logoUrl","protocol","host","searchIndeces","myAccountUser","searchValue","searchIndex","cartCount","msgCount","cartUrl","msgUrl","setResizingState","state","debounceSetResizingState","debounce","onMenuBtnKeyDown","ev","key","menuClose","menuOpen","onMenuBtnClick","e","preventDefault","menuDiv","style","display","menuWrapDiv","addEventListener","focus","preventScroll","scrollHeight","innerHeight","document","overflow","overflowX","onMenuHidden","removeEventListener","activeElement","menuBtn","mainBarDiv","force","relatedTarget","closestElement","closest","subMenuClose","target","open","onUserBtnClick","onUserBtnKeyDown","onUserMenuBlur","onSearchBtnClick","searchbarShow","searchbarHide","onSearchBtnKeyDown","onSearchBarShown","searchBarEl","searchInput","setFocus","length","onSearchBarHidden","height","onSearchInput","value","isSearchValSet","detail","onSearchSubmit","onSearchChange","__awaiter","autocompleteResults","nanoSearchReset","emit","currentIndex","currentSelectedIndex","processSearchResults","alogliaIndex","search","attributesToSnippet","hitsPerPage","filters","Math","floor","Date","now","apply","_e","console","error","e_1","scopeSearch","_d","showAutocompleteResults","algoliaSearchResults","queries","map","index","indexName","query","facets","algoliaClient","multipleQueries","nanoSearchError","e_2","results","result","i","name","selected","domain","domains","allGroup","nanoSearchResult","client","apiKey","searchApiKey","appId","searchAppId","onSearchIndexChange","indexStr","selectedIndex","find","switchIndexSubmit","onAutocompleteBlur","hits","onAutocompleteInteract","testIndex","el","shadowRoot","found_1","ele","setActiveElement","found","click","prototype","submitSearch","foundIndex","changeInternalSearchVal","initAlgoliaClient","algoliasearch","addAlgoliaIndeces","addIndeces","__spreadArray","forEach","initIndex","thresholdChange","newThreshold","oldThreshold","ratioChange","intersectRatio","siteContent","minHeight","barsDiv","clientHeight","menuItems_1","barItems_1","readTask","Array","from","querySelectorAll","push","writeTask","item","classList","add","remove","assessReady","remoteReady","attachIO","isReady","nanoIsReady","setupAutocompleteBlur","slotChange","thresholdClasses","classes","onWindowResize","innerWidth","secondaryOpen","secondaryMenu","stopPropagation","menuContentDiv","secondaryClose","handleUserMenu","displayTransition","userLinkPanel","querySelector","autocompleteSnippet","hit","lookFor","_snippetResult","prop","matchLevel","title","substring","resetHitFocus","autocompleteEle","setAttribute","assessSlottedContent","io","root","IntersectionObserver","data","slice","intersectionRatio","observe","componentDidLoad","debounceResize","bind","componentWillLoad","ComponentStore","init","MutationObserver","mo","childList","subtree","disconnectedCallback","disconnect","undefined","connectedCallback","getMyAccData","autocompleteList","content","currentScopeHits","scopeChangeSuggestions","scopeSuggestReducer","total","currentSuggestReducer","reduce","scopeSuggestions_1","h","class","role","ref","a","tabindex","innerHTML","button","onClick","onMouseDown","aria-expanded","hidden","searchWidget","onSubmit","label","hideLabel","showInlineError","onNanoChange","mask","slot","aria-label","clear-input","placeholder","type","input","onNanoInput","aria-autocomplete","aria-activedescendant","aria-controls","onNanoFocus","search-icon","search-icon--search","search-icon--show","search-icon--loader","render","isRtl","ownerDocument","dir","Host","join","resizing","global-nav","scrolling-down","menu","has-promotion","menu-full-screen","secondary-open","div","onKeyDown","includes","urls","login","link","address","forgot_password","logout","auto-resize","break-point-max","quietMode","w","btn","src","getAssetPath","alt","aria-owns","icon-btn","user-links-btn","search-bar","show","onTouchEnd","domainFor","origin","dm","multiResults","singleResult","match","import","user","processMyAccLinks","processMyAccData","e_3","indeces","api_key","app_id","cart","count","notifications","messages","links","area"],"mappings":"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","sourcesContent":["interface FetchInputConfig {\n body?: { [prop: string]: string };\n headers?: { [prop: string]: string };\n [prop: string]: any;\n}\n\nexport async function clientFetch(\n url: string,\n { body, ...customConfig }: FetchInputConfig = {}\n) {\n const headers: { [prop: string]: string } = {\n Accept: 'application/json, text/plain, */*',\n 'Access-Control-Allow-Origin': '*',\n 'Content-Type': 'application/json',\n Cache: 'no-cache',\n };\n const config: RequestInit = {\n method: body ? 'POST' : 'GET',\n credentials: 'include',\n keepalive: true,\n mode: 'cors',\n ...customConfig,\n headers: {\n ...headers,\n ...customConfig.headers,\n },\n };\n if (body) {\n config.body = JSON.stringify(body);\n }\n\n let id = setTimeout(() => {}, 0);\n if (window.AbortController) {\n const controller = new AbortController();\n const { timeout = 500 } = customConfig;\n id = setTimeout(() => controller.abort(), timeout);\n config.signal = controller.signal;\n }\n\n const response = await fetch(url, config);\n clearTimeout(id);\n\n if (response.ok) {\n return await response.json();\n } else {\n const errorMessage = await response.text();\n return new Error(errorMessage);\n }\n}\n","@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/colours';\n@import '../../global/style/nano-theme/layers';\n\n:host {\n /**\n * @prop --padding: padding used for many elements. Defaults to '12px 0'.\n * @prop --padding-top: top padding used for many elements. Defaults to --padding.\n * @prop --padding-bottom: bottom padding used for many elements. Defaults to --padding.\n * @prop --padding-end: end (left on l2r / right on r2l) padding used for many elements. Defaulst to --padding.\n * @prop --padding-start: start (right on l2r / left on r2l) padding used for many elements. Defaults to --padding.\n * @prop --bar-background: Background of the bar element. Defaults to rgb(17, 85, 113).\n * @prop --bar-text-color: Text color within the bar element. Defaults to white.\n * @prop --bar-color-shade: Color variant used within the bar element. Defaults to rgb(40, 110, 133).\n * @prop --bar-color-tint: Color variant used within the bar element. Defaults to rgb(88, 140, 161).\n * @prop --bar-color-focus: Focus color of the form element within search. Defaults to #90c6e7;\n * @prop --bar-color-focus: Focus color of the form element within search. Defaults to #90c6e7;\n * @prop --menu-background: Background 'burger', menu element. Defaults to #001a21;\n * @prop --menu-text-color: Text color 'burger', menu element. Defaults to white;\n */\n --padding: 12px;\n --padding-top: var(--padding);\n --padding-end: var(--padding);\n --padding-bottom: var(--padding);\n --padding-start: var(--padding);\n --bar-background: #005c75;\n --bar-text-color: white;\n --bar-color-shade: rgb(19, 89, 111);\n --bar-color-tint: rgb(19, 89, 111);\n --bar-color-focus: #90c6e7;\n --menu-background: #001a21;\n --menu-text-color: white;\n --menu-dropdown-bg: #196c82;\n --menu-dropdown-color: white;\n\n display: block;\n position: relative;\n line-height: 1.5;\n height: 100%;\n\n * {\n box-sizing: inherit;\n }\n}\n\n// Common\n.global-nav {\n @include text-inherit();\n\n font-size: 0.88em;\n z-index: #{$layer-index-menubar};\n\n button {\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n }\n\n .icon-btn {\n position: relative;\n background: none;\n color: inherit;\n border: none;\n align-self: normal;\n padding: 9px 7px;\n cursor: pointer;\n display: flex;\n align-items: center;\n\n nano-icon {\n width: 18px;\n height: 18px;\n }\n }\n\n ::slotted(nano-nav-item[slot='icon']) {\n --padding-top: 9px;\n --padding-bottom: 9px;\n --padding-start: 7px;\n --padding-end: 7px;\n --display: flex;\n\n font-size: 18px;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n white-space: nowrap;\n }\n\n .nav-links {\n &_title {\n margin: 8px 0 3px;\n }\n\n ul {\n margin: 0;\n padding: 0;\n }\n\n li {\n list-style: none;\n }\n }\n\n .login-btn {\n display: flex;\n align-items: center;\n font-size: 0.94em;\n }\n\n .menu-btn {\n padding: 9px var(--padding) 9px var(--padding);\n }\n}\n\n// Popup / Slideout Menu\n.menu {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -1;\n display: none;\n transition: z-index 0.01s ease 0.2s;\n height: 100vh;\n width: 100vw;\n overflow-y: auto;\n\n @include rtl-host() {\n left: auto;\n right: 0;\n }\n\n :host(.threshold-2) & {\n position: absolute;\n width: calc(100vw - 20px);\n }\n\n &.menu-full-screen {\n width: 100vw !important;\n }\n\n // &.secondary-open {\n // overflow-y: hidden;\n // }\n\n &_wrap {\n max-width: 92vw;\n width: 335px;\n background: var(--menu-background);\n color: var(--menu-text-color);\n padding: var(--padding) 0;\n box-shadow: 0 0 36px 0 rgba(0, 0, 0, 0.8);\n position: relative;\n pointer-events: all;\n margin-bottom: 36px;\n opacity: 0;\n outline: none;\n transition: transform 0.2s ease, opacity 0.2s ease;\n\n &.has-promotion {\n padding: var(--padding) 0 0;\n }\n }\n\n &.open {\n z-index: #{$layer-index-dropdown};\n transition: z-index 0.01s ease;\n\n .menu_wrap {\n opacity: 1;\n transform: translate3d(0, 0, 0) !important;\n transition: transform 0.2s ease 0.01s, opacity 0.2s ease 0.01s;\n }\n }\n\n &_actions {\n @include padding(null, calc(var(--padding) / 2), null, null);\n\n display: flex;\n justify-content: space-between;\n\n &-counter {\n background: #d0021b;\n color: #fff;\n position: absolute;\n bottom: 4px;\n right: 0;\n left: auto;\n font-size: 9px;\n height: 14px;\n line-height: 14px;\n width: auto;\n min-width: 14px;\n border-radius: 50%;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n text-align: center;\n text-indent: 0;\n }\n }\n\n .content {\n &-wrap {\n position: relative;\n overflow: hidden;\n transition: 0.2s ease min-height;\n min-height: 190px;\n }\n\n &--sub {\n padding: var(--padding) 0 var(--padding) 7px;\n }\n }\n\n .menu-btn {\n @include margin(null, auto, null, null);\n }\n\n .nav-links {\n display: flex;\n flex-wrap: wrap;\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n --icon-size: 14px;\n --display: inline-block;\n --secondary-bg-color: #001a21;\n --padding-top: 10px;\n --padding-bottom: 10px;\n --padding-end: calc(var(--padding) * 2);\n --padding-start: calc(var(--padding) + 3px);\n --color: white;\n --color-hover: #{$color-lightblue};\n --bg-color-hover: transparent;\n --bg-color-focus: #002530;\n --focus-outline: none;\n\n font-size: 0.99em;\n width: 100%;\n // margin: 0 0;\n }\n\n .user-nav {\n --bg-color: #193037;\n --padding-top: 9px;\n --padding-bottom: 9px;\n\n font-weight: bold;\n margin: 5px 0 0;\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n font-weight: 500;\n\n --bg-color: transparent;\n }\n }\n\n &_title {\n margin: 0 var(--padding) 4px;\n border-bottom: 1px solid #33484d;\n padding-bottom: 8px;\n font-size: 0.86em;\n text-transform: uppercase;\n color: $color-lightblue;\n letter-spacing: 1px;\n font-weight: 700;\n }\n\n &-wrap {\n margin: 18px 0;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .back-btn {\n border-top: 1px solid #33484d;\n border-bottom: 1px solid #33484d;\n display: flex;\n align-items: center;\n padding: 10px 11px 10px 0;\n width: 100%;\n font-size: 12px;\n text-transform: uppercase;\n color: $color-lightblue;\n letter-spacing: 1px;\n font-weight: 700;\n\n nano-icon {\n @include margin(null, 10px, null, null);\n\n font-size: 12px;\n color: white;\n }\n }\n\n &--sub {\n display: flex;\n flex-wrap: wrap;\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n --border-bottom: none;\n --padding-end: var(--padding);\n --padding-start: var(--padding);\n --padding-top: 8px;\n --padding-bottom: 8px;\n\n margin: 0;\n width: 50%;\n line-height: 1.8;\n }\n }\n\n .content {\n padding: 8px var(--padding);\n }\n }\n\n .login-btn {\n @include padding(9px, var(--padding), 9px, 7px);\n\n nano-icon {\n @include margin(null, null, null, 10px);\n }\n }\n\n .logout-btn {\n justify-content: flex-end;\n\n a {\n padding: 0 5px;\n }\n }\n}\n\n// Main Bar\n.sticker-trigger {\n background: var(--bar-background);\n width: 100%;\n z-index: calc(#{$layer-index-menubar} + 1);\n}\n\n.bars {\n color: var(--bar-text-color);\n z-index: #{$layer-index-menubar};\n position: relative;\n max-width: 100%;\n min-width: 100%;\n box-shadow: none;\n transition: 0.2s ease box-shadow;\n\n [stuck] & {\n box-shadow: 0 1px 25px 0 rgba(0, 0, 0, 0.15);\n }\n\n &::before {\n content: '';\n width: 100%;\n height: 100%;\n z-index: -1;\n background: var(--bar-background);\n position: absolute;\n }\n\n .search {\n &-widget {\n @include margin(null, auto, null, 11px);\n\n position: relative;\n flex: 1 1 auto;\n max-width: 45vw;\n min-width: 269px;\n max-height: 36px;\n }\n\n &-inputs {\n display: flex;\n margin: 0;\n\n input[type='submit'] {\n display: none;\n }\n }\n\n &-autocomplete {\n position: absolute;\n top: calc(100% - 2px);\n width: 100%;\n left: 0;\n background: white;\n border: 2px solid var(--bar-color-tint);\n border-radius: 0 0 5px 5px;\n color: $color-black;\n font-size: 0.85em;\n padding: calc(var(--padding) / 2) 0 1px 0;\n z-index: 1;\n\n @include rtl-host() {\n left: auto;\n right: 0;\n }\n\n &-hit {\n padding:\n calc(var(--padding) / 4) var(--padding)\n calc(var(--padding) / 4) var(--padding);\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: block;\n text-align: left;\n line-height: 1.5;\n cursor: pointer;\n\n @include rtl-host() {\n text-align: right;\n }\n\n &-scope {\n font-size: 0.76em;\n // text-indent: 10px;\n color: rgb(167, 176, 179);\n font-weight: 600;\n }\n\n &:hover,\n &:focus {\n background-color: $color-lightgrey;\n }\n\n .search__highlight,\n em {\n font-weight: bold;\n font-style: normal;\n }\n\n &--no-result {\n &:hover,\n &:focus {\n background: none !important;\n }\n }\n }\n\n &-foot {\n margin: 7px 0 0;\n }\n\n &-submit {\n background: none;\n border: none;\n align-self: normal;\n padding: 9px var(--padding);\n cursor: pointer;\n display: flex;\n align-items: center;\n color: $color-blue;\n justify-content: flex-end;\n width: 100%;\n text-decoration: underline;\n border-top: 1px solid rgb(232, 234, 234);\n\n &:hover,\n &:focus {\n background-color: $color-lightgrey;\n }\n }\n }\n }\n\n .search-input {\n --input-border-style: solid 1px rgb(85, 140, 157);\n --input-border-style--focus: solid 1px var(--bar-color-focus, #90c6e7);\n --input-border-width: 1px;\n\n font-size: 0.9em;\n }\n\n nano-select.search-input {\n --input-bg-color: var(--bar-color-tint, rgb(88, 140, 161));\n --input-text-color: inherit;\n --input-border-radius: 5px 0 0 5px;\n\n flex: 0 1 auto;\n width: auto;\n display: flex;\n align-items: center;\n flex-direction: column;\n position: relative;\n left: 1px;\n\n @include rtl-host() {\n --input-border-radius: 0 5px 5px 0;\n }\n\n :host(:not(.ready)) & {\n overflow: hidden;\n max-height: 1em;\n }\n }\n\n nano-input.search-input {\n --input-text-color: inherit;\n --input-bg-color: var(--bar-color-shade, rgb(40, 110, 133));\n --clear-btn-color: #{$color-black};\n --input-border-radius: 0 5px 5px 0;\n --placeholder-color: white;\n\n width: 206px;\n display: flex;\n align-items: center;\n flex-direction: column;\n flex: 1;\n\n @include rtl-host() {\n --input-border-radius: 5px 0 0 5px;\n }\n\n :host(:not(.ready)) & {\n overflow: hidden;\n max-height: 1em;\n }\n\n &.has-value {\n --input-bg-color: #{$color-white};\n --input-text-color: #{$color-black};\n\n .search-icon {\n color: #{$color-black};\n }\n }\n\n .search-icon {\n background: none;\n color: white;\n padding: 0 8px;\n display: none;\n\n &--show {\n display: flex;\n }\n\n &--loader {\n animation: spin 1s linear infinite;\n\n @keyframes spin {\n 100% {\n transform: rotate(360deg);\n }\n }\n }\n\n nano-icon {\n height: 1.4em;\n }\n }\n }\n}\n\n.main-bar {\n width: 100%;\n\n @include padding(var(--padding), var(--padding), var(--padding), 0);\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n overflow-x: hidden;\n\n &:focus {\n outline: none;\n }\n\n :host(.ready) & {\n overflow-x: visible;\n }\n\n > *,\n ::slotted(*) {\n transition: opacity 0.2s ease;\n\n :host(:not(.ready)) & {\n opacity: 0 !important;\n }\n\n :host(.ready) & {\n opacity: 1;\n }\n\n :host(.resizing) & {\n opacity: 0 !important;\n }\n }\n\n > * {\n flex: 0 0 auto;\n\n ::slotted(nano-nav-item[slot='icon']) {\n @include margin(null, null, null, 11px);\n }\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n --color-hover: #{$color-lightgrey};\n --secondary-bg-color: var(--menu-dropdown-bg);\n --secondary-color: var(--menu-dropdown-color);\n --bg-color-open: var(--bar-background);\n\n text-decoration: none !important;\n }\n }\n\n .icon-btn {\n @include margin(0, null, 0, 6px);\n\n :host(.threshold-2) & {\n @include margin(0, null, 0, 11px);\n }\n }\n\n .menu-btn.icon-btn {\n margin: 0 !important;\n\n @include ltr-host() {\n border-right: 1.5px solid var(--bar-color-shade);\n }\n\n @include rtl-host() {\n border-left: 1.5px solid var(--bar-color-shade);\n }\n }\n\n .user-links {\n position: relative;\n\n .icon-btn {\n @include padding(null, 0, null, null);\n\n font-size: 0.93em;\n font-weight: 500;\n\n nano-icon {\n @include margin(null, null, null, 5px);\n\n width: 16px;\n height: 16px;\n transform-origin: center;\n transition: transform 0.2s ease, color 0.2s ease;\n }\n\n &.open {\n nano-icon {\n transform: rotate(180deg);\n color: $color-blue;\n }\n }\n }\n\n &-panel {\n display: none;\n position: absolute;\n border-radius: 4px 0 4px 4px;\n box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.4);\n background-color: #568c9d;\n opacity: 0;\n transform: translate3d(0, 24px, 0);\n transition: transform 0.2s ease, opacity 0.2s ease;\n right: 0;\n font-size: 0.85em;\n min-width: 250px;\n z-index: 1;\n\n @include rtl-host() {\n right: auto;\n left: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n &.show {\n opacity: 1;\n transform: translate3d(0, 4px, 0);\n }\n\n &-content {\n padding: 0 18px;\n display: flex;\n flex-direction: column;\n\n a {\n padding: 11px 0;\n border-bottom: #669dac 1px solid;\n\n &:hover,\n &:focus {\n color: $color-darkgrey;\n }\n\n &:last-child {\n border-bottom: none;\n }\n }\n }\n\n &-foot {\n background-color: #aac5cd;\n border-radius: 0 0 4px 4px;\n padding: var(--padding);\n color: #455556;\n display: flex;\n align-items: center;\n font-weight: 500;\n justify-content: space-between;\n\n a:hover {\n text-decoration: underline;\n }\n }\n }\n }\n\n .logo {\n height: 34px;\n width: auto;\n min-width: 196px;\n\n :host(:not(.threshold-1)) & {\n height: 30px;\n }\n }\n\n .logo-link {\n @include margin(null, auto, null, 0);\n @include padding(null, 11px, null, 11px);\n\n display: flex;\n align-items: center;\n border: none;\n }\n\n .nav-links {\n font-size: 0.86em;\n flex: 1 0 auto;\n display: flex;\n justify-content: space-around;\n\n ul {\n display: flex;\n justify-content: space-around;\n }\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n --padding-top: 7px;\n --padding-bottom: 7px;\n --padding-end: 2px;\n --padding-start: 2px;\n --margin: 0 11px;\n }\n\n &--main {\n font-weight: bold;\n justify-content: flex-start;\n\n ::slotted(nano-nav-item) {\n --color: white;\n --padding-end: 6px;\n --padding-start: 6px;\n }\n }\n\n &--sub {\n @include margin(null, null, null, 6px);\n\n --color: #e2e2e2;\n\n justify-content: flex-end;\n }\n }\n\n .login-btn {\n display: inline-block;\n border-radius: 4px;\n background-color: #17bb75;\n color: #fff;\n padding: 3px 10px;\n position: relative;\n left: auto;\n bottom: auto;\n\n @include margin(null, 0, null, 11px);\n }\n\n .measure-ele {\n min-width: 1px;\n display: block;\n margin: 0;\n padding: 0;\n }\n}\n\n.search-bar {\n height: 0;\n overflow: hidden;\n transition: 0.2s ease height;\n padding: 0 var(--padding);\n outline: none;\n\n .search-widget {\n @include margin(0, 0, 0, 0);\n\n overflow: inherit;\n max-width: none;\n max-height: none;\n padding: 0 0 var(--padding);\n }\n\n .search-inputs {\n padding: 0 0;\n margin: 0 0;\n }\n\n .search-autocomplete {\n top: calc(100% - (var(--padding) + 1px));\n }\n}\n\n.site-content {\n display: flex;\n transition: min-height 0.2s ease;\n min-height: calc(100% - 61px);\n position: relative;\n z-index: auto;\n align-items: stretch;\n}\n\n.mask {\n opacity: 0;\n background: rgba(0, 0, 0, 0.3);\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n height: 100vh;\n z-index: -1;\n transition:\n transform 0.2s ease,\n opacity 0.2s ease,\n visibility 0.01s ease 0.2s,\n z-index 0.01s ease 0.2s;\n visibility: hidden;\n\n &.open {\n opacity: 1;\n transition:\n z-index 0.01s ease,\n visibility 0.01s ease,\n transform 0.2s ease 0.01s,\n opacity 0.2s ease 0.01s;\n z-index: 3;\n visibility: visible;\n }\n}\n","import {\n Component,\n h,\n Host,\n Element,\n State,\n Watch,\n Event,\n EventEmitter,\n Prop,\n Listen,\n Build,\n getAssetPath,\n readTask,\n writeTask,\n Method,\n VNode,\n ComponentInterface,\n} from '@stencil/core';\nimport algoliasearch, { SearchClient as AlgoliaClient } from 'algoliasearch';\nimport { debounce, closestElement, displayTransition } from '../../utils';\nimport { clientFetch } from '../../utils/fetch';\nimport {\n InputChangeEventDetail,\n SelectChangeEventDetail,\n AlgoliaResults,\n SearchIndex,\n MyAccountLink,\n AloliaSearchResultDetail,\n AlgoliaMultiResult,\n MyAccountUser,\n NavItemEventDetail,\n AlgoliaResultHit,\n AlgoliaNetworkError,\n AlgoliaMultiResults,\n} from '../../interface';\nimport { ComponentStore } from '../../utils/store/component-store';\n\ninterface MyAccountData {\n user: MyAccountUser;\n cart: {\n count: number;\n url: string;\n };\n notifications: { count: number };\n hs: { lists?: Array<number> };\n registration: { next_url: string | null };\n links: null | MyAccountLink[];\n urls: {\n forgot_password: string | null;\n logout: string | null;\n login: string | null;\n messages: string | null;\n cart: string | null;\n };\n domains: [\n {\n origin: string;\n domain: string;\n }\n ];\n search: {\n app_id: string;\n api_key: string;\n indeces: [\n {\n index: string;\n name: string;\n domain: string;\n all_group?: boolean;\n filters?: [string];\n }\n ];\n };\n}\n\nconst THRESHOLDLIMIT = 5;\n/**\n * Nanopore digital global navigation and search bar.\n * Incorporates MyAccount / SSO states (messages / cart / user name etc).\n * Incorporates Algolia search.\n * GlobalNav is designed to be at the root of the `<body>`.\n * There should only be one <nano-global-nav> in the DOM.\n * The following demo uses static data.\n * @slot main - main nav items. Should be used with nano-nav-item's\n * @slot icon - nano-nav-item's displayed alongside icon links that come from MyAccount\n * @slot loggedin - nano-nav-item's to display when users are signed in, alongside links from from MyAccount (within the overflow menu panel).\n * @slot about - nano-nav-item's to display with about links that come from MyAccount\n * @slot site - nano-nav-item's to display with site links that come from MyAccount\n * @slot overflow - items to always display in the overflow menu\n * @slot search - when not using myaccount search OR show-search=\"false\" you can utilise the search slot\n * @slot promotion - a free area for any promotional content, displayed within the overflow menu panel\n * @slot logo - when show-logo=\"false\" you can utilise the logo slot\n */\n@Component({\n tag: 'nano-global-nav',\n styleUrl: 'global-nav.scss',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class GlobalNav implements ComponentInterface {\n // position and dimension state\n private io: IntersectionObserver;\n private debounceResize: () => {};\n private debounceSetResizingState: () => {};\n private currSize: number = 0;\n private thresholdsGoingUp: boolean = false;\n\n // menu\n private menuDiv: HTMLElement;\n private menuBtn: HTMLButtonElement;\n private menuWrapDiv: HTMLDivElement;\n private menuContentDiv: HTMLDivElement;\n\n // search\n private searchBarEl: HTMLDivElement;\n private searchInput: HTMLNanoInputElement;\n private algoliaClient: AlgoliaClient;\n private currentIndex: SearchIndex;\n private autocompleteResults: AlgoliaResults | null;\n private autocompleteEles: Array<HTMLAnchorElement | HTMLButtonElement> = [];\n private currAIndex: number = -1;\n private algoliaSearchResults: AlgoliaMultiResults | null;\n private scopeSearch: AlgoliaMultiResults | null;\n\n // general\n private mainBarDiv: HTMLElement;\n private barsDiv: HTMLDivElement;\n private siteContent: HTMLDivElement;\n private userLinkPanel: HTMLDivElement;\n private isLoggedIn: boolean = false;\n\n private myAccData: MyAccountData = null;\n\n // myaccount links\n private aboutNavItms: MyAccountLink[] = [];\n private siteNavItms: MyAccountLink[] = [];\n private loggedInNavItms: MyAccountLink[] = [];\n\n // has slot tests\n private mo?: MutationObserver;\n @State() hasLoggedinSlot: boolean = false;\n @State() hasSiteSlot: boolean = false;\n @State() hasPromotionSlot: boolean = false;\n\n // slot item number tests\n @State() aboutSlotLen: number = 0;\n @State() iconSlotLen: number = 0;\n @State() mainSlotLen: number = 0;\n @State() overflowSlotLen: number = 0;\n @State() searchSlotLen: number = 0;\n\n @State() internalSearchIndeces: Array<SearchIndex> = [];\n @State() thresholdReady: boolean = false;\n @State() remoteDataReady: boolean = false;\n @State() ready: boolean = false;\n @State() isResizing: boolean = false;\n @State() intersectRatio: number;\n @State() threshold: number = THRESHOLDLIMIT;\n @State() modalOpen: boolean = false;\n @State() modalIsOpen: boolean = false;\n @State() searchBarShown: boolean = false;\n @State() scrollingUp: boolean = true;\n @State() searchLoading: boolean = false;\n @State() showAutocomplete: boolean = false;\n @State() secondaryMenuOpen: boolean = false;\n @State() userMenuOpen: boolean = false;\n @State() menuFullScreen: boolean = false;\n @State() searchValInternal: string = '';\n\n @Element() private el: HTMLNanoGlobalNavElement;\n\n /**\n * Connect to local, dev, test or prod MyAccount\n * environments to retrieve global nav / sso data\n */\n @Prop() env: 'local' | 'dev' | 'test' | 'prod' = 'prod';\n\n /**\n * Where to take user after SSO login\n */\n @Prop() ssoRedirect: string = encodeURIComponent(window.location.href);\n\n /**\n * Whether to attempt to get global nav / sso data from MyAccount\n */\n @Prop() getMyAccountData: boolean = true;\n\n /**\n * Active MyAccount link sections. By default all will show.\n */\n @Prop() activeMyAccountSections: (\n | 'about'\n | 'loggedin'\n | 'sites'\n | 'icons'\n )[] = null;\n\n /**\n * Whether to show search functionality\n */\n @Prop() showSearch: boolean = true;\n\n /**\n * Whether to show Nanopore logo\n */\n @Prop() showLogo: boolean = true;\n\n /**\n * The link to put on the logo\n */\n @Prop() logoUrl: string = location.protocol + '//' + location.host;\n\n /**\n * An array of Algolia search indexes (and optional display names). Will be automatically populated from MyAccount\n */\n @Prop() searchIndeces: Array<SearchIndex> = [];\n\n /**\n * Logged in user details automatically populated from MyAccount\n */\n @Prop({ mutable: true }) myAccountUser: {\n id: string | null;\n name: string | null;\n first_name: string | null;\n last_name: string | null;\n email: string | null;\n company: string | null;\n lifecycle_stage: string | null;\n indirect_customer: boolean;\n } = null;\n\n /**\n * An Algolia App ID key. Will be automatically populated from MyAccount\n */\n @Prop({ mutable: true }) searchAppId: string;\n\n /**\n * An Algolia API Key. Will be automatically populated from MyAccount\n */\n @Prop({ mutable: true }) searchApiKey: string;\n\n /**\n * A search value to passed to Algolia to programatically get or to preload search results\n */\n @Prop({ mutable: true }) searchValue: string = '';\n\n /**\n * Algolia search index to programatically set or to set an initial index\n */\n @Prop({ mutable: true }) searchIndex: string = 'all_prod_en';\n\n /**\n * MyAccount store cart count.\n */\n @Prop({ mutable: true }) cartCount: number = 0;\n\n /**\n * MyAccount undread message count.\n */\n @Prop({ mutable: true }) msgCount: number = 0;\n\n /**\n * Url to the Nanopore store cart. Will default to the url supplied by MyAccount\n */\n @Prop({ mutable: true }) cartUrl: string = null;\n\n /**\n * Url to the Nanopore message center. Will default to the url supplied by MyAccount\n */\n @Prop({ mutable: true }) msgUrl: string = null;\n\n /**\n * Emitted when the global nav is ready.\n */\n @Event() nanoIsReady!: EventEmitter<void>;\n\n /**\n * Emitted when search results are successfully returned from Algolia.\n */\n @Event() nanoSearchResult!: EventEmitter<AloliaSearchResultDetail>;\n\n /**\n * Emitted when algolia returns an error.\n */\n @Event() nanoSearchError!: EventEmitter<AlgoliaNetworkError>;\n\n /**\n * Emitted when search field is cleared.\n */\n @Event() nanoSearchReset!: EventEmitter<AloliaSearchResultDetail>;\n\n /**\n * Submit the search form (a search value must be present)\n */\n @Method()\n async submitSearch() {\n this.onSearchSubmit();\n this.showAutocomplete = false;\n return;\n }\n\n @Watch('searchIndex')\n currentSelectedIndex() {\n if (!this.internalSearchIndeces.length) {\n return;\n }\n\n let foundIndex = this.internalSearchIndeces.find(\n (index) => index.index === this.searchIndex\n );\n\n if (!foundIndex) {\n this.currentIndex = this.internalSearchIndeces[0];\n console.error('index not found');\n return;\n }\n\n this.currentIndex = foundIndex;\n return foundIndex;\n }\n\n @Watch('searchValInternal')\n changeInternalSearchVal() {\n if (this.searchValInternal !== this.searchValue)\n this.searchValue = this.searchValInternal;\n }\n\n @Watch('searchApiKey')\n @Watch('searchAppId')\n initAlgoliaClient() {\n if (!this.searchAppId || !this.searchApiKey) return;\n\n this.algoliaClient = algoliasearch(this.searchAppId, this.searchApiKey);\n this.addAlgoliaIndeces();\n }\n\n @Watch('searchIndeces')\n addIndeces() {\n this.internalSearchIndeces = [\n ...this.internalSearchIndeces,\n ...this.searchIndeces,\n ];\n }\n\n @Watch('internalSearchIndeces')\n addAlgoliaIndeces() {\n if (!this.algoliaClient || !this.internalSearchIndeces.length) return;\n\n this.internalSearchIndeces.forEach((searchIndex) => {\n searchIndex.alogliaIndex = this.algoliaClient.initIndex(\n searchIndex.index\n );\n });\n if (!this.searchIndex)\n this.searchIndex = this.internalSearchIndeces[0].index;\n }\n\n @Watch('threshold')\n thresholdChange(newThreshold, oldThreshold) {\n if (newThreshold > oldThreshold) {\n // we've resized to larger screen.\n this.thresholdsGoingUp = true;\n this.setResizingState(true);\n }\n }\n\n /**\n * Primary logic for resizing changes.\n * When content doesn't fit - we loop down through break points until it does\n */\n @Watch('intersectRatio')\n ratioChange() {\n if (this.intersectRatio < 1 && this.threshold > 0) {\n // content doesn't fit\n if (this.thresholdsGoingUp) this.setResizingState(true);\n this.threshold--;\n setTimeout(() => this.ratioChange(), 500);\n } else {\n this.thresholdReady = true;\n // content now fits so add / remove context classes\n // on nav-items depending on whether they're added to bar or burger.\n this.siteContent.style.minHeight = `calc(100% - ${\n this.barsDiv.clientHeight + 1\n }px)`;\n\n let menuItems: Array<Element>, barItems: Array<Element>;\n readTask(() => {\n menuItems = [\n ...Array.from(this.el.querySelectorAll('nano-nav-item[slot=\"site\"]')),\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"overflow\"]')\n ),\n ];\n barItems = [];\n\n if (this.threshold < THRESHOLDLIMIT - 4)\n menuItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"icon\"]')\n )\n );\n else\n barItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"icon\"]')\n )\n );\n\n if (this.threshold < THRESHOLDLIMIT - 3)\n menuItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"loggedin\"]')\n )\n );\n else\n barItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"loggedin\"]')\n )\n );\n\n if (this.threshold < THRESHOLDLIMIT - 2)\n menuItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"main\"]')\n )\n );\n else\n barItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"main\"]')\n )\n );\n\n if (this.threshold < THRESHOLDLIMIT - 1)\n menuItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"about\"]')\n )\n );\n else\n barItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"about\"]')\n )\n );\n });\n\n writeTask(() => {\n menuItems.forEach((item) => {\n item.classList.add('nano-global-nav-menu');\n item.classList.remove('nano-global-nav-bar');\n });\n barItems.forEach((item) => {\n item.classList.remove('nano-global-nav-menu');\n item.classList.add('nano-global-nav-bar');\n });\n });\n }\n }\n\n @Watch('thresholdReady')\n @Watch('remoteDataReady')\n assessReady() {\n if (this.thresholdReady && this.remoteDataReady) {\n this.ready = true;\n }\n }\n\n @Watch('remoteDataReady')\n remoteReady() {\n this.attachIO();\n }\n\n @Watch('ready')\n isReady() {\n this.nanoIsReady.emit();\n }\n\n /**\n * Add / remove events when autocomplete results show / hide.\n */\n @Watch('showAutocomplete')\n setupAutocompleteBlur() {\n this.searchInput.clientWidth; // force reflow\n if (this.showAutocomplete) {\n this.el.shadowRoot.addEventListener('click', this.onAutocompleteBlur);\n this.el.shadowRoot.addEventListener(\n 'keydown',\n this.onAutocompleteInteract\n );\n } else {\n this.el.shadowRoot.removeEventListener('click', this.onAutocompleteBlur);\n this.el.shadowRoot.removeEventListener(\n 'keydown',\n this.onAutocompleteInteract\n );\n }\n }\n\n /**\n * As relevant slotted items change, reset resizing breakpoints\n */\n @Watch('aboutSlotLen')\n @Watch('iconSlotLen')\n @Watch('mainSlotLen')\n @Watch('overflowSlotLen')\n @Watch('searchSlotLen')\n slotChange() {\n this.threshold = THRESHOLDLIMIT;\n }\n\n // General classes for visuals\n\n private thresholdClasses() {\n let classes = [];\n let i = 0;\n for (i; i < this.threshold; i++) classes.push('threshold-' + (i + 1));\n return classes;\n }\n\n /**\n * provides 'isResizing' - we use this to fade content out on 'breakpoint' increase\n * (when the screen size increases). Otherwise the stepping through of\n * breakpoints to calculate if content currently fits shows on screen (looks ugly)\n */\n private setResizingState = (state: boolean = false) => {\n if (typeof this.debounceSetResizingState === 'undefined') {\n this.debounceSetResizingState = debounce(this.setResizingState, 600);\n }\n if (state) {\n this.isResizing = true;\n this.debounceSetResizingState();\n } else {\n this.isResizing = false;\n this.thresholdsGoingUp = false;\n }\n };\n\n // Global DOM Events\n\n private onWindowResize() {\n if (this.threshold < THRESHOLDLIMIT && window.innerWidth > this.currSize) {\n this.threshold = THRESHOLDLIMIT;\n }\n this.currSize = window.innerWidth;\n this.searchBarShown = false;\n }\n\n // Burger / Overflow Menu\n\n // listen to nav-item secondary open / close events primarily for resizing the menu\n @Listen('nanoOpen')\n secondaryOpen(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n this.secondaryMenuOpen = true;\n this.menuContentDiv.style.minHeight =\n (ev.detail as NavItemEventDetail).secondaryMenu.scrollHeight + 'px';\n }\n\n @Listen('nanoClose')\n secondaryClose(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n this.secondaryMenuOpen = false;\n this.menuContentDiv.style.minHeight = '';\n }\n\n private onMenuBtnKeyDown = (ev: KeyboardEvent) => {\n switch (ev.key) {\n case 'Enter':\n case ' ':\n this.modalOpen ? this.menuClose(ev, true) : this.menuOpen();\n break;\n }\n };\n\n private onMenuBtnClick = (ev: MouseEvent) => {\n this.menuClose(ev, true);\n };\n\n private menuOpen = (e?: MouseEvent) => {\n if (e) e.preventDefault();\n\n this.menuDiv.style.display = 'block';\n // need to open menu in stages\n // wait for re-flow after changing display\n // wait for repaint after animate, then focus\n\n this.menuDiv.clientWidth; // force reflow\n\n this.modalOpen = true;\n this.modalIsOpen = true;\n this.menuWrapDiv.addEventListener('focusout', this.menuClose);\n\n this.menuDiv.clientWidth; // force reflow\n\n this.menuWrapDiv.focus({ preventScroll: true });\n if (\n this.threshold < 2 ||\n this.menuWrapDiv.scrollHeight > window.innerHeight\n ) {\n document.body.style.overflow = 'hidden';\n this.menuFullScreen = true;\n } else document.body.style.overflowX = 'hidden';\n };\n\n private onMenuHidden = () => {\n this.menuDiv.removeEventListener('transitionend', this.onMenuHidden);\n this.menuWrapDiv.removeEventListener('focusout', this.menuClose);\n\n document.body.style.overflow = '';\n this.menuDiv.style.display = 'none';\n this.modalIsOpen = false;\n this.menuFullScreen = false;\n\n setTimeout(() => {\n if (document.activeElement === document.body && this.menuBtn)\n this.mainBarDiv.focus({ preventScroll: true });\n }, 50);\n };\n\n private menuClose = (\n ev?: FocusEvent | MouseEvent | KeyboardEvent | TouchEvent,\n force: boolean = false\n ) => {\n if (!force) {\n let e = ev as FocusEvent;\n if (\n e &&\n e.relatedTarget &&\n closestElement('#global-nav-menu', e.relatedTarget as HTMLElement)\n )\n return;\n if (\n e &&\n e.relatedTarget &&\n (e.relatedTarget as HTMLElement).closest('#global-nav-menu')\n )\n return;\n if (\n e &&\n e.relatedTarget &&\n (e.relatedTarget as HTMLElement).closest('[slot=\"promotion\"]')\n )\n return;\n if (this.secondaryMenuOpen) return;\n }\n\n this.modalOpen = false;\n this.menuDiv.addEventListener('transitionend', this.onMenuHidden);\n };\n\n private subMenuClose = (ev?: MouseEvent) => {\n ev.preventDefault();\n (ev.target as HTMLNanoNavItemElement).closest('nano-nav-item').open = false;\n };\n\n // User profile menu\n\n private onUserBtnClick = (ev: MouseEvent) => {\n ev.preventDefault();\n this.userMenuOpen = !this.userMenuOpen;\n };\n\n private onUserBtnKeyDown = (ev: KeyboardEvent) => {\n switch (ev.key) {\n case 'Enter':\n case ' ':\n this.userMenuOpen = !this.userMenuOpen;\n break;\n }\n };\n\n private onUserMenuBlur = (ev: FocusEvent) => {\n if (!ev.relatedTarget) {\n this.userMenuOpen = false;\n return;\n }\n if (!!(ev.relatedTarget as HTMLElement).closest('.user-links-panel'))\n return false;\n this.userMenuOpen = false;\n };\n\n @Watch('userMenuOpen')\n async handleUserMenu() {\n await displayTransition(this.userLinkPanel, 'show', this.userMenuOpen);\n if (this.userMenuOpen) {\n this.userLinkPanel.focus();\n this.userLinkPanel.addEventListener('focusout', this.onUserMenuBlur);\n } else {\n this.userLinkPanel.removeEventListener('focusout', this.onUserMenuBlur);\n this.el.focus();\n }\n }\n\n // Search bar (smaller screens / mobile)\n\n private onSearchBtnClick = (ev: MouseEvent) => {\n ev.preventDefault();\n if (!this.searchBarShown) this.searchbarShow();\n else this.searchbarHide();\n };\n\n private onSearchBtnKeyDown = (ev: KeyboardEvent) => {\n switch (ev.key) {\n case 'Enter':\n case ' ':\n this.searchBarShown ? this.searchbarHide() : this.searchbarShow();\n break;\n }\n };\n\n private searchbarShow() {\n this.searchBarShown = true;\n this.searchBarEl.addEventListener('transitionend', this.onSearchBarShown);\n this.searchBarEl.style.display = 'block';\n\n setTimeout(() => {\n this.searchBarEl.style.height =\n this.searchBarEl.querySelector('.search-widget').scrollHeight + 'px';\n }, 50);\n }\n\n private onSearchBarShown = () => {\n this.searchBarEl.removeEventListener(\n 'transitionend',\n this.onSearchBarShown\n );\n if (this.searchInput) this.searchInput.setFocus();\n this.searchBarEl.style.overflow = 'visible';\n };\n\n private searchbarHide = (ev?: FocusEvent) => {\n if (\n ev &&\n ev.relatedTarget &&\n (ev.relatedTarget as HTMLElement).closest('#global-nav-search-bar')\n )\n return;\n this.showAutocomplete = false;\n if (this.searchValInternal.length && ev) return;\n\n this.searchBarEl.addEventListener('transitionend', this.onSearchBarHidden);\n this.searchBarEl.style.overflow = 'hidden';\n this.searchBarEl.style.height = '0px';\n };\n\n private onSearchBarHidden = () => {\n this.searchBarEl.removeEventListener(\n 'transitionend',\n this.onSearchBarHidden\n );\n this.searchBarEl.style.display = 'none';\n this.searchBarShown = false;\n };\n\n // Algolia search\n\n private autocompleteSnippet(hit: AlgoliaResultHit) {\n let lookFor = ['title']; // , 'body'\n if (hit._snippetResult) {\n let found = lookFor.find(\n (prop) =>\n hit._snippetResult[prop] &&\n hit._snippetResult[prop].matchLevel !== 'none'\n );\n\n if (found) {\n if (found !== 'title')\n return (\n (hit.title.length > 15\n ? hit.title.substring(0, 15) + ' ...'\n : hit.title) +\n ' ' +\n hit._snippetResult[found].value\n );\n else return hit._snippetResult['title'].value;\n }\n }\n return hit.title;\n }\n\n private onSearchInput = (ev: CustomEvent<KeyboardEvent>) => {\n this.showAutocomplete = false;\n this.searchValInternal = this.searchInput.value;\n\n if (!this.isSearchValSet()) {\n this.searchLoading = false;\n return;\n }\n this.searchLoading = true;\n\n switch (ev.detail.key) {\n case 'Enter':\n this.onSearchSubmit();\n break;\n }\n };\n\n private onSearchChange = async (ev?: CustomEvent<InputChangeEventDetail>) => {\n this.searchValInternal = this.searchValue = ev\n ? ev.detail.value\n : this.searchValInternal;\n this.showAutocomplete = false;\n this.autocompleteResults = null;\n\n if (!this.isSearchValSet()) {\n if (!this.searchValInternal.length) {\n this.nanoSearchReset.emit();\n }\n this.searchLoading = false;\n return;\n }\n if (!this.currentIndex) this.currentSelectedIndex();\n\n try {\n this.autocompleteResults = this.processSearchResults(\n (await this.currentIndex.alogliaIndex.search(this.searchValInternal, {\n attributesToSnippet: ['body:5', 'title:8'],\n hitsPerPage: 5,\n filters: 'created > ' + Math.floor((Date.now() - 63115200000) / 1000), // only get last 2 years\n })) as any\n ) as AlgoliaResults;\n } catch (e) {\n console.error(e);\n }\n\n this.scopeSearch = null;\n this.scopeSearch = await this.onSearchSubmit(null, false);\n\n this.searchLoading = false;\n this.showAutocompleteResults();\n };\n\n private onSearchSubmit = async (ev?, emit: boolean = true) => {\n if (ev) ev.preventDefault();\n if (!this.isSearchValSet()) return;\n this.searchLoading = true;\n this.algoliaSearchResults = null;\n\n if (!this.currentIndex) this.currentSelectedIndex();\n\n let queries = this.internalSearchIndeces.map((index) => {\n return {\n indexName: index.index,\n query: this.searchValInternal,\n facets: index.filters,\n hitsPerPage: 10,\n filters: 'created > ' + Math.floor((Date.now() - 63115200000) / 1000), // only get last 2 years\n };\n });\n\n try {\n this.algoliaSearchResults = this.processSearchResults(\n (await this.algoliaClient.multipleQueries(queries)) as any\n ) as AlgoliaMultiResults;\n } catch (e) {\n this.nanoSearchError.emit(e as AlgoliaNetworkError);\n }\n this.searchLoading = false;\n if (!this.algoliaSearchResults) return;\n\n this.algoliaSearchResults.results.map((result, i) => {\n result.indexName = this.internalSearchIndeces[i].name;\n result.selected =\n this.currentIndex.name === this.internalSearchIndeces[i].name;\n result.domain = this.currentIndex.domain || null;\n result.domains = this.myAccData.domains || null;\n result.allGroup = !!this.internalSearchIndeces[i].allGroup;\n result.filters = this.internalSearchIndeces[i].filters;\n });\n\n if (emit) {\n this.nanoSearchResult.emit({\n results: this.algoliaSearchResults.results,\n client: { apiKey: this.searchApiKey, appId: this.searchAppId },\n });\n this.showAutocomplete = false;\n }\n return this.algoliaSearchResults;\n };\n\n private onSearchIndexChange = async (\n index: CustomEvent<SelectChangeEventDetail> | string\n ) => {\n let ev = index as CustomEvent<SelectChangeEventDetail>;\n let indexStr = index as string;\n\n if (!this.currentIndex) this.currentSelectedIndex();\n\n if (ev.detail && ev.detail.value.length)\n indexStr = ev.detail.value as string;\n if (!indexStr || !indexStr.length) return;\n if (this.currentIndex.index === indexStr) return;\n\n let selectedIndex = this.internalSearchIndeces.find(\n (index) => index.index === indexStr\n );\n if (!selectedIndex || !selectedIndex.alogliaIndex) return;\n\n this.searchIndex = selectedIndex.index;\n if (this.isSearchValSet()) await this.onSearchChange();\n };\n\n private isSearchValSet() {\n if (this.searchValInternal.length < 3) return false;\n return true;\n }\n\n private switchIndexSubmit = async (index: string) => {\n if (this.isSearchValSet()) {\n await this.onSearchIndexChange(index);\n this.onSearchSubmit();\n } else this.onSearchIndexChange(index);\n };\n\n // Autocomplete\n\n @Watch('showAutocomplete')\n resetHitFocus() {\n this.currAIndex = -1;\n }\n\n private onAutocompleteBlur = (ev: MouseEvent) => {\n if (!this.showAutocomplete || !this.autocompleteResults) return;\n if (ev && ev.target && (ev.target as HTMLElement).closest('.search-widget'))\n return;\n this.showAutocomplete = false;\n };\n\n private showAutocompleteResults = () => {\n if (!this.autocompleteResults || !this.autocompleteResults.hits) return;\n this.showAutocomplete = true;\n };\n\n private setActiveElement(\n autocompleteEle: HTMLAnchorElement | HTMLButtonElement\n ) {\n this.autocompleteEles.map((ele) =>\n ele.setAttribute('aria-selected', 'false')\n );\n autocompleteEle.focus({ preventScroll: true });\n autocompleteEle.setAttribute('aria-selected', 'true');\n }\n\n private onAutocompleteInteract = (ev: KeyboardEvent) => {\n // list open, navigate items with arrows\n if (!this.showAutocomplete || !this.autocompleteResults) return;\n let testIndex = this.currAIndex;\n\n switch (ev.key) {\n case 'Tab':\n setTimeout(() => {\n if (\n !this.el.shadowRoot.activeElement ||\n !this.el.shadowRoot.activeElement.closest('.search-widget')\n ) {\n this.showAutocomplete = false;\n return;\n } else {\n let found = this.autocompleteEles.find((ele, i) => {\n if (ele === this.el.shadowRoot.activeElement) {\n this.currAIndex = i;\n return true;\n }\n });\n if (found) this.setActiveElement(found);\n else this.currAIndex = -1;\n }\n });\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n if (ev.key === 'ArrowDown') testIndex++;\n else if (ev.key === 'ArrowUp') testIndex--;\n\n let found = this.autocompleteEles[testIndex];\n if (\n found ||\n testIndex < 0 ||\n testIndex > this.autocompleteEles.length - 1\n )\n ev.preventDefault();\n this.searchInput.clientWidth; // force reflow\n\n if (found) {\n this.setActiveElement(found);\n this.currAIndex = testIndex;\n } else if (testIndex < 0) {\n this.searchInput.setFocus();\n this.currAIndex = -1;\n }\n break;\n case 'Enter':\n case ' ':\n if (this.autocompleteEles[this.currAIndex]) {\n this.autocompleteEles[this.currAIndex].click();\n }\n break;\n }\n };\n\n // Various.\n\n /**\n * Assesses what content is present in which slots\n */\n private assessSlottedContent() {\n readTask(() => {\n this.hasSiteSlot = !!this.el.querySelectorAll('[slot=\"site\"]').length;\n this.hasLoggedinSlot =\n !!this.el.querySelectorAll('[slot=\"loggedin\"]').length;\n this.hasPromotionSlot =\n !!this.el.querySelectorAll('[slot=\"promotion\"]').length;\n\n this.aboutSlotLen = this.el.querySelectorAll('[slot=\"about\"]').length;\n this.iconSlotLen = this.el.querySelectorAll('[slot=\"icon\"]').length;\n this.mainSlotLen = this.el.querySelectorAll('[slot=\"main\"]').length;\n this.overflowSlotLen =\n this.el.querySelectorAll('[slot=\"overflow\"]').length;\n this.searchSlotLen = this.el.querySelectorAll('[slot=\"search\"]').length;\n });\n }\n\n /**\n * Attach the IntersectionObserver - from which all threshold / breakpoint logic hinges\n */\n private attachIO() {\n if (this.io) return;\n let root = this.el.shadowRoot.querySelector('.global-nav .main-bar');\n if (\n Build.isBrowser &&\n typeof window !== 'undefined' &&\n (window as any).IntersectionObserver &&\n !!root\n ) {\n const io = (this.io = new (window as any).IntersectionObserver(\n (data: IntersectionObserverEntry[]) => {\n this.intersectRatio = data.slice(-1)[0].intersectionRatio;\n },\n { root, threshold: 1 }\n ));\n io.observe(root.querySelector('.measure-ele'));\n }\n }\n\n // Stencil Lifecycle / Rendering\n\n componentDidLoad() {\n if (Build.isBrowser) {\n this.debounceResize = debounce(this.onWindowResize.bind(this), 300);\n\n window.addEventListener('resize', this.debounceResize);\n this.currSize = window.innerWidth;\n }\n\n this.initAlgoliaClient();\n this.addAlgoliaIndeces();\n if (this.remoteDataReady) this.attachIO();\n }\n\n componentWillLoad() {\n ComponentStore.init(\n this,\n ['searchIndex', 'searchValue'],\n 'url-hash',\n 'gns'\n );\n\n if (\n Build.isBrowser &&\n typeof window !== 'undefined' &&\n (window as any).MutationObserver\n ) {\n const mo = (this.mo = new MutationObserver(() => {\n this.assessSlottedContent();\n }));\n mo.observe(this.el, { childList: true, subtree: false });\n }\n this.assessSlottedContent();\n }\n\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n if (this.mo) {\n this.mo.disconnect();\n this.mo = undefined;\n }\n if (Build.isBrowser)\n window.removeEventListener('resize', this.debounceResize);\n }\n\n async connectedCallback() {\n this.getMyAccData();\n }\n\n // Render output\n\n private autocompleteList(): VNode {\n let content;\n if (this.showAutocomplete && this.scrollingUp) {\n let currentScopeHits = 0;\n let scopeChangeSuggestions = 0;\n\n let scopeSuggestReducer = (total: number, result: AlgoliaMultiResult) => {\n return result.index !== this.currentIndex.index\n ? total + result.hits.length\n : total;\n };\n let currentSuggestReducer = (\n total: number,\n result: AlgoliaMultiResult\n ) => {\n return result.index === this.currentIndex.index\n ? total + result.hits.length\n : total;\n };\n\n if (this.scopeSearch) {\n scopeChangeSuggestions = this.scopeSearch.results.reduce(\n scopeSuggestReducer,\n 0\n );\n currentScopeHits = this.scopeSearch.results.reduce(\n currentSuggestReducer,\n 0\n );\n }\n\n if (\n (this.autocompleteResults && this.autocompleteResults.hits.length) ||\n (scopeChangeSuggestions && !currentScopeHits)\n ) {\n let scopeSuggestions = 0;\n\n content = (\n <div>\n {!currentScopeHits && (\n <div class=\"search-autocomplete-hit search-autocomplete-hit--no-result\">\n No results matching '{this.searchValInternal}' were found in{' '}\n <strong>{this.currentIndex.name}</strong>. Try another phrase.\n </div>\n )}\n {this.autocompleteResults && [\n this.autocompleteResults.hits.map((hit, i) => {\n return (\n <a\n role=\"option\"\n ref={(a) => this.autocompleteEles.push(a)}\n tabindex=\"-1\"\n id={'autocomplete-hit-' + i}\n href={hit.url}\n class=\"search-autocomplete-hit\"\n innerHTML={this.autocompleteSnippet(hit)}\n ></a>\n );\n }),\n ]}\n {(!currentScopeHits || this.currentIndex.allGroup) &&\n this.scopeSearch &&\n this.scopeSearch.results && [\n this.scopeSearch.results.map((result, i) => {\n if (\n !result.hits.length ||\n result.index === this.currentIndex.index ||\n scopeSuggestions > 1\n )\n return;\n scopeSuggestions++;\n return (\n <button\n role=\"option\"\n ref={(button) => this.autocompleteEles.push(button)}\n tabindex=\"-1\"\n id={'autocomplete-scope-' + i}\n class=\"search-autocomplete-hit\"\n onClick={() => this.switchIndexSubmit(result.index)}\n onMouseDown={() => this.switchIndexSubmit(result.index)}\n >\n \"{this.searchValInternal}\"{' '}\n <div class=\"search-autocomplete-hit-scope\">\n in {result.indexName}\n </div>\n </button>\n );\n }),\n ]}\n {!!currentScopeHits && (\n <div class=\"search-autocomplete-foot\">\n <button\n role=\"option\"\n class=\"search-autocomplete-submit\"\n ref={(button) => this.autocompleteEles.push(button)}\n id={'autocomplete-foot'}\n onClick={this.onSearchSubmit}\n onMouseDown={this.onSearchSubmit}\n >\n View all results\n </button>\n </div>\n )}\n </div>\n );\n } else if (!currentScopeHits) {\n content = (\n <div class=\"search-autocomplete-hit search-autocomplete-hit--no-result\">\n No results matching '{this.searchValInternal}' were found. Try\n another phrase.\n </div>\n );\n }\n }\n\n return (\n <div\n class=\"search-autocomplete\"\n role=\"listbox\"\n id=\"autocomplete-results\"\n aria-expanded={this.showAutocomplete ? 'true' : 'false'}\n hidden={!this.showAutocomplete}\n >\n {content}\n </div>\n );\n }\n\n private searchWidget(): VNode[] {\n return [\n <form\n class=\"search-inputs\"\n onSubmit={this.onSearchSubmit}\n id=\"global-nav-search\"\n >\n <nano-select\n class=\"search-input\"\n label=\"Which area of content would you like to search?\"\n hideLabel={true}\n showInlineError={false}\n value={this.searchIndex}\n onNanoChange={this.onSearchIndexChange}\n mask={true}\n >\n {this.internalSearchIndeces.map((index) => {\n return (\n <option\n selected={index.index === this.searchIndex}\n value={index.index}\n >\n {index.name || index.index}\n </option>\n );\n })}\n <nano-icon name=\"solid/caret-down\" slot=\"icon\"></nano-icon>\n </nano-select>\n <nano-input\n class=\"search-input\"\n label=\"What would you like to search for?\"\n aria-label=\"What would you like to search for?\"\n hideLabel={true}\n showInlineError={false}\n clear-input\n placeholder=\"Search...\"\n type=\"text\"\n ref={(input) => (this.searchInput = input)}\n onNanoChange={this.onSearchChange}\n onNanoInput={this.onSearchInput}\n debounce={500}\n aria-autocomplete=\"list\"\n aria-activedescendant={\n this.autocompleteEles[this.currAIndex]\n ? this.autocompleteEles[this.currAIndex].id\n : false\n }\n aria-controls=\"autocomplete-results\"\n onNanoFocus={this.showAutocompleteResults}\n value={this.searchValue}\n role=\"textbox\"\n >\n <button\n class={{\n 'search-icon': true,\n 'search-icon--search': true,\n 'search-icon--show': !this.searchValInternal.length,\n }}\n slot=\"inline-button\"\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=\"inline-button\"\n >\n <nano-icon name=\"light/spinner-third\"></nano-icon>\n </span>\n </nano-input>\n <input type=\"submit\" />\n </form>,\n ];\n }\n\n render() {\n this.autocompleteEles = [];\n let isRtl = (this.el.ownerDocument as Document).dir === 'rtl';\n\n let searchWidget = this.searchWidget();\n searchWidget.push(this.autocompleteList());\n\n return (\n <Host\n class={{\n [this.thresholdClasses().join(' ')]: true,\n ready: this.ready,\n 'search-bar-shown': this.searchBarShown && this.scrollingUp,\n 'search-auto-complete-shown':\n this.showAutocomplete && this.scrollingUp,\n 'modal-open': this.modalIsOpen,\n resizing: this.isResizing,\n }}\n dir={isRtl ? 'rtl' : null}\n >\n <div\n class={{\n 'global-nav': true,\n 'scrolling-down': !this.scrollingUp,\n }}\n >\n <nav\n id=\"global-nav-menu\"\n class={{\n menu: true,\n open: this.modalOpen,\n 'has-promotion': this.hasPromotionSlot,\n 'menu-full-screen': this.menuFullScreen,\n 'secondary-open': this.secondaryMenuOpen,\n }}\n aria-expanded={this.modalOpen ? 'true' : 'false'}\n ref={(div) => (this.menuDiv = div)}\n >\n <div\n class=\"menu_wrap\"\n ref={(div) => (this.menuWrapDiv = div)}\n tabindex=\"-1\"\n >\n <div class=\"menu_actions\">\n <button\n class=\"menu-btn icon-btn icon-btn\"\n onMouseDown={this.onMenuBtnClick}\n onKeyDown={this.onMenuBtnKeyDown}\n >\n {this.threshold < THRESHOLDLIMIT - 3 && (\n <nano-icon\n name=\"light/times\"\n aria-label=\"close menu\"\n ></nano-icon>\n )}\n {this.threshold >= THRESHOLDLIMIT - 3 && (\n <nano-icon\n name=\"light/bars\"\n aria-label=\"close menu\"\n ></nano-icon>\n )}\n </button>\n\n {this.threshold < THRESHOLDLIMIT - 4 && [\n !!this.iconSlotLen && <slot name=\"icon\" />,\n this.myAccData &&\n (!this.activeMyAccountSections ||\n this.activeMyAccountSections.includes('icons')) && [\n this.msgUrl && (\n <a href={this.msgUrl} class=\"icon-btn\">\n <nano-icon name=\"light/bell\"></nano-icon>\n {this.msgCount > 0 && (\n <span class=\"menu_actions-counter\">\n {this.msgCount}\n </span>\n )}\n </a>\n ),\n this.cartUrl && (\n <a href={this.cartUrl} class=\"icon-btn\">\n <nano-icon name=\"light/shopping-cart\"></nano-icon>\n {this.cartCount > 0 && (\n <span class=\"menu_actions-counter\">\n {this.cartCount}\n </span>\n )}\n </a>\n ),\n ],\n ]}\n\n {this.myAccData && this.myAccData.urls.login && (\n <a\n href={this.myAccData.urls.login + this.ssoRedirect}\n class=\"login-btn\"\n >\n Login / Register{' '}\n <nano-icon name=\"solid/chevron-right\"></nano-icon>\n </a>\n )}\n </div>\n\n <div\n class=\"content-wrap\"\n ref={(div) => (this.menuContentDiv = div)}\n >\n <div class=\"content\">\n <nav class=\"nav-links nav-links--main\">\n <slot name=\"overflow\" />\n {this.threshold < THRESHOLDLIMIT - 2 &&\n !!this.mainSlotLen && <slot name=\"main\" />}\n </nav>\n\n {(((!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold < THRESHOLDLIMIT) ||\n this.hasSiteSlot ||\n !!this.siteNavItms.length) && (\n <div>\n {(!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold < THRESHOLDLIMIT && [\n (this.threshold >= THRESHOLDLIMIT - 2 ||\n this.mainSlotLen < 2) &&\n this.overflowSlotLen < 2 && (\n <div class=\"nav-links-wrap\">\n {!!this.aboutNavItms.length && (\n <h4 class=\"nav-links_title\">About</h4>\n )}\n <nav\n class=\"nav-links nav-links--sub\"\n aria-label=\"About the company links\"\n >\n <slot name=\"about\" />\n\n {this.aboutNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={link.address}\n target={link.target}\n >\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n </nav>\n </div>\n ),\n ((this.threshold < THRESHOLDLIMIT - 2 &&\n this.mainSlotLen >= 2) ||\n this.overflowSlotLen >= 2) && (\n <nav\n class=\"nav-links\"\n aria-label=\"About the company links\"\n >\n {!this.aboutNavItms.length && (\n <slot name=\"about\" />\n )}\n {!!this.aboutNavItms.length && (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n Company\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-right\"\n ></nano-icon>\n <div slot=\"secondary\">\n <div class=\"content\">\n <button\n class=\"back-btn\"\n onClick={this.subMenuClose}\n >\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-left\"\n aria-label=\"go back\"\n ></nano-icon>\n Company\n </button>\n <slot name=\"about\" />\n <div class=\"content--sub\">\n {this.aboutNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={link.address}\n target={link.target}\n >\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n </div>\n </div>\n </div>\n </nano-nav-item>\n )}\n </nav>\n ),\n ]}\n\n {(this.hasSiteSlot || !!this.siteNavItms.length) && [\n (this.threshold >= THRESHOLDLIMIT - 2 ||\n this.mainSlotLen < 2) &&\n this.overflowSlotLen < 2 && (\n <div class=\"nav-links-wrap\">\n <h4 class=\"nav-links_title\">Sites</h4>\n <nav\n class=\"nav-links nav-links--sub\"\n aria-label=\"Different company site links\"\n >\n <slot name=\"site\" />\n {this.siteNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={link.address}\n target={link.target}\n >\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n </nav>\n </div>\n ),\n ((this.threshold < THRESHOLDLIMIT - 2 &&\n this.mainSlotLen >= 2) ||\n this.overflowSlotLen >= 2) && (\n <nav\n class=\"nav-links\"\n aria-label=\"Different company site links\"\n >\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n Sites\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-right\"\n ></nano-icon>\n <div slot=\"secondary\">\n <div class=\"content\">\n <button\n class=\"back-btn\"\n onClick={this.subMenuClose}\n >\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-left\"\n aria-label=\"go back\"\n ></nano-icon>\n Sites\n </button>\n <div class=\"content--sub\">\n <slot name=\"site\" />\n {this.siteNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={link.address}\n target={link.target}\n >\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n </div>\n </div>\n </div>\n </nano-nav-item>\n </nav>\n ),\n ]}\n </div>\n )}\n </div>\n\n {this.isLoggedIn &&\n this.threshold < THRESHOLDLIMIT - 3 &&\n (this.loggedInNavItms.length || this.hasLoggedinSlot) && (\n <nav class=\"nav-links\" aria-label=\"Your user account links\">\n <nano-nav-item class=\"nano-global-nav user-nav nano-global-nav-menu\">\n {this.myAccountUser.name}\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-right\"\n ></nano-icon>\n <div slot=\"secondary\">\n <div class=\"content\">\n <button\n class=\"back-btn\"\n onClick={this.subMenuClose}\n >\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-left\"\n aria-label=\"go back\"\n ></nano-icon>\n {this.myAccountUser.name}\n </button>\n <div class=\"content--sub\">\n <slot name=\"loggedin\" />\n {this.loggedInNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a href={link.address} target={link.target}>\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={\n this.myAccData.urls.forgot_password +\n this.ssoRedirect\n }\n >\n Change Password\n </a>\n </nano-nav-item>\n </div>\n </div>\n </div>\n </nano-nav-item>\n </nav>\n )}\n\n <slot name=\"promotion\" />\n\n {this.myAccData && this.myAccData.urls.logout && (\n <div class=\"login-btn logout-btn\">\n <a href={this.myAccData.urls.logout + this.ssoRedirect}>\n Logout\n </a>\n </div>\n )}\n </div>\n </div>\n </nav>\n <nano-sticker\n auto-resize=\"false\"\n break-point-max=\"800\"\n quietMode={{ h: 600, w: 800 }}\n >\n <div class=\"bars\" ref={(div) => (this.barsDiv = div)}>\n <nav\n class=\"main-bar\"\n aria-label=\"Main site navigation\"\n tabindex=\"-1\"\n ref={(div) => (this.mainBarDiv = div)}\n >\n {(this.hasPromotionSlot ||\n !!this.overflowSlotLen ||\n ((this.myAccData || !!this.iconSlotLen) &&\n this.threshold < THRESHOLDLIMIT - 4) ||\n (this.isLoggedIn &&\n (!!this.loggedInNavItms.length || this.hasLoggedinSlot) &&\n this.threshold < THRESHOLDLIMIT - 3) ||\n (!!this.mainSlotLen && this.threshold < THRESHOLDLIMIT - 2) ||\n ((!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold < THRESHOLDLIMIT) ||\n this.hasSiteSlot ||\n !!this.siteNavItms.length) && (\n <button\n class=\"menu-btn icon-btn\"\n onMouseDown={this.menuOpen}\n onKeyDown={this.onMenuBtnKeyDown}\n aria-expanded={this.modalOpen ? 'true' : 'false'}\n aria-controls=\"global-nav-menu\"\n ref={(btn) => (this.menuBtn = btn)}\n >\n <nano-icon\n name=\"light/bars\"\n aria-label=\"open menu\"\n ></nano-icon>\n </button>\n )}\n\n {this.showLogo && (\n <a href={this.logoUrl} class=\"logo-link\">\n <img\n src={getAssetPath(`./assets/ont-logo.svg`)}\n alt=\"Oxford Nanopore Technologies Logo\"\n class=\"logo\"\n />\n </a>\n )}\n {!this.showLogo && (\n <div class=\"logo-link\">\n <slot name=\"logo\" />\n </div>\n )}\n\n <div\n class=\"nav-links nav-links--main\"\n hidden={\n !(\n this.threshold >= THRESHOLDLIMIT - 2 && !!this.mainSlotLen\n )\n }\n >\n <slot name=\"main\" />\n </div>\n\n {this.threshold >= THRESHOLDLIMIT - 1 && [\n this.showSearch && !!this.internalSearchIndeces.length && (\n <div\n class=\"search-widget\"\n role=\"combobox\"\n aria-owns=\"autocomplete-results\"\n aria-expanded={\n this.showAutocomplete && this.autocompleteResults\n ? 'true'\n : 'false'\n }\n >\n {searchWidget}\n </div>\n ),\n (!this.showSearch || !this.myAccData) &&\n !!this.searchSlotLen && <slot name=\"search\" />,\n ]}\n\n {(this.threshold >= THRESHOLDLIMIT - 1 ||\n !this.showSearch ||\n !this.internalSearchIndeces.length) && (\n <nav\n class=\"nav-links nav-links--sub\"\n aria-label=\"About the company links\"\n >\n {(!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold === THRESHOLDLIMIT && [\n <slot name=\"about\" />,\n this.aboutNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-bar\">\n <a href={link.address} target={link.target}>\n {link.title}\n </a>\n </nano-nav-item>\n );\n }),\n ]}\n </nav>\n )}\n\n {this.threshold < THRESHOLDLIMIT - 1 &&\n ((this.showSearch && !!this.internalSearchIndeces.length) ||\n !!this.searchSlotLen) && (\n <button\n class=\"icon-btn\"\n aria-controls=\"global-nav-search-bar\"\n aria-expanded={this.searchBarShown ? 'true' : 'false'}\n onMouseDown={this.onSearchBtnClick}\n onKeyDown={this.onSearchBtnKeyDown}\n >\n <nano-icon name=\"light/search\"></nano-icon>\n </button>\n )}\n\n {this.threshold >= THRESHOLDLIMIT - 4 && [\n !!this.iconSlotLen && <slot name=\"icon\" />,\n this.myAccData &&\n (!this.activeMyAccountSections ||\n this.activeMyAccountSections.includes('icons')) && [\n this.msgUrl && (\n <a href={this.msgUrl} class=\"icon-btn\">\n <nano-icon name=\"light/bell\"></nano-icon>\n {this.msgCount > 0 && (\n <span class=\"menu_actions-counter\">\n {this.msgCount}\n </span>\n )}\n </a>\n ),\n this.cartUrl && (\n <a href={this.cartUrl} class=\"icon-btn\">\n <nano-icon name=\"light/shopping-cart\"></nano-icon>\n {this.cartCount > 0 && (\n <span class=\"menu_actions-counter\">\n {this.cartCount}\n </span>\n )}\n </a>\n ),\n ],\n ]}\n\n {this.myAccData &&\n this.threshold >= THRESHOLDLIMIT - 3 && [\n this.myAccData.urls.login && (\n <a\n href={this.myAccData.urls.login + this.ssoRedirect}\n class=\"login-btn\"\n >\n Login / Register\n </a>\n ),\n this.myAccountUser && (\n <div class=\"user-links\">\n <button\n class={{\n 'icon-btn': true,\n 'user-links-btn': true,\n open: this.userMenuOpen,\n }}\n onMouseDown={this.onUserBtnClick}\n onKeyDown={this.onUserBtnKeyDown}\n >\n {' '}\n {this.myAccountUser.name}\n <nano-icon name=\"solid/caret-down\"></nano-icon>\n </button>\n <div\n class=\"user-links-panel\"\n tabindex=\"-1\"\n ref={(div) => (this.userLinkPanel = div)}\n >\n <div class=\"user-links-panel-content\">\n {this.loggedInNavItms.map((link) => {\n return (\n <a href={link.address} target={link.target}>\n {link.title}\n </a>\n );\n })}\n </div>\n <div class=\"user-links-panel-foot\">\n <a\n href={\n this.myAccData.urls.forgot_password +\n this.ssoRedirect\n }\n >\n Change Password\n </a>\n <a\n href={\n this.myAccData.urls.logout + this.ssoRedirect\n }\n >\n Logout\n </a>\n </div>\n </div>\n </div>\n ),\n ]}\n <span class=\"measure-ele\"></span>\n </nav>\n\n {this.threshold < THRESHOLDLIMIT - 1 && (\n <div\n id=\"global-nav-search-bar\"\n class={{\n 'search-bar': true,\n show: this.searchBarShown,\n }}\n aria-expanded={this.searchBarShown ? 'true' : 'false'}\n role=\"region\"\n tabindex=\"-1\"\n ref={(div) => (this.searchBarEl = div)}\n >\n <div class=\"search-widget\">\n {this.showSearch && !!this.internalSearchIndeces.length && (\n <div>{searchWidget}</div>\n )}\n {(!this.showSearch || !this.myAccData) &&\n !!this.searchSlotLen && <slot name=\"search\" />}\n </div>\n </div>\n )}\n </div>\n </nano-sticker>\n\n {(this.threshold < THRESHOLDLIMIT - 3 || this.menuFullScreen) && (\n <div\n class={{\n mask: true,\n open: this.modalOpen,\n }}\n onClick={this.menuClose}\n onTouchEnd={this.menuClose}\n ></div>\n )}\n </div>\n <div class=\"site-content\" ref={(div) => (this.siteContent = div)}>\n <slot />\n </div>\n </Host>\n );\n }\n\n // Data processing\n\n private domainFor(origin: string): string {\n if (!this.myAccData) return '';\n let domain = this.myAccData.domains.find((dm) => dm.origin === origin);\n return domain ? domain.domain : '';\n }\n\n private processSearchResults(results: AlgoliaMultiResults | AlgoliaResults) {\n let multiResults = results as AlgoliaMultiResults;\n let singleResult = results as AlgoliaResults;\n\n if (multiResults.results) {\n multiResults.results.forEach((result, i) => {\n multiResults.results[i] = this.processSearchResults(\n result\n ) as AlgoliaResults;\n });\n return multiResults;\n } else {\n singleResult.hits.map((hit) => {\n if (hit.url && !hit.url.match(/^http/))\n hit.url =\n location.protocol + '//' + this.domainFor(hit.origin) + hit.url;\n });\n return singleResult;\n }\n }\n\n private async getMyAccData() {\n if (!this.getMyAccountData || this.myAccData) {\n this.remoteDataReady = true;\n return;\n }\n\n let url;\n switch (this.env) {\n case 'dev':\n url = 'https://myaccount-dev.nanoporetech.com/';\n break;\n case 'test':\n url = 'https://myaccount-test.nanoporetech.com/';\n break;\n default:\n url = 'https://myaccount.nanoporetech.com/';\n break;\n }\n\n var config = { timeout: 5000 };\n\n try {\n 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 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
|
+
{"version":3,"sources":["src/utils/fetch.ts","src/components/global-nav/global-nav.scss?tag=nano-global-nav&encapsulation=shadow","src/components/global-nav/global-nav.tsx"],"names":["clientFetch","url","_a","body","customConfig","__rest","headers","Accept","Access-Control-Allow-Origin","Content-Type","Cache","config","Object","assign","method","credentials","keepalive","mode","JSON","stringify","id","setTimeout","window","AbortController","controller_1","_b","timeout","abort","signal","fetch","response","_c","sent","clearTimeout","ok","json","text","errorMessage","Error","globalNavCss","THRESHOLDLIMIT","GlobalNav","class_1","hostRef","_this","this","currSize","thresholdsGoingUp","autocompleteEles","currAIndex","isLoggedIn","myAccData","aboutNavItms","siteNavItms","loggedInNavItms","hasLoggedinSlot","hasSiteSlot","hasPromotionSlot","aboutSlotLen","iconSlotLen","mainSlotLen","overflowSlotLen","searchSlotLen","internalSearchIndeces","thresholdReady","remoteDataReady","ready","isResizing","threshold","modalOpen","modalIsOpen","searchBarShown","scrollingUp","searchLoading","showAutocomplete","secondaryMenuOpen","userMenuOpen","menuFullScreen","searchValInternal","env","ssoRedirect","encodeURIComponent","location","href","getMyAccountData","activeMyAccountSections","showSearch","showLogo","logoUrl","protocol","host","searchIndeces","myAccountUser","searchValue","searchIndex","cartCount","msgCount","cartUrl","msgUrl","setResizingState","state","debounceSetResizingState","debounce","onMenuBtnKeyDown","ev","key","menuClose","menuOpen","onMenuBtnClick","e","preventDefault","menuDiv","style","display","menuWrapDiv","addEventListener","focus","preventScroll","scrollHeight","innerHeight","document","overflow","overflowX","onMenuHidden","removeEventListener","activeElement","menuBtn","mainBarDiv","force","relatedTarget","closestElement","closest","subMenuClose","target","open","onUserBtnClick","onUserBtnKeyDown","onUserMenuBlur","onSearchBtnClick","searchbarShow","searchbarHide","onSearchBtnKeyDown","onSearchBarShown","searchBarEl","searchInput","setFocus","length","onSearchBarHidden","height","onSearchInput","value","isSearchValSet","detail","type","onSearchChange","__awaiter","autocompleteResults","nanoSearchReset","emit","currentIndex","currentSelectedIndex","processSearchResults","alogliaIndex","search","attributesToSnippet","hitsPerPage","filters","Math","floor","Date","now","apply","_e","console","error","e_1","scopeSearch","_d","onSearchSubmit","showAutocompleteResults","algoliaSearchResults","queries","map","index","indexName","query","facets","algoliaClient","multipleQueries","nanoSearchError","e_2","results","result","i","name","selected","domain","domains","allGroup","nanoSearchResult","client","apiKey","searchApiKey","appId","searchAppId","onSearchIndexChange","indexStr","selectedIndex","find","switchIndexSubmit","onAutocompleteBlur","hits","onAutocompleteInteract","testIndex","el","shadowRoot","found_1","ele","setActiveElement","found","click","prototype","submitSearch","foundIndex","changeInternalSearchVal","initAlgoliaClient","algoliasearch","addAlgoliaIndeces","addIndeces","__spreadArray","forEach","initIndex","thresholdChange","newThreshold","oldThreshold","ratioChange","intersectRatio","siteContent","minHeight","barsDiv","clientHeight","menuItems_1","barItems_1","readTask","Array","from","querySelectorAll","push","writeTask","item","classList","add","remove","assessReady","remoteReady","attachIO","isReady","nanoIsReady","setupAutocompleteBlur","slotChange","thresholdClasses","classes","onWindowResize","innerWidth","secondaryOpen","secondaryMenu","stopPropagation","menuContentDiv","secondaryClose","handleUserMenu","displayTransition","userLinkPanel","querySelector","autocompleteSnippet","hit","lookFor","_snippetResult","prop","matchLevel","title","substring","resetHitFocus","autocompleteEle","setAttribute","assessSlottedContent","io","root","IntersectionObserver","data","slice","intersectionRatio","observe","componentDidLoad","debounceResize","bind","componentWillLoad","ComponentStore","init","MutationObserver","mo","childList","subtree","disconnectedCallback","disconnect","undefined","connectedCallback","getMyAccData","autocompleteList","content","currentScopeHits","scopeChangeSuggestions","scopeSuggestReducer","total","currentSuggestReducer","reduce","scopeSuggestions_1","h","class","role","ref","a","tabindex","innerHTML","button","onClick","onMouseDown","aria-expanded","hidden","onKeyDown","searchWidget","onSubmit","label","hideLabel","showInlineError","onNanoChange","mask","slot","aria-label","clear-input","placeholder","input","onNanoInput","aria-autocomplete","aria-activedescendant","aria-controls","onNanoFocus","search-icon","search-icon--search","search-icon--show","search-icon--loader","render","isRtl","ownerDocument","dir","Host","join","resizing","global-nav","scrolling-down","gn-menu","has-promotion","menu-full-screen","secondary-open","div","includes","urls","login","link","address","forgot_password","logout","auto-resize","break-point-max","quietMode","w","btn","src","getAssetPath","alt","aria-owns","icon-btn","user-links-btn","search-bar","show","onTouchEnd","domainFor","origin","dm","multiResults","singleResult","match","import","user","processMyAccLinks","processMyAccData","e_3","indeces","api_key","app_id","cart","count","notifications","messages","links","area"],"mappings":"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","sourcesContent":["interface FetchInputConfig {\n body?: { [prop: string]: string };\n headers?: { [prop: string]: string };\n [prop: string]: any;\n}\n\nexport async function clientFetch(\n url: string,\n { body, ...customConfig }: FetchInputConfig = {}\n) {\n const headers: { [prop: string]: string } = {\n Accept: 'application/json, text/plain, */*',\n 'Access-Control-Allow-Origin': '*',\n 'Content-Type': 'application/json',\n Cache: 'no-cache',\n };\n const config: RequestInit = {\n method: body ? 'POST' : 'GET',\n credentials: 'include',\n keepalive: true,\n mode: 'cors',\n ...customConfig,\n headers: {\n ...headers,\n ...customConfig.headers,\n },\n };\n if (body) {\n config.body = JSON.stringify(body);\n }\n\n let id = setTimeout(() => {}, 0);\n if (window.AbortController) {\n const controller = new AbortController();\n const { timeout = 500 } = customConfig;\n id = setTimeout(() => controller.abort(), timeout);\n config.signal = controller.signal;\n }\n\n const response = await fetch(url, config);\n clearTimeout(id);\n\n if (response.ok) {\n return await response.json();\n } else {\n const errorMessage = await response.text();\n return new Error(errorMessage);\n }\n}\n","@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/colours';\n@import '../../global/style/nano-theme/layers';\n\n:host {\n /**\n * @prop --padding: padding used for many elements. Defaults to '12px 0'.\n * @prop --padding-top: top padding used for many elements. Defaults to --padding.\n * @prop --padding-bottom: bottom padding used for many elements. Defaults to --padding.\n * @prop --padding-end: end (left on l2r / right on r2l) padding used for many elements. Defaulst to --padding.\n * @prop --padding-start: start (right on l2r / left on r2l) padding used for many elements. Defaults to --padding.\n * @prop --bar-background: Background of the bar element. Defaults to rgb(17, 85, 113).\n * @prop --bar-text-color: Text color within the bar element. Defaults to white.\n * @prop --bar-color-shade: Color variant used within the bar element. Defaults to rgb(40, 110, 133).\n * @prop --bar-color-tint: Color variant used within the bar element. Defaults to rgb(88, 140, 161).\n * @prop --bar-color-focus: Focus color of the form element within search. Defaults to #90c6e7;\n * @prop --bar-color-focus: Focus color of the form element within search. Defaults to #90c6e7;\n * @prop --menu-background: Background 'burger', menu element. Defaults to #001a21;\n * @prop --menu-text-color: Text color 'burger', menu element. Defaults to white;\n */\n --padding: 12px;\n --padding-top: var(--padding);\n --padding-end: var(--padding);\n --padding-bottom: var(--padding);\n --padding-start: var(--padding);\n --bar-background: #005c75;\n --bar-text-color: white;\n --bar-color-shade: rgb(19, 89, 111);\n --bar-color-tint: rgb(19, 89, 111);\n --bar-color-focus: #90c6e7;\n --menu-background: #001a21;\n --menu-text-color: white;\n --menu-dropdown-bg: #196c82;\n --menu-dropdown-color: white;\n\n display: block;\n position: relative;\n line-height: 1.5;\n height: 100%;\n\n * {\n box-sizing: inherit;\n }\n}\n\n// Common\n.global-nav {\n @include text-inherit();\n\n font-size: 0.88em;\n z-index: #{$layer-index-menubar};\n\n button {\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n }\n\n .icon-btn {\n position: relative;\n background: none;\n color: inherit;\n border: none;\n align-self: normal;\n padding: 9px 7px;\n cursor: pointer;\n display: flex;\n align-items: center;\n\n nano-icon {\n width: 18px;\n height: 18px;\n }\n }\n\n ::slotted(nano-nav-item[slot='icon']) {\n --padding-top: 9px;\n --padding-bottom: 9px;\n --padding-start: 7px;\n --padding-end: 7px;\n --display: flex;\n\n font-size: 18px;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n white-space: nowrap;\n }\n\n .nav-links {\n &_title {\n margin: 8px 0 3px;\n }\n\n ul {\n margin: 0;\n padding: 0;\n }\n\n li {\n list-style: none;\n }\n }\n\n .login-btn {\n display: flex;\n align-items: center;\n font-size: 0.94em;\n }\n\n .menu-btn {\n padding: 9px var(--padding) 9px var(--padding);\n }\n}\n\n// Popup / Slideout Menu\n.gn-menu {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -1;\n display: none;\n transition: z-index 0.01s ease 0.2s;\n height: 100vh;\n width: 100vw;\n overflow-y: auto;\n\n @include rtl-host() {\n left: auto;\n right: 0;\n }\n\n :host(.threshold-2) & {\n position: absolute;\n width: calc(100vw - 20px);\n }\n\n &.menu-full-screen {\n width: 100vw !important;\n }\n\n // &.secondary-open {\n // overflow-y: hidden;\n // }\n\n &_wrap {\n max-width: 92vw;\n width: 335px;\n background: var(--menu-background);\n color: var(--menu-text-color);\n padding: var(--padding) 0;\n box-shadow: 0 0 36px 0 rgba(0, 0, 0, 0.8);\n position: relative;\n pointer-events: all;\n margin-bottom: 36px;\n opacity: 0;\n outline: none;\n transition: transform 0.2s ease, opacity 0.2s ease;\n\n &.has-promotion {\n padding: var(--padding) 0 0;\n }\n }\n\n &.open {\n z-index: #{$layer-index-dropdown};\n transition: z-index 0.01s ease;\n\n .gn-menu_wrap {\n opacity: 1;\n transform: translate3d(0, 0, 0) !important;\n transition: transform 0.2s ease 0.01s, opacity 0.2s ease 0.01s;\n }\n }\n\n &_actions {\n @include padding(null, calc(var(--padding) / 2), null, null);\n\n display: flex;\n justify-content: space-between;\n\n &-counter {\n background: #d0021b;\n color: #fff;\n position: absolute;\n bottom: 4px;\n right: 0;\n left: auto;\n font-size: 9px;\n height: 14px;\n line-height: 14px;\n width: auto;\n min-width: 14px;\n border-radius: 50%;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n text-align: center;\n text-indent: 0;\n }\n }\n\n .content {\n &-wrap {\n position: relative;\n overflow: hidden;\n transition: 0.2s ease min-height;\n min-height: 190px;\n }\n\n &--sub {\n padding: var(--padding) 0 var(--padding) 7px;\n }\n }\n\n .menu-btn {\n @include margin(null, auto, null, null);\n }\n\n .nav-links {\n display: flex;\n flex-wrap: wrap;\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n --icon-size: 14px;\n --display: inline-block;\n --secondary-bg-color: #001a21;\n --padding-top: 10px;\n --padding-bottom: 10px;\n --padding-end: calc(var(--padding) * 2);\n --padding-start: calc(var(--padding) + 3px);\n --color: white;\n --color-hover: #{$color-lightblue};\n --bg-color-hover: transparent;\n --bg-color-focus: #002530;\n --focus-outline: none;\n\n font-size: 0.99em;\n width: 100%;\n // margin: 0 0;\n }\n\n .user-nav {\n --bg-color: #193037;\n --padding-top: 9px;\n --padding-bottom: 9px;\n\n font-weight: bold;\n margin: 5px 0 0;\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n font-weight: 500;\n\n --bg-color: transparent;\n }\n }\n\n &_title {\n margin: 0 var(--padding) 4px;\n border-bottom: 1px solid #33484d;\n padding-bottom: 8px;\n font-size: 0.86em;\n text-transform: uppercase;\n color: $color-lightblue;\n letter-spacing: 1px;\n font-weight: 700;\n }\n\n &-wrap {\n margin: 18px 0;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .back-btn {\n border-top: 1px solid #33484d;\n border-bottom: 1px solid #33484d;\n display: flex;\n align-items: center;\n padding: 10px 11px 10px 0;\n width: 100%;\n font-size: 12px;\n text-transform: uppercase;\n color: $color-lightblue;\n letter-spacing: 1px;\n font-weight: 700;\n\n nano-icon {\n @include margin(null, 10px, null, null);\n\n font-size: 12px;\n color: white;\n }\n }\n\n &--sub {\n display: flex;\n flex-wrap: wrap;\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n --border-bottom: none;\n --padding-end: var(--padding);\n --padding-start: var(--padding);\n --padding-top: 8px;\n --padding-bottom: 8px;\n\n margin: 0;\n width: 50%;\n line-height: 1.8;\n }\n }\n\n .content {\n padding: 8px var(--padding);\n }\n }\n\n .login-btn {\n @include padding(9px, var(--padding), 9px, 7px);\n\n nano-icon {\n @include margin(null, null, null, 10px);\n }\n }\n\n .logout-btn {\n justify-content: flex-end;\n\n a {\n padding: 0 5px;\n }\n }\n}\n\n// Main Bar\n.sticker-trigger {\n background: var(--bar-background);\n width: 100%;\n z-index: calc(#{$layer-index-menubar} + 1);\n}\n\n.bars {\n color: var(--bar-text-color);\n z-index: #{$layer-index-menubar};\n position: relative;\n max-width: 100%;\n min-width: 100%;\n box-shadow: none;\n transition: 0.2s ease box-shadow;\n\n [stuck] & {\n box-shadow: 0 1px 25px 0 rgba(0, 0, 0, 0.15);\n }\n\n &::before {\n content: '';\n width: 100%;\n height: 100%;\n z-index: -1;\n background: var(--bar-background);\n position: absolute;\n }\n\n .search {\n &-widget {\n @include margin(null, auto, null, 11px);\n\n position: relative;\n flex: 1 1 auto;\n max-width: 45vw;\n min-width: 269px;\n max-height: 36px;\n }\n\n &-inputs {\n display: flex;\n margin: 0;\n\n input[type='submit'] {\n display: none;\n }\n }\n\n &-autocomplete {\n position: absolute;\n top: calc(100% - 2px);\n width: 100%;\n left: 0;\n background: white;\n border: 2px solid var(--bar-color-tint);\n border-radius: 0 0 5px 5px;\n color: $color-black;\n font-size: 0.85em;\n padding: calc(var(--padding) / 2) 0 1px 0;\n z-index: 1;\n\n @include rtl-host() {\n left: auto;\n right: 0;\n }\n\n &-hit {\n padding:\n calc(var(--padding) / 4) var(--padding)\n calc(var(--padding) / 4) var(--padding);\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: block;\n text-align: left;\n line-height: 1.5;\n cursor: pointer;\n\n @include rtl-host() {\n text-align: right;\n }\n\n &-scope {\n font-size: 0.76em;\n // text-indent: 10px;\n color: rgb(167, 176, 179);\n font-weight: 600;\n }\n\n &:hover,\n &:focus {\n background-color: $color-lightgrey;\n }\n\n .search__highlight,\n em {\n font-weight: bold;\n font-style: normal;\n }\n\n &--no-result {\n &:hover,\n &:focus {\n background: none !important;\n }\n }\n }\n\n &-foot {\n margin: 7px 0 0;\n }\n\n &-submit {\n background: none;\n border: none;\n align-self: normal;\n padding: 9px var(--padding);\n cursor: pointer;\n display: flex;\n align-items: center;\n color: $color-blue;\n justify-content: flex-end;\n width: 100%;\n text-decoration: underline;\n border-top: 1px solid rgb(232, 234, 234);\n\n &:hover,\n &:focus {\n background-color: $color-lightgrey;\n }\n }\n }\n }\n\n .search-input {\n --input-border-style: solid 1px rgb(85, 140, 157);\n --input-border-style--focus: solid 1px var(--bar-color-focus, #90c6e7);\n --input-border-width: 1px;\n\n font-size: 0.9em;\n }\n\n nano-select.search-input {\n --input-bg-color: var(--bar-color-tint, rgb(88, 140, 161));\n --input-text-color: inherit;\n --input-border-radius: 5px 0 0 5px;\n\n flex: 0 1 auto;\n width: auto;\n display: flex;\n align-items: center;\n flex-direction: column;\n position: relative;\n left: 1px;\n\n @include rtl-host() {\n --input-border-radius: 0 5px 5px 0;\n }\n\n :host(:not(.ready)) & {\n overflow: hidden;\n max-height: 1em;\n }\n\n .down-arrow {\n font-size: 0.65em;\n }\n }\n\n nano-input.search-input {\n --input-text-color: inherit;\n --input-bg-color: var(--bar-color-shade, rgb(40, 110, 133));\n --clear-btn-color: #{$color-black};\n --input-border-radius: 0 5px 5px 0;\n --placeholder-color: white;\n\n width: 206px;\n display: flex;\n align-items: center;\n flex-direction: column;\n flex: 1;\n\n @include rtl-host() {\n --input-border-radius: 5px 0 0 5px;\n }\n\n :host(:not(.ready)) & {\n overflow: hidden;\n max-height: 1em;\n }\n\n &.has-value {\n --input-bg-color: #{$color-white};\n --input-text-color: #{$color-black};\n\n .search-icon {\n color: #{$color-black};\n }\n }\n\n .search-icon {\n background: none;\n color: white;\n padding: 0 8px;\n display: none;\n\n &--show {\n display: flex;\n }\n\n &--loader {\n animation: spin 1s linear infinite;\n\n @keyframes spin {\n 100% {\n transform: rotate(360deg);\n }\n }\n }\n\n nano-icon {\n height: 1.4em;\n }\n }\n }\n}\n\n.main-bar {\n width: 100%;\n\n @include padding(var(--padding), var(--padding), var(--padding), 0);\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n overflow-x: hidden;\n\n &:focus {\n outline: none;\n }\n\n :host(.ready) & {\n overflow-x: visible;\n }\n\n > *,\n ::slotted(*) {\n transition: opacity 0.2s ease;\n\n :host(:not(.ready)) & {\n opacity: 0 !important;\n }\n\n :host(.ready) & {\n opacity: 1;\n }\n\n :host(.resizing) & {\n opacity: 0 !important;\n }\n }\n\n > * {\n flex: 0 0 auto;\n\n ::slotted(nano-nav-item[slot='icon']) {\n @include margin(null, null, null, 11px);\n }\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n --color-hover: #{$color-lightgrey};\n --secondary-bg-color: var(--menu-dropdown-bg);\n --secondary-color: var(--menu-dropdown-color);\n --bg-color-open: var(--bar-background);\n\n text-decoration: none !important;\n }\n }\n\n .icon-btn {\n @include margin(0, null, 0, 6px);\n\n :host(.threshold-2) & {\n @include margin(0, null, 0, 11px);\n }\n }\n\n .menu-btn.icon-btn {\n margin: 0 !important;\n\n @include ltr-host() {\n border-right: 1.5px solid var(--bar-color-shade);\n }\n\n @include rtl-host() {\n border-left: 1.5px solid var(--bar-color-shade);\n }\n }\n\n .user-links {\n position: relative;\n\n .icon-btn {\n @include padding(null, 0, null, null);\n\n font-size: 0.93em;\n font-weight: 500;\n\n nano-icon {\n @include margin(null, null, null, 5px);\n\n width: 16px;\n height: 16px;\n transform-origin: center;\n transition: transform 0.2s ease, color 0.2s ease;\n }\n\n &.open {\n nano-icon {\n transform: rotate(180deg);\n color: $color-blue;\n }\n }\n }\n\n &-panel {\n display: none;\n position: absolute;\n border-radius: 4px 0 4px 4px;\n box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.4);\n background-color: #568c9d;\n opacity: 0;\n transform: translate3d(0, 24px, 0);\n transition: transform 0.2s ease, opacity 0.2s ease;\n right: 0;\n font-size: 0.85em;\n min-width: 250px;\n z-index: 1;\n\n @include rtl-host() {\n right: auto;\n left: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n &.show {\n opacity: 1;\n transform: translate3d(0, 4px, 0);\n }\n\n &-content {\n padding: 0 18px;\n display: flex;\n flex-direction: column;\n\n a {\n padding: 11px 0;\n border-bottom: #669dac 1px solid;\n\n &:hover,\n &:focus {\n color: $color-darkgrey;\n }\n\n &:last-child {\n border-bottom: none;\n }\n }\n }\n\n &-foot {\n background-color: #aac5cd;\n border-radius: 0 0 4px 4px;\n padding: var(--padding);\n color: #455556;\n display: flex;\n align-items: center;\n font-weight: 500;\n justify-content: space-between;\n\n a:hover {\n text-decoration: underline;\n }\n }\n }\n }\n\n .logo {\n height: 34px;\n width: auto;\n min-width: 196px;\n\n :host(:not(.threshold-1)) & {\n height: 30px;\n }\n }\n\n .logo-link {\n @include margin(null, auto, null, 0);\n @include padding(null, 11px, null, 11px);\n\n display: flex;\n align-items: center;\n border: none;\n }\n\n .nav-links {\n font-size: 0.86em;\n flex: 1 0 auto;\n display: flex;\n justify-content: space-around;\n\n ul {\n display: flex;\n justify-content: space-around;\n }\n\n ::slotted(nano-nav-item),\n nano-nav-item {\n --padding-top: 7px;\n --padding-bottom: 7px;\n --padding-end: 2px;\n --padding-start: 2px;\n --margin: 0 11px;\n }\n\n &--main {\n font-weight: bold;\n justify-content: flex-start;\n\n ::slotted(nano-nav-item) {\n --color: white;\n --padding-end: 6px;\n --padding-start: 6px;\n }\n }\n\n &--sub {\n @include margin(null, null, null, 6px);\n\n --color: #e2e2e2;\n\n justify-content: flex-end;\n }\n }\n\n .login-btn {\n display: inline-block;\n border-radius: 4px;\n background-color: #17bb75;\n color: #fff;\n padding: 3px 10px;\n position: relative;\n left: auto;\n bottom: auto;\n\n @include margin(null, 0, null, 11px);\n }\n\n .measure-ele {\n min-width: 1px;\n display: block;\n margin: 0;\n padding: 0;\n }\n}\n\n.search-bar {\n height: 0;\n overflow: hidden;\n transition: 0.2s ease height;\n padding: 0 var(--padding);\n outline: none;\n\n .search-widget {\n @include margin(0, 0, 0, 0);\n\n overflow: inherit;\n max-width: none;\n max-height: none;\n padding: 0 0 var(--padding);\n }\n\n .search-inputs {\n padding: 0 0;\n margin: 0 0;\n }\n\n .search-autocomplete {\n top: calc(100% - (var(--padding) + 1px));\n }\n}\n\n.site-content {\n display: flex;\n transition: min-height 0.2s ease;\n min-height: calc(100% - 61px);\n position: relative;\n z-index: auto;\n align-items: stretch;\n}\n\n.mask {\n opacity: 0;\n background: rgba(0, 0, 0, 0.3);\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n height: 100vh;\n z-index: -1;\n transition:\n transform 0.2s ease,\n opacity 0.2s ease,\n visibility 0.01s ease 0.2s,\n z-index 0.01s ease 0.2s;\n visibility: hidden;\n\n &.open {\n opacity: 1;\n transition:\n z-index 0.01s ease,\n visibility 0.01s ease,\n transform 0.2s ease 0.01s,\n opacity 0.2s ease 0.01s;\n z-index: 3;\n visibility: visible;\n }\n}\n","import {\n Component,\n h,\n Host,\n Element,\n State,\n Watch,\n Event,\n EventEmitter,\n Prop,\n Listen,\n Build,\n getAssetPath,\n readTask,\n writeTask,\n Method,\n VNode,\n ComponentInterface,\n} from '@stencil/core';\nimport algoliasearch, { SearchClient as AlgoliaClient } from 'algoliasearch';\nimport { debounce, closestElement, displayTransition } from '../../utils';\nimport { clientFetch } from '../../utils/fetch';\nimport {\n InputChangeEventDetail,\n SelectChangeEventDetail,\n AlgoliaResults,\n SearchIndex,\n MyAccountLink,\n AloliaSearchResultDetail,\n AlgoliaMultiResult,\n MyAccountUser,\n NavItemEventDetail,\n AlgoliaResultHit,\n AlgoliaNetworkError,\n AlgoliaMultiResults,\n} from '../../interface';\nimport { ComponentStore } from '../../utils/store/component-store';\n\ninterface MyAccountData {\n user: MyAccountUser;\n cart: {\n count: number;\n url: string;\n };\n notifications: { count: number };\n hs: { lists?: Array<number> };\n registration: { next_url: string | null };\n links: null | MyAccountLink[];\n urls: {\n forgot_password: string | null;\n logout: string | null;\n login: string | null;\n messages: string | null;\n cart: string | null;\n };\n domains: [\n {\n origin: string;\n domain: string;\n }\n ];\n search: {\n app_id: string;\n api_key: string;\n indeces: [\n {\n index: string;\n name: string;\n domain: string;\n all_group?: boolean;\n filters?: [string];\n }\n ];\n };\n}\n\nconst THRESHOLDLIMIT = 5;\n/**\n * Nanopore digital global navigation and search bar.\n * Incorporates MyAccount / SSO states (messages / cart / user name etc).\n * Incorporates Algolia search.\n * GlobalNav is designed to be at the root of the `<body>`.\n * There should only be one <nano-global-nav> in the DOM.\n * The following demo uses static data.\n * @slot main - main nav items. Should be used with nano-nav-item's\n * @slot icon - nano-nav-item's displayed alongside icon links that come from MyAccount\n * @slot loggedin - nano-nav-item's to display when users are signed in, alongside links from from MyAccount (within the overflow menu panel).\n * @slot about - nano-nav-item's to display with about links that come from MyAccount\n * @slot site - nano-nav-item's to display with site links that come from MyAccount\n * @slot overflow - items to always display in the overflow menu\n * @slot search - when not using myaccount search OR show-search=\"false\" you can utilise the search slot\n * @slot promotion - a free area for any promotional content, displayed within the overflow menu panel\n * @slot logo - when show-logo=\"false\" you can utilise the logo slot\n */\n@Component({\n tag: 'nano-global-nav',\n styleUrl: 'global-nav.scss',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class GlobalNav implements ComponentInterface {\n // position and dimension state\n private io: IntersectionObserver;\n private debounceResize: () => {};\n private debounceSetResizingState: () => {};\n private currSize: number = 0;\n private thresholdsGoingUp: boolean = false;\n\n // menu\n private menuDiv: HTMLElement;\n private menuBtn: HTMLButtonElement;\n private menuWrapDiv: HTMLDivElement;\n private menuContentDiv: HTMLDivElement;\n\n // search\n private searchBarEl: HTMLDivElement;\n private searchInput: HTMLNanoInputElement;\n private algoliaClient: AlgoliaClient;\n private currentIndex: SearchIndex;\n private autocompleteResults: AlgoliaResults | null;\n private autocompleteEles: Array<HTMLAnchorElement | HTMLButtonElement> = [];\n private currAIndex: number = -1;\n private algoliaSearchResults: AlgoliaMultiResults | null;\n private scopeSearch: AlgoliaMultiResults | null;\n\n // general\n private mainBarDiv: HTMLElement;\n private barsDiv: HTMLDivElement;\n private siteContent: HTMLDivElement;\n private userLinkPanel: HTMLDivElement;\n private isLoggedIn: boolean = false;\n\n private myAccData: MyAccountData = null;\n\n // myaccount links\n private aboutNavItms: MyAccountLink[] = [];\n private siteNavItms: MyAccountLink[] = [];\n private loggedInNavItms: MyAccountLink[] = [];\n\n // has slot tests\n private mo?: MutationObserver;\n @State() hasLoggedinSlot: boolean = false;\n @State() hasSiteSlot: boolean = false;\n @State() hasPromotionSlot: boolean = false;\n\n // slot item number tests\n @State() aboutSlotLen: number = 0;\n @State() iconSlotLen: number = 0;\n @State() mainSlotLen: number = 0;\n @State() overflowSlotLen: number = 0;\n @State() searchSlotLen: number = 0;\n\n @State() internalSearchIndeces: Array<SearchIndex> = [];\n @State() thresholdReady: boolean = false;\n @State() remoteDataReady: boolean = false;\n @State() ready: boolean = false;\n @State() isResizing: boolean = false;\n @State() intersectRatio: number;\n @State() threshold: number = THRESHOLDLIMIT;\n @State() modalOpen: boolean = false;\n @State() modalIsOpen: boolean = false;\n @State() searchBarShown: boolean = false;\n @State() scrollingUp: boolean = true;\n @State() searchLoading: boolean = false;\n @State() showAutocomplete: boolean = false;\n @State() secondaryMenuOpen: boolean = false;\n @State() userMenuOpen: boolean = false;\n @State() menuFullScreen: boolean = false;\n @State() searchValInternal: string = '';\n\n @Element() private el: HTMLNanoGlobalNavElement;\n\n /**\n * Connect to local, dev, test or prod MyAccount\n * environments to retrieve global nav / sso data\n */\n @Prop() env: 'local' | 'dev' | 'test' | 'prod' = 'prod';\n\n /**\n * Where to take user after SSO login\n */\n @Prop() ssoRedirect: string = encodeURIComponent(window.location.href);\n\n /**\n * Whether to attempt to get global nav / sso data from MyAccount\n */\n @Prop() getMyAccountData: boolean = true;\n\n /**\n * Active MyAccount link sections. By default all will show.\n */\n @Prop() activeMyAccountSections: (\n | 'about'\n | 'loggedin'\n | 'sites'\n | 'icons'\n )[] = null;\n\n /**\n * Whether to show search functionality\n */\n @Prop() showSearch: boolean = true;\n\n /**\n * Whether to show Nanopore logo\n */\n @Prop() showLogo: boolean = true;\n\n /**\n * The link to put on the logo\n */\n @Prop() logoUrl: string = location.protocol + '//' + location.host;\n\n /**\n * An array of Algolia search indexes (and optional display names). Will be automatically populated from MyAccount\n */\n @Prop() searchIndeces: Array<SearchIndex> = [];\n\n /**\n * Logged in user details automatically populated from MyAccount\n */\n @Prop({ mutable: true }) myAccountUser: {\n id: string | null;\n name: string | null;\n first_name: string | null;\n last_name: string | null;\n email: string | null;\n company: string | null;\n lifecycle_stage: string | null;\n indirect_customer: boolean;\n } = null;\n\n /**\n * An Algolia App ID key. Will be automatically populated from MyAccount\n */\n @Prop({ mutable: true }) searchAppId: string;\n\n /**\n * An Algolia API Key. Will be automatically populated from MyAccount\n */\n @Prop({ mutable: true }) searchApiKey: string;\n\n /**\n * A search value to passed to Algolia to programatically get or to preload search results\n */\n @Prop({ mutable: true }) searchValue: string = '';\n\n /**\n * Algolia search index to programatically set or to set an initial index\n */\n @Prop({ mutable: true }) searchIndex: string = 'all_prod_en';\n\n /**\n * MyAccount store cart count.\n */\n @Prop({ mutable: true }) cartCount: number = 0;\n\n /**\n * MyAccount undread message count.\n */\n @Prop({ mutable: true }) msgCount: number = 0;\n\n /**\n * Url to the Nanopore store cart. Will default to the url supplied by MyAccount\n */\n @Prop({ mutable: true }) cartUrl: string = null;\n\n /**\n * Url to the Nanopore message center. Will default to the url supplied by MyAccount\n */\n @Prop({ mutable: true }) msgUrl: string = null;\n\n /**\n * Emitted when the global nav is ready.\n */\n @Event() nanoIsReady!: EventEmitter<void>;\n\n /**\n * Emitted when search results are successfully returned from Algolia.\n */\n @Event() nanoSearchResult!: EventEmitter<AloliaSearchResultDetail>;\n\n /**\n * Emitted when algolia returns an error.\n */\n @Event() nanoSearchError!: EventEmitter<AlgoliaNetworkError>;\n\n /**\n * Emitted when search field is cleared.\n */\n @Event() nanoSearchReset!: EventEmitter<AloliaSearchResultDetail>;\n\n /**\n * Submit the search form (a search value must be present)\n */\n @Method()\n async submitSearch() {\n this.onSearchSubmit();\n this.showAutocomplete = false;\n return;\n }\n\n @Watch('searchIndex')\n currentSelectedIndex() {\n if (!this.internalSearchIndeces.length) {\n return;\n }\n\n let foundIndex = this.internalSearchIndeces.find(\n (index) => index.index === this.searchIndex\n );\n\n if (!foundIndex) {\n this.currentIndex = this.internalSearchIndeces[0];\n console.error('index not found');\n return;\n }\n\n this.currentIndex = foundIndex;\n return foundIndex;\n }\n\n @Watch('searchValInternal')\n changeInternalSearchVal() {\n if (this.searchValInternal !== this.searchValue)\n this.searchValue = this.searchValInternal;\n }\n\n @Watch('searchApiKey')\n @Watch('searchAppId')\n initAlgoliaClient() {\n if (!this.searchAppId || !this.searchApiKey) return;\n\n this.algoliaClient = algoliasearch(this.searchAppId, this.searchApiKey);\n this.addAlgoliaIndeces();\n }\n\n @Watch('searchIndeces')\n addIndeces() {\n this.internalSearchIndeces = [\n ...this.internalSearchIndeces,\n ...this.searchIndeces,\n ];\n }\n\n @Watch('internalSearchIndeces')\n addAlgoliaIndeces() {\n if (!this.algoliaClient || !this.internalSearchIndeces.length) return;\n\n this.internalSearchIndeces.forEach((searchIndex) => {\n searchIndex.alogliaIndex = this.algoliaClient.initIndex(\n searchIndex.index\n );\n });\n if (!this.searchIndex)\n this.searchIndex = this.internalSearchIndeces[0].index;\n }\n\n @Watch('threshold')\n thresholdChange(newThreshold, oldThreshold) {\n if (newThreshold > oldThreshold) {\n // we've resized to larger screen.\n this.thresholdsGoingUp = true;\n this.setResizingState(true);\n }\n }\n\n /**\n * Primary logic for resizing changes.\n * When content doesn't fit - we loop down through break points until it does\n */\n @Watch('intersectRatio')\n ratioChange() {\n if (this.intersectRatio < 1 && this.threshold > 0) {\n // content doesn't fit\n if (this.thresholdsGoingUp) this.setResizingState(true);\n this.threshold--;\n setTimeout(() => this.ratioChange(), 500);\n } else {\n this.thresholdReady = true;\n // content now fits so add / remove context classes\n // on nav-items depending on whether they're added to bar or burger.\n this.siteContent.style.minHeight = `calc(100% - ${\n this.barsDiv.clientHeight + 1\n }px)`;\n\n let menuItems: Array<Element>, barItems: Array<Element>;\n readTask(() => {\n menuItems = [\n ...Array.from(this.el.querySelectorAll('nano-nav-item[slot=\"site\"]')),\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"overflow\"]')\n ),\n ];\n barItems = [];\n\n if (this.threshold < THRESHOLDLIMIT - 4)\n menuItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"icon\"]')\n )\n );\n else\n barItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"icon\"]')\n )\n );\n\n if (this.threshold < THRESHOLDLIMIT - 3)\n menuItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"loggedin\"]')\n )\n );\n else\n barItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"loggedin\"]')\n )\n );\n\n if (this.threshold < THRESHOLDLIMIT - 2)\n menuItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"main\"]')\n )\n );\n else\n barItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"main\"]')\n )\n );\n\n if (this.threshold < THRESHOLDLIMIT - 1)\n menuItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"about\"]')\n )\n );\n else\n barItems.push(\n ...Array.from(\n this.el.querySelectorAll('nano-nav-item[slot=\"about\"]')\n )\n );\n });\n\n writeTask(() => {\n menuItems.forEach((item) => {\n item.classList.add('nano-global-nav-menu');\n item.classList.remove('nano-global-nav-bar');\n });\n barItems.forEach((item) => {\n item.classList.remove('nano-global-nav-menu');\n item.classList.add('nano-global-nav-bar');\n });\n });\n }\n }\n\n @Watch('thresholdReady')\n @Watch('remoteDataReady')\n assessReady() {\n if (this.thresholdReady && this.remoteDataReady) {\n this.ready = true;\n }\n }\n\n @Watch('remoteDataReady')\n remoteReady() {\n this.attachIO();\n }\n\n @Watch('ready')\n isReady() {\n this.nanoIsReady.emit();\n }\n\n /**\n * Add / remove events when autocomplete results show / hide.\n */\n @Watch('showAutocomplete')\n setupAutocompleteBlur() {\n this.searchInput.clientWidth; // force reflow\n if (this.showAutocomplete) {\n this.el.shadowRoot.addEventListener('click', this.onAutocompleteBlur);\n } 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 = THRESHOLDLIMIT;\n }\n\n // General classes for visuals\n\n private thresholdClasses() {\n let classes = [];\n let i = 0;\n for (i; i < this.threshold; i++) classes.push('threshold-' + (i + 1));\n return classes;\n }\n\n /**\n * provides 'isResizing' - we use this to fade content out on 'breakpoint' increase\n * (when the screen size increases). Otherwise the stepping through of\n * breakpoints to calculate if content currently fits shows on screen (looks ugly)\n */\n private setResizingState = (state: boolean = false) => {\n if (typeof this.debounceSetResizingState === 'undefined') {\n this.debounceSetResizingState = debounce(this.setResizingState, 600);\n }\n if (state) {\n this.isResizing = true;\n this.debounceSetResizingState();\n } else {\n this.isResizing = false;\n this.thresholdsGoingUp = false;\n }\n };\n\n // Global DOM Events\n\n private onWindowResize() {\n if (this.threshold < THRESHOLDLIMIT && window.innerWidth > this.currSize) {\n this.threshold = THRESHOLDLIMIT;\n }\n this.currSize = window.innerWidth;\n this.searchBarShown = false;\n }\n\n // Burger / Overflow Menu\n\n // listen to nav-item secondary open / close events primarily for resizing the menu\n @Listen('nanoOpen')\n secondaryOpen(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n this.secondaryMenuOpen = true;\n this.menuContentDiv.style.minHeight =\n (ev.detail as NavItemEventDetail).secondaryMenu.scrollHeight + 'px';\n }\n\n @Listen('nanoClose')\n secondaryClose(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n this.secondaryMenuOpen = false;\n this.menuContentDiv.style.minHeight = '';\n }\n\n private onMenuBtnKeyDown = (ev: KeyboardEvent) => {\n switch (ev.key) {\n case 'Enter':\n case ' ':\n this.modalOpen ? this.menuClose(ev, true) : this.menuOpen();\n break;\n }\n };\n\n private onMenuBtnClick = (ev: MouseEvent) => {\n this.menuClose(ev, true);\n };\n\n private menuOpen = (e?: MouseEvent) => {\n if (e) e.preventDefault();\n\n this.menuDiv.style.display = 'block';\n // need to open menu in stages\n // wait for re-flow after changing display\n // wait for repaint after animate, then focus\n\n this.menuDiv.clientWidth; // force reflow\n\n this.modalOpen = true;\n this.modalIsOpen = true;\n this.menuWrapDiv.addEventListener('focusout', this.menuClose);\n\n this.menuDiv.clientWidth; // force reflow\n\n this.menuWrapDiv.focus({ preventScroll: true });\n if (\n this.threshold < 2 ||\n this.menuWrapDiv.scrollHeight > window.innerHeight\n ) {\n document.body.style.overflow = 'hidden';\n this.menuFullScreen = true;\n } else document.body.style.overflowX = 'hidden';\n };\n\n private onMenuHidden = () => {\n this.menuDiv.removeEventListener('transitionend', this.onMenuHidden);\n this.menuWrapDiv.removeEventListener('focusout', this.menuClose);\n\n document.body.style.overflow = '';\n this.menuDiv.style.display = 'none';\n this.modalIsOpen = false;\n this.menuFullScreen = false;\n\n setTimeout(() => {\n if (document.activeElement === document.body && this.menuBtn)\n this.mainBarDiv.focus({ preventScroll: true });\n }, 50);\n };\n\n private menuClose = (\n ev?: FocusEvent | MouseEvent | KeyboardEvent | TouchEvent,\n force: boolean = false\n ) => {\n if (!force) {\n let e = ev as FocusEvent;\n if (\n e &&\n e.relatedTarget &&\n closestElement('#global-nav-menu', e.relatedTarget as HTMLElement)\n )\n return;\n if (\n e &&\n e.relatedTarget &&\n (e.relatedTarget as HTMLElement).closest('#global-nav-menu')\n )\n return;\n if (\n e &&\n e.relatedTarget &&\n (e.relatedTarget as HTMLElement).closest('[slot=\"promotion\"]')\n )\n return;\n if (this.secondaryMenuOpen) return;\n }\n\n this.modalOpen = false;\n this.menuDiv.addEventListener('transitionend', this.onMenuHidden);\n };\n\n private subMenuClose = (ev?: MouseEvent) => {\n ev.preventDefault();\n (ev.target as HTMLNanoNavItemElement).closest('nano-nav-item').open = false;\n };\n\n // User profile menu\n\n private onUserBtnClick = (ev: MouseEvent) => {\n ev.preventDefault();\n this.userMenuOpen = !this.userMenuOpen;\n };\n\n private onUserBtnKeyDown = (ev: KeyboardEvent) => {\n switch (ev.key) {\n case 'Enter':\n case ' ':\n this.userMenuOpen = !this.userMenuOpen;\n break;\n }\n };\n\n private onUserMenuBlur = (ev: FocusEvent) => {\n if (!ev.relatedTarget) {\n this.userMenuOpen = false;\n return;\n }\n if (!!(ev.relatedTarget as HTMLElement).closest('.user-links-panel'))\n return false;\n this.userMenuOpen = false;\n };\n\n @Watch('userMenuOpen')\n async handleUserMenu() {\n await displayTransition(this.userLinkPanel, 'show', this.userMenuOpen);\n if (this.userMenuOpen) {\n this.userLinkPanel.focus();\n this.userLinkPanel.addEventListener('focusout', this.onUserMenuBlur);\n } else {\n this.userLinkPanel.removeEventListener('focusout', this.onUserMenuBlur);\n this.el.focus();\n }\n }\n\n // Search bar (smaller screens / mobile)\n\n private onSearchBtnClick = (ev: MouseEvent) => {\n ev.preventDefault();\n if (!this.searchBarShown) this.searchbarShow();\n else this.searchbarHide();\n };\n\n private onSearchBtnKeyDown = (ev: KeyboardEvent) => {\n switch (ev.key) {\n case 'Enter':\n case ' ':\n this.searchBarShown ? this.searchbarHide() : this.searchbarShow();\n break;\n }\n };\n\n private searchbarShow() {\n this.searchBarShown = true;\n this.searchBarEl.addEventListener('transitionend', this.onSearchBarShown);\n this.searchBarEl.style.display = 'block';\n\n setTimeout(() => {\n this.searchBarEl.style.height =\n this.searchBarEl.querySelector('.search-widget').scrollHeight + 'px';\n }, 50);\n }\n\n private onSearchBarShown = () => {\n this.searchBarEl.removeEventListener(\n 'transitionend',\n this.onSearchBarShown\n );\n if (this.searchInput) this.searchInput.setFocus();\n this.searchBarEl.style.overflow = 'visible';\n };\n\n private searchbarHide = (ev?: FocusEvent) => {\n if (\n ev &&\n ev.relatedTarget &&\n (ev.relatedTarget as HTMLElement).closest('#global-nav-search-bar')\n )\n return;\n this.showAutocomplete = false;\n if (this.searchValInternal.length && ev) return;\n\n this.searchBarEl.addEventListener('transitionend', this.onSearchBarHidden);\n this.searchBarEl.style.overflow = 'hidden';\n this.searchBarEl.style.height = '0px';\n };\n\n private onSearchBarHidden = () => {\n this.searchBarEl.removeEventListener(\n 'transitionend',\n this.onSearchBarHidden\n );\n this.searchBarEl.style.display = 'none';\n this.searchBarShown = false;\n };\n\n // Algolia search\n\n private autocompleteSnippet(hit: AlgoliaResultHit) {\n let lookFor = ['title']; // , 'body'\n if (hit._snippetResult) {\n let found = lookFor.find(\n (prop) =>\n hit._snippetResult[prop] &&\n hit._snippetResult[prop].matchLevel !== 'none'\n );\n\n if (found) {\n if (found !== 'title')\n return (\n (hit.title.length > 15\n ? hit.title.substring(0, 15) + ' ...'\n : hit.title) +\n ' ' +\n hit._snippetResult[found].value\n );\n else return hit._snippetResult['title'].value;\n }\n }\n return hit.title;\n }\n\n private onSearchInput = (ev: CustomEvent<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 let queries = this.internalSearchIndeces.map((index) => {\n return {\n indexName: index.index,\n query: this.searchValInternal,\n facets: index.filters,\n hitsPerPage: 10,\n filters: 'created > ' + Math.floor((Date.now() - 63115200000) / 1000), // only get last 2 years\n };\n });\n\n try {\n this.algoliaSearchResults = this.processSearchResults(\n (await this.algoliaClient.multipleQueries(queries)) as any\n ) as AlgoliaMultiResults;\n } catch (e) {\n this.nanoSearchError.emit(e as AlgoliaNetworkError);\n }\n this.searchLoading = false;\n if (!this.algoliaSearchResults) return;\n\n this.algoliaSearchResults.results.map((result, i) => {\n result.indexName = this.internalSearchIndeces[i].name;\n result.selected =\n this.currentIndex.name === this.internalSearchIndeces[i].name;\n result.domain = this.currentIndex.domain || null;\n result.domains = this.myAccData.domains || null;\n result.allGroup = !!this.internalSearchIndeces[i].allGroup;\n result.filters = this.internalSearchIndeces[i].filters;\n });\n\n if (emit) {\n this.nanoSearchResult.emit({\n results: this.algoliaSearchResults.results,\n client: { apiKey: this.searchApiKey, appId: this.searchAppId },\n });\n this.showAutocomplete = false;\n }\n return this.algoliaSearchResults;\n };\n\n private onSearchIndexChange = async (\n index: CustomEvent<SelectChangeEventDetail> | string\n ) => {\n let ev = index as CustomEvent<SelectChangeEventDetail>;\n let indexStr = index as string;\n\n if (!this.currentIndex) this.currentSelectedIndex();\n\n if (ev.detail && ev.detail.value.length)\n indexStr = ev.detail.value as string;\n if (!indexStr || !indexStr.length) return;\n if (this.currentIndex.index === indexStr) return;\n\n let selectedIndex = this.internalSearchIndeces.find(\n (index) => index.index === indexStr\n );\n if (!selectedIndex || !selectedIndex.alogliaIndex) return;\n\n this.searchIndex = selectedIndex.index;\n if (this.isSearchValSet()) await this.onSearchChange();\n };\n\n private isSearchValSet() {\n if (this.searchValInternal.length < 3) return false;\n return true;\n }\n\n private switchIndexSubmit = async (index: string) => {\n if (this.isSearchValSet()) {\n await this.onSearchIndexChange(index);\n this.onSearchSubmit();\n } else this.onSearchIndexChange(index);\n };\n\n // Autocomplete\n\n @Watch('showAutocomplete')\n resetHitFocus() {\n this.currAIndex = -1;\n }\n\n private onAutocompleteBlur = (ev: MouseEvent) => {\n if (!this.showAutocomplete || !this.autocompleteResults) return;\n if (ev && ev.target && (ev.target as HTMLElement).closest('.search-widget'))\n return;\n this.showAutocomplete = false;\n };\n\n private showAutocompleteResults = () => {\n if (!this.autocompleteResults || !this.autocompleteResults.hits) return;\n this.showAutocomplete = true;\n };\n\n private setActiveElement(\n autocompleteEle: HTMLAnchorElement | HTMLButtonElement\n ) {\n this.autocompleteEles.map((ele) =>\n ele.setAttribute('aria-selected', 'false')\n );\n autocompleteEle.focus({ preventScroll: true });\n autocompleteEle.setAttribute('aria-selected', 'true');\n }\n\n private onAutocompleteInteract = (ev: KeyboardEvent) => {\n // list open, navigate items with arrows\n if (!this.showAutocomplete || !this.autocompleteResults) return;\n let testIndex = this.currAIndex;\n\n switch (ev.key) {\n case 'Tab':\n setTimeout(() => {\n if (\n !this.el.shadowRoot.activeElement ||\n !this.el.shadowRoot.activeElement.closest('.search-widget')\n ) {\n this.showAutocomplete = false;\n return;\n } else {\n let found = this.autocompleteEles.find((ele, i) => {\n if (ele === this.el.shadowRoot.activeElement) {\n this.currAIndex = i;\n return true;\n }\n });\n if (found) this.setActiveElement(found);\n else this.currAIndex = -1;\n }\n });\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n if (ev.key === 'ArrowDown') testIndex++;\n else if (ev.key === 'ArrowUp') testIndex--;\n\n let found = this.autocompleteEles[testIndex];\n if (\n found ||\n testIndex < 0 ||\n testIndex > this.autocompleteEles.length - 1\n )\n ev.preventDefault();\n this.searchInput.clientWidth; // force reflow\n\n if (found) {\n this.setActiveElement(found);\n this.currAIndex = testIndex;\n } else if (testIndex < 0) {\n this.searchInput.setFocus();\n this.currAIndex = -1;\n }\n break;\n case 'Enter':\n case ' ':\n if (this.autocompleteEles[this.currAIndex]) {\n this.autocompleteEles[this.currAIndex].click();\n }\n break;\n }\n };\n\n // Various.\n\n /**\n * Assesses what content is present in which slots\n */\n private assessSlottedContent() {\n readTask(() => {\n this.hasSiteSlot = !!this.el.querySelectorAll('[slot=\"site\"]').length;\n this.hasLoggedinSlot =\n !!this.el.querySelectorAll('[slot=\"loggedin\"]').length;\n this.hasPromotionSlot =\n !!this.el.querySelectorAll('[slot=\"promotion\"]').length;\n\n this.aboutSlotLen = this.el.querySelectorAll('[slot=\"about\"]').length;\n this.iconSlotLen = this.el.querySelectorAll('[slot=\"icon\"]').length;\n this.mainSlotLen = this.el.querySelectorAll('[slot=\"main\"]').length;\n this.overflowSlotLen =\n this.el.querySelectorAll('[slot=\"overflow\"]').length;\n this.searchSlotLen = this.el.querySelectorAll('[slot=\"search\"]').length;\n });\n }\n\n /**\n * Attach the IntersectionObserver - from which all threshold / breakpoint logic hinges\n */\n private attachIO() {\n if (this.io) return;\n let root = this.el.shadowRoot.querySelector('.global-nav .main-bar');\n if (\n Build.isBrowser &&\n typeof window !== 'undefined' &&\n (window as any).IntersectionObserver &&\n !!root\n ) {\n const io = (this.io = new (window as any).IntersectionObserver(\n (data: IntersectionObserverEntry[]) => {\n this.intersectRatio = data.slice(-1)[0].intersectionRatio;\n },\n { root, threshold: 1 }\n ));\n io.observe(root.querySelector('.measure-ele'));\n }\n }\n\n // Stencil Lifecycle / Rendering\n\n componentDidLoad() {\n if (Build.isBrowser) {\n this.debounceResize = debounce(this.onWindowResize.bind(this), 300);\n\n window.addEventListener('resize', this.debounceResize);\n this.currSize = window.innerWidth;\n }\n\n this.initAlgoliaClient();\n this.addAlgoliaIndeces();\n if (this.remoteDataReady) this.attachIO();\n }\n\n componentWillLoad() {\n ComponentStore.init(\n this,\n ['searchIndex', 'searchValue'],\n 'url-hash',\n 'gns'\n );\n\n if (\n Build.isBrowser &&\n typeof window !== 'undefined' &&\n (window as any).MutationObserver\n ) {\n const mo = (this.mo = new MutationObserver(() => {\n this.assessSlottedContent();\n }));\n mo.observe(this.el, { childList: true, subtree: false });\n }\n this.assessSlottedContent();\n }\n\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n if (this.mo) {\n this.mo.disconnect();\n this.mo = undefined;\n }\n if (Build.isBrowser)\n window.removeEventListener('resize', this.debounceResize);\n }\n\n async connectedCallback() {\n this.getMyAccData();\n }\n\n // Render output\n\n private autocompleteList(): VNode {\n let content;\n if (this.showAutocomplete && this.scrollingUp) {\n let currentScopeHits = 0;\n let scopeChangeSuggestions = 0;\n\n let scopeSuggestReducer = (total: number, result: AlgoliaMultiResult) => {\n return result.index !== this.currentIndex.index\n ? total + result.hits.length\n : total;\n };\n let currentSuggestReducer = (\n total: number,\n result: AlgoliaMultiResult\n ) => {\n return result.index === this.currentIndex.index\n ? total + result.hits.length\n : total;\n };\n\n if (this.scopeSearch) {\n scopeChangeSuggestions = this.scopeSearch.results.reduce(\n scopeSuggestReducer,\n 0\n );\n currentScopeHits = this.scopeSearch.results.reduce(\n currentSuggestReducer,\n 0\n );\n }\n\n if (\n (this.autocompleteResults && this.autocompleteResults.hits.length) ||\n (scopeChangeSuggestions && !currentScopeHits)\n ) {\n let scopeSuggestions = 0;\n\n content = (\n <div>\n {!currentScopeHits && (\n <div class=\"search-autocomplete-hit search-autocomplete-hit--no-result\">\n No results matching '{this.searchValInternal}' were found in{' '}\n <strong>{this.currentIndex.name}</strong>. Try another phrase.\n </div>\n )}\n {this.autocompleteResults && [\n this.autocompleteResults.hits.map((hit, i) => {\n return (\n <a\n role=\"option\"\n ref={(a) => this.autocompleteEles.push(a)}\n tabindex=\"-1\"\n id={'autocomplete-hit-' + i}\n href={hit.url}\n class=\"search-autocomplete-hit\"\n innerHTML={this.autocompleteSnippet(hit)}\n ></a>\n );\n }),\n ]}\n {(!currentScopeHits || this.currentIndex.allGroup) &&\n this.scopeSearch &&\n this.scopeSearch.results && [\n this.scopeSearch.results.map((result, i) => {\n if (\n !result.hits.length ||\n result.index === this.currentIndex.index ||\n scopeSuggestions > 1\n )\n return;\n scopeSuggestions++;\n return (\n <button\n role=\"option\"\n ref={(button) => this.autocompleteEles.push(button)}\n tabindex=\"-1\"\n id={'autocomplete-scope-' + i}\n class=\"search-autocomplete-hit\"\n onClick={() => this.switchIndexSubmit(result.index)}\n onMouseDown={() => this.switchIndexSubmit(result.index)}\n >\n \"{this.searchValInternal}\"{' '}\n <div class=\"search-autocomplete-hit-scope\">\n in {result.indexName}\n </div>\n </button>\n );\n }),\n ]}\n {!!currentScopeHits && (\n <div class=\"search-autocomplete-foot\">\n <button\n role=\"option\"\n class=\"search-autocomplete-submit\"\n ref={(button) => this.autocompleteEles.push(button)}\n id={'autocomplete-foot'}\n onClick={this.onSearchSubmit}\n onMouseDown={this.onSearchSubmit}\n >\n View all results\n </button>\n </div>\n )}\n </div>\n );\n } else if (!currentScopeHits) {\n content = (\n <div class=\"search-autocomplete-hit search-autocomplete-hit--no-result\">\n No results matching '{this.searchValInternal}' were found. Try\n another phrase.\n </div>\n );\n }\n }\n\n return (\n <div\n class=\"search-autocomplete\"\n role=\"listbox\"\n id=\"autocomplete-results\"\n aria-expanded={this.showAutocomplete ? 'true' : 'false'}\n hidden={!this.showAutocomplete}\n 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-icon\n name=\"solid/caret-down\"\n class=\"down-arrow\"\n slot=\"down-arrow\"\n ></nano-icon>\n </nano-select>\n <nano-input\n class=\"search-input\"\n label=\"What would you like to search for?\"\n aria-label=\"What would you like to search for?\"\n hideLabel={true}\n showInlineError={false}\n clear-input\n placeholder=\"Search...\"\n type=\"text\"\n ref={(input) => (this.searchInput = input)}\n onNanoChange={this.onSearchChange}\n onNanoInput={this.onSearchInput}\n 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 let isRtl = (this.el.ownerDocument as Document).dir === 'rtl';\n\n let searchWidget = this.searchWidget();\n searchWidget.push(this.autocompleteList());\n\n return (\n <Host\n class={{\n [this.thresholdClasses().join(' ')]: true,\n ready: this.ready,\n 'search-bar-shown': this.searchBarShown && this.scrollingUp,\n 'search-auto-complete-shown':\n this.showAutocomplete && this.scrollingUp,\n 'modal-open': this.modalIsOpen,\n resizing: this.isResizing,\n }}\n dir={isRtl ? 'rtl' : null}\n >\n <div\n class={{\n 'global-nav': true,\n 'scrolling-down': !this.scrollingUp,\n }}\n >\n <nav\n id=\"global-nav-menu\"\n class={{\n '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 < THRESHOLDLIMIT - 3 && (\n <nano-icon\n name=\"light/times\"\n aria-label=\"close menu\"\n ></nano-icon>\n )}\n {this.threshold >= THRESHOLDLIMIT - 3 && (\n <nano-icon\n name=\"light/bars\"\n aria-label=\"close menu\"\n ></nano-icon>\n )}\n </button>\n\n {this.threshold < THRESHOLDLIMIT - 4 && [\n !!this.iconSlotLen && <slot name=\"icon\" />,\n this.myAccData &&\n (!this.activeMyAccountSections ||\n this.activeMyAccountSections.includes('icons')) && [\n this.msgUrl && (\n <a href={this.msgUrl} class=\"icon-btn\">\n <nano-icon name=\"light/bell\"></nano-icon>\n {this.msgCount > 0 && (\n <span class=\"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 < THRESHOLDLIMIT - 2 &&\n !!this.mainSlotLen && <slot name=\"main\" />}\n </nav>\n\n {(((!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold < THRESHOLDLIMIT) ||\n this.hasSiteSlot ||\n !!this.siteNavItms.length) && (\n <div>\n {(!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold < THRESHOLDLIMIT && [\n (this.threshold >= THRESHOLDLIMIT - 2 ||\n this.mainSlotLen < 2) &&\n this.overflowSlotLen < 2 && (\n <div class=\"nav-links-wrap\">\n {!!this.aboutNavItms.length && (\n <h4 class=\"nav-links_title\">About</h4>\n )}\n <nav\n class=\"nav-links nav-links--sub\"\n aria-label=\"About the company links\"\n >\n <slot name=\"about\" />\n\n {this.aboutNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={link.address}\n target={link.target}\n >\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n </nav>\n </div>\n ),\n ((this.threshold < THRESHOLDLIMIT - 2 &&\n this.mainSlotLen >= 2) ||\n this.overflowSlotLen >= 2) && (\n <nav\n class=\"nav-links\"\n aria-label=\"About the company links\"\n >\n {!this.aboutNavItms.length && (\n <slot name=\"about\" />\n )}\n {!!this.aboutNavItms.length && (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n Company\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-right\"\n ></nano-icon>\n <div slot=\"secondary\">\n <div class=\"content\">\n <button\n class=\"back-btn\"\n onClick={this.subMenuClose}\n >\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-left\"\n aria-label=\"go back\"\n ></nano-icon>\n Company\n </button>\n <slot name=\"about\" />\n <div class=\"content--sub\">\n {this.aboutNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={link.address}\n target={link.target}\n >\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n </div>\n </div>\n </div>\n </nano-nav-item>\n )}\n </nav>\n ),\n ]}\n\n {(this.hasSiteSlot || !!this.siteNavItms.length) && [\n (this.threshold >= THRESHOLDLIMIT - 2 ||\n this.mainSlotLen < 2) &&\n this.overflowSlotLen < 2 && (\n <div class=\"nav-links-wrap\">\n <h4 class=\"nav-links_title\">Sites</h4>\n <nav\n class=\"nav-links nav-links--sub\"\n aria-label=\"Different company site links\"\n >\n <slot name=\"site\" />\n {this.siteNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={link.address}\n target={link.target}\n >\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n </nav>\n </div>\n ),\n ((this.threshold < THRESHOLDLIMIT - 2 &&\n this.mainSlotLen >= 2) ||\n this.overflowSlotLen >= 2) && (\n <nav\n class=\"nav-links\"\n aria-label=\"Different company site links\"\n >\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n Sites\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-right\"\n ></nano-icon>\n <div slot=\"secondary\">\n <div class=\"content\">\n <button\n class=\"back-btn\"\n onClick={this.subMenuClose}\n >\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-left\"\n aria-label=\"go back\"\n ></nano-icon>\n Sites\n </button>\n <div class=\"content--sub\">\n <slot name=\"site\" />\n {this.siteNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={link.address}\n target={link.target}\n >\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n </div>\n </div>\n </div>\n </nano-nav-item>\n </nav>\n ),\n ]}\n </div>\n )}\n </div>\n\n {this.isLoggedIn &&\n this.threshold < THRESHOLDLIMIT - 3 &&\n (this.loggedInNavItms.length || this.hasLoggedinSlot) && (\n <nav class=\"nav-links\" aria-label=\"Your user account links\">\n <nano-nav-item class=\"nano-global-nav user-nav nano-global-nav-menu\">\n {this.myAccountUser.name}\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-right\"\n ></nano-icon>\n <div slot=\"secondary\">\n <div class=\"content\">\n <button\n class=\"back-btn\"\n onClick={this.subMenuClose}\n >\n <nano-icon\n slot=\"icon-end\"\n name=\"solid/chevron-left\"\n aria-label=\"go back\"\n ></nano-icon>\n {this.myAccountUser.name}\n </button>\n <div class=\"content--sub\">\n <slot name=\"loggedin\" />\n {this.loggedInNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a href={link.address} target={link.target}>\n {link.title}\n </a>\n </nano-nav-item>\n );\n })}\n <nano-nav-item class=\"nano-global-nav nano-global-nav-menu\">\n <a\n href={\n this.myAccData.urls.forgot_password +\n this.ssoRedirect\n }\n >\n Change Password\n </a>\n </nano-nav-item>\n </div>\n </div>\n </div>\n </nano-nav-item>\n </nav>\n )}\n\n <slot name=\"promotion\" />\n\n {this.myAccData && this.myAccData.urls.logout && (\n <div class=\"login-btn logout-btn\">\n <a href={this.myAccData.urls.logout + this.ssoRedirect}>\n Logout\n </a>\n </div>\n )}\n </div>\n </div>\n </nav>\n <nano-sticker\n auto-resize=\"false\"\n break-point-max=\"800\"\n quietMode={{ h: 600, w: 800 }}\n >\n <div class=\"bars\" ref={(div) => (this.barsDiv = div)}>\n <nav\n class=\"main-bar\"\n aria-label=\"Main site navigation\"\n tabindex=\"-1\"\n ref={(div) => (this.mainBarDiv = div)}\n >\n {(this.hasPromotionSlot ||\n !!this.overflowSlotLen ||\n ((this.myAccData || !!this.iconSlotLen) &&\n this.threshold < THRESHOLDLIMIT - 4) ||\n (this.isLoggedIn &&\n (!!this.loggedInNavItms.length || this.hasLoggedinSlot) &&\n this.threshold < THRESHOLDLIMIT - 3) ||\n (!!this.mainSlotLen && this.threshold < THRESHOLDLIMIT - 2) ||\n ((!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold < THRESHOLDLIMIT) ||\n this.hasSiteSlot ||\n !!this.siteNavItms.length) && (\n <button\n class=\"menu-btn icon-btn\"\n onMouseDown={this.menuOpen}\n onKeyDown={this.onMenuBtnKeyDown}\n aria-expanded={this.modalOpen ? 'true' : 'false'}\n aria-controls=\"global-nav-menu\"\n ref={(btn) => (this.menuBtn = btn)}\n >\n <nano-icon\n name=\"light/bars\"\n aria-label=\"open menu\"\n ></nano-icon>\n </button>\n )}\n\n {this.showLogo && (\n <a href={this.logoUrl} class=\"logo-link\">\n <img\n src={getAssetPath(`./assets/ont-logo.svg`)}\n alt=\"Oxford Nanopore Technologies Logo\"\n class=\"logo\"\n />\n </a>\n )}\n {!this.showLogo && (\n <div class=\"logo-link\">\n <slot name=\"logo\" />\n </div>\n )}\n\n <div\n class=\"nav-links nav-links--main\"\n // hidden={\n // !(\n // this.threshold >= THRESHOLDLIMIT - 2 && !!this.mainSlotLen\n // )\n // }\n >\n <slot name=\"main\" />\n </div>\n\n {this.threshold >= THRESHOLDLIMIT - 1 && [\n this.showSearch && !!this.internalSearchIndeces.length && (\n <div\n class=\"search-widget\"\n role=\"combobox\"\n aria-owns=\"autocomplete-results\"\n aria-expanded={\n this.showAutocomplete && this.autocompleteResults\n ? 'true'\n : 'false'\n }\n >\n {searchWidget}\n </div>\n ),\n (!this.showSearch || !this.myAccData) &&\n !!this.searchSlotLen && <slot name=\"search\" />,\n ]}\n\n {(this.threshold >= THRESHOLDLIMIT - 1 ||\n !this.showSearch ||\n !this.internalSearchIndeces.length) && (\n <nav\n class=\"nav-links nav-links--sub\"\n aria-label=\"About the company links\"\n >\n {(!!this.aboutSlotLen || !!this.aboutNavItms.length) &&\n this.threshold === THRESHOLDLIMIT && [\n <slot name=\"about\" />,\n this.aboutNavItms.map((link) => {\n return (\n <nano-nav-item class=\"nano-global-nav nano-global-nav-bar\">\n <a href={link.address} target={link.target}>\n {link.title}\n </a>\n </nano-nav-item>\n );\n }),\n ]}\n </nav>\n )}\n\n {this.threshold < THRESHOLDLIMIT - 1 &&\n ((this.showSearch && !!this.internalSearchIndeces.length) ||\n !!this.searchSlotLen) && (\n <button\n class=\"icon-btn\"\n aria-controls=\"global-nav-search-bar\"\n aria-expanded={this.searchBarShown ? 'true' : 'false'}\n onMouseDown={this.onSearchBtnClick}\n onKeyDown={this.onSearchBtnKeyDown}\n >\n <nano-icon name=\"light/search\"></nano-icon>\n </button>\n )}\n\n {this.threshold >= THRESHOLDLIMIT - 4 && [\n !!this.iconSlotLen && <slot name=\"icon\" />,\n this.myAccData &&\n (!this.activeMyAccountSections ||\n this.activeMyAccountSections.includes('icons')) && [\n this.msgUrl && (\n <a href={this.msgUrl} class=\"icon-btn\">\n <nano-icon name=\"light/bell\"></nano-icon>\n {this.msgCount > 0 && (\n <span class=\"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 &&\n this.threshold >= THRESHOLDLIMIT - 3 && [\n this.myAccData.urls.login && (\n <a\n href={this.myAccData.urls.login + this.ssoRedirect}\n class=\"login-btn\"\n >\n Login / Register\n </a>\n ),\n this.myAccountUser && (\n <div class=\"user-links\">\n <button\n class={{\n 'icon-btn': true,\n 'user-links-btn': true,\n open: this.userMenuOpen,\n }}\n onMouseDown={this.onUserBtnClick}\n onKeyDown={this.onUserBtnKeyDown}\n >\n {' '}\n {this.myAccountUser.name}\n <nano-icon name=\"solid/caret-down\"></nano-icon>\n </button>\n <div\n class=\"user-links-panel\"\n tabindex=\"-1\"\n ref={(div) => (this.userLinkPanel = div)}\n >\n <div class=\"user-links-panel-content\">\n {this.loggedInNavItms.map((link) => {\n return (\n <a href={link.address} target={link.target}>\n {link.title}\n </a>\n );\n })}\n </div>\n <div class=\"user-links-panel-foot\">\n <a\n href={\n this.myAccData.urls.forgot_password +\n this.ssoRedirect\n }\n >\n Change Password\n </a>\n <a\n href={\n this.myAccData.urls.logout + this.ssoRedirect\n }\n >\n Logout\n </a>\n </div>\n </div>\n </div>\n ),\n ]}\n <span class=\"measure-ele\"></span>\n </nav>\n\n {this.threshold < THRESHOLDLIMIT - 1 && (\n <div\n id=\"global-nav-search-bar\"\n class={{\n 'search-bar': true,\n show: this.searchBarShown,\n }}\n aria-expanded={this.searchBarShown ? 'true' : 'false'}\n role=\"region\"\n tabindex=\"-1\"\n ref={(div) => (this.searchBarEl = div)}\n >\n <div class=\"search-widget\">\n {this.showSearch && !!this.internalSearchIndeces.length && (\n <div>{searchWidget}</div>\n )}\n {(!this.showSearch || !this.myAccData) &&\n !!this.searchSlotLen && <slot name=\"search\" />}\n </div>\n </div>\n )}\n </div>\n </nano-sticker>\n\n {(this.threshold < THRESHOLDLIMIT - 3 || this.menuFullScreen) && (\n <div\n class={{\n mask: true,\n open: this.modalOpen,\n }}\n onClick={this.menuClose}\n onTouchEnd={this.menuClose}\n ></div>\n )}\n </div>\n <div class=\"site-content\" ref={(div) => (this.siteContent = div)}>\n <slot />\n </div>\n </Host>\n );\n }\n\n // Data processing\n\n private domainFor(origin: string): string {\n if (!this.myAccData) return '';\n let domain = this.myAccData.domains.find((dm) => dm.origin === origin);\n return domain ? domain.domain : '';\n }\n\n private processSearchResults(results: AlgoliaMultiResults | AlgoliaResults) {\n let multiResults = results as AlgoliaMultiResults;\n let singleResult = results as AlgoliaResults;\n\n if (multiResults.results) {\n multiResults.results.forEach((result, i) => {\n multiResults.results[i] = this.processSearchResults(\n result\n ) as AlgoliaResults;\n });\n return multiResults;\n } else {\n singleResult.hits.map((hit) => {\n if (hit.url && !hit.url.match(/^http/))\n hit.url =\n location.protocol + '//' + this.domainFor(hit.origin) + hit.url;\n });\n return singleResult;\n }\n }\n\n private async getMyAccData() {\n if (!this.getMyAccountData || this.myAccData) {\n this.remoteDataReady = true;\n return;\n }\n\n let url;\n switch (this.env) {\n case 'dev':\n url = 'https://myaccount-dev.nanoporetech.com/';\n break;\n case 'test':\n url = 'https://myaccount-test.nanoporetech.com/';\n break;\n default:\n url = 'https://myaccount.nanoporetech.com/';\n break;\n }\n\n var config = { timeout: 5000 };\n\n try {\n 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 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"]}
|