@dubai-design-system/components-js 5.0.3 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +233 -1
- package/MIGRATION.md +423 -0
- package/dist/cjs/dda-accordion.cjs.entry.js +12 -7
- package/dist/cjs/dda-alert.cjs.entry.js +20 -3
- package/dist/cjs/dda-attach-file.cjs.entry.js +24 -8
- package/dist/cjs/dda-avatar.cjs.entry.js +23 -12
- package/dist/cjs/dda-banner.cjs.entry.js +14 -5
- package/dist/cjs/dda-breadcrumb.cjs.entry.js +22 -10
- package/dist/cjs/dda-button.cjs.entry.js +16 -9
- package/dist/cjs/dda-checkbox.cjs.entry.js +5 -4
- package/dist/cjs/dda-chip.cjs.entry.js +8 -3
- package/dist/cjs/dda-credit-card.cjs.entry.js +5 -3
- package/dist/cjs/dda-creditcard-field.cjs.entry.js +26 -8
- package/dist/cjs/dda-dropdown.cjs.entry.js +31 -5
- package/dist/cjs/dda-footer.cjs.entry.js +9 -3
- package/dist/cjs/dda-header.cjs.entry.js +88 -8
- package/dist/cjs/dda-home-banner.cjs.entry.js +11 -5
- package/dist/cjs/dda-horizontal-stepper.cjs.entry.js +22 -5
- package/dist/cjs/dda-input.cjs.entry.js +17 -10
- package/dist/cjs/dda-link-button_2.cjs.entry.js +21 -13
- package/dist/cjs/dda-number-field.cjs.entry.js +20 -8
- package/dist/cjs/dda-pagination.cjs.entry.js +21 -11
- package/dist/cjs/dda-phonefield.cjs.entry.js +27 -9
- package/dist/cjs/dda-progressbar.cjs.entry.js +8 -3
- package/dist/cjs/dda-range-slider.cjs.entry.js +15 -3
- package/dist/cjs/dda-search-input.cjs.entry.js +27 -12
- package/dist/cjs/dda-segmented-tabs.cjs.entry.js +54 -6
- package/dist/cjs/dda-select.cjs.entry.js +40 -8
- package/dist/cjs/dda-sticky-footer.cjs.entry.js +20 -3
- package/dist/cjs/dda-tabs.cjs.entry.js +10 -4
- package/dist/cjs/dda-textarea.cjs.entry.js +22 -12
- package/dist/cjs/dda-toggle.cjs.entry.js +5 -4
- package/dist/cjs/dda-tooltip.cjs.entry.js +6 -4
- package/dist/cjs/dda-ui-card.cjs.entry.js +19 -2
- package/dist/cjs/dda-vertical-stepper.cjs.entry.js +23 -3
- package/dist/cjs/dda.cjs.js +2 -2
- package/dist/cjs/index-Bgd2iAET.js +2116 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/unique-id-DahNGdQy.js +14 -0
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/dda-accordion/dda-accordion.js +16 -11
- package/dist/collection/components/dda-alert/dda-alert.js +74 -17
- package/dist/collection/components/dda-alert/dda-alert.stories.js +2 -8
- package/dist/collection/components/dda-attach-file/dda-attach-file.js +35 -19
- package/dist/collection/components/dda-attach-file/dda-attach-file.stories.js +0 -9
- package/dist/collection/components/dda-avatar/dda-avatar.js +53 -25
- package/dist/collection/components/dda-avatar/dda-avatar.stories.js +1 -1
- package/dist/collection/components/dda-banner/dda-banner.css +35 -0
- package/dist/collection/components/dda-banner/dda-banner.js +34 -5
- package/dist/collection/components/dda-breadcrumb/dda-breadcrumb.js +49 -12
- package/dist/collection/components/dda-button/dda-button.js +29 -22
- package/dist/collection/components/dda-checkbox/dda-checkbox.css +13 -0
- package/dist/collection/components/dda-checkbox/dda-checkbox.js +13 -12
- package/dist/collection/components/dda-checkbox/dda-checkbox.stories.js +0 -11
- package/dist/collection/components/dda-chip/dda-chip.js +34 -9
- package/dist/collection/components/dda-chip/dda-chip.stories.js +0 -11
- package/dist/collection/components/dda-credit-card/dda-credit-card.js +10 -8
- package/dist/collection/components/dda-creditcard-field/dda-creditcard-field.js +58 -23
- package/dist/collection/components/dda-creditcard-field/dda-creditcard-field.stories.js +1 -10
- package/dist/collection/components/dda-dropdown/dda-dropdown.js +90 -18
- package/dist/collection/components/dda-dropdown/dda-dropdown.stories.js +0 -4
- package/dist/collection/components/dda-footer/dda-footer.js +57 -10
- package/dist/collection/components/dda-footer/dda-footer.stories.js +5 -4
- package/dist/collection/components/dda-header/dda-header.css +11 -0
- package/dist/collection/components/dda-header/dda-header.js +232 -37
- package/dist/collection/components/dda-header/dda-header.stories.js +12 -21
- package/dist/collection/components/dda-home-banner/dda-home-banner.js +8 -2
- package/dist/collection/components/dda-home-banner/home-banner.css +23 -2
- package/dist/collection/components/dda-input/dda-input.js +47 -21
- package/dist/collection/components/dda-input/dda-input.stories.js +0 -13
- package/dist/collection/components/dda-link-button/dda-link-button.js +30 -23
- package/dist/collection/components/dda-number-field/dda-number-field.js +54 -22
- package/dist/collection/components/dda-number-field/dda-number-field.stories.js +0 -9
- package/dist/collection/components/dda-pagination/dda-pagination.js +95 -28
- package/dist/collection/components/dda-pagination/dda-pagination.stories.js +24 -24
- package/dist/collection/components/dda-phonefield/dda-phonefield.js +62 -24
- package/dist/collection/components/dda-phonefield/dda-phonefield.stories.js +0 -13
- package/dist/collection/components/dda-progressbar/dda-progressbar.js +13 -8
- package/dist/collection/components/dda-radiobutton/dda-radiobutton.css +156 -25
- package/dist/collection/components/dda-radiobutton/dda-radiobutton.js +13 -12
- package/dist/collection/components/dda-radiobutton/dda-radiobutton.stories.js +5 -16
- package/dist/collection/components/dda-range-slider/dda-range-slider.js +29 -17
- package/dist/collection/components/dda-search-input/dda-search-input.js +61 -26
- package/dist/collection/components/dda-search-input/dda-search-input.stories.js +0 -9
- package/dist/collection/components/dda-select/dda-select.js +78 -20
- package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.js +80 -43
- package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.stories.js +1 -1
- package/dist/collection/components/dda-tabs/dda-tabs.js +21 -15
- package/dist/collection/components/dda-tabs/dda-tabs.stories.js +3 -10
- package/dist/collection/components/dda-textarea/dda-textarea.js +33 -23
- package/dist/collection/components/dda-textarea/dda-textarea.stories.js +0 -9
- package/dist/collection/components/dda-toggle/dda-toggle.css +9 -0
- package/dist/collection/components/dda-toggle/dda-toggle.js +47 -8
- package/dist/collection/components/dda-toggle/dda-toggle.stories.js +10 -22
- package/dist/collection/components/dda-tooltip/dda-tooltip.js +9 -7
- package/dist/collection/components/dda-ui-card/dda-ui-card.js +55 -13
- package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.js +79 -11
- package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.css +4 -1
- package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.js +24 -6
- package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.stories.js +2 -2
- package/dist/collection/components/stepper/dda-vertical-stepper/dda-vertical-stepper.js +49 -6
- package/dist/collection/components/stepper/dda-vertical-stepper/dda-vertical-stepper.stories.js +2 -2
- package/dist/collection/global/global.css +152 -25
- package/dist/collection/global/input.css +56 -2
- package/dist/collection/storybook/component-api.js +15 -0
- package/dist/collection/utils/placeholder-color.js +89 -0
- package/dist/collection/utils/unique-id.js +10 -0
- package/dist/components/dda-accordion.js +1 -1
- package/dist/components/dda-alert.js +1 -1
- package/dist/components/dda-attach-file.js +1 -1
- package/dist/components/dda-avatar.js +1 -1
- package/dist/components/dda-banner.js +1 -1
- package/dist/components/dda-breadcrumb.js +1 -1
- package/dist/components/dda-button.js +1 -1
- package/dist/components/dda-checkbox.js +1 -1
- package/dist/components/dda-chip.js +1 -1
- package/dist/components/dda-credit-card.js +1 -1
- package/dist/components/dda-creditcard-field.js +1 -1
- package/dist/components/dda-dropdown.js +1 -1
- package/dist/components/dda-footer.js +1 -1
- package/dist/components/dda-header.js +1 -1
- package/dist/components/dda-home-banner.js +1 -1
- package/dist/components/dda-horizontal-stepper.js +1 -1
- package/dist/components/dda-input.js +1 -1
- package/dist/components/dda-link-button.js +1 -1
- package/dist/components/dda-number-field.js +1 -1
- package/dist/components/dda-pagination.js +1 -1
- package/dist/components/dda-phonefield.js +1 -1
- package/dist/components/dda-progressbar.js +1 -1
- package/dist/components/dda-radiobutton.js +1 -1
- package/dist/components/dda-range-slider.js +1 -1
- package/dist/components/dda-search-input.js +1 -1
- package/dist/components/dda-segmented-tabs.js +1 -1
- package/dist/components/dda-select.js +1 -1
- package/dist/components/dda-sticky-footer.js +1 -1
- package/dist/components/dda-tabs.js +1 -1
- package/dist/components/dda-textarea.js +1 -1
- package/dist/components/dda-toggle.js +1 -1
- package/dist/components/dda-tooltip.js +1 -1
- package/dist/components/dda-ui-card.js +1 -1
- package/dist/components/dda-vertical-stepper.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-B-I003EB.js +1 -0
- package/dist/components/p-Bc2V1U4_.js +1 -0
- package/dist/components/p-Bzqf-PpF.js +1 -0
- package/dist/components/p-D-CHT-as.js +1 -0
- package/dist/components/p-DJw8qV7U.js +1 -0
- package/dist/components/p-DpwQ9sGp.js +1 -0
- package/dist/dda/dda.css +2 -2
- package/dist/dda/dda.esm.js +1 -1
- package/dist/dda/p-03400387.entry.js +1 -0
- package/dist/dda/p-04bcda8a.entry.js +1 -0
- package/dist/dda/p-18a3d7b1.entry.js +1 -0
- package/dist/dda/p-1f7b8486.entry.js +1 -0
- package/dist/dda/p-3024288f.entry.js +1 -0
- package/dist/dda/p-41b8ed7d.entry.js +1 -0
- package/dist/dda/p-56f60336.entry.js +1 -0
- package/dist/dda/p-65776d80.entry.js +1 -0
- package/dist/dda/p-73611084.entry.js +1 -0
- package/dist/dda/p-7ad8cde9.entry.js +1 -0
- package/dist/dda/p-8134e59d.entry.js +1 -0
- package/dist/dda/p-8494fd9e.entry.js +1 -0
- package/dist/dda/p-876d55b2.entry.js +1 -0
- package/dist/dda/p-88d884a8.entry.js +1 -0
- package/dist/dda/p-8b25ae94.entry.js +1 -0
- package/dist/dda/p-8f376986.entry.js +1 -0
- package/dist/dda/p-90019b80.entry.js +1 -0
- package/dist/dda/p-92fa4777.entry.js +1 -0
- package/dist/dda/p-97431faf.entry.js +1 -0
- package/dist/dda/p-B-I003EB.js +1 -0
- package/dist/dda/p-D6L6zgH9.js +2 -0
- package/dist/dda/p-a5456de2.entry.js +1 -0
- package/dist/dda/p-aa7b4c13.entry.js +1 -0
- package/dist/dda/p-ad40eb27.entry.js +1 -0
- package/dist/dda/p-c055f0d2.entry.js +1 -0
- package/dist/dda/p-c42c8733.entry.js +1 -0
- package/dist/dda/p-c77282be.entry.js +1 -0
- package/dist/dda/p-ca64abe6.entry.js +1 -0
- package/dist/dda/p-ceca8088.entry.js +1 -0
- package/dist/dda/p-d6786b43.entry.js +1 -0
- package/dist/dda/p-e2113e42.entry.js +1 -0
- package/dist/dda/p-ee862207.entry.js +1 -0
- package/dist/dda/p-ef38e28b.entry.js +1 -0
- package/dist/dda/p-f43fb910.entry.js +1 -0
- package/dist/dda/p-fb4db977.entry.js +1 -0
- package/dist/esm/dda-accordion.entry.js +12 -7
- package/dist/esm/dda-alert.entry.js +20 -3
- package/dist/esm/dda-attach-file.entry.js +24 -8
- package/dist/esm/dda-avatar.entry.js +23 -12
- package/dist/esm/dda-banner.entry.js +14 -5
- package/dist/esm/dda-breadcrumb.entry.js +22 -10
- package/dist/esm/dda-button.entry.js +16 -9
- package/dist/esm/dda-checkbox.entry.js +5 -4
- package/dist/esm/dda-chip.entry.js +8 -3
- package/dist/esm/dda-credit-card.entry.js +5 -3
- package/dist/esm/dda-creditcard-field.entry.js +26 -8
- package/dist/esm/dda-dropdown.entry.js +31 -5
- package/dist/esm/dda-footer.entry.js +9 -3
- package/dist/esm/dda-header.entry.js +88 -8
- package/dist/esm/dda-home-banner.entry.js +11 -5
- package/dist/esm/dda-horizontal-stepper.entry.js +22 -5
- package/dist/esm/dda-input.entry.js +17 -10
- package/dist/esm/dda-link-button_2.entry.js +21 -13
- package/dist/esm/dda-number-field.entry.js +20 -8
- package/dist/esm/dda-pagination.entry.js +21 -11
- package/dist/esm/dda-phonefield.entry.js +27 -9
- package/dist/esm/dda-progressbar.entry.js +8 -3
- package/dist/esm/dda-range-slider.entry.js +15 -3
- package/dist/esm/dda-search-input.entry.js +27 -12
- package/dist/esm/dda-segmented-tabs.entry.js +54 -6
- package/dist/esm/dda-select.entry.js +40 -8
- package/dist/esm/dda-sticky-footer.entry.js +20 -3
- package/dist/esm/dda-tabs.entry.js +10 -4
- package/dist/esm/dda-textarea.entry.js +22 -12
- package/dist/esm/dda-toggle.entry.js +5 -4
- package/dist/esm/dda-tooltip.entry.js +6 -4
- package/dist/esm/dda-ui-card.entry.js +19 -2
- package/dist/esm/dda-vertical-stepper.entry.js +23 -3
- package/dist/esm/dda.js +3 -3
- package/dist/esm/index-D6L6zgH9.js +2106 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/unique-id-B-I003EB.js +12 -0
- package/dist/types/components/dda-accordion/dda-accordion.d.ts +6 -0
- package/dist/types/components/dda-alert/dda-alert.d.ts +21 -0
- package/dist/types/components/dda-attach-file/dda-attach-file.d.ts +17 -0
- package/dist/types/components/dda-attach-file/dda-attach-file.stories.d.ts +0 -4
- package/dist/types/components/dda-avatar/dda-avatar.d.ts +20 -0
- package/dist/types/components/dda-banner/dda-banner.d.ts +5 -0
- package/dist/types/components/dda-breadcrumb/dda-breadcrumb.d.ts +12 -6
- package/dist/types/components/dda-button/dda-button.d.ts +15 -4
- package/dist/types/components/dda-checkbox/dda-checkbox.d.ts +11 -0
- package/dist/types/components/dda-checkbox/dda-checkbox.stories.d.ts +0 -10
- package/dist/types/components/dda-chip/dda-chip.d.ts +10 -0
- package/dist/types/components/dda-chip/dda-chip.stories.d.ts +0 -6
- package/dist/types/components/dda-credit-card/dda-credit-card.d.ts +7 -0
- package/dist/types/components/dda-creditcard-field/dda-creditcard-field.d.ts +24 -0
- package/dist/types/components/dda-creditcard-field/dda-creditcard-field.stories.d.ts +0 -6
- package/dist/types/components/dda-dropdown/dda-dropdown.d.ts +25 -0
- package/dist/types/components/dda-dropdown/dda-dropdown.stories.d.ts +0 -4
- package/dist/types/components/dda-footer/dda-footer.d.ts +13 -0
- package/dist/types/components/dda-header/dda-header.d.ts +62 -0
- package/dist/types/components/dda-header/dda-header.stories.d.ts +6 -0
- package/dist/types/components/dda-home-banner/dda-home-banner.d.ts +1 -0
- package/dist/types/components/dda-input/dda-input.d.ts +18 -0
- package/dist/types/components/dda-input/dda-input.stories.d.ts +0 -6
- package/dist/types/components/dda-link-button/dda-link-button.d.ts +14 -3
- package/dist/types/components/dda-number-field/dda-number-field.d.ts +21 -0
- package/dist/types/components/dda-number-field/dda-number-field.stories.d.ts +0 -6
- package/dist/types/components/dda-pagination/dda-pagination.d.ts +26 -0
- package/dist/types/components/dda-phonefield/dda-phonefield.d.ts +21 -0
- package/dist/types/components/dda-phonefield/dda-phonefield.stories.d.ts +0 -6
- package/dist/types/components/dda-progressbar/dda-progressbar.d.ts +7 -0
- package/dist/types/components/dda-radiobutton/dda-radiobutton.d.ts +11 -0
- package/dist/types/components/dda-radiobutton/dda-radiobutton.stories.d.ts +5 -15
- package/dist/types/components/dda-range-slider/dda-range-slider.d.ts +16 -0
- package/dist/types/components/dda-search-input/dda-search-input.d.ts +21 -0
- package/dist/types/components/dda-search-input/dda-search-input.stories.d.ts +0 -6
- package/dist/types/components/dda-select/dda-select.d.ts +23 -0
- package/dist/types/components/dda-sticky-footer/dda-sticky-footer.d.ts +46 -3
- package/dist/types/components/dda-tabs/dda-tabs.d.ts +12 -1
- package/dist/types/components/dda-tabs/dda-tabs.stories.d.ts +0 -4
- package/dist/types/components/dda-textarea/dda-textarea.d.ts +16 -0
- package/dist/types/components/dda-textarea/dda-textarea.stories.d.ts +0 -6
- package/dist/types/components/dda-toggle/dda-toggle.d.ts +11 -0
- package/dist/types/components/dda-toggle/dda-toggle.stories.d.ts +2 -12
- package/dist/types/components/dda-tooltip/dda-tooltip.d.ts +5 -0
- package/dist/types/components/dda-ui-card/dda-ui-card.d.ts +13 -1
- package/dist/types/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.d.ts +19 -2
- package/dist/types/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.d.ts +6 -0
- package/dist/types/components/stepper/dda-vertical-stepper/dda-vertical-stepper.d.ts +8 -0
- package/dist/types/components.d.ts +2373 -38
- package/dist/types/utils/placeholder-color.d.ts +10 -0
- package/dist/types/utils/unique-id.d.ts +6 -0
- package/package.json +4 -3
- package/readme.md +6 -0
- package/dist/cjs/index-CDUC0Pdj.js +0 -1986
- package/dist/components/p-9UeqjDnY.js +0 -1
- package/dist/components/p-CrTEb7xH.js +0 -1
- package/dist/components/p-DldlmGnP.js +0 -1
- package/dist/components/p-NvTw9Mx1.js +0 -1
- package/dist/components/p-i15-_er0.js +0 -1
- package/dist/dda/p-016e4090.entry.js +0 -1
- package/dist/dda/p-0229b303.entry.js +0 -1
- package/dist/dda/p-05a6f90d.entry.js +0 -1
- package/dist/dda/p-1c9a6035.entry.js +0 -1
- package/dist/dda/p-2c313105.entry.js +0 -1
- package/dist/dda/p-2cec7be6.entry.js +0 -1
- package/dist/dda/p-2f4ace4c.entry.js +0 -1
- package/dist/dda/p-360a0577.entry.js +0 -1
- package/dist/dda/p-3e49128d.entry.js +0 -1
- package/dist/dda/p-3fa27728.entry.js +0 -1
- package/dist/dda/p-43e1c12f.entry.js +0 -1
- package/dist/dda/p-4428417d.entry.js +0 -1
- package/dist/dda/p-44ce832e.entry.js +0 -1
- package/dist/dda/p-560a3f0c.entry.js +0 -1
- package/dist/dda/p-5712bbd9.entry.js +0 -1
- package/dist/dda/p-626d7e7b.entry.js +0 -1
- package/dist/dda/p-68008c64.entry.js +0 -1
- package/dist/dda/p-6f3d9f78.entry.js +0 -1
- package/dist/dda/p-79db1218.entry.js +0 -1
- package/dist/dda/p-84911fab.entry.js +0 -1
- package/dist/dda/p-90d9648b.entry.js +0 -1
- package/dist/dda/p-91040abe.entry.js +0 -1
- package/dist/dda/p-Cq6A4mXg.js +0 -2
- package/dist/dda/p-a1421a54.entry.js +0 -1
- package/dist/dda/p-a22b1c56.entry.js +0 -1
- package/dist/dda/p-aa0e9035.entry.js +0 -1
- package/dist/dda/p-b2981646.entry.js +0 -1
- package/dist/dda/p-c1f45887.entry.js +0 -1
- package/dist/dda/p-c50e1141.entry.js +0 -1
- package/dist/dda/p-d8a9cab1.entry.js +0 -1
- package/dist/dda/p-dd966009.entry.js +0 -1
- package/dist/dda/p-ed099201.entry.js +0 -1
- package/dist/dda/p-f4bd2b2e.entry.js +0 -1
- package/dist/dda/p-fc30c60e.entry.js +0 -1
- package/dist/esm/index-Cq6A4mXg.js +0 -1976
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
|
+
import { uniqueId } from "../../utils/unique-id";
|
|
2
3
|
export class Ddaselect {
|
|
3
4
|
constructor() {
|
|
5
|
+
/** Disables the select: the list does not open and options cannot be picked. */
|
|
4
6
|
this.disabled = false;
|
|
5
7
|
this.is_open = false;
|
|
6
8
|
//@Prop() validationtype?: string;
|
|
9
|
+
/** Extra CSS classes added to the field container. */
|
|
7
10
|
this.custom_class = '';
|
|
8
11
|
// F-014: focus target requested by a keyboard interaction (ArrowDown/Up
|
|
9
12
|
// from the trigger) that fires before the listbox exists in the DOM.
|
|
10
13
|
// Consumed by componentDidRender, then cleared.
|
|
11
14
|
this.pendingFocusIndex = null;
|
|
15
|
+
// Fallback id so the label, list and messages are wired when no button_id
|
|
16
|
+
// is passed (otherwise ids became "undefined-listbox" and the label had for="").
|
|
17
|
+
this.fallbackId = uniqueId('dda-select');
|
|
12
18
|
this.onTriggerKeyDown = (event) => {
|
|
13
19
|
if (this.disabled) {
|
|
14
20
|
return;
|
|
@@ -68,15 +74,21 @@ export class Ddaselect {
|
|
|
68
74
|
}
|
|
69
75
|
};
|
|
70
76
|
}
|
|
77
|
+
get triggerId() {
|
|
78
|
+
return this.button_id || this.fallbackId;
|
|
79
|
+
}
|
|
80
|
+
get labelId() {
|
|
81
|
+
return `${this.triggerId}-label`;
|
|
82
|
+
}
|
|
71
83
|
get listboxId() {
|
|
72
|
-
return `${this.
|
|
84
|
+
return `${this.triggerId}-listbox`;
|
|
73
85
|
}
|
|
74
|
-
// F-016: same
|
|
86
|
+
// F-016: same trigger-id-derived uniqueness pattern as listboxId above.
|
|
75
87
|
get helperId() {
|
|
76
|
-
return
|
|
88
|
+
return `${this.triggerId}-helper`;
|
|
77
89
|
}
|
|
78
90
|
get errorId() {
|
|
79
|
-
return
|
|
91
|
+
return `${this.triggerId}-error`;
|
|
80
92
|
}
|
|
81
93
|
get describedBy() {
|
|
82
94
|
const ids = [
|
|
@@ -122,10 +134,28 @@ export class Ddaselect {
|
|
|
122
134
|
trigger.focus();
|
|
123
135
|
}
|
|
124
136
|
}
|
|
137
|
+
// The label has no `for`: label[for] on a <button> replaces the button text
|
|
138
|
+
// as its name, so the selected value was not announced. A click on the label
|
|
139
|
+
// still acts on the trigger, like a native label click did.
|
|
140
|
+
onHostClick(event) {
|
|
141
|
+
const target = event.target;
|
|
142
|
+
if (!target || typeof target.closest !== 'function' || !target.closest('label.dda-input-label')) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const trigger = this.el.querySelector('.dda-select-header');
|
|
146
|
+
if (trigger) {
|
|
147
|
+
trigger.focus();
|
|
148
|
+
}
|
|
149
|
+
this.toggleSelect();
|
|
150
|
+
}
|
|
125
151
|
selectOption(option) {
|
|
126
152
|
if (!this.disabled) {
|
|
153
|
+
const changed = this.selected !== option;
|
|
127
154
|
this.selected = option;
|
|
128
155
|
this.closeAndReturnFocus();
|
|
156
|
+
if (changed) {
|
|
157
|
+
this.selectionChange.emit({ value: option });
|
|
158
|
+
}
|
|
129
159
|
}
|
|
130
160
|
}
|
|
131
161
|
componentDidRender() {
|
|
@@ -136,7 +166,8 @@ export class Ddaselect {
|
|
|
136
166
|
}
|
|
137
167
|
}
|
|
138
168
|
render() {
|
|
139
|
-
|
|
169
|
+
const id = this.triggerId;
|
|
170
|
+
return (h(Host, { key: '35fead649fe2206feb1749d1accbdddb2691d09d' }, h("div", { key: 'd41d81d1944c32c379f9289efd276bccf5f25a1a', class: `dda-input-container ${this.custom_class} ${this.component_mode} ${this.disabled ? 'dda-input-disabled' : ''} ${this.is_open ? 'show' : 'hide'} dda-input-size-${this.size} dda-validation-${this.error} ` }, this.label && h("label", { key: '8bd67c36aab4be42289b73f0f95466c0cc3da1f3', id: this.labelId, class: "dda-input-label" }, this.label), h("div", { key: 'a99b28ef07e8fa4577e12e964eaa4a55c73ced8b', class: "dda-dropdown-container" }, h("button", { key: 'a03cc3709395e13290d78fcbc497d56953fa16ae', name: this.toggle_button_name, "aria-label": this.aria_label, "aria-labelledby": this.label && !this.aria_label ? `${this.labelId} ${id}` : undefined, id: id, type: "button", class: "dda-input-field dda-select-header", "aria-haspopup": "listbox", "aria-expanded": this.is_open ? 'true' : 'false', "aria-controls": this.is_open ? this.listboxId : undefined, "aria-describedby": this.describedBy, "aria-invalid": this.error_message ? 'true' : undefined, onClick: () => { this.toggleSelect(); }, onKeyDown: this.onTriggerKeyDown }, this.selected || 'Select an option', h("i", { key: '6764cc54e1b60305b9a0f3bf528ec6d74dd8433d', class: `material-icons`, "aria-hidden": "true" }, this.is_open ? 'keyboard_arrow_up' : 'keyboard_arrow_down')), this.is_open && (h("div", { key: '418cae53a5351d92e5b55186d58b97bd62dc8bcb', id: this.listboxId, role: "listbox", "aria-label": this.aria_label || this.label, class: "dda-input-dropdown-list dda-select-list" }, this.parsedOptions.length > 0 ? (this.parsedOptions.map((option, index) => (h("button", { name: this.option_select_button_name, type: "button", role: "option", "aria-selected": this.selected === option ? 'true' : 'false', tabIndex: index === this.initialOptionIndex() ? 0 : -1, class: `dda-input-dropdown-item ${this.selected === option ? 'selected' : ''}`, onClick: () => this.selectOption(option), onKeyDown: (event) => this.onOptionKeyDown(event, option) }, option)))) : (h("div", { class: "dda-input-dropdown-item" }, "No options available"))))), this.helper_text && h("span", { key: '064eb06fc8dea8656c753aa4372be0a797241a22', id: this.helperId, class: "dda-helper-text" }, this.helper_text), this.error_message && h("span", { key: 'fbe4f80920eac2f18c99177f2425b443f497e569', id: this.errorId, class: "dda-error-message" }, this.error_message))));
|
|
140
171
|
}
|
|
141
172
|
static get is() { return "dda-select"; }
|
|
142
173
|
static get originalStyleUrls() {
|
|
@@ -163,7 +194,7 @@ export class Ddaselect {
|
|
|
163
194
|
"optional": false,
|
|
164
195
|
"docs": {
|
|
165
196
|
"tags": [],
|
|
166
|
-
"text": ""
|
|
197
|
+
"text": "Label shown above the field. The trigger button is named by the label and its current text."
|
|
167
198
|
},
|
|
168
199
|
"getter": false,
|
|
169
200
|
"setter": false,
|
|
@@ -182,7 +213,7 @@ export class Ddaselect {
|
|
|
182
213
|
"optional": false,
|
|
183
214
|
"docs": {
|
|
184
215
|
"tags": [],
|
|
185
|
-
"text": ""
|
|
216
|
+
"text": "Options as a JSON array string, e.g. `'[\"Dubai\",\"Abu Dhabi\",\"Sharjah\"]'`. Invalid JSON shows \"No options available\"."
|
|
186
217
|
},
|
|
187
218
|
"getter": false,
|
|
188
219
|
"setter": false,
|
|
@@ -191,7 +222,7 @@ export class Ddaselect {
|
|
|
191
222
|
},
|
|
192
223
|
"selected": {
|
|
193
224
|
"type": "string",
|
|
194
|
-
"mutable":
|
|
225
|
+
"mutable": true,
|
|
195
226
|
"complexType": {
|
|
196
227
|
"original": "string",
|
|
197
228
|
"resolved": "string",
|
|
@@ -201,7 +232,7 @@ export class Ddaselect {
|
|
|
201
232
|
"optional": false,
|
|
202
233
|
"docs": {
|
|
203
234
|
"tags": [],
|
|
204
|
-
"text": ""
|
|
235
|
+
"text": "The selected option. Must match an entry in `options`. The trigger shows \"Select an option\" when it is empty. Updated when the user picks an option. Mutable: the component assigns it."
|
|
205
236
|
},
|
|
206
237
|
"getter": false,
|
|
207
238
|
"setter": false,
|
|
@@ -220,7 +251,7 @@ export class Ddaselect {
|
|
|
220
251
|
"optional": false,
|
|
221
252
|
"docs": {
|
|
222
253
|
"tags": [],
|
|
223
|
-
"text": ""
|
|
254
|
+
"text": "Disables the select: the list does not open and options cannot be picked."
|
|
224
255
|
},
|
|
225
256
|
"getter": false,
|
|
226
257
|
"setter": false,
|
|
@@ -240,7 +271,7 @@ export class Ddaselect {
|
|
|
240
271
|
"optional": true,
|
|
241
272
|
"docs": {
|
|
242
273
|
"tags": [],
|
|
243
|
-
"text": ""
|
|
274
|
+
"text": "Validation state. `error` shows the error styling."
|
|
244
275
|
},
|
|
245
276
|
"getter": false,
|
|
246
277
|
"setter": false,
|
|
@@ -259,7 +290,7 @@ export class Ddaselect {
|
|
|
259
290
|
"optional": false,
|
|
260
291
|
"docs": {
|
|
261
292
|
"tags": [],
|
|
262
|
-
"text": ""
|
|
293
|
+
"text": "Error text shown under the field. Also sets `aria-invalid` on the trigger."
|
|
263
294
|
},
|
|
264
295
|
"getter": false,
|
|
265
296
|
"setter": false,
|
|
@@ -278,7 +309,7 @@ export class Ddaselect {
|
|
|
278
309
|
"optional": false,
|
|
279
310
|
"docs": {
|
|
280
311
|
"tags": [],
|
|
281
|
-
"text": ""
|
|
312
|
+
"text": "Helper text shown under the field."
|
|
282
313
|
},
|
|
283
314
|
"getter": false,
|
|
284
315
|
"setter": false,
|
|
@@ -297,7 +328,7 @@ export class Ddaselect {
|
|
|
297
328
|
"optional": true,
|
|
298
329
|
"docs": {
|
|
299
330
|
"tags": [],
|
|
300
|
-
"text": ""
|
|
331
|
+
"text": "Field size. `small` gives the compact field; leave empty for the default size."
|
|
301
332
|
},
|
|
302
333
|
"getter": false,
|
|
303
334
|
"setter": false,
|
|
@@ -316,7 +347,7 @@ export class Ddaselect {
|
|
|
316
347
|
"optional": true,
|
|
317
348
|
"docs": {
|
|
318
349
|
"tags": [],
|
|
319
|
-
"text": ""
|
|
350
|
+
"text": "Extra CSS classes added to the field container."
|
|
320
351
|
},
|
|
321
352
|
"getter": false,
|
|
322
353
|
"setter": false,
|
|
@@ -336,7 +367,7 @@ export class Ddaselect {
|
|
|
336
367
|
"optional": true,
|
|
337
368
|
"docs": {
|
|
338
369
|
"tags": [],
|
|
339
|
-
"text": ""
|
|
370
|
+
"text": "Theme override class for the field, e.g. `light-mode`."
|
|
340
371
|
},
|
|
341
372
|
"getter": false,
|
|
342
373
|
"setter": false,
|
|
@@ -355,7 +386,7 @@ export class Ddaselect {
|
|
|
355
386
|
"optional": true,
|
|
356
387
|
"docs": {
|
|
357
388
|
"tags": [],
|
|
358
|
-
"text": ""
|
|
389
|
+
"text": "Accessible name of the trigger button and the option list. The list falls back to `label`."
|
|
359
390
|
},
|
|
360
391
|
"getter": false,
|
|
361
392
|
"setter": false,
|
|
@@ -374,7 +405,7 @@ export class Ddaselect {
|
|
|
374
405
|
"optional": false,
|
|
375
406
|
"docs": {
|
|
376
407
|
"tags": [],
|
|
377
|
-
"text": ""
|
|
408
|
+
"text": "`id` of the trigger button. Also used to build the ids of the label, list, helper text and error message, so keep it unique. When it is not set, the component generates a unique id."
|
|
378
409
|
},
|
|
379
410
|
"getter": false,
|
|
380
411
|
"setter": false,
|
|
@@ -393,7 +424,7 @@ export class Ddaselect {
|
|
|
393
424
|
"optional": false,
|
|
394
425
|
"docs": {
|
|
395
426
|
"tags": [],
|
|
396
|
-
"text": ""
|
|
427
|
+
"text": "`name` of the trigger button."
|
|
397
428
|
},
|
|
398
429
|
"getter": false,
|
|
399
430
|
"setter": false,
|
|
@@ -412,7 +443,7 @@ export class Ddaselect {
|
|
|
412
443
|
"optional": false,
|
|
413
444
|
"docs": {
|
|
414
445
|
"tags": [],
|
|
415
|
-
"text": ""
|
|
446
|
+
"text": "`name` of each option button in the list."
|
|
416
447
|
},
|
|
417
448
|
"getter": false,
|
|
418
449
|
"setter": false,
|
|
@@ -426,5 +457,32 @@ export class Ddaselect {
|
|
|
426
457
|
"is_open": {}
|
|
427
458
|
};
|
|
428
459
|
}
|
|
460
|
+
static get events() {
|
|
461
|
+
return [{
|
|
462
|
+
"method": "selectionChange",
|
|
463
|
+
"name": "selectionChange",
|
|
464
|
+
"bubbles": true,
|
|
465
|
+
"cancelable": true,
|
|
466
|
+
"composed": true,
|
|
467
|
+
"docs": {
|
|
468
|
+
"tags": [],
|
|
469
|
+
"text": "Emitted when the user picks an option other than the selected one, by mouse or keyboard. `detail.value` is the new option."
|
|
470
|
+
},
|
|
471
|
+
"complexType": {
|
|
472
|
+
"original": "{ value: string }",
|
|
473
|
+
"resolved": "{ value: string; }",
|
|
474
|
+
"references": {}
|
|
475
|
+
}
|
|
476
|
+
}];
|
|
477
|
+
}
|
|
429
478
|
static get elementRef() { return "el"; }
|
|
479
|
+
static get listeners() {
|
|
480
|
+
return [{
|
|
481
|
+
"name": "click",
|
|
482
|
+
"method": "onHostClick",
|
|
483
|
+
"target": undefined,
|
|
484
|
+
"capture": false,
|
|
485
|
+
"passive": false
|
|
486
|
+
}];
|
|
487
|
+
}
|
|
430
488
|
}
|