@nanoporetech-digital/components 3.7.1 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/dist/cjs/{algolia-data-9152d0ef.js → algolia-data-fb13160a.js} +2 -2
- package/dist/cjs/{algolia-data-9152d0ef.js.map → algolia-data-fb13160a.js.map} +1 -1
- package/dist/cjs/{algoliasearch.umd-7ee60729.js → algoliasearch.umd-689c1560.js} +3 -3
- package/dist/cjs/{algoliasearch.umd-7ee60729.js.map → algoliasearch.umd-689c1560.js.map} +1 -1
- package/dist/cjs/{component-store-d7c8c326.js → component-store-b80bdb26.js} +25 -12
- package/dist/cjs/component-store-b80bdb26.js.map +1 -0
- package/dist/cjs/{dom-d7c33f11.js → dom-7acf7afd.js} +15 -15
- package/dist/cjs/dom-7acf7afd.js.map +1 -0
- package/dist/cjs/{form-control-57c71246.js → form-control-845951ac.js} +4 -4
- package/dist/cjs/form-control-845951ac.js.map +1 -0
- package/dist/{esm/global-8047b4ff.js → cjs/global-3a6a7873.js} +5 -14
- package/dist/cjs/global-3a6a7873.js.map +1 -0
- package/dist/cjs/{index-bb2a6ab8.js → index-5e11be36.js} +2 -2
- package/dist/cjs/{index-bb2a6ab8.js.map → index-5e11be36.js.map} +1 -1
- package/dist/cjs/{index-ece1cb9e.js → index-72ee0363.js} +2 -10
- package/dist/cjs/index-72ee0363.js.map +1 -0
- package/dist/cjs/{index-41582c2a.js → index-e1b5c3ea.js} +1438 -516
- package/dist/cjs/index-e1b5c3ea.js.map +1 -0
- package/dist/cjs/index.cjs.js +18 -35
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +5 -4
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/{modal-e4defcc3.js → modal-5884a6de.js} +3 -2
- package/dist/cjs/modal-5884a6de.js.map +1 -0
- package/dist/cjs/nano-accordion.cjs.entry.js +4 -7
- package/dist/cjs/nano-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-alert.cjs.entry.js +25 -19
- package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-filter.cjs.entry.js +5 -5
- package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-input.cjs.entry.js +4 -4
- package/dist/cjs/nano-algolia-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-pagination.cjs.entry.js +2 -2
- package/dist/cjs/nano-algolia-results.cjs.entry.js +2 -2
- package/dist/cjs/nano-algolia.cjs.entry.js +8 -8
- 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-checkbox-group.cjs.entry.js +52 -9
- package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-checkbox.cjs.entry.js +8 -8
- package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-components.cjs.js +8 -4
- package/dist/cjs/nano-components.cjs.js.map +1 -1
- package/dist/cjs/nano-datalist_3.cjs.entry.js +46 -36
- package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-date-input.cjs.entry.js +6 -6
- package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-date-picker.cjs.entry.js +4 -4
- package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-demo.cjs.entry.js +13 -9
- package/dist/cjs/nano-demo.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-details.cjs.entry.js +4 -4
- package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dialog.cjs.entry.js +6 -6
- package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-drawer.cjs.entry.js +5 -5
- package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dropdown.cjs.entry.js +9 -4
- package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-field-validator.cjs.entry.js +4 -3
- package/dist/cjs/nano-field-validator.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-file-upload.cjs.entry.js +5 -5
- package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +54 -67
- package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-nav.cjs.entry.js +54 -26
- package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-search-results.cjs.entry.js +6 -4
- package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-grid_3.cjs.entry.js +8 -7
- package/dist/cjs/nano-grid_3.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-hero.cjs.entry.js +4 -2
- package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-icon-button.cjs.entry.js +2 -2
- package/dist/cjs/nano-icon-button.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-icon.cjs.entry.js +7 -14
- package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-input.cjs.entry.js +19 -33
- package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-menu-drawer.cjs.entry.js +3 -3
- package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-progress-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/nano-progress-bar_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-range.cjs.entry.js +4 -4
- package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-rating.cjs.entry.js +2 -2
- package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js +18 -10
- 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-slides.cjs.entry.js +11 -21
- package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-spinner.cjs.entry.js +3 -3
- package/dist/cjs/nano-spinner.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-split-pane.cjs.entry.js +15 -13
- package/dist/cjs/nano-split-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-sticker.cjs.entry.js +6 -4
- package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab-content.cjs.entry.js +9 -3
- package/dist/cjs/nano-tab-content.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab-group.cjs.entry.js +18 -12
- package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab.cjs.entry.js +2 -2
- package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/{nano-table-820b04d5.js → nano-table-e76a8dde.js} +115 -150
- package/dist/cjs/nano-table-e76a8dde.js.map +1 -0
- package/dist/cjs/nano-table.cjs.entry.js +3 -3
- package/dist/cjs/{popover-508bcedb.js → popover-088646b2.js} +61 -50
- package/dist/cjs/popover-088646b2.js.map +1 -0
- package/dist/cjs/{scroll-9bb5e060.js → scroll-a197d9c4.js} +2 -2
- package/dist/cjs/{scroll-9bb5e060.js.map → scroll-a197d9c4.js.map} +1 -1
- package/dist/cjs/{table.worker-9e238d16.js → table.worker-988d87da.js} +4 -4
- package/dist/cjs/table.worker-988d87da.js.map +1 -0
- package/dist/cjs/{theme-50275e1a.js → theme-9cbe28c5.js} +2 -7
- package/dist/cjs/theme-9cbe28c5.js.map +1 -0
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/accordion/accordion.js +1 -4
- package/dist/collection/components/accordion/accordion.js.map +1 -1
- package/dist/collection/components/alert/alert.css +4 -3
- package/dist/collection/components/alert/alert.helpers.js +6 -24
- package/dist/collection/components/alert/alert.helpers.js.map +1 -1
- package/dist/collection/components/alert/alert.js +19 -13
- package/dist/collection/components/alert/alert.js.map +1 -1
- package/dist/collection/components/algolia/algolia-filter.js +2 -2
- package/dist/collection/components/algolia/algolia-filter.js.map +1 -1
- package/dist/collection/components/algolia/algolia-input.js.map +1 -1
- package/dist/collection/components/algolia/algolia.css +2 -1
- package/dist/collection/components/algolia/algolia.js +3 -3
- package/dist/collection/components/algolia/algolia.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox-group.css +16 -10
- package/dist/collection/components/checkbox/checkbox-group.js +91 -7
- package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox.css +14 -12
- package/dist/collection/components/checkbox/checkbox.js +5 -5
- package/dist/collection/components/checkbox/checkbox.js.map +1 -1
- package/dist/collection/components/datalist/datalist.js +39 -31
- package/dist/collection/components/datalist/datalist.js.map +1 -1
- package/dist/collection/components/date-input/date-input.css +3 -3
- package/dist/collection/components/date-input/date-input.js +3 -3
- package/dist/collection/components/date-input/date-input.js.map +1 -1
- package/dist/collection/components/date-picker/date-picker.css +15 -11
- package/dist/collection/components/date-picker/date-picker.js +1 -1
- package/dist/collection/components/date-picker/date-picker.js.map +1 -1
- package/dist/collection/components/demo/demo.js +12 -8
- package/dist/collection/components/demo/demo.js.map +1 -1
- package/dist/collection/components/details/details.css +2 -1
- package/dist/collection/components/details/details.js +1 -1
- package/dist/collection/components/details/details.js.map +1 -1
- package/dist/collection/components/dialog/dialog.css +8 -5
- package/dist/collection/components/dialog/dialog.helpers.js +3 -11
- package/dist/collection/components/dialog/dialog.helpers.js.map +1 -1
- package/dist/collection/components/drawer/drawer.css +2 -2
- package/dist/collection/components/dropdown/dropdown.css +1 -1
- package/dist/collection/components/dropdown/dropdown.js +6 -1
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/field-validator/field-validator.js +2 -1
- package/dist/collection/components/field-validator/field-validator.js.map +1 -1
- package/dist/collection/components/file-upload/file-upload.css +35 -25
- package/dist/collection/components/file-upload/file-upload.js +4 -4
- package/dist/collection/components/file-upload/file-upload.js.map +1 -1
- package/dist/collection/components/form-control/form-control.js +2 -2
- package/dist/collection/components/form-control/form-control.js.map +1 -1
- package/dist/collection/components/global-nav/global-nav-user-profile.js +6 -7
- package/dist/collection/components/global-nav/global-nav-user-profile.js.map +1 -1
- package/dist/collection/components/global-nav/global-nav.js +61 -11
- package/dist/collection/components/global-nav/global-nav.js.map +1 -1
- package/dist/collection/components/global-nav/style/global-nav.css +92 -48
- package/dist/collection/components/global-search-results/global-search-results.css +83 -44
- package/dist/collection/components/global-search-results/global-search-results.js +4 -2
- package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
- package/dist/collection/components/grid/grid-item.css +1 -1
- package/dist/collection/components/grid/grid.css +1 -0
- package/dist/collection/components/grid/grid.js +2 -0
- package/dist/collection/components/grid/grid.js.map +1 -1
- package/dist/collection/components/hero/hero.css +110 -18
- package/dist/collection/components/hero/hero.js +2 -0
- package/dist/collection/components/hero/hero.js.map +1 -1
- package/dist/collection/components/icon/icon.css +2 -2
- package/dist/collection/components/icon/icon.js +3 -10
- package/dist/collection/components/icon/icon.js.map +1 -1
- package/dist/collection/components/icon-button/icon-button.css +1 -1
- package/dist/collection/components/img/img.css +0 -1
- package/dist/collection/components/img/img.js +3 -4
- package/dist/collection/components/img/img.js.map +1 -1
- package/dist/collection/components/input/input.css +54 -32
- package/dist/collection/components/input/input.js +14 -28
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/menu/menu.js +4 -2
- package/dist/collection/components/menu/menu.js.map +1 -1
- package/dist/collection/components/menu-drawer/menu-drawer.css +20 -13
- package/dist/collection/components/menu-drawer/menu-drawer.js +1 -1
- package/dist/collection/components/menu-drawer/menu-drawer.js.map +1 -1
- package/dist/collection/components/nav-item/nav-item.css +31 -16
- package/dist/collection/components/nav-item/nav-item.js +4 -4
- package/dist/collection/components/nav-item/nav-item.js.map +1 -1
- package/dist/collection/components/option/option.css +4 -2
- package/dist/collection/components/progress-bar/progress-bar.css +4 -4
- package/dist/collection/components/range/range.css +11 -9
- package/dist/collection/components/rating/rating.css +9 -5
- package/dist/collection/components/resize-observe/resize-observe.js +17 -6
- package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
- package/dist/collection/components/select/select.css +59 -34
- package/dist/collection/components/select/select.js +42 -55
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/skeleton/skeleton.css +5 -5
- package/dist/collection/components/slides/slides.css +4 -2
- package/dist/collection/components/slides/slides.js +9 -19
- package/dist/collection/components/slides/slides.js.map +1 -1
- package/dist/collection/components/spinner/spinner.css +13 -8
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/spinner/spinner.js.map +1 -1
- package/dist/collection/components/split-pane/split-pane.css +1 -1
- package/dist/collection/components/split-pane/split-pane.js +13 -11
- package/dist/collection/components/split-pane/split-pane.js.map +1 -1
- package/dist/collection/components/sticker/sticker.js +4 -2
- package/dist/collection/components/sticker/sticker.js.map +1 -1
- package/dist/collection/components/table/table.cell.js +8 -8
- package/dist/collection/components/table/table.cell.js.map +1 -1
- package/dist/collection/components/table/table.css +46 -25
- package/dist/collection/components/table/table.header.js +6 -19
- package/dist/collection/components/table/table.header.js.map +1 -1
- package/dist/collection/components/table/table.js +85 -93
- package/dist/collection/components/table/table.js.map +1 -1
- package/dist/collection/components/table/table.row.js +8 -8
- package/dist/collection/components/table/table.row.js.map +1 -1
- package/dist/collection/components/table/table.store.js +2 -1
- package/dist/collection/components/table/table.store.js.map +1 -1
- package/dist/collection/components/table/table.utils.js +8 -7
- package/dist/collection/components/table/table.utils.js.map +1 -1
- package/dist/collection/components/tabs/tab-content.css +7 -2
- package/dist/collection/components/tabs/tab-content.js +12 -1
- package/dist/collection/components/tabs/tab-content.js.map +1 -1
- package/dist/collection/components/tabs/tab-group.css +13 -10
- package/dist/collection/components/tabs/tab-group.js +17 -7
- package/dist/collection/components/tabs/tab-group.js.map +1 -1
- package/dist/collection/components/tabs/tab.css +21 -12
- package/dist/collection/components/tooltip/tooltip.css +25 -16
- package/dist/collection/global/script/global.js +2 -13
- package/dist/collection/global/script/global.js.map +1 -1
- package/dist/collection/index.js +17 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/utils/dom.js +16 -15
- package/dist/collection/utils/dom.js.map +1 -1
- package/dist/collection/utils/fetch.js +15 -12
- package/dist/collection/utils/fetch.js.map +1 -1
- package/dist/collection/utils/gesture/index.js +1 -9
- package/dist/collection/utils/gesture/index.js.map +1 -1
- package/dist/collection/utils/modal.js +2 -1
- package/dist/collection/utils/modal.js.map +1 -1
- package/dist/collection/utils/store/get-set.js +1 -1
- package/dist/collection/utils/store/get-set.js.map +1 -1
- package/dist/collection/utils/testing/index.js +1 -0
- package/dist/collection/utils/testing/index.js.map +1 -1
- package/dist/collection/utils/theme.js +1 -6
- package/dist/collection/utils/theme.js.map +1 -1
- package/dist/components/algolia.js +3 -3
- package/dist/components/algolia.js.map +1 -1
- package/dist/components/algoliasearch.umd.js +2 -2
- package/dist/components/algoliasearch.umd.js.map +1 -1
- package/dist/components/component-store.js +23 -10
- package/dist/components/component-store.js.map +1 -1
- package/dist/components/datalist.js +39 -31
- package/dist/components/datalist.js.map +1 -1
- package/dist/components/date-picker.js +2 -2
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dom.js +17 -15
- package/dist/components/dom.js.map +1 -1
- package/dist/components/dropdown.js +7 -2
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/form-control.js +2 -2
- package/dist/components/form-control.js.map +1 -1
- package/dist/components/global-nav-user-profile.js +4 -3
- package/dist/components/global-nav-user-profile.js.map +1 -1
- package/dist/components/grid-item.js +1 -1
- package/dist/components/grid-item.js.map +1 -1
- package/dist/components/grid.js +3 -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 +4 -11
- package/dist/components/icon.js.map +1 -1
- package/dist/components/img.js +4 -5
- package/dist/components/img.js.map +1 -1
- package/dist/components/index.d.ts +9 -0
- package/dist/components/index.js +23 -52
- package/dist/components/index.js.map +1 -1
- package/dist/components/index3.js +635 -1069
- package/dist/components/index3.js.map +1 -1
- package/dist/components/input.js +15 -29
- package/dist/components/input.js.map +1 -1
- package/dist/components/menu.js +4 -2
- package/dist/components/menu.js.map +1 -1
- package/dist/components/modal.js +2 -1
- package/dist/components/modal.js.map +1 -1
- package/dist/components/nano-accordion.js +1 -4
- package/dist/components/nano-accordion.js.map +1 -1
- package/dist/components/nano-alert.js +20 -14
- package/dist/components/nano-alert.js.map +1 -1
- package/dist/components/nano-algolia-filter.js +2 -2
- package/dist/components/nano-algolia-filter.js.map +1 -1
- package/dist/components/nano-algolia-input.js.map +1 -1
- package/dist/components/nano-checkbox-group.js +53 -9
- package/dist/components/nano-checkbox-group.js.map +1 -1
- package/dist/components/nano-checkbox.js +6 -6
- package/dist/components/nano-checkbox.js.map +1 -1
- package/dist/components/nano-date-input.js +4 -4
- package/dist/components/nano-date-input.js.map +1 -1
- package/dist/components/nano-demo.js +12 -8
- package/dist/components/nano-demo.js.map +1 -1
- package/dist/components/nano-details.js +2 -2
- 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-field-validator.js +2 -1
- package/dist/components/nano-field-validator.js.map +1 -1
- package/dist/components/nano-file-upload.js +4 -4
- package/dist/components/nano-file-upload.js.map +1 -1
- package/dist/components/nano-global-nav.js +51 -22
- package/dist/components/nano-global-nav.js.map +1 -1
- package/dist/components/nano-global-search-results.js +5 -3
- package/dist/components/nano-global-search-results.js.map +1 -1
- package/dist/components/nano-hero.js +3 -1
- package/dist/components/nano-hero.js.map +1 -1
- package/dist/components/nano-menu-drawer.js +2 -2
- package/dist/components/nano-menu-drawer.js.map +1 -1
- package/dist/components/nano-range.js +2 -2
- 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-slides.js +10 -20
- package/dist/components/nano-slides.js.map +1 -1
- package/dist/components/nano-split-pane.js +14 -12
- package/dist/components/nano-split-pane.js.map +1 -1
- package/dist/components/nano-tab-content.js +10 -3
- package/dist/components/nano-tab-content.js.map +1 -1
- package/dist/components/nano-tab-group.js +18 -8
- 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/nav-item.js +5 -5
- 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/popover.js +60 -49
- package/dist/components/popover.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 +16 -8
- package/dist/components/resize-observe.js.map +1 -1
- package/dist/components/select.js +43 -56
- 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 +2 -2
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/sticker.js +4 -2
- package/dist/components/sticker.js.map +1 -1
- package/dist/components/table.js +117 -152
- package/dist/components/table.js.map +1 -1
- package/dist/components/theme.js +1 -6
- package/dist/components/theme.js.map +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/tooltip.js.map +1 -1
- package/dist/esm/{algolia-data-b5cd0c58.js → algolia-data-c4ed188c.js} +2 -2
- package/dist/esm/{algolia-data-b5cd0c58.js.map → algolia-data-c4ed188c.js.map} +1 -1
- package/dist/esm/{algoliasearch.umd-86359963.js → algoliasearch.umd-4f7efa84.js} +3 -3
- package/dist/esm/{algoliasearch.umd-86359963.js.map → algoliasearch.umd-4f7efa84.js.map} +1 -1
- package/dist/esm/{component-store-ec512820.js → component-store-6eccd724.js} +25 -12
- package/dist/esm/component-store-6eccd724.js.map +1 -0
- package/dist/esm/{dom-d3ad49e2.js → dom-311c9e1e.js} +15 -15
- package/dist/esm/dom-311c9e1e.js.map +1 -0
- package/dist/esm/{form-control-84bac7a2.js → form-control-3284c2c9.js} +4 -4
- package/dist/esm/form-control-3284c2c9.js.map +1 -0
- package/dist/{cjs/global-989678ec.js → esm/global-f6e05656.js} +3 -16
- package/dist/esm/global-f6e05656.js.map +1 -0
- package/dist/esm/{index-c752dae1.js → index-38484737.js} +2 -2
- package/dist/esm/{index-c752dae1.js.map → index-38484737.js.map} +1 -1
- package/dist/esm/{index-3c280603.js → index-b4e277ad.js} +1438 -517
- package/dist/esm/index-b4e277ad.js.map +1 -0
- package/dist/{components/index4.js → esm/index-f626f476.js} +2 -10
- package/dist/esm/index-f626f476.js.map +1 -0
- package/dist/esm/index.js +18 -36
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +5 -4
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/{modal-5c9ce466.js → modal-1f3223cd.js} +3 -2
- package/dist/esm/modal-1f3223cd.js.map +1 -0
- package/dist/esm/nano-accordion.entry.js +4 -7
- package/dist/esm/nano-accordion.entry.js.map +1 -1
- package/dist/esm/nano-alert.entry.js +25 -19
- package/dist/esm/nano-alert.entry.js.map +1 -1
- package/dist/esm/nano-algolia-filter.entry.js +5 -5
- package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
- package/dist/esm/nano-algolia-input.entry.js +4 -4
- package/dist/esm/nano-algolia-input.entry.js.map +1 -1
- package/dist/esm/nano-algolia-pagination.entry.js +2 -2
- package/dist/esm/nano-algolia-results.entry.js +2 -2
- package/dist/esm/nano-algolia.entry.js +8 -8
- package/dist/esm/nano-algolia.entry.js.map +1 -1
- package/dist/esm/nano-aspect-ratio.entry.js +1 -1
- package/dist/esm/nano-checkbox-group.entry.js +52 -9
- package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
- package/dist/esm/nano-checkbox.entry.js +8 -8
- package/dist/esm/nano-checkbox.entry.js.map +1 -1
- package/dist/esm/nano-components.js +5 -4
- package/dist/esm/nano-components.js.map +1 -1
- package/dist/esm/nano-datalist_3.entry.js +46 -36
- package/dist/esm/nano-datalist_3.entry.js.map +1 -1
- package/dist/esm/nano-date-input.entry.js +6 -6
- package/dist/esm/nano-date-input.entry.js.map +1 -1
- package/dist/esm/nano-date-picker.entry.js +4 -4
- package/dist/esm/nano-date-picker.entry.js.map +1 -1
- package/dist/esm/nano-demo.entry.js +13 -9
- package/dist/esm/nano-demo.entry.js.map +1 -1
- package/dist/esm/nano-details.entry.js +4 -4
- package/dist/esm/nano-details.entry.js.map +1 -1
- package/dist/esm/nano-dialog.entry.js +6 -6
- package/dist/esm/nano-dialog.entry.js.map +1 -1
- package/dist/esm/nano-drawer.entry.js +5 -5
- package/dist/esm/nano-drawer.entry.js.map +1 -1
- package/dist/esm/nano-dropdown.entry.js +9 -4
- package/dist/esm/nano-dropdown.entry.js.map +1 -1
- package/dist/esm/nano-field-validator.entry.js +4 -3
- package/dist/esm/nano-field-validator.entry.js.map +1 -1
- package/dist/esm/nano-file-upload.entry.js +5 -5
- package/dist/esm/nano-file-upload.entry.js.map +1 -1
- package/dist/esm/nano-global-nav-user-profile_3.entry.js +54 -67
- package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
- package/dist/esm/nano-global-nav.entry.js +54 -26
- package/dist/esm/nano-global-nav.entry.js.map +1 -1
- package/dist/esm/nano-global-search-results.entry.js +6 -4
- package/dist/esm/nano-global-search-results.entry.js.map +1 -1
- package/dist/esm/nano-grid_3.entry.js +8 -7
- package/dist/esm/nano-grid_3.entry.js.map +1 -1
- package/dist/esm/nano-hero.entry.js +4 -2
- package/dist/esm/nano-hero.entry.js.map +1 -1
- package/dist/esm/nano-icon-button.entry.js +2 -2
- package/dist/esm/nano-icon-button.entry.js.map +1 -1
- package/dist/esm/nano-icon.entry.js +7 -14
- package/dist/esm/nano-icon.entry.js.map +1 -1
- package/dist/esm/nano-input.entry.js +19 -33
- package/dist/esm/nano-input.entry.js.map +1 -1
- package/dist/esm/nano-menu-drawer.entry.js +3 -3
- package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
- package/dist/esm/nano-progress-bar_2.entry.js +4 -4
- package/dist/esm/nano-progress-bar_2.entry.js.map +1 -1
- package/dist/esm/nano-range.entry.js +4 -4
- package/dist/esm/nano-range.entry.js.map +1 -1
- package/dist/esm/nano-rating.entry.js +2 -2
- package/dist/esm/nano-rating.entry.js.map +1 -1
- package/dist/esm/nano-resize-observe_2.entry.js +18 -10
- 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-slides.entry.js +11 -21
- package/dist/esm/nano-slides.entry.js.map +1 -1
- package/dist/esm/nano-spinner.entry.js +3 -3
- package/dist/esm/nano-spinner.entry.js.map +1 -1
- package/dist/esm/nano-split-pane.entry.js +15 -13
- package/dist/esm/nano-split-pane.entry.js.map +1 -1
- package/dist/esm/nano-sticker.entry.js +6 -4
- package/dist/esm/nano-sticker.entry.js.map +1 -1
- package/dist/esm/nano-tab-content.entry.js +9 -3
- package/dist/esm/nano-tab-content.entry.js.map +1 -1
- package/dist/esm/nano-tab-group.entry.js +18 -12
- package/dist/esm/nano-tab-group.entry.js.map +1 -1
- package/dist/esm/nano-tab.entry.js +2 -2
- package/dist/esm/nano-tab.entry.js.map +1 -1
- package/dist/esm/{nano-table-1f4fe4ad.js → nano-table-5ff91f0f.js} +115 -150
- package/dist/esm/nano-table-5ff91f0f.js.map +1 -0
- package/dist/esm/nano-table.entry.js +3 -3
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/esm/{popover-e748bb61.js → popover-02e6714d.js} +61 -50
- package/dist/esm/popover-02e6714d.js.map +1 -0
- package/dist/esm/{scroll-a1e59d8c.js → scroll-e5825d8d.js} +2 -2
- package/dist/esm/{scroll-a1e59d8c.js.map → scroll-e5825d8d.js.map} +1 -1
- package/dist/esm/{table.worker-ddbd23c3.js → table.worker-5c1bb1ce.js} +4 -4
- package/dist/esm/table.worker-5c1bb1ce.js.map +1 -0
- package/dist/esm/{theme-931bd452.js → theme-82feb8cf.js} +2 -7
- package/dist/esm/theme-82feb8cf.js.map +1 -0
- package/dist/nano-components/index.esm.js +1 -1
- package/dist/nano-components/index.esm.js.map +1 -1
- package/dist/nano-components/nano-components.esm.js +1 -1
- package/dist/nano-components/nano-components.esm.js.map +1 -1
- package/dist/nano-components/{p-1a8e60c4.entry.js → p-0411f019.entry.js} +2 -2
- package/dist/nano-components/p-0411f019.entry.js.map +1 -0
- package/dist/nano-components/p-13b2d70c.entry.js +5 -0
- package/dist/nano-components/p-13b2d70c.entry.js.map +1 -0
- package/dist/nano-components/p-167b9165.js.map +1 -1
- package/dist/nano-components/p-1d21b2ce.entry.js +5 -0
- package/dist/nano-components/p-1d21b2ce.entry.js.map +1 -0
- package/dist/nano-components/p-2155fc2c.js.map +1 -1
- package/dist/nano-components/p-257432ff.js +5 -0
- package/dist/nano-components/p-257432ff.js.map +1 -0
- package/dist/nano-components/p-264903b5.entry.js +5 -0
- package/dist/nano-components/p-264903b5.entry.js.map +1 -0
- package/dist/nano-components/p-320366a2.entry.js +5 -0
- package/dist/nano-components/p-320366a2.entry.js.map +1 -0
- package/dist/nano-components/p-364434b4.entry.js +5 -0
- package/dist/nano-components/p-364434b4.entry.js.map +1 -0
- package/dist/nano-components/{p-3f25fc76.entry.js → p-36d5a41d.entry.js} +2 -2
- package/dist/nano-components/p-36d5a41d.entry.js.map +1 -0
- package/dist/nano-components/{p-1e709f87.entry.js → p-371fe61d.entry.js} +2 -2
- package/dist/nano-components/p-371fe61d.entry.js.map +1 -0
- package/dist/nano-components/p-3d658ce2.entry.js +5 -0
- package/dist/nano-components/p-3d658ce2.entry.js.map +1 -0
- package/dist/nano-components/p-3e95778d.entry.js +5 -0
- package/dist/nano-components/p-3e95778d.entry.js.map +1 -0
- package/dist/nano-components/p-400d698f.entry.js +5 -0
- package/dist/nano-components/p-400d698f.entry.js.map +1 -0
- package/dist/nano-components/p-411bb8f1.js +5 -0
- package/dist/nano-components/p-411bb8f1.js.map +1 -0
- package/dist/nano-components/p-41811365.js +5 -0
- package/dist/nano-components/p-41811365.js.map +1 -0
- package/dist/nano-components/p-45abbbdd.js.map +1 -1
- package/dist/nano-components/{p-885b6950.js → p-45b7682a.js} +2 -2
- package/dist/nano-components/p-45b7682a.js.map +1 -0
- package/dist/nano-components/p-4b1d73e9.entry.js +5 -0
- package/dist/nano-components/p-4b1d73e9.entry.js.map +1 -0
- package/dist/nano-components/{p-69e5a37d.entry.js → p-4e104cb1.entry.js} +2 -2
- package/dist/nano-components/p-4e104cb1.entry.js.map +1 -0
- package/dist/nano-components/p-51bc8b59.js +5 -0
- package/dist/nano-components/p-51bc8b59.js.map +1 -0
- package/dist/nano-components/p-5a466c9f.entry.js +5 -0
- package/dist/nano-components/p-5a466c9f.entry.js.map +1 -0
- package/dist/nano-components/{p-bd05b3aa.entry.js → p-5f1b94f0.entry.js} +2 -2
- package/dist/nano-components/{p-bd05b3aa.entry.js.map → p-5f1b94f0.entry.js.map} +1 -1
- package/dist/nano-components/p-60823325.entry.js +5 -0
- package/dist/nano-components/p-60823325.entry.js.map +1 -0
- package/dist/nano-components/p-6760e54a.entry.js +5 -0
- package/dist/nano-components/p-6760e54a.entry.js.map +1 -0
- package/dist/nano-components/p-69774e99.entry.js +5 -0
- package/dist/nano-components/p-69774e99.entry.js.map +1 -0
- package/dist/nano-components/p-69a3e911.js.map +1 -1
- package/dist/nano-components/p-6bca2d00.entry.js +5 -0
- package/dist/nano-components/p-6bca2d00.entry.js.map +1 -0
- package/dist/nano-components/p-74a7fc4f.js.map +1 -1
- package/dist/nano-components/{p-dba8a88d.entry.js → p-78169835.entry.js} +2 -2
- package/dist/nano-components/p-78169835.entry.js.map +1 -0
- package/dist/nano-components/p-817eda34.entry.js +5 -0
- package/dist/nano-components/p-817eda34.entry.js.map +1 -0
- package/dist/nano-components/p-866c73c0.entry.js +5 -0
- package/dist/nano-components/p-866c73c0.entry.js.map +1 -0
- package/dist/nano-components/p-87a76a81.entry.js +5 -0
- package/dist/nano-components/{p-41addb3a.entry.js.map → p-87a76a81.entry.js.map} +1 -1
- package/dist/nano-components/p-8907dd24.entry.js +5 -0
- package/dist/nano-components/p-8907dd24.entry.js.map +1 -0
- package/dist/nano-components/p-90365d7b.entry.js +5 -0
- package/dist/nano-components/p-90365d7b.entry.js.map +1 -0
- package/dist/nano-components/p-909a424c.js +5 -0
- package/dist/nano-components/p-909a424c.js.map +1 -0
- package/dist/nano-components/p-9746b0a5.js.map +1 -1
- package/dist/nano-components/p-9cf5fda3.entry.js +5 -0
- package/dist/nano-components/p-9cf5fda3.entry.js.map +1 -0
- package/dist/nano-components/p-9fcd383f.entry.js +5 -0
- package/dist/nano-components/p-9fcd383f.entry.js.map +1 -0
- package/dist/nano-components/p-9fda481b.entry.js +5 -0
- package/dist/nano-components/p-9fda481b.entry.js.map +1 -0
- package/dist/nano-components/p-abd6b774.entry.js +5 -0
- package/dist/nano-components/p-abd6b774.entry.js.map +1 -0
- package/dist/nano-components/p-b933f3c8.js.map +1 -1
- package/dist/nano-components/{p-2828788c.js → p-bb07c3d0.js} +2 -2
- package/dist/nano-components/p-bb07c3d0.js.map +1 -0
- package/dist/nano-components/p-bb6f7c39.js +5 -0
- package/dist/nano-components/p-bb6f7c39.js.map +1 -0
- package/dist/nano-components/p-bf91c50e.js +6 -0
- package/dist/nano-components/p-bf91c50e.js.map +1 -0
- package/dist/nano-components/{p-b40eedcb.entry.js → p-bfbfec85.entry.js} +2 -2
- package/dist/nano-components/p-bfbfec85.entry.js.map +1 -0
- package/dist/nano-components/{p-447a5910.entry.js → p-c0681b2b.entry.js} +2 -2
- package/dist/nano-components/p-c0681b2b.entry.js.map +1 -0
- package/dist/nano-components/p-c0ca353b.entry.js +5 -0
- package/dist/nano-components/p-c0ca353b.entry.js.map +1 -0
- package/dist/nano-components/p-c4e8d584.entry.js +5 -0
- package/dist/nano-components/p-c4e8d584.entry.js.map +1 -0
- package/dist/nano-components/p-cecb9af1.js.map +1 -1
- package/dist/nano-components/p-d4f6ec9f.js +5 -0
- package/dist/nano-components/p-d4f6ec9f.js.map +1 -0
- package/dist/nano-components/p-d753f35a.entry.js +5 -0
- package/dist/nano-components/p-d753f35a.entry.js.map +1 -0
- package/dist/nano-components/{p-651b3264.js → p-d7ff8f12.js} +2 -2
- package/dist/nano-components/p-d7ff8f12.js.map +1 -0
- package/dist/nano-components/{p-0582afcc.js → p-d92b762b.js} +2 -2
- package/dist/nano-components/p-d92b762b.js.map +1 -0
- package/dist/nano-components/p-de25ba80.entry.js +5 -0
- package/dist/nano-components/p-de25ba80.entry.js.map +1 -0
- package/dist/nano-components/{p-c9a7c7ea.js → p-e04f2333.js} +2 -2
- package/dist/nano-components/p-e04f2333.js.map +1 -0
- package/dist/nano-components/p-e19d6a92.entry.js +5 -0
- package/dist/nano-components/p-e19d6a92.entry.js.map +1 -0
- package/dist/nano-components/{p-63834d50.js → p-ed2e6f32.js} +2 -2
- package/dist/nano-components/p-ed2e6f32.js.map +1 -0
- package/dist/nano-components/p-ed69b27b.entry.js +5 -0
- package/dist/nano-components/p-ed69b27b.entry.js.map +1 -0
- package/dist/nano-components/{p-a0b93616.js → p-ed6adde2.js} +3 -3
- package/dist/nano-components/p-ed6adde2.js.map +1 -0
- package/dist/nano-components/p-ee045579.js.map +1 -1
- package/dist/nano-components/{p-151aad1e.entry.js → p-f2875bf0.entry.js} +4 -4
- package/dist/nano-components/p-f2875bf0.entry.js.map +1 -0
- package/dist/nano-components/p-f28c802d.entry.js +5 -0
- package/dist/nano-components/p-f28c802d.entry.js.map +1 -0
- package/dist/nano-components/{p-a2d0d7b9.entry.js → p-f47776fd.entry.js} +2 -2
- package/dist/nano-components/p-f47776fd.entry.js.map +1 -0
- package/dist/nano-components/p-f8f89998.js.map +1 -1
- package/dist/nano-components/p-fccd59e4.entry.js +5 -0
- package/dist/nano-components/p-fccd59e4.entry.js.map +1 -0
- package/dist/nano-components/p-fe1446cd.entry.js +5 -0
- package/dist/nano-components/p-fe1446cd.entry.js.map +1 -0
- package/dist/themes/london-calling.css +1 -1
- package/dist/themes/london-calling.css.map +1 -1
- package/dist/themes/nanopore.css +1 -1
- package/dist/themes/nanopore.css.map +1 -1
- package/dist/types/components/alert/alert-interface.d.ts +1 -1
- package/dist/types/components/algolia/algolia-input.d.ts +1 -1
- package/dist/types/components/algolia/algolia.d.ts +2 -2
- package/dist/types/components/checkbox/checkbox-group.d.ts +11 -0
- package/dist/types/components/date-picker/date-picker-interface.d.ts +2 -2
- package/dist/types/components/date-picker/duet-date-picker/date-adapter.d.ts +3 -3
- package/dist/types/components/date-picker/duet-date-picker/date-localization.d.ts +3 -3
- package/dist/types/components/date-picker/duet-date-picker/date-picker-day.d.ts +1 -1
- package/dist/types/components/date-picker/duet-date-picker/date-picker-month.d.ts +1 -1
- package/dist/types/components/field-validator/field-validator-interface.d.ts +4 -4
- package/dist/types/components/file-upload/file-upload.d.ts +1 -1
- package/dist/types/components/global-nav/global-nav.d.ts +12 -6
- package/dist/types/components/icon/icon.d.ts +3 -3
- package/dist/types/components/menu/menu.d.ts +1 -1
- package/dist/types/components/nav-item/nav-item.d.ts +1 -1
- package/dist/types/components/range/range-interface.d.ts +2 -2
- package/dist/types/components/resize-observe/resize-observe.d.ts +1 -0
- package/dist/types/components/slides/slides-interface.d.ts +2 -2
- package/dist/types/components/slides/slides.d.ts +0 -2
- package/dist/types/components/table/table.cell.d.ts +1 -1
- package/dist/types/components/table/table.d.ts +9 -14
- package/dist/types/components/table/table.header.d.ts +1 -1
- package/dist/types/components/table/table.row.d.ts +2 -2
- package/dist/types/components/table/table.utils.d.ts +2 -1
- package/dist/types/components/tabs/tab-content.d.ts +2 -0
- package/dist/types/components.d.ts +829 -9
- package/dist/types/index.d.ts +5 -0
- package/dist/types/stencil-public-runtime.d.ts +48 -3
- package/dist/types/utils/dom.d.ts +9 -0
- package/dist/types/utils/gesture/index.d.ts +1 -1
- package/dist/types/utils/popover.d.ts +1 -1
- package/dist/types/utils/store/component-store.d.ts +2 -2
- package/dist/types/utils/testing/index.d.ts +1 -1
- package/docs-json.json +89 -50
- package/docs-vscode.json +8 -4
- package/hydrate/index.d.ts +853 -0
- package/{dist/custom-elements → hydrate}/index.js +11476 -7950
- package/hydrate/package.json +6 -0
- package/loader/index.d.ts +9 -0
- package/package.json +24 -16
- package/dist/cjs/component-store-d7c8c326.js.map +0 -1
- package/dist/cjs/dom-d7c33f11.js.map +0 -1
- package/dist/cjs/form-control-57c71246.js.map +0 -1
- package/dist/cjs/global-989678ec.js.map +0 -1
- package/dist/cjs/index-41582c2a.js.map +0 -1
- package/dist/cjs/index-75b61776.js +0 -1077
- package/dist/cjs/index-75b61776.js.map +0 -1
- package/dist/cjs/index-ece1cb9e.js.map +0 -1
- package/dist/cjs/modal-e4defcc3.js.map +0 -1
- package/dist/cjs/nano-table-820b04d5.js.map +0 -1
- package/dist/cjs/popover-508bcedb.js.map +0 -1
- package/dist/cjs/table.worker-9e238d16.js.map +0 -1
- package/dist/cjs/theme-50275e1a.js.map +0 -1
- package/dist/components/index4.js.map +0 -1
- package/dist/custom-elements/index.d.ts +0 -339
- package/dist/custom-elements/index.js.map +0 -1
- package/dist/esm/component-store-ec512820.js.map +0 -1
- package/dist/esm/dom-d3ad49e2.js.map +0 -1
- package/dist/esm/form-control-84bac7a2.js.map +0 -1
- package/dist/esm/global-8047b4ff.js.map +0 -1
- package/dist/esm/index-3bbaffe4.js +0 -1075
- package/dist/esm/index-3bbaffe4.js.map +0 -1
- package/dist/esm/index-3c280603.js.map +0 -1
- package/dist/esm/index-dc076ea6.js +0 -649
- package/dist/esm/index-dc076ea6.js.map +0 -1
- package/dist/esm/modal-5c9ce466.js.map +0 -1
- package/dist/esm/nano-table-1f4fe4ad.js.map +0 -1
- package/dist/esm/popover-e748bb61.js.map +0 -1
- package/dist/esm/table.worker-ddbd23c3.js.map +0 -1
- package/dist/esm/theme-931bd452.js.map +0 -1
- package/dist/nano-components/p-0582afcc.js.map +0 -1
- package/dist/nano-components/p-135fed16.entry.js +0 -5
- package/dist/nano-components/p-135fed16.entry.js.map +0 -1
- package/dist/nano-components/p-151aad1e.entry.js.map +0 -1
- package/dist/nano-components/p-15543295.entry.js +0 -5
- package/dist/nano-components/p-15543295.entry.js.map +0 -1
- package/dist/nano-components/p-1a8e60c4.entry.js.map +0 -1
- package/dist/nano-components/p-1e709f87.entry.js.map +0 -1
- package/dist/nano-components/p-1f347342.entry.js +0 -5
- package/dist/nano-components/p-1f347342.entry.js.map +0 -1
- package/dist/nano-components/p-1fe12320.js +0 -6
- package/dist/nano-components/p-1fe12320.js.map +0 -1
- package/dist/nano-components/p-23575705.entry.js +0 -5
- package/dist/nano-components/p-23575705.entry.js.map +0 -1
- package/dist/nano-components/p-2828788c.js.map +0 -1
- package/dist/nano-components/p-284dd9a2.entry.js +0 -5
- package/dist/nano-components/p-284dd9a2.entry.js.map +0 -1
- package/dist/nano-components/p-2a97ef51.entry.js +0 -5
- package/dist/nano-components/p-2a97ef51.entry.js.map +0 -1
- package/dist/nano-components/p-36842a50.entry.js +0 -5
- package/dist/nano-components/p-36842a50.entry.js.map +0 -1
- package/dist/nano-components/p-3a1026d1.entry.js +0 -5
- package/dist/nano-components/p-3a1026d1.entry.js.map +0 -1
- package/dist/nano-components/p-3f25fc76.entry.js.map +0 -1
- package/dist/nano-components/p-41addb3a.entry.js +0 -5
- package/dist/nano-components/p-447a5910.entry.js.map +0 -1
- package/dist/nano-components/p-4b69178e.entry.js +0 -5
- package/dist/nano-components/p-4b69178e.entry.js.map +0 -1
- package/dist/nano-components/p-559a6492.entry.js +0 -5
- package/dist/nano-components/p-559a6492.entry.js.map +0 -1
- package/dist/nano-components/p-5d149792.entry.js +0 -5
- package/dist/nano-components/p-5d149792.entry.js.map +0 -1
- package/dist/nano-components/p-63834d50.js.map +0 -1
- package/dist/nano-components/p-651b3264.js.map +0 -1
- package/dist/nano-components/p-69e5a37d.entry.js.map +0 -1
- package/dist/nano-components/p-6ad194e4.entry.js +0 -5
- package/dist/nano-components/p-6ad194e4.entry.js.map +0 -1
- package/dist/nano-components/p-6cb77d5c.entry.js +0 -5
- package/dist/nano-components/p-6cb77d5c.entry.js.map +0 -1
- package/dist/nano-components/p-73860775.js +0 -5
- package/dist/nano-components/p-73860775.js.map +0 -1
- package/dist/nano-components/p-77cad8d1.js +0 -5
- package/dist/nano-components/p-77cad8d1.js.map +0 -1
- package/dist/nano-components/p-793588d1.js +0 -5
- package/dist/nano-components/p-793588d1.js.map +0 -1
- package/dist/nano-components/p-7b3638b7.js +0 -5
- package/dist/nano-components/p-7b3638b7.js.map +0 -1
- package/dist/nano-components/p-845ae77e.js +0 -5
- package/dist/nano-components/p-845ae77e.js.map +0 -1
- package/dist/nano-components/p-885b6950.js.map +0 -1
- package/dist/nano-components/p-8d747891.js +0 -5
- package/dist/nano-components/p-8d747891.js.map +0 -1
- package/dist/nano-components/p-9059c8c1.entry.js +0 -5
- package/dist/nano-components/p-9059c8c1.entry.js.map +0 -1
- package/dist/nano-components/p-92504f7f.entry.js +0 -5
- package/dist/nano-components/p-92504f7f.entry.js.map +0 -1
- package/dist/nano-components/p-99fbae74.entry.js +0 -5
- package/dist/nano-components/p-99fbae74.entry.js.map +0 -1
- package/dist/nano-components/p-9a4297e1.entry.js +0 -5
- package/dist/nano-components/p-9a4297e1.entry.js.map +0 -1
- package/dist/nano-components/p-9eeed8f5.entry.js +0 -5
- package/dist/nano-components/p-9eeed8f5.entry.js.map +0 -1
- package/dist/nano-components/p-a0b93616.js.map +0 -1
- package/dist/nano-components/p-a183e3c7.entry.js +0 -5
- package/dist/nano-components/p-a183e3c7.entry.js.map +0 -1
- package/dist/nano-components/p-a2d0d7b9.entry.js.map +0 -1
- package/dist/nano-components/p-a5abfed9.entry.js +0 -5
- package/dist/nano-components/p-a5abfed9.entry.js.map +0 -1
- package/dist/nano-components/p-b25e79b8.entry.js +0 -5
- package/dist/nano-components/p-b25e79b8.entry.js.map +0 -1
- package/dist/nano-components/p-b40eedcb.entry.js.map +0 -1
- package/dist/nano-components/p-b55ffa92.entry.js +0 -5
- package/dist/nano-components/p-b55ffa92.entry.js.map +0 -1
- package/dist/nano-components/p-b87539f0.entry.js +0 -5
- package/dist/nano-components/p-b87539f0.entry.js.map +0 -1
- package/dist/nano-components/p-c9a7c7ea.js.map +0 -1
- package/dist/nano-components/p-ca567f01.entry.js +0 -5
- package/dist/nano-components/p-ca567f01.entry.js.map +0 -1
- package/dist/nano-components/p-cc5e7acb.entry.js +0 -5
- package/dist/nano-components/p-cc5e7acb.entry.js.map +0 -1
- package/dist/nano-components/p-d5303933.entry.js +0 -5
- package/dist/nano-components/p-d5303933.entry.js.map +0 -1
- package/dist/nano-components/p-d565991d.entry.js +0 -5
- package/dist/nano-components/p-d565991d.entry.js.map +0 -1
- package/dist/nano-components/p-dba8a88d.entry.js.map +0 -1
- package/dist/nano-components/p-dc50b93c.entry.js +0 -5
- package/dist/nano-components/p-dc50b93c.entry.js.map +0 -1
- package/dist/nano-components/p-e3860f00.js +0 -5
- package/dist/nano-components/p-e3860f00.js.map +0 -1
- package/dist/nano-components/p-e5408bc8.entry.js +0 -5
- package/dist/nano-components/p-e5408bc8.entry.js.map +0 -1
- package/dist/nano-components/p-ea2de992.js +0 -19
- package/dist/nano-components/p-ea2de992.js.map +0 -1
- package/dist/nano-components/p-f7471cca.entry.js +0 -5
- package/dist/nano-components/p-f7471cca.entry.js.map +0 -1
- package/dist/nano-components/p-fe94eeff.entry.js +0 -5
- package/dist/nano-components/p-fe94eeff.entry.js.map +0 -1
@@ -5,7 +5,7 @@ import { proxyCustomElement, HTMLElement, writeTask, Build, h, Host } from '@ste
|
|
5
5
|
import { c as closestElement } from './dom.js';
|
6
6
|
import { d as defineCustomElement$2 } from './icon.js';
|
7
7
|
|
8
|
-
const menuDrawerCss = ":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--padding-top:13px;--padding-end:12px;--padding-bottom:13px;--padding-start:12px;--icon-size:19px;--font-size:11px;--global-nav-height:
|
8
|
+
const menuDrawerCss = ":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--padding-top:13px;--padding-end:12px;--padding-bottom:13px;--padding-start:12px;--icon-size:19px;--font-size:11px;--global-nav-height:79px;--bg-color:#001a21;--bg-color-hover:rgb(28 62 72 / 80%);--bg-color-selected:#274048;--bg-color-focus:rgb(28 62 72 / 80%);--focus-outline:none;--content-color:#fff;--secondary-bg-color:rgb(28 62 72);font-family:inherit;font-size:inherit;font-stretch:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;z-index:1;background:var(--bg-color)}:host ::slotted(nano-nav-item){--secondary-padding-top:var(--global-nav-height);--nano-icon-size:var(--icon-size);color:var(--content-color);font-size:var(--font-size);text-decoration:none;box-sizing:border-box}:host *,:host *::before,:host *::after{box-sizing:border-box}:host(.hide){display:none}:host(.has-global-nav) .content-wrap{-webkit-padding-before:var(--global-nav-height);padding-block-start:var(--global-nav-height);-webkit-margin-before:calc(var(--global-nav-height) * -1);margin-block-start:calc(var(--global-nav-height) * -1)}.container{inset-inline-end:auto;flex:0 0 calc(var(--padding-end, 1em) * 2 + var(--icon-size));background:var(--bg-color);color:var(--content-color);z-index:1;inline-size:calc(var(--padding-end, 1em) * 2 + var(--icon-size));block-size:100%}:host(.open) .container{inline-size:auto}:host(:not(.loading)) .container{transition:inline-size 0.3s ease}.content-wrap{inset-inline-start:0;inset-block-start:0;inline-size:inherit;max-inline-size:inherit;background:var(--bg-color);color:#fff;position:sticky;font-size:var(--icon-size);line-height:1;display:flex;min-block-size:calc(100vh - 79px);min-block-size:calc(var(--vh, 1vh) * 100 - 79px);z-index:1}.content{inline-size:auto;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-color);flex:1}.content::after{content:\"\";position:absolute;inset-block-start:0;inset-inline:0;background:var(--bg-color);z-index:-1;block-size:100vh}.collapse-btn{background:var(--bg-color-selected);border:none;color:inherit;font-size:var(--icon-size);-webkit-margin-before:var(--padding-top);margin-block-start:var(--padding-top);-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-after:var(--padding-bottom);margin-block-end:var(--padding-bottom);-webkit-margin-start:calc(var(--padding-start) / 2);margin-inline-start:calc(var(--padding-start) / 2);border-radius:4px;padding-block:6px;padding-inline:5px;display:flex;align-content:center;inline-size:30px;flex:0 0 auto}.collapse-btn nano-icon{font-size:var(--icon-size);transition:0.2s transform ease-in-out;transform:translateZ(0) rotate(0deg)}:host(.open) .collapse-btn nano-icon{transform:translateZ(0) rotate(180deg)}.foot{-webkit-margin-before:auto;margin-block-start:auto}.measure-ele{block-size:1px}";
|
9
9
|
|
10
10
|
const MenuDrawer = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
11
11
|
constructor() {
|
@@ -168,7 +168,7 @@ const MenuDrawer = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
168
168
|
}; }
|
169
169
|
static get style() { return menuDrawerCss; }
|
170
170
|
}, [1, "nano-menu-drawer", {
|
171
|
-
"open": [
|
171
|
+
"open": [1028],
|
172
172
|
"saveState": [4, "save-state"],
|
173
173
|
"hideWidth": [2, "hide-width"],
|
174
174
|
"hideHeight": [4, "hide-height"],
|
@@ -1 +1 @@
|
|
1
|
-
{"file":"nano-menu-drawer.js","mappings":"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","names":[],"sources":["./src/components/menu-drawer/menu-drawer.scss?tag=nano-menu-drawer&encapsulation=shadow","./src/components/menu-drawer/menu-drawer.tsx"],"sourcesContent":["@use 'sass:map';\n@use 'sass:list';\n\n@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/colours';\n\n:host {\n --padding-top: 13px;\n --padding-end: 12px;\n --padding-bottom: 13px;\n --padding-start: 12px;\n --icon-size: 19px;\n --font-size: 11px;\n --global-nav-height: 61px;\n --bg-color: #001a21;\n --bg-color-hover: rgba(28, 62, 72, 0.8);\n --bg-color-selected: #274048;\n --bg-color-focus: rgba(28, 62, 72, 0.8);\n --focus-outline: none;\n --content-color: #{map.get($colors, white)};\n --secondary-bg-color: rgb(28, 62, 72);\n\n @include text-inherit();\n\n display: block;\n z-index: 1;\n background: var(--bg-color);\n\n ::slotted(nano-nav-item) {\n --secondary-padding-top: var(--global-nav-height);\n --nano-icon-size: var(--icon-size);\n\n color: var(--content-color);\n font-size: var(--font-size);\n // font-weight: bold;\n text-decoration: none;\n box-sizing: border-box;\n }\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n}\n\n:host(.hide) {\n display: none;\n}\n\n:host(.has-global-nav) {\n .content-wrap {\n padding-block-start: var(--global-nav-height);\n margin-block-start: calc(var(--global-nav-height) * -1);\n }\n}\n\n.container {\n inset-inline-end: auto;\n flex: 0 0 calc((var(--padding-end, 1em) * 2) + var(--icon-size));\n background: var(--bg-color);\n color: var(--content-color);\n z-index: 1;\n inline-size: calc((var(--padding-end, 1em) * 2) + var(--icon-size));\n block-size: 100%;\n}\n\n:host(.open) {\n .container {\n inline-size: auto;\n }\n}\n\n:host(:not(.loading)) {\n .container {\n transition: inline-size 0.3s ease;\n }\n}\n\n.content-wrap {\n inset-inline-start: 0;\n inset-block-start: 0;\n inline-size: inherit;\n max-inline-size: inherit;\n background: var(--bg-color);\n color: map.get($colors, white);\n position: sticky;\n font-size: var(--icon-size);\n line-height: 1;\n display: flex;\n min-block-size: calc(100vh - 61px);\n min-block-size: calc((var(--vh, 1vh) * 100) - 61px);\n z-index: 1;\n}\n\n.content {\n inline-size: auto;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--bg-color);\n flex: 1;\n\n &::after {\n content: '';\n position: absolute;\n inset-block-start: 0;\n inset-inline: 0;\n background: var(--bg-color);\n z-index: -1;\n block-size: 100vh;\n }\n}\n\n.collapse-btn {\n background: var(--bg-color-selected);\n border: none;\n color: inherit;\n font-size: var(--icon-size);\n margin-block-start: var(--padding-top);\n margin-inline-end: 0;\n margin-block-end: var(--padding-bottom);\n margin-inline-start: calc(var(--padding-start) / 2);\n border-radius: 4px;\n padding-block: 6px;\n padding-inline: 5px;\n display: flex;\n align-content: center;\n inline-size: 30px;\n flex: 0 0 auto;\n\n nano-icon {\n font-size: var(--icon-size);\n transition: 0.2s transform ease-in-out;\n transform: translateZ(0) rotate(0deg);\n\n :host(.open) & {\n transform: translateZ(0) rotate(180deg);\n }\n }\n}\n\n.foot {\n margin-block-start: auto;\n}\n\n.measure-ele {\n block-size: 1px;\n}\n","import {\n Component,\n h,\n Host,\n Prop,\n writeTask,\n State,\n Element,\n Watch,\n Listen,\n Build,\n} from '@stencil/core';\nimport { closestElement } from '../../utils/dom';\nimport type { NavItemEventDetail } from '../../interface';\n\n/**\n * Menu drawer - digital specific navigation strip designed to be open (default) or closed.\n * Shows menu item logos only on minimised, expands to show entire menu item.\n * Used in conjunction with the [Globla-Nav](/story/compounds-global-nav) element -> it should be a direct descendent.\n * Only one nano-menu-drawer element should be present on any page. It is fixed to a side on larger screens and items are added to the global nav 'burger' on smaller screens.\n * @slot foot - nav items to be placed at the bottom of the drawer\n * @slot - default slot for nav items\n */\n@Component({\n tag: 'nano-menu-drawer',\n styleUrl: 'menu-drawer.scss',\n shadow: true,\n})\nexport class MenuDrawer {\n private containerDiv: HTMLDivElement;\n private contentDiv: HTMLElement;\n private measureEle: HTMLElement;\n private debounceResize: () => {};\n private globalNav: HTMLNanoGlobalNavElement;\n private children: Array<{ slot: string; element: HTMLNanoNavItemElement }> =\n [];\n private io: IntersectionObserver;\n private currHeight: number = window.innerHeight;\n\n @Element() private el: HTMLNanoMenuDrawerElement;\n\n @State() reset: boolean = false;\n @State() widthOk: boolean = true;\n @State() heightOk: boolean = true;\n @State() isLoading: boolean = true;\n @State() hide: boolean = false;\n\n /**\n * Set the initial menu drawer open or closed\n */\n @Prop() open: boolean = true;\n\n /**\n * Save open state to localStorage\n */\n @Prop() saveState: boolean = true;\n\n /**\n * Screen width to hide the menu drawer and move the items into the nano-global-nav\n */\n @Prop() hideWidth: number = 576;\n\n /**\n * Should element hide and move items into the nano-global-nav when items are cut off\n * (this will only work when nano-menu-drawer is displayed at full screen)\n */\n @Prop() hideHeight: boolean = true;\n\n @Listen('nanoOpen')\n @Listen('nanoClose')\n cancelNavItemEvents(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n }\n\n @Watch('open')\n openChange() {\n if (this.saveState)\n localStorage.setItem('nanoMenuDrawerOpen', this.open.toString());\n if (this.containerDiv) {\n if (this.open)\n writeTask(\n () =>\n (this.containerDiv.style.width = this.contentDiv.scrollWidth + 'px')\n );\n else writeTask(() => (this.containerDiv.style.width = null));\n }\n }\n\n @Watch('widthOk')\n widthChange() {\n if (this.widthOk) this.moveItemsToDrawer();\n else this.moveItemsToGlobalNav();\n }\n\n @Watch('hideHeight')\n hideHeightChange() {\n if (this.hideHeight && !this.io) this.attachIO();\n else if (!this.hideHeight && this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n\n private moveItemsToGlobalNav() {\n const currNavItems = this.el.querySelectorAll('nano-nav-item');\n // dimensions not cool - move items out of element and into global nav\n currNavItems.forEach((element) => {\n this.children.push({\n slot: element.getAttribute('slot'),\n element: element,\n });\n element.setAttribute('slot', 'overflow');\n element.classList.add('nano-global-nav-menu');\n this.globalNav.appendChild(element);\n });\n this.hide = true;\n }\n\n private moveItemsToDrawer() {\n if (!this.children || !this.children.length) return;\n\n this.children.forEach((child) => {\n child.element.removeAttribute('slot');\n child.element.classList.remove('nano-global-nav-menu');\n if (child.slot && child.slot.length)\n child.element.setAttribute('slot', child.slot);\n this.el.appendChild(child.element);\n });\n this.children = [];\n this.hide = false;\n if (!this.io) this.attachIO();\n }\n\n private onWindowResize = () => {\n if (window.innerWidth > this.hideWidth) this.widthOk = true;\n else this.widthOk = false;\n\n const vh = window.innerHeight * 0.01;\n this.el.style.setProperty('--vh', `${vh}px`);\n\n if (\n window.innerHeight > this.currHeight &&\n this.widthOk &&\n !this.heightOk\n ) {\n this.moveItemsToDrawer();\n }\n this.currHeight = window.innerHeight;\n };\n\n private toggle = (e: MouseEvent) => {\n e.preventDefault();\n this.open = !this.open;\n };\n\n private onToggleKeyDown = (ev: KeyboardEvent) => {\n switch (ev.key) {\n case 'Enter':\n case ' ':\n this.open = !this.open;\n break;\n }\n };\n\n private attachIO() {\n if (!this.hideHeight) return;\n const io: IntersectionObserver = (this.io = new (\n window as any\n ).IntersectionObserver(\n (data: IntersectionObserverEntry[]) => {\n this.heightOk = data[0].intersectionRatio !== 0;\n if (!this.heightOk) {\n this.moveItemsToGlobalNav();\n this.io.disconnect();\n this.io = undefined;\n }\n },\n { threshold: 1 }\n ));\n io.observe(this.measureEle);\n }\n\n @Listen('nanoIsReady', { target: 'body' })\n handleGlobalNavReady(e: CustomEvent & { target: HTMLNanoGlobalNavElement }) {\n if (e.target.tagName !== 'NANO-GLOBAL-NAV') return;\n\n setTimeout(() => {\n this.attachIO();\n this.openChange();\n this.onWindowResize();\n this.isLoading = false;\n }, 500);\n }\n\n componentWillLoad() {\n this.globalNav = closestElement(\n 'nano-global-nav',\n this.el\n ) as HTMLNanoGlobalNavElement;\n\n this.widthOk = window.innerWidth > this.hideWidth;\n this.currHeight = window.innerHeight;\n\n if (this.saveState) {\n const localState = localStorage.getItem('nanoMenuDrawerOpen');\n this.open = localState ? localState === 'true' : this.open;\n }\n }\n\n componentDidLoad() {\n if (Build.isBrowser) {\n window.addEventListener('resize', this.onWindowResize);\n }\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.debounceResize);\n if (this.io) {\n this.io.disconnect();\n this.io = null;\n }\n }\n\n render() {\n return (\n <Host\n class={{\n open: this.open,\n hide: this.hide,\n loading: this.isLoading,\n 'has-global-nav': !!this.globalNav,\n }}\n dir={(this.el.ownerDocument as Document).dir === 'rtl' ? 'rtl' : null}\n >\n <div ref={(div) => (this.containerDiv = div)} class=\"container\">\n <div class=\"content-wrap\">\n <nav ref={(div) => (this.contentDiv = div)} class=\"content\">\n <button\n onMouseDown={this.toggle}\n onKeyDown={this.onToggleKeyDown}\n class=\"collapse-btn\"\n >\n <nano-icon\n name=\"light/arrow-alt-to-right\"\n aria-label=\"collapse / expand\"\n ></nano-icon>\n </button>\n <slot />\n <div class=\"foot\">\n <div\n class=\"measure-ele\"\n ref={(div) => (this.measureEle = div)}\n ></div>\n <slot name=\"foot\" />\n </div>\n </nav>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
1
|
+
{"file":"nano-menu-drawer.js","mappings":"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","names":[],"sources":["./src/components/menu-drawer/menu-drawer.scss?tag=nano-menu-drawer&encapsulation=shadow","./src/components/menu-drawer/menu-drawer.tsx"],"sourcesContent":["@use 'sass:map';\n@use 'sass:list';\n\n@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/colours';\n\n:host {\n --padding-top: 13px;\n --padding-end: 12px;\n --padding-bottom: 13px;\n --padding-start: 12px;\n --icon-size: 19px;\n --font-size: 11px;\n --global-nav-height: 79px;\n --bg-color: #001a21;\n --bg-color-hover: rgb(28 62 72 / 80%);\n --bg-color-selected: #274048;\n --bg-color-focus: rgb(28 62 72 / 80%);\n --focus-outline: none;\n --content-color: #{map.get($colors, white)};\n --secondary-bg-color: rgb(28 62 72);\n\n @include text-inherit();\n\n display: block;\n z-index: 1;\n background: var(--bg-color);\n\n ::slotted(nano-nav-item) {\n --secondary-padding-top: var(--global-nav-height);\n --nano-icon-size: var(--icon-size);\n\n color: var(--content-color);\n font-size: var(--font-size);\n // font-weight: bold;\n text-decoration: none;\n box-sizing: border-box;\n }\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n}\n\n:host(.hide) {\n display: none;\n}\n\n:host(.has-global-nav) {\n .content-wrap {\n padding-block-start: var(--global-nav-height);\n margin-block-start: calc(var(--global-nav-height) * -1);\n }\n}\n\n.container {\n inset-inline-end: auto;\n flex: 0 0 calc((var(--padding-end, 1em) * 2) + var(--icon-size));\n background: var(--bg-color);\n color: var(--content-color);\n z-index: 1;\n inline-size: calc((var(--padding-end, 1em) * 2) + var(--icon-size));\n block-size: 100%;\n}\n\n:host(.open) {\n .container {\n inline-size: auto;\n }\n}\n\n:host(:not(.loading)) {\n .container {\n transition: inline-size 0.3s ease;\n }\n}\n\n.content-wrap {\n inset-inline-start: 0;\n inset-block-start: 0;\n inline-size: inherit;\n max-inline-size: inherit;\n background: var(--bg-color);\n color: map.get($colors, white);\n position: sticky;\n font-size: var(--icon-size);\n line-height: 1;\n display: flex;\n min-block-size: calc(100vh - 79px);\n min-block-size: calc((var(--vh, 1vh) * 100) - 79px);\n z-index: 1;\n}\n\n.content {\n inline-size: auto;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--bg-color);\n flex: 1;\n\n &::after {\n content: '';\n position: absolute;\n inset-block-start: 0;\n inset-inline: 0;\n background: var(--bg-color);\n z-index: -1;\n block-size: 100vh;\n }\n}\n\n.collapse-btn {\n background: var(--bg-color-selected);\n border: none;\n color: inherit;\n font-size: var(--icon-size);\n margin-block-start: var(--padding-top);\n margin-inline-end: 0;\n margin-block-end: var(--padding-bottom);\n margin-inline-start: calc(var(--padding-start) / 2);\n border-radius: 4px;\n padding-block: 6px;\n padding-inline: 5px;\n display: flex;\n align-content: center;\n inline-size: 30px;\n flex: 0 0 auto;\n\n nano-icon {\n font-size: var(--icon-size);\n transition: 0.2s transform ease-in-out;\n transform: translateZ(0) rotate(0deg);\n\n :host(.open) & {\n transform: translateZ(0) rotate(180deg);\n }\n }\n}\n\n.foot {\n margin-block-start: auto;\n}\n\n.measure-ele {\n block-size: 1px;\n}\n","import {\n Component,\n h,\n Host,\n Prop,\n writeTask,\n State,\n Element,\n Watch,\n Listen,\n Build,\n} from '@stencil/core';\nimport { closestElement } from '../../utils/dom';\nimport type { NavItemEventDetail } from '../../interface';\n\n/**\n * Menu drawer - digital specific navigation strip designed to be open (default) or closed.\n * Shows menu item logos only on minimised, expands to show entire menu item.\n * Used in conjunction with the [Globla-Nav](/story/compounds-global-nav) element -> it should be a direct descendent.\n * Only one nano-menu-drawer element should be present on any page. It is fixed to a side on larger screens and items are added to the global nav 'burger' on smaller screens.\n * @slot foot - nav items to be placed at the bottom of the drawer\n * @slot - default slot for nav items\n */\n@Component({\n tag: 'nano-menu-drawer',\n styleUrl: 'menu-drawer.scss',\n shadow: true,\n})\nexport class MenuDrawer {\n private containerDiv: HTMLDivElement;\n private contentDiv: HTMLElement;\n private measureEle: HTMLElement;\n private debounceResize: () => {};\n private globalNav: HTMLNanoGlobalNavElement;\n private children: Array<{ slot: string; element: HTMLNanoNavItemElement }> =\n [];\n private io: IntersectionObserver;\n private currHeight: number = window.innerHeight;\n\n @Element() private el: HTMLNanoMenuDrawerElement;\n\n @State() reset: boolean = false;\n @State() widthOk: boolean = true;\n @State() heightOk: boolean = true;\n @State() isLoading: boolean = true;\n @State() hide: boolean = false;\n\n /**\n * Set the initial menu drawer open or closed\n */\n @Prop({ mutable: true }) open: boolean = true;\n\n /**\n * Save open state to localStorage\n */\n @Prop() saveState: boolean = true;\n\n /**\n * Screen width to hide the menu drawer and move the items into the nano-global-nav\n */\n @Prop() hideWidth: number = 576;\n\n /**\n * Should element hide and move items into the nano-global-nav when items are cut off\n * (this will only work when nano-menu-drawer is displayed at full screen)\n */\n @Prop() hideHeight: boolean = true;\n\n @Listen('nanoOpen')\n @Listen('nanoClose')\n cancelNavItemEvents(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n }\n\n @Watch('open')\n openChange() {\n if (this.saveState)\n localStorage.setItem('nanoMenuDrawerOpen', this.open.toString());\n if (this.containerDiv) {\n if (this.open)\n writeTask(\n () =>\n (this.containerDiv.style.width = this.contentDiv.scrollWidth + 'px')\n );\n else writeTask(() => (this.containerDiv.style.width = null));\n }\n }\n\n @Watch('widthOk')\n widthChange() {\n if (this.widthOk) this.moveItemsToDrawer();\n else this.moveItemsToGlobalNav();\n }\n\n @Watch('hideHeight')\n hideHeightChange() {\n if (this.hideHeight && !this.io) this.attachIO();\n else if (!this.hideHeight && this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n\n private moveItemsToGlobalNav() {\n const currNavItems = this.el.querySelectorAll('nano-nav-item');\n // dimensions not cool - move items out of element and into global nav\n currNavItems.forEach((element) => {\n this.children.push({\n slot: element.getAttribute('slot'),\n element: element,\n });\n element.setAttribute('slot', 'overflow');\n element.classList.add('nano-global-nav-menu');\n this.globalNav.appendChild(element);\n });\n this.hide = true;\n }\n\n private moveItemsToDrawer() {\n if (!this.children || !this.children.length) return;\n\n this.children.forEach((child) => {\n child.element.removeAttribute('slot');\n child.element.classList.remove('nano-global-nav-menu');\n if (child.slot && child.slot.length)\n child.element.setAttribute('slot', child.slot);\n this.el.appendChild(child.element);\n });\n this.children = [];\n this.hide = false;\n if (!this.io) this.attachIO();\n }\n\n private onWindowResize = () => {\n if (window.innerWidth > this.hideWidth) this.widthOk = true;\n else this.widthOk = false;\n\n const vh = window.innerHeight * 0.01;\n this.el.style.setProperty('--vh', `${vh}px`);\n\n if (\n window.innerHeight > this.currHeight &&\n this.widthOk &&\n !this.heightOk\n ) {\n this.moveItemsToDrawer();\n }\n this.currHeight = window.innerHeight;\n };\n\n private toggle = (e: MouseEvent) => {\n e.preventDefault();\n this.open = !this.open;\n };\n\n private onToggleKeyDown = (ev: KeyboardEvent) => {\n switch (ev.key) {\n case 'Enter':\n case ' ':\n this.open = !this.open;\n break;\n }\n };\n\n private attachIO() {\n if (!this.hideHeight) return;\n const io: IntersectionObserver = (this.io = new (\n window as any\n ).IntersectionObserver(\n (data: IntersectionObserverEntry[]) => {\n this.heightOk = data[0].intersectionRatio !== 0;\n if (!this.heightOk) {\n this.moveItemsToGlobalNav();\n this.io.disconnect();\n this.io = undefined;\n }\n },\n { threshold: 1 }\n ));\n io.observe(this.measureEle);\n }\n\n @Listen('nanoIsReady', { target: 'body' })\n handleGlobalNavReady(e: CustomEvent & { target: HTMLNanoGlobalNavElement }) {\n if (e.target.tagName !== 'NANO-GLOBAL-NAV') return;\n\n setTimeout(() => {\n this.attachIO();\n this.openChange();\n this.onWindowResize();\n this.isLoading = false;\n }, 500);\n }\n\n componentWillLoad() {\n this.globalNav = closestElement(\n 'nano-global-nav',\n this.el\n ) as HTMLNanoGlobalNavElement;\n\n this.widthOk = window.innerWidth > this.hideWidth;\n this.currHeight = window.innerHeight;\n\n if (this.saveState) {\n const localState = localStorage.getItem('nanoMenuDrawerOpen');\n this.open = localState ? localState === 'true' : this.open;\n }\n }\n\n componentDidLoad() {\n if (Build.isBrowser) {\n window.addEventListener('resize', this.onWindowResize);\n }\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.debounceResize);\n if (this.io) {\n this.io.disconnect();\n this.io = null;\n }\n }\n\n render() {\n return (\n <Host\n class={{\n open: this.open,\n hide: this.hide,\n loading: this.isLoading,\n 'has-global-nav': !!this.globalNav,\n }}\n dir={(this.el.ownerDocument as Document).dir === 'rtl' ? 'rtl' : null}\n >\n <div ref={(div) => (this.containerDiv = div)} class=\"container\">\n <div class=\"content-wrap\">\n <nav ref={(div) => (this.contentDiv = div)} class=\"content\">\n <button\n onMouseDown={this.toggle}\n onKeyDown={this.onToggleKeyDown}\n class=\"collapse-btn\"\n >\n <nano-icon\n name=\"light/arrow-alt-to-right\"\n aria-label=\"collapse / expand\"\n ></nano-icon>\n </button>\n <slot />\n <div class=\"foot\">\n <div\n class=\"measure-ele\"\n ref={(div) => (this.measureEle = div)}\n ></div>\n <slot name=\"foot\" />\n </div>\n </nav>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
@@ -19,7 +19,7 @@ const renderHiddenInput = (container, name, value, disabled) => {
|
|
19
19
|
input.value = value || '';
|
20
20
|
};
|
21
21
|
|
22
|
-
const rangeCss = ".sc-nano-range-h{box-sizing:border-box}*.sc-nano-range,*.sc-nano-range::before,*.sc-nano-range::after{box-sizing:border-box}[hidden].sc-nano-range{display:none !important}.sc-nano-range-h{--knob-handle-size:(var(--knob-size) * 2);--rgb-inactive:165
|
22
|
+
const rangeCss = ".sc-nano-range-h{box-sizing:border-box}*.sc-nano-range,*.sc-nano-range::before,*.sc-nano-range::after{box-sizing:border-box}[hidden].sc-nano-range{display:none !important}.sc-nano-range-h{--knob-handle-size:(var(--knob-size) * 2);--rgb-inactive:165 165 165;--knob-border-radius:50%;--knob-background:var(--nano-color-primary, #007495);--knob-box-shadow:0 2px 4px 0 rgb(0 0 0 / 30%);--knob-size:30px;--bar-height:8px;--bar-background:#e2e1e0;--bar-background-active:#a5a5a5;--bar-border-radius:4px;--height:42px;--pin-background:var(--nano-color-primary, #007495);--pin-color:var(--nano-color-primary-contrast, #fff);--focus-style:0 0 0 5px var(--nano-control-focus-color, rgba(144, 198, 231, 0.8))}.range-wrap.sc-nano-range{display:flex;position:relative;flex:3;align-items:center;-webkit-user-select:none;user-select:none}.range-wrap.sc-nano-range-s>ion-icon[slot],.range-wrap .sc-nano-range-s>ion-icon[slot]{font-size:1.5em}.range-wrap.sc-nano-range-s>[slot=start],.range-wrap .sc-nano-range-s>[slot=start]{margin-inline:0 14px;margin-block:0;font-size:0.9em}.range-wrap.sc-nano-range-s>[slot=end],.range-wrap .sc-nano-range-s>[slot=end]{margin-inline:14px 0;margin-block:0;font-size:0.9em}.range-slider.sc-nano-range{position:relative;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:grab;touch-action:pan-y}.range-pressed.sc-nano-range-h .range-slider.sc-nano-range{cursor:grabbing}.range-bar.sc-nano-range{border-radius:var(--bar-border-radius);inset-block-start:calc((var(--height) - var(--bar-height)) / 2);inset-inline-start:0;position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}.range-snaps.sc-nano-range-h .range-bar.sc-nano-range{border-radius:var(--bar-border-radius) 0 0 var(--bar-border-radius)}.range-bar-active.sc-nano-range{inset-block-end:0;width:auto;background:var(--bar-background-active)}.range-bar-active .range-pressed.sc-nano-range-h{will-change:left, right}.range-knob.sc-nano-range{border-radius:var(--knob-border-radius);inset-block-start:calc(50% - var(--knob-size) / 2);inset-inline-start:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none;transform:scale(0.67);transition-duration:120ms;transition-property:transform, background-color, border;transition-timing-function:ease}.sc-nano-range-h:not(.range-has-pin) .range-knob-pressed.sc-nano-range .range-knob.sc-nano-range{transform:scale(1)}.range-knob-handle.sc-nano-range{inset-block-start:calc((var(--height) - var(--knob-handle-size)) / 2);inset-inline-start:0;-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2);position:absolute;width:calc(var(--knob-handle-size));height:calc(var(--knob-handle-size));text-align:center}.range-knob-handle.sc-nano-range:active,.range-knob-handle.sc-nano-range:focus{outline:none}.range-knob-handle.sc-nano-range:active .range-knob.sc-nano-range,.range-knob-handle.sc-nano-range:focus .range-knob.sc-nano-range{box-shadow:var(--knob-box-shadow), var(--focus-style)}.range-tick.sc-nano-range{position:absolute;inset-block-start:calc((var(--height) - var(--bar-height)) / 2);width:var(--bar-height);height:var(--bar-height);background:var(--bar-background-active);z-index:1;pointer-events:none}.range-tick.sc-nano-range:first-of-type{border-radius:var(--bar-border-radius) 0 0 var(--bar-border-radius)}.range-tick.sc-nano-range:last-of-type{border-radius:0 var(--bar-border-radius) var(--bar-border-radius) 0}.range-tick-active.sc-nano-range{background:transparent}.range-pin.sc-nano-range{transform:translate3d(0, 0, 0) scale(0.01);transform-origin:center top;padding:0.66em 0;border-radius:50%;text-align:center;box-sizing:border-box;display:inline-block;position:relative;min-width:2.33em;height:2.33em;transition:transform 120ms ease, background 120ms ease;background:var(--pin-background);color:var(--pin-color);font-size:0.75em}.range-pin.sc-nano-range::before{inset-block-start:0.25em;inset-inline-start:50%;-webkit-margin-start:-1.08em;margin-inline-start:-1.08em;border-radius:50% 50% 50% 0;position:absolute;width:2.16em;height:2.16em;transform:rotate(-45deg);transition:background 120ms ease;background:var(--pin-background);content:\"\";z-index:-1}.range-knob-pressed.sc-nano-range .range-pin.sc-nano-range{transform:translate3d(0, -50%, 0) scale(1);transform:translate3d(0, calc((100% - var(--bar-height)) * -1), 0) scale(1)}.range-disabled.sc-nano-range-h{pointer-events:none}.range-disabled.sc-nano-range-h .range-bar-active.sc-nano-range,.range-disabled.sc-nano-range-h .range-bar.sc-nano-range,.range-disabled.sc-nano-range-h .range-tick.sc-nano-range{background-color:rgb(var(--rgb-inactive)/50%)}.range-disabled.sc-nano-range-h .range-knob.sc-nano-range{transform:scale(0.55);outline:5px solid #fff;background-color:rgb(var(--rgb-inactive)/50%)}.nano-color.sc-nano-range-h .range-bar-active.sc-nano-range,.nano-color.sc-nano-range-h .range-knob.sc-nano-range,.nano-color.sc-nano-range-h .range-pin.sc-nano-range,.nano-color.sc-nano-range-h .range-pin.sc-nano-range::before,.nano-color.sc-nano-range-h .range-tick.sc-nano-range{background:var(--nano-color-base);color:var(--nano-color-contrast)}.nano-color.sc-nano-range-h .range-bar.sc-nano-range{background:rgb(var(--nano-color-base-rgb)/0.26)}.nano-color.sc-nano-range-h .range-knob-handle.sc-nano-range:active .range-knob.sc-nano-range,.nano-color.sc-nano-range-h .range-knob-handle.sc-nano-range:focus .range-knob.sc-nano-range{box-shadow:var(--knob-box-shadow), 0 0 0 5px rgb(var(--nano-color-tint-rgb)/0.56)}";
|
23
23
|
|
24
24
|
const Range = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
25
25
|
constructor() {
|
@@ -130,7 +130,7 @@ const Range = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
130
130
|
async componentDidLoad() {
|
131
131
|
const rangeSlider = this.rangeSlider;
|
132
132
|
if (rangeSlider) {
|
133
|
-
this.gesture = (await import('./
|
133
|
+
this.gesture = (await import('./index3.js')).createGesture({
|
134
134
|
el: rangeSlider,
|
135
135
|
gestureName: 'range',
|
136
136
|
gesturePriority: 100,
|
@@ -1 +1 @@
|
|
1
|
-
{"file":"nano-range.js","mappings":"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","names":[],"sources":["./src/utils/form.ts","./src/components/range/range.scss?tag=nano-range&encapsulation=scoped","./src/components/range/range.tsx"],"sourcesContent":["export const renderHiddenInput = (\n container: HTMLElement,\n name: string,\n value: string | undefined | null,\n disabled: boolean\n) => {\n let input = container.querySelector(\n 'input.aux-input'\n ) as HTMLInputElement | null;\n if (!input) {\n input = container.ownerDocument!.createElement('input');\n input.type = 'hidden';\n input.classList.add('aux-input');\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n input.value = value || '';\n};\n","@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n\n// Range\n// --------------------------------------------------\n\n:host {\n /**\n * @prop --knob-handle-size: defaults to calc(var(--knob-size) * 2);\n * @prop --rgb-inactive: defaults to #{color-to-rgb-list(#a5a5a5)};\n * @prop --bar-background: Background of the range bar; Defaults to #e2e1e0;\n * @prop --bar-background-active: Background of the active range bar; Defaults to #a5a5a5;\n * @prop --bar-height: Height of the range bar; Defaults to 8px;\n * @prop --bar-border-radius: Border radius of the range bar; Defaults to 4px;\n * @prop --height: Height of the range. Defaults to 42px;\n * @prop --knob-background: Background of the range knob. Defaults to #{nano-color(primary, base)};\n * @prop --knob-border-radius: Border radius of the range knob. Defaults to 50%;\n * @prop --knob-box-shadow: Box shadow of the range knob; Defaults to 0 2px 4px 0 rgba(0, 0, 0, 0.3);\n * @prop --knob-size: Size of the range knob; Defaults to 30px;\n * @prop --pin-background: Background of the range pin; Defaults to #{nano-color(primary, base)};\n * @prop --pin-color: Color of the range pin; Defaults to #{nano-color(primary, contrast)};\n * @prop --focus-style: Focus shadow around knob; Defaults to 0 0 0 5px #{$control-focus-color};\n */\n --knob-handle-size: (var(--knob-size) * 2);\n --rgb-inactive: #{color-to-rgb-list(#a5a5a5)};\n --knob-border-radius: 50%;\n --knob-background: #{nano-color(primary, base)};\n --knob-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.3);\n --knob-size: 30px;\n --bar-height: 8px;\n --bar-background: #e2e1e0;\n --bar-background-active: #a5a5a5;\n --bar-border-radius: 4px;\n --height: 42px;\n --pin-background: #{nano-color(primary, base)};\n --pin-color: #{nano-color(primary, contrast)};\n --focus-style: 0 0 0 5px #{$control-focus-color};\n}\n\n.range-wrap {\n display: flex;\n position: relative;\n flex: 3;\n align-items: center;\n user-select: none;\n\n ::slotted(ion-icon[slot]) {\n font-size: 1.5em;\n }\n\n ::slotted([slot='start']) {\n margin-inline: 0 14px;\n margin-block: 0;\n font-size: 0.9em;\n }\n\n ::slotted([slot='end']) {\n margin-inline: 14px 0;\n margin-block: 0;\n font-size: 0.9em;\n }\n}\n\n.range-slider {\n position: relative;\n flex: 1;\n width: 100%;\n height: var(--height);\n contain: size layout style;\n cursor: grab;\n touch-action: pan-y;\n}\n\n:host(.range-pressed) .range-slider {\n cursor: grabbing;\n}\n\n// bar\n\n.range-bar {\n border-radius: var(--bar-border-radius);\n inset-block-start: calc((var(--height) - var(--bar-height)) / 2);\n inset-inline-start: 0;\n position: absolute;\n width: 100%;\n height: var(--bar-height);\n background: var(--bar-background);\n pointer-events: none;\n\n :host(.range-snaps) & {\n border-radius: var(--bar-border-radius) 0 0 var(--bar-border-radius);\n }\n}\n\n.range-bar-active {\n inset-block-end: 0;\n width: auto;\n background: var(--bar-background-active);\n\n :host(.range-pressed) {\n will-change: left, right;\n }\n}\n\n// knob\n\n.range-knob {\n border-radius: var(--knob-border-radius);\n inset-block-start: calc(50% - var(--knob-size) / 2);\n inset-inline-start: calc(50% - var(--knob-size) / 2);\n position: absolute;\n width: var(--knob-size);\n height: var(--knob-size);\n background: var(--knob-background);\n box-shadow: var(--knob-box-shadow);\n z-index: 2;\n pointer-events: none;\n transform: scale(0.67);\n transition-duration: 120ms;\n transition-property: transform, background-color, border;\n transition-timing-function: ease;\n\n :host(:not(.range-has-pin)) .range-knob-pressed & {\n transform: scale(1);\n }\n}\n\n.range-knob-handle {\n inset-block-start: calc((var(--height) - var(--knob-handle-size)) / 2);\n inset-inline-start: 0;\n margin-inline-start: calc(0px - var(--knob-handle-size) / 2);\n position: absolute;\n width: calc(var(--knob-handle-size));\n height: calc(var(--knob-handle-size));\n text-align: center;\n\n &:active,\n &:focus {\n outline: none;\n\n .range-knob {\n box-shadow: var(--knob-box-shadow), var(--focus-style);\n }\n }\n}\n\n// ticks\n\n.range-tick {\n position: absolute;\n inset-block-start: calc((var(--height) - var(--bar-height)) / 2);\n width: var(--bar-height);\n height: var(--bar-height);\n background: var(--bar-background-active);\n z-index: 1;\n pointer-events: none;\n\n &:first-of-type {\n border-radius: var(--bar-border-radius) 0 0 var(--bar-border-radius);\n }\n\n &:last-of-type {\n border-radius: 0 var(--bar-border-radius) var(--bar-border-radius) 0;\n }\n\n &-active {\n background: transparent;\n }\n}\n\n// pin\n\n.range-pin {\n transform: translate3d(0, 0, 0) scale(0.01);\n transform-origin: center top;\n padding: 0.66em 0;\n border-radius: 50%;\n text-align: center;\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n min-width: 2.33em;\n height: 2.33em;\n transition: transform 120ms ease, background 120ms ease;\n background: var(--pin-background);\n color: var(--pin-color);\n font-size: 0.75em;\n\n &::before {\n inset-block-start: 0.25em;\n inset-inline-start: 50%;\n margin-inline-start: -1.08em;\n border-radius: 50% 50% 50% 0;\n position: absolute;\n width: 2.16em;\n height: 2.16em;\n transform: rotate(-45deg);\n transition: background 120ms ease;\n background: var(--pin-background);\n content: '';\n z-index: -1;\n }\n\n .range-knob-pressed & {\n transform: translate3d(0, -50%, 0) scale(1);\n transform: translate3d(0, calc((100% - var(--bar-height)) * -1), 0) scale(1);\n }\n}\n\n// disabled\n\n:host(.range-disabled) {\n pointer-events: none;\n\n .range-bar-active,\n .range-bar,\n .range-tick {\n background-color: rgba(var(--rgb-inactive), 0.5);\n }\n\n .range-knob {\n transform: scale(0.55);\n outline: 5px solid #fff;\n background-color: rgba(var(--rgb-inactive), 0.5);\n }\n}\n\n// theme\n\n:host(.nano-color) {\n .range-bar-active,\n .range-knob,\n .range-pin,\n .range-pin::before,\n .range-tick {\n background: current-color(base);\n color: current-color(contrast);\n }\n\n .range-bar {\n background: current-color(base, 0.26);\n }\n\n .range-knob-handle {\n &:active,\n &:focus {\n .range-knob {\n box-shadow: var(--knob-box-shadow), 0 0 0 5px current-color(tint, 0.56);\n }\n }\n }\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\nimport { renderHiddenInput } from '../../utils/form';\nimport { clamp } from '../../utils/math';\nimport { createColorClasses } from '../../utils/theme';\nimport { debounceEvent } from '../../utils/throttle';\nimport type {\n Color,\n Gesture,\n GestureDetail,\n KnobName,\n RangeChangeEventDetail,\n RangeValue,\n StyleEventDetail,\n} from '../../interface';\n\n/**\n * The Range slider lets users select from a range of values by moving\n * the slider knob. It can accept dual knobs, but by default one knob controls the value of the range.\n *\n * Labels can be placed on either side of the range by adding the\n * `slot=\"start\"` or `slot=\"end\"` to the element.\n *\n * @slot start - Content is placed to the left of the range slider in LTR, and to the right in RTL.\n * @slot end - Content is placed to the right of the range slider in LTR, and to the left in RTL.\n */\n@Component({\n tag: 'nano-range',\n styleUrl: 'range.scss',\n scoped: true,\n})\nexport class Range implements ComponentInterface {\n private noUpdate = false;\n private rect!: ClientRect;\n private hasFocus = false;\n private rangeSlider?: HTMLElement;\n private gesture?: Gesture;\n\n @Element() el!: HTMLNanoRangeElement;\n\n @State() private ratioA = 0;\n @State() private ratioB = 0;\n @State() private pressedKnob: KnobName;\n\n /**\n * The color to use from your application's color palette.\n * Default options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`\n */\n @Prop() color?: Color;\n\n /**\n * How long, in milliseconds, to wait to trigger the\n * `nanoChange` event after each change in the range value.\n */\n @Prop() debounce = 0;\n\n @Watch('debounce')\n protected debounceChanged() {\n this.nanoChange = debounceEvent(this.nanoChange, this.debounce);\n }\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = '';\n\n /**\n * Show two knobs.\n */\n @Prop() dualKnobs = false;\n\n /**\n * Minimum integer value of the range.\n */\n @Prop() min = 0;\n @Watch('min')\n protected minChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n\n /**\n * Maximum integer value of the range.\n */\n @Prop() max = 100;\n @Watch('max')\n protected maxChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n\n /**\n * If `true`, a pin with integer value is shown when the knob\n * is pressed.\n */\n @Prop() pin = false;\n\n /**\n * If `true`, the knob snaps to tick marks evenly spaced based\n * on the step property value.\n */\n @Prop() snaps = false;\n\n /**\n * Specifies the value granularity.\n */\n @Prop() step = 1;\n\n /**\n * If `true`, tick marks are displayed based on the step value.\n * Only applies when `snaps` is `true`.\n */\n @Prop() ticks = false;\n\n /**\n * If `true`, the user cannot interact with the range.\n */\n @Prop() disabled = false;\n @Watch('disabled')\n protected disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n this.emitStyle();\n }\n\n /**\n * the value of the range.\n */\n @Prop({ mutable: true }) value: RangeValue = 0;\n @Watch('value')\n protected valueChanged(value: RangeValue) {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n\n value = this.ensureValueInBounds(value);\n\n this.nanoChange.emit({ value });\n }\n\n private clampBounds = (value: any): number => {\n return clamp(this.min, value, this.max);\n };\n\n private ensureValueInBounds = (value: any) => {\n if (this.dualKnobs) {\n return {\n lower: this.clampBounds(value.lower),\n upper: this.clampBounds(value.upper),\n };\n } else {\n return this.clampBounds(value);\n }\n };\n\n /**\n * Emitted when the value property has changed.\n */\n @Event() nanoChange!: EventEmitter<RangeChangeEventDetail>;\n\n /**\n * Emitted when the styles change.\n * @internal\n */\n @Event() nanoStyle!: EventEmitter<StyleEventDetail>;\n\n /**\n * Emitted when the range has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the range loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n connectedCallback() {\n this.updateRatio();\n this.debounceChanged();\n this.disabledChanged();\n }\n\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n\n async componentDidLoad() {\n const rangeSlider = this.rangeSlider;\n if (rangeSlider) {\n this.gesture = (await import('../../utils/gesture/index')).createGesture({\n el: rangeSlider,\n gestureName: 'range',\n gesturePriority: 100,\n threshold: 0,\n onStart: (ev) => this.onStart(ev),\n onMove: (ev) => this.onMove(ev),\n onEnd: (ev) => this.onEnd(ev),\n });\n this.gesture.enable(!this.disabled);\n }\n }\n\n private handleKeyboard = (knob: KnobName, isIncrease: boolean) => {\n let step = this.step;\n step = step > 0 ? step : 1;\n step = step / (this.max - this.min);\n if (!isIncrease) {\n step *= -1;\n }\n if (knob === 'A') {\n this.ratioA = clamp(0, this.ratioA + step, 1);\n } else {\n this.ratioB = clamp(0, this.ratioB + step, 1);\n }\n this.updateValue();\n };\n\n private getValue(): RangeValue {\n const value = this.value || 0;\n if (this.dualKnobs) {\n if (typeof value === 'object') {\n return value;\n }\n return {\n lower: 0,\n upper: value,\n };\n } else {\n if (typeof value === 'object') {\n return value.upper;\n }\n return value;\n }\n }\n\n private emitStyle() {\n this.nanoStyle.emit({\n interactive: true,\n 'interactive-disabled': this.disabled,\n });\n }\n\n private onStart(detail: GestureDetail) {\n const rect = (this.rect = this.rangeSlider!.getBoundingClientRect() as any);\n const currentX = detail.currentX;\n\n // figure out which knob they started closer to\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (document.dir === 'rtl') {\n ratio = 1 - ratio;\n }\n\n this.pressedKnob =\n !this.dualKnobs ||\n Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio)\n ? 'A'\n : 'B';\n\n this.setFocus(this.pressedKnob);\n\n // update the active knob's position\n this.update(currentX);\n }\n\n private onMove(detail: GestureDetail) {\n this.update(detail.currentX);\n }\n\n private onEnd(detail: GestureDetail) {\n this.update(detail.currentX);\n this.pressedKnob = undefined;\n }\n\n private update(currentX: number) {\n // figure out where the pointer is currently at\n // update the knob being interacted with\n const rect = this.rect;\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (document.dir === 'rtl') {\n ratio = 1 - ratio;\n }\n\n if (this.snaps) {\n // snaps the ratio to the current value\n ratio = valueToRatio(\n ratioToValue(ratio, this.min, this.max, this.step),\n this.min,\n this.max\n );\n }\n\n // update which knob is pressed\n if (this.pressedKnob === 'A') {\n this.ratioA = ratio;\n } else {\n this.ratioB = ratio;\n }\n\n // Update input value\n this.updateValue();\n }\n\n private get valA() {\n return ratioToValue(this.ratioA, this.min, this.max, this.step);\n }\n\n private get valB() {\n return ratioToValue(this.ratioB, this.min, this.max, this.step);\n }\n\n private get ratioLower() {\n if (this.dualKnobs) {\n return Math.min(this.ratioA, this.ratioB);\n }\n return 0;\n }\n\n private get ratioUpper() {\n if (this.dualKnobs) {\n return Math.max(this.ratioA, this.ratioB);\n }\n return this.ratioA;\n }\n\n private updateRatio() {\n const value = this.getValue() as any;\n const { min, max } = this;\n if (this.dualKnobs) {\n this.ratioA = valueToRatio(value.lower, min, max);\n this.ratioB = valueToRatio(value.upper, min, max);\n } else {\n this.ratioA = valueToRatio(value, min, max);\n }\n }\n\n private updateValue() {\n this.noUpdate = true;\n\n const { valA, valB } = this;\n this.value = !this.dualKnobs\n ? valA\n : {\n lower: Math.min(valA, valB),\n upper: Math.max(valA, valB),\n };\n\n this.noUpdate = false;\n }\n\n private setFocus(knob: KnobName) {\n if (this.el.shadowRoot) {\n const knobEl = this.el.shadowRoot.querySelector(\n knob === 'A' ? '.range-knob-a' : '.range-knob-b'\n ) as HTMLElement | undefined;\n if (knobEl) {\n knobEl.focus();\n }\n }\n }\n\n private onBlur = () => {\n if (this.hasFocus) {\n this.hasFocus = false;\n this.nanoBlur.emit();\n this.emitStyle();\n }\n };\n\n private onFocus = () => {\n if (!this.hasFocus) {\n this.hasFocus = true;\n this.nanoFocus.emit();\n this.emitStyle();\n }\n };\n\n render() {\n const {\n min,\n max,\n step,\n el,\n handleKeyboard,\n pressedKnob,\n disabled,\n pin,\n ratioLower,\n ratioUpper,\n } = this;\n\n const barStart = `${ratioLower * 100}%`;\n const barEnd = `${100 - ratioUpper * 100}%`;\n\n const doc = document;\n const isRTL = doc.dir === 'rtl';\n const start = isRTL ? 'right' : 'left';\n const end = isRTL ? 'left' : 'right';\n\n const tickStyle = (tick: any) => {\n return {\n [start]: tick[start],\n };\n };\n\n const barStyle = {\n [start]: barStart,\n [end]: barEnd,\n };\n\n const ticks = [];\n if (this.snaps && this.ticks) {\n for (let value = min; value <= max; value += step) {\n const ratio = valueToRatio(value, min, max);\n\n const tick: any = {\n ratio,\n active: ratio >= ratioLower && ratio <= ratioUpper,\n };\n\n tick[start] = `${ratio * 100}%`;\n\n ticks.push(tick);\n }\n }\n\n renderHiddenInput(el, this.name, JSON.stringify(this.getValue()), disabled);\n\n return (\n <Host\n onFocusin={this.onFocus}\n onFocusout={this.onBlur}\n class={createColorClasses(this.color, {\n 'range-disabled': disabled,\n 'range-pressed': pressedKnob !== undefined,\n 'range-has-pin': pin,\n 'range-snaps': this.snaps,\n })}\n >\n <div class=\"range-wrap\">\n <slot name=\"start\"></slot>\n <div\n class=\"range-slider\"\n ref={(rangeEl) => (this.rangeSlider = rangeEl)}\n >\n {ticks.map((tick) => (\n <span\n style={tickStyle(tick)}\n role=\"presentation\"\n class={{\n 'range-tick': true,\n 'range-tick-active': tick.active,\n }}\n part={tick.active ? 'tick-active' : 'tick'}\n />\n ))}\n\n <div class=\"range-bar\" role=\"presentation\" part=\"bar\" />\n <div\n class=\"range-bar range-bar-active\"\n role=\"presentation\"\n style={barStyle}\n part=\"bar-active\"\n />\n\n {renderKnob(isRTL, {\n knob: 'A',\n pressed: pressedKnob === 'A',\n value: this.valA,\n ratio: this.ratioA,\n pin,\n disabled,\n handleKeyboard,\n min,\n max,\n })}\n\n {this.dualKnobs &&\n renderKnob(isRTL, {\n knob: 'B',\n pressed: pressedKnob === 'B',\n value: this.valB,\n ratio: this.ratioB,\n pin,\n disabled,\n handleKeyboard,\n min,\n max,\n })}\n </div>\n <slot name=\"end\"></slot>\n </div>\n </Host>\n );\n }\n}\n\ninterface RangeKnob {\n knob: KnobName;\n value: number;\n ratio: number;\n min: number;\n max: number;\n disabled: boolean;\n pressed: boolean;\n pin: boolean;\n\n handleKeyboard: (name: KnobName, isIncrease: boolean) => void;\n}\n\nconst renderKnob = (\n isRTL: boolean,\n {\n knob,\n value,\n ratio,\n min,\n max,\n disabled,\n pressed,\n pin,\n handleKeyboard,\n }: RangeKnob\n) => {\n const start = isRTL ? 'right' : 'left';\n\n const knobStyle = () => {\n const style: any = {};\n style[start] = `${ratio * 100}%`;\n return style;\n };\n\n return (\n <div\n onKeyDown={(ev: KeyboardEvent) => {\n const key = ev.key;\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n handleKeyboard(knob, false);\n ev.preventDefault();\n ev.stopPropagation();\n } else if (key === 'ArrowRight' || key === 'ArrowUp') {\n handleKeyboard(knob, true);\n ev.preventDefault();\n ev.stopPropagation();\n }\n }}\n class={{\n 'range-knob-handle': true,\n 'range-knob-a': knob === 'A',\n 'range-knob-b': knob === 'B',\n 'range-knob-pressed': pressed,\n 'range-knob-min': value === min,\n 'range-knob-max': value === max,\n }}\n style={knobStyle()}\n role=\"slider\"\n tabindex={disabled ? -1 : 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-disabled={disabled ? 'true' : null}\n aria-valuenow={value}\n >\n {pin && (\n <div class=\"range-pin\" role=\"presentation\" part=\"pin\">\n {Math.round(value)}\n </div>\n )}\n <div class=\"range-knob\" role=\"presentation\" part=\"knob\" />\n </div>\n );\n};\n\nconst ratioToValue = (\n ratio: number,\n min: number,\n max: number,\n step: number\n): number => {\n let value = (max - min) * ratio;\n if (step > 0) {\n value = Math.round(value / step) * step + min;\n }\n return clamp(min, value, max);\n};\n\nconst valueToRatio = (value: number, min: number, max: number): number => {\n return clamp(0, (value - min) / (max - min), 1);\n};\n"],"version":3}
|
1
|
+
{"file":"nano-range.js","mappings":"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","names":[],"sources":["./src/utils/form.ts","./src/components/range/range.scss?tag=nano-range&encapsulation=scoped","./src/components/range/range.tsx"],"sourcesContent":["export const renderHiddenInput = (\n container: HTMLElement,\n name: string,\n value: string | undefined | null,\n disabled: boolean\n) => {\n let input = container.querySelector(\n 'input.aux-input'\n ) as HTMLInputElement | null;\n if (!input) {\n input = container.ownerDocument!.createElement('input');\n input.type = 'hidden';\n input.classList.add('aux-input');\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n input.value = value || '';\n};\n","@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n\n// Range\n// --------------------------------------------------\n\n:host {\n /**\n * @prop --knob-handle-size: defaults to calc(var(--knob-size) * 2);\n * @prop --rgb-inactive: defaults to #{color-to-rgb-list(#a5a5a5)};\n * @prop --bar-background: Background of the range bar; Defaults to #e2e1e0;\n * @prop --bar-background-active: Background of the active range bar; Defaults to #a5a5a5;\n * @prop --bar-height: Height of the range bar; Defaults to 8px;\n * @prop --bar-border-radius: Border radius of the range bar; Defaults to 4px;\n * @prop --height: Height of the range. Defaults to 42px;\n * @prop --knob-background: Background of the range knob. Defaults to #{nano-color(primary, base)};\n * @prop --knob-border-radius: Border radius of the range knob. Defaults to 50%;\n * @prop --knob-box-shadow: Box shadow of the range knob; Defaults to 0 2px 4px 0 rgba(0, 0, 0, 0.3);\n * @prop --knob-size: Size of the range knob; Defaults to 30px;\n * @prop --pin-background: Background of the range pin; Defaults to #{nano-color(primary, base)};\n * @prop --pin-color: Color of the range pin; Defaults to #{nano-color(primary, contrast)};\n * @prop --focus-style: Focus shadow around knob; Defaults to 0 0 0 5px #{$control-focus-color};\n */\n --knob-handle-size: (var(--knob-size) * 2);\n --rgb-inactive: #{color-to-rgb-list(#a5a5a5)};\n --knob-border-radius: 50%;\n --knob-background: #{nano-color(primary, base)};\n --knob-box-shadow: 0 2px 4px 0 rgb(0 0 0 / 30%);\n --knob-size: 30px;\n --bar-height: 8px;\n --bar-background: #e2e1e0;\n --bar-background-active: #a5a5a5;\n --bar-border-radius: 4px;\n --height: 42px;\n --pin-background: #{nano-color(primary, base)};\n --pin-color: #{nano-color(primary, contrast)};\n --focus-style: 0 0 0 5px #{$control-focus-color};\n}\n\n.range-wrap {\n display: flex;\n position: relative;\n flex: 3;\n align-items: center;\n user-select: none;\n\n ::slotted(ion-icon[slot]) {\n font-size: 1.5em;\n }\n\n ::slotted([slot='start']) {\n margin-inline: 0 14px;\n margin-block: 0;\n font-size: 0.9em;\n }\n\n ::slotted([slot='end']) {\n margin-inline: 14px 0;\n margin-block: 0;\n font-size: 0.9em;\n }\n}\n\n.range-slider {\n position: relative;\n flex: 1;\n width: 100%;\n height: var(--height);\n contain: size layout style;\n cursor: grab;\n touch-action: pan-y;\n}\n\n:host(.range-pressed) .range-slider {\n cursor: grabbing;\n}\n\n// bar\n\n.range-bar {\n border-radius: var(--bar-border-radius);\n inset-block-start: calc((var(--height) - var(--bar-height)) / 2);\n inset-inline-start: 0;\n position: absolute;\n width: 100%;\n height: var(--bar-height);\n background: var(--bar-background);\n pointer-events: none;\n\n :host(.range-snaps) & {\n border-radius: var(--bar-border-radius) 0 0 var(--bar-border-radius);\n }\n}\n\n.range-bar-active {\n inset-block-end: 0;\n width: auto;\n background: var(--bar-background-active);\n\n :host(.range-pressed) {\n will-change: left, right;\n }\n}\n\n// knob\n\n.range-knob {\n border-radius: var(--knob-border-radius);\n inset-block-start: calc(50% - var(--knob-size) / 2);\n inset-inline-start: calc(50% - var(--knob-size) / 2);\n position: absolute;\n width: var(--knob-size);\n height: var(--knob-size);\n background: var(--knob-background);\n box-shadow: var(--knob-box-shadow);\n z-index: 2;\n pointer-events: none;\n transform: scale(0.67);\n transition-duration: 120ms;\n transition-property: transform, background-color, border;\n transition-timing-function: ease;\n\n :host(:not(.range-has-pin)) .range-knob-pressed & {\n transform: scale(1);\n }\n}\n\n.range-knob-handle {\n inset-block-start: calc((var(--height) - var(--knob-handle-size)) / 2);\n inset-inline-start: 0;\n margin-inline-start: calc(0px - var(--knob-handle-size) / 2);\n position: absolute;\n width: calc(var(--knob-handle-size));\n height: calc(var(--knob-handle-size));\n text-align: center;\n\n &:active,\n &:focus {\n outline: none;\n\n .range-knob {\n box-shadow: var(--knob-box-shadow), var(--focus-style);\n }\n }\n}\n\n// ticks\n\n.range-tick {\n position: absolute;\n inset-block-start: calc((var(--height) - var(--bar-height)) / 2);\n width: var(--bar-height);\n height: var(--bar-height);\n background: var(--bar-background-active);\n z-index: 1;\n pointer-events: none;\n\n &:first-of-type {\n border-radius: var(--bar-border-radius) 0 0 var(--bar-border-radius);\n }\n\n &:last-of-type {\n border-radius: 0 var(--bar-border-radius) var(--bar-border-radius) 0;\n }\n\n &-active {\n background: transparent;\n }\n}\n\n// pin\n\n.range-pin {\n transform: translate3d(0, 0, 0) scale(0.01);\n transform-origin: center top;\n padding: 0.66em 0;\n border-radius: 50%;\n text-align: center;\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n min-width: 2.33em;\n height: 2.33em;\n transition: transform 120ms ease, background 120ms ease;\n background: var(--pin-background);\n color: var(--pin-color);\n font-size: 0.75em;\n\n &::before {\n inset-block-start: 0.25em;\n inset-inline-start: 50%;\n margin-inline-start: -1.08em;\n border-radius: 50% 50% 50% 0;\n position: absolute;\n width: 2.16em;\n height: 2.16em;\n transform: rotate(-45deg);\n transition: background 120ms ease;\n background: var(--pin-background);\n content: '';\n z-index: -1;\n }\n\n .range-knob-pressed & {\n transform: translate3d(0, -50%, 0) scale(1);\n transform: translate3d(0, calc((100% - var(--bar-height)) * -1), 0) scale(1);\n }\n}\n\n// disabled\n\n:host(.range-disabled) {\n pointer-events: none;\n\n .range-bar-active,\n .range-bar,\n .range-tick {\n background-color: rgb(var(--rgb-inactive) / 50%);\n }\n\n .range-knob {\n transform: scale(0.55);\n outline: 5px solid #fff;\n background-color: rgb(var(--rgb-inactive) / 50%);\n }\n}\n\n// theme\n\n:host(.nano-color) {\n .range-bar-active,\n .range-knob,\n .range-pin,\n .range-pin::before,\n .range-tick {\n background: current-color(base);\n color: current-color(contrast);\n }\n\n .range-bar {\n background: current-color(base, 0.26);\n }\n\n .range-knob-handle {\n &:active,\n &:focus {\n .range-knob {\n box-shadow: var(--knob-box-shadow), 0 0 0 5px current-color(tint, 0.56);\n }\n }\n }\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\nimport { renderHiddenInput } from '../../utils/form';\nimport { clamp } from '../../utils/math';\nimport { createColorClasses } from '../../utils/theme';\nimport { debounceEvent } from '../../utils/throttle';\nimport type {\n Color,\n Gesture,\n GestureDetail,\n KnobName,\n RangeChangeEventDetail,\n RangeValue,\n StyleEventDetail,\n} from '../../interface';\n\n/**\n * The Range slider lets users select from a range of values by moving\n * the slider knob. It can accept dual knobs, but by default one knob controls the value of the range.\n *\n * Labels can be placed on either side of the range by adding the\n * `slot=\"start\"` or `slot=\"end\"` to the element.\n *\n * @slot start - Content is placed to the left of the range slider in LTR, and to the right in RTL.\n * @slot end - Content is placed to the right of the range slider in LTR, and to the left in RTL.\n */\n@Component({\n tag: 'nano-range',\n styleUrl: 'range.scss',\n scoped: true,\n})\nexport class Range implements ComponentInterface {\n private noUpdate = false;\n private rect!: ClientRect;\n private hasFocus = false;\n private rangeSlider?: HTMLElement;\n private gesture?: Gesture;\n\n @Element() el!: HTMLNanoRangeElement;\n\n @State() private ratioA = 0;\n @State() private ratioB = 0;\n @State() private pressedKnob: KnobName;\n\n /**\n * The color to use from your application's color palette.\n * Default options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`\n */\n @Prop() color?: Color;\n\n /**\n * How long, in milliseconds, to wait to trigger the\n * `nanoChange` event after each change in the range value.\n */\n @Prop() debounce = 0;\n\n @Watch('debounce')\n protected debounceChanged() {\n this.nanoChange = debounceEvent(this.nanoChange, this.debounce);\n }\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = '';\n\n /**\n * Show two knobs.\n */\n @Prop() dualKnobs = false;\n\n /**\n * Minimum integer value of the range.\n */\n @Prop() min = 0;\n @Watch('min')\n protected minChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n\n /**\n * Maximum integer value of the range.\n */\n @Prop() max = 100;\n @Watch('max')\n protected maxChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n\n /**\n * If `true`, a pin with integer value is shown when the knob\n * is pressed.\n */\n @Prop() pin = false;\n\n /**\n * If `true`, the knob snaps to tick marks evenly spaced based\n * on the step property value.\n */\n @Prop() snaps = false;\n\n /**\n * Specifies the value granularity.\n */\n @Prop() step = 1;\n\n /**\n * If `true`, tick marks are displayed based on the step value.\n * Only applies when `snaps` is `true`.\n */\n @Prop() ticks = false;\n\n /**\n * If `true`, the user cannot interact with the range.\n */\n @Prop() disabled = false;\n @Watch('disabled')\n protected disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n this.emitStyle();\n }\n\n /**\n * the value of the range.\n */\n @Prop({ mutable: true }) value: RangeValue = 0;\n @Watch('value')\n protected valueChanged(value: RangeValue) {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n\n value = this.ensureValueInBounds(value);\n\n this.nanoChange.emit({ value });\n }\n\n private clampBounds = (value: any): number => {\n return clamp(this.min, value, this.max);\n };\n\n private ensureValueInBounds = (value: any) => {\n if (this.dualKnobs) {\n return {\n lower: this.clampBounds(value.lower),\n upper: this.clampBounds(value.upper),\n };\n } else {\n return this.clampBounds(value);\n }\n };\n\n /**\n * Emitted when the value property has changed.\n */\n @Event() nanoChange!: EventEmitter<RangeChangeEventDetail>;\n\n /**\n * Emitted when the styles change.\n * @internal\n */\n @Event() nanoStyle!: EventEmitter<StyleEventDetail>;\n\n /**\n * Emitted when the range has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the range loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n connectedCallback() {\n this.updateRatio();\n this.debounceChanged();\n this.disabledChanged();\n }\n\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n\n async componentDidLoad() {\n const rangeSlider = this.rangeSlider;\n if (rangeSlider) {\n this.gesture = (await import('../../utils/gesture/index')).createGesture({\n el: rangeSlider,\n gestureName: 'range',\n gesturePriority: 100,\n threshold: 0,\n onStart: (ev) => this.onStart(ev),\n onMove: (ev) => this.onMove(ev),\n onEnd: (ev) => this.onEnd(ev),\n });\n this.gesture.enable(!this.disabled);\n }\n }\n\n private handleKeyboard = (knob: KnobName, isIncrease: boolean) => {\n let step = this.step;\n step = step > 0 ? step : 1;\n step = step / (this.max - this.min);\n if (!isIncrease) {\n step *= -1;\n }\n if (knob === 'A') {\n this.ratioA = clamp(0, this.ratioA + step, 1);\n } else {\n this.ratioB = clamp(0, this.ratioB + step, 1);\n }\n this.updateValue();\n };\n\n private getValue(): RangeValue {\n const value = this.value || 0;\n if (this.dualKnobs) {\n if (typeof value === 'object') {\n return value;\n }\n return {\n lower: 0,\n upper: value,\n };\n } else {\n if (typeof value === 'object') {\n return value.upper;\n }\n return value;\n }\n }\n\n private emitStyle() {\n this.nanoStyle.emit({\n interactive: true,\n 'interactive-disabled': this.disabled,\n });\n }\n\n private onStart(detail: GestureDetail) {\n const rect = (this.rect = this.rangeSlider!.getBoundingClientRect() as any);\n const currentX = detail.currentX;\n\n // figure out which knob they started closer to\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (document.dir === 'rtl') {\n ratio = 1 - ratio;\n }\n\n this.pressedKnob =\n !this.dualKnobs ||\n Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio)\n ? 'A'\n : 'B';\n\n this.setFocus(this.pressedKnob);\n\n // update the active knob's position\n this.update(currentX);\n }\n\n private onMove(detail: GestureDetail) {\n this.update(detail.currentX);\n }\n\n private onEnd(detail: GestureDetail) {\n this.update(detail.currentX);\n this.pressedKnob = undefined;\n }\n\n private update(currentX: number) {\n // figure out where the pointer is currently at\n // update the knob being interacted with\n const rect = this.rect;\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (document.dir === 'rtl') {\n ratio = 1 - ratio;\n }\n\n if (this.snaps) {\n // snaps the ratio to the current value\n ratio = valueToRatio(\n ratioToValue(ratio, this.min, this.max, this.step),\n this.min,\n this.max\n );\n }\n\n // update which knob is pressed\n if (this.pressedKnob === 'A') {\n this.ratioA = ratio;\n } else {\n this.ratioB = ratio;\n }\n\n // Update input value\n this.updateValue();\n }\n\n private get valA() {\n return ratioToValue(this.ratioA, this.min, this.max, this.step);\n }\n\n private get valB() {\n return ratioToValue(this.ratioB, this.min, this.max, this.step);\n }\n\n private get ratioLower() {\n if (this.dualKnobs) {\n return Math.min(this.ratioA, this.ratioB);\n }\n return 0;\n }\n\n private get ratioUpper() {\n if (this.dualKnobs) {\n return Math.max(this.ratioA, this.ratioB);\n }\n return this.ratioA;\n }\n\n private updateRatio() {\n const value = this.getValue() as any;\n const { min, max } = this;\n if (this.dualKnobs) {\n this.ratioA = valueToRatio(value.lower, min, max);\n this.ratioB = valueToRatio(value.upper, min, max);\n } else {\n this.ratioA = valueToRatio(value, min, max);\n }\n }\n\n private updateValue() {\n this.noUpdate = true;\n\n const { valA, valB } = this;\n this.value = !this.dualKnobs\n ? valA\n : {\n lower: Math.min(valA, valB),\n upper: Math.max(valA, valB),\n };\n\n this.noUpdate = false;\n }\n\n private setFocus(knob: KnobName) {\n if (this.el.shadowRoot) {\n const knobEl = this.el.shadowRoot.querySelector(\n knob === 'A' ? '.range-knob-a' : '.range-knob-b'\n ) as HTMLElement | undefined;\n if (knobEl) {\n knobEl.focus();\n }\n }\n }\n\n private onBlur = () => {\n if (this.hasFocus) {\n this.hasFocus = false;\n this.nanoBlur.emit();\n this.emitStyle();\n }\n };\n\n private onFocus = () => {\n if (!this.hasFocus) {\n this.hasFocus = true;\n this.nanoFocus.emit();\n this.emitStyle();\n }\n };\n\n render() {\n const {\n min,\n max,\n step,\n el,\n handleKeyboard,\n pressedKnob,\n disabled,\n pin,\n ratioLower,\n ratioUpper,\n } = this;\n\n const barStart = `${ratioLower * 100}%`;\n const barEnd = `${100 - ratioUpper * 100}%`;\n\n const doc = document;\n const isRTL = doc.dir === 'rtl';\n const start = isRTL ? 'right' : 'left';\n const end = isRTL ? 'left' : 'right';\n\n const tickStyle = (tick: any) => {\n return {\n [start]: tick[start],\n };\n };\n\n const barStyle = {\n [start]: barStart,\n [end]: barEnd,\n };\n\n const ticks = [];\n if (this.snaps && this.ticks) {\n for (let value = min; value <= max; value += step) {\n const ratio = valueToRatio(value, min, max);\n\n const tick: any = {\n ratio,\n active: ratio >= ratioLower && ratio <= ratioUpper,\n };\n\n tick[start] = `${ratio * 100}%`;\n\n ticks.push(tick);\n }\n }\n\n renderHiddenInput(el, this.name, JSON.stringify(this.getValue()), disabled);\n\n return (\n <Host\n onFocusin={this.onFocus}\n onFocusout={this.onBlur}\n class={createColorClasses(this.color, {\n 'range-disabled': disabled,\n 'range-pressed': pressedKnob !== undefined,\n 'range-has-pin': pin,\n 'range-snaps': this.snaps,\n })}\n >\n <div class=\"range-wrap\">\n <slot name=\"start\"></slot>\n <div\n class=\"range-slider\"\n ref={(rangeEl) => (this.rangeSlider = rangeEl)}\n >\n {ticks.map((tick) => (\n <span\n style={tickStyle(tick)}\n role=\"presentation\"\n class={{\n 'range-tick': true,\n 'range-tick-active': tick.active,\n }}\n part={tick.active ? 'tick-active' : 'tick'}\n />\n ))}\n\n <div class=\"range-bar\" role=\"presentation\" part=\"bar\" />\n <div\n class=\"range-bar range-bar-active\"\n role=\"presentation\"\n style={barStyle}\n part=\"bar-active\"\n />\n\n {renderKnob(isRTL, {\n knob: 'A',\n pressed: pressedKnob === 'A',\n value: this.valA,\n ratio: this.ratioA,\n pin,\n disabled,\n handleKeyboard,\n min,\n max,\n })}\n\n {this.dualKnobs &&\n renderKnob(isRTL, {\n knob: 'B',\n pressed: pressedKnob === 'B',\n value: this.valB,\n ratio: this.ratioB,\n pin,\n disabled,\n handleKeyboard,\n min,\n max,\n })}\n </div>\n <slot name=\"end\"></slot>\n </div>\n </Host>\n );\n }\n}\n\ninterface RangeKnob {\n knob: KnobName;\n value: number;\n ratio: number;\n min: number;\n max: number;\n disabled: boolean;\n pressed: boolean;\n pin: boolean;\n\n handleKeyboard: (name: KnobName, isIncrease: boolean) => void;\n}\n\nconst renderKnob = (\n isRTL: boolean,\n {\n knob,\n value,\n ratio,\n min,\n max,\n disabled,\n pressed,\n pin,\n handleKeyboard,\n }: RangeKnob\n) => {\n const start = isRTL ? 'right' : 'left';\n\n const knobStyle = () => {\n const style: any = {};\n style[start] = `${ratio * 100}%`;\n return style;\n };\n\n return (\n <div\n onKeyDown={(ev: KeyboardEvent) => {\n const key = ev.key;\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n handleKeyboard(knob, false);\n ev.preventDefault();\n ev.stopPropagation();\n } else if (key === 'ArrowRight' || key === 'ArrowUp') {\n handleKeyboard(knob, true);\n ev.preventDefault();\n ev.stopPropagation();\n }\n }}\n class={{\n 'range-knob-handle': true,\n 'range-knob-a': knob === 'A',\n 'range-knob-b': knob === 'B',\n 'range-knob-pressed': pressed,\n 'range-knob-min': value === min,\n 'range-knob-max': value === max,\n }}\n style={knobStyle()}\n role=\"slider\"\n tabindex={disabled ? -1 : 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-disabled={disabled ? 'true' : null}\n aria-valuenow={value}\n >\n {pin && (\n <div class=\"range-pin\" role=\"presentation\" part=\"pin\">\n {Math.round(value)}\n </div>\n )}\n <div class=\"range-knob\" role=\"presentation\" part=\"knob\" />\n </div>\n );\n};\n\nconst ratioToValue = (\n ratio: number,\n min: number,\n max: number,\n step: number\n): number => {\n let value = (max - min) * ratio;\n if (step > 0) {\n value = Math.round(value / step) * step + min;\n }\n return clamp(min, value, max);\n};\n\nconst valueToRatio = (value: number, min: number, max: number): number => {\n return clamp(0, (value - min) / (max - min), 1);\n};\n"],"version":3}
|
@@ -5,7 +5,7 @@ import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/i
|
|
5
5
|
import { f as focusVisible } from './focus-visible.js';
|
6
6
|
import { c as clamp } from './math.js';
|
7
7
|
|
8
|
-
const ratingCss = ".sc-nano-rating-h{box-sizing:border-box}*.sc-nano-rating,*.sc-nano-rating::before,*.sc-nano-rating::after{box-sizing:border-box}[hidden].sc-nano-rating{display:none !important}.sc-nano-rating-h{--symbol-color:#b5aea7;--symbol-color-active:#f5cc49;--symbol-spacing:0.25rem;--focus-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));display:inline-block}.rating-wrap.sc-nano-rating{position:relative;margin-block-start:0;margin-block-end:0;margin-inline-start:calc(var(--symbol-spacing) * -1);margin-inline-end:calc(var(--symbol-spacing) * -1)}.rating.sc-nano-rating{position:relative;border-radius:5px;vertical-align:middle;inline-size:100%;transition:box-shadow 0.15s ease}.rating.sc-nano-rating:focus{outline:none}.rating.focus-visible.sc-nano-rating:focus{box-shadow:var(--focus-shadow)}.rating__symbols.sc-nano-rating{display:flex;align-items:center;position:relative;font-size:var(--symbol-size);color:var(--symbol-color);white-space:nowrap;cursor:pointer;line-height:0;justify-content:space-between}.rating__symbols--inactive.sc-nano-rating .rating__symbol.sc-nano-rating>.sc-nano-rating:not(nano-icon){background-color:
|
8
|
+
const ratingCss = ".sc-nano-rating-h{box-sizing:border-box}*.sc-nano-rating,*.sc-nano-rating::before,*.sc-nano-rating::after{box-sizing:border-box}[hidden].sc-nano-rating{display:none !important}.sc-nano-rating-h{--symbol-color:#b5aea7;--symbol-color-active:#f5cc49;--symbol-spacing:0.25rem;--focus-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));display:inline-block}.rating-wrap.sc-nano-rating{position:relative;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-after:0;margin-block-end:0;-webkit-margin-start:calc(var(--symbol-spacing) * -1);margin-inline-start:calc(var(--symbol-spacing) * -1);-webkit-margin-end:calc(var(--symbol-spacing) * -1);margin-inline-end:calc(var(--symbol-spacing) * -1)}.rating.sc-nano-rating{position:relative;border-radius:5px;vertical-align:middle;inline-size:100%;transition:box-shadow 0.15s ease}.rating.sc-nano-rating:focus{outline:none}.rating.focus-visible.sc-nano-rating:focus{box-shadow:var(--focus-shadow)}.rating__symbols.sc-nano-rating{display:flex;align-items:center;position:relative;font-size:var(--symbol-size);color:var(--symbol-color);white-space:nowrap;cursor:pointer;line-height:0;justify-content:space-between}.rating__symbols--inactive.sc-nano-rating .rating__symbol.sc-nano-rating>.sc-nano-rating:not(nano-icon){background-color:currentcolor !important}.rating__symbols.sc-nano-rating>*.sc-nano-rating{margin:var(--symbol-spacing)}.rating__symbols--indicator.sc-nano-rating{position:absolute;inset-block-start:0;inset-inline-start:0;color:var(--symbol-color-active);pointer-events:none;inline-size:100%}.rating__symbol.sc-nano-rating{transition:0.2s transform;text-align:center}.rating__symbol--hover.sc-nano-rating{transform:scale(1.2)}.rating--disabled.sc-nano-rating .rating__symbols.sc-nano-rating,.rating--readonly.sc-nano-rating .rating__symbols.sc-nano-rating{cursor:default}.rating--disabled.sc-nano-rating .rating__symbol.sc-nano-rating,.rating--readonly.sc-nano-rating .rating__symbol.sc-nano-rating{transform:none !important}.rating--disabled.sc-nano-rating{opacity:0.5}.rating--disabled.sc-nano-rating .rating__symbols.sc-nano-rating{cursor:not-allowed}";
|
9
9
|
|
10
10
|
const Rating = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
11
11
|
constructor() {
|
@@ -1 +1 @@
|
|
1
|
-
{"file":"nano-rating.js","mappings":"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","names":[],"sources":["./src/components/rating/rating.scss?tag=nano-rating&encapsulation=scoped","./src/components/rating/rating.tsx"],"sourcesContent":["@use 'sass:map';\n@use 'sass:list';\n\n@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/colours';\n@import '../../global/style/nano-theme/form';\n\n:host {\n /**\n * @prop --symbol-color: The inactive color for symbols. Defaults to #{map.get($colors, palegrey)}\n * @prop --symbol-color-active: The active color for symbols. Defaults to #{map.get($colors, palegrey)}\n * @prop --symbol-size: The size of symbols. Defaults to contextual font size\n * @prop --symbol-spacing: The spacing to use around symbols. Defaults to .25rem\n * @prop --focus-shadow: Box shadow style when focused. Defaults to #{$control-focus-style}\n */\n\n --symbol-color: #{map.get($colors, palegrey)};\n --symbol-color-active: #{map.get($colors, yellow)};\n --symbol-spacing: 0.25rem;\n --focus-shadow: #{$control-focus-style};\n\n display: inline-block;\n}\n\n.rating-wrap {\n position: relative;\n margin-block-start: 0;\n margin-block-end: 0;\n margin-inline-start: calc(var(--symbol-spacing) * -1);\n margin-inline-end: calc(var(--symbol-spacing) * -1);\n}\n\n.rating {\n position: relative;\n border-radius: 5px;\n vertical-align: middle;\n inline-size: 100%;\n transition: box-shadow 0.15s ease;\n\n &:focus {\n outline: none;\n }\n\n &.focus-visible:focus {\n box-shadow: var(--focus-shadow);\n }\n\n &__symbols {\n display: flex;\n align-items: center;\n position: relative;\n font-size: var(--symbol-size);\n color: var(--symbol-color);\n white-space: nowrap;\n cursor: pointer;\n line-height: 0;\n justify-content: space-between;\n\n &--inactive {\n .rating__symbol > :not(nano-icon) {\n background-color: currentColor !important;\n }\n }\n\n > * {\n margin: var(--symbol-spacing);\n }\n\n &--indicator {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n color: var(--symbol-color-active);\n pointer-events: none;\n inline-size: 100%;\n }\n }\n\n &__symbol {\n transition: 0.2s transform;\n text-align: center;\n\n &--hover {\n transform: scale(1.2);\n }\n }\n\n &--disabled,\n &--readonly {\n .rating__symbols {\n cursor: default;\n }\n\n .rating__symbol {\n transform: none !important;\n }\n }\n\n &--disabled {\n opacity: 0.5;\n\n .rating__symbols {\n cursor: not-allowed;\n }\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Method,\n Prop,\n State,\n Watch,\n h,\n ComponentInterface,\n} from '@stencil/core';\nimport { focusVisible } from '../../utils/focus-visible';\nimport { clamp } from '../../utils/math';\n\n/**\n * Rating - a form element to allow the viewing and input of user feedback.\n */\n@Component({\n tag: 'nano-rating',\n styleUrl: 'rating.scss',\n scoped: true,\n})\nexport class Rating implements ComponentInterface {\n private rating: HTMLElement;\n private isRtl: boolean;\n private indicator: HTMLElement;\n\n @Element() host: HTMLNanoRatingElement;\n\n @State() hoverValue = 0;\n @State() isHovering = false;\n\n /**\n * The current rating.\n */\n @Prop({ mutable: true, reflect: true }) value = 0;\n\n /**\n * The highest rating to show.\n */\n @Prop() max = 5;\n\n /**\n * The minimum increment value allowed by the control.\n */\n @Prop() precision = 1;\n\n /**\n * Makes the rating readonly.\n */\n @Prop() readonly = false;\n\n /**\n * Disables the rating.\n */\n @Prop() disabled = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = '';\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() symbolName = 'solid/star';\n\n /**\n * A function that returns the symbols to display.\n * Allows for more granular control than `symbol-name`.\n * Accepts an option `value` parameter you can use to map a specific symbol to a value.\n * @param _number\n * @returns an html string used to render your rating symbol\n */\n @Prop() symbol = (_number: number) =>\n '<nano-icon name=\"' + this.symbolName + '\"></nano-icon>';\n\n @Watch('value')\n handleValueChange() {\n this.nanoChange.emit();\n }\n\n @Watch('symbolName')\n handleSymbolChange() {\n this.symbol = (_: number) =>\n '<nano-icon name=\"' + this.symbolName + '\"></nano-icon>';\n }\n\n /**\n * Emitted when the rating's value changes.\n */\n @Event() nanoChange!: EventEmitter<void>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Sets focus on the rating.\n */\n @Method()\n async setFocus() {\n this.rating.focus();\n }\n\n /**\n * Removes focus from the rating.\n */\n @Method()\n async removeFocus() {\n this.rating.blur();\n }\n\n private getValueFromMousePosition(event: MouseEvent) {\n const containerLeft = this.rating.getBoundingClientRect().left;\n const containerWidth = this.rating.getBoundingClientRect().width;\n\n let num: number;\n num = this.roundToPrecision(\n ((event.clientX - containerLeft) / containerWidth) * this.max,\n this.precision\n );\n if (this.isRtl) num = this.max + this.precision - num;\n\n return clamp(num, 0, this.max);\n }\n\n private roundToPrecision(numberToRound: number, precision = 0.5) {\n const multiplier = 1 / precision;\n return Math.ceil(numberToRound * multiplier) / multiplier;\n }\n\n private handleClick = (event: MouseEvent) => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const newValue = this.getValueFromMousePosition(event);\n this.value = newValue === this.value ? 0 : newValue;\n this.isHovering = false;\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (event.key === 'ArrowLeft') {\n const decrement = event.shiftKey ? 1 : this.precision;\n this.value = this.roundToPrecision(Math.max(0, this.value - decrement));\n event.preventDefault();\n }\n\n if (event.key === 'ArrowRight') {\n const increment = event.shiftKey ? 1 : this.precision;\n this.value = this.roundToPrecision(\n Math.min(this.max, this.value + increment)\n );\n event.preventDefault();\n }\n\n if (event.key === 'Home') {\n this.value = 0;\n event.preventDefault();\n }\n\n if (event.key === 'End') {\n this.value = this.max;\n event.preventDefault();\n }\n };\n\n private handleMouseEnter = () => {\n this.isHovering = true;\n };\n\n private handleMouseLeave = () => {\n this.isHovering = false;\n };\n\n private handleFocus = () => {\n this.nanoFocus.emit();\n };\n\n private handleBlur = () => {\n this.nanoBlur.emit();\n };\n\n private handleMouseMove = (event: MouseEvent) => {\n this.hoverValue = this.getValueFromMousePosition(event);\n };\n\n private clip(displayValue: number) {\n if (!this.rating) return;\n const tw = this.rating.getBoundingClientRect().width;\n if (this.isRtl)\n return `rect(0, ${tw}px, 2em, ${\n tw - (tw / 100) * ((displayValue / this.max) * 100)\n }px)`;\n return `rect(0, ${\n (tw / 100) * ((displayValue / this.max) * 100)\n }px, 2em, 0)`;\n }\n\n componentDidLoad() {\n focusVisible.observe(this.rating);\n setTimeout(() => (this.indicator.style.clip = this.clip(this.value)), 20);\n }\n\n connectedCallback() {\n this.isRtl =\n this.host.dir === 'rtl' ||\n (this.host.ownerDocument as Document).dir === 'rtl';\n }\n\n disconnectedCallback() {\n focusVisible.unobserve(this.rating);\n }\n\n render() {\n this.isRtl =\n this.host.dir === 'rtl' ||\n (this.host.ownerDocument as Document).dir === 'rtl';\n\n const counter = Array.from(Array(this.max).keys());\n\n let displayValue = 0;\n if (this.disabled || this.readonly) {\n displayValue = this.value;\n } else {\n displayValue = this.isHovering ? this.hoverValue : this.value;\n }\n\n return (\n <div class=\"rating-wrap\">\n <div\n dir={this.isRtl ? 'rtl' : null}\n ref={(el) => (this.rating = el)}\n part=\"base\"\n class={{\n rating: true,\n 'rating--readonly': this.readonly,\n 'rating--disabled': this.disabled,\n }}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-readonly={this.readonly ? 'true' : 'false'}\n aria-valuenow={this.value}\n aria-valuemin={0}\n aria-valuemax={this.max}\n tabIndex={this.disabled ? -1 : 0}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n onMouseMove={this.handleMouseMove}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n >\n <span class=\"rating__symbols rating__symbols--inactive\">\n {counter.map((index) => (\n <span\n class={{\n rating__symbol: true,\n 'rating__symbol--hover':\n this.isHovering && Math.ceil(displayValue) === index + 1,\n }}\n role=\"presentation\"\n // Users can click the current value to clear the rating. When this happens, we set this.isHovering to\n // false to prevent the hover state from confusing them as they move the mouse out of the control. This\n // extra mouseenter will reinstate it if they happen to mouse over an adjacent symbol.\n onMouseEnter={this.handleMouseEnter}\n innerHTML={this.symbol(index + 1)}\n />\n ))}\n </span>\n\n <span\n ref={(span) => (this.indicator = span)}\n class=\"rating__symbols rating__symbols--indicator\"\n style={{\n clip: this.clip(displayValue),\n }}\n >\n {counter.map((index) => (\n <span\n class={{\n rating__symbol: true,\n 'rating__symbol--hover':\n this.isHovering && Math.ceil(displayValue) === index + 1,\n }}\n role=\"presentation\"\n innerHTML={this.symbol(index + 1)}\n />\n ))}\n </span>\n <input\n type=\"hidden\"\n name={this.name}\n value={this.value}\n disabled={this.disabled || this.readonly}\n />\n </div>\n </div>\n );\n }\n}\n"],"version":3}
|
1
|
+
{"file":"nano-rating.js","mappings":"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","names":[],"sources":["./src/components/rating/rating.scss?tag=nano-rating&encapsulation=scoped","./src/components/rating/rating.tsx"],"sourcesContent":["@use 'sass:map';\n@use 'sass:list';\n\n@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/colours';\n@import '../../global/style/nano-theme/form';\n\n:host {\n /**\n * @prop --symbol-color: The inactive color for symbols. Defaults to #{map.get($colors, palegrey)}\n * @prop --symbol-color-active: The active color for symbols. Defaults to #{map.get($colors, palegrey)}\n * @prop --symbol-size: The size of symbols. Defaults to contextual font size\n * @prop --symbol-spacing: The spacing to use around symbols. Defaults to .25rem\n * @prop --focus-shadow: Box shadow style when focused. Defaults to #{$control-focus-style}\n */\n\n --symbol-color: #{map.get($colors, palegrey)};\n --symbol-color-active: #{map.get($colors, yellow)};\n --symbol-spacing: 0.25rem;\n --focus-shadow: #{$control-focus-style};\n\n display: inline-block;\n}\n\n.rating-wrap {\n position: relative;\n margin-block-start: 0;\n margin-block-end: 0;\n margin-inline-start: calc(var(--symbol-spacing) * -1);\n margin-inline-end: calc(var(--symbol-spacing) * -1);\n}\n\n.rating {\n position: relative;\n border-radius: 5px;\n vertical-align: middle;\n inline-size: 100%;\n transition: box-shadow 0.15s ease;\n\n &:focus {\n outline: none;\n }\n\n &.focus-visible:focus {\n box-shadow: var(--focus-shadow);\n }\n\n &__symbols {\n display: flex;\n align-items: center;\n position: relative;\n font-size: var(--symbol-size);\n color: var(--symbol-color);\n white-space: nowrap;\n cursor: pointer;\n line-height: 0;\n justify-content: space-between;\n\n &--inactive {\n .rating__symbol > :not(nano-icon) {\n background-color: currentcolor !important;\n }\n }\n\n > * {\n margin: var(--symbol-spacing);\n }\n\n &--indicator {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n color: var(--symbol-color-active);\n pointer-events: none;\n inline-size: 100%;\n }\n }\n\n &__symbol {\n transition: 0.2s transform;\n text-align: center;\n\n &--hover {\n transform: scale(1.2);\n }\n }\n\n &--disabled,\n &--readonly {\n .rating__symbols {\n cursor: default;\n }\n\n .rating__symbol {\n transform: none !important;\n }\n }\n\n &--disabled {\n opacity: 0.5;\n\n .rating__symbols {\n cursor: not-allowed;\n }\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Method,\n Prop,\n State,\n Watch,\n h,\n ComponentInterface,\n} from '@stencil/core';\nimport { focusVisible } from '../../utils/focus-visible';\nimport { clamp } from '../../utils/math';\n\n/**\n * Rating - a form element to allow the viewing and input of user feedback.\n */\n@Component({\n tag: 'nano-rating',\n styleUrl: 'rating.scss',\n scoped: true,\n})\nexport class Rating implements ComponentInterface {\n private rating: HTMLElement;\n private isRtl: boolean;\n private indicator: HTMLElement;\n\n @Element() host: HTMLNanoRatingElement;\n\n @State() hoverValue = 0;\n @State() isHovering = false;\n\n /**\n * The current rating.\n */\n @Prop({ mutable: true, reflect: true }) value = 0;\n\n /**\n * The highest rating to show.\n */\n @Prop() max = 5;\n\n /**\n * The minimum increment value allowed by the control.\n */\n @Prop() precision = 1;\n\n /**\n * Makes the rating readonly.\n */\n @Prop() readonly = false;\n\n /**\n * Disables the rating.\n */\n @Prop() disabled = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = '';\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() symbolName = 'solid/star';\n\n /**\n * A function that returns the symbols to display.\n * Allows for more granular control than `symbol-name`.\n * Accepts an option `value` parameter you can use to map a specific symbol to a value.\n * @param _number\n * @returns an html string used to render your rating symbol\n */\n @Prop() symbol = (_number: number) =>\n '<nano-icon name=\"' + this.symbolName + '\"></nano-icon>';\n\n @Watch('value')\n handleValueChange() {\n this.nanoChange.emit();\n }\n\n @Watch('symbolName')\n handleSymbolChange() {\n this.symbol = (_: number) =>\n '<nano-icon name=\"' + this.symbolName + '\"></nano-icon>';\n }\n\n /**\n * Emitted when the rating's value changes.\n */\n @Event() nanoChange!: EventEmitter<void>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Sets focus on the rating.\n */\n @Method()\n async setFocus() {\n this.rating.focus();\n }\n\n /**\n * Removes focus from the rating.\n */\n @Method()\n async removeFocus() {\n this.rating.blur();\n }\n\n private getValueFromMousePosition(event: MouseEvent) {\n const containerLeft = this.rating.getBoundingClientRect().left;\n const containerWidth = this.rating.getBoundingClientRect().width;\n\n let num: number;\n num = this.roundToPrecision(\n ((event.clientX - containerLeft) / containerWidth) * this.max,\n this.precision\n );\n if (this.isRtl) num = this.max + this.precision - num;\n\n return clamp(num, 0, this.max);\n }\n\n private roundToPrecision(numberToRound: number, precision = 0.5) {\n const multiplier = 1 / precision;\n return Math.ceil(numberToRound * multiplier) / multiplier;\n }\n\n private handleClick = (event: MouseEvent) => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const newValue = this.getValueFromMousePosition(event);\n this.value = newValue === this.value ? 0 : newValue;\n this.isHovering = false;\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (event.key === 'ArrowLeft') {\n const decrement = event.shiftKey ? 1 : this.precision;\n this.value = this.roundToPrecision(Math.max(0, this.value - decrement));\n event.preventDefault();\n }\n\n if (event.key === 'ArrowRight') {\n const increment = event.shiftKey ? 1 : this.precision;\n this.value = this.roundToPrecision(\n Math.min(this.max, this.value + increment)\n );\n event.preventDefault();\n }\n\n if (event.key === 'Home') {\n this.value = 0;\n event.preventDefault();\n }\n\n if (event.key === 'End') {\n this.value = this.max;\n event.preventDefault();\n }\n };\n\n private handleMouseEnter = () => {\n this.isHovering = true;\n };\n\n private handleMouseLeave = () => {\n this.isHovering = false;\n };\n\n private handleFocus = () => {\n this.nanoFocus.emit();\n };\n\n private handleBlur = () => {\n this.nanoBlur.emit();\n };\n\n private handleMouseMove = (event: MouseEvent) => {\n this.hoverValue = this.getValueFromMousePosition(event);\n };\n\n private clip(displayValue: number) {\n if (!this.rating) return;\n const tw = this.rating.getBoundingClientRect().width;\n if (this.isRtl)\n return `rect(0, ${tw}px, 2em, ${\n tw - (tw / 100) * ((displayValue / this.max) * 100)\n }px)`;\n return `rect(0, ${\n (tw / 100) * ((displayValue / this.max) * 100)\n }px, 2em, 0)`;\n }\n\n componentDidLoad() {\n focusVisible.observe(this.rating);\n setTimeout(() => (this.indicator.style.clip = this.clip(this.value)), 20);\n }\n\n connectedCallback() {\n this.isRtl =\n this.host.dir === 'rtl' ||\n (this.host.ownerDocument as Document).dir === 'rtl';\n }\n\n disconnectedCallback() {\n focusVisible.unobserve(this.rating);\n }\n\n render() {\n this.isRtl =\n this.host.dir === 'rtl' ||\n (this.host.ownerDocument as Document).dir === 'rtl';\n\n const counter = Array.from(Array(this.max).keys());\n\n let displayValue = 0;\n if (this.disabled || this.readonly) {\n displayValue = this.value;\n } else {\n displayValue = this.isHovering ? this.hoverValue : this.value;\n }\n\n return (\n <div class=\"rating-wrap\">\n <div\n dir={this.isRtl ? 'rtl' : null}\n ref={(el) => (this.rating = el)}\n part=\"base\"\n class={{\n rating: true,\n 'rating--readonly': this.readonly,\n 'rating--disabled': this.disabled,\n }}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-readonly={this.readonly ? 'true' : 'false'}\n aria-valuenow={this.value}\n aria-valuemin={0}\n aria-valuemax={this.max}\n tabIndex={this.disabled ? -1 : 0}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n onMouseMove={this.handleMouseMove}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n >\n <span class=\"rating__symbols rating__symbols--inactive\">\n {counter.map((index) => (\n <span\n class={{\n rating__symbol: true,\n 'rating__symbol--hover':\n this.isHovering && Math.ceil(displayValue) === index + 1,\n }}\n role=\"presentation\"\n // Users can click the current value to clear the rating. When this happens, we set this.isHovering to\n // false to prevent the hover state from confusing them as they move the mouse out of the control. This\n // extra mouseenter will reinstate it if they happen to mouse over an adjacent symbol.\n onMouseEnter={this.handleMouseEnter}\n innerHTML={this.symbol(index + 1)}\n />\n ))}\n </span>\n\n <span\n ref={(span) => (this.indicator = span)}\n class=\"rating__symbols rating__symbols--indicator\"\n style={{\n clip: this.clip(displayValue),\n }}\n >\n {counter.map((index) => (\n <span\n class={{\n rating__symbol: true,\n 'rating__symbol--hover':\n this.isHovering && Math.ceil(displayValue) === index + 1,\n }}\n role=\"presentation\"\n innerHTML={this.symbol(index + 1)}\n />\n ))}\n </span>\n <input\n type=\"hidden\"\n name={this.name}\n value={this.value}\n disabled={this.disabled || this.readonly}\n />\n </div>\n </div>\n );\n }\n}\n"],"version":3}
|
@@ -3820,9 +3820,8 @@ proto.shiftWrapCells = function () {
|
|
3820
3820
|
|
3821
3821
|
const flickity = Flickity;
|
3822
3822
|
|
3823
|
-
const slidesCss = ":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--dot-color:#ccc;--dot-color-active:var(--nano-color-primary, #007495);--navbtns-icon-color:var(--dot-color-active);--navbtns-bg-color:white;--navbtns-icon-color-disabled:var(--dot-color-active);--navbtns-bg-color-disabled:white;--fsbtn-icon-color:var(--dot-color-active);--fsbtn-bg-color:white;display:block;-webkit-user-select:none;user-select:none;overflow:hidden;transition:opacity 0.2s;opacity:0}:host([ready]){opacity:1}.slideshow{block-size:100%;position:relative}.flickity-container{block-size:0;opacity:0;transition:opacity 0.2s}.flickity-container.slides-ready{block-size:100%}[hidden]{display:none !important}.ui-extras{pointer-events:none;position:absolute;block-size:100%;inline-size:100%;inset-block-start:0;inset-inline-start:0}.ui-extras *{pointer-events:all}/*! Flickity v2.2.1\nhttps://flickity.metafizzy.co\n---------------------------------------------- */.flickity-enabled{position:relative;opacity:1}.flickity-enabled:focus{outline:none}.flickity-viewport{overflow:hidden;position:relative;block-size:100% !important}.flickity-slider{position:absolute;inline-size:100%;block-size:100%}.flickity-enabled.is-draggable{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.flickity-enabled.is-draggable .flickity-viewport{cursor:move;cursor:grab}.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down{cursor:grabbing}.flickity-button{position:absolute;background:var(--navbtns-bg-color);border:none;color:#333;opacity:0.75}.flickity-button:hover{opacity:1;cursor:pointer}.flickity-button:focus{outline:none;box-shadow:0 0 0 5px #19f}.flickity-button:active{opacity:0.6}.flickity-button:disabled{opacity:0.3;cursor:auto;pointer-events:none;background:var(--navbtns-bg-color-disabled)}.flickity-button-icon{fill:var(--navbtns-icon-color)}.flickity-button:disabled .flickity-button-icon{fill:var(--navbtns-icon-color-disabled)}.flickity-prev-next-button{inset-block-start:50%;inline-size:44px;block-size:44px;border-radius:50%;transform:translateY(-50%)}.flickity-prev-next-button.previous{inset-inline-start:10px}.flickity-prev-next-button.next{inset-inline-end:10px}.flickity-rtl .flickity-prev-next-button.previous{inset-inline:auto 10px}.flickity-rtl .flickity-prev-next-button.next{inset-inline:10px auto}.flickity-prev-next-button .flickity-button-icon{position:absolute;inset-inline-start:20%;inset-block-start:20%;inline-size:60%;block-size:60%}.flickity-page-dots{position:absolute;inline-size:100%;inset-block-end:10px;padding:0;margin:0;list-style:none;text-align:center;line-height:1;z-index:4}.flickity-rtl .flickity-page-dots{direction:rtl}.flickity-page-dots .dot{display:inline-block;inline-size:10px;block-size:10px;margin-block:0;margin-inline:8px;border-radius:50%;cursor:pointer;background:var(--dot-color)}.flickity-page-dots .dot.is-selected{opacity:1;background:var(--dot-color-active)}.flickity-enabled.is-fullscreen{position:fixed;inset-inline-start:0;inset-block-start:0;inline-size:100%;block-size:100%;background:rgba(0, 0, 0, 0.9);padding-block-end:35px;z-index:100}.flickity-enabled.is-fullscreen .flickity-page-dots{inset-block-end:45px}html.is-flickity-fullscreen{overflow:hidden}.flickity-fullscreen-button{display:block;inset-inline-end:10px;inset-block-start:10px;inline-size:24px;block-size:24px;border-radius:4px;background:var(--fsbtn-bg-color);fill:var(--fsbtn-icon-color)}.flickity-rtl .flickity-fullscreen-button{inset-inline:10px auto}.flickity-fullscreen-button-exit{display:none}.flickity-enabled.is-fullscreen .flickity-fullscreen-button-exit{display:block}.flickity-enabled.is-fullscreen .flickity-fullscreen-button-view{display:none}.flickity-fullscreen-button .flickity-button-icon{position:absolute;inline-size:16px;block-size:16px;inset-inline-start:4px;inset-block-start:4px}.flickity-enabled.is-fade .flickity-slider>*{pointer-events:none;z-index:0}.flickity-enabled.is-fade .flickity-slider ::slotted(.is-selected){pointer-events:auto;z-index:1}";
|
3823
|
+
const slidesCss = ":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--dot-color:#ccc;--dot-color-active:var(--nano-color-primary, #007495);--navbtns-icon-color:var(--dot-color-active);--navbtns-bg-color:white;--navbtns-icon-color-disabled:var(--dot-color-active);--navbtns-bg-color-disabled:white;--fsbtn-icon-color:var(--dot-color-active);--fsbtn-bg-color:white;display:block;-webkit-user-select:none;user-select:none;overflow:hidden;transition:opacity 0.2s;opacity:0}:host([ready]){opacity:1}.slideshow{block-size:100%;position:relative}.flickity-container{block-size:0;opacity:0;transition:opacity 0.2s}.flickity-container.slides-ready{block-size:100%}[hidden]{display:none !important}.ui-extras{pointer-events:none;position:absolute;block-size:100%;inline-size:100%;inset-block-start:0;inset-inline-start:0}.ui-extras *{pointer-events:all}/*! Flickity v2.2.1\nhttps://flickity.metafizzy.co\n---------------------------------------------- */.flickity-enabled{position:relative;opacity:1}.flickity-enabled:focus{outline:none}.flickity-viewport{overflow:hidden;position:relative;block-size:100% !important}.flickity-slider{position:absolute;inline-size:100%;block-size:100%}.flickity-enabled.is-draggable{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.flickity-enabled.is-draggable .flickity-viewport{cursor:move;cursor:grab;cursor:grab}.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down{cursor:grabbing}.flickity-button{position:absolute;background:var(--navbtns-bg-color);border:none;color:#333;opacity:0.75}.flickity-button:hover{opacity:1;cursor:pointer}.flickity-button:focus{outline:none;box-shadow:0 0 0 5px #19f}.flickity-button:active{opacity:0.6}.flickity-button:disabled{opacity:0.3;cursor:auto;pointer-events:none;background:var(--navbtns-bg-color-disabled)}.flickity-button-icon{fill:var(--navbtns-icon-color)}.flickity-button:disabled .flickity-button-icon{fill:var(--navbtns-icon-color-disabled)}.flickity-prev-next-button{inset-block-start:50%;inline-size:44px;block-size:44px;border-radius:50%;transform:translateY(-50%)}.flickity-prev-next-button.previous{inset-inline-start:10px}.flickity-prev-next-button.next{inset-inline-end:10px}.flickity-rtl .flickity-prev-next-button.previous{inset-inline:auto 10px}.flickity-rtl .flickity-prev-next-button.next{inset-inline:10px auto}.flickity-prev-next-button .flickity-button-icon{position:absolute;inset-inline-start:20%;inset-block-start:20%;inline-size:60%;block-size:60%}.flickity-page-dots{position:absolute;inline-size:100%;inset-block-end:10px;padding:0;margin:0;list-style:none;text-align:center;line-height:1;z-index:4}.flickity-rtl .flickity-page-dots{direction:rtl}.flickity-page-dots .dot{display:inline-block;inline-size:10px;block-size:10px;margin-block:0;margin-inline:8px;border-radius:50%;cursor:pointer;background:var(--dot-color)}.flickity-page-dots .dot.is-selected{opacity:1;background:var(--dot-color-active)}.flickity-enabled.is-fullscreen{position:fixed;inset-inline-start:0;inset-block-start:0;inline-size:100%;block-size:100%;background:rgba(0, 0, 0, 0.9);-webkit-padding-after:35px;padding-block-end:35px;z-index:100}.flickity-enabled.is-fullscreen .flickity-page-dots{inset-block-end:45px}html.is-flickity-fullscreen{overflow:hidden}.flickity-fullscreen-button{display:block;inset-inline-end:10px;inset-block-start:10px;inline-size:24px;block-size:24px;border-radius:4px;background:var(--fsbtn-bg-color);fill:var(--fsbtn-icon-color)}.flickity-rtl .flickity-fullscreen-button{inset-inline:10px auto}.flickity-fullscreen-button-exit{display:none}.flickity-enabled.is-fullscreen .flickity-fullscreen-button-exit{display:block}.flickity-enabled.is-fullscreen .flickity-fullscreen-button-view{display:none}.flickity-fullscreen-button .flickity-button-icon{position:absolute;inline-size:16px;block-size:16px;inset-inline-start:4px;inset-block-start:4px}.flickity-enabled.is-fade .flickity-slider>*{pointer-events:none;z-index:0}.flickity-enabled.is-fade .flickity-slider ::slotted(.is-selected){pointer-events:auto;z-index:1}";
|
3824
3824
|
|
3825
|
-
const CANSHADOW = !!document.head.attachShadow;
|
3826
3825
|
const Slides = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$1 {
|
3827
3826
|
constructor() {
|
3828
3827
|
super();
|
@@ -4075,17 +4074,6 @@ const Slides = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$1 {
|
|
4075
4074
|
_getRoot() {
|
4076
4075
|
return this.host.shadowRoot ? this.host.shadowRoot : this.host;
|
4077
4076
|
}
|
4078
|
-
_fixClassNames() {
|
4079
|
-
const ctxClasses = this.slideShowEle.className
|
4080
|
-
.split(' ')
|
4081
|
-
.filter((classStr) => classStr.match(/^sc-nano/));
|
4082
|
-
const eles = this._getRoot().querySelectorAll('*');
|
4083
|
-
if (!eles)
|
4084
|
-
return;
|
4085
|
-
Array.from(eles).map((ele) => {
|
4086
|
-
ctxClasses.map((classStr) => ele.classList.add(classStr));
|
4087
|
-
});
|
4088
|
-
}
|
4089
4077
|
destroyflickity() {
|
4090
4078
|
/**
|
4091
4079
|
* We need to synchronously destroy
|
@@ -4113,13 +4101,12 @@ const Slides = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$1 {
|
|
4113
4101
|
this.slidesReady = true;
|
4114
4102
|
this.flickityEl =
|
4115
4103
|
this.flickityEl || this._getRoot().querySelector('.flickity-container');
|
4116
|
-
if (this.flickityEl
|
4104
|
+
if (this.flickityEl &&
|
4105
|
+
this.flickityEl.classList.contains('flickity-enabled'))
|
4117
4106
|
this.destroyflickity();
|
4118
4107
|
setTimeout(() => {
|
4119
4108
|
const flick = new flickity(this.flickityEl, finalOptions);
|
4120
4109
|
this.flickityReady = true;
|
4121
|
-
if (!this.host.shadowRoot || !CANSHADOW)
|
4122
|
-
this._fixClassNames();
|
4123
4110
|
this.syncflickity = flick;
|
4124
4111
|
this.animationChange();
|
4125
4112
|
this.navbtnsChanged();
|
@@ -4131,6 +4118,8 @@ const Slides = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$1 {
|
|
4131
4118
|
// the slideshow has been initialised without any dimensions - let's add a one show
|
4132
4119
|
// resize observer to kick it off when it gets some dimensions
|
4133
4120
|
if (!this.host.getBoundingClientRect().height) {
|
4121
|
+
if (!window['ResizeObserver'])
|
4122
|
+
return;
|
4134
4123
|
const ro = (this.resizeO = new ResizeObserver(() => {
|
4135
4124
|
flick.resize();
|
4136
4125
|
this.resizeO.disconnect();
|
@@ -4182,10 +4171,10 @@ const Slides = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$1 {
|
|
4182
4171
|
};
|
4183
4172
|
const customEvents = !!this.options && !!this.options.on ? this.options.on : {};
|
4184
4173
|
// merge "on" event listeners, while giving our event listeners priority
|
4185
|
-
const mergedEventOptions = { on: {
|
4174
|
+
const mergedEventOptions = { on: Object.assign(Object.assign({}, customEvents), eventOptions) };
|
4186
4175
|
// Merge the base, user options, and events together then pass to flickity
|
4187
4176
|
// @ts-ignore
|
4188
|
-
return {
|
4177
|
+
return Object.assign(Object.assign(Object.assign({}, flickityOptions), mergedEventOptions), this.options);
|
4189
4178
|
}
|
4190
4179
|
componentDidLoad() {
|
4191
4180
|
if (Build.isBrowser &&
|
@@ -4221,7 +4210,7 @@ const Slides = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$1 {
|
|
4221
4210
|
this.destroyflickity();
|
4222
4211
|
}
|
4223
4212
|
render() {
|
4224
|
-
return (h(Host, null, h("div", { class: "slideshow"
|
4213
|
+
return (h(Host, null, h("div", { class: "slideshow" }, h("div", { ref: (div) => (this.flickityEl = div), class: {
|
4225
4214
|
'flickity-container': true,
|
4226
4215
|
'slides-ready': this.slidesReady,
|
4227
4216
|
'slides-not-ready': !this.slidesReady,
|
@@ -4282,7 +4271,8 @@ const waitForSlides = (host) => {
|
|
4282
4271
|
}
|
4283
4272
|
};
|
4284
4273
|
host.addEventListener('nanoSlideReady', slideResolver);
|
4285
|
-
|
4274
|
+
// fallback for vue who can't handle camelcase event names
|
4275
|
+
host.addEventListener('nano-slide-ready', slideResolver);
|
4286
4276
|
});
|
4287
4277
|
};
|
4288
4278
|
function defineCustomElement$1() {
|