@nanoporetech-digital/components 9.0.1 → 9.1.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/dist/cjs/{algolia-data-YqTcrA7B.js → algolia-data-BEfDDPWP.js} +1 -1
- package/dist/cjs/{component-store-BsFgDzFM.js → component-store-DFsNILxg.js} +1 -1
- package/dist/cjs/{constructible-style-D0zEjr9J.js → constructible-style-CRdAciHm.js} +1 -1
- package/dist/cjs/{dom-GglTcT7o.js → dom-CIEcUG2R.js} +1 -1
- package/dist/cjs/{fade-CDGKmRbB.js → fade-Cng4p1KQ.js} +3 -3
- package/dist/cjs/{form-control-DKTdW_gr.js → form-control-DdnBRckY.js} +1 -1
- package/dist/cjs/{fullscreen-BmuHM8Mq.js → fullscreen-BYNt89kR.js} +3 -3
- package/dist/cjs/{index-ap26V5bu.js → index-C7Ikbhe3.js} +13 -5
- package/dist/cjs/{index-CeVPSufd.js → index-gxQOxlH_.js} +1 -1
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/{lazyload-CBgO3EAI.js → lazyload-CLpLl1ob.js} +3 -3
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{modal-CjPWcL9B.js → modal-DWvvpfeI.js} +1 -1
- package/dist/cjs/nano-accordion.cjs.entry.js +3 -3
- package/dist/cjs/nano-alert.cjs.entry.js +7 -7
- package/dist/cjs/nano-algolia-filter.cjs.entry.js +4 -4
- package/dist/cjs/nano-algolia-pagination.cjs.entry.js +2 -2
- package/dist/cjs/nano-algolia-results.cjs.entry.js +3 -3
- package/dist/cjs/nano-algolia.cjs.entry.js +5 -5
- package/dist/cjs/nano-animation.cjs.entry.js +2 -2
- package/dist/cjs/nano-avatar_5.cjs.entry.js +9 -9
- package/dist/cjs/nano-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/nano-card-carousel.cjs.entry.js +2 -2
- package/dist/cjs/nano-card.cjs.entry.js +1 -1
- package/dist/cjs/nano-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/nano-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/nano-collapsible-comparison.cjs.entry.js +2 -2
- package/dist/cjs/nano-components.cjs.js +2 -2
- package/dist/cjs/nano-content-links.cjs.entry.js +1 -1
- package/dist/cjs/nano-cta.cjs.entry.js +1 -1
- package/dist/cjs/{nano-data-table-B3KUstGL.js → nano-data-table-DRp3MvIh.js} +5 -5
- package/dist/cjs/nano-data-table.cjs.entry.js +6 -6
- package/dist/cjs/nano-datalist_3.cjs.entry.js +3 -3
- package/dist/cjs/nano-date-input.cjs.entry.js +2 -2
- package/dist/cjs/nano-date-picker_2.cjs.entry.js +4 -4
- package/dist/cjs/nano-details.cjs.entry.js +3 -3
- package/dist/cjs/nano-dialog.cjs.entry.js +8 -8
- package/dist/cjs/nano-dropdown_2.cjs.entry.js +5 -5
- package/dist/cjs/nano-feature-box.cjs.entry.js +1 -1
- package/dist/cjs/nano-field-validator.cjs.entry.js +3 -3
- package/dist/cjs/nano-file-upload.cjs.entry.js +2 -2
- package/dist/cjs/nano-footer.cjs.entry.js +1 -1
- package/dist/cjs/nano-global-nav.cjs.entry.js +29 -14
- package/dist/cjs/nano-grid-item.cjs.entry.js +1 -1
- package/dist/cjs/nano-grid_2.cjs.entry.js +3 -3
- package/dist/cjs/nano-hero.cjs.entry.js +2 -2
- package/dist/cjs/nano-icon-button_2.cjs.entry.js +2 -2
- package/dist/cjs/nano-icon-item.cjs.entry.js +1 -1
- package/dist/cjs/nano-icon.cjs.entry.js +2 -2
- package/dist/cjs/nano-in-page-nav.cjs.entry.js +5 -5
- package/dist/cjs/nano-increment.cjs.entry.js +2 -2
- package/dist/cjs/nano-input-otp.cjs.entry.js +2 -2
- package/dist/cjs/nano-intersection-observe.cjs.entry.js +4 -4
- package/dist/cjs/nano-masked-overflow.cjs.entry.js +4 -4
- package/dist/cjs/nano-mdd-item.cjs.entry.js +37 -0
- package/dist/cjs/nano-mdd.cjs.entry.js +57 -0
- package/dist/cjs/nano-menu-drawer.cjs.entry.js +4 -4
- package/dist/cjs/nano-more-less.cjs.entry.js +2 -2
- package/dist/cjs/nano-nav-item.cjs.entry.js +130 -94
- package/dist/cjs/nano-option-box.cjs.entry.js +1 -1
- package/dist/cjs/nano-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/nano-range.cjs.entry.js +2 -2
- package/dist/cjs/nano-rating.cjs.entry.js +2 -2
- package/dist/cjs/nano-resize-observe.cjs.entry.js +2 -2
- package/dist/cjs/nano-search-result.cjs.entry.js +1 -1
- package/dist/cjs/nano-slide.cjs.entry.js +2 -2
- package/dist/cjs/{nano-slides-BONrNv9H.js → nano-slides-QbssxNUC.js} +5 -5
- package/dist/cjs/nano-slides.cjs.entry.js +3 -3
- package/dist/cjs/nano-sortable.cjs.entry.js +2 -2
- package/dist/cjs/nano-spinner.cjs.entry.js +1 -1
- package/dist/cjs/nano-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/nano-step-accordion.cjs.entry.js +2 -2
- package/dist/cjs/nano-step-breadcrumb.cjs.entry.js +3 -3
- package/dist/cjs/nano-sticker.cjs.entry.js +4 -4
- package/dist/cjs/nano-tab-content.cjs.entry.js +2 -2
- package/dist/cjs/nano-tab-group.cjs.entry.js +4 -4
- package/dist/cjs/nano-tab.cjs.entry.js +2 -2
- package/dist/cjs/nano-table.cjs.entry.js +2 -2
- package/dist/cjs/{renderer-D1xFLJsH.js → renderer-bX7EsIYR.js} +1 -1
- package/dist/cjs/{scroll-C2cNPPnK.js → scroll-DC2gHZby.js} +1 -1
- package/dist/cjs/{slot-D0YPdT3s.js → slot-BRAzxuj_.js} +1 -1
- package/dist/cjs/{tabbable-D60VZB1O.js → tabbable-BXxsn02Z.js} +1 -1
- package/dist/cjs/{table.worker-ClLnKNqW.js → table.worker-CZYVrH2c.js} +6 -6
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/global-nav/global-nav.js +27 -12
- package/dist/collection/components/mdd/mdd-item.css +144 -0
- package/dist/collection/components/mdd/mdd-item.js +97 -0
- package/dist/collection/components/mdd/mdd.css +55 -0
- package/dist/collection/components/mdd/mdd.js +101 -0
- package/dist/collection/components/nav-item/nav-item.js +148 -18
- package/dist/components/nano-global-nav.js +27 -12
- package/dist/components/nano-mdd-item.d.ts +11 -0
- package/dist/components/nano-mdd-item.js +69 -0
- package/dist/components/nano-mdd.d.ts +11 -0
- package/dist/components/nano-mdd.js +76 -0
- package/dist/components/nav-item.js +127 -89
- package/dist/esm/{algolia-data-CrdfzSCx.js → algolia-data-D4SY17hw.js} +1 -1
- package/dist/esm/{component-store-Dwo45Eol.js → component-store-DCcnMDT0.js} +1 -1
- package/dist/esm/{constructible-style-8ZZJwMaU.js → constructible-style-BKXXXS9X.js} +1 -1
- package/dist/esm/{dom-QEz8hlsO.js → dom-DiLhOqyz.js} +1 -1
- package/dist/esm/{fade-7nCfOc5y.js → fade-CnvBzIGD.js} +3 -3
- package/dist/esm/{form-control-8eh0RGNw.js → form-control-DYfvQbOQ.js} +1 -1
- package/dist/esm/{fullscreen-h77Lkspo.js → fullscreen-BqihOK-Y.js} +3 -3
- package/dist/esm/{index-CuC61-2g.js → index-BSptZcXI.js} +1 -1
- package/dist/esm/{index-vpnVjPKQ.js → index-RXFO3HxS.js} +13 -5
- package/dist/esm/index.js +4 -4
- package/dist/esm/{lazyload-CGR82usu.js → lazyload-ClpqVun1.js} +3 -3
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{modal-Dk_TZDiu.js → modal-DFUZVWqg.js} +1 -1
- package/dist/esm/nano-accordion.entry.js +3 -3
- package/dist/esm/nano-alert.entry.js +7 -7
- package/dist/esm/nano-algolia-filter.entry.js +4 -4
- package/dist/esm/nano-algolia-pagination.entry.js +2 -2
- package/dist/esm/nano-algolia-results.entry.js +3 -3
- package/dist/esm/nano-algolia.entry.js +5 -5
- package/dist/esm/nano-animation.entry.js +2 -2
- package/dist/esm/nano-avatar_5.entry.js +9 -9
- package/dist/esm/nano-breadcrumb.entry.js +1 -1
- package/dist/esm/nano-card-carousel.entry.js +2 -2
- package/dist/esm/nano-card.entry.js +1 -1
- package/dist/esm/nano-checkbox-group.entry.js +2 -2
- package/dist/esm/nano-checkbox.entry.js +2 -2
- package/dist/esm/nano-collapsible-comparison.entry.js +2 -2
- package/dist/esm/nano-components.js +3 -3
- package/dist/esm/nano-content-links.entry.js +1 -1
- package/dist/esm/nano-cta.entry.js +1 -1
- package/dist/esm/{nano-data-table-HQJQG0Sv.js → nano-data-table-HS1UHCwO.js} +5 -5
- package/dist/esm/nano-data-table.entry.js +6 -6
- package/dist/esm/nano-datalist_3.entry.js +3 -3
- package/dist/esm/nano-date-input.entry.js +2 -2
- package/dist/esm/nano-date-picker_2.entry.js +4 -4
- package/dist/esm/nano-details.entry.js +3 -3
- package/dist/esm/nano-dialog.entry.js +8 -8
- package/dist/esm/nano-dropdown_2.entry.js +5 -5
- package/dist/esm/nano-feature-box.entry.js +1 -1
- package/dist/esm/nano-field-validator.entry.js +3 -3
- package/dist/esm/nano-file-upload.entry.js +2 -2
- package/dist/esm/nano-footer.entry.js +1 -1
- package/dist/esm/nano-global-nav.entry.js +29 -14
- package/dist/esm/nano-grid-item.entry.js +1 -1
- package/dist/esm/nano-grid_2.entry.js +3 -3
- package/dist/esm/nano-hero.entry.js +2 -2
- package/dist/esm/nano-icon-button_2.entry.js +2 -2
- package/dist/esm/nano-icon-item.entry.js +1 -1
- package/dist/esm/nano-icon.entry.js +2 -2
- package/dist/esm/nano-in-page-nav.entry.js +5 -5
- package/dist/esm/nano-increment.entry.js +2 -2
- package/dist/esm/nano-input-otp.entry.js +2 -2
- package/dist/esm/nano-intersection-observe.entry.js +4 -4
- package/dist/esm/nano-masked-overflow.entry.js +4 -4
- package/dist/esm/nano-mdd-item.entry.js +35 -0
- package/dist/esm/nano-mdd.entry.js +55 -0
- package/dist/esm/nano-menu-drawer.entry.js +4 -4
- package/dist/esm/nano-more-less.entry.js +2 -2
- package/dist/esm/nano-nav-item.entry.js +130 -94
- package/dist/esm/nano-option-box.entry.js +1 -1
- package/dist/esm/nano-progress-bar.entry.js +1 -1
- package/dist/esm/nano-range.entry.js +2 -2
- package/dist/esm/nano-rating.entry.js +2 -2
- package/dist/esm/nano-resize-observe.entry.js +2 -2
- package/dist/esm/nano-search-result.entry.js +1 -1
- package/dist/esm/nano-slide.entry.js +2 -2
- package/dist/esm/{nano-slides-CMFKg_gU.js → nano-slides-WDFCFgZL.js} +5 -5
- package/dist/esm/nano-slides.entry.js +3 -3
- package/dist/esm/nano-sortable.entry.js +2 -2
- package/dist/esm/nano-spinner.entry.js +1 -1
- package/dist/esm/nano-split-pane.entry.js +2 -2
- package/dist/esm/nano-step-accordion.entry.js +2 -2
- package/dist/esm/nano-step-breadcrumb.entry.js +3 -3
- package/dist/esm/nano-sticker.entry.js +4 -4
- package/dist/esm/nano-tab-content.entry.js +2 -2
- package/dist/esm/nano-tab-group.entry.js +4 -4
- package/dist/esm/nano-tab.entry.js +2 -2
- package/dist/esm/nano-table.entry.js +2 -2
- package/dist/esm/{renderer-CTaemqrs.js → renderer-B_wACs4w.js} +1 -1
- package/dist/esm/{scroll-Cpis33Lx.js → scroll-CFCUiakV.js} +1 -1
- package/dist/esm/{slot-wHS7-PXA.js → slot-Cj55s-OG.js} +1 -1
- package/dist/esm/{tabbable-CT4-pg7f.js → tabbable-Dwh0pD2q.js} +1 -1
- package/dist/esm/{table.worker--BAXV6ow.js → table.worker-Cg52OK_a.js} +6 -6
- package/dist/nano-components/{algolia-data-CrdfzSCx.js → algolia-data-D4SY17hw.js} +1 -1
- package/dist/nano-components/{component-store-Dwo45Eol.js → component-store-DCcnMDT0.js} +1 -1
- package/dist/nano-components/{constructible-style-8ZZJwMaU.js → constructible-style-BKXXXS9X.js} +1 -1
- package/dist/nano-components/dom-DiLhOqyz.js +4 -0
- package/dist/nano-components/{fade-7nCfOc5y.js → fade-CnvBzIGD.js} +1 -1
- package/dist/nano-components/{form-control-8eh0RGNw.js → form-control-DYfvQbOQ.js} +1 -1
- package/dist/nano-components/{fullscreen-h77Lkspo.js → fullscreen-BqihOK-Y.js} +1 -1
- package/dist/nano-components/index-BSptZcXI.js +4 -0
- package/dist/nano-components/index-RXFO3HxS.js +5 -0
- package/dist/nano-components/index.esm.js +1 -1
- package/dist/nano-components/{lazyload-CGR82usu.js → lazyload-ClpqVun1.js} +1 -1
- package/dist/nano-components/{modal-Dk_TZDiu.js → modal-DFUZVWqg.js} +1 -1
- package/dist/nano-components/nano-accordion.entry.js +1 -1
- package/dist/nano-components/nano-alert.entry.js +1 -1
- package/dist/nano-components/nano-algolia-filter.entry.js +1 -1
- package/dist/nano-components/nano-algolia-pagination.entry.js +1 -1
- package/dist/nano-components/nano-algolia-results.entry.js +1 -1
- package/dist/nano-components/nano-algolia.entry.js +1 -1
- package/dist/nano-components/nano-animation.entry.js +1 -1
- package/dist/nano-components/nano-avatar_5.entry.js +1 -1
- package/dist/nano-components/nano-breadcrumb.entry.js +1 -1
- package/dist/nano-components/nano-card-carousel.entry.js +1 -1
- package/dist/nano-components/nano-card.entry.js +1 -1
- package/dist/nano-components/nano-checkbox-group.entry.js +1 -1
- package/dist/nano-components/nano-checkbox.entry.js +1 -1
- package/dist/nano-components/nano-collapsible-comparison.entry.js +1 -1
- package/dist/nano-components/nano-components.css +30 -105
- package/dist/nano-components/nano-components.esm.js +1 -1
- package/dist/nano-components/nano-content-links.entry.js +1 -1
- package/dist/nano-components/nano-cta.entry.js +1 -1
- package/dist/nano-components/{nano-data-table-HQJQG0Sv.js → nano-data-table-HS1UHCwO.js} +1 -1
- package/dist/nano-components/nano-data-table.entry.js +1 -1
- package/dist/nano-components/nano-datalist_3.entry.js +1 -1
- package/dist/nano-components/nano-date-input.entry.js +1 -1
- package/dist/nano-components/nano-date-picker_2.entry.js +1 -1
- package/dist/nano-components/nano-details.entry.js +1 -1
- package/dist/nano-components/nano-dialog.entry.js +1 -1
- package/dist/nano-components/nano-dropdown_2.entry.js +1 -1
- package/dist/nano-components/nano-feature-box.entry.js +1 -1
- package/dist/nano-components/nano-field-validator.entry.js +1 -1
- package/dist/nano-components/nano-file-upload.entry.js +1 -1
- package/dist/nano-components/nano-footer.entry.js +1 -1
- package/dist/nano-components/nano-global-nav.entry.js +1 -1
- package/dist/nano-components/nano-grid-item.entry.js +1 -1
- package/dist/nano-components/nano-grid_2.entry.js +1 -1
- package/dist/nano-components/nano-hero.entry.js +1 -1
- package/dist/nano-components/nano-icon-button_2.entry.js +1 -1
- package/dist/nano-components/nano-icon-item.entry.js +1 -1
- package/dist/nano-components/nano-icon.entry.js +1 -1
- package/dist/nano-components/nano-in-page-nav.entry.js +1 -1
- package/dist/nano-components/nano-increment.entry.js +1 -1
- package/dist/nano-components/nano-input-otp.entry.js +1 -1
- package/dist/nano-components/nano-intersection-observe.entry.js +1 -1
- package/dist/nano-components/nano-masked-overflow.entry.js +1 -1
- package/dist/nano-components/nano-mdd-item.entry.js +4 -0
- package/dist/nano-components/nano-mdd.entry.js +4 -0
- package/dist/nano-components/nano-menu-drawer.entry.js +1 -1
- package/dist/nano-components/nano-more-less.entry.js +1 -1
- package/dist/nano-components/nano-nav-item.entry.js +1 -1
- package/dist/nano-components/nano-option-box.entry.js +1 -1
- package/dist/nano-components/nano-progress-bar.entry.js +1 -1
- package/dist/nano-components/nano-range.entry.js +1 -1
- package/dist/nano-components/nano-rating.entry.js +1 -1
- package/dist/nano-components/nano-resize-observe.entry.js +1 -1
- package/dist/nano-components/nano-search-result.entry.js +1 -1
- package/dist/nano-components/nano-slide.entry.js +1 -1
- package/dist/nano-components/{nano-slides-CMFKg_gU.js → nano-slides-WDFCFgZL.js} +4 -4
- package/dist/nano-components/nano-slides.entry.js +1 -1
- package/dist/nano-components/nano-sortable.entry.js +1 -1
- package/dist/nano-components/nano-spinner.entry.js +1 -1
- package/dist/nano-components/nano-split-pane.entry.js +1 -1
- package/dist/nano-components/nano-step-accordion.entry.js +1 -1
- package/dist/nano-components/nano-step-breadcrumb.entry.js +1 -1
- package/dist/nano-components/nano-sticker.entry.js +1 -1
- package/dist/nano-components/nano-tab-content.entry.js +1 -1
- package/dist/nano-components/nano-tab-group.entry.js +1 -1
- package/dist/nano-components/nano-tab.entry.js +1 -1
- package/dist/nano-components/nano-table.entry.js +1 -1
- package/dist/nano-components/{renderer-CTaemqrs.js → renderer-B_wACs4w.js} +1 -1
- package/dist/nano-components/{scroll-Cpis33Lx.js → scroll-CFCUiakV.js} +1 -1
- package/dist/nano-components/{slot-wHS7-PXA.js → slot-Cj55s-OG.js} +1 -1
- package/dist/nano-components/{tabbable-CT4-pg7f.js → tabbable-Dwh0pD2q.js} +1 -1
- package/dist/nano-components/{table.worker--BAXV6ow.js → table.worker-Cg52OK_a.js} +1 -1
- package/dist/style/components.css +1 -1
- package/dist/style/components.css.map +1 -1
- package/dist/style/nano.css +1 -1
- package/dist/style/nano.css.map +1 -1
- package/dist/types/components/global-nav/global-nav.d.ts +1 -0
- package/dist/types/components/mdd/mdd-item.d.ts +23 -0
- package/dist/types/components/mdd/mdd.d.ts +24 -0
- package/dist/types/components/nav-item/nav-item.d.ts +15 -0
- package/dist/types/components.d.ts +114 -0
- package/docs-json.json +238 -1
- package/docs-vscode.json +34 -0
- package/hydrate/index.js +275 -101
- package/hydrate/index.mjs +275 -101
- package/package.json +2 -2
- package/dist/nano-components/dom-QEz8hlsO.js +0 -4
- package/dist/nano-components/index-CuC61-2g.js +0 -4
- package/dist/nano-components/index-vpnVjPKQ.js +0 -5
package/hydrate/index.mjs
CHANGED
|
@@ -14892,6 +14892,20 @@ class GlobalNav {
|
|
|
14892
14892
|
this.shouldResize === false) {
|
|
14893
14893
|
this.overflowOpen = false;
|
|
14894
14894
|
}
|
|
14895
|
+
this.setNavItemHover();
|
|
14896
|
+
}
|
|
14897
|
+
setNavItemHover() {
|
|
14898
|
+
const isBarMenu = this.breakpoint <= this.bpPartials.mainMenu.breakpoint;
|
|
14899
|
+
this.host
|
|
14900
|
+
.querySelectorAll('nano-nav-item')
|
|
14901
|
+
.forEach((el) => {
|
|
14902
|
+
el.openOnHover = isBarMenu;
|
|
14903
|
+
});
|
|
14904
|
+
this.host
|
|
14905
|
+
.querySelectorAll('nano-mdd')
|
|
14906
|
+
.forEach((el) => {
|
|
14907
|
+
el.accordion = !isBarMenu;
|
|
14908
|
+
});
|
|
14895
14909
|
}
|
|
14896
14910
|
debounceResetResize = debounce$2(() => {
|
|
14897
14911
|
this.shouldResize = false;
|
|
@@ -15181,6 +15195,7 @@ class GlobalNav {
|
|
|
15181
15195
|
}
|
|
15182
15196
|
componentDidRender() {
|
|
15183
15197
|
this.handleResize();
|
|
15198
|
+
this.setNavItemHover();
|
|
15184
15199
|
}
|
|
15185
15200
|
/// RENDER ///
|
|
15186
15201
|
loggedInPanel() {
|
|
@@ -15237,21 +15252,21 @@ class GlobalNav {
|
|
|
15237
15252
|
}
|
|
15238
15253
|
render() {
|
|
15239
15254
|
const bpps = this.bpPartials;
|
|
15240
|
-
return (h(Host, { key: '
|
|
15255
|
+
return (h(Host, { key: '53c751962d1ed36bae13be0a3c74b340b4a553bd', class: {
|
|
15241
15256
|
'overflow-menu': this.breakpoint > bpps.mainMenu.breakpoint,
|
|
15242
15257
|
'bar-menu': this.breakpoint <= bpps.mainMenu.breakpoint,
|
|
15243
15258
|
'nano-global-nav': true,
|
|
15244
|
-
} }, h("div", { key: '
|
|
15259
|
+
} }, h("div", { key: '40ab68a79d28c8ace97c06f3b1d1222e1c21cf0e', class: {
|
|
15245
15260
|
gn: true,
|
|
15246
15261
|
'gn__search-open': this.searchBarShown,
|
|
15247
|
-
} }, h("nano-drawer", { key: '
|
|
15262
|
+
} }, h("nano-drawer", { key: '7a4b70e3364f66678843c3b66a46a11b4018d26c', ref: (el) => (this.overflowMenu = el), label: "Main menu", part: "drawer", class: "gn__drawer nano-theme-dark", placement: "start", open: this.overflowOpen, onNanoAfterHide: () => (this.overflowOpen = false), onNanoAfterShow: () => (this.overflowOpen = true) }, h("div", { key: '49a9b1c0de594cbe45f844d16be862fb84b27776', class: "gn__drawer-header", part: "overflow-header", slot: "label" }, "Main menu"), h("nav", { key: 'af7cabec8e9897f5e48d0a3a0c5e47f23b4cf151', class: "gn__drawer-menu", part: "overflow-menu" }, this.breakpoint > bpps.mainMenu.breakpoint
|
|
15248
15263
|
? bpps.mainMenu.tpl()
|
|
15249
|
-
: '', h("slot", { key: '
|
|
15264
|
+
: '', h("slot", { key: '25b6d6721170837ae7c908d7db7f3ac0507c0775', name: "overflow" }))), h("div", { key: 'c2ea4f60360ed705d8fefa86712d9fa1fdacb8c6', class: "gn__menu-bar-wrapper" }, h("div", { key: '504deb61564e7de04cf6c437a1692fd456d6bf38', class: "gn__menu-bar", part: "menu-bar", ref: (el) => (this.mainMenuBar = el) }, h("nav", { key: 'd83c1e1397e054aac75a7942d0b49c9ea012e1c0', "aria-label": "Global navigation", class: `gn__main-menu ${this.shouldResize ? 'resizing' : ''}`, part: "main-menu", ref: (el) => (this.mainMenu = el) }, this.breakpoint > bpps.mainMenu.breakpoint && (h("nano-icon-button", { key: '201f58efe6e86cef00e45f43b74b805d997e4647', class: "gn__overflow-button", iconName: "light/bars", label: "Open Menu", onClick: () => this.overflowMenu.show() })), h("slot", { key: '2370a4105d6462c6b19a9cd407aa6ad0616f53b4', name: "logo" }, h("a", { key: '82cfdc19c8521f251d9cec4671f8623c4dbd0b42', href: this.logoUrl, class: "gn__logo-link", part: "logo-link" }, this.breakpoint <= bpps.logo.breakpoint ? (h("img", { src: getAssetPath('../nano-assets/ont-logo.svg'), alt: `Oxford Nanopore Technologies logo. Features a stylised representation of a nanopore,
|
|
15250
15265
|
(a tiny protein channel embedded in a membrane) through which DNA or RNA molecules are passed in for sequencing.`, class: "gn__logo gn__logo--large", width: "152", height: "35", part: "logo logo--large" })) : (h("img", { src: getAssetPath('../nano-assets/ont-wheel.svg'), alt: `Oxford Nanopore Technologies logo. A stylised representation of a nanopore,
|
|
15251
|
-
(a tiny protein channel embedded in a membrane) through which DNA or RNA molecules are passed in for sequencing.`, class: "gn__logo gn__logo--small", width: "35", height: "35", part: "logo logo--small" })))), this.breakpoint <= bpps.mainMenu.breakpoint && (h("div", { key: '
|
|
15252
|
-
(!!this.searchIndices.length && (h("nano-dropdown", { key: '
|
|
15266
|
+
(a tiny protein channel embedded in a membrane) through which DNA or RNA molecules are passed in for sequencing.`, class: "gn__logo gn__logo--small", width: "35", height: "35", part: "logo logo--small" })))), this.breakpoint <= bpps.mainMenu.breakpoint && (h("div", { key: '7c43301ad5c735c8dae4081d2bb91fef7db41762', class: "gn__main-menu-links" }, bpps.mainMenu.tpl())), h("div", { key: '12285c67b6773c7bc31897cb0752fb4db549a162', class: "gn__main-menu-actions" }, !this.myAccountData ||
|
|
15267
|
+
(!!this.searchIndices.length && (h("nano-dropdown", { key: 'f7845d92127df80f548ae65573725b2c1497b703', dialogTitle: "Search Oxford Nanopore Technologies", placement: "bottom", class: "gn__search-dropdown", skidding: -30, distance: 25, open: this.searchBarShown, onNanoAfterShow: this.handleSearchOpenEvent, onNanoAfterHide: this.handleSearchCloseEvent, autoOpen: !!this.searchIndices.length }, h("nano-icon-button", { key: '6ca7605ce6e9829b6155f3e17d9262db9d452642', class: "gn__search-button", slot: "trigger", iconName: "light/magnifying-glass", label: "Search" }), h("form", { key: 'aba9d208a95acae67b2e2d05b6cbf39ac6aed329', ref: (form) => (this.searchForm = form), class: "gn__search-form", part: "search-form", onSubmit: this.onSearchSubmit }, this.searchIndices.length > 1 && (h("nano-select", { key: '7d6894101fb8e74e90c712f8768926e4604468bb', part: "search-select", label: "Which site do you wish to search in?", mask: true, hideLabel: true, value: this.activeIndex?.index, onNanoChange: this.handleSearchIndexChangeEvent }, this.searchIndices.map((index) => (h("nano-option", { selected: index.name === this.searchIndex, value: index.index }, index.name || index.index))))), h("nano-input", { key: '8ae65dcf14ec20041c3152fe875923a1bf19ab4e', ref: (ele) => (this.searchInput = ele), part: "search-input", label: "Search Oxford Nanopore Technologies", placeholder: "Search Oxford Nanopore...", hideLabel: true, clearable: true, showInlineError: false, onNanoChange: (e) => {
|
|
15253
15268
|
this.handleSearchTermChangeEvent(e.detail.value);
|
|
15254
|
-
}, onNanoInput: this.handleSearchTermInputEvent, debounce: 500, value: this._searchValue }, h("nano-icon-button", { key: '
|
|
15269
|
+
}, onNanoInput: this.handleSearchTermInputEvent, debounce: 500, value: this._searchValue }, h("nano-icon-button", { key: 'f232ad693769e872e8fe8a2e42109c2ea5286e02', slot: "end", "icon-name": "light/magnifying-glass", label: "Search", onClick: this.onSearchSubmit }), h("nano-datalist", { key: 'cca09389259f1b63a607a7a0e667f839ae9a2904', class: "gn__search-results", onNanoSelect: (e) => e.preventDefault(), dropDownConfig: { tetherTo: this.searchForm }, disableFilter: true }, this.searchLoading && (h("div", { key: '6a134d0b971806091e973f7c8c1b5ef79ddfab5a', slot: "no-result", class: "gn__search-loading" }, h("nano-spinner", { key: '2bb8c2c2a7351cc1d95be9517d4c4db687c11c49' }, "Searching..."))), this.noResultPartial(), !!this.autocompleteResults?.hits.length && [
|
|
15255
15270
|
this.autocompleteResults.hits.map((hit, i) => (h("nano-option", { href: hit.url, class: "gn__search-result", onClick: () => {
|
|
15256
15271
|
searchInsight.sendClick({
|
|
15257
15272
|
index: this.activeIndex.index,
|
|
@@ -15261,13 +15276,13 @@ class GlobalNav {
|
|
|
15261
15276
|
positions: [i + 1],
|
|
15262
15277
|
});
|
|
15263
15278
|
} }, h("span", { innerHTML: this.autocompleteSnippet(hit) })))),
|
|
15264
|
-
h("nano-option", { key: '
|
|
15265
|
-
])))))), h("div", { key: '
|
|
15266
|
-
h("nano-icon-button", { key: '
|
|
15267
|
-
!!this.cartCount && (h("nano-badge", { key: '
|
|
15279
|
+
h("nano-option", { key: '0f453d14dada8aff48749a7fb99ceee46ad4d3ef', class: "gn__search-viewall", onNanoSelect: this.onSearchSubmit }, "View all results"),
|
|
15280
|
+
])))))), h("div", { key: '44b96146b2cd8d71c832e5f400a3de65cd1a8f04', class: "gn__cart" }, this.cartUrl && [
|
|
15281
|
+
h("nano-icon-button", { key: '1745e9090c7850789417d70b82ce25b2661b556c', iconName: "light/cart-shopping", label: "View your cart", href: this.cartUrl }),
|
|
15282
|
+
!!this.cartCount && (h("nano-badge", { key: '997946ee187bba74e880ab485f1a8e43cc74f707', theme: "danger" }, this.cartCount > 9 ? '9+' : this.cartCount)),
|
|
15268
15283
|
]), this.breakpoint <= bpps.contact.breakpoint
|
|
15269
15284
|
? bpps.contact.tpl()
|
|
15270
|
-
: '', this.isLoggedIn ? (h("nano-dropdown", { dialogTitle: "User menu", class: "gn__user-dropdown", distance: 10, placement: "bottom-end" }, h("button", { slot: "trigger", class: "gn__user-dropdown-trigger" }, h("nano-icon", { name: "light/user" }), h("nano-icon", { name: "light/chevron-down", class: "gn__user-dropdown-chevron" }), !!this.msgCount && (h("nano-badge", { theme: "danger" }, this.msgCount > 9 ? '9+' : this.msgCount))), this.loggedInPanel())) : (h("nano-cta", { secondary: true, size: "small", icon: "false", class: "gn__login-cta" }, typeof this.loginUrl === 'string' ? (h("a", { href: this.formatLoginLink(this.loginUrl) }, "Login")) : (h("button", { onClick: this.loginUrl }, "Login")))))))), h("nano-global-search-results", { key: '
|
|
15285
|
+
: '', this.isLoggedIn ? (h("nano-dropdown", { dialogTitle: "User menu", class: "gn__user-dropdown", distance: 10, placement: "bottom-end" }, h("button", { slot: "trigger", class: "gn__user-dropdown-trigger" }, h("nano-icon", { name: "light/user" }), h("nano-icon", { name: "light/chevron-down", class: "gn__user-dropdown-chevron" }), !!this.msgCount && (h("nano-badge", { theme: "danger" }, this.msgCount > 9 ? '9+' : this.msgCount))), this.loggedInPanel())) : (h("nano-cta", { secondary: true, size: "small", icon: "false", class: "gn__login-cta" }, typeof this.loginUrl === 'string' ? (h("a", { href: this.formatLoginLink(this.loginUrl) }, "Login")) : (h("button", { onClick: this.loginUrl }, "Login")))))))), h("nano-global-search-results", { key: '41a5c6ee1257b595b391d711841dbab6d6c5ecc0', part: "site-search-results" }, h("div", { key: '94418390bfa82f913fa521e5612effe53b319ab4', class: "gn__site", part: "site-wrapper" }, h("slot", { key: 'd0c7c41fb54d7d57d44a0ae9a79216a4f1780675' }))))));
|
|
15271
15286
|
}
|
|
15272
15287
|
static get assetsDirs() { return ["assets"]; }
|
|
15273
15288
|
static get watchers() { return {
|
|
@@ -19053,6 +19068,126 @@ class MaskedOverflow {
|
|
|
19053
19068
|
}; }
|
|
19054
19069
|
}
|
|
19055
19070
|
|
|
19071
|
+
const mddCss = ":host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}nano-mdd{display:grid;grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));gap:var(--nano-spacing-xl)}@media (width < 1200px){nano-mdd{gap:var(--nano-spacing-l2)}}nano-mdd .mdd__span-2{grid-column:span 2}nano-mdd[accordion]{display:block}";
|
|
19072
|
+
|
|
19073
|
+
/**
|
|
19074
|
+
* Mega drop-down container. Groups `nano-mdd-item` elements and optionally
|
|
19075
|
+
* enforces accordion behaviour (only one item open at a time).
|
|
19076
|
+
*
|
|
19077
|
+
* @slot - `nano-mdd-item` elements
|
|
19078
|
+
*
|
|
19079
|
+
* @part grid - the inner grid wrapper
|
|
19080
|
+
*
|
|
19081
|
+
* @version 8.24.0
|
|
19082
|
+
* @status experimental
|
|
19083
|
+
*/
|
|
19084
|
+
class Mdd {
|
|
19085
|
+
constructor(hostRef) {
|
|
19086
|
+
registerInstance(this, hostRef);
|
|
19087
|
+
}
|
|
19088
|
+
get host() { return getElement(this); }
|
|
19089
|
+
/** When true, only one item can be open at a time */
|
|
19090
|
+
accordion = false;
|
|
19091
|
+
accordionChanged() {
|
|
19092
|
+
this.syncAccordionProp();
|
|
19093
|
+
}
|
|
19094
|
+
/** Listen for nano-details opening (composed:true bubbles through shadow boundaries) */
|
|
19095
|
+
onDetailsOpen(e) {
|
|
19096
|
+
if (!this.accordion)
|
|
19097
|
+
return;
|
|
19098
|
+
const tag = transformTag('nano-mdd-item');
|
|
19099
|
+
// find which mdd-item the opening details belongs to
|
|
19100
|
+
const openedItem = e
|
|
19101
|
+
.composedPath()
|
|
19102
|
+
.find((el) => el.tagName?.toLowerCase() === tag);
|
|
19103
|
+
if (!openedItem)
|
|
19104
|
+
return;
|
|
19105
|
+
// close all siblings
|
|
19106
|
+
this.host
|
|
19107
|
+
.querySelectorAll(tag)
|
|
19108
|
+
.forEach((item) => {
|
|
19109
|
+
if (item !== openedItem)
|
|
19110
|
+
item.open = false;
|
|
19111
|
+
});
|
|
19112
|
+
}
|
|
19113
|
+
syncAccordionProp() {
|
|
19114
|
+
const tag = transformTag('nano-mdd-item');
|
|
19115
|
+
this.host
|
|
19116
|
+
.querySelectorAll(tag)
|
|
19117
|
+
.forEach((item) => {
|
|
19118
|
+
item.accordion = this.accordion;
|
|
19119
|
+
});
|
|
19120
|
+
}
|
|
19121
|
+
componentDidLoad() {
|
|
19122
|
+
this.syncAccordionProp();
|
|
19123
|
+
}
|
|
19124
|
+
static get watchers() { return {
|
|
19125
|
+
"accordion": ["accordionChanged"]
|
|
19126
|
+
}; }
|
|
19127
|
+
static get style() { return mddCss; }
|
|
19128
|
+
static get cmpMeta() { return {
|
|
19129
|
+
"$flags$": 0,
|
|
19130
|
+
"$tagName$": "nano-mdd",
|
|
19131
|
+
"$members$": {
|
|
19132
|
+
"accordion": [516]
|
|
19133
|
+
},
|
|
19134
|
+
"$listeners$": [[0, "nanoOpen", "onDetailsOpen"]],
|
|
19135
|
+
"$lazyBundleId$": "-",
|
|
19136
|
+
"$attrsToReflect$": [["accordion", "accordion"]]
|
|
19137
|
+
}; }
|
|
19138
|
+
}
|
|
19139
|
+
|
|
19140
|
+
const mddItemCss = ":host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}nano-mdd-item{display:block}nano-mdd-item a:not(nano-content-links a){display:flex;flex-direction:column;gap:var(--nano-spacing-xs);color:var(--nano-color-base-1000);text-decoration:none}@media (width < 1200px){nano-mdd-item a:not(nano-content-links a){font-size:var(--nano-font-size-xs)}}nano-mdd-item a:not(nano-content-links a):hover{text-decoration:underline;color:var(--nano-color-primary-1000)}nano-mdd-item a:not(nano-content-links a)>p{color:var(--nano-color-neutral-1000);font-size:var(--nano-font-size-xs);letter-spacing:var(--nano-letter-spacing-denser);margin:0}@media (width < 1200px){nano-mdd-item a:not(nano-content-links a)>p{font-size:var(--nano-font-size-2xs)}}nano-mdd-item ul{margin:0;padding:0}nano-mdd-item ul li{margin-inline:0;list-style:none;margin-block-end:var(--nano-spacing-l2);line-height:var(--nano-line-height-dense)}nano-mdd-item .md__link-columns{gap:var(--nano-spacing-xl)}nano-mdd-item .md__link-columns:has(>:nth-child(6)){columns:2}nano-mdd-item .md__link-columns>*{display:block;margin-block-end:var(--nano-spacing-l2)}nano-mdd-item:not([accordion]) [slot=label]{display:block;color:var(--nano-color-text-neutral);font-size:var(--nano-font-size-2xs);line-height:var(--nano-line-height-normal);letter-spacing:1.2px;text-transform:uppercase;margin-block-end:var(--nano-spacing-md)}nano-mdd-item:not([accordion]) [slot=label]::after{content:\"\";display:block;padding-block-start:var(--nano-spacing-md);border-block-end:1px solid rgb(var(--nano-color-base-rgb-1000)/30%)}nano-mdd-item:not([accordion]) .mdd-item__body{display:flex;flex-direction:column}nano-mdd-item[accordion] .md__link-columns{padding-inline-start:var(--nano-spacing-md);columns:1 !important}nano-mdd-item[accordion] nano-details{border:none;border-block-start:1px solid var(--nano-color-neutral-300)}nano-mdd-item[accordion]:last-child nano-details{border-block-end:1px solid var(--nano-color-neutral-300)}.mdd__view-all{display:inline-flex;flex-direction:row;align-items:center;gap:0.25em;color:var(--nano-color-primary-1100);font-size:var(--nano-font-size-2xs);text-decoration:underline}.mdd__view-all::after{content:\"\";display:block;flex-shrink:0;inline-size:1em;block-size:1em;background-color:currentcolor;-webkit-mask-image:var(--nano-component-icon-chevron);mask-image:var(--nano-component-icon-chevron);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:cover;mask-size:cover}";
|
|
19141
|
+
|
|
19142
|
+
/**
|
|
19143
|
+
* An item within a `nano-mdd`. Renders as a plain labelled column in grid mode,
|
|
19144
|
+
* or as a collapsible `nano-details` in accordion mode.
|
|
19145
|
+
*
|
|
19146
|
+
* @slot label - the heading / title of the section
|
|
19147
|
+
* @slot - the body content
|
|
19148
|
+
*
|
|
19149
|
+
* @part details - the underlying `nano-details` element (accordion mode only)
|
|
19150
|
+
*
|
|
19151
|
+
* @version 8.24.0
|
|
19152
|
+
* @status experimental
|
|
19153
|
+
*/
|
|
19154
|
+
class MddItem {
|
|
19155
|
+
constructor(hostRef) {
|
|
19156
|
+
registerInstance(this, hostRef);
|
|
19157
|
+
}
|
|
19158
|
+
detailsEl;
|
|
19159
|
+
get host() { return getElement(this); }
|
|
19160
|
+
/** Controlled open state (used by nano-mdd in accordion mode) */
|
|
19161
|
+
open = false;
|
|
19162
|
+
/** Set by parent nano-mdd — switches between column and accordion rendering */
|
|
19163
|
+
accordion = false;
|
|
19164
|
+
openChanged() {
|
|
19165
|
+
if (this.detailsEl)
|
|
19166
|
+
this.detailsEl.open = this.open;
|
|
19167
|
+
}
|
|
19168
|
+
render() {
|
|
19169
|
+
if (this.accordion) {
|
|
19170
|
+
return (h(Host, null, h("nano-details", { ref: (el) => (this.detailsEl = el), open: this.open, size: "small", part: "details", onNanoOpen: () => (this.open = true), onNanoClose: () => (this.open = false) }, h("slot", { name: "label", slot: "label" }), h("slot", null))));
|
|
19171
|
+
}
|
|
19172
|
+
return (h(Host, null, h("div", { class: "mdd-item__column" }, h("div", { class: "mdd-item__label" }, h("slot", { name: "label" })), h("div", { class: "mdd-item__body" }, h("slot", null)))));
|
|
19173
|
+
}
|
|
19174
|
+
static get watchers() { return {
|
|
19175
|
+
"open": ["openChanged"]
|
|
19176
|
+
}; }
|
|
19177
|
+
static get style() { return mddItemCss; }
|
|
19178
|
+
static get cmpMeta() { return {
|
|
19179
|
+
"$flags$": 260,
|
|
19180
|
+
"$tagName$": "nano-mdd-item",
|
|
19181
|
+
"$members$": {
|
|
19182
|
+
"open": [1540],
|
|
19183
|
+
"accordion": [516]
|
|
19184
|
+
},
|
|
19185
|
+
"$listeners$": undefined,
|
|
19186
|
+
"$lazyBundleId$": "-",
|
|
19187
|
+
"$attrsToReflect$": [["open", "open"], ["accordion", "accordion"]]
|
|
19188
|
+
}; }
|
|
19189
|
+
}
|
|
19190
|
+
|
|
19056
19191
|
const menuCss = ":host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host{--padding:var(--nano-spacing-sm) var(--nano-spacing-sm);--font-size:1rem;--background:var(--nano-color-surface-subtle);--nav-item-padding:var(--padding);display:block;background:var(--background);color:var(--nano-color-text-default);overflow-x:clip}.menu{font-size:var(--font-size);overscroll-behavior:none;min-inline-size:var(--width);position:relative}.menu:focus{outline:none}::slotted(*:not(.nano-nav-item,.nano-option,hr,slot)){padding:var(--padding);display:block}";
|
|
19057
19192
|
|
|
19058
19193
|
/**
|
|
@@ -24779,78 +24914,6 @@ class NanoTag {
|
|
|
24779
24914
|
}; }
|
|
24780
24915
|
}
|
|
24781
24916
|
|
|
24782
|
-
/**
|
|
24783
|
-
* Quality of life for transition handling.
|
|
24784
|
-
* Adds / removes transitionend events. Resolves on complete
|
|
24785
|
-
|
|
24786
|
-
* @param el element
|
|
24787
|
-
* @returns a promise that resolves when the transition is done
|
|
24788
|
-
*/
|
|
24789
|
-
/**
|
|
24790
|
-
* handles hiding and showing elements properly (with display),
|
|
24791
|
-
* along with transitions, so they are no longer viewable in the dom.
|
|
24792
|
-
* - OnHide remove show class, listen for transition end, then display: none on finish
|
|
24793
|
-
* - OnShow, display block on start then add a show class
|
|
24794
|
-
*
|
|
24795
|
-
* @param el
|
|
24796
|
-
* @param options
|
|
24797
|
-
* @returns a promise of resolving as either 'show' or 'hidden'
|
|
24798
|
-
*/
|
|
24799
|
-
const displayTransition = (el, options) => {
|
|
24800
|
-
const opts = {
|
|
24801
|
-
className: '',
|
|
24802
|
-
show: true,
|
|
24803
|
-
showDisplay: 'block',
|
|
24804
|
-
showProp: 'classList',
|
|
24805
|
-
timeout: 1000,
|
|
24806
|
-
...options,
|
|
24807
|
-
};
|
|
24808
|
-
return new Promise((resolve) => {
|
|
24809
|
-
const showCb = (e) => {
|
|
24810
|
-
if ((e.target === el || e.composedPath().some((el) => el === e.target)) &&
|
|
24811
|
-
(!opts.transitionProp || opts.transitionProp.includes(e.propertyName))) {
|
|
24812
|
-
el.dataset.displayTransition = 'true';
|
|
24813
|
-
el.removeEventListener('transitionend', showCb);
|
|
24814
|
-
resolve('shown');
|
|
24815
|
-
}
|
|
24816
|
-
};
|
|
24817
|
-
const hideCb = (e) => {
|
|
24818
|
-
if ((e.target === el || e.composedPath().some((el) => el === e.target)) &&
|
|
24819
|
-
(!opts.transitionProp || opts.transitionProp.includes(e.propertyName))) {
|
|
24820
|
-
el.style.display = 'none';
|
|
24821
|
-
el.dataset.displayTransition = 'false';
|
|
24822
|
-
el.removeEventListener('transitionend', hideCb);
|
|
24823
|
-
resolve('hidden');
|
|
24824
|
-
}
|
|
24825
|
-
};
|
|
24826
|
-
if (opts.show) {
|
|
24827
|
-
el.addEventListener('transitionend', showCb);
|
|
24828
|
-
el.style.display = opts.showDisplay;
|
|
24829
|
-
setTimeout(() => el[opts.showProp].add(opts.className), 50);
|
|
24830
|
-
}
|
|
24831
|
-
else {
|
|
24832
|
-
el.addEventListener('transitionend', hideCb);
|
|
24833
|
-
el[opts.showProp].remove(opts.className);
|
|
24834
|
-
}
|
|
24835
|
-
// If no transition, resolve after timeout
|
|
24836
|
-
if (opts.timeout) {
|
|
24837
|
-
setTimeout(() => {
|
|
24838
|
-
if (opts.show && el.dataset.displayTransition !== 'true') {
|
|
24839
|
-
el.dataset.displayTransition = 'true';
|
|
24840
|
-
el.removeEventListener('transitionend', showCb);
|
|
24841
|
-
resolve('shown');
|
|
24842
|
-
}
|
|
24843
|
-
else if (!opts.show && el.dataset.displayTransition !== 'false') {
|
|
24844
|
-
el.style.display = 'none';
|
|
24845
|
-
el.dataset.displayTransition = 'false';
|
|
24846
|
-
el.removeEventListener('transitionend', hideCb);
|
|
24847
|
-
resolve('hidden');
|
|
24848
|
-
}
|
|
24849
|
-
}, opts.timeout);
|
|
24850
|
-
}
|
|
24851
|
-
});
|
|
24852
|
-
};
|
|
24853
|
-
|
|
24854
24917
|
const navItemCss = ":host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host{display:contents}.navitem{background:inherit;color:inherit}a,button{all:unset;color:inherit;text-decoration:inherit;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:var(--padding);gap:var(--nano-spacing-md);inline-size:100%;box-sizing:border-box;background:inherit}a:hover,a:focus,a:active,button:hover,button:focus,button:active{color:inherit}a:focus-visible,button:focus-visible{outline:var(--nano-focus-ring);outline-offset:var(--nano-focus-ring-offset)}a[disabled],button[disabled]{opacity:0.5;cursor:not-allowed}.navitem__label{margin-inline-end:auto}.navitem__modal{all:unset;display:none;position:absolute;color:initial;opacity:0;transition:var(--nano-transition-fast) ease}.navitem--open .navitem__modal{opacity:1}::slotted([slot=close-button]){all:unset}::slotted([slot=close-button]):focus-visible{outline:var(--nano-focus-ring);outline-offset:var(--nano-focus-ring-offset)}";
|
|
24855
24918
|
|
|
24856
24919
|
/**
|
|
@@ -24890,6 +24953,11 @@ class NavItem {
|
|
|
24890
24953
|
secondaryDiv;
|
|
24891
24954
|
slotCtrl = new HasSlotController(this, 'secondary', 'close-button');
|
|
24892
24955
|
controlElement;
|
|
24956
|
+
hoverTimer = -1;
|
|
24957
|
+
openedByTouch = false;
|
|
24958
|
+
openedByClick = false;
|
|
24959
|
+
canHover = false;
|
|
24960
|
+
transitionAbort = null;
|
|
24893
24961
|
get host() { return getElement(this); }
|
|
24894
24962
|
didOpen = false;
|
|
24895
24963
|
isInMenuDrawer = false;
|
|
@@ -24907,6 +24975,17 @@ class NavItem {
|
|
|
24907
24975
|
checkbox = false;
|
|
24908
24976
|
/** Whether secondary menus should close on blur */
|
|
24909
24977
|
closeOnBlur = true;
|
|
24978
|
+
/** Open the secondary panel on hover (fine pointer / non-touch devices only) */
|
|
24979
|
+
openOnHover = false;
|
|
24980
|
+
openOnHoverChanged() {
|
|
24981
|
+
this.canHover =
|
|
24982
|
+
this.openOnHover &&
|
|
24983
|
+
window.matchMedia('(hover: hover) and (pointer: fine)').matches;
|
|
24984
|
+
if (!this.canHover)
|
|
24985
|
+
this.removeHoverListeners();
|
|
24986
|
+
else
|
|
24987
|
+
this.addHoverListeners();
|
|
24988
|
+
}
|
|
24910
24989
|
/** Emitted when the nav item closes it's secondary navigation. */
|
|
24911
24990
|
nanoClose;
|
|
24912
24991
|
/** Emitted when the nav item opens it's secondary navigation. */
|
|
@@ -24965,34 +25044,109 @@ class NavItem {
|
|
|
24965
25044
|
if (!this.didOpen || !this.slotCtrl.has('secondary') || !this.closeOnBlur)
|
|
24966
25045
|
return;
|
|
24967
25046
|
if (e.key && e.key === 'Escape') {
|
|
25047
|
+
this.openedByClick = false;
|
|
24968
25048
|
this.closeSecondary();
|
|
24969
25049
|
return;
|
|
24970
25050
|
}
|
|
24971
|
-
|
|
25051
|
+
const path = e.composedPath();
|
|
25052
|
+
// if click-locked, ignore clicks within the host (trigger or panel)
|
|
25053
|
+
if (this.openedByClick && path.some((el) => el === this.host))
|
|
25054
|
+
return;
|
|
25055
|
+
if (!path.some((el) => el === this.secondaryDiv)) {
|
|
24972
25056
|
this.closeSecondary();
|
|
24973
25057
|
}
|
|
24974
25058
|
}
|
|
25059
|
+
addHoverListeners() {
|
|
25060
|
+
this.host.addEventListener('pointerenter', this.handlePointerEnter);
|
|
25061
|
+
this.host.addEventListener('pointerleave', this.handlePointerLeave);
|
|
25062
|
+
this.host.addEventListener('focusout', this.handleFocusOut);
|
|
25063
|
+
}
|
|
25064
|
+
removeHoverListeners() {
|
|
25065
|
+
this.host.removeEventListener('pointerenter', this.handlePointerEnter);
|
|
25066
|
+
this.host.removeEventListener('pointerleave', this.handlePointerLeave);
|
|
25067
|
+
this.host.removeEventListener('focusout', this.handleFocusOut);
|
|
25068
|
+
}
|
|
25069
|
+
handlePointerEnter = (e) => {
|
|
25070
|
+
if (!this.canHover || !this.slotCtrl.has('secondary'))
|
|
25071
|
+
return;
|
|
25072
|
+
if (e.pointerType !== 'mouse') {
|
|
25073
|
+
this.openedByTouch = true;
|
|
25074
|
+
return;
|
|
25075
|
+
}
|
|
25076
|
+
this.openedByTouch = false;
|
|
25077
|
+
window.clearTimeout(this.hoverTimer);
|
|
25078
|
+
// if click-locked open, don't start a re-open timer
|
|
25079
|
+
if (this.openedByClick && this.didOpen)
|
|
25080
|
+
return;
|
|
25081
|
+
this.hoverTimer = window.setTimeout(() => this.openSecondary(), 0);
|
|
25082
|
+
};
|
|
25083
|
+
handlePointerLeave = (e) => {
|
|
25084
|
+
if (!this.canHover ||
|
|
25085
|
+
this.openedByTouch ||
|
|
25086
|
+
this.openedByClick ||
|
|
25087
|
+
!this.slotCtrl.has('secondary'))
|
|
25088
|
+
return;
|
|
25089
|
+
if (e.pointerType !== 'mouse')
|
|
25090
|
+
return;
|
|
25091
|
+
window.clearTimeout(this.hoverTimer);
|
|
25092
|
+
this.hoverTimer = window.setTimeout(() => this.closeSecondary(), 200);
|
|
25093
|
+
};
|
|
25094
|
+
handleFocusOut = (e) => {
|
|
25095
|
+
if (!this.canHover || !this.didOpen)
|
|
25096
|
+
return;
|
|
25097
|
+
// only close if focus left the nav-item entirely
|
|
25098
|
+
if (e.relatedTarget && this.host.contains(e.relatedTarget))
|
|
25099
|
+
return;
|
|
25100
|
+
if (e.relatedTarget &&
|
|
25101
|
+
this.host.shadowRoot?.contains(e.relatedTarget))
|
|
25102
|
+
return;
|
|
25103
|
+
this.closeSecondary();
|
|
25104
|
+
};
|
|
25105
|
+
awaitTransition(signal) {
|
|
25106
|
+
return new Promise((resolve) => {
|
|
25107
|
+
const fallback = window.setTimeout(() => resolve(true), 1000);
|
|
25108
|
+
const cleanup = () => window.clearTimeout(fallback);
|
|
25109
|
+
signal.addEventListener('abort', () => {
|
|
25110
|
+
cleanup();
|
|
25111
|
+
resolve(false);
|
|
25112
|
+
}, { once: true });
|
|
25113
|
+
this.secondaryDiv.addEventListener('transitionend', () => {
|
|
25114
|
+
cleanup();
|
|
25115
|
+
resolve(true);
|
|
25116
|
+
}, { once: true, signal });
|
|
25117
|
+
});
|
|
25118
|
+
}
|
|
24975
25119
|
closeSecondary = async () => {
|
|
24976
25120
|
if (!this.slotCtrl.has('secondary') || !this.open)
|
|
24977
25121
|
return;
|
|
25122
|
+
this.transitionAbort?.abort();
|
|
25123
|
+
this.transitionAbort = new AbortController();
|
|
25124
|
+
const { signal } = this.transitionAbort;
|
|
24978
25125
|
this.open = false;
|
|
24979
|
-
|
|
24980
|
-
|
|
24981
|
-
|
|
24982
|
-
|
|
24983
|
-
|
|
25126
|
+
this.secondaryDiv.part.remove('modal--open');
|
|
25127
|
+
const completed = await this.awaitTransition(signal);
|
|
25128
|
+
if (!completed)
|
|
25129
|
+
return;
|
|
25130
|
+
this.secondaryDiv.style.display = 'none';
|
|
25131
|
+
this.openedByClick = false;
|
|
24984
25132
|
this.nanoClosing.emit({ secondaryMenu: this.secondaryDiv });
|
|
24985
25133
|
this.didOpen = false;
|
|
24986
25134
|
};
|
|
24987
25135
|
openSecondary = async () => {
|
|
24988
25136
|
if (!this.slotCtrl.has('secondary') || this.open)
|
|
24989
25137
|
return;
|
|
25138
|
+
this.transitionAbort?.abort();
|
|
25139
|
+
this.transitionAbort = new AbortController();
|
|
25140
|
+
const { signal } = this.transitionAbort;
|
|
24990
25141
|
this.open = true;
|
|
24991
|
-
|
|
24992
|
-
|
|
24993
|
-
|
|
24994
|
-
|
|
24995
|
-
});
|
|
25142
|
+
this.secondaryDiv.style.display = 'block';
|
|
25143
|
+
window.setTimeout(() => {
|
|
25144
|
+
if (!signal.aborted)
|
|
25145
|
+
this.secondaryDiv.part.add('modal--open');
|
|
25146
|
+
}, 50);
|
|
25147
|
+
const completed = await this.awaitTransition(signal);
|
|
25148
|
+
if (!completed)
|
|
25149
|
+
return;
|
|
24996
25150
|
this.nanoOpening.emit({ secondaryMenu: this.secondaryDiv });
|
|
24997
25151
|
this.didOpen = true;
|
|
24998
25152
|
};
|
|
@@ -25008,6 +25162,15 @@ class NavItem {
|
|
|
25008
25162
|
if (this.disabled)
|
|
25009
25163
|
return;
|
|
25010
25164
|
if (this.slotCtrl.has('secondary')) {
|
|
25165
|
+
if (this.canHover) {
|
|
25166
|
+
if (this.didOpen) {
|
|
25167
|
+
// already open via hover — lock it open, suppress hover-close
|
|
25168
|
+
this.openedByClick = true;
|
|
25169
|
+
return;
|
|
25170
|
+
}
|
|
25171
|
+
// opening via click in hover mode — lock it
|
|
25172
|
+
this.openedByClick = true;
|
|
25173
|
+
}
|
|
25011
25174
|
this.toggleSecondary();
|
|
25012
25175
|
return;
|
|
25013
25176
|
}
|
|
@@ -25038,29 +25201,37 @@ class NavItem {
|
|
|
25038
25201
|
connectedCallback() {
|
|
25039
25202
|
this.handleDefaultSlotChange();
|
|
25040
25203
|
this.isInMenuDrawer = !!this.host.closest(transformTag('nano-menu-drawer'));
|
|
25204
|
+
this.openOnHoverChanged();
|
|
25205
|
+
}
|
|
25206
|
+
disconnectedCallback() {
|
|
25207
|
+
window.clearTimeout(this.hoverTimer);
|
|
25208
|
+
this.removeHoverListeners();
|
|
25041
25209
|
}
|
|
25042
25210
|
componentDidLoad() {
|
|
25043
25211
|
this.openChange();
|
|
25044
25212
|
}
|
|
25045
25213
|
render() {
|
|
25046
|
-
return (h(Host, { key: '
|
|
25214
|
+
return (h(Host, { key: '5b7160c2d8712548475c34340cd654d4e17ccfbb', class: {
|
|
25047
25215
|
'nano-menu-drawer': this.isInMenuDrawer,
|
|
25048
25216
|
'nano-nav-item': true,
|
|
25049
25217
|
disabled: this.disabled,
|
|
25050
|
-
}, role: this.host.closest('[role="menu"]') ? 'menuitem' : undefined, "aria-disabled": this.disabled ? 'true' : undefined }, h("div", { key: '
|
|
25218
|
+
}, role: this.host.closest('[role="menu"]') ? 'menuitem' : undefined, "aria-disabled": this.disabled ? 'true' : undefined }, h("div", { key: '92d8b0b88a51214a5fa177d20be957b61e049916', class: {
|
|
25051
25219
|
navitem: true,
|
|
25052
25220
|
'navitem--open': this.open,
|
|
25053
25221
|
'navitem--active': this.selected,
|
|
25054
|
-
}, part: "trigger-wrapper" }, this.href && !this.disabled && (h("a", { key: '
|
|
25222
|
+
}, part: "trigger-wrapper" }, this.href && !this.disabled && (h("a", { key: '4b0b32b1c33506ef94e1321e6b6840fa0ddc64cc', part: "trigger trigger--anchor", target: this.target, ref: (a) => (this.controlElement = a), href: this.href, class: {
|
|
25055
25223
|
navitem__trigger: true,
|
|
25056
|
-
} }, h("slot", { key: '
|
|
25224
|
+
} }, h("slot", { key: '10b8c3c7a4903d8317f01da20a3bdf9196bc1438', name: "icon-start" }), h("span", { key: '2244f23ee2eb590f471c515243e30d5a15b38df3', class: "navitem__label", part: "label" }, h("slot", { key: '7f330c217ec16b81851e6a1ae4c37098b75cd799', onSlotchange: this.handleDefaultSlotChange })), h("slot", { key: '831d05cc6a55eba753d3bb877983337e88991bd6', name: "icon-end" }))), (!this.href || this.disabled) && (h("button", { key: '8ff3bbecbf1401830487bf116b27311d4be0d13d', role: this.checkbox ? 'checkbox' : undefined, "aria-checked": this.checkbox ? this.selected.toString() : undefined, "aria-expanded": this.slotCtrl.has('secondary')
|
|
25225
|
+
? this.didOpen.toString()
|
|
25226
|
+
: undefined, part: "trigger trigger--button", ref: (btn) => (this.controlElement = btn), onClick: this.handleClick, disabled: this.disabled, class: {
|
|
25057
25227
|
navitem__trigger: true,
|
|
25058
|
-
} }, h("slot", { key: '
|
|
25228
|
+
} }, h("slot", { key: 'eb814e8de2bbec584722ab92956eef03262611d3', name: "icon-start" }), h("span", { key: '76ad3a122201c9d2cd23ba7898662e3d134b02ba', class: "navitem__label", part: "label" }, h("slot", { key: '9a6e9153990ee4ad34ed8db1f7e1aa4ad54ea587', onSlotchange: this.handleDefaultSlotChange })), h("slot", { key: '6b0d010032497dd1f037e982c245891d8603da25', name: "icon-end" }))), this.slotCtrl.has('secondary') && !this.disabled && (h("div", { key: 'bff80914555716d7515c97535113be7aa4ad6f0a', part: "modal", class: {
|
|
25059
25229
|
navitem__modal: true,
|
|
25060
25230
|
'navitem__modal--open': this.didOpen,
|
|
25061
|
-
}, ref: (div) => (this.secondaryDiv = div), tabIndex: -1 }, h("div", { key: '
|
|
25231
|
+
}, ref: (div) => (this.secondaryDiv = div), tabIndex: -1 }, h("div", { key: '3e7495704a435455446c243a590d82cdde632d5a', class: "navitem__modal-content", part: `modal-content ${this.didOpen ? 'modal-content--open' : ''}` }, this.slotCtrl.has('close-button') && (h("div", { key: '613887997d246e3b49f9c7c876859181c3d8089e', part: "close-button", onClick: this.closeSecondary }, h("slot", { key: '82da2c670fcda49aafb78b00603716ae7667e445', name: "close-button" }))), h("slot", { key: '8c1906a9116fcd80cd34a51d68c012982c9858cf', name: "secondary" })), h("div", { key: '3731b3264e9a15b11078df8679a885e5b5d3e5dc', class: "navitem__modal-mask", onClick: this.closeSecondary, part: `modal-mask ${this.didOpen ? 'modal-mask--open' : ''}` }))))));
|
|
25062
25232
|
}
|
|
25063
25233
|
static get watchers() { return {
|
|
25234
|
+
"openOnHover": ["openOnHoverChanged"],
|
|
25064
25235
|
"open": ["openChange"],
|
|
25065
25236
|
"didOpen": ["didOpenChange"]
|
|
25066
25237
|
}; }
|
|
@@ -25076,6 +25247,7 @@ class NavItem {
|
|
|
25076
25247
|
"selected": [1540],
|
|
25077
25248
|
"checkbox": [516],
|
|
25078
25249
|
"closeOnBlur": [4, "close-on-blur"],
|
|
25250
|
+
"openOnHover": [4, "open-on-hover"],
|
|
25079
25251
|
"didOpen": [32],
|
|
25080
25252
|
"isInMenuDrawer": [32],
|
|
25081
25253
|
"setFocus": [64],
|
|
@@ -32302,6 +32474,8 @@ registerComponents([
|
|
|
32302
32474
|
InputOTP,
|
|
32303
32475
|
IntersectionObserve,
|
|
32304
32476
|
MaskedOverflow,
|
|
32477
|
+
Mdd,
|
|
32478
|
+
MddItem,
|
|
32305
32479
|
Menu,
|
|
32306
32480
|
MenuDrawer,
|
|
32307
32481
|
NanoAccordion,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nanoporetech-digital/components",
|
|
3
|
-
"version": "9.0
|
|
3
|
+
"version": "9.1.0",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"description": "A collection of Oxford Nanopore corporate / digital webcomponents",
|
|
6
6
|
"type": "module",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"smart-array-filter": "^4.0.2",
|
|
57
57
|
"stencil-wormhole": "3.2.1",
|
|
58
58
|
"tyqs": "^0.1.3",
|
|
59
|
-
"@nanoporetech-digital/style": "9.0
|
|
59
|
+
"@nanoporetech-digital/style": "9.1.0"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@algolia/client-search": "^4.22.1",
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Custom elements for Nanopore-Digital Web applications
|
|
3
|
-
*/
|
|
4
|
-
import"./index-vpnVjPKQ.js";var n;function t(n,t=this){return function t(e){if(!e||e===document||e===window)return null;e.assignedSlot&&(e=e.assignedSlot);return e.closest(n)||t(e.getRootNode().host)}(t)}function e(n,t,e=!0){if(!0===e)try{return t=":scope > "+t.split(",").join(", :scope >"),Array.from(n.querySelectorAll(t))}catch(n){console.error(n,"an error. sad")}const o=[];return Array.from(n.childNodes).forEach((n=>{n.matches&&n.matches(t)&&("SLOT"!==n.nodeName||"slot"!==e)?o.push(n):"SLOT"===n.nodeName?Array.from(n.assignedElements()).forEach((n=>{n.matches(t)&&o.push(n)})):e||o.push(n)})),o}function o(n,t){return t&&n?{top:n.getBoundingClientRect().top-t.getBoundingClientRect().top,left:n.getBoundingClientRect().left-t.getBoundingClientRect().left}:{top:0,left:0}}!function(n){n[n.ElementNode=1]="ElementNode",n[n.TextNode=3]="TextNode",n[n.CommentNode=8]="CommentNode",n[n.DocumentNode=9]="DocumentNode",n[n.DocumentTypeNode=10]="DocumentTypeNode",n[n.DocumentFragment=11]="DocumentFragment"}(n||(n={}));export{o as a,t as c,e as g}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Custom elements for Nanopore-Digital Web applications
|
|
3
|
-
*/
|
|
4
|
-
import{j as e,k as t}from"./index-vpnVjPKQ.js";const n=e=>!("isConnected"in e)||e.isConnected,s=(()=>{let e;return(...t)=>{e&&clearTimeout(e),e=setTimeout((()=>{e=0,(e=>{for(let t of e.keys())e.set(t,e.get(t).filter(n))})(...t)}),2e3)}})(),o=e=>"function"==typeof e?e():e,r=(e,t)=>{const n=e.indexOf(t);n>=0&&(e[n]=e[e.length-1],e.length--)},c=(n,c)=>{const p=((e,t=(e,t)=>e!==t)=>{const n=o(e);let s=new Map(Object.entries(n??{}));const c={dispose:[],get:[],set:[],reset:[]},p=new Map,a=()=>{s=new Map(Object.entries(o(e)??{})),c.reset.forEach((e=>e()))},i=e=>(c.get.forEach((t=>t(e))),s.get(e)),u=(e,n)=>{const o=s.get(e);t(n,o,e)&&(s.set(e,n),c.set.forEach((t=>t(e,n,o))))},f="undefined"==typeof Proxy?{}:new Proxy(n,{get:(e,t)=>i(t),ownKeys:()=>Array.from(s.keys()),getOwnPropertyDescriptor:()=>({enumerable:!0,configurable:!0}),has:(e,t)=>s.has(t),set:(e,t,n)=>(u(t,n),!0)}),d=(e,t)=>(c[e].push(t),()=>{r(c[e],t)});return{state:f,get:i,set:u,on:d,onChange:(t,n)=>{const s=(e,s)=>{e===t&&n(s)},r=()=>n(o(e)[t]),c=d("set",s),a=d("reset",r);return p.set(n,{setHandler:s,resetHandler:r,propName:t}),()=>{c(),a(),p.delete(n)}},use:(...e)=>{const t=e.reduce(((e,t)=>(t.set&&e.push(d("set",t.set)),t.get&&e.push(d("get",t.get)),t.reset&&e.push(d("reset",t.reset)),t.dispose&&e.push(d("dispose",t.dispose)),e)),[]);return()=>t.forEach((e=>e()))},dispose:()=>{c.dispose.forEach((e=>e())),a()},reset:a,forceUpdate:e=>{const t=s.get(e);c.set.forEach((n=>n(e,t,t)))},removeListener:(e,t)=>{const n=p.get(t);n&&n.propName===e&&(r(c.set,n.setHandler),r(c.reset,n.resetHandler),p.delete(t))}}})(n,c);return p.use((()=>{if("function"!=typeof e)return{};const n=new Map;return{dispose:()=>n.clear(),get:t=>{const s=e();s&&((e,t,n)=>{const s=e.get(t);s?s.includes(n)||s.push(n):e.set(t,[n])})(n,t,s)},set:e=>{const o=n.get(e);o&&n.set(e,o.filter(t)),s(n)},reset:()=>{n.forEach((e=>e.forEach(t))),s(n)}}})()),p};export{c}
|