@nanoporetech-digital/components 3.2.0 → 3.3.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 +21 -0
- package/dist/cjs/dom-d7c33f11.js.map +1 -1
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{modal-f09e431f.js → modal-e4defcc3.js} +3 -3
- package/dist/cjs/{modal-f09e431f.js.map → modal-e4defcc3.js.map} +1 -1
- package/dist/cjs/nano-alert.cjs.entry.js +3 -3
- package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia.cjs.entry.js +1 -1
- 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 +1 -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 +2 -2
- package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-date-input.cjs.entry.js +1 -1
- package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-details.cjs.entry.js +1 -1
- package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dialog.cjs.entry.js +3 -3
- package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-drawer.cjs.entry.js +3 -3
- package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
- 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-user-profile_3.cjs.entry.js +10 -5
- package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-nav.cjs.entry.js +27 -14
- package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-search-results.cjs.entry.js +1 -1
- package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-grid_3.cjs.entry.js +2 -2
- package/dist/cjs/nano-grid_3.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-hero.cjs.entry.js +1 -1
- package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-icon-button.cjs.entry.js +1 -1
- 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 +1 -1
- package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-menu-drawer.cjs.entry.js +1 -1
- package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/nano-progress-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-range.cjs.entry.js +1 -1
- package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-rating.cjs.entry.js +1 -1
- package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js +23 -12
- 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-split-pane.cjs.entry.js +1 -1
- package/dist/cjs/nano-split-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-sticker.cjs.entry.js +1 -1
- package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab-content.cjs.entry.js +1 -1
- package/dist/cjs/nano-tab-content.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab-group.cjs.entry.js +1 -1
- package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab.cjs.entry.js +1 -1
- package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/{nano-table-7dbe799c.js → nano-table-2ddb22be.js} +23 -23
- package/dist/cjs/nano-table-2ddb22be.js.map +1 -0
- package/dist/cjs/nano-table.cjs.entry.js +1 -1
- package/dist/cjs/nano-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/nano-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/{tabbable-de4c23d8.js → tabbable-bdf10c84.js} +13 -4
- package/dist/cjs/tabbable-bdf10c84.js.map +1 -0
- package/dist/cjs/{table.worker-fe960deb.js → table.worker-ec62a083.js} +2 -2
- package/dist/cjs/table.worker-ec62a083.js.map +1 -0
- package/dist/collection/components/alert/alert.css +16 -56
- package/dist/collection/components/algolia/algolia.css +5 -22
- package/dist/collection/components/aspect-ratio/aspect-ratio.css +2 -4
- package/dist/collection/components/checkbox/checkbox-group.css +8 -19
- package/dist/collection/components/checkbox/checkbox.css +24 -61
- package/dist/collection/components/date-input/date-input.css +8 -29
- package/dist/collection/components/date-picker/date-picker.css +22 -61
- package/dist/collection/components/details/details.css +7 -27
- package/dist/collection/components/dialog/dialog.css +20 -79
- package/dist/collection/components/drawer/drawer.css +13 -42
- package/dist/collection/components/dropdown/dropdown.css +5 -13
- package/dist/collection/components/file-upload/file-upload.css +45 -127
- package/dist/collection/components/global-nav/global-nav.js +26 -13
- package/dist/collection/components/global-nav/global-nav.js.map +1 -1
- package/dist/collection/components/global-nav/style/global-nav.css +138 -298
- package/dist/collection/components/global-search-results/global-search-results.css +81 -248
- package/dist/collection/components/grid/grid.css +21 -76
- package/dist/collection/components/hero/hero.css +22 -63
- package/dist/collection/components/icon/icon.css +2 -5
- package/dist/collection/components/icon-button/icon-button.css +4 -15
- package/dist/collection/components/img/img.css +9 -19
- package/dist/collection/components/input/input.css +34 -148
- package/dist/collection/components/menu/menu.css +1 -2
- package/dist/collection/components/menu-drawer/menu-drawer.css +16 -47
- package/dist/collection/components/nav-item/nav-item.css +73 -147
- package/dist/collection/components/nav-item/nav-item.js +8 -3
- package/dist/collection/components/nav-item/nav-item.js.map +1 -1
- package/dist/collection/components/option/option.css +10 -40
- package/dist/collection/components/progress-bar/progress-bar.css +5 -26
- package/dist/collection/components/range/range.css +20 -56
- package/dist/collection/components/rating/rating.css +9 -28
- package/dist/collection/components/resize-observe/resize-observe.js +38 -12
- package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
- package/dist/collection/components/select/select.css +56 -210
- package/dist/collection/components/skeleton/skeleton.css +2 -17
- package/dist/collection/components/slides/slide.css +4 -13
- package/dist/collection/components/slides/slides.css +3 -14
- package/dist/collection/components/spinner/spinner.css +34 -122
- package/dist/collection/components/split-pane/split-pane.css +4 -18
- package/dist/collection/components/sticker/sticker.css +8 -18
- package/dist/collection/components/table/table.children.js +10 -10
- package/dist/collection/components/table/table.children.js.map +1 -1
- package/dist/collection/components/table/table.css +87 -41
- package/dist/collection/components/table/table.js +18 -17
- package/dist/collection/components/table/table.js.map +1 -1
- package/dist/collection/components/table/table.service.js +1 -1
- package/dist/collection/components/table/table.service.js.map +1 -1
- package/dist/collection/components/tabs/tab-content.css +11 -59
- package/dist/collection/components/tabs/tab-group.css +20 -77
- package/dist/collection/components/tabs/tab.css +11 -30
- package/dist/collection/components/tooltip/tooltip.css +26 -56
- package/dist/collection/utils/dom.js.map +1 -1
- package/dist/collection/utils/modal.js +1 -1
- package/dist/collection/utils/modal.js.map +1 -1
- package/dist/collection/utils/tabbable.js +12 -3
- package/dist/collection/utils/tabbable.js.map +1 -1
- package/dist/components/algolia.js +1 -1
- package/dist/components/algolia.js.map +1 -1
- package/dist/components/date-picker.js +1 -1
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dom.js.map +1 -1
- package/dist/components/dropdown.js +1 -1
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/grid.js +1 -1
- package/dist/components/grid.js.map +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon-button.js.map +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/icon.js.map +1 -1
- package/dist/components/img.js +1 -1
- package/dist/components/img.js.map +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/input.js.map +1 -1
- package/dist/components/menu.js +1 -1
- package/dist/components/menu.js.map +1 -1
- package/dist/components/modal.js +1 -1
- package/dist/components/modal.js.map +1 -1
- package/dist/components/nano-alert.js +1 -1
- package/dist/components/nano-alert.js.map +1 -1
- package/dist/components/nano-aspect-ratio.js +1 -1
- package/dist/components/nano-aspect-ratio.js.map +1 -1
- package/dist/components/nano-checkbox-group.js +1 -1
- package/dist/components/nano-checkbox-group.js.map +1 -1
- package/dist/components/nano-checkbox.js +1 -1
- package/dist/components/nano-checkbox.js.map +1 -1
- package/dist/components/nano-date-input.js +1 -1
- package/dist/components/nano-date-input.js.map +1 -1
- package/dist/components/nano-details.js +1 -1
- package/dist/components/nano-details.js.map +1 -1
- package/dist/components/nano-dialog.js +1 -1
- package/dist/components/nano-dialog.js.map +1 -1
- package/dist/components/nano-drawer.js +1 -1
- package/dist/components/nano-drawer.js.map +1 -1
- package/dist/components/nano-file-upload.js +1 -1
- package/dist/components/nano-file-upload.js.map +1 -1
- package/dist/components/nano-global-nav.js +27 -14
- package/dist/components/nano-global-nav.js.map +1 -1
- package/dist/components/nano-global-search-results.js +1 -1
- package/dist/components/nano-global-search-results.js.map +1 -1
- package/dist/components/nano-hero.js +1 -1
- package/dist/components/nano-hero.js.map +1 -1
- package/dist/components/nano-menu-drawer.js +1 -1
- package/dist/components/nano-menu-drawer.js.map +1 -1
- package/dist/components/nano-range.js +1 -1
- package/dist/components/nano-range.js.map +1 -1
- package/dist/components/nano-rating.js +1 -1
- package/dist/components/nano-rating.js.map +1 -1
- package/dist/components/nano-slide.js +1 -1
- package/dist/components/nano-slide.js.map +1 -1
- package/dist/components/nano-slides.js +1 -1
- package/dist/components/nano-slides.js.map +1 -1
- package/dist/components/nano-split-pane.js +1 -1
- package/dist/components/nano-split-pane.js.map +1 -1
- package/dist/components/nano-tab-content.js +1 -1
- package/dist/components/nano-tab-content.js.map +1 -1
- package/dist/components/nano-tab-group.js +1 -1
- package/dist/components/nano-tab-group.js.map +1 -1
- package/dist/components/nano-tab.js +1 -1
- package/dist/components/nano-tab.js.map +1 -1
- package/dist/components/nano-table.js +21 -21
- package/dist/components/nano-table.js.map +1 -1
- package/dist/components/nav-item.js +9 -4
- package/dist/components/nav-item.js.map +1 -1
- package/dist/components/option.js +1 -1
- package/dist/components/option.js.map +1 -1
- package/dist/components/progress-bar.js +1 -1
- package/dist/components/progress-bar.js.map +1 -1
- package/dist/components/resize-observe.js +23 -13
- package/dist/components/resize-observe.js.map +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/select.js.map +1 -1
- package/dist/components/skeleton.js +1 -1
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/spinner.js +1 -1
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/sticker.js +1 -1
- package/dist/components/sticker.js.map +1 -1
- package/dist/components/tabbable.js +12 -3
- package/dist/components/tabbable.js.map +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/tooltip.js.map +1 -1
- package/dist/custom-elements/index.js +128 -91
- package/dist/custom-elements/index.js.map +1 -1
- package/dist/esm/dom-d3ad49e2.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{modal-215df46b.js → modal-5c9ce466.js} +3 -3
- package/dist/esm/{modal-215df46b.js.map → modal-5c9ce466.js.map} +1 -1
- package/dist/esm/nano-alert.entry.js +3 -3
- package/dist/esm/nano-alert.entry.js.map +1 -1
- package/dist/esm/nano-algolia.entry.js +1 -1
- 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 +1 -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 +2 -2
- package/dist/esm/nano-datalist_3.entry.js.map +1 -1
- package/dist/esm/nano-date-input.entry.js +1 -1
- package/dist/esm/nano-date-input.entry.js.map +1 -1
- package/dist/esm/nano-date-picker.entry.js +1 -1
- package/dist/esm/nano-date-picker.entry.js.map +1 -1
- package/dist/esm/nano-details.entry.js +1 -1
- package/dist/esm/nano-details.entry.js.map +1 -1
- package/dist/esm/nano-dialog.entry.js +3 -3
- package/dist/esm/nano-dialog.entry.js.map +1 -1
- package/dist/esm/nano-drawer.entry.js +3 -3
- package/dist/esm/nano-drawer.entry.js.map +1 -1
- package/dist/esm/nano-dropdown.entry.js +2 -2
- package/dist/esm/nano-dropdown.entry.js.map +1 -1
- 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-user-profile_3.entry.js +10 -5
- package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
- package/dist/esm/nano-global-nav.entry.js +27 -14
- package/dist/esm/nano-global-nav.entry.js.map +1 -1
- package/dist/esm/nano-global-search-results.entry.js +1 -1
- package/dist/esm/nano-global-search-results.entry.js.map +1 -1
- package/dist/esm/nano-grid_3.entry.js +2 -2
- package/dist/esm/nano-grid_3.entry.js.map +1 -1
- package/dist/esm/nano-hero.entry.js +1 -1
- package/dist/esm/nano-hero.entry.js.map +1 -1
- package/dist/esm/nano-icon-button.entry.js +1 -1
- 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 +1 -1
- package/dist/esm/nano-input.entry.js.map +1 -1
- package/dist/esm/nano-menu-drawer.entry.js +1 -1
- package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
- package/dist/esm/nano-progress-bar.entry.js +1 -1
- package/dist/esm/nano-progress-bar.entry.js.map +1 -1
- package/dist/esm/nano-range.entry.js +1 -1
- package/dist/esm/nano-range.entry.js.map +1 -1
- package/dist/esm/nano-rating.entry.js +1 -1
- package/dist/esm/nano-rating.entry.js.map +1 -1
- package/dist/esm/nano-resize-observe_2.entry.js +23 -12
- 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-split-pane.entry.js +1 -1
- package/dist/esm/nano-split-pane.entry.js.map +1 -1
- package/dist/esm/nano-sticker.entry.js +1 -1
- package/dist/esm/nano-sticker.entry.js.map +1 -1
- package/dist/esm/nano-tab-content.entry.js +1 -1
- package/dist/esm/nano-tab-content.entry.js.map +1 -1
- package/dist/esm/nano-tab-group.entry.js +1 -1
- package/dist/esm/nano-tab-group.entry.js.map +1 -1
- package/dist/esm/nano-tab.entry.js +1 -1
- package/dist/esm/nano-tab.entry.js.map +1 -1
- package/dist/esm/{nano-table-93d25a68.js → nano-table-9d4fbd41.js} +23 -23
- package/dist/esm/nano-table-9d4fbd41.js.map +1 -0
- package/dist/esm/nano-table.entry.js +1 -1
- package/dist/esm/nano-tooltip.entry.js +1 -1
- package/dist/esm/nano-tooltip.entry.js.map +1 -1
- package/dist/esm/{tabbable-614f515e.js → tabbable-31485ff7.js} +13 -4
- package/dist/esm/tabbable-31485ff7.js.map +1 -0
- package/dist/esm/{table.worker-5d681b97.js → table.worker-1ba8ac3f.js} +2 -2
- package/dist/esm/table.worker-1ba8ac3f.js.map +1 -0
- package/dist/nano-components/index.esm.js +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/{p-35295332.entry.js → p-151aad1e.entry.js} +5 -5
- package/dist/nano-components/{p-35295332.entry.js.map → p-151aad1e.entry.js.map} +1 -1
- package/dist/nano-components/p-15543295.entry.js +5 -0
- package/dist/nano-components/{p-6e3412d2.entry.js.map → p-15543295.entry.js.map} +1 -1
- package/dist/nano-components/p-1e709f87.entry.js +5 -0
- package/dist/nano-components/p-1e709f87.entry.js.map +1 -0
- package/dist/nano-components/p-1f347342.entry.js +5 -0
- package/dist/nano-components/{p-02df1f62.entry.js.map → p-1f347342.entry.js.map} +1 -1
- package/dist/nano-components/p-216ece9a.js +5 -0
- package/dist/nano-components/{p-39124baa.entry.js.map → p-216ece9a.js.map} +0 -0
- package/dist/nano-components/p-23575705.entry.js +5 -0
- package/dist/nano-components/{p-6958df8c.entry.js.map → p-23575705.entry.js.map} +1 -1
- package/dist/nano-components/p-244223f0.entry.js +5 -0
- package/dist/nano-components/{p-6cd59e58.entry.js.map → p-244223f0.entry.js.map} +1 -1
- package/dist/nano-components/p-284dd9a2.entry.js +5 -0
- package/dist/nano-components/{p-5107646c.entry.js.map → p-284dd9a2.entry.js.map} +1 -1
- package/dist/nano-components/p-2cb4615b.entry.js +5 -0
- package/dist/nano-components/{p-e3730878.entry.js.map → p-2cb4615b.entry.js.map} +1 -1
- package/dist/nano-components/p-36842a50.entry.js +5 -0
- package/dist/nano-components/{p-f69f93e9.entry.js.map → p-36842a50.entry.js.map} +1 -1
- package/dist/nano-components/p-41addb3a.entry.js +5 -0
- package/dist/nano-components/{p-0a5ad0ef.entry.js.map → p-41addb3a.entry.js.map} +1 -1
- package/dist/nano-components/{p-9a385481.js → p-45abbbdd.js} +2 -2
- package/dist/nano-components/p-45abbbdd.js.map +1 -0
- package/dist/nano-components/p-46b348b7.entry.js +5 -0
- package/dist/nano-components/{p-28f713fb.entry.js.map → p-46b348b7.entry.js.map} +1 -1
- package/dist/nano-components/p-4b69178e.entry.js +5 -0
- package/dist/nano-components/{p-5e33798f.entry.js.map → p-4b69178e.entry.js.map} +1 -1
- package/dist/nano-components/p-4f0e14b5.entry.js +5 -0
- package/dist/nano-components/{p-8f5e0022.entry.js.map → p-4f0e14b5.entry.js.map} +1 -1
- package/dist/nano-components/p-559a6492.entry.js +5 -0
- package/dist/nano-components/p-559a6492.entry.js.map +1 -0
- package/dist/nano-components/p-601e18d5.entry.js +5 -0
- package/dist/nano-components/p-601e18d5.entry.js.map +1 -0
- package/dist/nano-components/p-69e5a37d.entry.js +5 -0
- package/dist/nano-components/{p-282987e6.entry.js.map → p-69e5a37d.entry.js.map} +1 -1
- package/dist/nano-components/p-751927d1.entry.js +5 -0
- package/dist/nano-components/{p-5d81773d.entry.js.map → p-751927d1.entry.js.map} +1 -1
- package/dist/nano-components/p-845ae77e.js.map +1 -1
- package/dist/nano-components/p-866e7e88.js +5 -0
- package/dist/nano-components/p-866e7e88.js.map +1 -0
- package/dist/nano-components/{p-39124baa.entry.js → p-89b8ce4f.entry.js} +2 -2
- package/dist/nano-components/{p-619a1c8e.js.map → p-89b8ce4f.entry.js.map} +0 -0
- package/dist/nano-components/p-9059c8c1.entry.js +5 -0
- package/dist/nano-components/{p-d8e8d7e3.entry.js.map → p-9059c8c1.entry.js.map} +1 -1
- package/dist/nano-components/p-92504f7f.entry.js +5 -0
- package/dist/nano-components/{p-50fcb11c.entry.js.map → p-92504f7f.entry.js.map} +1 -1
- package/dist/nano-components/p-99fbae74.entry.js +5 -0
- package/dist/nano-components/{p-8a52a411.entry.js.map → p-99fbae74.entry.js.map} +1 -1
- package/dist/nano-components/p-9eeed8f5.entry.js +5 -0
- package/dist/nano-components/{p-4c97f05f.entry.js.map → p-9eeed8f5.entry.js.map} +1 -1
- package/dist/nano-components/p-a183e3c7.entry.js +5 -0
- package/dist/nano-components/{p-b290a970.entry.js.map → p-a183e3c7.entry.js.map} +1 -1
- package/dist/nano-components/p-a2e38472.entry.js +5 -0
- package/dist/nano-components/p-a2e38472.entry.js.map +1 -0
- package/dist/nano-components/p-b87539f0.entry.js +5 -0
- package/dist/nano-components/{p-efa8c520.entry.js.map → p-b87539f0.entry.js.map} +1 -1
- package/dist/nano-components/p-b9c8b99f.entry.js +5 -0
- package/dist/nano-components/p-b9c8b99f.entry.js.map +1 -0
- package/dist/nano-components/{p-cb79d1ec.js → p-c9a7c7ea.js} +2 -2
- package/dist/nano-components/{p-cb79d1ec.js.map → p-c9a7c7ea.js.map} +1 -1
- package/dist/nano-components/{p-c45851c3.entry.js → p-d1c8eca4.entry.js} +2 -2
- package/dist/nano-components/{p-c45851c3.entry.js.map → p-d1c8eca4.entry.js.map} +1 -1
- package/dist/nano-components/p-d8678bdc.entry.js +5 -0
- package/dist/nano-components/p-d8678bdc.entry.js.map +1 -0
- package/dist/nano-components/p-db4b6602.entry.js +5 -0
- package/dist/nano-components/{p-716064b6.entry.js.map → p-db4b6602.entry.js.map} +1 -1
- package/dist/nano-components/{p-916e4b6b.entry.js → p-dba8a88d.entry.js} +2 -2
- package/dist/nano-components/{p-916e4b6b.entry.js.map → p-dba8a88d.entry.js.map} +1 -1
- package/dist/nano-components/p-e4e41e06.entry.js +5 -0
- package/dist/nano-components/p-e4e41e06.entry.js.map +1 -0
- package/dist/nano-components/p-e5408bc8.entry.js +5 -0
- package/dist/nano-components/{p-c5bb5540.entry.js.map → p-e5408bc8.entry.js.map} +1 -1
- package/dist/nano-components/p-f43d1d8e.entry.js +5 -0
- package/dist/nano-components/{p-66099557.entry.js.map → p-f43d1d8e.entry.js.map} +1 -1
- package/dist/nano-components/p-f7471cca.entry.js +5 -0
- package/dist/nano-components/{p-66ad1418.entry.js.map → p-f7471cca.entry.js.map} +1 -1
- package/dist/nano-components/p-fe94eeff.entry.js +5 -0
- package/dist/nano-components/{p-701e8ebf.entry.js.map → p-fe94eeff.entry.js.map} +1 -1
- package/dist/nano-components/p-feb9f164.entry.js +5 -0
- package/dist/nano-components/{p-81136f24.entry.js.map → p-feb9f164.entry.js.map} +1 -1
- package/dist/themes/nanopore.css +1 -1
- package/dist/themes/nanopore.css.map +1 -1
- package/dist/types/components/global-nav/global-nav.d.ts +8 -3
- package/dist/types/components/resize-observe/resize-observe.d.ts +5 -2
- package/dist/types/components/table/table.d.ts +8 -7
- package/dist/types/components.d.ts +4 -0
- package/dist/types/utils/dom.d.ts +1 -1
- package/docs-json.json +167 -7
- package/docs-vscode.json +1 -1
- package/package.json +2 -2
- package/dist/cjs/nano-table-7dbe799c.js.map +0 -1
- package/dist/cjs/tabbable-de4c23d8.js.map +0 -1
- package/dist/cjs/table.worker-fe960deb.js.map +0 -1
- package/dist/collection/components/global-nav/search-widget.js +0 -4
- package/dist/collection/components/global-nav/search-widget.js.map +0 -1
- package/dist/esm/nano-table-93d25a68.js.map +0 -1
- package/dist/esm/tabbable-614f515e.js.map +0 -1
- package/dist/esm/table.worker-5d681b97.js.map +0 -1
- package/dist/nano-components/p-02df1f62.entry.js +0 -5
- package/dist/nano-components/p-0a5ad0ef.entry.js +0 -5
- package/dist/nano-components/p-282987e6.entry.js +0 -5
- package/dist/nano-components/p-28b43ee9.entry.js +0 -5
- package/dist/nano-components/p-28b43ee9.entry.js.map +0 -1
- package/dist/nano-components/p-28f713fb.entry.js +0 -5
- package/dist/nano-components/p-37553477.entry.js +0 -5
- package/dist/nano-components/p-37553477.entry.js.map +0 -1
- package/dist/nano-components/p-42fa11c3.entry.js +0 -5
- package/dist/nano-components/p-42fa11c3.entry.js.map +0 -1
- package/dist/nano-components/p-4c386a43.js +0 -5
- package/dist/nano-components/p-4c386a43.js.map +0 -1
- package/dist/nano-components/p-4c97f05f.entry.js +0 -5
- package/dist/nano-components/p-50fcb11c.entry.js +0 -5
- package/dist/nano-components/p-5107646c.entry.js +0 -5
- package/dist/nano-components/p-5d81773d.entry.js +0 -5
- package/dist/nano-components/p-5e33798f.entry.js +0 -5
- package/dist/nano-components/p-619a1c8e.js +0 -5
- package/dist/nano-components/p-653a25f8.entry.js +0 -5
- package/dist/nano-components/p-653a25f8.entry.js.map +0 -1
- package/dist/nano-components/p-66099557.entry.js +0 -5
- package/dist/nano-components/p-66ad1418.entry.js +0 -5
- package/dist/nano-components/p-6958df8c.entry.js +0 -5
- package/dist/nano-components/p-6cd59e58.entry.js +0 -5
- package/dist/nano-components/p-6e3412d2.entry.js +0 -5
- package/dist/nano-components/p-701e8ebf.entry.js +0 -5
- package/dist/nano-components/p-716064b6.entry.js +0 -5
- package/dist/nano-components/p-81136f24.entry.js +0 -5
- package/dist/nano-components/p-8a52a411.entry.js +0 -5
- package/dist/nano-components/p-8f5e0022.entry.js +0 -5
- package/dist/nano-components/p-9a385481.js.map +0 -1
- package/dist/nano-components/p-a151dea5.entry.js +0 -5
- package/dist/nano-components/p-a151dea5.entry.js.map +0 -1
- package/dist/nano-components/p-b290a970.entry.js +0 -5
- package/dist/nano-components/p-c5bb5540.entry.js +0 -5
- package/dist/nano-components/p-d8e8d7e3.entry.js +0 -5
- package/dist/nano-components/p-e3730878.entry.js +0 -5
- package/dist/nano-components/p-efa8c520.entry.js +0 -5
- package/dist/nano-components/p-f69f93e9.entry.js +0 -5
- package/dist/nano-components/p-f71f69c9.entry.js +0 -5
- package/dist/nano-components/p-f71f69c9.entry.js.map +0 -1
- package/dist/nano-components/p-fa2a6733.entry.js +0 -5
- package/dist/nano-components/p-fa2a6733.entry.js.map +0 -1
- package/dist/types/components/global-nav/search-widget.d.ts +0 -0
@@ -40,45 +40,24 @@
|
|
40
40
|
text-align: center;
|
41
41
|
white-space: nowrap;
|
42
42
|
overflow: hidden;
|
43
|
-
-webkit-transition: 0.4s width, 0.4s background-color;
|
44
43
|
transition: 0.4s width, 0.4s background-color;
|
45
|
-
|
46
|
-
transform: translateZ(0);
|
44
|
+
transform: translateZ(0);
|
47
45
|
-webkit-user-select: none;
|
48
|
-
-moz-user-select: none;
|
49
|
-
-ms-user-select: none;
|
50
46
|
user-select: none;
|
51
|
-
|
52
|
-
transform-origin: left;
|
47
|
+
transform-origin: left;
|
53
48
|
}
|
54
49
|
|
55
50
|
.progress-bar--indeterminate .progress-bar__indicator {
|
56
|
-
|
57
|
-
animation: indeterminate 2.5s infinite cubic-bezier(0.37, 0, 0.63, 1);
|
58
|
-
}
|
59
|
-
|
60
|
-
@-webkit-keyframes indeterminate {
|
61
|
-
0% {
|
62
|
-
scale: 1 1;
|
63
|
-
-webkit-transform: translateX(-100%) translateZ(0);
|
64
|
-
transform: translateX(-100%) translateZ(0);
|
65
|
-
}
|
66
|
-
75%, 100% {
|
67
|
-
scale: 1 1;
|
68
|
-
-webkit-transform: translateX(100%) translateZ(0);
|
69
|
-
transform: translateX(100%) translateZ(0);
|
70
|
-
}
|
51
|
+
animation: indeterminate 2.5s infinite cubic-bezier(0.37, 0, 0.63, 1);
|
71
52
|
}
|
72
53
|
|
73
54
|
@keyframes indeterminate {
|
74
55
|
0% {
|
75
56
|
scale: 1 1;
|
76
|
-
|
77
|
-
transform: translateX(-100%) translateZ(0);
|
57
|
+
transform: translateX(-100%) translateZ(0);
|
78
58
|
}
|
79
59
|
75%, 100% {
|
80
60
|
scale: 1 1;
|
81
|
-
|
82
|
-
transform: translateX(100%) translateZ(0);
|
61
|
+
transform: translateX(100%) translateZ(0);
|
83
62
|
}
|
84
63
|
}
|
@@ -44,19 +44,11 @@
|
|
44
44
|
}
|
45
45
|
|
46
46
|
.range-wrap {
|
47
|
-
display: -webkit-box;
|
48
|
-
display: -ms-flexbox;
|
49
47
|
display: flex;
|
50
48
|
position: relative;
|
51
|
-
|
52
|
-
|
53
|
-
flex: 3;
|
54
|
-
-webkit-box-align: center;
|
55
|
-
-ms-flex-align: center;
|
56
|
-
align-items: center;
|
49
|
+
flex: 3;
|
50
|
+
align-items: center;
|
57
51
|
-webkit-user-select: none;
|
58
|
-
-moz-user-select: none;
|
59
|
-
-ms-user-select: none;
|
60
52
|
user-select: none;
|
61
53
|
}
|
62
54
|
.range-wrap ::slotted(ion-icon[slot]) {
|
@@ -75,20 +67,15 @@
|
|
75
67
|
|
76
68
|
.range-slider {
|
77
69
|
position: relative;
|
78
|
-
|
79
|
-
-ms-flex: 1;
|
80
|
-
flex: 1;
|
70
|
+
flex: 1;
|
81
71
|
width: 100%;
|
82
72
|
height: var(--height);
|
83
73
|
contain: size layout style;
|
84
|
-
cursor: -webkit-grab;
|
85
74
|
cursor: grab;
|
86
|
-
|
87
|
-
touch-action: pan-y;
|
75
|
+
touch-action: pan-y;
|
88
76
|
}
|
89
77
|
|
90
78
|
:host(.range-pressed) .range-slider {
|
91
|
-
cursor: -webkit-grabbing;
|
92
79
|
cursor: grabbing;
|
93
80
|
}
|
94
81
|
|
@@ -123,31 +110,22 @@
|
|
123
110
|
width: var(--knob-size);
|
124
111
|
height: var(--knob-size);
|
125
112
|
background: var(--knob-background);
|
126
|
-
|
127
|
-
box-shadow: var(--knob-box-shadow);
|
113
|
+
box-shadow: var(--knob-box-shadow);
|
128
114
|
z-index: 2;
|
129
115
|
pointer-events: none;
|
130
|
-
|
131
|
-
|
132
|
-
-webkit-transition-duration: 120ms;
|
133
|
-
transition-duration: 120ms;
|
134
|
-
-webkit-transition-property: background-color, border, -webkit-transform;
|
135
|
-
transition-property: background-color, border, -webkit-transform;
|
116
|
+
transform: scale(0.67);
|
117
|
+
transition-duration: 120ms;
|
136
118
|
transition-property: transform, background-color, border;
|
137
|
-
transition-
|
138
|
-
-webkit-transition-timing-function: ease;
|
139
|
-
transition-timing-function: ease;
|
119
|
+
transition-timing-function: ease;
|
140
120
|
}
|
141
121
|
:host(:not(.range-has-pin)) .range-knob-pressed .range-knob {
|
142
|
-
|
143
|
-
transform: scale(1);
|
122
|
+
transform: scale(1);
|
144
123
|
}
|
145
124
|
|
146
125
|
.range-knob-handle {
|
147
126
|
inset-block-start: calc((var(--height) - var(--knob-handle-size)) / 2);
|
148
127
|
inset-inline-start: 0;
|
149
|
-
-
|
150
|
-
margin-inline-start: calc(0px - var(--knob-handle-size) / 2);
|
128
|
+
margin-inline-start: calc(0px - var(--knob-handle-size) / 2);
|
151
129
|
position: absolute;
|
152
130
|
width: calc(var(--knob-handle-size));
|
153
131
|
height: calc(var(--knob-handle-size));
|
@@ -157,8 +135,7 @@
|
|
157
135
|
outline: none;
|
158
136
|
}
|
159
137
|
.range-knob-handle:active .range-knob, .range-knob-handle:focus .range-knob {
|
160
|
-
|
161
|
-
box-shadow: var(--knob-box-shadow), var(--focus-style);
|
138
|
+
box-shadow: var(--knob-box-shadow), var(--focus-style);
|
162
139
|
}
|
163
140
|
|
164
141
|
.range-tick {
|
@@ -181,23 +158,17 @@
|
|
181
158
|
}
|
182
159
|
|
183
160
|
.range-pin {
|
184
|
-
|
185
|
-
|
186
|
-
-webkit-transform-origin: center top;
|
187
|
-
transform-origin: center top;
|
161
|
+
transform: translate3d(0, 0, 0) scale(0.01);
|
162
|
+
transform-origin: center top;
|
188
163
|
padding: 0.66em 0;
|
189
164
|
border-radius: 50%;
|
190
165
|
text-align: center;
|
191
|
-
|
192
|
-
box-sizing: border-box;
|
166
|
+
box-sizing: border-box;
|
193
167
|
display: inline-block;
|
194
168
|
position: relative;
|
195
169
|
min-width: 2.33em;
|
196
170
|
height: 2.33em;
|
197
|
-
-webkit-transition: background 120ms ease, -webkit-transform 120ms ease;
|
198
|
-
transition: background 120ms ease, -webkit-transform 120ms ease;
|
199
171
|
transition: transform 120ms ease, background 120ms ease;
|
200
|
-
transition: transform 120ms ease, background 120ms ease, -webkit-transform 120ms ease;
|
201
172
|
background: var(--pin-background);
|
202
173
|
color: var(--pin-color);
|
203
174
|
font-size: 0.75em;
|
@@ -205,25 +176,20 @@
|
|
205
176
|
.range-pin::before {
|
206
177
|
inset-block-start: 0.25em;
|
207
178
|
inset-inline-start: 50%;
|
208
|
-
-
|
209
|
-
margin-inline-start: -1.08em;
|
179
|
+
margin-inline-start: -1.08em;
|
210
180
|
border-radius: 50% 50% 50% 0;
|
211
181
|
position: absolute;
|
212
182
|
width: 2.16em;
|
213
183
|
height: 2.16em;
|
214
|
-
|
215
|
-
transform: rotate(-45deg);
|
216
|
-
-webkit-transition: background 120ms ease;
|
184
|
+
transform: rotate(-45deg);
|
217
185
|
transition: background 120ms ease;
|
218
186
|
background: var(--pin-background);
|
219
187
|
content: "";
|
220
188
|
z-index: -1;
|
221
189
|
}
|
222
190
|
.range-knob-pressed .range-pin {
|
223
|
-
|
224
|
-
|
225
|
-
-webkit-transform: translate3d(0, calc((100% - var(--bar-height)) * -1), 0) scale(1);
|
226
|
-
transform: translate3d(0, calc((100% - var(--bar-height)) * -1), 0) scale(1);
|
191
|
+
transform: translate3d(0, -50%, 0) scale(1);
|
192
|
+
transform: translate3d(0, calc((100% - var(--bar-height)) * -1), 0) scale(1);
|
227
193
|
}
|
228
194
|
|
229
195
|
:host(.range-disabled) {
|
@@ -235,8 +201,7 @@
|
|
235
201
|
background-color: rgba(var(--rgb-inactive), 0.5);
|
236
202
|
}
|
237
203
|
:host(.range-disabled) .range-knob {
|
238
|
-
|
239
|
-
transform: scale(0.55);
|
204
|
+
transform: scale(0.55);
|
240
205
|
outline: 5px solid #fff;
|
241
206
|
background-color: rgba(var(--rgb-inactive), 0.5);
|
242
207
|
}
|
@@ -253,6 +218,5 @@
|
|
253
218
|
background: rgba(var(--nano-color-base-rgb), 0.26);
|
254
219
|
}
|
255
220
|
:host(.nano-color) .range-knob-handle:active .range-knob, :host(.nano-color) .range-knob-handle:focus .range-knob {
|
256
|
-
|
257
|
-
box-shadow: var(--knob-box-shadow), 0 0 0 5px rgba(var(--nano-color-tint-rgb), 0.56);
|
221
|
+
box-shadow: var(--knob-box-shadow), 0 0 0 5px rgba(var(--nano-color-tint-rgb), 0.56);
|
258
222
|
}
|
@@ -27,14 +27,10 @@
|
|
27
27
|
|
28
28
|
.rating-wrap {
|
29
29
|
position: relative;
|
30
|
-
-
|
31
|
-
|
32
|
-
-
|
33
|
-
|
34
|
-
-webkit-margin-start: calc(var(--symbol-spacing) * -1);
|
35
|
-
margin-inline-start: calc(var(--symbol-spacing) * -1);
|
36
|
-
-webkit-margin-end: calc(var(--symbol-spacing) * -1);
|
37
|
-
margin-inline-end: calc(var(--symbol-spacing) * -1);
|
30
|
+
margin-block-start: 0;
|
31
|
+
margin-block-end: 0;
|
32
|
+
margin-inline-start: calc(var(--symbol-spacing) * -1);
|
33
|
+
margin-inline-end: calc(var(--symbol-spacing) * -1);
|
38
34
|
}
|
39
35
|
|
40
36
|
.rating {
|
@@ -42,34 +38,24 @@
|
|
42
38
|
border-radius: 5px;
|
43
39
|
vertical-align: middle;
|
44
40
|
inline-size: 100%;
|
45
|
-
-webkit-transition: -webkit-box-shadow 0.15s ease;
|
46
|
-
transition: -webkit-box-shadow 0.15s ease;
|
47
41
|
transition: box-shadow 0.15s ease;
|
48
|
-
transition: box-shadow 0.15s ease, -webkit-box-shadow 0.15s ease;
|
49
42
|
}
|
50
43
|
.rating:focus {
|
51
44
|
outline: none;
|
52
45
|
}
|
53
46
|
.rating.focus-visible:focus {
|
54
|
-
|
55
|
-
box-shadow: var(--focus-shadow);
|
47
|
+
box-shadow: var(--focus-shadow);
|
56
48
|
}
|
57
49
|
.rating__symbols {
|
58
|
-
display: -webkit-box;
|
59
|
-
display: -ms-flexbox;
|
60
50
|
display: flex;
|
61
|
-
-
|
62
|
-
-ms-flex-align: center;
|
63
|
-
align-items: center;
|
51
|
+
align-items: center;
|
64
52
|
position: relative;
|
65
53
|
font-size: var(--symbol-size);
|
66
54
|
color: var(--symbol-color);
|
67
55
|
white-space: nowrap;
|
68
56
|
cursor: pointer;
|
69
57
|
line-height: 0;
|
70
|
-
-
|
71
|
-
-ms-flex-pack: justify;
|
72
|
-
justify-content: space-between;
|
58
|
+
justify-content: space-between;
|
73
59
|
}
|
74
60
|
.rating__symbols--inactive .rating__symbol > :not(nano-icon) {
|
75
61
|
background-color: currentColor !important;
|
@@ -86,22 +72,17 @@
|
|
86
72
|
inline-size: 100%;
|
87
73
|
}
|
88
74
|
.rating__symbol {
|
89
|
-
-webkit-transition: 0.2s -webkit-transform;
|
90
|
-
transition: 0.2s -webkit-transform;
|
91
75
|
transition: 0.2s transform;
|
92
|
-
transition: 0.2s transform, 0.2s -webkit-transform;
|
93
76
|
text-align: center;
|
94
77
|
}
|
95
78
|
.rating__symbol--hover {
|
96
|
-
|
97
|
-
transform: scale(1.2);
|
79
|
+
transform: scale(1.2);
|
98
80
|
}
|
99
81
|
.rating--disabled .rating__symbols, .rating--readonly .rating__symbols {
|
100
82
|
cursor: default;
|
101
83
|
}
|
102
84
|
.rating--disabled .rating__symbol, .rating--readonly .rating__symbol {
|
103
|
-
|
104
|
-
transform: none !important;
|
85
|
+
transform: none !important;
|
105
86
|
}
|
106
87
|
.rating--disabled {
|
107
88
|
opacity: 0.5;
|
@@ -2,7 +2,6 @@
|
|
2
2
|
* Web Components for Nanopore digital Web Apps
|
3
3
|
*/
|
4
4
|
import { h, Host, readTask, } from '@stencil/core';
|
5
|
-
import { debounce } from '../../utils/throttle';
|
6
5
|
/**
|
7
6
|
* A Resize-Observer utility component.
|
8
7
|
* Takes a string list of sizes and optional class-names. Adds class-names and fires `nanoResizeStateChange` events when the component reaches those sizes.
|
@@ -10,6 +9,7 @@ import { debounce } from '../../utils/throttle';
|
|
10
9
|
*/
|
11
10
|
export class ResizeObserve {
|
12
11
|
constructor() {
|
12
|
+
this.isReady = false;
|
13
13
|
this.assessChanges = () => {
|
14
14
|
if (!this.currentWidth && !this.currentHeight)
|
15
15
|
return;
|
@@ -44,6 +44,13 @@ export class ResizeObserve {
|
|
44
44
|
this.classNames = [];
|
45
45
|
this.states = undefined;
|
46
46
|
}
|
47
|
+
classNameChange() {
|
48
|
+
this.host.className = this.classNames.join(' ');
|
49
|
+
if (!this.isReady && this.classNames.includes('is-ready')) {
|
50
|
+
this.isReady = true;
|
51
|
+
this.nanoResizeObserverReady.emit();
|
52
|
+
}
|
53
|
+
}
|
47
54
|
dimensionChanged() {
|
48
55
|
this.assessChanges();
|
49
56
|
}
|
@@ -81,10 +88,14 @@ export class ResizeObserve {
|
|
81
88
|
if (!state.states)
|
82
89
|
return;
|
83
90
|
state.states.map((st) => {
|
84
|
-
if (state.applied)
|
91
|
+
if (state.applied) {
|
85
92
|
classNames.push(st);
|
86
|
-
|
93
|
+
classNames = classNames.filter((cl) => cl !== 'not-' + st);
|
94
|
+
}
|
95
|
+
else {
|
96
|
+
classNames.push('not-' + st);
|
87
97
|
classNames = classNames.filter((cl) => cl !== st);
|
98
|
+
}
|
88
99
|
});
|
89
100
|
});
|
90
101
|
});
|
@@ -109,10 +120,8 @@ export class ResizeObserve {
|
|
109
120
|
});
|
110
121
|
this.ro.observe(this.host);
|
111
122
|
}
|
112
|
-
|
113
|
-
this.
|
114
|
-
}
|
115
|
-
componentDidLoad() {
|
123
|
+
componentWillLoad() {
|
124
|
+
this.classNames = Array.from(this.host.classList);
|
116
125
|
if (!this.states)
|
117
126
|
return;
|
118
127
|
if (!this.currentWidth || !this.currentHeight) {
|
@@ -123,19 +132,18 @@ export class ResizeObserve {
|
|
123
132
|
});
|
124
133
|
}
|
125
134
|
this.statesChanged();
|
135
|
+
// set all class as 'not-' by deafult
|
136
|
+
this.applyChanges(this.appliedStates);
|
126
137
|
}
|
127
138
|
disconnectedCallback() {
|
128
139
|
if (this.ro)
|
129
140
|
this.ro.disconnect();
|
130
141
|
}
|
131
142
|
render() {
|
132
|
-
return (h(Host,
|
133
|
-
[this.classNames.join(' ')]: true,
|
134
|
-
} }, h("slot", null)));
|
143
|
+
return (h(Host, null, h("slot", null)));
|
135
144
|
}
|
136
145
|
static get is() { return "nano-resize-observe"; }
|
137
|
-
static get
|
138
|
-
static get styles() { return ":host { display: block }"; }
|
146
|
+
static get styles() { return "nano-resize-observe { display: block }"; }
|
139
147
|
static get properties() {
|
140
148
|
return {
|
141
149
|
"states": {
|
@@ -187,11 +195,29 @@ export class ResizeObserve {
|
|
187
195
|
}
|
188
196
|
}
|
189
197
|
}
|
198
|
+
}, {
|
199
|
+
"method": "nanoResizeObserverReady",
|
200
|
+
"name": "nanoResizeObserverReady",
|
201
|
+
"bubbles": true,
|
202
|
+
"cancelable": true,
|
203
|
+
"composed": true,
|
204
|
+
"docs": {
|
205
|
+
"tags": [],
|
206
|
+
"text": "Fires after the initial loading and assessment"
|
207
|
+
},
|
208
|
+
"complexType": {
|
209
|
+
"original": "void",
|
210
|
+
"resolved": "void",
|
211
|
+
"references": {}
|
212
|
+
}
|
190
213
|
}];
|
191
214
|
}
|
192
215
|
static get elementRef() { return "host"; }
|
193
216
|
static get watchers() {
|
194
217
|
return [{
|
218
|
+
"propName": "classNames",
|
219
|
+
"methodName": "classNameChange"
|
220
|
+
}, {
|
195
221
|
"propName": "currentHeight",
|
196
222
|
"methodName": "dimensionChanged"
|
197
223
|
}, {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"resize-observe.js","sourceRoot":"","sources":["../../../src/components/resize-observe/resize-observe.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,CAAC,EACD,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,KAAK,EACL,KAAK,EAEL,KAAK,EAEL,QAAQ,GACT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAShD;;;;GAIG;AAMH,MAAM,OAAO,aAAa;;IAkDhB,kBAAa,GAAG,GAAG,EAAE;MAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa;QAAE,OAAO;MACtD,MAAM,aAAa,GAAc,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;MAChE,IAAI,UAAU,GAAG,KAAK,CAAC;MAEvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAClD,IAAI,GAAW,CAAC;QAChB,IAAI,OAAO,KAAK,GAAG;UAAE,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;;UACzC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QAE7B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CACjC,CAAC,KAA0B,EAAE,EAAU,EAAE,EAAE;UACzC,IAAI,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,EAAE;YACxC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACtC,UAAU,GAAG,IAAI,CAAC;WACnB;eAAM,IAAI,GAAG,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;YAC7C,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YACtB,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACtC,UAAU,GAAG,IAAI,CAAC;WACnB;QACH,CAAC,CACF,CAAC;MACJ,CAAC,CAAC,CAAC;MACH,IAAI,UAAU;QAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;WAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC,CAAC;;;sBAtE8B,EAAE;;;EAWlC,gBAAgB;IACd,IAAI,CAAC,aAAa,EAAE,CAAC;EACvB,CAAC;EAGD,aAAa;IACX,IAAI,CAAC,IAAI,CAAC,MAAM;MAAE,OAAO;IACzB,IAAI,CAAC,IAAI,CAAC,EAAE;MAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAE9B,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;MAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;MAChE,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,CAAC,CAAC;IACF,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAEpD,qBAAqB;IACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;MAChC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;MACf,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACpB,MAAM,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,GAAsB,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;UACjD,MAAM,EAAE,OAAO;UACf,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;OACJ;WAAM;QACL,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,GAAsB,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;OACxE;IACH,CAAC,CAAC,CAAC;EACL,CAAC;EA+BO,YAAY,CAAC,OAAkB;IACrC,IAAI,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,OAAwB,EAAE,EAAE;MACxD,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACjC,IAAI,CAAC,KAAK,CAAC,MAAM;UAAE,OAAO;QAC1B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;UACtB,IAAI,KAAK,CAAC,OAAO;YAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;YAClC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;MACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,GAAG,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;EAC7D,CAAC;EAEO,WAAW,CAAC,SAAoB;IACtC,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,OAAwB,EAAE,EAAE;MAC1D,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAA0B,EAAE,EAAU,EAAE,EAAE;QACpE,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;MACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;EAChB,CAAC;EAEO,QAAQ;IACd,IAAI,CAAC,EAAE,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE;MACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;OAC/C;IACH,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC7B,CAAC;EAED,iBAAiB;IACf,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;EACxD,CAAC;EAED,gBAAgB;IACd,IAAI,CAAC,IAAI,CAAC,MAAM;MAAE,OAAO;IACzB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;MAC7C,QAAQ,CAAC,GAAG,EAAE;QACZ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC5D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;MAC9B,CAAC,CAAC,CAAC;KACJ;IACD,IAAI,CAAC,aAAa,EAAE,CAAC;EACvB,CAAC;EAED,oBAAoB;IAClB,IAAI,IAAI,CAAC,EAAE;MAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;EACpC,CAAC;EAED,MAAM;IACJ,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;QACL,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI;OAClC;MAED,eAAQ,CACH,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n h,\n Prop,\n Element,\n Host,\n State,\n Watch,\n ComponentInterface,\n Event,\n EventEmitter,\n readTask,\n} from '@stencil/core';\nimport { debounce } from '../../utils/throttle';\nimport type { ResizeStateChangeEventDetail } from '../../interface';\n\ntype ResizeObserverState = { states?: string[]; applied?: boolean };\ninterface StateMaps {\n h: Map<number, ResizeObserverState>;\n w: Map<number, ResizeObserverState>;\n}\n\n/**\n * A Resize-Observer utility component.\n * Takes a string list of sizes and optional class-names. Adds class-names and fires `nanoResizeStateChange` events when the component reaches those sizes.\n * @slot - Main slot for any content.\n */\n@Component({\n tag: 'nano-resize-observe',\n shadow: true,\n styles: `:host { display: block }`,\n})\nexport class ResizeObserve implements ComponentInterface {\n private ro: ResizeObserver;\n private appliedStates: StateMaps;\n\n @Element() host: HTMLNanoResizeObserveElement;\n @State() currentWidth: number;\n @State() currentHeight: number;\n @State() classNames: string[] = [];\n\n /** string list of sizes and optional class-names. Adds class-names and fires nanoResizeStateChange events. Upon hitting breakpoints.\n * Format: `states=\"800w, 300h class1 class2\"` */\n @Prop() states: string;\n\n /** A resize break point is switched on or off */\n @Event() nanoResizeStateChange!: EventEmitter<ResizeStateChangeEventDetail>;\n\n @Watch('currentHeight')\n @Watch('currentWidth')\n dimensionChanged() {\n this.assessChanges();\n }\n\n @Watch('states')\n statesChanged() {\n if (!this.states) return;\n if (!this.ro) this.attachRO();\n\n const toBpDir = (bpDir: string) => {\n const bpDirSpl = bpDir.split(/(\\d+)/).filter((bs) => bs.length);\n return { bp: parseInt(bpDirSpl[0]), dir: bpDirSpl[1] };\n };\n this.appliedStates = { h: new Map(), w: new Map() };\n\n // parse state string\n this.states.split(',').map((st) => {\n st = st.trim();\n if (st.includes(' ')) {\n const [key, ...classes] = st.split(' ');\n const { bp, dir } = toBpDir(key);\n this.appliedStates[dir as keyof StateMaps].set(bp, {\n states: classes,\n applied: false,\n });\n } else {\n const { bp, dir } = toBpDir(st);\n this.appliedStates[dir as keyof StateMaps].set(bp, { applied: false });\n }\n });\n }\n\n private assessChanges = () => {\n if (!this.currentWidth && !this.currentHeight) return;\n const changedStates: StateMaps = { h: new Map(), w: new Map() };\n let hasChanged = false;\n\n Object.keys(this.appliedStates).forEach((dimType) => {\n let dim: number;\n if (dimType === 'h') dim = this.currentHeight;\n else dim = this.currentWidth;\n\n this.appliedStates[dimType].forEach(\n (state: ResizeObserverState, bp: number) => {\n if (dim >= bp && state.applied === false) {\n state.applied = true;\n changedStates[dimType].set(bp, state);\n hasChanged = true;\n } else if (dim < bp && state.applied === true) {\n state.applied = false;\n changedStates[dimType].set(bp, state);\n hasChanged = true;\n }\n }\n );\n });\n if (hasChanged) this.applyChanges(changedStates);\n else if (!this.classNames.includes('is-ready'))\n this.classNames = ['is-ready'];\n };\n\n private applyChanges(changes: StateMaps) {\n let classNames = [...this.classNames];\n Object.keys(changes).forEach((dimType: keyof StateMaps) => {\n changes[dimType].forEach((state) => {\n if (!state.states) return;\n state.states.map((st) => {\n if (state.applied) classNames.push(st);\n else classNames = classNames.filter((cl) => cl !== st);\n });\n });\n });\n this.classNames = ['is-ready', ...classNames];\n this.nanoResizeStateChange.emit(this.toSimpleObj(changes));\n }\n\n private toSimpleObj(stateMaps: StateMaps) {\n const retObj = {};\n Object.keys(stateMaps).forEach((dimType: keyof StateMaps) => {\n stateMaps[dimType].forEach((state: ResizeObserverState, bp: number) => {\n retObj[bp + dimType] = state.applied;\n });\n });\n return retObj;\n }\n\n private attachRO() {\n this.ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n this.currentWidth = entry.contentRect.width;\n this.currentHeight = entry.contentRect.height;\n }\n });\n this.ro.observe(this.host);\n }\n\n connectedCallback() {\n this.assessChanges = debounce(this.assessChanges, 50);\n }\n\n componentDidLoad() {\n if (!this.states) return;\n if (!this.currentWidth || !this.currentHeight) {\n readTask(() => {\n const { width, height } = this.host.getBoundingClientRect();\n this.currentWidth = width;\n this.currentHeight = height;\n });\n }\n this.statesChanged();\n }\n\n disconnectedCallback() {\n if (this.ro) this.ro.disconnect();\n }\n\n render() {\n return (\n <Host\n class={{\n [this.classNames.join(' ')]: true,\n }}\n >\n <slot />\n </Host>\n );\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"resize-observe.js","sourceRoot":"","sources":["../../../src/components/resize-observe/resize-observe.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n Element,\n Host,\n State,\n Watch,\n ComponentInterface,\n Event,\n EventEmitter,\n readTask,\n} from '@stencil/core';\n// import { debounce } from '../../utils/throttle';\nimport type { ResizeStateChangeEventDetail } from '../../interface';\n\ntype ResizeObserverState = { states?: string[]; applied?: boolean };\ninterface StateMaps {\n h: Map<number, ResizeObserverState>;\n w: Map<number, ResizeObserverState>;\n}\n\n/**\n * A Resize-Observer utility component.\n * Takes a string list of sizes and optional class-names. Adds class-names and fires `nanoResizeStateChange` events when the component reaches those sizes.\n * @slot - Main slot for any content.\n */\n@Component({\n tag: 'nano-resize-observe',\n styles: `nano-resize-observe { display: block }`,\n})\nexport class ResizeObserve implements ComponentInterface {\n private ro: ResizeObserver;\n private appliedStates: StateMaps;\n private isReady = false;\n\n @Element() host: HTMLNanoResizeObserveElement;\n @State() currentWidth: number;\n @State() currentHeight: number;\n @State() classNames: string[] = [];\n\n @Watch('classNames')\n classNameChange() {\n this.host.className = this.classNames.join(' ');\n if (!this.isReady && this.classNames.includes('is-ready')) {\n this.isReady = true;\n this.nanoResizeObserverReady.emit();\n }\n }\n\n /** string list of sizes and optional class-names. Adds class-names and fires nanoResizeStateChange events. Upon hitting breakpoints.\n * Format: `states=\"800w, 300h class1 class2\"` */\n @Prop() states: string;\n\n /** A resize break point is switched on or off */\n @Event() nanoResizeStateChange!: EventEmitter<ResizeStateChangeEventDetail>;\n\n /** Fires after the initial loading and assessment */\n @Event() nanoResizeObserverReady!: EventEmitter<void>;\n\n @Watch('currentHeight')\n @Watch('currentWidth')\n dimensionChanged() {\n this.assessChanges();\n }\n\n @Watch('states')\n statesChanged() {\n if (!this.states) return;\n if (!this.ro) this.attachRO();\n\n const toBpDir = (bpDir: string) => {\n const bpDirSpl = bpDir.split(/(\\d+)/).filter((bs) => bs.length);\n return { bp: parseInt(bpDirSpl[0]), dir: bpDirSpl[1] };\n };\n this.appliedStates = { h: new Map(), w: new Map() };\n\n // parse state string\n this.states.split(',').map((st) => {\n st = st.trim();\n if (st.includes(' ')) {\n const [key, ...classes] = st.split(' ');\n const { bp, dir } = toBpDir(key);\n this.appliedStates[dir as keyof StateMaps].set(bp, {\n states: classes,\n applied: false,\n });\n } else {\n const { bp, dir } = toBpDir(st);\n this.appliedStates[dir as keyof StateMaps].set(bp, { applied: false });\n }\n });\n }\n\n private assessChanges = () => {\n if (!this.currentWidth && !this.currentHeight) return;\n const changedStates: StateMaps = { h: new Map(), w: new Map() };\n let hasChanged = false;\n\n Object.keys(this.appliedStates).forEach((dimType) => {\n let dim: number;\n if (dimType === 'h') dim = this.currentHeight;\n else dim = this.currentWidth;\n\n this.appliedStates[dimType].forEach(\n (state: ResizeObserverState, bp: number) => {\n if (dim >= bp && state.applied === false) {\n state.applied = true;\n changedStates[dimType].set(bp, state);\n hasChanged = true;\n } else if (dim < bp && state.applied === true) {\n state.applied = false;\n changedStates[dimType].set(bp, state);\n hasChanged = true;\n }\n }\n );\n });\n if (hasChanged) this.applyChanges(changedStates);\n else if (!this.classNames.includes('is-ready'))\n this.classNames = ['is-ready'];\n };\n\n private applyChanges(changes: StateMaps) {\n let classNames = [...this.classNames];\n Object.keys(changes).forEach((dimType: keyof StateMaps) => {\n changes[dimType].forEach((state) => {\n if (!state.states) return;\n state.states.map((st) => {\n if (state.applied) {\n classNames.push(st);\n classNames = classNames.filter((cl) => cl !== 'not-' + st);\n } else {\n classNames.push('not-' + st);\n classNames = classNames.filter((cl) => cl !== st);\n }\n });\n });\n });\n this.classNames = ['is-ready', ...classNames];\n this.nanoResizeStateChange.emit(this.toSimpleObj(changes));\n }\n\n private toSimpleObj(stateMaps: StateMaps) {\n const retObj = {};\n Object.keys(stateMaps).forEach((dimType: keyof StateMaps) => {\n stateMaps[dimType].forEach((state: ResizeObserverState, bp: number) => {\n retObj[bp + dimType] = state.applied;\n });\n });\n return retObj;\n }\n\n private attachRO() {\n this.ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n this.currentWidth = entry.contentRect.width;\n this.currentHeight = entry.contentRect.height;\n }\n });\n this.ro.observe(this.host);\n }\n\n componentWillLoad() {\n this.classNames = Array.from(this.host.classList);\n if (!this.states) return;\n\n if (!this.currentWidth || !this.currentHeight) {\n readTask(() => {\n const { width, height } = this.host.getBoundingClientRect();\n this.currentWidth = width;\n this.currentHeight = height;\n });\n }\n this.statesChanged();\n // set all class as 'not-' by deafult\n this.applyChanges(this.appliedStates);\n }\n\n disconnectedCallback() {\n if (this.ro) this.ro.disconnect();\n }\n\n render() {\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n}\n"]}
|