@nanoporetech-digital/components 1.15.5 → 1.15.6
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 +11 -0
- package/dist/cjs/{algolia-data-8c06a169.js → algolia-data-ed059479.js} +2 -2
- package/dist/cjs/{algolia-data-8c06a169.js.map → algolia-data-ed059479.js.map} +1 -1
- package/dist/cjs/{component-store-bda9b645.js → component-store-722032a5.js} +7 -7
- package/dist/cjs/component-store-722032a5.js.map +1 -0
- package/dist/cjs/{css-shim-815c299c.js → css-shim-354e6d37.js} +2 -2
- package/dist/cjs/{css-shim-815c299c.js.map → css-shim-354e6d37.js.map} +1 -1
- package/dist/cjs/{dom-3ed59742.js → dom-75b8589b.js} +2 -2
- package/dist/cjs/{dom-3ed59742.js.map → dom-75b8589b.js.map} +1 -1
- package/dist/cjs/{index-b256b6d4.js → index-cb62df44.js} +31 -23
- package/dist/cjs/index-cb62df44.js.map +1 -0
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/nano-accordion.cjs.entry.js +1 -1
- package/dist/cjs/nano-alert.cjs.entry.js +1 -1
- package/dist/cjs/nano-algolia-filter.cjs.entry.js +3 -3
- package/dist/cjs/nano-algolia-input.cjs.entry.js +3 -3
- 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 +3 -3
- package/dist/cjs/nano-aspect-ratio.cjs.entry.js +1 -1
- package/dist/cjs/nano-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/nano-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/nano-components.cjs.js +3 -3
- package/dist/cjs/nano-components.cjs.js.map +1 -1
- package/dist/cjs/nano-date-input.cjs.entry.js +1 -1
- package/dist/cjs/nano-date-picker_2.cjs.entry.js +1 -1
- package/dist/cjs/nano-details.cjs.entry.js +1 -1
- package/dist/cjs/nano-dialog.cjs.entry.js +2 -2
- package/dist/cjs/nano-drawer.cjs.entry.js +1 -1
- package/dist/cjs/nano-file-upload.cjs.entry.js +1 -1
- package/dist/cjs/nano-global-nav.cjs.entry.js +3 -3
- package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-search-results.cjs.entry.js +1 -1
- package/dist/cjs/nano-grid_3.cjs.entry.js +1 -1
- package/dist/cjs/nano-hero.cjs.entry.js +1 -1
- package/dist/cjs/nano-icon-button.cjs.entry.js +1 -1
- package/dist/cjs/nano-icon.cjs.entry.js +1 -1
- package/dist/cjs/nano-input.cjs.entry.js +1 -1
- package/dist/cjs/nano-menu-drawer.cjs.entry.js +1 -1
- package/dist/cjs/nano-menu.cjs.entry.js +1 -1
- package/dist/cjs/nano-nav-item_2.cjs.entry.js +2 -2
- package/dist/cjs/nano-nav-item_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-range.cjs.entry.js +1 -1
- package/dist/cjs/nano-rating.cjs.entry.js +1 -1
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -1
- package/dist/cjs/nano-select-option.cjs.entry.js +1 -1
- package/dist/cjs/nano-slide.cjs.entry.js +1 -1
- package/dist/cjs/nano-slides.cjs.entry.js +1 -1
- package/dist/cjs/nano-spinner.cjs.entry.js +1 -1
- package/dist/cjs/nano-sticker.cjs.entry.js +1 -1
- package/dist/cjs/nano-tab-content.cjs.entry.js +1 -1
- package/dist/cjs/nano-tab-group.cjs.entry.js +2 -2
- package/dist/cjs/nano-tab.cjs.entry.js +1 -1
- package/dist/cjs/nano-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/{shadow-css-90af899a.js → shadow-css-70c4cc70.js} +2 -2
- package/dist/cjs/{shadow-css-90af899a.js.map → shadow-css-70c4cc70.js.map} +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/accordion/accordion.js +1 -1
- package/dist/collection/components/alert/alert.js +1 -1
- package/dist/collection/components/algolia/algolia-filter.js +2 -2
- package/dist/collection/components/algolia/algolia-input.js +5 -5
- package/dist/collection/components/algolia/algolia-results.js +1 -1
- package/dist/collection/components/algolia/algolia.js +6 -6
- package/dist/collection/components/checkbox/checkbox-group.js +2 -2
- package/dist/collection/components/checkbox/checkbox.js +3 -3
- package/dist/collection/components/date-input/date-input.js +7 -7
- package/dist/collection/components/date-picker/date-picker.js +5 -5
- package/dist/collection/components/details/details.js +1 -1
- package/dist/collection/components/dialog/dialog.js +1 -1
- package/dist/collection/components/file-upload/file-upload.js +4 -4
- package/dist/collection/components/global-nav/global-nav.css +0 -1
- package/dist/collection/components/global-nav/global-nav.js +4 -4
- package/dist/collection/components/grid/grid-item.js +1 -1
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/input/input.js +5 -5
- package/dist/collection/components/nav-item/nav-item.css +1 -3
- package/dist/collection/components/nav-item/nav-item.js +4 -4
- package/dist/collection/components/range/range.js +4 -4
- package/dist/collection/components/resize-observe/resize-observe.js +1 -1
- package/dist/collection/components/select/select.js +5 -5
- package/dist/collection/components/slides/slides.js +7 -7
- package/dist/collection/components/tabs/tab-group.js +2 -2
- package/dist/custom-elements/index.js +35 -20
- package/dist/custom-elements/index.js.map +1 -1
- package/dist/esm/{algolia-data-e12d36e8.js → algolia-data-dd72d1b7.js} +2 -2
- package/dist/esm/{algolia-data-e12d36e8.js.map → algolia-data-dd72d1b7.js.map} +1 -1
- package/dist/esm/{component-store-08f430dd.js → component-store-b6fbfa35.js} +7 -7
- package/dist/esm/component-store-b6fbfa35.js.map +1 -0
- package/dist/esm/{css-shim-a2f792ea.js → css-shim-0bb50ec9.js} +2 -2
- package/dist/esm/{css-shim-a2f792ea.js.map → css-shim-0bb50ec9.js.map} +1 -1
- package/dist/esm/{dom-9a65e60f.js → dom-24937e66.js} +2 -2
- package/dist/esm/{dom-9a65e60f.js.map → dom-24937e66.js.map} +1 -1
- package/dist/esm/{index-37c7d095.js → index-5f8d16e7.js} +31 -23
- package/dist/esm/index-5f8d16e7.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/nano-accordion.entry.js +1 -1
- package/dist/esm/nano-alert.entry.js +1 -1
- package/dist/esm/nano-algolia-filter.entry.js +3 -3
- package/dist/esm/nano-algolia-input.entry.js +3 -3
- 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 +3 -3
- package/dist/esm/nano-aspect-ratio.entry.js +1 -1
- package/dist/esm/nano-checkbox-group.entry.js +1 -1
- package/dist/esm/nano-checkbox.entry.js +1 -1
- package/dist/esm/nano-components.js +3 -3
- package/dist/esm/nano-components.js.map +1 -1
- package/dist/esm/nano-date-input.entry.js +1 -1
- package/dist/esm/nano-date-picker_2.entry.js +1 -1
- package/dist/esm/nano-details.entry.js +1 -1
- package/dist/esm/nano-dialog.entry.js +2 -2
- package/dist/esm/nano-drawer.entry.js +1 -1
- package/dist/esm/nano-file-upload.entry.js +1 -1
- package/dist/esm/nano-global-nav.entry.js +3 -3
- package/dist/esm/nano-global-nav.entry.js.map +1 -1
- package/dist/esm/nano-global-search-results.entry.js +1 -1
- package/dist/esm/nano-grid_3.entry.js +1 -1
- package/dist/esm/nano-hero.entry.js +1 -1
- package/dist/esm/nano-icon-button.entry.js +1 -1
- package/dist/esm/nano-icon.entry.js +1 -1
- package/dist/esm/nano-input.entry.js +1 -1
- package/dist/esm/nano-menu-drawer.entry.js +1 -1
- package/dist/esm/nano-menu.entry.js +1 -1
- package/dist/esm/nano-nav-item_2.entry.js +2 -2
- package/dist/esm/nano-nav-item_2.entry.js.map +1 -1
- package/dist/esm/nano-range.entry.js +1 -1
- package/dist/esm/nano-rating.entry.js +1 -1
- package/dist/esm/nano-resize-observe_2.entry.js +1 -1
- package/dist/esm/nano-select-option.entry.js +1 -1
- package/dist/esm/nano-slide.entry.js +1 -1
- package/dist/esm/nano-slides.entry.js +1 -1
- package/dist/esm/nano-spinner.entry.js +1 -1
- package/dist/esm/nano-sticker.entry.js +1 -1
- package/dist/esm/nano-tab-content.entry.js +1 -1
- package/dist/esm/nano-tab-group.entry.js +2 -2
- package/dist/esm/nano-tab.entry.js +1 -1
- package/dist/esm/nano-tooltip.entry.js +1 -1
- package/dist/esm/{shadow-css-f6845ede.js → shadow-css-dc7b6648.js} +2 -2
- package/dist/esm/{shadow-css-f6845ede.js.map → shadow-css-dc7b6648.js.map} +1 -1
- package/dist/esm-es5/{algolia-data-e12d36e8.js → algolia-data-dd72d1b7.js} +2 -2
- package/dist/esm-es5/{algolia-data-e12d36e8.js.map → algolia-data-dd72d1b7.js.map} +0 -0
- package/dist/esm-es5/{component-store-08f430dd.js → component-store-b6fbfa35.js} +2 -2
- package/dist/esm-es5/component-store-b6fbfa35.js.map +1 -0
- package/dist/esm-es5/{css-shim-a2f792ea.js → css-shim-0bb50ec9.js} +1 -1
- package/dist/esm-es5/{css-shim-a2f792ea.js.map → css-shim-0bb50ec9.js.map} +1 -1
- package/dist/esm-es5/{dom-9a65e60f.js → dom-24937e66.js} +1 -1
- package/dist/esm-es5/{dom-9a65e60f.js.map → dom-24937e66.js.map} +1 -1
- package/dist/esm-es5/{index-37c7d095.js → index-5f8d16e7.js} +2 -2
- package/dist/esm-es5/index-5f8d16e7.js.map +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/esm-es5/nano-accordion.entry.js +1 -1
- package/dist/esm-es5/nano-alert.entry.js +1 -1
- package/dist/esm-es5/nano-algolia-filter.entry.js +1 -1
- package/dist/esm-es5/nano-algolia-input.entry.js +1 -1
- package/dist/esm-es5/nano-algolia-pagination.entry.js +1 -1
- package/dist/esm-es5/nano-algolia-results.entry.js +1 -1
- package/dist/esm-es5/nano-algolia.entry.js +1 -1
- package/dist/esm-es5/nano-aspect-ratio.entry.js +1 -1
- package/dist/esm-es5/nano-checkbox-group.entry.js +1 -1
- package/dist/esm-es5/nano-checkbox.entry.js +1 -1
- package/dist/esm-es5/nano-components.js +1 -1
- package/dist/esm-es5/nano-components.js.map +1 -1
- package/dist/esm-es5/nano-date-input.entry.js +1 -1
- package/dist/esm-es5/nano-date-picker_2.entry.js +1 -1
- package/dist/esm-es5/nano-details.entry.js +1 -1
- package/dist/esm-es5/nano-dialog.entry.js +1 -1
- package/dist/esm-es5/nano-drawer.entry.js +1 -1
- package/dist/esm-es5/nano-file-upload.entry.js +1 -1
- package/dist/esm-es5/nano-global-nav.entry.js +1 -1
- package/dist/esm-es5/nano-global-nav.entry.js.map +1 -1
- package/dist/esm-es5/nano-global-search-results.entry.js +1 -1
- package/dist/esm-es5/nano-grid_3.entry.js +1 -1
- package/dist/esm-es5/nano-hero.entry.js +1 -1
- package/dist/esm-es5/nano-icon-button.entry.js +1 -1
- package/dist/esm-es5/nano-icon.entry.js +1 -1
- package/dist/esm-es5/nano-input.entry.js +1 -1
- package/dist/esm-es5/nano-menu-drawer.entry.js +1 -1
- package/dist/esm-es5/nano-menu.entry.js +1 -1
- package/dist/esm-es5/nano-nav-item_2.entry.js +1 -1
- package/dist/esm-es5/nano-nav-item_2.entry.js.map +1 -1
- package/dist/esm-es5/nano-range.entry.js +1 -1
- package/dist/esm-es5/nano-rating.entry.js +1 -1
- package/dist/esm-es5/nano-resize-observe_2.entry.js +1 -1
- package/dist/esm-es5/nano-select-option.entry.js +1 -1
- package/dist/esm-es5/nano-slide.entry.js +1 -1
- package/dist/esm-es5/nano-slides.entry.js +1 -1
- package/dist/esm-es5/nano-spinner.entry.js +1 -1
- package/dist/esm-es5/nano-sticker.entry.js +1 -1
- package/dist/esm-es5/nano-tab-content.entry.js +1 -1
- package/dist/esm-es5/nano-tab-group.entry.js +1 -1
- package/dist/esm-es5/nano-tab.entry.js +1 -1
- package/dist/esm-es5/nano-tooltip.entry.js +1 -1
- package/dist/esm-es5/{shadow-css-f6845ede.js → shadow-css-dc7b6648.js} +1 -1
- package/dist/esm-es5/{shadow-css-f6845ede.js.map → shadow-css-dc7b6648.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/nano-components.js +1 -1
- package/dist/nano-components/{p-558dd120.system.entry.js → p-006f2fd3.system.entry.js} +2 -2
- package/dist/nano-components/{p-558dd120.system.entry.js.map → p-006f2fd3.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-28998eff.system.entry.js → p-02e82e14.system.entry.js} +2 -2
- package/dist/nano-components/{p-28998eff.system.entry.js.map → p-02e82e14.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-66c3e6e9.js → p-059a5e86.js} +1 -1
- package/dist/nano-components/{p-66c3e6e9.js.map → p-059a5e86.js.map} +1 -1
- package/dist/nano-components/{p-a078a995.entry.js → p-05a8014a.entry.js} +2 -2
- package/dist/nano-components/{p-a078a995.entry.js.map → p-05a8014a.entry.js.map} +0 -0
- package/dist/nano-components/{p-7154bfd9.system.js → p-096682d9.system.js} +2 -2
- package/dist/nano-components/{p-7154bfd9.system.js.map → p-096682d9.system.js.map} +1 -1
- package/dist/nano-components/{p-7caa8912.entry.js → p-13801651.entry.js} +2 -2
- package/dist/nano-components/{p-7caa8912.entry.js.map → p-13801651.entry.js.map} +0 -0
- package/dist/nano-components/{p-e53a485b.entry.js → p-13fa75fc.entry.js} +2 -2
- package/dist/nano-components/{p-e53a485b.entry.js.map → p-13fa75fc.entry.js.map} +0 -0
- package/dist/nano-components/{p-5639f74c.entry.js → p-143bca0d.entry.js} +2 -2
- package/dist/nano-components/{p-5639f74c.entry.js.map → p-143bca0d.entry.js.map} +0 -0
- package/dist/nano-components/{p-0b5e6f9d.system.entry.js → p-18f49ebf.system.entry.js} +2 -2
- package/dist/nano-components/{p-0b5e6f9d.system.entry.js.map → p-18f49ebf.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-bbc00d4d.system.entry.js → p-19428228.system.entry.js} +2 -2
- package/dist/nano-components/{p-bbc00d4d.system.entry.js.map → p-19428228.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-816e00e1.entry.js → p-1e03f9bf.entry.js} +2 -2
- package/dist/nano-components/{p-816e00e1.entry.js.map → p-1e03f9bf.entry.js.map} +0 -0
- package/dist/nano-components/{p-5380c31e.entry.js → p-217f71aa.entry.js} +2 -2
- package/dist/nano-components/{p-5380c31e.entry.js.map → p-217f71aa.entry.js.map} +0 -0
- package/dist/nano-components/{p-b242fe8d.system.entry.js → p-21c2a9a5.system.entry.js} +2 -2
- package/dist/nano-components/{p-b242fe8d.system.entry.js.map → p-21c2a9a5.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-2bf707e3.entry.js → p-23f65b34.entry.js} +2 -2
- package/dist/nano-components/{p-2bf707e3.entry.js.map → p-23f65b34.entry.js.map} +0 -0
- package/dist/nano-components/{p-3bed1120.system.entry.js → p-2442eda0.system.entry.js} +2 -2
- package/dist/nano-components/{p-3bed1120.system.entry.js.map → p-2442eda0.system.entry.js.map} +0 -0
- package/dist/nano-components/p-2946bd70.system.entry.js +5 -0
- package/dist/nano-components/p-2946bd70.system.entry.js.map +1 -0
- package/dist/nano-components/{p-671f3719.system.entry.js → p-2aed806d.system.entry.js} +2 -2
- package/dist/nano-components/{p-671f3719.system.entry.js.map → p-2aed806d.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-5dbb9fb7.system.entry.js → p-2f21a443.system.entry.js} +4 -4
- package/dist/nano-components/{p-5dbb9fb7.system.entry.js.map → p-2f21a443.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-31ade697.system.entry.js → p-30df44d9.system.entry.js} +2 -2
- package/dist/nano-components/{p-31ade697.system.entry.js.map → p-30df44d9.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-13c587da.system.entry.js → p-38a3e791.system.entry.js} +2 -2
- package/dist/nano-components/{p-13c587da.system.entry.js.map → p-38a3e791.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-66bb2bcf.entry.js → p-3a49ceab.entry.js} +2 -2
- package/dist/nano-components/{p-66bb2bcf.entry.js.map → p-3a49ceab.entry.js.map} +0 -0
- package/dist/nano-components/{p-07b58c73.system.entry.js → p-3d0fbd0e.system.entry.js} +2 -2
- package/dist/nano-components/{p-07b58c73.system.entry.js.map → p-3d0fbd0e.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-7d374fb3.system.js → p-41a2e2e4.system.js} +2 -2
- package/dist/nano-components/{p-7d374fb3.system.js.map → p-41a2e2e4.system.js.map} +0 -0
- package/dist/nano-components/{p-d3f6e080.entry.js → p-43543d18.entry.js} +2 -2
- package/dist/nano-components/{p-d3f6e080.entry.js.map → p-43543d18.entry.js.map} +0 -0
- package/dist/nano-components/{p-30b4af8d.entry.js → p-48e6bea3.entry.js} +2 -2
- package/dist/nano-components/{p-30b4af8d.entry.js.map → p-48e6bea3.entry.js.map} +0 -0
- package/dist/nano-components/{p-1b0d66ed.entry.js → p-4e451498.entry.js} +2 -2
- package/dist/nano-components/{p-1b0d66ed.entry.js.map → p-4e451498.entry.js.map} +0 -0
- package/dist/nano-components/{p-c221cf87.entry.js → p-50514e5e.entry.js} +2 -2
- package/dist/nano-components/{p-c221cf87.entry.js.map → p-50514e5e.entry.js.map} +0 -0
- package/dist/nano-components/{p-a4dcc791.entry.js → p-51d9570d.entry.js} +2 -2
- package/dist/nano-components/{p-a4dcc791.entry.js.map → p-51d9570d.entry.js.map} +0 -0
- package/dist/nano-components/{p-9de73007.entry.js → p-51fa04a6.entry.js} +2 -2
- package/dist/nano-components/{p-9de73007.entry.js.map → p-51fa04a6.entry.js.map} +0 -0
- package/dist/nano-components/{p-e08b9df1.system.entry.js → p-55189485.system.entry.js} +2 -2
- package/dist/nano-components/{p-e08b9df1.system.entry.js.map → p-55189485.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-43f1053a.system.js → p-59b3d24b.system.js} +2 -2
- package/dist/nano-components/p-59b3d24b.system.js.map +1 -0
- package/dist/nano-components/{p-7dd28543.js → p-5a0095f9.js} +2 -2
- package/dist/nano-components/p-5a0095f9.js.map +1 -0
- package/dist/nano-components/p-5ae80fd7.js +5 -0
- package/dist/nano-components/{p-1da39d5b.js.map → p-5ae80fd7.js.map} +0 -0
- package/dist/nano-components/{p-a0e0afe7.system.js → p-5b6c304c.system.js} +1 -1
- package/dist/nano-components/{p-a0e0afe7.system.js.map → p-5b6c304c.system.js.map} +1 -1
- package/dist/nano-components/{p-e669e7d5.entry.js → p-5bbd6c81.entry.js} +2 -2
- package/dist/nano-components/{p-e669e7d5.entry.js.map → p-5bbd6c81.entry.js.map} +0 -0
- package/dist/nano-components/{p-11e11858.entry.js → p-5e9170ae.entry.js} +2 -2
- package/dist/nano-components/{p-11e11858.entry.js.map → p-5e9170ae.entry.js.map} +0 -0
- package/dist/nano-components/{p-1a06e6ce.entry.js → p-61565b5a.entry.js} +2 -2
- package/dist/nano-components/{p-1a06e6ce.entry.js.map → p-61565b5a.entry.js.map} +0 -0
- package/dist/nano-components/{p-beb3d892.system.entry.js → p-62ecd3a1.system.entry.js} +2 -2
- package/dist/nano-components/{p-beb3d892.system.entry.js.map → p-62ecd3a1.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-f725ce05.system.entry.js → p-6621e4f1.system.entry.js} +2 -2
- package/dist/nano-components/{p-f725ce05.system.entry.js.map → p-6621e4f1.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-56f02350.system.js → p-687a0c2f.system.js} +1 -1
- package/dist/nano-components/{p-56f02350.system.js.map → p-687a0c2f.system.js.map} +1 -1
- package/dist/nano-components/{p-d675d281.entry.js → p-6a1c69d3.entry.js} +2 -2
- package/dist/nano-components/{p-d675d281.entry.js.map → p-6a1c69d3.entry.js.map} +0 -0
- package/dist/nano-components/{p-7275a920.system.entry.js → p-6ab8d211.system.entry.js} +2 -2
- package/dist/nano-components/{p-7275a920.system.entry.js.map → p-6ab8d211.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-12ad4144.system.entry.js → p-6e9b3d60.system.entry.js} +2 -2
- package/dist/nano-components/{p-12ad4144.system.entry.js.map → p-6e9b3d60.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-f20cba3c.entry.js → p-6f3d20fe.entry.js} +2 -2
- package/dist/nano-components/{p-f20cba3c.entry.js.map → p-6f3d20fe.entry.js.map} +0 -0
- package/dist/nano-components/{p-35501dc9.entry.js → p-6feac35e.entry.js} +2 -2
- package/dist/nano-components/{p-35501dc9.entry.js.map → p-6feac35e.entry.js.map} +0 -0
- package/dist/nano-components/{p-c7c88bbe.system.entry.js → p-723c212f.system.entry.js} +2 -2
- package/dist/nano-components/{p-c7c88bbe.system.entry.js.map → p-723c212f.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-51ca8634.system.entry.js → p-76b13c27.system.entry.js} +2 -2
- package/dist/nano-components/{p-51ca8634.system.entry.js.map → p-76b13c27.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-5f8d1c01.entry.js → p-78569d39.entry.js} +2 -2
- package/dist/nano-components/{p-5f8d1c01.entry.js.map → p-78569d39.entry.js.map} +0 -0
- package/dist/nano-components/{p-457864f2.entry.js → p-78cf9d39.entry.js} +2 -2
- package/dist/nano-components/{p-457864f2.entry.js.map → p-78cf9d39.entry.js.map} +0 -0
- package/dist/nano-components/{p-03759b98.entry.js → p-7e60c331.entry.js} +2 -2
- package/dist/nano-components/{p-03759b98.entry.js.map → p-7e60c331.entry.js.map} +0 -0
- package/dist/nano-components/{p-fef62665.system.entry.js → p-81b4ed2a.system.entry.js} +2 -2
- package/dist/nano-components/{p-fef62665.system.entry.js.map → p-81b4ed2a.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-71cfd511.system.entry.js → p-854df906.system.entry.js} +2 -2
- package/dist/nano-components/{p-71cfd511.system.entry.js.map → p-854df906.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-75f1499e.entry.js → p-88bcf55b.entry.js} +2 -2
- package/dist/nano-components/{p-75f1499e.entry.js.map → p-88bcf55b.entry.js.map} +0 -0
- package/dist/nano-components/{p-5565a13e.entry.js → p-8a608e6d.entry.js} +2 -2
- package/dist/nano-components/{p-5565a13e.entry.js.map → p-8a608e6d.entry.js.map} +0 -0
- package/dist/nano-components/{p-b198296f.entry.js → p-8b7f8ef4.entry.js} +2 -2
- package/dist/nano-components/{p-b198296f.entry.js.map → p-8b7f8ef4.entry.js.map} +0 -0
- package/dist/nano-components/p-8c3993ff.entry.js +5 -0
- package/dist/nano-components/p-8c3993ff.entry.js.map +1 -0
- package/dist/nano-components/{p-beec2a67.system.entry.js → p-91778977.system.entry.js} +2 -2
- package/dist/nano-components/{p-beec2a67.system.entry.js.map → p-91778977.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-35eec040.system.entry.js → p-92b3f99b.system.entry.js} +2 -2
- package/dist/nano-components/{p-35eec040.system.entry.js.map → p-92b3f99b.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-95c8e898.entry.js → p-981cc614.entry.js} +2 -2
- package/dist/nano-components/{p-95c8e898.entry.js.map → p-981cc614.entry.js.map} +0 -0
- package/dist/nano-components/{p-aafa48f6.system.entry.js → p-98222c39.system.entry.js} +2 -2
- package/dist/nano-components/{p-aafa48f6.system.entry.js.map → p-98222c39.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-c2b044fe.system.entry.js → p-9bf4a6e0.system.entry.js} +2 -2
- package/dist/nano-components/{p-c2b044fe.system.entry.js.map → p-9bf4a6e0.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-03104b3a.system.entry.js → p-9df226fd.system.entry.js} +2 -2
- package/dist/nano-components/{p-03104b3a.system.entry.js.map → p-9df226fd.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-cb93c110.system.entry.js → p-a0b55c38.system.entry.js} +2 -2
- package/dist/nano-components/{p-cb93c110.system.entry.js.map → p-a0b55c38.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-600557d5.entry.js → p-a21d90aa.entry.js} +2 -2
- package/dist/nano-components/{p-600557d5.entry.js.map → p-a21d90aa.entry.js.map} +0 -0
- package/dist/nano-components/{p-32fced82.entry.js → p-a9dd7cf9.entry.js} +2 -2
- package/dist/nano-components/{p-32fced82.entry.js.map → p-a9dd7cf9.entry.js.map} +0 -0
- package/dist/nano-components/{p-8085e88f.js → p-ab5813a7.js} +2 -2
- package/dist/nano-components/p-ab5813a7.js.map +1 -0
- package/dist/nano-components/{p-3473b5f9.entry.js → p-ad069ba4.entry.js} +2 -2
- package/dist/nano-components/{p-3473b5f9.entry.js.map → p-ad069ba4.entry.js.map} +0 -0
- package/dist/nano-components/{p-1ab04866.entry.js → p-b246a7bb.entry.js} +2 -2
- package/dist/nano-components/{p-1ab04866.entry.js.map → p-b246a7bb.entry.js.map} +0 -0
- package/dist/nano-components/{p-24401ba5.js → p-b43f5a6f.js} +1 -1
- package/dist/nano-components/{p-24401ba5.js.map → p-b43f5a6f.js.map} +1 -1
- package/dist/nano-components/{p-3bb01fe3.entry.js → p-b45d4be9.entry.js} +2 -2
- package/dist/nano-components/{p-3bb01fe3.entry.js.map → p-b45d4be9.entry.js.map} +0 -0
- package/dist/nano-components/{p-014f62dc.system.entry.js → p-b79dc23a.system.entry.js} +2 -2
- package/dist/nano-components/{p-014f62dc.system.entry.js.map → p-b79dc23a.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-568b607c.system.entry.js → p-badf69ee.system.entry.js} +2 -2
- package/dist/nano-components/{p-568b607c.system.entry.js.map → p-badf69ee.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-3ed243f8.system.entry.js → p-bde0deae.system.entry.js} +2 -2
- package/dist/nano-components/{p-3ed243f8.system.entry.js.map → p-bde0deae.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-6b648575.system.entry.js → p-be3df2e8.system.entry.js} +2 -2
- package/dist/nano-components/{p-6b648575.system.entry.js.map → p-be3df2e8.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-f4b06615.system.entry.js → p-bfc12324.system.entry.js} +2 -2
- package/dist/nano-components/{p-f4b06615.system.entry.js.map → p-bfc12324.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-3d1328a2.entry.js → p-c39c1e8d.entry.js} +2 -2
- package/dist/nano-components/{p-3d1328a2.entry.js.map → p-c39c1e8d.entry.js.map} +0 -0
- package/dist/nano-components/{p-19dafe13.entry.js → p-c7b7f7ab.entry.js} +2 -2
- package/dist/nano-components/{p-19dafe13.entry.js.map → p-c7b7f7ab.entry.js.map} +0 -0
- package/dist/nano-components/{p-d6d1a8c2.entry.js → p-c82ccbc8.entry.js} +2 -2
- package/dist/nano-components/{p-d6d1a8c2.entry.js.map → p-c82ccbc8.entry.js.map} +0 -0
- package/dist/nano-components/{p-f33d6df6.system.js → p-c979940c.system.js} +1 -1
- package/dist/nano-components/{p-f33d6df6.system.js.map → p-c979940c.system.js.map} +1 -1
- package/dist/nano-components/{p-7fe68406.system.entry.js → p-cc668975.system.entry.js} +2 -2
- package/dist/nano-components/{p-7fe68406.system.entry.js.map → p-cc668975.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-9d38cc3e.system.entry.js → p-cfd4c9de.system.entry.js} +2 -2
- package/dist/nano-components/p-cfd4c9de.system.entry.js.map +1 -0
- package/dist/nano-components/{p-3c4b8eb0.entry.js → p-d0e9b177.entry.js} +2 -2
- package/dist/nano-components/{p-3c4b8eb0.entry.js.map → p-d0e9b177.entry.js.map} +0 -0
- package/dist/nano-components/{p-2c34907c.system.entry.js → p-d47d297b.system.entry.js} +2 -2
- package/dist/nano-components/{p-2c34907c.system.entry.js.map → p-d47d297b.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-71b5ba7f.system.js → p-e1f46998.system.js} +2 -2
- package/dist/nano-components/p-e1f46998.system.js.map +1 -0
- package/dist/nano-components/{p-a23e0826.system.entry.js → p-e48a53f5.system.entry.js} +2 -2
- package/dist/nano-components/{p-a23e0826.system.entry.js.map → p-e48a53f5.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-8387377a.entry.js → p-e5f01860.entry.js} +2 -2
- package/dist/nano-components/p-e5f01860.entry.js.map +1 -0
- package/dist/nano-components/{p-728f524c.system.entry.js → p-f2b2cd38.system.entry.js} +2 -2
- package/dist/nano-components/{p-728f524c.system.entry.js.map → p-f2b2cd38.system.entry.js.map} +0 -0
- package/dist/nano-components/{p-5e1b50ca.js → p-f3e66371.js} +1 -1
- package/dist/nano-components/{p-5e1b50ca.js.map → p-f3e66371.js.map} +1 -1
- package/dist/nano-components/{p-2df9e977.system.entry.js → p-fcb5ffaf.system.entry.js} +2 -2
- package/dist/nano-components/{p-2df9e977.system.entry.js.map → p-fcb5ffaf.system.entry.js.map} +0 -0
- package/dist/types/stencil-public-runtime.d.ts +6 -4
- package/docs-json.json +2 -2
- package/package.json +2 -2
- package/dist/cjs/component-store-bda9b645.js.map +0 -1
- package/dist/cjs/index-b256b6d4.js.map +0 -1
- package/dist/esm/component-store-08f430dd.js.map +0 -1
- package/dist/esm/index-37c7d095.js.map +0 -1
- package/dist/esm-es5/component-store-08f430dd.js.map +0 -1
- package/dist/esm-es5/index-37c7d095.js.map +0 -1
- package/dist/nano-components/p-1da39d5b.js +0 -5
- package/dist/nano-components/p-43f1053a.system.js.map +0 -1
- package/dist/nano-components/p-71b5ba7f.system.js.map +0 -1
- package/dist/nano-components/p-7dd28543.js.map +0 -1
- package/dist/nano-components/p-8085e88f.js.map +0 -1
- package/dist/nano-components/p-8387377a.entry.js.map +0 -1
- package/dist/nano-components/p-9d38cc3e.system.entry.js.map +0 -1
- package/dist/nano-components/p-b15362c6.system.entry.js +0 -5
- package/dist/nano-components/p-b15362c6.system.entry.js.map +0 -1
- package/dist/nano-components/p-d99e661e.entry.js +0 -5
- package/dist/nano-components/p-d99e661e.entry.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"file":"nano-nav-item.nano-select.entry.cjs.js","mappings":"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","names":["displayTransition","getSiblings","getDirectChildren","h","Host","closestElement","debounceEvent","Popover","createColorClasses"],"sources":["./src/components/nav-item/nav-item.scss?tag=nano-nav-item&encapsulation=shadow","./src/components/nav-item/nav-item.tsx","./src/components/select/select.scss?tag=nano-select&encapsulation=scoped","./src/components/select/select.tsx"],"sourcesContent":["@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n\n:host {\n // --padding-top: inherit;\n // --padding-bottom: inherit;\n // --padding-start: inherit;\n // --padding-end: inherit;\n // --margin: inherit;\n\n // --secondary-padding-top: inherit;\n // --secondary-padding-bottom: inherit;\n // --secondary-padding-start: inherit;\n // --secondary-padding-end: inherit;\n\n // --border-bottom: inherit;\n // --icon-size: inherit;\n\n // --color: inherit;\n // --color-hover: inherit;\n // --color-focus: inherit;\n // --color-selected: inherit;\n // --color-open: inherit;\n\n // --bg-color: inherit;\n // --bg-color-hover: inherit;\n // --bg-color-selected: inherit;\n // --bg-color-open: inherit;\n // --bg-color-focus: inherit;\n\n // --secondary-bg-color: inherit;\n // --secondary-color: inherit;\n\n opacity: inherit;\n display: block;\n color: var(--color) !important;\n margin: var(--margin);\n\n ::slotted(*),\n * {\n box-sizing: border-box;\n }\n\n ::slotted(button),\n button {\n background: none;\n border: none;\n }\n\n ::slotted(button),\n ::slotted(a),\n ::slotted(a:visited),\n button,\n a,\n a:visited {\n @include text-inherit();\n @include padding(\n var(--padding-top),\n var(--padding-end),\n var(--padding-bottom),\n var(--padding-start)\n );\n\n display: var(--display, block);\n white-space: nowrap;\n color: var(--color) !important;\n background-color: var(--bg-color);\n }\n\n ::slotted(nano-icon[slot='icon-start']) {\n @include padding(null, var(--padding-end), null, null);\n }\n\n ::slotted(nano-icon[slot='icon-end']) {\n @include padding(null, null, null, var(--padding-start));\n }\n\n .link {\n &::slotted(nano-icon[slot='icon-start']),\n ::slotted(nano-icon[slot='icon-start']) {\n @include padding(null, 0, null, var(--padding-start));\n }\n\n &::slotted(nano-icon[slot='icon-end']),\n ::slotted(nano-icon[slot='icon-end']) {\n @include padding(null, var(--padding-end), null, 0);\n }\n }\n\n .link,\n button,\n a {\n border-bottom: var(--border-bottom);\n display: flex;\n align-items: center;\n }\n\n .secondary-menu {\n display: none;\n }\n\n ::slotted(a:hover),\n ::slotted(button:hover),\n .link:hover,\n button:hover,\n a:hover {\n text-decoration: inherit !important;\n }\n\n button:focus,\n a:focus {\n color: var(--color-focus, var(--color-hover, var(--color))) !important;\n background-color:\n var(\n --bg-color-focus,\n var(--bg-color-hover, var(--bg-color))\n );\n outline: var(--focus-outline, none);\n }\n\n ::slotted(a:focus),\n ::slotted(button:focus) {\n color: var(--color-focus, var(--color-hover, var(--color))) !important;\n background-color:\n var(\n --bg-color-focus,\n var(--bg-color-hover, var(--bg-color))\n );\n outline: none;\n }\n}\n\n.nav-item {\n &.selected {\n .link,\n button,\n a {\n color: var(--color-selected, var(--color-open, var(--color))) !important;\n background-color:\n var(\n --bg-color-selected,\n var(--bg-color-open, var(--bg-color))\n );\n }\n }\n\n &.secondary-open {\n button,\n a {\n color: var(--color-open, var(--color-selected, var(--color))) !important;\n background-color:\n var(\n --bg-color-open,\n var(--secondary-bg-color, var(--bg-color-selected, var(--bg-color)))\n );\n }\n }\n\n &.disabled {\n opacity: 0.6;\n\n button,\n a {\n color: var(--color-disabled, var(--color)) !important;\n }\n }\n\n &:not(.nano-menu) {\n ::slotted(a:hover),\n ::slotted(button:hover),\n .link:hover,\n button:hover,\n a:hover {\n color: var(--color-hover, var(--color-hover, var(--color))) !important;\n background-color:\n var(\n --bg-color-hover,\n var(--bg-color-focus, var(--bg-color))\n );\n }\n }\n}\n\n:host(.has-focus) {\n .link {\n color: var(--color-focus, var(--color-hover, var(--color))) !important;\n background-color:\n var(\n --bg-color-focus,\n var(--bg-color-hover, var(--bg-color))\n );\n outline: var(--focus-outline, 5px auto -webkit-focus-ring-color);\n }\n}\n\n:host(.nano-global-nav-menu),\n:host(.nano-menu) {\n a,\n a:visited,\n button,\n .link {\n display: flex;\n justify-content: flex-start;\n flex-direction: row;\n align-items: center;\n color: 'currentColor';\n text-decoration: inherit;\n white-space: normal;\n cursor: pointer;\n line-height: 1.2;\n width: 100%;\n }\n\n .text {\n @include padding(null, var(--padding-end), null, 0);\n\n flex: 1;\n }\n\n ::slotted(a),\n ::slotted(button) {\n flex: 1;\n }\n\n ::slotted(a:focus),\n ::slotted(button:focus) {\n box-shadow: none;\n }\n\n .secondary-menu {\n display: none;\n position: absolute;\n color: var(--secondary-color, 'currentColor');\n min-height: 100%;\n top: 0;\n left: 0;\n width: 100%;\n z-index: 1;\n opacity: 0;\n transition: opacity 0.2s ease, transform 0.3s ease;\n background-color: var(--secondary-bg-color, white);\n transform: translateX(100%);\n\n &:focus {\n outline: none;\n }\n\n &.open {\n opacity: 1;\n transform: translateX(0);\n transition: opacity 0.3s ease, transform 0.2s ease;\n }\n }\n}\n\n:host(.nano-global-nav-menu) {\n ::slotted(nano-icon[slot='icon-start']) {\n @include padding(0, var(--padding-end), 0, 0);\n }\n\n ::slotted(nano-icon[slot='icon-end']) {\n @include padding(0, var(--padding-end), 0, 0);\n\n font-size: 10px;\n flex: 0 0 10px;\n pointer-events: none;\n }\n\n button,\n a {\n ::slotted(nano-icon[slot='icon-end']) {\n padding: 0;\n }\n }\n}\n\n:host(.nano-global-nav-menu[dir='rtl']),\n:host(.nano-menu[dir='rtl']) {\n .secondary-menu {\n left: auto;\n right: 0;\n transform: translateX(-100%);\n\n &.open {\n transform: translateX(0);\n }\n }\n}\n\n:host(.nano-menu) {\n .secondary-menu-content {\n @include padding(\n var(--secondary-padding-top),\n var(--secondary-padding-end),\n var(--secondary-padding-bottom),\n var(--secondary-padding-start)\n );\n }\n}\n\n// I'm sorry. Horrible IE fixes for collapsing stuff :/\n:host(.nano-global-nav-bar.legacy) {\n margin: 0 11px;\n\n ::slotted(a) {\n @include padding(7px, 6px, 7px, 6px);\n }\n}\n\n:host(.nano-global-nav-menu.legacy) {\n ::slotted(a) {\n @include padding(8px, 12px, 8px, 12px);\n }\n}\n\n:host(.nano-global-nav-bar) {\n .link,\n a,\n button {\n display: flex;\n align-items: center;\n cursor: pointer;\n }\n\n .text {\n flex: 1 0 auto;\n }\n\n ::slotted(nano-icon[slot='icon-end']) {\n @include margin(0, 0, 0, var(--padding-end));\n }\n\n ::slotted(nano-icon[slot='icon-start']) {\n @include margin(0, var(--padding-start), 0, 0);\n }\n}\n\n:host(.nano-global-nav-bar.has-secondary) {\n button {\n position: relative;\n\n &::before {\n content: '';\n background: rgb(134, 190, 226);\n height: 3px;\n left: 5px;\n bottom: -14px;\n right: 5px;\n position: absolute;\n transform: translateZ(0) scaleX(0);\n transform-origin: 0;\n transition: 0.2s ease transform;\n }\n }\n\n .selected button::before,\n .secondary-open button::before {\n transform: translateZ(0) scaleX(1);\n }\n\n .secondary-open button::before {\n opacity: 0.5;\n }\n\n .secondary-menu {\n display: none;\n transition: transform 0.3s ease;\n transform: translateY(-100%) translateZ(0);\n background-color: var(--secondary-bg-color, #196c82);\n color: var(--secondary-color);\n position: absolute;\n box-shadow: 0 1px 25px 0 rgba(0, 0, 0, 0.15);\n left: 0;\n right: 0;\n z-index: -2;\n\n &.open {\n transform: translateY(12px) translateZ(0);\n }\n\n &:focus {\n outline: none;\n }\n }\n}\n\n:host(.nano-menu-drawer) {\n .link,\n a,\n button {\n @include padding(\n calc(var(--padding-top) / 2),\n 0,\n calc(var(--padding-bottom) / 2),\n var(--padding-start)\n );\n\n display: flex;\n justify-content: flex-start;\n flex-direction: row;\n align-items: center;\n color: currentColor;\n text-decoration: inherit;\n white-space: normal;\n border: none;\n cursor: pointer;\n line-height: 1.2;\n width: 100%;\n }\n\n .text {\n @include padding(null, var(--padding-end), null, 0);\n\n text-align: left;\n flex: 0 1 auto;\n min-width: 130px;\n width: 130px;\n }\n\n ::slotted(nano-icon[slot='icon-start']) {\n @include padding(0, var(--padding-end), 0, 0);\n\n font-size: var(--icon-size);\n width: var(--icon-size);\n flex: 0 0 var(--icon-size);\n }\n\n ::slotted(nano-icon[slot='icon-end']) {\n @include padding(0, var(--padding-end), 0, 0);\n\n font-size: 10px;\n flex: 0 0 20px;\n min-width: 20px;\n }\n\n .secondary-menu {\n display: none;\n position: absolute;\n background-color: var(--secondary-bg-color);\n color: var(--secondary-color);\n height: 100vh;\n top: 0;\n right: 0;\n left: auto;\n bottom: 0;\n transform: translateX(0);\n z-index: -1;\n transition: transform 0.3s ease, opacity 0.2s ease;\n overflow-y: auto;\n width: var(--secondary-width, 400px);\n max-width: 62vw;\n opacity: 1;\n\n @include padding(\n var(--secondary-padding-top, var(--padding-top)),\n var(--secondary-padding-end, var(--padding-end)),\n var(--secondary-padding-bottom, var(--padding-bottom)),\n var(--secondary-padding-start, var(--padding-start))\n );\n\n &:focus {\n outline: none;\n }\n\n &.open {\n transform: translateX(100%);\n // opacity: 1;\n }\n }\n}\n\n:host(.nano-menu-drawer.legacy) {\n .link,\n a,\n button {\n width: auto;\n }\n\n ::slotted(nano-icon[slot='icon-end']) {\n @include padding(0, calc(var(--padding-end) * 2), 0, 0);\n\n font-size: 10px;\n flex: 0 0 20px;\n min-width: 20px;\n }\n}\n\n:host(.nano-menu-drawer[dir='rtl']) {\n .text {\n text-align: right;\n }\n\n .secondary-menu {\n right: auto;\n left: 0;\n transform: translateX(0%);\n\n &.open {\n transform: translateX(-100%);\n opacity: 1;\n }\n }\n}\n","import {\n Component,\n h,\n Host,\n Element,\n Prop,\n Watch,\n EventEmitter,\n Event,\n State,\n Method,\n ComponentInterface,\n} from '@stencil/core';\nimport { displayTransition, getDirectChildren, getSiblings } from '../../utils';\nimport { NavItemEventDetail } from '../../interface';\n\n/**\n * Nav items to be used with the various nav items.\n * [Globla-Nav](/story/compounds-global-nav)\n * [Menu-Drawer](/story/components-menu-drawer)\n * [Dropdown](/story/components-dropdown)\n */\n@Component({\n tag: 'nano-nav-item',\n styleUrl: 'nav-item.scss',\n shadow: true,\n})\nexport class NavItem implements ComponentInterface {\n private hasSecondarySlot: boolean = false;\n private hasAnchorEle: boolean = false;\n private secondaryDiv: HTMLDivElement;\n private btn: HTMLButtonElement | HTMLAnchorElement;\n private didBlur: boolean = false;\n private fromHover: boolean;\n private animating: boolean = false;\n private waitHide: number;\n private waitShow: number;\n private globalNavEle?: HTMLNanoGlobalNavElement;\n\n @State() didOpen: boolean = false;\n @State() isInGlobalNav: boolean = false;\n @State() isInMenuDrawer: boolean = false;\n @State() isInMenu: boolean = false;\n @State() isLegacy: boolean = !document.head.attachShadow;\n @State() hasFocus: boolean = false;\n @Element() private el: HTMLNanoNavItemElement;\n\n /**\n * Href to link to\n */\n @Prop({ mutable: true }) href: string = null;\n\n /**\n * Target to use for links\n */\n @Prop() target: '_self' | '_blank' | '_parent' | '_top' = '_self';\n\n /**\n * Disable the nav item\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether a secondary menu should be or is currently open\n */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /**\n * Whether this menu item is currently 'selected'\n */\n @Prop({ reflect: true }) selected: boolean = false;\n\n /**\n * Screen pixel width to activate the secondary menu\n */\n @Prop() secondaryActiveWidth: number = 0;\n\n /**\n * Secondary fallback function for when the secondary menu is no longer active.\n */\n @Prop() secondaryFallback = () => {};\n\n /**\n * Whether secondary menus should close on blur\n */\n @Prop() closeOnBlur: boolean = true;\n\n /**\n * Emitted when the nav item closes it's secondary navigation.\n */\n @Event() nanoClose!: EventEmitter<NavItemEventDetail>;\n\n /**\n * Emitted when the nav item opens it's secondary navigation.\n */\n @Event() nanoOpen!: EventEmitter<NavItemEventDetail>;\n\n /**\n * Emitted when the nav item is about to open it's secondary navigation.\n */\n @Event() nanoOpening!: EventEmitter<NavItemEventDetail>;\n\n /**\n * Emitted when the nav item is about to close it's secondary navigation.\n */\n @Event() nanoClosing!: EventEmitter<NavItemEventDetail>;\n\n /**\n * Emitted when the nav item loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the nav item has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Sets focus on the first button or anchor present. Use this method instead of the global\n * `element.focus()`.\n */\n @Method()\n async setFocus() {\n if (!this.btn) return;\n this.btn.focus();\n }\n\n /**\n * Public open watcher\n */\n @Watch('open')\n openChange() {\n this.open ? this.openSecondary() : this.closeSecondary();\n }\n\n /**\n * Internal open watcher\n */\n @Watch('didOpen')\n didOpenChange() {\n if (!this.hasSecondarySlot) return;\n\n if (!this.didOpen) {\n /* the secondadry panel is not closing via hover,\n remove blur events, add focus back to originating button */\n if (!this.fromHover) {\n this.btn.removeEventListener('focusout', this.blur);\n this.secondaryDiv.removeEventListener('focusout', this.blur);\n }\n setTimeout(() => {\n if (!this.fromHover && !this.didBlur)\n this.btn.focus({ preventScroll: true });\n this.nanoClose.emit({ secondaryMenu: this.secondaryDiv });\n }, 50);\n } else {\n this.didBlur = false;\n\n /* the secondadry panel is not opening via hover,\n scroll content into view, focus on it and add blur events */\n if (!this.fromHover) {\n const panelio = new (window as any).IntersectionObserver(\n (data: IntersectionObserverEntry[]) => {\n if (data[0].boundingClientRect.top < 0) {\n this.secondaryDiv.scrollIntoView({\n behavior: 'smooth',\n });\n }\n panelio.disconnect();\n },\n { threshold: 1 }\n );\n panelio.observe(this.secondaryDiv);\n this.secondaryDiv.focus({ preventScroll: true });\n\n this.btn.addEventListener('focusout', this.blur);\n this.secondaryDiv.addEventListener('focusout', this.blur);\n window.addEventListener('blur', this.blur);\n\n this.el.tabIndex = -1;\n this.nanoOpen.emit({ secondaryMenu: this.secondaryDiv });\n }\n }\n }\n\n private closeSecondary = async () => {\n this.open = false;\n if (!this.hasSecondarySlot || !this.didOpen) return;\n\n this.nanoClosing.emit({ secondaryMenu: this.secondaryDiv });\n let status = await displayTransition(this.secondaryDiv, 'open', false);\n this.didOpen = status !== 'hidden';\n };\n\n private openSecondary = async () => {\n if (window.innerWidth < this.secondaryActiveWidth) {\n this.secondaryFallback.call(this);\n return;\n }\n this.open = true;\n if (!this.hasSecondarySlot || this.didOpen) return;\n\n this.nanoOpening.emit({ secondaryMenu: this.secondaryDiv });\n let status = await displayTransition(this.secondaryDiv, 'open', true);\n this.didOpen = status === 'shown';\n };\n\n private toggleSecondary = () => {\n if (!this.hasSecondarySlot) return;\n if (this.didOpen) this.closeSecondary();\n else this.openSecondary();\n };\n\n private handleFocus = () => {\n this.hasFocus = true;\n // opens secondary panel when activated via hover\n if (this.href && !this.animating && this.hasSecondarySlot)\n this.openSecondary();\n this.nanoFocus.emit();\n };\n\n private handleHostBlur = () => {\n if (this.animating) return;\n\n // tab index is added to host when secondary panel opens\n // to return focus after secondary panel closes. Remove now if it was added\n this.el.removeAttribute('tabindex');\n this.hasFocus = false;\n this.nanoBlur.emit();\n };\n\n // direct host clicks to internal button\n private handleHostClick = (ev: MouseEvent) => {\n if (!this.hasAnchorEle) return;\n let foundlink = (ev.target as HTMLElement).closest('a, button');\n if (!foundlink) this.btn.click();\n };\n\n // handles secondary menu hover behaviour.\n private handleMouseEnter = async () => {\n if (\n !this.href ||\n this.animating ||\n !this.hasSecondarySlot ||\n (this.globalNavEle && !this.globalNavEle.classList.contains('ready'))\n )\n return;\n\n // if there are sibling secondary panels currently open,\n // we need to wait before opening otherwise we get unwanted overlapping\n let timeToWait = 0;\n if (getSiblings(this.el, '.secondary-open.has-secondary').length)\n timeToWait = 300;\n\n clearTimeout(this.waitHide);\n this.fromHover = true;\n this.animating = true;\n this.waitShow = window.setTimeout(\n async () => await this.openSecondary(),\n timeToWait\n );\n this.animating = false;\n };\n\n // handles secondary menu hover-out behaviour.\n private handleMouseLeave = () => {\n if (!this.href) return;\n clearTimeout(this.waitShow);\n this.fromHover = true;\n this.animating = true;\n\n // prevent closing immediately - makes navigating to items within more forgiving\n this.waitHide = window.setTimeout(\n async () => await this.closeSecondary(),\n 300\n );\n this.animating = false;\n };\n\n private handleClick = () => {\n this.fromHover = false;\n if (this.hasSecondarySlot) this.toggleSecondary();\n else this.el.querySelector<HTMLElement>('*')?.click();\n };\n\n // utility to traverse up, to see if element is nested within current nav-item\n private foundThisNavEle(el: HTMLElement): boolean {\n let found = el.closest('nano-nav-item');\n found = found === el ? el.parentElement.closest('nano-nav-item') : found;\n\n if (!found) return false;\n if (found === this.el) return true;\n return this.foundThisNavEle(found);\n }\n\n private blur = (ev: FocusEvent) => {\n if (!this.didOpen || this.animating) return;\n if (!this.closeOnBlur) return;\n\n // if event is associated with this element don't close\n if (ev && ev.relatedTarget) {\n if (\n ev.relatedTarget === this.el ||\n ev.relatedTarget === this.btn ||\n this.foundThisNavEle(ev.relatedTarget as HTMLElement)\n ) {\n this.secondaryDiv.focus({ preventScroll: true });\n return;\n }\n }\n\n this.btn.removeEventListener('focusout', this.blur);\n this.secondaryDiv.removeEventListener('focusout', this.blur);\n window.removeEventListener('blur', this.blur);\n\n this.didBlur = true;\n\n this.open = false;\n if (!ev.relatedTarget)\n setTimeout(() => {\n this.el.focus({ preventScroll: true });\n }, 50);\n };\n\n componentWillLoad() {\n let secondaryEle = this.el.querySelector('[slot=\"secondary\"]');\n this.hasSecondarySlot = !!secondaryEle;\n\n let link = getDirectChildren(this.el, 'a, button')[0] as\n | HTMLAnchorElement\n | HTMLButtonElement;\n this.hasAnchorEle = !!link;\n\n if (link) {\n this.href = (link as HTMLAnchorElement).href\n ? (link as HTMLAnchorElement).href\n : null;\n this.btn = link;\n if (this.hasSecondarySlot)\n this.btn.addEventListener('click', this.toggleSecondary);\n\n this.btn.addEventListener('focus', this.handleFocus);\n this.btn.addEventListener('blur', this.handleHostBlur);\n }\n }\n\n connectedCallback() {\n this.isInGlobalNav = false;\n this.isInMenuDrawer = false;\n this.globalNavEle = this.el.closest('nano-global-nav');\n\n this.isInMenuDrawer = !!this.el.closest('nano-menu-drawer');\n this.isInMenu = !!this.el.closest('nano-menu');\n this.isInGlobalNav =\n this.el.parentElement === this.globalNavEle ||\n !!this.el.closest('.global-nav');\n }\n\n render() {\n return (\n <Host\n class={{\n 'has-secondary': this.hasSecondarySlot,\n 'secondary-open': this.open,\n selected: this.selected,\n 'has-focus': this.hasFocus,\n disabled: this.disabled,\n 'nano-global-nav': this.isInGlobalNav,\n 'nano-menu-drawer': this.isInMenuDrawer,\n 'nano-menu': this.isInMenu,\n legacy: this.isLegacy,\n }}\n onBlur={this.handleHostBlur}\n dir={(this.el.ownerDocument as Document).dir === 'rtl' ? 'rtl' : null}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n onClick={this.handleHostClick}\n >\n <div\n class={{\n 'nav-item': true,\n 'secondary-open': this.open,\n selected: this.selected,\n }}\n >\n {this.href && !this.hasAnchorEle && !this.disabled && (\n <a\n target={this.target}\n ref={(a) => (this.btn = a)}\n href={this.href}\n onFocus={this.handleFocus}\n >\n <slot name=\"icon-start\" />\n <span class=\"text\">\n <slot />\n </span>\n <slot name=\"icon-end\" />\n </a>\n )}\n {((!this.hasAnchorEle && !this.href) || this.disabled) && (\n <button\n ref={(btn) => (this.btn = btn)}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n disabled={this.disabled}\n >\n <slot name=\"icon-start\" />\n <span class=\"text\">\n <slot />\n </span>\n <slot name=\"icon-end\" />\n </button>\n )}\n {this.hasAnchorEle && !this.disabled && (\n <div class=\"link\">\n <slot name=\"icon-start\" />\n <slot />\n <slot name=\"icon-end\" />\n </div>\n )}\n {this.hasSecondarySlot && !this.disabled && (\n <div\n class=\"secondary-menu\"\n ref={(div) => (this.secondaryDiv = div)}\n tabindex=\"-1\"\n >\n <div class=\"secondary-menu-content\">\n <slot name=\"secondary\" />\n </div>\n <div\n class=\"secondary-menu-mask\"\n onClick={this.closeSecondary}\n ></div>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n","@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import '../../global/style/nano-theme/layers';\n@import '../input/input.vars';\n\n:host {\n @include inputVars;\n\n position: relative;\n width: 100%;\n padding: 0 !important;\n font-family: $font-family-base;\n display: inline-block;\n}\n\n:host(.nano-color) {\n --input-border-style--focus: #{$input-border-style} var(--nano-color-tint, #{nano-color(primary, tint)});\n --multi-input-value-bg: var(--nano-color-tint-rgb);\n --multi-input-value-border: var(--nano-color-shade);\n --multi-input-value-text-color: var(--nano-color-contrast);\n\n color: current-color(base);\n}\n\n:host-context(nano-item:not(.item-label)) {\n --padding-start: 0;\n}\n\n:host([disabled]:not([disabled='false'])) {\n opacity: 0.7;\n\n * {\n pointer-events: none !important;\n }\n}\n\nlabel,\n.more,\n.error,\n.helper {\n display: block;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &.visually-hide {\n @include visually-hide;\n }\n}\n\n.placeholder-as-label {\n @include padding(0, 0, 0, var(--padding-start));\n\n color: var(--input-text-color);\n position: absolute;\n font-size: 1.4em;\n transform: translateY(-50%);\n transform-origin: top left;\n top: 50%;\n transition: 0.125s ease-in;\n opacity: 0.7;\n pointer-events: none;\n\n :host(.is-invalid) & {\n color: var(--invalid-msg-color);\n }\n\n :host(.has-value) & {\n transform: translateY(-110%);\n font-size: 0.9em;\n }\n\n :host(.has-focus.has-multiple) &,\n :host(.has-value.has-multiple) & {\n transform: translateY(-75%);\n font-size: 0.9em;\n }\n\n :host(.has-multiple) & {\n top: 1.5em;\n }\n\n & ~ .native-select-wrap {\n font-size: 1.1em;\n }\n}\n\n.label {\n @include padding(0, 0, var(--padding-bottom));\n\n color: var(--label-color);\n font-size: var(--label-font-size);\n line-height: 1;\n\n .placeholder {\n opacity: 0;\n appearance: none;\n transition: 0.3s ease opacity;\n font-size: 0.9em;\n }\n\n :host(.has-value) & {\n .placeholder {\n opacity: 0.5;\n }\n }\n\n :host(.has-focus) & {\n color: var(--label-color--focus);\n }\n\n :host(.is-invalid) & {\n color: var(--label-color--invalid);\n }\n}\n\n.more {\n @include margin(4px, 0, var(--padding-bottom), 3px);\n\n height: 1em;\n position: relative;\n}\n\n.helper,\n.error {\n top: 0;\n left: 0;\n position: absolute;\n font-size: var(--invalid-msg-font-size);\n line-height: 1.2;\n transition: 0.3s ease-out opacity;\n}\n\n.helper {\n color: var(--help-msg-color);\n font-style: italic;\n\n :host([show-inline-error]:not([show-inline-error='false']).is-invalid) & {\n opacity: 0;\n }\n}\n\n.error {\n opacity: 0;\n color: var(--invalid-msg-color);\n font-stretch: condensed;\n\n :host(.is-invalid) & {\n opacity: 1;\n }\n}\n\n.select {\n @include text-inherit();\n @include border-radius(var(--input-border-radius));\n\n width: 100%;\n padding: 0 !important;\n position: relative;\n background: var(--input-bg-color);\n border: var(--input-border-style);\n border-width: var(--input-border-width);\n font-size: var(--input-font-size);\n\n :host(.has-focus) & {\n z-index: 10;\n background: var(--input-bg-color--focus);\n border: var(--input-border-style--focus);\n border-width: var(--input-border-width);\n }\n\n :host(.is-invalid) & {\n background: var(--input-bg-color--invalid);\n border: var(--input-border-style--invalid);\n border-width: var(--input-border-width);\n }\n\n :host(.is-invalid.has-focus) & {\n background: var(--input-bg-color--invalid);\n border: var(--input-border-style--invalid-focus);\n border-width: var(--input-border-width);\n }\n}\n\n// Native Select\n// --------------------------------------------------\n\n.native-select-wrap {\n display: flex;\n align-items: center;\n}\n\n.select-mask {\n @include border-radius(var(--input-border-radius));\n @include padding(0, var(--padding-end), 0, var(--padding-start));\n @include text-inherit();\n\n pointer-events: none;\n line-height: 2.5em;\n min-height: 2.5em;\n}\n\n.native-select {\n @include border-radius(var(--input-border-radius));\n @include padding(0, var(--padding-end), 0, var(--padding-start));\n @include text-inherit();\n\n color: var(--input-text-color);\n display: inline-block;\n flex: 1;\n width: 100%;\n max-width: 100%;\n max-height: 100%;\n border: 0;\n outline: none;\n background: transparent;\n box-sizing: border-box;\n transition: 0.3s ease opacity;\n appearance: none;\n // line-height: 1.3;\n margin: 0;\n line-height: 2.5em;\n min-height: 2.5em;\n\n :host(.legacy) & {\n box-sizing: content-box;\n }\n\n :host(.masked) & {\n opacity: 0;\n position: absolute;\n left: 0;\n top: 0;\n }\n\n :host(.has-float-label) & {\n opacity: 0;\n padding-top: 1.8em;\n }\n\n :host(.has-value.has-float-label) & {\n opacity: 1;\n }\n\n &:-webkit-autofill {\n background-color: transparent;\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &::-ms-clear {\n display: none;\n }\n\n &::-ms-expand {\n display: none;\n }\n\n &[disabled] {\n opacity: 0.4;\n }\n\n :host(.has-multiple) & {\n display: none;\n }\n\n option {\n color: black;\n }\n}\n\n// multi stuff\n\n.multi {\n &-wrap {\n @include padding(\n 0,\n calc(1.9em + var(--padding-end)),\n calc(var(--padding-bottom) / 2),\n 0\n );\n\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n max-width: 100%;\n\n :host(.has-clr-btn) & {\n @include padding(\n 0,\n calc(2.6em + (var(--padding-end) * 2) + (var(--padding-end) * 2)),\n calc(var(--padding-bottom) / 2),\n 0\n );\n }\n\n :host(.has-float-label) & {\n padding-top: 1.3em;\n }\n }\n\n &-input {\n @include text-inherit();\n @include padding(\n calc(var(--padding-top) / 2),\n var(--padding-end),\n 0,\n var(--padding-start)\n );\n\n min-width: 50px;\n max-width: 100%;\n max-height: 100%;\n appearance: none;\n border: 0;\n outline: none;\n display: inline-block;\n background: transparent;\n flex: 0;\n position: relative;\n // line-height: calc(2.8em - var(--padding-top));\n min-height: calc(2.8em - var(--padding-top));\n box-sizing: border-box;\n\n :host(.legacy) & {\n box-sizing: content-box;\n }\n\n &:last-child {\n flex: 1;\n }\n }\n\n &-select-box {\n position: absolute;\n background: #{$layer-bg-color};\n min-width: calc(100% + (var(--input-border-width) * 2));\n z-index: #{$layer-index-dropdown};\n margin: 0;\n font-size: 1.15em;\n line-height: 1.4;\n max-height: 50vh;\n overflow-y: auto;\n overscroll-behavior: none;\n transition: opacity 0.2s ease;\n opacity: 0;\n box-sizing: border-box;\n border-radius: #{$layer-border-radius};\n box-shadow: #{$layer-shadow-large};\n padding: var(--padding-top) 0 var(--padding-bottom);\n border: #{$layer-border-style};\n\n &--open {\n opacity: 1;\n }\n\n li {\n @include padding(\n var(--padding-top),\n var(--padding-end),\n var(--padding-bottom),\n var(--padding-start)\n );\n\n font-size: var(--input-font-size);\n cursor: pointer;\n list-style: none;\n color: var(--input-text-color);\n\n :host(.nano-color) & {\n color: black;\n }\n\n &:hover,\n &:focus {\n color: var(--color--focus-contrast);\n outline: none;\n background: rgba(var(--multi-input-value-bg), 0.2);\n\n :host(.nano-color) & {\n background: current-color(base, 0.2);\n }\n }\n }\n }\n\n &-value {\n @include margin(4px, 0, 0, 4px);\n\n background: rgba(var(--multi-input-value-bg), 0.8);\n color: var(--multi-input-value-text-color);\n border: 2px solid;\n border-color: var(--multi-input-value-border);\n padding: 0.3em 0.5em;\n border-radius: 3px;\n line-height: 1;\n max-width: 100%;\n display: flex;\n align-items: center;\n font-size: var(--input-font-size);\n font-weight: 600;\n letter-spacing: 1px;\n\n span {\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 100%;\n overflow: hidden;\n line-height: 1.4;\n }\n }\n\n &-value-remove {\n @include margin(0);\n @include background-position(center);\n @include padding(0, 0, 0, 0.5em);\n\n color: inherit;\n border: 0;\n outline: none;\n background-color: transparent;\n background-repeat: no-repeat;\n appearance: none;\n display: flex;\n align-items: center;\n top: 0;\n font-size: 1em;\n\n nano-icon {\n --color: var(--multi-input-value-text-color);\n }\n }\n}\n\n// Clear Input Icon\n// --------------------------------------------------\n\n.select-down-icon {\n @include margin(0);\n @include background-position(center);\n @include padding(\n var(--padding-top),\n var(--padding-end),\n var(--padding-bottom),\n var(--padding-start)\n );\n\n color: var(--input-text-color);\n font-size: 1.4em;\n right: 0;\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n pointer-events: none;\n\n :host(.is-invalid) & {\n color: var(--clear-btn-color--invalid);\n }\n\n :host(.rtl) & {\n right: unset;\n left: 0;\n }\n\n :host(.has-multiple) & {\n pointer-events: all;\n }\n\n :host(.masked) & {\n position: relative;\n }\n}\n\n.select-clear-icon {\n @include margin(0);\n @include background-position(center);\n @include padding(\n var(--padding-top),\n var(--padding-end),\n var(--padding-bottom),\n var(--padding-start)\n );\n\n font-size: 1.4em;\n color: var(--clear-btn-color);\n border: 0;\n outline: none;\n background-color: transparent;\n background-repeat: no-repeat;\n visibility: hidden;\n appearance: none;\n display: flex;\n align-items: center;\n position: absolute;\n top: 0;\n height: 100%;\n right: calc(1.4em + var(--padding-end));\n\n &:hover {\n color: var(--clear-btn-color--hover);\n }\n\n :host(.rtl) & {\n right: unset;\n left: calc(1.4em + var(--padding-end));\n }\n\n :host(.is-invalid) & {\n color: var(--clear-btn-color--invalid);\n }\n\n :host(.has-value) & {\n visibility: visible;\n }\n\n nano-icon {\n --color: inherit;\n }\n}\n\n// Input Has focus\n// --------------------------------------------------\n// When the select has focus, then the select cover should be hidden\n\n// :host(.has-focus) {\n// pointer-events: none;\n// }\n\n:host(.has-focus) select,\n:host(.has-focus) a,\n:host(.has-focus) button {\n pointer-events: auto;\n}\n","import {\n Build,\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\n\nimport {\n Color,\n SelectChangeEventDetail,\n InputChangeEventDetail,\n CssClassMap,\n ControlValidityEventDetail,\n ControlValidity,\n} from '../../interface';\nimport {\n testLegacyStyle,\n debounceEvent,\n closestElement,\n createColorClasses,\n} from '../../utils';\nimport Popover from '../../utils/popover';\n\n/**\n * The select component is a wrapper to the HTML select element with custom styling and additional functionality.\n * It accepts most of the same properties as the HTML [select](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select).\n * It's multi selection functionality is vastly improved from the native solution. It allows for the control of\n * value order through drag and drop or changing the insertion point with arrow keys. It also can allow for user defined values.\n *\n * @slot label - if you do not set a label attribute, you can use this slot for more complex markup\n * @slot legacy - you can use this slot to wrap any old select / labels / options. This will set appropriate defaults for the nano-select\n */\n@Component({\n tag: 'nano-select',\n styleUrl: 'select.scss',\n scoped: true,\n})\nexport class Select implements ComponentInterface {\n private nativeSelect?: HTMLSelectElement;\n private multiInput?: HTMLInputElement;\n private multiList?: HTMLUListElement;\n private selectWrap?: HTMLDivElement;\n private listItems: Array<HTMLLIElement> = [];\n private valueItems: Array<HTMLSpanElement> = [];\n private dragVal: string;\n private mo?: MutationObserver;\n private popover: Popover;\n\n private selectId = `nano-select-${selectIds++}`;\n private rtl: boolean = false;\n private currLiIndex: number = -1;\n private inputSearchVal: string = '';\n private watchValue: boolean = true;\n private onInit: boolean = true;\n\n @State() currInsertIndex: number = 0;\n @State() availOpts = [];\n @State() showErrorMsg = false;\n @State() errorMessage: string = '';\n @State() hasFocus = false;\n @State() listOpen = false;\n @State() isLegacy: boolean = 'registerElement' in document;\n @State() hasLabelSlot: boolean = false;\n @State() hasHelperSlot: boolean = false;\n @State() hasIconSlot: boolean = false;\n\n @Element() el!: HTMLNanoSelectElement;\n\n /**\n * This will be true when the control is in an invalid state.\n * Validity is determined by the `required` prop. Or if custom validity message is set.\n */\n @Prop({ mutable: true, reflect: true }) invalid = false;\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 * This Boolean attribute lets you specify that a form control should have select focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * If `true`, the user cannot interact with the select.\n */\n @Prop({ reflect: true }) disabled = false;\n\n /**\n * When should the field perform validation\n */\n @Prop({ mutable: true }) validateOn?: 'dirty' | 'submit' | 'submitThenDirty' =\n 'submit';\n\n /**\n * Whether to show validation errors underneath input\n */\n @Prop({ reflect: true }) showInlineError = true;\n\n /**\n * String to place within a label element.\n */\n @Prop() label!: string;\n\n /**\n * Visually hide the label - but make it accessible.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * Enable floating label behaviour. Will disable placeholder if set.\n */\n @Prop() floatLabel: boolean = false;\n\n /**\n * If `true`, the user can enter more than one value. This attribute applies when the type attribute is set to `\"email\"` or `\"file\"`, otherwise it is ignored.\n */\n @Prop() multiple?: boolean = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.selectId + '-name';\n\n /**\n * Instructional text that shows before the select has a value. Text set here will be placed inside the label when a value is set. If you don't want this behaviour just set the first option to have no value.\n */\n @Prop() placeholder?: string | null;\n\n /**\n * If `true`, the user cannot modify the value.\n */\n @Prop() readonly = false;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop() required = false;\n\n /**\n * The initial size of the control.\n */\n @Prop() size?: number;\n\n /**\n * Maximum number of options that can be selected when multiple is true\n */\n @Prop() max?: number;\n\n /**\n * Minimum number of options that can be selected when multiple is true\n */\n @Prop() min?: number;\n\n /**\n * The form element to associate the select with (its form owner). Must be the id of a form.\n */\n @Prop() form?: string | null;\n\n /**\n * in multiple mode, allow users to enter their own values\n */\n @Prop() allowCustomValues: boolean = false;\n\n /**\n * The value of the select.\n */\n @Prop({ mutable: true }) value?: string | Array<string | null> = this.multiple\n ? []\n : '';\n\n /**\n * You can set options via js. domElement.options = ['option 1', 'option 2'] or [{label: 'option 1', value: 'opt-1'}]\n */\n @Prop({ mutable: true }) options: Array<\n string | { label: string; value?: string }\n > = [];\n\n /**\n * If `true`, a clear icon will appear in the select when there is a value. Clicking it clears the select.\n */\n @Prop() clearSelect = false;\n\n /**\n * Hide the native select element and cover with a value 'mask'.\n * Enables a fluid nano-select width upon value change (if required). Doesn't work with multiple=\"true\".\n */\n @Prop() mask = false;\n\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `nanoSearchChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n\n /**\n * Whether to use native <select> elements. Setting to false will use a similar UI as multiple=\"true\"\n */\n @Prop() native = true;\n\n @Watch('debounce')\n protected debounceChanged() {\n this.nanoSearchChange = debounceEvent(this.nanoSearchChange, this.debounce);\n }\n\n // @Watch('options')\n @Watch('required')\n @Watch('disabled')\n @Watch('min')\n @Watch('max')\n @Watch('validateOn')\n @Watch('readonly')\n protected shouldValidate() {\n if (this.onInit) return;\n if (this.invalid) this.showErrorMsg = this.invalid = false;\n\n this.customValidate();\n if (this.validateOn !== 'dirty') return;\n this.showInlineValidation();\n }\n\n /**\n * Update the native select element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n if (!this.watchValue) return;\n\n if (this.multiple) {\n if (typeof this.value === 'string' && !!this.value.length)\n this.value = this.value.split(',');\n if (\n this.value === null ||\n (typeof this.value === 'string' && !this.value.length)\n )\n this.value = [];\n\n if (this.currInsertIndex > this.value.length - 1)\n this.currInsertIndex = this.value.length - 1;\n } else if (typeof this.value !== 'string' && this.value && this.value[0])\n this.value = this.value[0];\n\n this.setNativeValue();\n this.setAvailOpts();\n setTimeout((_) => this.shouldValidate(), 20);\n this.nanoChange.emit({ value: this.value });\n\n if (this.onInit) return;\n }\n\n @Watch('options')\n protected optionsChanged() {\n this.setAvailOpts();\n if (this.hasFocus) this.openList();\n }\n\n /**\n * Setup or rip down custom combobox when select is switched from mutliple\n */\n @Watch('multiple')\n protected multiChange() {\n this.switchValue();\n\n if (this.multiple) this.setupMulti();\n else if (this.popover) this.popover.destroy();\n }\n\n private setupMulti() {\n setTimeout(() => {\n this.setAvailOpts();\n this.popover = new Popover(this.selectWrap, this.multiList, {\n placement: 'bottom-start',\n skidding: 0,\n distance: 0,\n onTransitionEnd: () => {\n if (!this.listOpen) {\n this.multiList.scrollTop = 0;\n }\n },\n });\n }, 20);\n }\n\n @Watch('listOpen')\n listOpenChange() {\n if (this.listOpen) this.popover.show();\n else this.popover.hide();\n }\n\n /**\n * Emitted when the value has changed.\n */\n @Event() nanoChange!: EventEmitter<SelectChangeEventDetail>;\n\n /**\n * Emitted when the select loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the select has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the select has been created.\n * @internal\n */\n @Event() nanoDidLoad!: EventEmitter<void>;\n\n /**\n * Emitted when the select has been removed.\n * @internal\n */\n @Event() nanoDidUnload!: EventEmitter<void>;\n\n /**\n * Emitted when a keyboard input occurred on a multiple=\"true\" input\n */\n @Event() nanoSearchChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Called when validation is performed (which depends on `validateOn`).\n * @returns event.detail: `{ isValid: boolean, errorMessage: string, originalEvent: Event }`.\n */\n @Event() nanoValidate: EventEmitter<ControlValidityEventDetail>;\n\n /**\n * Get the current state of the control.\n * @param validateFirst - perform validation first before reporting\n * @returns `{ isValid: boolean, errorMessage: string }`\n */\n @Method()\n async reportValidity(validateFirst: boolean): Promise<ControlValidity> {\n if (validateFirst) this.showInlineValidation();\n return {\n isValid: !this.invalid,\n errorMessage: this.errorMessage,\n };\n }\n\n /**\n * Sets focus on the specified `nano-select`. Use this method instead of the global\n * `select.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeSelect && !this.multiple) this.nativeSelect.focus();\n else if (this.multiInput) this.multiInput.focus();\n }\n\n /**\n * Returns the native `<select>` element used under the hood.\n */\n @Method()\n getSelectElement(): Promise<HTMLSelectElement> {\n return Promise.resolve(this.nativeSelect!);\n }\n\n /**\n * Invalidate the field and show a custom error message.\n * To clear the error you will need to re-call this method with an empty string.\n */\n @Method()\n async showError(message: string) {\n if (this.nativeSelect) {\n this.nativeSelect.setCustomValidity(message);\n this.nativeSelect.reportValidity();\n }\n }\n\n /* Logic */\n\n // sets the available options of a multi select.\n // Removes ones already selected\n // Filters one if user starts to search\n private setAvailOpts() {\n if (!this.multiple) return;\n\n this.availOpts = this.options.filter((opt) => {\n let toFind = typeof opt === 'string' ? opt : opt['value'];\n let strFilter =\n typeof opt === 'string' ? opt : opt['label'] || opt['value'];\n\n if (!toFind) return false;\n return (\n !(this.value as Array<string>).includes(toFind) &&\n (!this.multiInput ||\n strFilter.toLowerCase().indexOf(this.inputSearchVal.toLowerCase()) >\n -1)\n );\n });\n }\n\n private getNativeValue(): string | Array<string> {\n const nsl = this.nativeSelect;\n if (!nsl) return '';\n\n if (!this.multiple)\n return nsl.options[nsl.selectedIndex] &&\n nsl.options[nsl.selectedIndex].hasAttribute('value')\n ? nsl.options[nsl.selectedIndex].value\n : '';\n else {\n return Array.from(nsl.options).map((opt) => {\n if (opt.selected && opt.hasAttribute('value')) return opt.value;\n });\n }\n }\n\n private setNativeValue() {\n const nsl = this.nativeSelect;\n if (!nsl) return null;\n if (!this.multiple) nsl.value = this.value as string;\n else {\n Array.from(this.nativeSelect.options)\n .filter((opt) => {\n if (typeof this.value === 'string') return opt.value === this.value;\n else\n return this.value.find((val) => {\n if (typeof val === 'string') return val === this.value;\n else if (val['value']) return val === val['value'];\n });\n })\n .map((opt) => {\n opt.selected = true;\n });\n }\n }\n\n private isValidValues() {\n const nsl = this.nativeSelect;\n if (!nsl) return null;\n\n const selected = this.nativeSelect.querySelectorAll('option:checked');\n const values = Array.from(selected).map(\n (el: HTMLOptionElement) => el.value || null\n );\n\n if (this.multiple) {\n return values.reduce((accumulator, currentValue) => {\n if (!accumulator) return false;\n return !!this.options.find((opt) =>\n opt['value'] ? opt['value'] === currentValue : opt === currentValue\n );\n }, true);\n } else {\n return this.options.find((opt) =>\n opt['value'] ? opt['value'] === values[0] : opt === values[0]\n );\n }\n }\n\n private customValidate = () => {\n this.nativeSelect.setCustomValidity('');\n\n // add custom validations 'cos html5 validations are a bit rubbish on selects\n if (this.required && !this.getNativeValue().length) {\n this.nativeSelect.setCustomValidity('Please fill in this field.');\n return true;\n }\n if (\n this.getNativeValue().length &&\n !this.allowCustomValues &&\n !this.isValidValues()\n ) {\n this.nativeSelect.setCustomValidity(\n 'Please choose an item from this field.'\n );\n return true;\n }\n if (this.max && this.getNativeValue().length > this.max) {\n this.nativeSelect.setCustomValidity(\n `Only up to ${this.max} values are allowed.`\n );\n return true;\n }\n if (this.min && this.getNativeValue().length < this.min) {\n this.nativeSelect.setCustomValidity(\n `You must select a minimum of ${this.min} values.`\n );\n return true;\n }\n return false;\n };\n\n private showInlineValidation = (ev?: Event) => {\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n\n this.invalid = false;\n this.showErrorMsg = false;\n this.errorMessage = '';\n\n if (!this.nativeSelect.validity.valid) {\n this.errorMessage = this.nativeSelect.validationMessage;\n this.invalid = true;\n this.showErrorMsg = true;\n }\n this.nanoValidate.emit({\n isValid: !this.invalid,\n errorMessage: this.errorMessage,\n originalEvent: ev,\n });\n };\n\n private handleInvalid = (ev: Event) => {\n this.invalid = true;\n\n if (this.validateOn === 'submit')\n this.invalid = this.showErrorMsg = this.customValidate();\n if (this.showInlineError) ev.preventDefault();\n\n setTimeout((_) => this.showInlineValidation(ev), 20);\n };\n\n private openList() {\n if (!this.multiple) return;\n if (\n (this.availOpts.length ||\n (!!this.inputSearchVal.length && this.allowCustomValues)) &&\n (!this.max || (this.max && this.value.length < this.max))\n )\n this.listOpen = true;\n else this.listOpen = false;\n }\n\n private addValue(value) {\n if (!this.multiple) return;\n if (this.value && this.value.length && this.value.includes(value)) return;\n if (this.max && this.value.length === this.max) return;\n\n this.currInsertIndex++;\n this.value = [\n ...this.value.slice(0, this.currInsertIndex),\n value,\n ...this.value.slice(this.currInsertIndex),\n ];\n\n this.inputSearchVal = '';\n\n this.setAvailOpts();\n\n this.selectWrap.clientWidth; // force reflow\n this.setFocus();\n this.openList();\n }\n\n private removeValue(toFind?: string) {\n if (!this.multiple || !this.value.length) return;\n\n if (!toFind) toFind = this.value[this.value.length - 1];\n this.value = (this.value as Array<string>).filter((val) => val !== toFind);\n\n if (this.currInsertIndex > this.value.length - 1)\n this.currInsertIndex = this.value.length - 1;\n\n this.selectWrap.clientWidth; // force reflow\n this.setFocus();\n this.openList();\n }\n\n private switchValue() {\n this.watchValue = false;\n if (this.multiple) {\n if (typeof this.value === 'string' && !!this.value.length)\n this.value = this.value.split(',');\n else this.value = [];\n\n this.currInsertIndex = Math.max(this.value.length - 1, 0);\n } else if (typeof this.value !== 'string' && this.value && this.value[0])\n this.value = this.value[0];\n this.watchValue = true;\n }\n\n private isSelected(value: string) {\n if (this.multiple)\n return (this.value as Array<string>).find((val) => val === value);\n else value === this.value;\n }\n\n private getLabel(val: string) {\n let foundVal = this.options.find((opt) => {\n return opt['value'] ? opt['value'] === val : opt === val;\n });\n if (!foundVal) return null;\n return foundVal['label'] ? foundVal['label'] : foundVal;\n }\n\n private slotChangeObserver() {\n const mo = (this.mo = new MutationObserver((mrs: MutationRecord[]) =>\n this.processSlottedContent(mrs)\n ));\n mo.observe(this.el, { childList: true, subtree: true });\n }\n\n private processSlottedContent(mutations?: MutationRecord[]) {\n // see if we have label / helper content\n this.hasLabelSlot = !!this.el.querySelectorAll('[slot=\"label\"]').length;\n this.hasHelperSlot = !!this.el.querySelector('[slot=\"helper\"]');\n this.hasIconSlot = !!this.el.querySelector('[slot=\"icon\"]');\n\n if (!mutations) {\n // find legacy select. Take attrs and apply to our element\n let existingselect = this.el.querySelector(\n 'select:not([class*=\"sc-nano-select\"])'\n );\n if (existingselect) {\n Array.from(existingselect.attributes)\n .filter((attr) => attr.specified && attr.nodeName in this)\n .map((attr) => (this[attr.nodeName] = attr.nodeValue));\n }\n\n // find legacy label. Apply to our element\n let existingLabel = this.el.querySelector(\n 'label:not([class*=\"sc-nano-select\"])'\n );\n if (existingLabel) this.label = this.label || existingLabel.innerHTML;\n\n // find legacy slotted options. Apply them and add any relevant values\n let legacyOpts = this.el.querySelectorAll(\n 'option:not([class*=\"sc-nano-select\"])'\n );\n\n this.watchValue = false;\n if (legacyOpts && legacyOpts.length) {\n let options = [];\n legacyOpts.forEach((option: HTMLOptionElement) => {\n options.push({\n label: option.label || option.innerText,\n value: option.value,\n });\n if (!option.selected || !option.value) return;\n\n if (this.multiple) (this.value as Array<string>).push(option.value);\n else this.value = option.value;\n });\n this.options = options;\n }\n\n if (legacyOpts.length || existingLabel || existingselect) {\n // empty all legacy slotted stuff\n let children = this.el.querySelectorAll('[slot=\"legacy\"]');\n if (children) children.forEach((n) => n.parentNode.removeChild(n));\n }\n\n this.watchValue = true;\n }\n\n if (\n mutations &&\n !Array.from(mutations[0].addedNodes).find(\n (node) => node.nodeName.toLowerCase() === 'nano-select-option'\n )\n )\n return;\n\n // find nano-select-options\n let nanoOpts = this.el.querySelectorAll('nano-select-option');\n\n if (nanoOpts && nanoOpts.length) {\n let options = [];\n nanoOpts.forEach((option: HTMLNanoSelectOptionElement) => {\n options.push({\n label: option.label || option.innerText,\n value: option.value,\n });\n if (!option.selected || !option.value) return;\n\n if (this.multiple) (this.value as Array<string>).push(option.value);\n else this.value = option.value;\n });\n this.options = options;\n }\n\n this.setAvailOpts();\n }\n\n /* Event handling */\n\n private onChange = (ev?: Event) => {\n if (!this.readonly && !this.disabled && ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n this.value = this.getNativeValue();\n };\n\n private onBlur = () => {\n if (this.multiple) {\n this.currLiIndex = -1;\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n }\n this.hasFocus = false;\n\n setTimeout(() => {\n if (this.validateOn === 'dirty' && !this.listOpen && !this.hasFocus)\n this.showInlineValidation();\n }, 20);\n this.nanoBlur.emit();\n };\n\n private onFocus = () => {\n if (this.multiple) {\n this.currLiIndex = -1;\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n this.openList();\n }\n\n this.hasFocus = true;\n this.nanoFocus.emit();\n };\n\n private clearSelectValue = (ev?: Event) => {\n if (this.clearSelect && !this.readonly && !this.disabled && ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n if (this.multiple) {\n this.value = [];\n let options = this.nativeSelect.querySelectorAll('option');\n if (options.length) options.forEach((n) => n.remove());\n this.currInsertIndex = -1;\n this.setAvailOpts();\n } else this.value = '';\n\n this.onChange();\n };\n\n private onClick = () => {\n this.setFocus();\n this.openList();\n };\n\n /* Multi event handlers */\n\n private onMultiInputBlur = () => {\n if (this.allowCustomValues) return;\n this.inputSearchVal = '';\n this.setAvailOpts();\n };\n\n private onDragStart = (ev: MouseEvent) => {\n let ele = ev.target as HTMLSpanElement;\n this.dragVal = ele.dataset.value;\n };\n\n private onDragEnd = (ev) => {\n this.dragVal = null;\n ev.preventDefault();\n };\n\n private onDragLeave = (ev: MouseEvent) => {\n let ele = ev.target as HTMLSpanElement;\n let spanVal: string =\n ele.dataset && ele.dataset.value ? ele.dataset.value : null;\n\n if (\n !spanVal ||\n this.dragVal === spanVal ||\n !this.value.includes(this.dragVal)\n ) {\n ev.preventDefault();\n return;\n }\n\n let to = this.value.indexOf(spanVal);\n let from = this.value.indexOf(this.dragVal);\n let tmpArr = this.value as Array<string>;\n let tmpVal = tmpArr[to];\n\n tmpArr[to] = tmpArr[from];\n tmpArr[from] = tmpVal;\n this.value = [...tmpArr];\n };\n\n private onMultiInput = (ev) => {\n this.inputSearchVal = ev.target.value;\n this.setAvailOpts();\n this.openList();\n this.nanoSearchChange.emit({ value: ev.target.value });\n };\n\n private getActiveOpt() {\n return this.multiList.querySelector('.has-focus') as HTMLLIElement;\n }\n\n private onOptFocus = (ev: FocusEvent) => {\n let activeEle = this.getActiveOpt();\n if (activeEle) activeEle.classList.remove('has-focus');\n (ev.target as HTMLElement).classList.add('has-focus');\n };\n\n private onHostClick = () => {\n setTimeout((_) => {\n if (!this.multiple || this.hasFocus) return;\n this.setFocus();\n }, 20);\n };\n\n private handleDocumentMouseDown = (ev: MouseEvent) => {\n const target = ev.target as HTMLElement;\n if (closestElement(this.el.tagName.toLowerCase(), target) !== this.el) {\n this.listOpen = false;\n this.onBlur();\n }\n };\n\n private handleDocumentKeyDown = (ev: KeyboardEvent) => {\n if (!this.multiple) return;\n\n if (!this.inputSearchVal) {\n let rm: HTMLSpanElement;\n\n switch (ev.key) {\n case 'Backspace':\n if (this.multiInput.previousElementSibling)\n rm = this.multiInput.previousElementSibling as HTMLSpanElement;\n else break;\n\n this.removeValue(rm.dataset.value || null);\n break;\n\n case 'Delete':\n if (this.multiInput.nextElementSibling)\n rm = this.multiInput.nextElementSibling as HTMLSpanElement;\n else break;\n\n this.removeValue(rm.dataset.value || null);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n if (!this.value.length) break;\n\n if (ev.key === 'ArrowLeft' && this.multiInput.previousSibling)\n this.currInsertIndex--;\n if (ev.key === 'ArrowRight' && this.multiInput.nextSibling)\n this.currInsertIndex++;\n\n setTimeout(() => {\n this.multiInput.focus();\n }, 20);\n ev.preventDefault();\n break;\n }\n }\n\n // navigated to component via keyboard. Open with down.\n if (this.hasFocus && !this.listOpen && ev.key === 'ArrowDown') {\n this.openList();\n this.currLiIndex = -1;\n }\n\n // Close when tabbing outside of element\n if (this.hasFocus && ev.key === 'Tab') {\n setTimeout(() => {\n if (\n document.activeElement &&\n closestElement(\n this.el.tagName.toLowerCase(),\n document.activeElement\n ) !== this.el\n ) {\n this.listOpen = false;\n this.onBlur();\n return;\n }\n });\n }\n\n // list open, navigate items with arrows\n if (this.listOpen) {\n const selectedItem = this.getActiveOpt();\n let testIndex = this.listItems.indexOf(selectedItem) || this.currLiIndex;\n\n switch (ev.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n ev.preventDefault();\n\n if (ev.key === 'ArrowDown') testIndex++;\n else if (ev.key === 'ArrowUp') testIndex--;\n\n if (testIndex < 0) {\n this.currLiIndex = 0;\n this.multiInput.focus();\n return;\n }\n\n let foundIndex = this.listItems[testIndex]\n ? testIndex\n : this.currLiIndex;\n setTimeout(() => {\n this.listItems[foundIndex].focus();\n this.currLiIndex = foundIndex;\n }, 20);\n return;\n case 'Enter':\n case ' ':\n if (this.listItems[this.currLiIndex]) {\n this.addValue(this.listItems[this.currLiIndex].dataset.value);\n ev.preventDefault();\n }\n return;\n case 'Escape':\n this.listOpen = false;\n return;\n }\n }\n\n if (this.currLiIndex > -1) ev.preventDefault();\n };\n\n /* Stencil Component lifecycle hooks */\n\n connectedCallback() {\n this.debounceChanged();\n\n if (!Build.isBrowser) return;\n\n this.el.dispatchEvent(\n new CustomEvent('nanoDidLoad', {\n detail: this.el,\n })\n );\n testLegacyStyle(this.el);\n }\n\n disconnectedCallback() {\n document.dispatchEvent(\n new CustomEvent('nanoDidUnload', {\n detail: this.el,\n })\n );\n\n if (!Build.isBrowser) return;\n if (this.mo) this.mo.disconnect();\n if (this.popover) this.popover.destroy();\n }\n\n componentDidLoad() {\n this.slotChangeObserver();\n if (this.multiple) this.setupMulti();\n this.customValidate();\n }\n\n componentWillLoad() {\n this.switchValue();\n this.processSlottedContent();\n this.onInit = false;\n }\n\n private renderLabel(labelId: string, position?: 'float') {\n let classes: CssClassMap = {};\n if (position === 'float') {\n classes = { 'placeholder-as-label': true };\n } else {\n classes = { label: true, 'visually-hide': this.hideLabel };\n }\n if (!this.label && !this.hasLabelSlot) return;\n\n return (\n <label class={classes} htmlFor={this.selectId} id={labelId}>\n {this.label && this.label}\n {!this.label && !!this.hasLabelSlot && <slot name=\"label\" />}\n </label>\n );\n }\n\n render() {\n const labelId = this.selectId + '-lbl';\n const moreId =\n this.showInlineError || this.hasHelperSlot\n ? this.selectId + '-moreId'\n : '';\n const listId = this.selectId + '-list';\n\n this.rtl = (this.el.ownerDocument as Document).dir === 'rtl';\n this.listItems = [];\n this.valueItems = [];\n\n if (\n this.placeholder &&\n (!this.options[0] || this.options[0]['label'] !== this.placeholder)\n ) {\n this.options.unshift({ label: this.placeholder, value: '' });\n }\n\n let optionMenu = this.listOpen;\n\n let valueMarkup;\n if (this.multiple) {\n let input = (\n <input\n class=\"multi-input\"\n id={this.selectId}\n ref={(input) => (this.multiInput = input)}\n disabled={this.disabled}\n autoFocus={this.autofocus}\n autocomplete=\"off\"\n onInput={this.onMultiInput}\n value={this.inputSearchVal}\n onTouchStart={this.onClick}\n onMouseDown={this.onClick}\n onFocus={this.onFocus}\n onBlur={this.onMultiInputBlur}\n placeholder={\n this.placeholder && !this.floatLabel && !this.value.length\n ? this.placeholder\n : ''\n }\n role={this.multiple ? 'combobox' : ''}\n aria-labelledby={labelId + ' ' + moreId}\n aria-controls={listId}\n aria-expanded={optionMenu ? 'true' : 'false'}\n aria-required={this.required ? 'true' : 'false'}\n aria-autocomplete=\"list\"\n />\n );\n\n if (!!this.value.length) {\n valueMarkup = (this.value as Array<string>).map((val, i) => {\n let label = this.options.find((opt) => {\n return opt['value'] ? opt['value'] === val : opt === val;\n });\n label = label && label['label'] ? label['label'] : val;\n\n let toReturn = (\n <span\n onDragStart={this.onDragStart}\n onDragLeave={this.onDragLeave}\n onDragEnd={this.onDragEnd}\n draggable\n data-value={val}\n ref={(span) => this.valueItems.push(span)}\n class=\"multi-value\"\n >\n <span>{label}</span>\n <button\n class=\"multi-value-remove\"\n type=\"button\"\n tabindex=\"-1\"\n onTouchEnd={() => {\n this.removeValue(val);\n }}\n onMouseUp={() => {\n this.removeValue(val);\n }}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n </button>\n </span>\n );\n\n if (i === 0 && this.currInsertIndex < 0) toReturn = [input, toReturn];\n else if (i === this.currInsertIndex) toReturn = [toReturn, input];\n return toReturn;\n });\n } else valueMarkup = input;\n }\n\n return (\n <Host\n type={this.multiple ? 'select-multiple' : 'select-one'}\n aria-disabled={this.disabled ? 'true' : null}\n class={{\n ...createColorClasses(this.color),\n 'has-value': !!this.value.length || !!this.inputSearchVal.length,\n 'has-focus': this.hasFocus,\n 'is-invalid': this.invalid,\n 'has-label': this.label !== null && !this.floatLabel,\n 'has-float-label': this.label !== null && this.floatLabel,\n rtl: this.rtl,\n 'has-multiple': this.multiple,\n 'multi-list-open': this.listOpen,\n 'has-clr-btn': this.clearSelect,\n masked: this.mask,\n legacy: this.isLegacy,\n }}\n onClick={this.onHostClick}\n >\n {!this.floatLabel && this.renderLabel(labelId)}\n <div class=\"select\" ref={(div) => (this.selectWrap = div)}>\n {this.floatLabel && this.renderLabel(labelId, 'float')}\n <div\n class={{\n 'native-select-wrap': true,\n 'native-select-wrap--multiple': this.multiple,\n }}\n >\n {!this.multiple && this.mask && (\n <div class=\"select-mask\">\n {this.getLabel(this.value as string)}\n </div>\n )}\n {this.multiple && [\n <div class=\"multi-wrap\">{valueMarkup}</div>,\n <ul\n role=\"listbox\"\n ref={(ul) => (this.multiList = ul)}\n aria-multiselectable=\"true\"\n aria-required={this.required}\n aria-expanded={optionMenu ? 'true' : 'false'}\n aria-hidden={!optionMenu}\n hidden={!optionMenu}\n id={listId}\n class={{\n 'multi-select-box': true,\n 'multi-select-box--open': optionMenu,\n }}\n >\n {this.allowCustomValues && this.inputSearchVal.length > 0 && (\n <li\n data-value={this.inputSearchVal}\n role=\"option\"\n tabindex=\"-1\"\n ref={(li) => this.listItems.push(li)}\n onMouseDown={() => {\n this.addValue(this.inputSearchVal);\n }}\n onFocus={this.onOptFocus}\n >\n Add {this.inputSearchVal}\n </li>\n )}\n {this.availOpts.map((option) => {\n let optval, label;\n if (option['value']) {\n optval = option['value'];\n label = option['label'] || option['value'];\n } else if (typeof option === 'string') {\n optval = option;\n label = optval;\n }\n if (!optval) return;\n return (\n <li\n role=\"option\"\n key={optval}\n data-value={optval}\n ref={(li) => this.listItems.push(li)}\n tabindex=\"-1\"\n aria-selected={this.isSelected(optval) ? 'true' : 'false'}\n onMouseDown={() => {\n this.addValue(optval);\n }}\n onFocus={this.onOptFocus}\n >\n {label}\n </li>\n );\n })}\n </ul>,\n <select\n id={this.selectId + '-hidden'}\n class=\"native-select\"\n ref={(select) => (this.nativeSelect = select)}\n aria-labelledby={labelId + ' ' + moreId}\n disabled={this.disabled}\n form={this.form}\n multiple={this.multiple}\n name={this.name}\n required={this.required}\n onInvalid={this.handleInvalid}\n >\n {(this.value as Array<string>).map((val) => {\n return (\n <option value={val} selected>\n {val}\n </option>\n );\n })}\n </select>,\n ]}\n {!this.multiple && (\n <select\n id={this.selectId}\n class=\"native-select\"\n ref={(select) => (this.nativeSelect = select)}\n aria-labelledby={labelId + ' ' + moreId}\n disabled={this.disabled}\n form={this.form}\n autoFocus={this.autofocus}\n multiple={this.multiple}\n name={this.name}\n required={this.required}\n size={this.size}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onInvalid={this.handleInvalid}\n onChange={this.onChange}\n >\n {this.options.map((option, i) => {\n if (option['value'] || option['label'])\n return (\n <option\n key={option['label'] + i}\n label={option['label']}\n value={option['value']}\n selected={\n option['value'] === this.value ||\n (!this.value && !option['value'])\n }\n disabled={!option['value'] && this.required}\n >\n {option['label'] ? option['label'] : option['value']}\n </option>\n );\n else\n return (\n <option\n key={(option as string) + i}\n value={option as string}\n selected={option === this.value}\n >\n {option}\n </option>\n );\n })}\n <slot name=\"legacy\" />\n </select>\n )}\n {this.clearSelect && !this.readonly && !this.disabled && (\n <button\n type=\"button\"\n class=\"select-clear-icon\"\n tabindex=\"-1\"\n onTouchEnd={this.clearSelectValue}\n onMouseUp={this.clearSelectValue}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n </button>\n )}\n <div\n onTouchEnd={this.onClick}\n onMouseUp={this.onClick}\n class=\"select-down-icon\"\n >\n {this.hasIconSlot ? (\n <slot name=\"icon\" />\n ) : (\n <nano-icon name=\"regular/chevron-down\"></nano-icon>\n )}\n </div>\n </div>\n </div>\n {(this.showInlineError || this.hasHelperSlot) && (\n <div class=\"more\" id={moreId}>\n {!!this.showInlineError ? (\n <div class=\"error\">{this.errorMessage}</div>\n ) : (\n ''\n )}\n <div class=\"helper\">\n <slot name=\"helper\" />\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n\nlet selectIds = 0;\n"],"version":3}
|
1
|
+
{"file":"nano-nav-item.nano-select.entry.cjs.js","mappings":"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","names":["displayTransition","getSiblings","getDirectChildren","h","Host","closestElement","debounceEvent","Popover","createColorClasses"],"sources":["./src/components/nav-item/nav-item.scss?tag=nano-nav-item&encapsulation=shadow","./src/components/nav-item/nav-item.tsx","./src/components/select/select.scss?tag=nano-select&encapsulation=scoped","./src/components/select/select.tsx"],"sourcesContent":["@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n\n:host {\n // --padding-top: inherit;\n // --padding-bottom: inherit;\n // --padding-start: inherit;\n // --padding-end: inherit;\n // --margin: inherit;\n\n // --secondary-padding-top: inherit;\n // --secondary-padding-bottom: inherit;\n // --secondary-padding-start: inherit;\n // --secondary-padding-end: inherit;\n\n // --border-bottom: inherit;\n // --icon-size: inherit;\n\n // --color: inherit;\n // --color-hover: inherit;\n // --color-focus: inherit;\n // --color-selected: inherit;\n // --color-open: inherit;\n\n // --bg-color: inherit;\n // --bg-color-hover: inherit;\n // --bg-color-selected: inherit;\n // --bg-color-open: inherit;\n // --bg-color-focus: inherit;\n\n // --secondary-bg-color: inherit;\n // --secondary-color: inherit;\n\n opacity: inherit;\n display: block;\n color: var(--color) !important;\n margin: var(--margin);\n\n ::slotted(*),\n * {\n box-sizing: border-box;\n }\n\n ::slotted(button),\n button {\n background: none;\n border: none;\n }\n\n ::slotted(button),\n ::slotted(a),\n ::slotted(a:visited),\n button,\n a,\n a:visited {\n @include text-inherit();\n @include padding(\n var(--padding-top),\n var(--padding-end),\n var(--padding-bottom),\n var(--padding-start)\n );\n\n display: var(--display, block);\n white-space: nowrap;\n color: var(--color) !important;\n background-color: var(--bg-color);\n }\n\n ::slotted(nano-icon[slot='icon-start']) {\n @include padding(null, var(--padding-end), null, null);\n }\n\n ::slotted(nano-icon[slot='icon-end']) {\n @include padding(null, null, null, var(--padding-start));\n }\n\n .link {\n &::slotted(nano-icon[slot='icon-start']),\n ::slotted(nano-icon[slot='icon-start']) {\n @include padding(null, 0, null, var(--padding-start));\n }\n\n &::slotted(nano-icon[slot='icon-end']),\n ::slotted(nano-icon[slot='icon-end']) {\n @include padding(null, var(--padding-end), null, 0);\n }\n }\n\n .link,\n button,\n a {\n border-bottom: var(--border-bottom);\n display: flex;\n align-items: center;\n }\n\n .secondary-menu {\n display: none;\n }\n\n ::slotted(a:hover),\n ::slotted(button:hover),\n .link:hover,\n button:hover,\n a:hover {\n text-decoration: inherit !important;\n }\n\n button:focus,\n a:focus {\n color: var(--color-focus, var(--color-hover, var(--color))) !important;\n background-color:\n var(\n --bg-color-focus,\n var(--bg-color-hover, var(--bg-color))\n );\n outline: var(--focus-outline, none);\n }\n\n ::slotted(a:focus),\n ::slotted(button:focus) {\n color: var(--color-focus, var(--color-hover, var(--color))) !important;\n background-color:\n var(\n --bg-color-focus,\n var(--bg-color-hover, var(--bg-color))\n );\n outline: none;\n }\n}\n\n.nav-item {\n &.selected {\n .link,\n button,\n a {\n color: var(--color-selected, var(--color-open, var(--color))) !important;\n background-color:\n var(\n --bg-color-selected,\n var(--bg-color-open, var(--bg-color))\n );\n }\n }\n\n &.secondary-open {\n button,\n a {\n color: var(--color-open, var(--color-selected, var(--color))) !important;\n background-color:\n var(\n --bg-color-open,\n var(--secondary-bg-color, var(--bg-color-selected, var(--bg-color)))\n );\n }\n }\n\n &.disabled {\n opacity: 0.6;\n\n button,\n a {\n color: var(--color-disabled, var(--color)) !important;\n }\n }\n\n &:not(.nano-menu) {\n ::slotted(a:hover),\n ::slotted(button:hover),\n .link:hover,\n button:hover,\n a:hover {\n color: var(--color-hover, var(--color-hover, var(--color))) !important;\n background-color:\n var(\n --bg-color-hover,\n var(--bg-color-focus, var(--bg-color))\n );\n }\n }\n}\n\n:host(.has-focus) {\n .link {\n color: var(--color-focus, var(--color-hover, var(--color))) !important;\n background-color:\n var(\n --bg-color-focus,\n var(--bg-color-hover, var(--bg-color))\n );\n outline: var(--focus-outline, 5px auto -webkit-focus-ring-color);\n }\n}\n\n:host(.nano-global-nav-menu),\n:host(.nano-menu) {\n a,\n a:visited,\n button,\n .link {\n display: flex;\n justify-content: flex-start;\n flex-direction: row;\n align-items: center;\n color: 'currentColor';\n text-decoration: inherit;\n white-space: normal;\n cursor: pointer;\n line-height: 1.2;\n width: 100%;\n }\n\n .text {\n @include padding(null, var(--padding-end), null, 0);\n\n flex: 1;\n }\n\n ::slotted(a),\n ::slotted(button) {\n flex: 1;\n }\n\n ::slotted(a:focus),\n ::slotted(button:focus) {\n box-shadow: none;\n }\n\n .secondary-menu {\n display: none;\n position: absolute;\n color: var(--secondary-color, 'currentColor');\n min-height: 100%;\n top: 0;\n left: 0;\n width: 100%;\n z-index: 1;\n opacity: 0;\n transition: opacity 0.2s ease, transform 0.3s ease;\n background-color: var(--secondary-bg-color, white);\n transform: translateX(100%);\n\n &:focus {\n outline: none;\n }\n\n &.open {\n opacity: 1;\n transform: translateX(0);\n transition: opacity 0.3s ease, transform 0.2s ease;\n }\n }\n}\n\n:host(.nano-global-nav-menu) {\n ::slotted(nano-icon[slot='icon-start']) {\n @include padding(0, var(--padding-end), 0, 0);\n }\n\n ::slotted(nano-icon[slot='icon-end']) {\n @include padding(0, var(--padding-end), 0, 0);\n\n font-size: 10px;\n flex: 0 0 10px;\n pointer-events: none;\n }\n\n button,\n a {\n ::slotted(nano-icon[slot='icon-end']) {\n padding: 0;\n }\n }\n}\n\n:host(.nano-global-nav-menu[dir='rtl']),\n:host(.nano-menu[dir='rtl']) {\n .secondary-menu {\n left: auto;\n right: 0;\n transform: translateX(-100%);\n\n &.open {\n transform: translateX(0);\n }\n }\n}\n\n:host(.nano-menu) {\n .secondary-menu-content {\n @include padding(\n var(--secondary-padding-top),\n var(--secondary-padding-end),\n var(--secondary-padding-bottom),\n var(--secondary-padding-start)\n );\n }\n}\n\n// I'm sorry. Horrible IE fixes for collapsing stuff :/\n:host(.nano-global-nav-bar.legacy) {\n margin: 0 11px;\n\n ::slotted(a) {\n @include padding(7px, 6px, 7px, 6px);\n }\n}\n\n:host(.nano-global-nav-menu.legacy) {\n ::slotted(a) {\n @include padding(8px, 12px, 8px, 12px);\n }\n}\n\n:host(.nano-global-nav-bar) {\n .link,\n a,\n button {\n display: flex;\n align-items: center;\n cursor: pointer;\n }\n\n .text {\n flex: 1 0 auto;\n }\n\n ::slotted(nano-icon[slot='icon-end']) {\n @include margin(0, 0, 0, var(--padding-end));\n }\n\n ::slotted(nano-icon[slot='icon-start']) {\n @include margin(0, var(--padding-start), 0, 0);\n }\n}\n\n:host(.nano-global-nav-bar.has-secondary) {\n button {\n position: relative;\n\n &::before {\n content: '';\n background: rgb(134, 190, 226);\n height: 3px;\n left: 5px;\n bottom: -14px;\n right: 5px;\n position: absolute;\n transform: translateZ(0) scaleX(0);\n transform-origin: 0;\n transition: 0.2s ease transform;\n }\n }\n\n .selected button::before,\n .secondary-open button::before {\n transform: translateZ(0) scaleX(1);\n }\n\n .secondary-open button::before {\n opacity: 0.5;\n }\n\n .secondary-menu {\n display: none;\n transition: transform 0.3s ease;\n transform: translateY(-100%) translateZ(0);\n background-color: var(--secondary-bg-color, #196c82);\n color: var(--secondary-color);\n position: absolute;\n box-shadow: 0 1px 25px 0 rgba(0, 0, 0, 0.15);\n left: 0;\n right: 0;\n z-index: -2;\n outline: none;\n\n &.open {\n transform: translateY(12px) translateZ(0);\n }\n }\n}\n\n:host(.nano-menu-drawer) {\n .link,\n a,\n button {\n @include padding(\n calc(var(--padding-top) / 2),\n 0,\n calc(var(--padding-bottom) / 2),\n var(--padding-start)\n );\n\n display: flex;\n justify-content: flex-start;\n flex-direction: row;\n align-items: center;\n color: currentColor;\n text-decoration: inherit;\n white-space: normal;\n border: none;\n cursor: pointer;\n line-height: 1.2;\n width: 100%;\n }\n\n .text {\n @include padding(null, var(--padding-end), null, 0);\n\n text-align: left;\n flex: 0 1 auto;\n min-width: 130px;\n width: 130px;\n }\n\n ::slotted(nano-icon[slot='icon-start']) {\n @include padding(0, var(--padding-end), 0, 0);\n\n font-size: var(--icon-size);\n width: var(--icon-size);\n flex: 0 0 var(--icon-size);\n }\n\n ::slotted(nano-icon[slot='icon-end']) {\n @include padding(0, var(--padding-end), 0, 0);\n\n font-size: 10px;\n flex: 0 0 20px;\n min-width: 20px;\n }\n\n .secondary-menu {\n display: none;\n position: absolute;\n background-color: var(--secondary-bg-color);\n color: var(--secondary-color);\n height: 100vh;\n top: 0;\n right: 0;\n left: auto;\n bottom: 0;\n transform: translateX(0);\n z-index: -1;\n transition: transform 0.3s ease, opacity 0.2s ease;\n overflow-y: auto;\n width: var(--secondary-width, 400px);\n max-width: 62vw;\n opacity: 1;\n\n @include padding(\n var(--secondary-padding-top, var(--padding-top)),\n var(--secondary-padding-end, var(--padding-end)),\n var(--secondary-padding-bottom, var(--padding-bottom)),\n var(--secondary-padding-start, var(--padding-start))\n );\n\n &:focus {\n outline: none;\n }\n\n &.open {\n transform: translateX(100%);\n // opacity: 1;\n }\n }\n}\n\n:host(.nano-menu-drawer.legacy) {\n .link,\n a,\n button {\n width: auto;\n }\n\n ::slotted(nano-icon[slot='icon-end']) {\n @include padding(0, calc(var(--padding-end) * 2), 0, 0);\n\n font-size: 10px;\n flex: 0 0 20px;\n min-width: 20px;\n }\n}\n\n:host(.nano-menu-drawer[dir='rtl']) {\n .text {\n text-align: right;\n }\n\n .secondary-menu {\n right: auto;\n left: 0;\n transform: translateX(0%);\n\n &.open {\n transform: translateX(-100%);\n opacity: 1;\n }\n }\n}\n","import {\n Component,\n h,\n Host,\n Element,\n Prop,\n Watch,\n EventEmitter,\n Event,\n State,\n Method,\n ComponentInterface,\n} from '@stencil/core';\nimport { displayTransition, getDirectChildren, getSiblings } from '../../utils';\nimport { NavItemEventDetail } from '../../interface';\n\n/**\n * Nav items to be used with the various nav items.\n * [Globla-Nav](/story/compounds-global-nav)\n * [Menu-Drawer](/story/components-menu-drawer)\n * [Dropdown](/story/components-dropdown)\n */\n@Component({\n tag: 'nano-nav-item',\n styleUrl: 'nav-item.scss',\n shadow: true,\n})\nexport class NavItem implements ComponentInterface {\n private hasSecondarySlot: boolean = false;\n private hasAnchorEle: boolean = false;\n private secondaryDiv: HTMLDivElement;\n private btn: HTMLButtonElement | HTMLAnchorElement;\n private didBlur: boolean = false;\n private fromHover: boolean;\n private animating: boolean = false;\n private waitHide: number;\n private waitShow: number;\n private globalNavEle?: HTMLNanoGlobalNavElement;\n\n @State() didOpen: boolean = false;\n @State() isInGlobalNav: boolean = false;\n @State() isInMenuDrawer: boolean = false;\n @State() isInMenu: boolean = false;\n @State() isLegacy: boolean = !document.head.attachShadow;\n @State() hasFocus: boolean = false;\n @Element() private el: HTMLNanoNavItemElement;\n\n /**\n * Href to link to\n */\n @Prop({ mutable: true }) href: string = null;\n\n /**\n * Target to use for links\n */\n @Prop() target: '_self' | '_blank' | '_parent' | '_top' = '_self';\n\n /**\n * Disable the nav item\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether a secondary menu should be or is currently open\n */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /**\n * Whether this menu item is currently 'selected'\n */\n @Prop({ reflect: true }) selected: boolean = false;\n\n /**\n * Screen pixel width to activate the secondary menu\n */\n @Prop() secondaryActiveWidth: number = 0;\n\n /**\n * Secondary fallback function for when the secondary menu is no longer active.\n */\n @Prop() secondaryFallback = () => {};\n\n /**\n * Whether secondary menus should close on blur\n */\n @Prop() closeOnBlur: boolean = true;\n\n /**\n * Emitted when the nav item closes it's secondary navigation.\n */\n @Event() nanoClose!: EventEmitter<NavItemEventDetail>;\n\n /**\n * Emitted when the nav item opens it's secondary navigation.\n */\n @Event() nanoOpen!: EventEmitter<NavItemEventDetail>;\n\n /**\n * Emitted when the nav item is about to open it's secondary navigation.\n */\n @Event() nanoOpening!: EventEmitter<NavItemEventDetail>;\n\n /**\n * Emitted when the nav item is about to close it's secondary navigation.\n */\n @Event() nanoClosing!: EventEmitter<NavItemEventDetail>;\n\n /**\n * Emitted when the nav item loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the nav item has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Sets focus on the first button or anchor present. Use this method instead of the global\n * `element.focus()`.\n */\n @Method()\n async setFocus() {\n if (!this.btn) return;\n this.btn.focus();\n }\n\n /**\n * Public open watcher\n */\n @Watch('open')\n openChange() {\n this.open ? this.openSecondary() : this.closeSecondary();\n }\n\n /**\n * Internal open watcher\n */\n @Watch('didOpen')\n didOpenChange() {\n if (!this.hasSecondarySlot) return;\n\n if (!this.didOpen) {\n /* the secondadry panel is not closing via hover,\n remove blur events, add focus back to originating button */\n if (!this.fromHover) {\n this.btn.removeEventListener('focusout', this.blur);\n this.secondaryDiv.removeEventListener('focusout', this.blur);\n }\n setTimeout(() => {\n if (!this.fromHover && !this.didBlur)\n this.btn.focus({ preventScroll: true });\n this.nanoClose.emit({ secondaryMenu: this.secondaryDiv });\n }, 50);\n } else {\n this.didBlur = false;\n\n /* the secondadry panel is not opening via hover,\n scroll content into view, focus on it and add blur events */\n if (!this.fromHover) {\n const panelio = new (window as any).IntersectionObserver(\n (data: IntersectionObserverEntry[]) => {\n if (data[0].boundingClientRect.top < 0) {\n this.secondaryDiv.scrollIntoView({\n behavior: 'smooth',\n });\n }\n panelio.disconnect();\n },\n { threshold: 1 }\n );\n panelio.observe(this.secondaryDiv);\n this.secondaryDiv.focus({ preventScroll: true });\n\n this.btn.addEventListener('focusout', this.blur);\n this.secondaryDiv.addEventListener('focusout', this.blur);\n window.addEventListener('blur', this.blur);\n\n this.el.tabIndex = -1;\n this.nanoOpen.emit({ secondaryMenu: this.secondaryDiv });\n }\n }\n }\n\n private closeSecondary = async () => {\n this.open = false;\n if (!this.hasSecondarySlot || !this.didOpen) return;\n\n this.nanoClosing.emit({ secondaryMenu: this.secondaryDiv });\n let status = await displayTransition(this.secondaryDiv, 'open', false);\n this.didOpen = status !== 'hidden';\n };\n\n private openSecondary = async () => {\n if (window.innerWidth < this.secondaryActiveWidth) {\n this.secondaryFallback.call(this);\n return;\n }\n this.open = true;\n if (!this.hasSecondarySlot || this.didOpen) return;\n\n this.nanoOpening.emit({ secondaryMenu: this.secondaryDiv });\n let status = await displayTransition(this.secondaryDiv, 'open', true);\n this.didOpen = status === 'shown';\n };\n\n private toggleSecondary = () => {\n if (!this.hasSecondarySlot) return;\n if (this.didOpen) this.closeSecondary();\n else this.openSecondary();\n };\n\n private handleFocus = () => {\n this.hasFocus = true;\n // opens secondary panel when activated via hover\n if (this.href && !this.animating && this.hasSecondarySlot)\n this.openSecondary();\n this.nanoFocus.emit();\n };\n\n private handleHostBlur = () => {\n if (this.animating) return;\n\n // tab index is added to host when secondary panel opens\n // to return focus after secondary panel closes. Remove now if it was added\n this.el.removeAttribute('tabindex');\n this.hasFocus = false;\n this.nanoBlur.emit();\n };\n\n // direct host clicks to internal button\n private handleHostClick = (ev: MouseEvent) => {\n if (!this.hasAnchorEle) return;\n let foundlink = (ev.target as HTMLElement).closest('a, button');\n if (!foundlink) this.btn.click();\n };\n\n // handles secondary menu hover behaviour.\n private handleMouseEnter = async () => {\n if (\n !this.href ||\n this.animating ||\n !this.hasSecondarySlot ||\n (this.globalNavEle && !this.globalNavEle.classList.contains('ready'))\n )\n return;\n\n // if there are sibling secondary panels currently open,\n // we need to wait before opening otherwise we get unwanted overlapping\n let timeToWait = 0;\n if (getSiblings(this.el, '.secondary-open.has-secondary').length)\n timeToWait = 300;\n\n clearTimeout(this.waitHide);\n this.fromHover = true;\n this.animating = true;\n this.waitShow = window.setTimeout(\n async () => await this.openSecondary(),\n timeToWait\n );\n this.animating = false;\n };\n\n // handles secondary menu hover-out behaviour.\n private handleMouseLeave = () => {\n if (!this.href) return;\n clearTimeout(this.waitShow);\n this.fromHover = true;\n this.animating = true;\n\n // prevent closing immediately - makes navigating to items within more forgiving\n this.waitHide = window.setTimeout(\n async () => await this.closeSecondary(),\n 300\n );\n this.animating = false;\n };\n\n private handleClick = () => {\n this.fromHover = false;\n if (this.hasSecondarySlot) this.toggleSecondary();\n else this.el.querySelector<HTMLElement>('*')?.click();\n };\n\n // utility to traverse up, to see if element is nested within current nav-item\n private foundThisNavEle(el: HTMLElement): boolean {\n let found = el.closest('nano-nav-item');\n found = found === el ? el.parentElement.closest('nano-nav-item') : found;\n\n if (!found) return false;\n if (found === this.el) return true;\n return this.foundThisNavEle(found);\n }\n\n private blur = (ev: FocusEvent) => {\n if (!this.didOpen || this.animating) return;\n if (!this.closeOnBlur) return;\n\n // if event is associated with this element don't close\n if (ev && ev.relatedTarget) {\n if (\n ev.relatedTarget === this.el ||\n ev.relatedTarget === this.btn ||\n this.foundThisNavEle(ev.relatedTarget as HTMLElement)\n ) {\n this.secondaryDiv.focus({ preventScroll: true });\n return;\n }\n }\n\n this.btn.removeEventListener('focusout', this.blur);\n this.secondaryDiv.removeEventListener('focusout', this.blur);\n window.removeEventListener('blur', this.blur);\n\n this.didBlur = true;\n\n this.open = false;\n if (!ev.relatedTarget)\n setTimeout(() => {\n this.el.focus({ preventScroll: true });\n }, 50);\n };\n\n componentWillLoad() {\n let secondaryEle = this.el.querySelector('[slot=\"secondary\"]');\n this.hasSecondarySlot = !!secondaryEle;\n\n let link = getDirectChildren(this.el, 'a, button')[0] as\n | HTMLAnchorElement\n | HTMLButtonElement;\n this.hasAnchorEle = !!link;\n\n if (link) {\n this.href = (link as HTMLAnchorElement).href\n ? (link as HTMLAnchorElement).href\n : null;\n this.btn = link;\n if (this.hasSecondarySlot)\n this.btn.addEventListener('click', this.toggleSecondary);\n\n this.btn.addEventListener('focus', this.handleFocus);\n this.btn.addEventListener('blur', this.handleHostBlur);\n }\n }\n\n connectedCallback() {\n this.isInGlobalNav = false;\n this.isInMenuDrawer = false;\n this.globalNavEle = this.el.closest('nano-global-nav');\n\n this.isInMenuDrawer = !!this.el.closest('nano-menu-drawer');\n this.isInMenu = !!this.el.closest('nano-menu');\n this.isInGlobalNav =\n this.el.parentElement === this.globalNavEle ||\n !!this.el.closest('.global-nav');\n }\n\n render() {\n return (\n <Host\n class={{\n 'has-secondary': this.hasSecondarySlot,\n 'secondary-open': this.open,\n selected: this.selected,\n 'has-focus': this.hasFocus,\n disabled: this.disabled,\n 'nano-global-nav': this.isInGlobalNav,\n 'nano-menu-drawer': this.isInMenuDrawer,\n 'nano-menu': this.isInMenu,\n legacy: this.isLegacy,\n }}\n onBlur={this.handleHostBlur}\n dir={(this.el.ownerDocument as Document).dir === 'rtl' ? 'rtl' : null}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n onClick={this.handleHostClick}\n >\n <div\n class={{\n 'nav-item': true,\n 'secondary-open': this.open,\n selected: this.selected,\n }}\n >\n {this.href && !this.hasAnchorEle && !this.disabled && (\n <a\n target={this.target}\n ref={(a) => (this.btn = a)}\n href={this.href}\n onFocus={this.handleFocus}\n >\n <slot name=\"icon-start\" />\n <span class=\"text\">\n <slot />\n </span>\n <slot name=\"icon-end\" />\n </a>\n )}\n {((!this.hasAnchorEle && !this.href) || this.disabled) && (\n <button\n ref={(btn) => (this.btn = btn)}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n disabled={this.disabled}\n >\n <slot name=\"icon-start\" />\n <span class=\"text\">\n <slot />\n </span>\n <slot name=\"icon-end\" />\n </button>\n )}\n {this.hasAnchorEle && !this.disabled && (\n <div class=\"link\">\n <slot name=\"icon-start\" />\n <slot />\n <slot name=\"icon-end\" />\n </div>\n )}\n {this.hasSecondarySlot && !this.disabled && (\n <div\n class=\"secondary-menu\"\n ref={(div) => (this.secondaryDiv = div)}\n tabindex=\"-1\"\n >\n <div class=\"secondary-menu-content\">\n <slot name=\"secondary\" />\n </div>\n <div\n class=\"secondary-menu-mask\"\n onClick={this.closeSecondary}\n ></div>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n","@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import '../../global/style/nano-theme/layers';\n@import '../input/input.vars';\n\n:host {\n @include inputVars;\n\n position: relative;\n width: 100%;\n padding: 0 !important;\n font-family: $font-family-base;\n display: inline-block;\n}\n\n:host(.nano-color) {\n --input-border-style--focus: #{$input-border-style} var(--nano-color-tint, #{nano-color(primary, tint)});\n --multi-input-value-bg: var(--nano-color-tint-rgb);\n --multi-input-value-border: var(--nano-color-shade);\n --multi-input-value-text-color: var(--nano-color-contrast);\n\n color: current-color(base);\n}\n\n:host-context(nano-item:not(.item-label)) {\n --padding-start: 0;\n}\n\n:host([disabled]:not([disabled='false'])) {\n opacity: 0.7;\n\n * {\n pointer-events: none !important;\n }\n}\n\nlabel,\n.more,\n.error,\n.helper {\n display: block;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &.visually-hide {\n @include visually-hide;\n }\n}\n\n.placeholder-as-label {\n @include padding(0, 0, 0, var(--padding-start));\n\n color: var(--input-text-color);\n position: absolute;\n font-size: 1.4em;\n transform: translateY(-50%);\n transform-origin: top left;\n top: 50%;\n transition: 0.125s ease-in;\n opacity: 0.7;\n pointer-events: none;\n\n :host(.is-invalid) & {\n color: var(--invalid-msg-color);\n }\n\n :host(.has-value) & {\n transform: translateY(-110%);\n font-size: 0.9em;\n }\n\n :host(.has-focus.has-multiple) &,\n :host(.has-value.has-multiple) & {\n transform: translateY(-75%);\n font-size: 0.9em;\n }\n\n :host(.has-multiple) & {\n top: 1.5em;\n }\n\n & ~ .native-select-wrap {\n font-size: 1.1em;\n }\n}\n\n.label {\n @include padding(0, 0, var(--padding-bottom));\n\n color: var(--label-color);\n font-size: var(--label-font-size);\n line-height: 1;\n\n .placeholder {\n opacity: 0;\n appearance: none;\n transition: 0.3s ease opacity;\n font-size: 0.9em;\n }\n\n :host(.has-value) & {\n .placeholder {\n opacity: 0.5;\n }\n }\n\n :host(.has-focus) & {\n color: var(--label-color--focus);\n }\n\n :host(.is-invalid) & {\n color: var(--label-color--invalid);\n }\n}\n\n.more {\n @include margin(4px, 0, var(--padding-bottom), 3px);\n\n height: 1em;\n position: relative;\n}\n\n.helper,\n.error {\n top: 0;\n left: 0;\n position: absolute;\n font-size: var(--invalid-msg-font-size);\n line-height: 1.2;\n transition: 0.3s ease-out opacity;\n}\n\n.helper {\n color: var(--help-msg-color);\n font-style: italic;\n\n :host([show-inline-error]:not([show-inline-error='false']).is-invalid) & {\n opacity: 0;\n }\n}\n\n.error {\n opacity: 0;\n color: var(--invalid-msg-color);\n font-stretch: condensed;\n\n :host(.is-invalid) & {\n opacity: 1;\n }\n}\n\n.select {\n @include text-inherit();\n @include border-radius(var(--input-border-radius));\n\n width: 100%;\n padding: 0 !important;\n position: relative;\n background: var(--input-bg-color);\n border: var(--input-border-style);\n border-width: var(--input-border-width);\n font-size: var(--input-font-size);\n\n :host(.has-focus) & {\n z-index: 10;\n background: var(--input-bg-color--focus);\n border: var(--input-border-style--focus);\n border-width: var(--input-border-width);\n }\n\n :host(.is-invalid) & {\n background: var(--input-bg-color--invalid);\n border: var(--input-border-style--invalid);\n border-width: var(--input-border-width);\n }\n\n :host(.is-invalid.has-focus) & {\n background: var(--input-bg-color--invalid);\n border: var(--input-border-style--invalid-focus);\n border-width: var(--input-border-width);\n }\n}\n\n// Native Select\n// --------------------------------------------------\n\n.native-select-wrap {\n display: flex;\n align-items: center;\n}\n\n.select-mask {\n @include border-radius(var(--input-border-radius));\n @include padding(0, var(--padding-end), 0, var(--padding-start));\n @include text-inherit();\n\n pointer-events: none;\n line-height: 2.5em;\n min-height: 2.5em;\n}\n\n.native-select {\n @include border-radius(var(--input-border-radius));\n @include padding(0, var(--padding-end), 0, var(--padding-start));\n @include text-inherit();\n\n color: var(--input-text-color);\n display: inline-block;\n flex: 1;\n width: 100%;\n max-width: 100%;\n max-height: 100%;\n border: 0;\n outline: none;\n background: transparent;\n box-sizing: border-box;\n transition: 0.3s ease opacity;\n appearance: none;\n // line-height: 1.3;\n margin: 0;\n line-height: 2.5em;\n min-height: 2.5em;\n\n :host(.legacy) & {\n box-sizing: content-box;\n }\n\n :host(.masked) & {\n opacity: 0;\n position: absolute;\n left: 0;\n top: 0;\n }\n\n :host(.has-float-label) & {\n opacity: 0;\n padding-top: 1.8em;\n }\n\n :host(.has-value.has-float-label) & {\n opacity: 1;\n }\n\n &:-webkit-autofill {\n background-color: transparent;\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &::-ms-clear {\n display: none;\n }\n\n &::-ms-expand {\n display: none;\n }\n\n &[disabled] {\n opacity: 0.4;\n }\n\n :host(.has-multiple) & {\n display: none;\n }\n\n option {\n color: black;\n }\n}\n\n// multi stuff\n\n.multi {\n &-wrap {\n @include padding(\n 0,\n calc(1.9em + var(--padding-end)),\n calc(var(--padding-bottom) / 2),\n 0\n );\n\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n max-width: 100%;\n\n :host(.has-clr-btn) & {\n @include padding(\n 0,\n calc(2.6em + (var(--padding-end) * 2) + (var(--padding-end) * 2)),\n calc(var(--padding-bottom) / 2),\n 0\n );\n }\n\n :host(.has-float-label) & {\n padding-top: 1.3em;\n }\n }\n\n &-input {\n @include text-inherit();\n @include padding(\n calc(var(--padding-top) / 2),\n var(--padding-end),\n 0,\n var(--padding-start)\n );\n\n min-width: 50px;\n max-width: 100%;\n max-height: 100%;\n appearance: none;\n border: 0;\n outline: none;\n display: inline-block;\n background: transparent;\n flex: 0;\n position: relative;\n // line-height: calc(2.8em - var(--padding-top));\n min-height: calc(2.8em - var(--padding-top));\n box-sizing: border-box;\n\n :host(.legacy) & {\n box-sizing: content-box;\n }\n\n &:last-child {\n flex: 1;\n }\n }\n\n &-select-box {\n position: absolute;\n background: #{$layer-bg-color};\n min-width: calc(100% + (var(--input-border-width) * 2));\n z-index: #{$layer-index-dropdown};\n margin: 0;\n font-size: 1.15em;\n line-height: 1.4;\n max-height: 50vh;\n overflow-y: auto;\n overscroll-behavior: none;\n transition: opacity 0.2s ease;\n opacity: 0;\n box-sizing: border-box;\n border-radius: #{$layer-border-radius};\n box-shadow: #{$layer-shadow-large};\n padding: var(--padding-top) 0 var(--padding-bottom);\n border: #{$layer-border-style};\n\n &--open {\n opacity: 1;\n }\n\n li {\n @include padding(\n var(--padding-top),\n var(--padding-end),\n var(--padding-bottom),\n var(--padding-start)\n );\n\n font-size: var(--input-font-size);\n cursor: pointer;\n list-style: none;\n color: var(--input-text-color);\n\n :host(.nano-color) & {\n color: black;\n }\n\n &:hover,\n &:focus {\n color: var(--color--focus-contrast);\n outline: none;\n background: rgba(var(--multi-input-value-bg), 0.2);\n\n :host(.nano-color) & {\n background: current-color(base, 0.2);\n }\n }\n }\n }\n\n &-value {\n @include margin(4px, 0, 0, 4px);\n\n background: rgba(var(--multi-input-value-bg), 0.8);\n color: var(--multi-input-value-text-color);\n border: 2px solid;\n border-color: var(--multi-input-value-border);\n padding: 0.3em 0.5em;\n border-radius: 3px;\n line-height: 1;\n max-width: 100%;\n display: flex;\n align-items: center;\n font-size: var(--input-font-size);\n font-weight: 600;\n letter-spacing: 1px;\n\n span {\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 100%;\n overflow: hidden;\n line-height: 1.4;\n }\n }\n\n &-value-remove {\n @include margin(0);\n @include background-position(center);\n @include padding(0, 0, 0, 0.5em);\n\n color: inherit;\n border: 0;\n outline: none;\n background-color: transparent;\n background-repeat: no-repeat;\n appearance: none;\n display: flex;\n align-items: center;\n top: 0;\n font-size: 1em;\n\n nano-icon {\n --color: var(--multi-input-value-text-color);\n }\n }\n}\n\n// Clear Input Icon\n// --------------------------------------------------\n\n.select-down-icon {\n @include margin(0);\n @include background-position(center);\n @include padding(\n var(--padding-top),\n var(--padding-end),\n var(--padding-bottom),\n var(--padding-start)\n );\n\n color: var(--input-text-color);\n font-size: 1.4em;\n right: 0;\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n pointer-events: none;\n\n :host(.is-invalid) & {\n color: var(--clear-btn-color--invalid);\n }\n\n :host(.rtl) & {\n right: unset;\n left: 0;\n }\n\n :host(.has-multiple) & {\n pointer-events: all;\n }\n\n :host(.masked) & {\n position: relative;\n }\n}\n\n.select-clear-icon {\n @include margin(0);\n @include background-position(center);\n @include padding(\n var(--padding-top),\n var(--padding-end),\n var(--padding-bottom),\n var(--padding-start)\n );\n\n font-size: 1.4em;\n color: var(--clear-btn-color);\n border: 0;\n outline: none;\n background-color: transparent;\n background-repeat: no-repeat;\n visibility: hidden;\n appearance: none;\n display: flex;\n align-items: center;\n position: absolute;\n top: 0;\n height: 100%;\n right: calc(1.4em + var(--padding-end));\n\n &:hover {\n color: var(--clear-btn-color--hover);\n }\n\n :host(.rtl) & {\n right: unset;\n left: calc(1.4em + var(--padding-end));\n }\n\n :host(.is-invalid) & {\n color: var(--clear-btn-color--invalid);\n }\n\n :host(.has-value) & {\n visibility: visible;\n }\n\n nano-icon {\n --color: inherit;\n }\n}\n\n// Input Has focus\n// --------------------------------------------------\n// When the select has focus, then the select cover should be hidden\n\n// :host(.has-focus) {\n// pointer-events: none;\n// }\n\n:host(.has-focus) select,\n:host(.has-focus) a,\n:host(.has-focus) button {\n pointer-events: auto;\n}\n","import {\n Build,\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\n\nimport {\n Color,\n SelectChangeEventDetail,\n InputChangeEventDetail,\n CssClassMap,\n ControlValidityEventDetail,\n ControlValidity,\n} from '../../interface';\nimport {\n testLegacyStyle,\n debounceEvent,\n closestElement,\n createColorClasses,\n} from '../../utils';\nimport Popover from '../../utils/popover';\n\n/**\n * The select component is a wrapper to the HTML select element with custom styling and additional functionality.\n * It accepts most of the same properties as the HTML [select](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select).\n * It's multi selection functionality is vastly improved from the native solution. It allows for the control of\n * value order through drag and drop or changing the insertion point with arrow keys. It also can allow for user defined values.\n *\n * @slot label - if you do not set a label attribute, you can use this slot for more complex markup\n * @slot legacy - you can use this slot to wrap any old select / labels / options. This will set appropriate defaults for the nano-select\n */\n@Component({\n tag: 'nano-select',\n styleUrl: 'select.scss',\n scoped: true,\n})\nexport class Select implements ComponentInterface {\n private nativeSelect?: HTMLSelectElement;\n private multiInput?: HTMLInputElement;\n private multiList?: HTMLUListElement;\n private selectWrap?: HTMLDivElement;\n private listItems: Array<HTMLLIElement> = [];\n private valueItems: Array<HTMLSpanElement> = [];\n private dragVal: string;\n private mo?: MutationObserver;\n private popover: Popover;\n\n private selectId = `nano-select-${selectIds++}`;\n private rtl: boolean = false;\n private currLiIndex: number = -1;\n private inputSearchVal: string = '';\n private watchValue: boolean = true;\n private onInit: boolean = true;\n\n @State() currInsertIndex: number = 0;\n @State() availOpts = [];\n @State() showErrorMsg = false;\n @State() errorMessage: string = '';\n @State() hasFocus = false;\n @State() listOpen = false;\n @State() isLegacy: boolean = 'registerElement' in document;\n @State() hasLabelSlot: boolean = false;\n @State() hasHelperSlot: boolean = false;\n @State() hasIconSlot: boolean = false;\n\n @Element() el!: HTMLNanoSelectElement;\n\n /**\n * This will be true when the control is in an invalid state.\n * Validity is determined by the `required` prop. Or if custom validity message is set.\n */\n @Prop({ mutable: true, reflect: true }) invalid = false;\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 * This Boolean attribute lets you specify that a form control should have select focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * If `true`, the user cannot interact with the select.\n */\n @Prop({ reflect: true }) disabled = false;\n\n /**\n * When should the field perform validation\n */\n @Prop({ mutable: true }) validateOn?: 'dirty' | 'submit' | 'submitThenDirty' =\n 'submit';\n\n /**\n * Whether to show validation errors underneath input\n */\n @Prop({ reflect: true }) showInlineError = true;\n\n /**\n * String to place within a label element.\n */\n @Prop() label!: string;\n\n /**\n * Visually hide the label - but make it accessible.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * Enable floating label behaviour. Will disable placeholder if set.\n */\n @Prop() floatLabel: boolean = false;\n\n /**\n * If `true`, the user can enter more than one value. This attribute applies when the type attribute is set to `\"email\"` or `\"file\"`, otherwise it is ignored.\n */\n @Prop() multiple?: boolean = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.selectId + '-name';\n\n /**\n * Instructional text that shows before the select has a value. Text set here will be placed inside the label when a value is set. If you don't want this behaviour just set the first option to have no value.\n */\n @Prop() placeholder?: string | null;\n\n /**\n * If `true`, the user cannot modify the value.\n */\n @Prop() readonly = false;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop() required = false;\n\n /**\n * The initial size of the control.\n */\n @Prop() size?: number;\n\n /**\n * Maximum number of options that can be selected when multiple is true\n */\n @Prop() max?: number;\n\n /**\n * Minimum number of options that can be selected when multiple is true\n */\n @Prop() min?: number;\n\n /**\n * The form element to associate the select with (its form owner). Must be the id of a form.\n */\n @Prop() form?: string | null;\n\n /**\n * in multiple mode, allow users to enter their own values\n */\n @Prop() allowCustomValues: boolean = false;\n\n /**\n * The value of the select.\n */\n @Prop({ mutable: true }) value?: string | Array<string | null> = this.multiple\n ? []\n : '';\n\n /**\n * You can set options via js. domElement.options = ['option 1', 'option 2'] or [{label: 'option 1', value: 'opt-1'}]\n */\n @Prop({ mutable: true }) options: Array<\n string | { label: string; value?: string }\n > = [];\n\n /**\n * If `true`, a clear icon will appear in the select when there is a value. Clicking it clears the select.\n */\n @Prop() clearSelect = false;\n\n /**\n * Hide the native select element and cover with a value 'mask'.\n * Enables a fluid nano-select width upon value change (if required). Doesn't work with multiple=\"true\".\n */\n @Prop() mask = false;\n\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `nanoSearchChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n\n /**\n * Whether to use native <select> elements. Setting to false will use a similar UI as multiple=\"true\"\n */\n @Prop() native = true;\n\n @Watch('debounce')\n protected debounceChanged() {\n this.nanoSearchChange = debounceEvent(this.nanoSearchChange, this.debounce);\n }\n\n // @Watch('options')\n @Watch('required')\n @Watch('disabled')\n @Watch('min')\n @Watch('max')\n @Watch('validateOn')\n @Watch('readonly')\n protected shouldValidate() {\n if (this.onInit) return;\n if (this.invalid) this.showErrorMsg = this.invalid = false;\n\n this.customValidate();\n if (this.validateOn !== 'dirty') return;\n this.showInlineValidation();\n }\n\n /**\n * Update the native select element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n if (!this.watchValue) return;\n\n if (this.multiple) {\n if (typeof this.value === 'string' && !!this.value.length)\n this.value = this.value.split(',');\n if (\n this.value === null ||\n (typeof this.value === 'string' && !this.value.length)\n )\n this.value = [];\n\n if (this.currInsertIndex > this.value.length - 1)\n this.currInsertIndex = this.value.length - 1;\n } else if (typeof this.value !== 'string' && this.value && this.value[0])\n this.value = this.value[0];\n\n this.setNativeValue();\n this.setAvailOpts();\n setTimeout((_) => this.shouldValidate(), 20);\n this.nanoChange.emit({ value: this.value });\n\n if (this.onInit) return;\n }\n\n @Watch('options')\n protected optionsChanged() {\n this.setAvailOpts();\n if (this.hasFocus) this.openList();\n }\n\n /**\n * Setup or rip down custom combobox when select is switched from mutliple\n */\n @Watch('multiple')\n protected multiChange() {\n this.switchValue();\n\n if (this.multiple) this.setupMulti();\n else if (this.popover) this.popover.destroy();\n }\n\n private setupMulti() {\n setTimeout(() => {\n this.setAvailOpts();\n this.popover = new Popover(this.selectWrap, this.multiList, {\n placement: 'bottom-start',\n skidding: 0,\n distance: 0,\n onTransitionEnd: () => {\n if (!this.listOpen) {\n this.multiList.scrollTop = 0;\n }\n },\n });\n }, 20);\n }\n\n @Watch('listOpen')\n listOpenChange() {\n if (this.listOpen) this.popover.show();\n else this.popover.hide();\n }\n\n /**\n * Emitted when the value has changed.\n */\n @Event() nanoChange!: EventEmitter<SelectChangeEventDetail>;\n\n /**\n * Emitted when the select loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the select has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the select has been created.\n * @internal\n */\n @Event() nanoDidLoad!: EventEmitter<void>;\n\n /**\n * Emitted when the select has been removed.\n * @internal\n */\n @Event() nanoDidUnload!: EventEmitter<void>;\n\n /**\n * Emitted when a keyboard input occurred on a multiple=\"true\" input\n */\n @Event() nanoSearchChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Called when validation is performed (which depends on `validateOn`).\n * @returns event.detail: `{ isValid: boolean, errorMessage: string, originalEvent: Event }`.\n */\n @Event() nanoValidate: EventEmitter<ControlValidityEventDetail>;\n\n /**\n * Get the current state of the control.\n * @param validateFirst - perform validation first before reporting\n * @returns `{ isValid: boolean, errorMessage: string }`\n */\n @Method()\n async reportValidity(validateFirst: boolean): Promise<ControlValidity> {\n if (validateFirst) this.showInlineValidation();\n return {\n isValid: !this.invalid,\n errorMessage: this.errorMessage,\n };\n }\n\n /**\n * Sets focus on the specified `nano-select`. Use this method instead of the global\n * `select.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeSelect && !this.multiple) this.nativeSelect.focus();\n else if (this.multiInput) this.multiInput.focus();\n }\n\n /**\n * Returns the native `<select>` element used under the hood.\n */\n @Method()\n getSelectElement(): Promise<HTMLSelectElement> {\n return Promise.resolve(this.nativeSelect!);\n }\n\n /**\n * Invalidate the field and show a custom error message.\n * To clear the error you will need to re-call this method with an empty string.\n */\n @Method()\n async showError(message: string) {\n if (this.nativeSelect) {\n this.nativeSelect.setCustomValidity(message);\n this.nativeSelect.reportValidity();\n }\n }\n\n /* Logic */\n\n // sets the available options of a multi select.\n // Removes ones already selected\n // Filters one if user starts to search\n private setAvailOpts() {\n if (!this.multiple) return;\n\n this.availOpts = this.options.filter((opt) => {\n let toFind = typeof opt === 'string' ? opt : opt['value'];\n let strFilter =\n typeof opt === 'string' ? opt : opt['label'] || opt['value'];\n\n if (!toFind) return false;\n return (\n !(this.value as Array<string>).includes(toFind) &&\n (!this.multiInput ||\n strFilter.toLowerCase().indexOf(this.inputSearchVal.toLowerCase()) >\n -1)\n );\n });\n }\n\n private getNativeValue(): string | Array<string> {\n const nsl = this.nativeSelect;\n if (!nsl) return '';\n\n if (!this.multiple)\n return nsl.options[nsl.selectedIndex] &&\n nsl.options[nsl.selectedIndex].hasAttribute('value')\n ? nsl.options[nsl.selectedIndex].value\n : '';\n else {\n return Array.from(nsl.options).map((opt) => {\n if (opt.selected && opt.hasAttribute('value')) return opt.value;\n });\n }\n }\n\n private setNativeValue() {\n const nsl = this.nativeSelect;\n if (!nsl) return null;\n if (!this.multiple) nsl.value = this.value as string;\n else {\n Array.from(this.nativeSelect.options)\n .filter((opt) => {\n if (typeof this.value === 'string') return opt.value === this.value;\n else\n return this.value.find((val) => {\n if (typeof val === 'string') return val === this.value;\n else if (val['value']) return val === val['value'];\n });\n })\n .map((opt) => {\n opt.selected = true;\n });\n }\n }\n\n private isValidValues() {\n const nsl = this.nativeSelect;\n if (!nsl) return null;\n\n const selected = this.nativeSelect.querySelectorAll('option:checked');\n const values = Array.from(selected).map(\n (el: HTMLOptionElement) => el.value || null\n );\n\n if (this.multiple) {\n return values.reduce((accumulator, currentValue) => {\n if (!accumulator) return false;\n return !!this.options.find((opt) =>\n opt['value'] ? opt['value'] === currentValue : opt === currentValue\n );\n }, true);\n } else {\n return this.options.find((opt) =>\n opt['value'] ? opt['value'] === values[0] : opt === values[0]\n );\n }\n }\n\n private customValidate = () => {\n this.nativeSelect.setCustomValidity('');\n\n // add custom validations 'cos html5 validations are a bit rubbish on selects\n if (this.required && !this.getNativeValue().length) {\n this.nativeSelect.setCustomValidity('Please fill in this field.');\n return true;\n }\n if (\n this.getNativeValue().length &&\n !this.allowCustomValues &&\n !this.isValidValues()\n ) {\n this.nativeSelect.setCustomValidity(\n 'Please choose an item from this field.'\n );\n return true;\n }\n if (this.max && this.getNativeValue().length > this.max) {\n this.nativeSelect.setCustomValidity(\n `Only up to ${this.max} values are allowed.`\n );\n return true;\n }\n if (this.min && this.getNativeValue().length < this.min) {\n this.nativeSelect.setCustomValidity(\n `You must select a minimum of ${this.min} values.`\n );\n return true;\n }\n return false;\n };\n\n private showInlineValidation = (ev?: Event) => {\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n\n this.invalid = false;\n this.showErrorMsg = false;\n this.errorMessage = '';\n\n if (!this.nativeSelect.validity.valid) {\n this.errorMessage = this.nativeSelect.validationMessage;\n this.invalid = true;\n this.showErrorMsg = true;\n }\n this.nanoValidate.emit({\n isValid: !this.invalid,\n errorMessage: this.errorMessage,\n originalEvent: ev,\n });\n };\n\n private handleInvalid = (ev: Event) => {\n this.invalid = true;\n\n if (this.validateOn === 'submit')\n this.invalid = this.showErrorMsg = this.customValidate();\n if (this.showInlineError) ev.preventDefault();\n\n setTimeout((_) => this.showInlineValidation(ev), 20);\n };\n\n private openList() {\n if (!this.multiple) return;\n if (\n (this.availOpts.length ||\n (!!this.inputSearchVal.length && this.allowCustomValues)) &&\n (!this.max || (this.max && this.value.length < this.max))\n )\n this.listOpen = true;\n else this.listOpen = false;\n }\n\n private addValue(value) {\n if (!this.multiple) return;\n if (this.value && this.value.length && this.value.includes(value)) return;\n if (this.max && this.value.length === this.max) return;\n\n this.currInsertIndex++;\n this.value = [\n ...this.value.slice(0, this.currInsertIndex),\n value,\n ...this.value.slice(this.currInsertIndex),\n ];\n\n this.inputSearchVal = '';\n\n this.setAvailOpts();\n\n this.selectWrap.clientWidth; // force reflow\n this.setFocus();\n this.openList();\n }\n\n private removeValue(toFind?: string) {\n if (!this.multiple || !this.value.length) return;\n\n if (!toFind) toFind = this.value[this.value.length - 1];\n this.value = (this.value as Array<string>).filter((val) => val !== toFind);\n\n if (this.currInsertIndex > this.value.length - 1)\n this.currInsertIndex = this.value.length - 1;\n\n this.selectWrap.clientWidth; // force reflow\n this.setFocus();\n this.openList();\n }\n\n private switchValue() {\n this.watchValue = false;\n if (this.multiple) {\n if (typeof this.value === 'string' && !!this.value.length)\n this.value = this.value.split(',');\n else this.value = [];\n\n this.currInsertIndex = Math.max(this.value.length - 1, 0);\n } else if (typeof this.value !== 'string' && this.value && this.value[0])\n this.value = this.value[0];\n this.watchValue = true;\n }\n\n private isSelected(value: string) {\n if (this.multiple)\n return (this.value as Array<string>).find((val) => val === value);\n else value === this.value;\n }\n\n private getLabel(val: string) {\n let foundVal = this.options.find((opt) => {\n return opt['value'] ? opt['value'] === val : opt === val;\n });\n if (!foundVal) return null;\n return foundVal['label'] ? foundVal['label'] : foundVal;\n }\n\n private slotChangeObserver() {\n const mo = (this.mo = new MutationObserver((mrs: MutationRecord[]) =>\n this.processSlottedContent(mrs)\n ));\n mo.observe(this.el, { childList: true, subtree: true });\n }\n\n private processSlottedContent(mutations?: MutationRecord[]) {\n // see if we have label / helper content\n this.hasLabelSlot = !!this.el.querySelectorAll('[slot=\"label\"]').length;\n this.hasHelperSlot = !!this.el.querySelector('[slot=\"helper\"]');\n this.hasIconSlot = !!this.el.querySelector('[slot=\"icon\"]');\n\n if (!mutations) {\n // find legacy select. Take attrs and apply to our element\n let existingselect = this.el.querySelector(\n 'select:not([class*=\"sc-nano-select\"])'\n );\n if (existingselect) {\n Array.from(existingselect.attributes)\n .filter((attr) => attr.specified && attr.nodeName in this)\n .map((attr) => (this[attr.nodeName] = attr.nodeValue));\n }\n\n // find legacy label. Apply to our element\n let existingLabel = this.el.querySelector(\n 'label:not([class*=\"sc-nano-select\"])'\n );\n if (existingLabel) this.label = this.label || existingLabel.innerHTML;\n\n // find legacy slotted options. Apply them and add any relevant values\n let legacyOpts = this.el.querySelectorAll(\n 'option:not([class*=\"sc-nano-select\"])'\n );\n\n this.watchValue = false;\n if (legacyOpts && legacyOpts.length) {\n let options = [];\n legacyOpts.forEach((option: HTMLOptionElement) => {\n options.push({\n label: option.label || option.innerText,\n value: option.value,\n });\n if (!option.selected || !option.value) return;\n\n if (this.multiple) (this.value as Array<string>).push(option.value);\n else this.value = option.value;\n });\n this.options = options;\n }\n\n if (legacyOpts.length || existingLabel || existingselect) {\n // empty all legacy slotted stuff\n let children = this.el.querySelectorAll('[slot=\"legacy\"]');\n if (children) children.forEach((n) => n.parentNode.removeChild(n));\n }\n\n this.watchValue = true;\n }\n\n if (\n mutations &&\n !Array.from(mutations[0].addedNodes).find(\n (node) => node.nodeName.toLowerCase() === 'nano-select-option'\n )\n )\n return;\n\n // find nano-select-options\n let nanoOpts = this.el.querySelectorAll('nano-select-option');\n\n if (nanoOpts && nanoOpts.length) {\n let options = [];\n nanoOpts.forEach((option: HTMLNanoSelectOptionElement) => {\n options.push({\n label: option.label || option.innerText,\n value: option.value,\n });\n if (!option.selected || !option.value) return;\n\n if (this.multiple) (this.value as Array<string>).push(option.value);\n else this.value = option.value;\n });\n this.options = options;\n }\n\n this.setAvailOpts();\n }\n\n /* Event handling */\n\n private onChange = (ev?: Event) => {\n if (!this.readonly && !this.disabled && ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n this.value = this.getNativeValue();\n };\n\n private onBlur = () => {\n if (this.multiple) {\n this.currLiIndex = -1;\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n }\n this.hasFocus = false;\n\n setTimeout(() => {\n if (this.validateOn === 'dirty' && !this.listOpen && !this.hasFocus)\n this.showInlineValidation();\n }, 20);\n this.nanoBlur.emit();\n };\n\n private onFocus = () => {\n if (this.multiple) {\n this.currLiIndex = -1;\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n this.openList();\n }\n\n this.hasFocus = true;\n this.nanoFocus.emit();\n };\n\n private clearSelectValue = (ev?: Event) => {\n if (this.clearSelect && !this.readonly && !this.disabled && ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n if (this.multiple) {\n this.value = [];\n let options = this.nativeSelect.querySelectorAll('option');\n if (options.length) options.forEach((n) => n.remove());\n this.currInsertIndex = -1;\n this.setAvailOpts();\n } else this.value = '';\n\n this.onChange();\n };\n\n private onClick = () => {\n this.setFocus();\n this.openList();\n };\n\n /* Multi event handlers */\n\n private onMultiInputBlur = () => {\n if (this.allowCustomValues) return;\n this.inputSearchVal = '';\n this.setAvailOpts();\n };\n\n private onDragStart = (ev: MouseEvent) => {\n let ele = ev.target as HTMLSpanElement;\n this.dragVal = ele.dataset.value;\n };\n\n private onDragEnd = (ev) => {\n this.dragVal = null;\n ev.preventDefault();\n };\n\n private onDragLeave = (ev: MouseEvent) => {\n let ele = ev.target as HTMLSpanElement;\n let spanVal: string =\n ele.dataset && ele.dataset.value ? ele.dataset.value : null;\n\n if (\n !spanVal ||\n this.dragVal === spanVal ||\n !this.value.includes(this.dragVal)\n ) {\n ev.preventDefault();\n return;\n }\n\n let to = this.value.indexOf(spanVal);\n let from = this.value.indexOf(this.dragVal);\n let tmpArr = this.value as Array<string>;\n let tmpVal = tmpArr[to];\n\n tmpArr[to] = tmpArr[from];\n tmpArr[from] = tmpVal;\n this.value = [...tmpArr];\n };\n\n private onMultiInput = (ev) => {\n this.inputSearchVal = ev.target.value;\n this.setAvailOpts();\n this.openList();\n this.nanoSearchChange.emit({ value: ev.target.value });\n };\n\n private getActiveOpt() {\n return this.multiList.querySelector('.has-focus') as HTMLLIElement;\n }\n\n private onOptFocus = (ev: FocusEvent) => {\n let activeEle = this.getActiveOpt();\n if (activeEle) activeEle.classList.remove('has-focus');\n (ev.target as HTMLElement).classList.add('has-focus');\n };\n\n private onHostClick = () => {\n setTimeout((_) => {\n if (!this.multiple || this.hasFocus) return;\n this.setFocus();\n }, 20);\n };\n\n private handleDocumentMouseDown = (ev: MouseEvent) => {\n const target = ev.target as HTMLElement;\n if (closestElement(this.el.tagName.toLowerCase(), target) !== this.el) {\n this.listOpen = false;\n this.onBlur();\n }\n };\n\n private handleDocumentKeyDown = (ev: KeyboardEvent) => {\n if (!this.multiple) return;\n\n if (!this.inputSearchVal) {\n let rm: HTMLSpanElement;\n\n switch (ev.key) {\n case 'Backspace':\n if (this.multiInput.previousElementSibling)\n rm = this.multiInput.previousElementSibling as HTMLSpanElement;\n else break;\n\n this.removeValue(rm.dataset.value || null);\n break;\n\n case 'Delete':\n if (this.multiInput.nextElementSibling)\n rm = this.multiInput.nextElementSibling as HTMLSpanElement;\n else break;\n\n this.removeValue(rm.dataset.value || null);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n if (!this.value.length) break;\n\n if (ev.key === 'ArrowLeft' && this.multiInput.previousSibling)\n this.currInsertIndex--;\n if (ev.key === 'ArrowRight' && this.multiInput.nextSibling)\n this.currInsertIndex++;\n\n setTimeout(() => {\n this.multiInput.focus();\n }, 20);\n ev.preventDefault();\n break;\n }\n }\n\n // navigated to component via keyboard. Open with down.\n if (this.hasFocus && !this.listOpen && ev.key === 'ArrowDown') {\n this.openList();\n this.currLiIndex = -1;\n }\n\n // Close when tabbing outside of element\n if (this.hasFocus && ev.key === 'Tab') {\n setTimeout(() => {\n if (\n document.activeElement &&\n closestElement(\n this.el.tagName.toLowerCase(),\n document.activeElement\n ) !== this.el\n ) {\n this.listOpen = false;\n this.onBlur();\n return;\n }\n });\n }\n\n // list open, navigate items with arrows\n if (this.listOpen) {\n const selectedItem = this.getActiveOpt();\n let testIndex = this.listItems.indexOf(selectedItem) || this.currLiIndex;\n\n switch (ev.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n ev.preventDefault();\n\n if (ev.key === 'ArrowDown') testIndex++;\n else if (ev.key === 'ArrowUp') testIndex--;\n\n if (testIndex < 0) {\n this.currLiIndex = 0;\n this.multiInput.focus();\n return;\n }\n\n let foundIndex = this.listItems[testIndex]\n ? testIndex\n : this.currLiIndex;\n setTimeout(() => {\n this.listItems[foundIndex].focus();\n this.currLiIndex = foundIndex;\n }, 20);\n return;\n case 'Enter':\n case ' ':\n if (this.listItems[this.currLiIndex]) {\n this.addValue(this.listItems[this.currLiIndex].dataset.value);\n ev.preventDefault();\n }\n return;\n case 'Escape':\n this.listOpen = false;\n return;\n }\n }\n\n if (this.currLiIndex > -1) ev.preventDefault();\n };\n\n /* Stencil Component lifecycle hooks */\n\n connectedCallback() {\n this.debounceChanged();\n\n if (!Build.isBrowser) return;\n\n this.el.dispatchEvent(\n new CustomEvent('nanoDidLoad', {\n detail: this.el,\n })\n );\n testLegacyStyle(this.el);\n }\n\n disconnectedCallback() {\n document.dispatchEvent(\n new CustomEvent('nanoDidUnload', {\n detail: this.el,\n })\n );\n\n if (!Build.isBrowser) return;\n if (this.mo) this.mo.disconnect();\n if (this.popover) this.popover.destroy();\n }\n\n componentDidLoad() {\n this.slotChangeObserver();\n if (this.multiple) this.setupMulti();\n this.customValidate();\n }\n\n componentWillLoad() {\n this.switchValue();\n this.processSlottedContent();\n this.onInit = false;\n }\n\n private renderLabel(labelId: string, position?: 'float') {\n let classes: CssClassMap = {};\n if (position === 'float') {\n classes = { 'placeholder-as-label': true };\n } else {\n classes = { label: true, 'visually-hide': this.hideLabel };\n }\n if (!this.label && !this.hasLabelSlot) return;\n\n return (\n <label class={classes} htmlFor={this.selectId} id={labelId}>\n {this.label && this.label}\n {!this.label && !!this.hasLabelSlot && <slot name=\"label\" />}\n </label>\n );\n }\n\n render() {\n const labelId = this.selectId + '-lbl';\n const moreId =\n this.showInlineError || this.hasHelperSlot\n ? this.selectId + '-moreId'\n : '';\n const listId = this.selectId + '-list';\n\n this.rtl = (this.el.ownerDocument as Document).dir === 'rtl';\n this.listItems = [];\n this.valueItems = [];\n\n if (\n this.placeholder &&\n (!this.options[0] || this.options[0]['label'] !== this.placeholder)\n ) {\n this.options.unshift({ label: this.placeholder, value: '' });\n }\n\n let optionMenu = this.listOpen;\n\n let valueMarkup;\n if (this.multiple) {\n let input = (\n <input\n class=\"multi-input\"\n id={this.selectId}\n ref={(input) => (this.multiInput = input)}\n disabled={this.disabled}\n autoFocus={this.autofocus}\n autocomplete=\"off\"\n onInput={this.onMultiInput}\n value={this.inputSearchVal}\n onTouchStart={this.onClick}\n onMouseDown={this.onClick}\n onFocus={this.onFocus}\n onBlur={this.onMultiInputBlur}\n placeholder={\n this.placeholder && !this.floatLabel && !this.value.length\n ? this.placeholder\n : ''\n }\n role={this.multiple ? 'combobox' : ''}\n aria-labelledby={labelId + ' ' + moreId}\n aria-controls={listId}\n aria-expanded={optionMenu ? 'true' : 'false'}\n aria-required={this.required ? 'true' : 'false'}\n aria-autocomplete=\"list\"\n />\n );\n\n if (!!this.value.length) {\n valueMarkup = (this.value as Array<string>).map((val, i) => {\n let label = this.options.find((opt) => {\n return opt['value'] ? opt['value'] === val : opt === val;\n });\n label = label && label['label'] ? label['label'] : val;\n\n let toReturn = (\n <span\n onDragStart={this.onDragStart}\n onDragLeave={this.onDragLeave}\n onDragEnd={this.onDragEnd}\n draggable\n data-value={val}\n ref={(span) => this.valueItems.push(span)}\n class=\"multi-value\"\n >\n <span>{label}</span>\n <button\n class=\"multi-value-remove\"\n type=\"button\"\n tabindex=\"-1\"\n onTouchEnd={() => {\n this.removeValue(val);\n }}\n onMouseUp={() => {\n this.removeValue(val);\n }}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n </button>\n </span>\n );\n\n if (i === 0 && this.currInsertIndex < 0) toReturn = [input, toReturn];\n else if (i === this.currInsertIndex) toReturn = [toReturn, input];\n return toReturn;\n });\n } else valueMarkup = input;\n }\n\n return (\n <Host\n type={this.multiple ? 'select-multiple' : 'select-one'}\n aria-disabled={this.disabled ? 'true' : null}\n class={{\n ...createColorClasses(this.color),\n 'has-value': !!this.value.length || !!this.inputSearchVal.length,\n 'has-focus': this.hasFocus,\n 'is-invalid': this.invalid,\n 'has-label': this.label !== null && !this.floatLabel,\n 'has-float-label': this.label !== null && this.floatLabel,\n rtl: this.rtl,\n 'has-multiple': this.multiple,\n 'multi-list-open': this.listOpen,\n 'has-clr-btn': this.clearSelect,\n masked: this.mask,\n legacy: this.isLegacy,\n }}\n onClick={this.onHostClick}\n >\n {!this.floatLabel && this.renderLabel(labelId)}\n <div class=\"select\" ref={(div) => (this.selectWrap = div)}>\n {this.floatLabel && this.renderLabel(labelId, 'float')}\n <div\n class={{\n 'native-select-wrap': true,\n 'native-select-wrap--multiple': this.multiple,\n }}\n >\n {!this.multiple && this.mask && (\n <div class=\"select-mask\">\n {this.getLabel(this.value as string)}\n </div>\n )}\n {this.multiple && [\n <div class=\"multi-wrap\">{valueMarkup}</div>,\n <ul\n role=\"listbox\"\n ref={(ul) => (this.multiList = ul)}\n aria-multiselectable=\"true\"\n aria-required={this.required}\n aria-expanded={optionMenu ? 'true' : 'false'}\n aria-hidden={!optionMenu}\n hidden={!optionMenu}\n id={listId}\n class={{\n 'multi-select-box': true,\n 'multi-select-box--open': optionMenu,\n }}\n >\n {this.allowCustomValues && this.inputSearchVal.length > 0 && (\n <li\n data-value={this.inputSearchVal}\n role=\"option\"\n tabindex=\"-1\"\n ref={(li) => this.listItems.push(li)}\n onMouseDown={() => {\n this.addValue(this.inputSearchVal);\n }}\n onFocus={this.onOptFocus}\n >\n Add {this.inputSearchVal}\n </li>\n )}\n {this.availOpts.map((option) => {\n let optval, label;\n if (option['value']) {\n optval = option['value'];\n label = option['label'] || option['value'];\n } else if (typeof option === 'string') {\n optval = option;\n label = optval;\n }\n if (!optval) return;\n return (\n <li\n role=\"option\"\n key={optval}\n data-value={optval}\n ref={(li) => this.listItems.push(li)}\n tabindex=\"-1\"\n aria-selected={this.isSelected(optval) ? 'true' : 'false'}\n onMouseDown={() => {\n this.addValue(optval);\n }}\n onFocus={this.onOptFocus}\n >\n {label}\n </li>\n );\n })}\n </ul>,\n <select\n id={this.selectId + '-hidden'}\n class=\"native-select\"\n ref={(select) => (this.nativeSelect = select)}\n aria-labelledby={labelId + ' ' + moreId}\n disabled={this.disabled}\n form={this.form}\n multiple={this.multiple}\n name={this.name}\n required={this.required}\n onInvalid={this.handleInvalid}\n >\n {(this.value as Array<string>).map((val) => {\n return (\n <option value={val} selected>\n {val}\n </option>\n );\n })}\n </select>,\n ]}\n {!this.multiple && (\n <select\n id={this.selectId}\n class=\"native-select\"\n ref={(select) => (this.nativeSelect = select)}\n aria-labelledby={labelId + ' ' + moreId}\n disabled={this.disabled}\n form={this.form}\n autoFocus={this.autofocus}\n multiple={this.multiple}\n name={this.name}\n required={this.required}\n size={this.size}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onInvalid={this.handleInvalid}\n onChange={this.onChange}\n >\n {this.options.map((option, i) => {\n if (option['value'] || option['label'])\n return (\n <option\n key={option['label'] + i}\n label={option['label']}\n value={option['value']}\n selected={\n option['value'] === this.value ||\n (!this.value && !option['value'])\n }\n disabled={!option['value'] && this.required}\n >\n {option['label'] ? option['label'] : option['value']}\n </option>\n );\n else\n return (\n <option\n key={(option as string) + i}\n value={option as string}\n selected={option === this.value}\n >\n {option}\n </option>\n );\n })}\n <slot name=\"legacy\" />\n </select>\n )}\n {this.clearSelect && !this.readonly && !this.disabled && (\n <button\n type=\"button\"\n class=\"select-clear-icon\"\n tabindex=\"-1\"\n onTouchEnd={this.clearSelectValue}\n onMouseUp={this.clearSelectValue}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n </button>\n )}\n <div\n onTouchEnd={this.onClick}\n onMouseUp={this.onClick}\n class=\"select-down-icon\"\n >\n {this.hasIconSlot ? (\n <slot name=\"icon\" />\n ) : (\n <nano-icon name=\"regular/chevron-down\"></nano-icon>\n )}\n </div>\n </div>\n </div>\n {(this.showInlineError || this.hasHelperSlot) && (\n <div class=\"more\" id={moreId}>\n {!!this.showInlineError ? (\n <div class=\"error\">{this.errorMessage}</div>\n ) : (\n ''\n )}\n <div class=\"helper\">\n <slot name=\"helper\" />\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n\nlet selectIds = 0;\n"],"version":3}
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
7
7
|
|
8
|
-
const index = require('./index-
|
8
|
+
const index = require('./index-cb62df44.js');
|
9
9
|
const index$1 = require('./index-117f36a4.js');
|
10
10
|
const theme = require('./theme-7fa08a2b.js');
|
11
11
|
const throttle = require('./throttle-3c97f7c6.js');
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
7
7
|
|
8
|
-
const index = require('./index-
|
8
|
+
const index = require('./index-cb62df44.js');
|
9
9
|
const focusVisible = require('./focus-visible-569511f0.js');
|
10
10
|
const index$1 = require('./index-117f36a4.js');
|
11
11
|
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
7
7
|
|
8
|
-
const index = require('./index-
|
8
|
+
const index = require('./index-cb62df44.js');
|
9
9
|
const ResizeObserver_es = require('./ResizeObserver.es-09b81a1b.js');
|
10
10
|
const throttle = require('./throttle-3c97f7c6.js');
|
11
11
|
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
7
7
|
|
8
|
-
const index = require('./index-
|
8
|
+
const index = require('./index-cb62df44.js');
|
9
9
|
|
10
10
|
const selectOptionCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{display:none !important}:host *{display:none !important}";
|
11
11
|
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
7
7
|
|
8
|
-
const index = require('./index-
|
8
|
+
const index = require('./index-cb62df44.js');
|
9
9
|
|
10
10
|
const slideCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%;min-height:100%;font-size:18px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-webkit-transition:opacity 0.2s;transition:opacity 0.2s;opacity:0}:host([ready]){opacity:1}";
|
11
11
|
|