@roadtrip/components 3.17.0 → 3.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/road-accordion.cjs.entry.js +1 -1
- package/dist/cjs/road-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/road-autocomplete.cjs.entry.js +1 -1
- package/dist/cjs/road-autocomplete.cjs.entry.js.map +1 -1
- package/dist/cjs/road-badge_14.cjs.entry.js +40 -8
- package/dist/cjs/road-badge_14.cjs.entry.js.map +1 -1
- package/dist/cjs/road-banner.cjs.entry.js +1 -1
- package/dist/cjs/road-banner.cjs.entry.js.map +1 -1
- package/dist/cjs/road-button-floating.cjs.entry.js +1 -1
- package/dist/cjs/road-button-floating.cjs.entry.js.map +1 -1
- package/dist/cjs/road-card.cjs.entry.js +1 -1
- package/dist/cjs/road-card.cjs.entry.js.map +1 -1
- package/dist/cjs/road-carousel.cjs.entry.js +30 -118
- package/dist/cjs/road-carousel.cjs.entry.js.map +1 -1
- package/dist/cjs/road-chip.cjs.entry.js +2 -2
- package/dist/cjs/road-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/road-collapse.cjs.entry.js +1 -1
- package/dist/cjs/road-collapse.cjs.entry.js.map +1 -1
- package/dist/cjs/road-dialog.cjs.entry.js +2 -2
- package/dist/cjs/road-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/road-dropdown.cjs.entry.js +4 -4
- package/dist/cjs/road-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/road-global-navigation.cjs.entry.js +1 -1
- package/dist/cjs/road-global-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/road-illustration.cjs.entry.js +1 -1
- package/dist/cjs/road-illustration.cjs.entry.js.map +1 -1
- package/dist/cjs/road-modal.cjs.entry.js +1 -1
- package/dist/cjs/road-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/road-navbar-item.cjs.entry.js +1 -1
- package/dist/cjs/road-navbar-item.cjs.entry.js.map +1 -1
- package/dist/cjs/road-navbar.cjs.entry.js +1 -1
- package/dist/cjs/road-navbar.cjs.entry.js.map +1 -1
- package/dist/cjs/road-phone-number-input.cjs.entry.js +41 -5
- package/dist/cjs/road-phone-number-input.cjs.entry.js.map +1 -1
- package/dist/cjs/road-plate-number.cjs.entry.js +2 -2
- package/dist/cjs/road-plate-number.cjs.entry.js.map +1 -1
- package/dist/cjs/road-profil-dropdown.cjs.entry.js +10 -1
- package/dist/cjs/road-profil-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/road-progress-indicator-vertical.cjs.entry.js +2 -2
- package/dist/cjs/road-progress-indicator-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/road-progress-tracker.cjs.entry.js +2 -2
- package/dist/cjs/road-progress-tracker.cjs.entry.js.map +1 -1
- package/dist/cjs/road-progress.cjs.entry.js +1 -1
- package/dist/cjs/road-progress.cjs.entry.js.map +1 -1
- package/dist/cjs/road-range.cjs.entry.js +26 -2
- package/dist/cjs/road-range.cjs.entry.js.map +1 -1
- package/dist/cjs/road-segmented-button.cjs.entry.js +1 -1
- package/dist/cjs/road-segmented-button.cjs.entry.js.map +1 -1
- package/dist/cjs/road-select-filter.cjs.entry.js +34 -4
- package/dist/cjs/road-select-filter.cjs.entry.js.map +1 -1
- package/dist/cjs/road-select.cjs.entry.js +1 -1
- package/dist/cjs/road-select.cjs.entry.js.map +1 -1
- package/dist/cjs/road-textarea.cjs.entry.js +1 -1
- package/dist/cjs/road-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/road-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/road-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/roadtrip.cjs.js +1 -1
- package/dist/collection/components/accordion/accordion.css +4 -0
- package/dist/collection/components/accordion/accordion.stories.js +1 -1
- package/dist/collection/components/alert/alert.stories.js +1 -1
- package/dist/collection/components/autocomplete/autocomplete.js +1 -1
- package/dist/collection/components/autocomplete/autocomplete.js.map +1 -1
- package/dist/collection/components/autocomplete/autocomplete.stories.js +2 -2
- package/dist/collection/components/avatar/avatar.stories.js +1 -1
- package/dist/collection/components/badge/badge.stories.js +2 -2
- package/dist/collection/components/banner/banner.js +1 -1
- package/dist/collection/components/banner/banner.js.map +1 -1
- package/dist/collection/components/button/button.stories.js +6 -6
- package/dist/collection/components/button-floating/button-floating.css +0 -4
- package/dist/collection/components/button-floating/button-floating.stories.js +2 -2
- package/dist/collection/components/card/card.css +4 -0
- package/dist/collection/components/card/card.stories.js +4 -4
- package/dist/collection/components/carousel/carousel.css +4 -1
- package/dist/collection/components/carousel/carousel.js +93 -250
- package/dist/collection/components/carousel/carousel.js.map +1 -1
- package/dist/collection/components/chip/chip.css +2 -2
- package/dist/collection/components/chip/chip.js +1 -1
- package/dist/collection/components/chip/chip.js.map +1 -1
- package/dist/collection/components/chip/chip.stories.js +26 -1
- package/dist/collection/components/collapse/collapse.css +4 -0
- package/dist/collection/components/collapse/collapse.stories.js +8 -8
- package/dist/collection/components/counter/counter.css +5 -0
- package/dist/collection/components/counter/counter.js +19 -1
- package/dist/collection/components/counter/counter.js.map +1 -1
- package/dist/collection/components/dialog/dialog.js +2 -2
- package/dist/collection/components/dialog/dialog.js.map +1 -1
- package/dist/collection/components/drawer/drawer.js +1 -1
- package/dist/collection/components/drawer/drawer.js.map +1 -1
- package/dist/collection/components/drawer/drawer.stories.js +2 -2
- package/dist/collection/components/dropdown/dropdown.css +9 -4
- package/dist/collection/components/dropdown/dropdown.js +3 -3
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.stories.js +4 -4
- package/dist/collection/components/global-navigation/global-navigation.js +1 -1
- package/dist/collection/components/global-navigation/global-navigation.js.map +1 -1
- package/dist/collection/components/global-navigation/global-navigation.stories.js +39 -39
- package/dist/collection/components/icon/icon.stories.js +44 -43
- package/dist/collection/components/illustration/illustration.js +1 -1
- package/dist/collection/components/illustration/illustration.js.map +1 -1
- package/dist/collection/components/input/input.css +8 -2
- package/dist/collection/components/input/input.js +16 -2
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/input-group/input-group.js +1 -1
- package/dist/collection/components/input-group/input-group.js.map +1 -1
- package/dist/collection/components/input-group/input-group.stories.js +4 -4
- package/dist/collection/components/item/item.stories.js +9 -9
- package/dist/collection/components/list/list.stories.js +8 -8
- package/dist/collection/components/modal/modal.js +1 -1
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/navbar/navbar.js +1 -1
- package/dist/collection/components/navbar/navbar.js.map +1 -1
- package/dist/collection/components/navbar/navbar.stories.js +84 -63
- package/dist/collection/components/navbar-item/navbar-item.js +1 -1
- package/dist/collection/components/navbar-item/navbar-item.js.map +1 -1
- package/dist/collection/components/patterns/link.stories.js +2 -2
- package/dist/collection/components/phone-number-input/phone-number-input.css +0 -1
- package/dist/collection/components/phone-number-input/phone-number-input.js +40 -4
- package/dist/collection/components/phone-number-input/phone-number-input.js.map +1 -1
- package/dist/collection/components/plate-number/plate-number.css +1 -1
- package/dist/collection/components/plate-number/plate-number.js +1 -1
- package/dist/collection/components/plate-number/plate-number.js.map +1 -1
- package/dist/collection/components/profil-dropdown/profil-dropdown.css +8 -0
- package/dist/collection/components/profil-dropdown/profil-dropdown.js +18 -0
- package/dist/collection/components/profil-dropdown/profil-dropdown.js.map +1 -1
- package/dist/collection/components/profil-dropdown/profil-dropdown.stories.js +4 -4
- package/dist/collection/components/progress/progress.js +1 -1
- package/dist/collection/components/progress/progress.js.map +1 -1
- package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.css +5 -0
- package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.js +1 -1
- package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.js.map +1 -1
- package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.stories.js +20 -20
- package/dist/collection/components/progress-tracker/progress-tracker.css +4 -0
- package/dist/collection/components/progress-tracker/progress-tracker.js +1 -1
- package/dist/collection/components/progress-tracker/progress-tracker.js.map +1 -1
- package/dist/collection/components/range/range.css +17 -2
- package/dist/collection/components/range/range.js +41 -2
- package/dist/collection/components/range/range.js.map +1 -1
- package/dist/collection/components/segmented-button/segmented-button.js +1 -1
- package/dist/collection/components/segmented-button/segmented-button.js.map +1 -1
- package/dist/collection/components/select/select.css +1 -1
- package/dist/collection/components/select-filter/select-filter.css +5 -0
- package/dist/collection/components/select-filter/select-filter.js +43 -9
- package/dist/collection/components/select-filter/select-filter.js.map +1 -1
- package/dist/collection/components/select-filter/select-filter.stories.js +8 -8
- package/dist/collection/components/tabs/tabs.stories.js +5 -5
- package/dist/collection/components/textarea/textarea.css +2 -2
- package/dist/collection/components/toolbar/toolbar.css +0 -2
- package/dist/collection/components/toolbar/toolbar.stories.js +8 -8
- package/dist/collection/components/tooltip/tooltip.js +1 -1
- package/dist/collection/components/tooltip/tooltip.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.stories.js +3 -3
- package/dist/esm/{index-891decf5.js → index-7a0158a4.js} +2 -2
- package/dist/esm/{index-891decf5.js.map → index-7a0158a4.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/road-accordion.entry.js +2 -2
- package/dist/esm/road-accordion.entry.js.map +1 -1
- package/dist/esm/road-autocomplete.entry.js +1 -1
- package/dist/esm/road-autocomplete.entry.js.map +1 -1
- package/dist/esm/road-badge_14.entry.js +41 -9
- package/dist/esm/road-badge_14.entry.js.map +1 -1
- package/dist/esm/road-banner.entry.js +2 -2
- package/dist/esm/road-banner.entry.js.map +1 -1
- package/dist/esm/road-button-floating.entry.js +1 -1
- package/dist/esm/road-button-floating.entry.js.map +1 -1
- package/dist/esm/road-card.entry.js +1 -1
- package/dist/esm/road-card.entry.js.map +1 -1
- package/dist/esm/road-carousel.entry.js +31 -119
- package/dist/esm/road-carousel.entry.js.map +1 -1
- package/dist/esm/road-checkbox.entry.js +1 -1
- package/dist/esm/road-chip.entry.js +3 -3
- package/dist/esm/road-chip.entry.js.map +1 -1
- package/dist/esm/road-collapse.entry.js +1 -1
- package/dist/esm/road-collapse.entry.js.map +1 -1
- package/dist/esm/road-dialog.entry.js +3 -3
- package/dist/esm/road-dialog.entry.js.map +1 -1
- package/dist/esm/road-dropdown.entry.js +4 -4
- package/dist/esm/road-dropdown.entry.js.map +1 -1
- package/dist/esm/road-global-navigation.entry.js +1 -1
- package/dist/esm/road-global-navigation.entry.js.map +1 -1
- package/dist/esm/road-illustration.entry.js +1 -1
- package/dist/esm/road-illustration.entry.js.map +1 -1
- package/dist/esm/road-modal.entry.js +2 -2
- package/dist/esm/road-modal.entry.js.map +1 -1
- package/dist/esm/road-navbar-item.entry.js +1 -1
- package/dist/esm/road-navbar-item.entry.js.map +1 -1
- package/dist/esm/road-navbar.entry.js +1 -1
- package/dist/esm/road-navbar.entry.js.map +1 -1
- package/dist/esm/road-phone-number-input.entry.js +41 -5
- package/dist/esm/road-phone-number-input.entry.js.map +1 -1
- package/dist/esm/road-plate-number.entry.js +3 -3
- package/dist/esm/road-plate-number.entry.js.map +1 -1
- package/dist/esm/road-profil-dropdown.entry.js +11 -2
- package/dist/esm/road-profil-dropdown.entry.js.map +1 -1
- package/dist/esm/road-progress-indicator-vertical.entry.js +2 -2
- package/dist/esm/road-progress-indicator-vertical.entry.js.map +1 -1
- package/dist/esm/road-progress-tracker.entry.js +2 -2
- package/dist/esm/road-progress-tracker.entry.js.map +1 -1
- package/dist/esm/road-progress.entry.js +1 -1
- package/dist/esm/road-progress.entry.js.map +1 -1
- package/dist/esm/road-range.entry.js +28 -4
- package/dist/esm/road-range.entry.js.map +1 -1
- package/dist/esm/road-rating.entry.js +1 -1
- package/dist/esm/road-segmented-button.entry.js +1 -1
- package/dist/esm/road-segmented-button.entry.js.map +1 -1
- package/dist/esm/road-select-filter.entry.js +34 -4
- package/dist/esm/road-select-filter.entry.js.map +1 -1
- package/dist/esm/road-select.entry.js +1 -1
- package/dist/esm/road-select.entry.js.map +1 -1
- package/dist/esm/road-textarea.entry.js +1 -1
- package/dist/esm/road-textarea.entry.js.map +1 -1
- package/dist/esm/road-toast.entry.js +1 -1
- package/dist/esm/road-tooltip.entry.js +1 -1
- package/dist/esm/road-tooltip.entry.js.map +1 -1
- package/dist/esm/roadtrip.js +1 -1
- package/dist/html.html-data.json +3 -3
- package/dist/roadtrip/p-054acf61.entry.js +2 -0
- package/dist/roadtrip/p-054acf61.entry.js.map +1 -0
- package/dist/roadtrip/{p-ea28a425.entry.js → p-08b0be1b.entry.js} +2 -2
- package/dist/roadtrip/p-08b0be1b.entry.js.map +1 -0
- package/dist/roadtrip/{p-1a761fc0.entry.js → p-0fd454dc.entry.js} +2 -2
- package/dist/roadtrip/p-0fd454dc.entry.js.map +1 -0
- package/dist/roadtrip/{p-60e25858.entry.js → p-14ecc91e.entry.js} +2 -2
- package/dist/roadtrip/{p-60e25858.entry.js.map → p-14ecc91e.entry.js.map} +1 -1
- package/dist/roadtrip/{p-82919e58.entry.js → p-16c934bc.entry.js} +2 -2
- package/dist/roadtrip/p-17ae87b0.entry.js +2 -0
- package/dist/roadtrip/p-17ae87b0.entry.js.map +1 -0
- package/dist/roadtrip/{p-6e3e0b40.entry.js → p-18967429.entry.js} +2 -2
- package/dist/roadtrip/{p-6e3e0b40.entry.js.map → p-18967429.entry.js.map} +1 -1
- package/dist/roadtrip/p-27d2770a.entry.js +2 -0
- package/dist/roadtrip/p-27d2770a.entry.js.map +1 -0
- package/dist/roadtrip/{p-4f47f4f7.entry.js → p-31cf9b61.entry.js} +2 -2
- package/dist/roadtrip/p-31cf9b61.entry.js.map +1 -0
- package/dist/roadtrip/{p-dcb280e3.entry.js → p-3bce3bdc.entry.js} +2 -2
- package/dist/roadtrip/p-3bce3bdc.entry.js.map +1 -0
- package/dist/roadtrip/p-4a2f2612.entry.js +2 -0
- package/dist/roadtrip/p-4a2f2612.entry.js.map +1 -0
- package/dist/roadtrip/p-5203acea.entry.js +2 -0
- package/dist/roadtrip/p-5203acea.entry.js.map +1 -0
- package/dist/roadtrip/{p-a73ef7de.entry.js → p-61d87e64.entry.js} +2 -2
- package/dist/roadtrip/{p-a73ef7de.entry.js.map → p-61d87e64.entry.js.map} +1 -1
- package/dist/roadtrip/p-6ad5091d.entry.js +2 -0
- package/dist/roadtrip/p-6ad5091d.entry.js.map +1 -0
- package/dist/roadtrip/{p-2c132382.entry.js → p-72b3b34a.entry.js} +2 -2
- package/dist/roadtrip/p-72b3b34a.entry.js.map +1 -0
- package/dist/roadtrip/p-7a14e5b7.entry.js +2 -0
- package/dist/roadtrip/p-7a14e5b7.entry.js.map +1 -0
- package/dist/roadtrip/{p-c3c92152.entry.js → p-7f1d9286.entry.js} +2 -2
- package/dist/roadtrip/p-7f1d9286.entry.js.map +1 -0
- package/dist/roadtrip/p-9a929988.entry.js +2 -0
- package/dist/roadtrip/p-9a929988.entry.js.map +1 -0
- package/dist/roadtrip/{p-336aa5f6.entry.js → p-9ff79904.entry.js} +2 -2
- package/dist/roadtrip/{p-336aa5f6.entry.js.map → p-9ff79904.entry.js.map} +1 -1
- package/dist/roadtrip/p-a5eee655.entry.js +2 -0
- package/dist/roadtrip/{p-40daa53b.entry.js.map → p-a5eee655.entry.js.map} +1 -1
- package/dist/roadtrip/{p-73fe2357.js → p-ac7a8bca.js} +2 -2
- package/dist/roadtrip/{p-6177bb46.entry.js → p-b510e552.entry.js} +2 -2
- package/dist/roadtrip/{p-6177bb46.entry.js.map → p-b510e552.entry.js.map} +1 -1
- package/dist/roadtrip/{p-46cccafc.entry.js → p-c096723c.entry.js} +2 -2
- package/dist/roadtrip/{p-46cccafc.entry.js.map → p-c096723c.entry.js.map} +1 -1
- package/dist/roadtrip/p-c7866ae4.entry.js +2 -0
- package/dist/roadtrip/p-c7866ae4.entry.js.map +1 -0
- package/dist/roadtrip/p-cdefa79c.entry.js +2 -0
- package/dist/roadtrip/p-cdefa79c.entry.js.map +1 -0
- package/dist/roadtrip/{p-cbc00bfb.entry.js → p-cfc0a3a7.entry.js} +2 -2
- package/dist/roadtrip/p-dcbaee2f.entry.js +2 -0
- package/dist/roadtrip/p-dcbaee2f.entry.js.map +1 -0
- package/dist/roadtrip/{p-7048f786.entry.js → p-dcbb0d20.entry.js} +2 -2
- package/dist/roadtrip/p-dcbb0d20.entry.js.map +1 -0
- package/dist/roadtrip/{p-414a2791.entry.js → p-e8c9c816.entry.js} +2 -2
- package/dist/roadtrip/{p-f5cce766.entry.js → p-ebd19369.entry.js} +2 -2
- package/dist/roadtrip/{p-f5cce766.entry.js.map → p-ebd19369.entry.js.map} +1 -1
- package/dist/roadtrip/p-f7b4f1fa.entry.js +2 -0
- package/dist/roadtrip/p-f7b4f1fa.entry.js.map +1 -0
- package/dist/roadtrip/p-f90af0e1.entry.js +2 -0
- package/dist/roadtrip/p-f90af0e1.entry.js.map +1 -0
- package/dist/roadtrip/roadtrip.esm.js +1 -1
- package/dist/roadtrip/roadtrip.esm.js.map +1 -1
- package/dist/types/components/carousel/carousel.d.ts +1 -131
- package/dist/types/components/counter/counter.d.ts +1 -0
- package/dist/types/components/phone-number-input/phone-number-input.d.ts +1 -0
- package/dist/types/components/profil-dropdown/profil-dropdown.d.ts +2 -0
- package/dist/types/components/range/range.d.ts +3 -0
- package/dist/types/components/select-filter/select-filter.d.ts +16 -4
- package/dist/types/components.d.ts +4 -128
- package/hydrate/index.js +216 -175
- package/package.json +1 -1
- package/dist/roadtrip/p-1a761fc0.entry.js.map +0 -1
- package/dist/roadtrip/p-2b5974fc.entry.js +0 -2
- package/dist/roadtrip/p-2b5974fc.entry.js.map +0 -1
- package/dist/roadtrip/p-2c132382.entry.js.map +0 -1
- package/dist/roadtrip/p-2c8a6854.entry.js +0 -2
- package/dist/roadtrip/p-2c8a6854.entry.js.map +0 -1
- package/dist/roadtrip/p-2e25c08d.entry.js +0 -2
- package/dist/roadtrip/p-2e25c08d.entry.js.map +0 -1
- package/dist/roadtrip/p-33002e9d.entry.js +0 -2
- package/dist/roadtrip/p-33002e9d.entry.js.map +0 -1
- package/dist/roadtrip/p-372fcb4d.entry.js +0 -2
- package/dist/roadtrip/p-372fcb4d.entry.js.map +0 -1
- package/dist/roadtrip/p-40daa53b.entry.js +0 -2
- package/dist/roadtrip/p-4f47f4f7.entry.js.map +0 -1
- package/dist/roadtrip/p-5053b01a.entry.js +0 -2
- package/dist/roadtrip/p-5053b01a.entry.js.map +0 -1
- package/dist/roadtrip/p-7048f786.entry.js.map +0 -1
- package/dist/roadtrip/p-9bef58e1.entry.js +0 -2
- package/dist/roadtrip/p-9bef58e1.entry.js.map +0 -1
- package/dist/roadtrip/p-a44a569a.entry.js +0 -2
- package/dist/roadtrip/p-a44a569a.entry.js.map +0 -1
- package/dist/roadtrip/p-acbc0a14.entry.js +0 -2
- package/dist/roadtrip/p-acbc0a14.entry.js.map +0 -1
- package/dist/roadtrip/p-b2e7bfcb.entry.js +0 -2
- package/dist/roadtrip/p-b2e7bfcb.entry.js.map +0 -1
- package/dist/roadtrip/p-c3c92152.entry.js.map +0 -1
- package/dist/roadtrip/p-dcb280e3.entry.js.map +0 -1
- package/dist/roadtrip/p-e2149bdf.entry.js +0 -2
- package/dist/roadtrip/p-e2149bdf.entry.js.map +0 -1
- package/dist/roadtrip/p-ea28a425.entry.js.map +0 -1
- package/dist/roadtrip/p-ee7aaee5.entry.js +0 -2
- package/dist/roadtrip/p-ee7aaee5.entry.js.map +0 -1
- package/dist/roadtrip/p-faba450c.entry.js +0 -2
- package/dist/roadtrip/p-faba450c.entry.js.map +0 -1
- /package/dist/roadtrip/{p-82919e58.entry.js.map → p-16c934bc.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-73fe2357.js.map → p-ac7a8bca.js.map} +0 -0
- /package/dist/roadtrip/{p-cbc00bfb.entry.js.map → p-cfc0a3a7.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-414a2791.entry.js.map → p-e8c9c816.entry.js.map} +0 -0
|
@@ -36,16 +36,16 @@ export default {
|
|
|
36
36
|
},
|
|
37
37
|
args: {
|
|
38
38
|
' ': `
|
|
39
|
-
<road-profil-dropdown is-open="false" class="m-24 d-none d-xl-block">
|
|
39
|
+
<road-profil-dropdown is-open="false" class="m-24 d-none d-xl-block" role="menuitem">
|
|
40
40
|
<road-list slot="list">
|
|
41
|
-
<road-item button="" style="--border-radius: 0; --min-height: 2.5rem; --inner-padding: 0;">
|
|
42
|
-
<road-icon slot="start" name="edit-outline" size="md"></road-icon>
|
|
41
|
+
<road-item button="" style="--border-radius: 0; --min-height: 2.5rem; --inner-padding: 0;" class="border-0">
|
|
42
|
+
<road-icon slot="start" name="edit-outline" size="md" aria-hidden="true"></road-icon>
|
|
43
43
|
<road-label style="font-size: 0.75rem">
|
|
44
44
|
Edit profile
|
|
45
45
|
</road-label>
|
|
46
46
|
</road-item>
|
|
47
|
-
<road-item button="" style="--border-radius: 0; --min-height: 2.5rem; --inner-padding: 0;">
|
|
48
|
-
<road-icon slot="start" name="log-out-outline" size="md"></road-icon>
|
|
47
|
+
<road-item button="" style="--border-radius: 0; --min-height: 2.5rem; --inner-padding: 0;" class="border-0">
|
|
48
|
+
<road-icon slot="start" name="log-out-outline" size="md" aria-hidden="true"></road-icon>
|
|
49
49
|
<road-label style="font-size: 0.75rem">
|
|
50
50
|
Log out
|
|
51
51
|
</road-label>
|
|
@@ -57,62 +57,62 @@ export default {
|
|
|
57
57
|
<road-label slot="email">email</road-label>
|
|
58
58
|
</road-profil-dropdown>
|
|
59
59
|
|
|
60
|
-
<road-navbar-item tab="tab-home">
|
|
60
|
+
<road-navbar-item tab="tab-home" aria-label="Home" role="menuitem">
|
|
61
61
|
<road-tooltip content="Home" position="right" trigger="hover" contentalign="center">
|
|
62
|
-
<road-icon name="navigation-home-outline"></road-icon>
|
|
62
|
+
<road-icon name="navigation-home-outline" aria-hidden="true" aria-hidden="true"></road-icon>
|
|
63
63
|
<road-label class="font-weight-bold">Home</road-label>
|
|
64
64
|
</road-tooltip>
|
|
65
65
|
</road-navbar-item>
|
|
66
66
|
|
|
67
|
-
<road-navbar-item tab="tab-search">
|
|
67
|
+
<road-navbar-item tab="tab-search" aria-label="Search" role="menuitem">
|
|
68
68
|
<road-tooltip content="Search" position="right" trigger="hover" contentalign="center">
|
|
69
|
-
<road-icon name="search"></road-icon>
|
|
69
|
+
<road-icon name="search" aria-hidden="true" aria-hidden="true"></road-icon>
|
|
70
70
|
<road-label class="font-weight-bold">Search</road-label>
|
|
71
71
|
</road-tooltip>
|
|
72
72
|
</road-navbar-item>
|
|
73
73
|
|
|
74
|
-
<road-navbar-item tab="tab-
|
|
74
|
+
<road-navbar-item tab="tab-print" role="menuitem">
|
|
75
75
|
<road-tooltip content="Print" position="right" trigger="hover" contentalign="center">
|
|
76
|
-
<road-icon name="print-outline"></road-icon>
|
|
76
|
+
<road-icon name="print-outline" aria-hidden="true" aria-hidden="true"></road-icon>
|
|
77
77
|
<road-label class="font-weight-bold">Print</road-label>
|
|
78
78
|
</road-tooltip>
|
|
79
79
|
</road-navbar-item>
|
|
80
80
|
|
|
81
|
-
<road-navbar-item tab="tab-notification" class="d-none d-xl-flex">
|
|
81
|
+
<road-navbar-item tab="tab-notification" class="d-none d-xl-flex" role="menuitem">
|
|
82
82
|
<road-tooltip content="Notifications" position="right" trigger="hover" contentalign="center">
|
|
83
|
-
<road-icon name="alert-notification-outline"></road-icon>
|
|
83
|
+
<road-icon name="alert-notification-outline" aria-hidden="true" aria-hidden="true"></road-icon>
|
|
84
84
|
<road-label class="font-weight-bold">Notifications</road-label>
|
|
85
85
|
</road-tooltip>
|
|
86
86
|
</road-navbar-item>
|
|
87
87
|
|
|
88
|
-
<road-navbar-item tab="tab-scan" class="d-none d-xl-flex">
|
|
88
|
+
<road-navbar-item tab="tab-scan" class="d-none d-xl-flex" aria-label="Scan" role="menuitem">
|
|
89
89
|
<road-tooltip content="Scan" position="right" trigger="hover" contentalign="center">
|
|
90
|
-
<road-icon name="scan"></road-icon>
|
|
90
|
+
<road-icon name="scan" aria-hidden="true" aria-hidden="true"></road-icon>
|
|
91
91
|
<road-label class="font-weight-bold">Scan</road-label>
|
|
92
92
|
</road-tooltip>
|
|
93
93
|
</road-navbar-item>
|
|
94
94
|
|
|
95
|
-
<road-navbar-item tab="tab-catalogue" class="d-none d-xl-flex">
|
|
95
|
+
<road-navbar-item tab="tab-catalogue" class="d-none d-xl-flex" role="menuitem">
|
|
96
96
|
<road-tooltip content="Catalog" position="right" trigger="hover" contentalign="center">
|
|
97
|
-
<road-icon name="file-catalog"></road-icon>
|
|
97
|
+
<road-icon name="file-catalog" aria-hidden="true" aria-hidden="true"></road-icon>
|
|
98
98
|
<road-label class="font-weight-bold">Catalogue</road-label>
|
|
99
99
|
</road-tootltip>
|
|
100
100
|
</road-navbar-item>
|
|
101
101
|
|
|
102
|
-
<road-navbar-item tab="tab-diag" class="d-none d-xl-flex">
|
|
102
|
+
<road-navbar-item tab="tab-diag" class="d-none d-xl-flex" role="menuitem">
|
|
103
103
|
<road-tooltip content="Diagnostic" position="right" trigger="hover" contentalign="center">
|
|
104
|
-
<road-icon name="Diagnostic"></road-icon>
|
|
104
|
+
<road-icon name="Diagnostic" aria-hidden="true" aria-hidden="true"></road-icon>
|
|
105
105
|
<road-label class="font-weight-bold">Diagnostic</road-label>
|
|
106
106
|
</road-tooltip>
|
|
107
107
|
</road-navbar-item>
|
|
108
108
|
|
|
109
|
-
<road-navbar-item tab="tab-menu" class="d-block d-xl-none tab-menu">
|
|
110
|
-
<road-icon name="navigation-menu"></road-icon>
|
|
109
|
+
<road-navbar-item tab="tab-menu" class="d-block d-xl-none tab-menu" role="menuitem">
|
|
110
|
+
<road-icon name="navigation-menu" aria-hidden="true"></road-icon>
|
|
111
111
|
<road-label>Menu</road-label>
|
|
112
112
|
</road-navbar-item>
|
|
113
113
|
|
|
114
|
-
<road-drawer is-open="false" position="right" drawer-width="480" drawer-title="Menu" class="d-xl-none drawer-menu">
|
|
115
|
-
<road-item class="mb-16 text-left bg-light profil">
|
|
114
|
+
<road-drawer is-open="false" position="right" drawer-width="480" drawer-title="Menu" class="d-xl-none drawer-menu" tabindex="0" role="menuitem">
|
|
115
|
+
<road-item class="mb-16 text-left bg-light profil" tabindex="0" button="true">
|
|
116
116
|
<road-avatar slot="start" class="mr-16">
|
|
117
117
|
<road-img src="https://images.unsplash.com/photo-1527980965255-d3b416303d12?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=800&q=80" alt="avatar"></road-img>
|
|
118
118
|
</road-avatar>
|
|
@@ -121,26 +121,26 @@ export default {
|
|
|
121
121
|
<p class="text-medium text-truncate m-0">Email</p>
|
|
122
122
|
</road-label>
|
|
123
123
|
|
|
124
|
-
<road-icon slot="end" name="edit-outline" size="sm" class="mr-8"></road-icon>
|
|
124
|
+
<road-icon slot="end" name="edit-outline" size="sm" class="mr-8" aria-hidden="true"></road-icon>
|
|
125
125
|
</road-item>
|
|
126
126
|
|
|
127
|
-
<road-item class="bg-white">
|
|
128
|
-
<road-icon name="scan"></road-icon>
|
|
127
|
+
<road-item class="bg-white border-0" button="true">
|
|
128
|
+
<road-icon name="scan" aria-hidden="true"></road-icon>
|
|
129
129
|
Scan
|
|
130
130
|
</road-item>
|
|
131
131
|
|
|
132
|
-
<road-item class="bg-white">
|
|
133
|
-
<road-icon name="file-catalog"></road-icon>
|
|
132
|
+
<road-item class="bg-white border-0" button="true">
|
|
133
|
+
<road-icon name="file-catalog" aria-hidden="true"></road-icon>
|
|
134
134
|
Catalogue
|
|
135
135
|
</road-item>
|
|
136
136
|
|
|
137
|
-
<road-item class="bg-white">
|
|
138
|
-
<road-icon name="Diagnostic"></road-icon>
|
|
137
|
+
<road-item class="bg-white border-0" button="true">
|
|
138
|
+
<road-icon name="Diagnostic" aria-hidden="true"></road-icon>
|
|
139
139
|
Diagnostic
|
|
140
140
|
</road-item>
|
|
141
141
|
|
|
142
|
-
<road-item class="bg-white border-top ">
|
|
143
|
-
<road-icon name="log-out"></road-icon>
|
|
142
|
+
<road-item class="bg-white border-top border-0" button="true">
|
|
143
|
+
<road-icon name="log-out" aria-hidden="true"></road-icon>
|
|
144
144
|
Log out
|
|
145
145
|
</road-item>
|
|
146
146
|
|
|
@@ -162,13 +162,34 @@ export default {
|
|
|
162
162
|
</road-drawer>
|
|
163
163
|
|
|
164
164
|
<script>
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
165
|
+
// Fonction pour gérer l'activation de la touche "Enter" ou "Space"
|
|
166
|
+
function handleKeydown(event, element) {
|
|
167
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
168
|
+
event.preventDefault();
|
|
169
|
+
element.setAttribute('is-open', 'true');
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// Gestionnaire de clic et clavier pour le menu principal
|
|
174
|
+
const tabMenu = document.querySelector('.tab-menu');
|
|
175
|
+
tabMenu.setAttribute('tabindex', '0'); // Rendre focusable
|
|
176
|
+
tabMenu.addEventListener('click', () => {
|
|
177
|
+
document.querySelector('.drawer-menu').setAttribute('is-open', 'true');
|
|
178
|
+
});
|
|
179
|
+
tabMenu.addEventListener('keydown', (event) => {
|
|
180
|
+
handleKeydown(event, document.querySelector('.drawer-menu'));
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
// Gestionnaire de clic et clavier pour le menu du profil
|
|
184
|
+
const profil = document.querySelector('.profil');
|
|
185
|
+
profil.setAttribute('tabindex', '0'); // Rendre focusable
|
|
186
|
+
profil.addEventListener('click', () => {
|
|
187
|
+
document.querySelector('.drawer-menu2').setAttribute('is-open', 'true');
|
|
188
|
+
});
|
|
189
|
+
profil.addEventListener('keydown', (event) => {
|
|
190
|
+
handleKeydown(event, document.querySelector('.drawer-menu2'));
|
|
191
|
+
});
|
|
192
|
+
|
|
172
193
|
|
|
173
194
|
</script>`,
|
|
174
195
|
},
|
|
@@ -188,13 +209,13 @@ Selected.args = {
|
|
|
188
209
|
<road-profil-dropdown is-open="false" class="m-24 d-none d-xl-block">
|
|
189
210
|
<road-list slot="list">
|
|
190
211
|
<road-item button="" style="--border-radius: 0; --min-height: 2.5rem; --inner-padding: 0;">
|
|
191
|
-
<road-icon slot="start" name="edit-outline" size="md"></road-icon>
|
|
212
|
+
<road-icon slot="start" name="edit-outline" size="md" aria-hidden="true"></road-icon>
|
|
192
213
|
<road-label style="font-size: 0.75rem">
|
|
193
214
|
Edit profile
|
|
194
215
|
</road-label>
|
|
195
216
|
</road-item>
|
|
196
217
|
<road-item button="" style="--border-radius: 0; --min-height: 2.5rem; --inner-padding: 0;">
|
|
197
|
-
<road-icon slot="start" name="log-out-outline" size="md"></road-icon>
|
|
218
|
+
<road-icon slot="start" name="log-out-outline" size="md" aria-hidden="true"></road-icon>
|
|
198
219
|
<road-label style="font-size: 0.75rem">
|
|
199
220
|
Log out
|
|
200
221
|
</road-label>
|
|
@@ -204,37 +225,37 @@ Selected.args = {
|
|
|
204
225
|
<road-img slot="avatarItem" src="https://images.unsplash.com/photo-1527980965255-d3b416303d12?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=800&q=80" alt="avatar" title="Person name"></road-img>
|
|
205
226
|
</road-profil-dropdown>
|
|
206
227
|
|
|
207
|
-
<road-navbar-item tab="tab-home" selected="true">
|
|
228
|
+
<road-navbar-item tab="tab-home" selected="true" aria-label="Home" role="menuitem">
|
|
208
229
|
<road-tooltip content="Home" position="right" trigger="hover" contentalign="center">
|
|
209
|
-
<road-icon name="navigation-home-outline"></road-icon>
|
|
230
|
+
<road-icon name="navigation-home-outline" aria-hidden="true"></road-icon>
|
|
210
231
|
<road-label class="font-weight-bold">Home</road-label>
|
|
211
232
|
</road-tooltip>
|
|
212
233
|
</road-navbar-item>
|
|
213
234
|
|
|
214
|
-
<road-navbar-item tab="tab-search">
|
|
235
|
+
<road-navbar-item tab="tab-search" aria-label="Search" role="menuitem">
|
|
215
236
|
<road-tooltip content="Search" position="right" trigger="hover" contentalign="center">
|
|
216
|
-
<road-icon name="search"></road-icon>
|
|
237
|
+
<road-icon name="search" aria-hidden="true"></road-icon>
|
|
217
238
|
<road-label class="font-weight-bold">Search</road-label>
|
|
218
239
|
</road-tooltip>
|
|
219
240
|
</road-navbar-item>
|
|
220
241
|
|
|
221
|
-
<road-navbar-item tab="tab-
|
|
242
|
+
<road-navbar-item tab="tab-print" role="menuitem">
|
|
222
243
|
<road-tooltip content="Print" position="right" trigger="hover" contentalign="center">
|
|
223
|
-
<road-icon name="print-outline"></road-icon>
|
|
244
|
+
<road-icon name="print-outline" aria-hidden="true"></road-icon>
|
|
224
245
|
<road-label class="font-weight-bold">Print</road-label>
|
|
225
246
|
</road-tooltip>
|
|
226
247
|
</road-navbar-item>
|
|
227
248
|
|
|
228
|
-
<road-navbar-item tab="tab-catalogue" class="d-none d-xl-flex">
|
|
249
|
+
<road-navbar-item tab="tab-catalogue" class="d-none d-xl-flex" role="menuitem">
|
|
229
250
|
<road-tooltip content="Catalogue" position="right" trigger="hover" contentalign="center">
|
|
230
|
-
<road-icon name="file-catalog"></road-icon>
|
|
251
|
+
<road-icon name="file-catalog" aria-hidden="true"></road-icon>
|
|
231
252
|
<road-label class="font-weight-bold">Catalogue</road-label>
|
|
232
253
|
</road-tooltip>
|
|
233
254
|
</road-navbar-item>
|
|
234
255
|
|
|
235
|
-
<road-navbar-item tab="tab-scan" class="d-none d-xl-flex">
|
|
256
|
+
<road-navbar-item tab="tab-scan" class="d-none d-xl-flex" aria-label="Scan" role="menuitem">
|
|
236
257
|
<road-tooltip content="Scan" position="right" trigger="hover" contentalign="center">
|
|
237
|
-
<road-icon name="scan"></road-icon>
|
|
258
|
+
<road-icon name="scan" aria-hidden="true"></road-icon>
|
|
238
259
|
<road-label class="font-weight-bold">Scan</road-label>
|
|
239
260
|
</road-tooltip>
|
|
240
261
|
</road-navbar-item>`,
|
|
@@ -246,13 +267,13 @@ withNotifications.args = {
|
|
|
246
267
|
<road-profil-dropdown is-open="false" class="m-24 d-none d-xl-block">
|
|
247
268
|
<road-list slot="list">
|
|
248
269
|
<road-item button="" style="--border-radius: 0; --min-height: 2.5rem; --inner-padding: 0;">
|
|
249
|
-
<road-icon slot="start" name="edit-outline" size="md"></road-icon>
|
|
270
|
+
<road-icon slot="start" name="edit-outline" size="md" aria-hidden="true"></road-icon>
|
|
250
271
|
<road-label style="font-size: 0.75rem">
|
|
251
272
|
Edit profile
|
|
252
273
|
</road-label>
|
|
253
274
|
</road-item>
|
|
254
275
|
<road-item button="" style="--border-radius: 0; --min-height: 2.5rem; --inner-padding: 0;">
|
|
255
|
-
<road-icon slot="start" name="log-out-outline" size="md"></road-icon>
|
|
276
|
+
<road-icon slot="start" name="log-out-outline" size="md" aria-hidden="true"></road-icon>
|
|
256
277
|
<road-label style="font-size: 0.75rem">
|
|
257
278
|
Log out
|
|
258
279
|
</road-label>
|
|
@@ -262,38 +283,38 @@ withNotifications.args = {
|
|
|
262
283
|
<road-img slot="avatarItem" src="https://images.unsplash.com/photo-1527980965255-d3b416303d12?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=800&q=80" alt="avatar" title="Person name"></road-img>
|
|
263
284
|
</road-profil-dropdown>
|
|
264
285
|
|
|
265
|
-
<road-navbar-item tab="tab-home" selected="true">
|
|
286
|
+
<road-navbar-item tab="tab-home" selected="true" aria-label="Home" role="menuitem">
|
|
266
287
|
<road-tooltip content="Home" position="right" trigger="hover" contentalign="center">
|
|
267
|
-
<road-icon name="navigation-home-outline"></road-icon>
|
|
288
|
+
<road-icon name="navigation-home-outline" aria-hidden="true"></road-icon>
|
|
268
289
|
<road-label class="font-weight-bold" style="font-size:0.75rem;">Home</road-label>
|
|
269
290
|
</road-tooltip>
|
|
270
291
|
</road-navbar-item>
|
|
271
292
|
|
|
272
|
-
<road-navbar-item tab="tab-search">
|
|
293
|
+
<road-navbar-item tab="tab-search" aria-label="Search" role="menuitem">
|
|
273
294
|
<road-tooltip content="Search" position="right" trigger="hover" contentalign="center">
|
|
274
|
-
<road-icon name="search"></road-icon>
|
|
295
|
+
<road-icon name="search" aria-hidden="true"></road-icon>
|
|
275
296
|
<road-label class="font-weight-bold" style="font-size:0.75rem;">Search</road-label>
|
|
276
297
|
</road-tooltip>
|
|
277
298
|
</road-navbar-item>
|
|
278
299
|
|
|
279
|
-
<road-navbar-item tab="tab-catalog">
|
|
300
|
+
<road-navbar-item tab="tab-catalog" aria-label="Catalog" role="menuitem">
|
|
280
301
|
<road-tooltip content="Scan" position="right" trigger="hover" contentalign="center">
|
|
281
|
-
<road-icon name="print-outline"></road-icon>
|
|
302
|
+
<road-icon name="print-outline" aria-hidden="true"></road-icon>
|
|
282
303
|
<road-label class="font-weight-bold" style="font-size:0.75rem;">Scan</road-label>
|
|
283
304
|
</road-tooltip>
|
|
284
305
|
<road-badge>3</road-badge>
|
|
285
306
|
</road-navbar-item>
|
|
286
307
|
|
|
287
|
-
<road-navbar-item tab="tab-catalogue" class="d-none d-xl-flex">
|
|
308
|
+
<road-navbar-item tab="tab-catalogue" class="d-none d-xl-flex" aria-label="Catalog" role="menuitem">
|
|
288
309
|
<road-tooltip content="Catalog" position="right" trigger="hover" contentalign="center">
|
|
289
|
-
<road-icon name="file-catalog"></road-icon>
|
|
310
|
+
<road-icon name="file-catalog" aria-hidden="true"></road-icon>
|
|
290
311
|
<road-label class="font-weight-bold" style="font-size:0.75rem;">Catalog</road-label>
|
|
291
312
|
</road-tooltip>
|
|
292
313
|
</road-navbar-item>
|
|
293
314
|
|
|
294
|
-
<road-navbar-item tab="tab-scan" class="d-none d-xl-flex">
|
|
315
|
+
<road-navbar-item tab="tab-scan" class="d-none d-xl-flex" aria-label="Scan" role="menuitem">
|
|
295
316
|
<road-tooltip content="Scan" position="right" trigger="hover" contentalign="center">
|
|
296
|
-
<road-icon name="scan"></road-icon>
|
|
317
|
+
<road-icon name="scan" aria-hidden="true"></road-icon>
|
|
297
318
|
<road-label class="font-weight-bold" style="font-size:0.75rem;">Scan</road-label>
|
|
298
319
|
</road-tooltip>
|
|
299
320
|
</road-navbar-item>`,
|
|
@@ -52,7 +52,7 @@ export class NavbarItem {
|
|
|
52
52
|
rel,
|
|
53
53
|
target,
|
|
54
54
|
};
|
|
55
|
-
return (h(Host, { onClick: this.onClick, onKeyup: this.onKeyUp, role: "
|
|
55
|
+
return (h(Host, { onClick: this.onClick, onKeyup: this.onKeyUp, role: "menu", tabindex: "0", "aria-selected": selected ? 'true' : null, id: tab !== undefined ? `navbar-item-${tab}` : null, disabled: disabled, class: {
|
|
56
56
|
'navbar-item': true,
|
|
57
57
|
'tab-selected': selected,
|
|
58
58
|
'tab-disabled': disabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navbar-item.js","sourceRoot":"","sources":["../../../src/components/navbar-item/navbar-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AAE/F;;;;GAIG;AAOH,MAAM,OAAO,UAAU;;IAiFb,YAAO,GAAG,CAAC,EAAiB,EAAE,EAAE;MACtC,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE;QACxC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;OACpB;IACH,CAAC,CAAC;IAEM,YAAO,GAAG,CAAC,EAAS,EAAE,EAAE;MAC9B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC,CAAC;oBAlFiB,KAAK;;;;oBAyBY,KAAK;;;;EAyBzC,eAAe,CAAC,EAAe;IAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;EAC7C,CAAC;EAEO,SAAS,CAAC,EAAyB;IACzC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;MAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAClB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;UAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;UACb,IAAI,EAAE,IAAI,CAAC,IAAI;UACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;UAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;UACb,IAAI,EAAE,IAAI,CAAC,IAAI;UACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;OACJ;MACD,IAAG,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;QAC1B,EAAE,CAAC,cAAc,EAAE,CAAC;OACrB;KACF;EACH,CAAC;EAYD,MAAM;IACJ,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC5D,MAAM,KAAK,GAAG;MACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;MACvB,IAAI;MACJ,GAAG;MACH,MAAM;KACP,CAAC;IAEF,OAAO,CACL,EAAC,IAAI,IACH,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAC,
|
|
1
|
+
{"version":3,"file":"navbar-item.js","sourceRoot":"","sources":["../../../src/components/navbar-item/navbar-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AAE/F;;;;GAIG;AAOH,MAAM,OAAO,UAAU;;IAiFb,YAAO,GAAG,CAAC,EAAiB,EAAE,EAAE;MACtC,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE;QACxC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;OACpB;IACH,CAAC,CAAC;IAEM,YAAO,GAAG,CAAC,EAAS,EAAE,EAAE;MAC9B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC,CAAC;oBAlFiB,KAAK;;;;oBAyBY,KAAK;;;;EAyBzC,eAAe,CAAC,EAAe;IAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;EAC7C,CAAC;EAEO,SAAS,CAAC,EAAyB;IACzC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;MAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAClB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;UAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;UACb,IAAI,EAAE,IAAI,CAAC,IAAI;UACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;UAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;UACb,IAAI,EAAE,IAAI,CAAC,IAAI;UACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;OACJ;MACD,IAAG,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;QAC1B,EAAE,CAAC,cAAc,EAAE,CAAC;OACrB;KACF;EACH,CAAC;EAYD,MAAM;IACJ,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC5D,MAAM,KAAK,GAAG;MACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;MACvB,IAAI;MACJ,GAAG;MACH,MAAM;KACP,CAAC;IAEF,OAAO,CACL,EAAC,IAAI,IACH,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAC,MAAM,EACX,QAAQ,EAAC,GAAG,mBACG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EACvC,EAAE,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EACnD,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE;QACL,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,QAAQ;OACzB;MAED,yBAAO,KAAK,IAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,QAAQ;QAC7D,YAAM,KAAK,EAAC,cAAc;UACxB,eAAO,CACF,CACL,CACC,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEF","sourcesContent":["import { Component, Host, h, Element, Prop, Event, EventEmitter, Listen } from '@stencil/core';\n\n/**\n * @slot - Content of the item, it should be road-icon and road-label elements.\n *\n * @part native - The native HTML anchor element that wraps all child elements.\n */\n\n@Component({\n tag: 'road-navbar-item',\n styleUrl: 'navbar-item.css',\n shadow: true,\n})\nexport class NavbarItem {\n\n @Element() el!: HTMLRoadNavbarItemElement;\n\n /**\n * If `true`, the user cannot interact with the tab button.\n */\n @Prop() disabled = false;\n\n /**\n * This attribute instructs browsers to download a URL instead of navigating to\n * it, so the user will be prompted to save it as a local file. If the attribute\n * has a value, it is used as the pre-filled file name in the Save prompt\n * (the user can still change the file name if they want).\n */\n @Prop() download: string | undefined;\n\n /**\n * Contains a URL or a URL fragment that the hyperlink points to.\n * If this property is set, an anchor tag will be rendered.\n */\n @Prop() href: string | undefined;\n\n /**\n * Specifies the relationship of the target object to the link object.\n * The value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).\n */\n @Prop() rel: string | undefined;\n\n /**\n * The selected tab component\n */\n @Prop({ mutable: true }) selected = false;\n\n /**\n * A tab id must be provided for each `road-tab`. It's used internally to reference\n * the selected tab.\n */\n @Prop() tab?: string;\n\n /**\n * Specifies where to display the linked URL.\n * Only applies when an `href` is provided.\n * Special keywords: `\"_blank\"`, `\"_self\"`, `\"_parent\"`, `\"_top\"`.\n */\n @Prop() target: string | undefined;\n\n /**\n * Emitted when the tab bar is clicked\n * @internal\n */\n @Event() roadnavbaritemclick!: EventEmitter;\n /** @internal */\n @Event() roadNavbarItemClick!: EventEmitter;\n\n @Listen('roadNavbarChanged', { target: 'window' })\n @Listen('roadnavbarchanged', { target: 'window' })\n onNavbarChanged(ev: CustomEvent) {\n this.selected = this.tab === ev.detail.tab;\n }\n\n private selectTab(ev: Event | KeyboardEvent) {\n if (this.tab !== undefined) {\n if (!this.disabled) {\n this.roadnavbaritemclick.emit({\n tab: this.tab,\n href: this.href,\n selected: this.selected,\n });\n this.roadNavbarItemClick.emit({\n tab: this.tab,\n href: this.href,\n selected: this.selected,\n });\n }\n if(this.href === undefined) {\n ev.preventDefault();\n }\n }\n }\n\n private onKeyUp = (ev: KeyboardEvent) => {\n if (ev.key === 'Enter' || ev.key === ' ') {\n this.selectTab(ev);\n }\n };\n\n private onClick = (ev: Event) => {\n this.selectTab(ev);\n };\n\n render() {\n const { href, rel, target, selected, tab, disabled } = this;\n const attrs = {\n download: this.download,\n href,\n rel,\n target,\n };\n\n return (\n <Host\n onClick={this.onClick}\n onKeyup={this.onKeyUp}\n role=\"menu\"\n tabindex=\"0\"\n aria-selected={selected ? 'true' : null}\n id={tab !== undefined ? `navbar-item-${tab}` : null}\n disabled={disabled}\n class={{\n 'navbar-item': true,\n 'tab-selected': selected,\n 'tab-disabled': disabled,\n }}\n >\n <a {...attrs} tabIndex={-1} class=\"button-native\" part=\"native\">\n <span class=\"button-inner\">\n <slot/>\n </span>\n </a>\n </Host>\n );\n }\n\n}\n"]}
|
|
@@ -10,7 +10,7 @@ export const Playground = () => html`
|
|
|
10
10
|
<br><br>
|
|
11
11
|
|
|
12
12
|
<a class="link d-inline-flex align-items-center" href="#">
|
|
13
|
-
<road-icon size="sm" class="mr-4" name="edit-pen"></road-icon>
|
|
13
|
+
<road-icon size="sm" class="mr-4" name="edit-pen" role="img"></road-icon>
|
|
14
14
|
Link
|
|
15
15
|
</a>
|
|
16
16
|
|
|
@@ -18,7 +18,7 @@ export const Playground = () => html`
|
|
|
18
18
|
|
|
19
19
|
<a class="link d-inline-flex align-items-center" href="#">
|
|
20
20
|
Link
|
|
21
|
-
<road-icon size="sm" class="mr-4" name="arrow"></road-icon>
|
|
21
|
+
<road-icon size="sm" class="mr-4" name="arrow" role="img"></road-icon>
|
|
22
22
|
</a>
|
|
23
23
|
`;
|
|
24
24
|
|
|
@@ -43,8 +43,44 @@ export class RoadPhoneNumberInput {
|
|
|
43
43
|
}
|
|
44
44
|
// On user input
|
|
45
45
|
handleInput(event) {
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
// Récupérer la valeur saisie
|
|
47
|
+
const inputValue = event.detail.value || '';
|
|
48
|
+
// Vérifier si la valeur contient uniquement des chiffres ou le symbole "+"
|
|
49
|
+
const containsOnlyNumbersAndPlus = /^[0-9+]*$/.test(inputValue);
|
|
50
|
+
// Vérifier si la valeur contient des lettres
|
|
51
|
+
const containsLetters = /[a-zA-Z]/.test(inputValue);
|
|
52
|
+
// Vérifier si la valeur commence par un chiffre
|
|
53
|
+
const startsWithNumber = /^[0-9]/.test(inputValue);
|
|
54
|
+
// Si la valeur contient des lettres, ne pas la mettre à jour
|
|
55
|
+
if (containsLetters) {
|
|
56
|
+
// Réinitialiser la valeur du champ de saisie à son état précédent
|
|
57
|
+
const inputElement = this.el.querySelector('#phone-number');
|
|
58
|
+
if (inputElement) {
|
|
59
|
+
inputElement.value = this.phoneNumber;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else if (containsOnlyNumbersAndPlus && !startsWithNumber) {
|
|
63
|
+
// Si la valeur contient des chiffres ou le symbole "+" mais ne commence pas par un chiffre, mettre à jour la valeur
|
|
64
|
+
this.phoneNumber = inputValue;
|
|
65
|
+
this.createAndDispatchPhoneData();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// On user key up
|
|
69
|
+
handleKeyUp(event) {
|
|
70
|
+
// Récupérer la valeur saisie
|
|
71
|
+
const inputValue = event.target.value || '';
|
|
72
|
+
// Vérifier si la valeur contient uniquement des chiffres ou le symbole "+"
|
|
73
|
+
const containsOnlyNumbersAndPlus = /^[0-9+]*$/.test(inputValue);
|
|
74
|
+
// Si la valeur ne contient pas uniquement des chiffres ou le symbole "+", réinitialiser le champ de saisie à son état précédent
|
|
75
|
+
if (!containsOnlyNumbersAndPlus) {
|
|
76
|
+
// Réinitialiser la valeur du champ de saisie à son état précédent
|
|
77
|
+
event.target.value = this.phoneNumber;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
// Si la valeur contient uniquement des chiffres ou le symbole "+", mettre à jour la valeur du numéro de téléphone
|
|
81
|
+
this.phoneNumber = inputValue;
|
|
82
|
+
this.createAndDispatchPhoneData();
|
|
83
|
+
}
|
|
48
84
|
}
|
|
49
85
|
// On user select
|
|
50
86
|
handleSelect(event) {
|
|
@@ -135,7 +171,7 @@ export class RoadPhoneNumberInput {
|
|
|
135
171
|
}
|
|
136
172
|
placeErrorMessage() {
|
|
137
173
|
this.waitForElementToExist('.invalid-feedback').then((messError) => {
|
|
138
|
-
messError.style.display = "
|
|
174
|
+
messError.style.display = "flex";
|
|
139
175
|
messError.style.marginTop = "-0.5rem";
|
|
140
176
|
const phoneNumberInput = this.el;
|
|
141
177
|
phoneNumberInput.appendChild(messError);
|
|
@@ -164,7 +200,7 @@ export class RoadPhoneNumberInput {
|
|
|
164
200
|
const valueId = selectId + '-value';
|
|
165
201
|
const isInvalidClass = this.errorMessage.length ? 'is-invalid' : '';
|
|
166
202
|
const isErrorClass = this.errorMessage.length ? 'is-error' : '';
|
|
167
|
-
return (h(Host, null, h("road-input-group", null, h("div", { class: `road-phone-input-select ${isErrorClass}`, slot: "prepend" }, h("select", { id: 'phone-number-input', class: `form-select-area has-value ${isInvalidClass}`, "aria-disabled": this.disabled ? 'true' : null, disabled: this.disabled, onChange: (event) => this.handleSelect(event) }, this.countryOptions && this.countryOptions.map(option => (h("option", { value: option.value, disabled: option.disabled, selected: option.selected }, option.label)))), h("label", { class: "form-select-area-label", id: labelId, htmlFor: selectId }, this.codeLabel), h("label", { class: "form-select-area-value", id: valueId, htmlFor: selectId }, "+", this.selectedCountryCode)), h("road-input", { id: "phone-number", sizes: "xl", label: this.phoneLabel, value: this.phoneValue, onRoadChange: (event) => this.handleInput(event), required: this.required, error: this.errorMessage }))));
|
|
203
|
+
return (h(Host, null, h("road-input-group", null, h("div", { class: `road-phone-input-select ${isErrorClass}`, slot: "prepend" }, h("select", { id: 'phone-number-input', class: `form-select-area has-value ${isInvalidClass}`, "aria-disabled": this.disabled ? 'true' : null, disabled: this.disabled, onChange: (event) => this.handleSelect(event), "aria-label": this.codeLabel, tabIndex: this.disabled ? -1 : 0 }, this.countryOptions && this.countryOptions.map(option => (h("option", { value: option.value, disabled: option.disabled, selected: option.selected }, option.label)))), h("label", { class: "form-select-area-label", id: labelId, htmlFor: selectId }, this.codeLabel), h("label", { class: "form-select-area-value", id: valueId, htmlFor: selectId }, "+", this.selectedCountryCode)), h("road-input", { id: "phone-number", sizes: "xl", label: this.phoneLabel, value: this.phoneValue, onRoadChange: (event) => this.handleInput(event), required: this.required, error: this.errorMessage, onKeyUp: (event) => this.handleKeyUp(event), tabIndex: 0 }))));
|
|
168
204
|
}
|
|
169
205
|
static get is() { return "road-phone-number-input"; }
|
|
170
206
|
static get encapsulation() { return "scoped"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phone-number-input.js","sourceRoot":"","sources":["../../../src/components/phone-number-input/phone-number-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, Element, Host, State, h, Event, EventEmitter, Watch } from '@stencil/core';\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport { CountryOption, CountryType, PhoneReturnType, ReturnObject } from './interfaces';\nimport { RoadInputCustomEvent } from '../../components';\n\nlet selectIds = 0;\n\n@Component({\n tag: 'road-phone-number-input',\n styleUrl: 'phone-number-input.css',\n scoped: true,\n})\nexport class RoadPhoneNumberInput {\n\n /** Computed phone data */\n @Event() roadPhoneNumberInput!: EventEmitter<{\n isError: boolean;\n phone: {\n numberType: string;\n countryCode: string;\n nationalNumber: string;\n code: string;\n internationalNumber: string;\n };\n }>;\n\n @Element() el!: HTMLRoadPhoneNumberInputElement;\n\n /** Disable both fields */\n @Prop() disabled: boolean = false;\n\n /** List of countries displayed in the country selection. Countries will be automatically sorted by alphabetical order (see format in example) */\n @Prop() countryData: CountryType[] = [];\n\n /** Used to display countries with the right language */\n @Prop() language: string = 'fr';\n\n /** Country selection placeHolder */\n @Prop() codeLabel: string = '';\n\n /** Phone input placeHolder */\n @Prop() phoneLabel: string = '';\n\n /** Value displayed in the phone input */\n @Prop() phoneValue?: string;\n\n /** Selected country code */\n @Prop() countryCode?: string;\n\n /** Error message (displayed only if ther is a message) */\n @Prop() errorMessage: string = '';\n\n /** Add a star in the phone input */\n @Prop() required = false;\n\n @State() selectedCountry: string = this.countryData[0].countryCode;\n @State() selectedCountryCode: string = this.countryData[0].phoneCode;\n @State() phoneNumber: string = '';\n @State() countryOptions: CountryOption[] = [];\n @State() returnObject: ReturnObject = {\n isError: false,\n phone: this.resetPhoneUtilData(),\n };\n\n @Watch('errorMessage')\n updateMessagePosition() {\n this.placeErrorMessage();\n }\n\n // On component load\n componentWillLoad() {\n this.placeErrorMessage();\n let fromSelect = false;\n\n if (this.phoneValue) {\n this.phoneNumber = this.phoneValue;\n }\n\n if (this.countryCode) {\n this.selectedCountry = this.countryCode;\n if (this.getPhoneCodeFromCountryCode(this.countryCode)) {\n this.updateSelectedCountryCode(this.getPhoneCodeFromCountryCode(this.countryCode)!);\n fromSelect = true;\n }\n }\n\n this.updateCountryOptions();\n this.createAndDispatchPhoneData(fromSelect);\n }\n\n // On user input\n handleInput(event: RoadInputCustomEvent<{\n value: string | null | undefined;\n }>) {\n this.phoneNumber = event.detail.value!;\n this.createAndDispatchPhoneData();\n }\n\n // On user select\n handleSelect(event: Event) {\n const select = event.target as HTMLSelectElement | null;\n if (select) {\n this.updateSelectedCountry(select.value);\n this.updateSelectedCountryCode(this.getPhoneCodeFromCountryCode(this.selectedCountry)!);\n }\n this.createAndDispatchPhoneData(true);\n this.updateCountryOptions();\n }\n\n createAndDispatchPhoneData(fromSelect?: boolean) {\n // Init phone util\n const phoneUtil = PhoneNumberUtil.getInstance();\n const PNF = PhoneNumberFormat;\n\n // Reset the return object data\n this.returnObject.phone = this.resetPhoneUtilData();\n\n const tmpCountry = this.selectedCountry.length ? this.selectedCountry : this.countryData[0].countryCode;\n\n try {\n const parsedPhoneNumber = phoneUtil.parse(this.phoneNumber, tmpCountry);\n this.returnObject.isError = !phoneUtil.isValidNumber(parsedPhoneNumber) && !this.isEmptyPhoneNumber();\n this.returnObject.phone.nationalNumber = phoneUtil.format(parsedPhoneNumber, PNF.NATIONAL);\n this.returnObject.phone.internationalNumber = phoneUtil.format(parsedPhoneNumber, PNF.INTERNATIONAL);\n\n // Set the country code values depending on the event origin\n if (phoneUtil.getRegionCodeForNumber(parsedPhoneNumber)) {\n if (fromSelect) {\n this.returnObject.isError = !(\n phoneUtil.isValidNumber(parsedPhoneNumber) &&\n phoneUtil.isValidNumberForRegion(parsedPhoneNumber, this.selectedCountry) &&\n !this.isEmptyPhoneNumber()\n );\n } else {\n this.updateSelectedCountryCode(parsedPhoneNumber.getCountryCode()!.toString());\n this.updateSelectedCountry(phoneUtil.getRegionCodeForNumber(parsedPhoneNumber)!);\n\n this.returnObject.phone.countryCode = this.selectedCountry;\n this.returnObject.phone.code = this.selectedCountryCode;\n }\n this.updateCountryOptions();\n }\n\n const phoneType = Object.entries(PhoneNumberType).find(entry => entry[1] === phoneUtil.getNumberType(parsedPhoneNumber))!;\n this.returnObject.phone.numberType = phoneType[0];\n } catch {} finally {\n this.roadPhoneNumberInput.emit(this.returnObject);\n }\n }\n\n // utils\n\n updateSelectedCountryCode(countryCode: string) {\n this.selectedCountryCode = countryCode;\n }\n\n updateSelectedCountry(value: string) {\n this.selectedCountry = value;\n }\n\n resetPhoneUtilData(): PhoneReturnType {\n return {\n numberType: 'UNKNOWN',\n countryCode: this.selectedCountry,\n code: this.selectedCountryCode,\n nationalNumber: this.phoneNumber,\n internationalNumber: this.phoneNumber,\n };\n }\n\n isEmptyPhoneNumber(): boolean {\n return !this.phoneNumber.length;\n }\n\n getPhoneCodeFromCountryCode(countryCode: string): string | undefined {\n return this.countryData.find(country => country.countryCode === countryCode)?.phoneCode;\n }\n\n updateCountryOptions() {\n const validLanguage = this.countryData[0].translations[this.language] ? this.language : 'fr';\n this.countryOptions = [\n ...this.countryData\n .sort((a, b) => a.translations[validLanguage].localeCompare(b.translations[validLanguage]))\n .map(country => ({\n value: country.countryCode,\n label: `${country.translations[validLanguage]} (+${country.phoneCode})`,\n selected: country.countryCode === this.selectedCountry,\n disabled: false,\n })\n ),\n {\n value: '',\n label: '--',\n selected: this.countryData.every((country) => country.countryCode !== this.selectedCountry),\n disabled: true,\n },\n ];\n }\n\n placeErrorMessage() {\n this.waitForElementToExist('.invalid-feedback').then((messError: HTMLElement) => {\n messError.style.display = \"block\";\n messError.style.marginTop = \"-0.5rem\";\n const phoneNumberInput = (this.el as HTMLRoadPhoneNumberInputElement);\n phoneNumberInput.appendChild(messError);\n });\n }\n\n waitForElementToExist(selector: string): Promise<HTMLElement> {\n return new Promise(resolve => {\n if (document.querySelector(selector)) {\n return resolve(document.querySelector(selector) as HTMLElement);\n }\n\n const observer = new MutationObserver(() => {\n if (document.querySelector(selector)) {\n resolve(document.querySelector(selector) as HTMLElement);\n observer.disconnect();\n }\n });\n\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n });\n });\n }\n\n render() {\n const selectId = `road-select-${selectIds++}`;\n const labelId = selectId + '-label';\n const valueId = selectId + '-value';\n const isInvalidClass = this.errorMessage.length ? 'is-invalid' : '';\n const isErrorClass = this.errorMessage.length ? 'is-error' : '';\n\n return (\n <Host>\n <road-input-group>\n <div class={`road-phone-input-select ${isErrorClass}`} slot=\"prepend\">\n <select\n id='phone-number-input'\n class={`form-select-area has-value ${isInvalidClass}`}\n aria-disabled={this.disabled ? 'true' : null}\n disabled={this.disabled}\n onChange={(event) => this.handleSelect(event)}\n >\n {this.countryOptions && this.countryOptions.map(option => (\n <option value={option.value} disabled={option.disabled} selected={option.selected}>{option.label}</option>\n ))}\n </select>\n <label class=\"form-select-area-label\" id={labelId} htmlFor={selectId}>{this.codeLabel}</label>\n <label class=\"form-select-area-value\" id={valueId} htmlFor={selectId}>+{this.selectedCountryCode}</label>\n </div>\n <road-input\n id=\"phone-number\"\n sizes=\"xl\"\n label={this.phoneLabel}\n value={this.phoneValue}\n onRoadChange={(event) => this.handleInput(event)}\n required={this.required}\n error={this.errorMessage}\n >\n </road-input>\n </road-input-group>\n </Host>\n );\n }\n}\n\n\n"]}
|
|
1
|
+
{"version":3,"file":"phone-number-input.js","sourceRoot":"","sources":["../../../src/components/phone-number-input/phone-number-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, Element, Host, State, h, Event, EventEmitter, Watch } from '@stencil/core';\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport { CountryOption, CountryType, PhoneReturnType, ReturnObject } from './interfaces';\nimport { RoadInputCustomEvent } from '../../components';\n\nlet selectIds = 0;\n\n@Component({\n tag: 'road-phone-number-input',\n styleUrl: 'phone-number-input.css',\n scoped: true,\n})\nexport class RoadPhoneNumberInput {\n\n /** Computed phone data */\n @Event() roadPhoneNumberInput!: EventEmitter<{\n isError: boolean;\n phone: {\n numberType: string;\n countryCode: string;\n nationalNumber: string;\n code: string;\n internationalNumber: string;\n };\n }>;\n\n @Element() el!: HTMLRoadPhoneNumberInputElement;\n\n /** Disable both fields */\n @Prop() disabled: boolean = false;\n\n /** List of countries displayed in the country selection. Countries will be automatically sorted by alphabetical order (see format in example) */\n @Prop() countryData: CountryType[] = [];\n\n /** Used to display countries with the right language */\n @Prop() language: string = 'fr';\n\n /** Country selection placeHolder */\n @Prop() codeLabel: string = '';\n\n /** Phone input placeHolder */\n @Prop() phoneLabel: string = '';\n\n /** Value displayed in the phone input */\n @Prop() phoneValue?: string;\n\n /** Selected country code */\n @Prop() countryCode?: string;\n\n /** Error message (displayed only if ther is a message) */\n @Prop() errorMessage: string = '';\n\n /** Add a star in the phone input */\n @Prop() required = false;\n\n @State() selectedCountry: string = this.countryData[0].countryCode;\n @State() selectedCountryCode: string = this.countryData[0].phoneCode;\n @State() phoneNumber: string = '';\n @State() countryOptions: CountryOption[] = [];\n @State() returnObject: ReturnObject = {\n isError: false,\n phone: this.resetPhoneUtilData(),\n };\n\n @Watch('errorMessage')\n updateMessagePosition() {\n this.placeErrorMessage();\n }\n\n // On component load\n componentWillLoad() {\n this.placeErrorMessage();\n let fromSelect = false;\n\n if (this.phoneValue) {\n this.phoneNumber = this.phoneValue;\n }\n\n if (this.countryCode) {\n this.selectedCountry = this.countryCode;\n if (this.getPhoneCodeFromCountryCode(this.countryCode)) {\n this.updateSelectedCountryCode(this.getPhoneCodeFromCountryCode(this.countryCode)!);\n fromSelect = true;\n }\n }\n\n this.updateCountryOptions();\n this.createAndDispatchPhoneData(fromSelect);\n }\n\n// On user input\nhandleInput(event: RoadInputCustomEvent<{\n value: string | null | undefined;\n}>) {\n // Récupérer la valeur saisie\n const inputValue = event.detail.value || '';\n\n // Vérifier si la valeur contient uniquement des chiffres ou le symbole \"+\"\n const containsOnlyNumbersAndPlus = /^[0-9+]*$/.test(inputValue);\n\n // Vérifier si la valeur contient des lettres\n const containsLetters = /[a-zA-Z]/.test(inputValue);\n\n // Vérifier si la valeur commence par un chiffre\n const startsWithNumber = /^[0-9]/.test(inputValue);\n\n // Si la valeur contient des lettres, ne pas la mettre à jour\n if (containsLetters) {\n // Réinitialiser la valeur du champ de saisie à son état précédent\n const inputElement = this.el.querySelector('#phone-number') as HTMLRoadInputElement;\n if (inputElement) {\n inputElement.value = this.phoneNumber;\n }\n } else if (containsOnlyNumbersAndPlus && !startsWithNumber) {\n // Si la valeur contient des chiffres ou le symbole \"+\" mais ne commence pas par un chiffre, mettre à jour la valeur\n this.phoneNumber = inputValue;\n this.createAndDispatchPhoneData();\n }\n}\n\n// On user key up\nhandleKeyUp(event: KeyboardEvent) {\n // Récupérer la valeur saisie\n const inputValue = (event.target as HTMLInputElement).value || '';\n\n // Vérifier si la valeur contient uniquement des chiffres ou le symbole \"+\"\n const containsOnlyNumbersAndPlus = /^[0-9+]*$/.test(inputValue);\n\n // Si la valeur ne contient pas uniquement des chiffres ou le symbole \"+\", réinitialiser le champ de saisie à son état précédent\n if (!containsOnlyNumbersAndPlus) {\n // Réinitialiser la valeur du champ de saisie à son état précédent\n (event.target as HTMLInputElement).value = this.phoneNumber;\n } else {\n // Si la valeur contient uniquement des chiffres ou le symbole \"+\", mettre à jour la valeur du numéro de téléphone\n this.phoneNumber = inputValue;\n this.createAndDispatchPhoneData();\n }\n}\n\n\n\n // On user select\n handleSelect(event: Event) {\n const select = event.target as HTMLSelectElement | null;\n if (select) {\n this.updateSelectedCountry(select.value);\n this.updateSelectedCountryCode(this.getPhoneCodeFromCountryCode(this.selectedCountry)!);\n }\n this.createAndDispatchPhoneData(true);\n this.updateCountryOptions();\n }\n\n createAndDispatchPhoneData(fromSelect?: boolean) {\n // Init phone util\n const phoneUtil = PhoneNumberUtil.getInstance();\n const PNF = PhoneNumberFormat;\n\n // Reset the return object data\n this.returnObject.phone = this.resetPhoneUtilData();\n\n const tmpCountry = this.selectedCountry.length ? this.selectedCountry : this.countryData[0].countryCode;\n\n try {\n const parsedPhoneNumber = phoneUtil.parse(this.phoneNumber, tmpCountry);\n this.returnObject.isError = !phoneUtil.isValidNumber(parsedPhoneNumber) && !this.isEmptyPhoneNumber();\n this.returnObject.phone.nationalNumber = phoneUtil.format(parsedPhoneNumber, PNF.NATIONAL);\n this.returnObject.phone.internationalNumber = phoneUtil.format(parsedPhoneNumber, PNF.INTERNATIONAL);\n\n // Set the country code values depending on the event origin\n if (phoneUtil.getRegionCodeForNumber(parsedPhoneNumber)) {\n if (fromSelect) {\n this.returnObject.isError = !(\n phoneUtil.isValidNumber(parsedPhoneNumber) &&\n phoneUtil.isValidNumberForRegion(parsedPhoneNumber, this.selectedCountry) &&\n !this.isEmptyPhoneNumber()\n );\n } else {\n this.updateSelectedCountryCode(parsedPhoneNumber.getCountryCode()!.toString());\n this.updateSelectedCountry(phoneUtil.getRegionCodeForNumber(parsedPhoneNumber)!);\n\n this.returnObject.phone.countryCode = this.selectedCountry;\n this.returnObject.phone.code = this.selectedCountryCode;\n }\n this.updateCountryOptions();\n }\n\n const phoneType = Object.entries(PhoneNumberType).find(entry => entry[1] === phoneUtil.getNumberType(parsedPhoneNumber))!;\n this.returnObject.phone.numberType = phoneType[0];\n } catch {} finally {\n this.roadPhoneNumberInput.emit(this.returnObject);\n }\n }\n\n // utils\n\n updateSelectedCountryCode(countryCode: string) {\n this.selectedCountryCode = countryCode;\n }\n\n updateSelectedCountry(value: string) {\n this.selectedCountry = value;\n }\n\n resetPhoneUtilData(): PhoneReturnType {\n return {\n numberType: 'UNKNOWN',\n countryCode: this.selectedCountry,\n code: this.selectedCountryCode,\n nationalNumber: this.phoneNumber,\n internationalNumber: this.phoneNumber,\n };\n }\n\n isEmptyPhoneNumber(): boolean {\n return !this.phoneNumber.length;\n }\n\n getPhoneCodeFromCountryCode(countryCode: string): string | undefined {\n return this.countryData.find(country => country.countryCode === countryCode)?.phoneCode;\n }\n\n updateCountryOptions() {\n const validLanguage = this.countryData[0].translations[this.language] ? this.language : 'fr';\n this.countryOptions = [\n ...this.countryData\n .sort((a, b) => a.translations[validLanguage].localeCompare(b.translations[validLanguage]))\n .map(country => ({\n value: country.countryCode,\n label: `${country.translations[validLanguage]} (+${country.phoneCode})`,\n selected: country.countryCode === this.selectedCountry,\n disabled: false,\n })\n ),\n {\n value: '',\n label: '--',\n selected: this.countryData.every((country) => country.countryCode !== this.selectedCountry),\n disabled: true,\n },\n ];\n }\n\n placeErrorMessage() {\n this.waitForElementToExist('.invalid-feedback').then((messError: HTMLElement) => {\n messError.style.display = \"flex\";\n messError.style.marginTop = \"-0.5rem\";\n const phoneNumberInput = (this.el as HTMLRoadPhoneNumberInputElement);\n phoneNumberInput.appendChild(messError);\n });\n }\n\n waitForElementToExist(selector: string): Promise<HTMLElement> {\n return new Promise(resolve => {\n if (document.querySelector(selector)) {\n return resolve(document.querySelector(selector) as HTMLElement);\n }\n\n const observer = new MutationObserver(() => {\n if (document.querySelector(selector)) {\n resolve(document.querySelector(selector) as HTMLElement);\n observer.disconnect();\n }\n });\n\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n });\n });\n }\n\n render() {\n const selectId = `road-select-${selectIds++}`;\n const labelId = selectId + '-label';\n const valueId = selectId + '-value';\n const isInvalidClass = this.errorMessage.length ? 'is-invalid' : '';\n const isErrorClass = this.errorMessage.length ? 'is-error' : '';\n\n return (\n <Host>\n <road-input-group>\n <div class={`road-phone-input-select ${isErrorClass}`} slot=\"prepend\">\n <select\n id='phone-number-input'\n class={`form-select-area has-value ${isInvalidClass}`}\n aria-disabled={this.disabled ? 'true' : null}\n disabled={this.disabled}\n onChange={(event) => this.handleSelect(event)}\n aria-label={this.codeLabel}\n tabIndex={this.disabled ? -1 : 0}\n >\n {this.countryOptions && this.countryOptions.map(option => (\n <option value={option.value} disabled={option.disabled} selected={option.selected}>{option.label}</option>\n ))}\n </select>\n <label class=\"form-select-area-label\" id={labelId} htmlFor={selectId}>{this.codeLabel}</label>\n <label class=\"form-select-area-value\" id={valueId} htmlFor={selectId}>+{this.selectedCountryCode}</label>\n </div>\n <road-input\n id=\"phone-number\"\n sizes=\"xl\"\n label={this.phoneLabel}\n value={this.phoneValue}\n onRoadChange={(event) => this.handleInput(event)}\n required={this.required}\n error={this.errorMessage}\n onKeyUp={(event) => this.handleKeyUp(event)} // Lier la fonction handleKeyUp à l'événement onKeyUp\n tabIndex={0}\n >\n </road-input>\n </road-input-group>\n </Host>\n );\n }\n}\n\n\n"]}
|
|
@@ -82,7 +82,7 @@ export class PlateNumber {
|
|
|
82
82
|
render() {
|
|
83
83
|
const value = this.getValue();
|
|
84
84
|
const motorbikeClass = this.motorbike ? 'motorbike-plate' : '';
|
|
85
|
-
return (h("road-input-group", { class: `plate-number plate-number-${this.country.toLowerCase()} ${motorbikeClass}` }, h("label", { slot: "prepend", class: "input-group-prepend" }, h("div", { class: "plate-number-start" }, h("road-icon", { class: "plate-number-icon", icon: licensePlateStarEu }), h("div", { class: "plate-number-location" }, this.countries
|
|
85
|
+
return (h("road-input-group", { class: `plate-number plate-number-${this.country.toLowerCase()} ${motorbikeClass}` }, h("label", { slot: "prepend", class: "input-group-prepend" }, h("div", { class: "plate-number-start" }, h("road-icon", { class: "plate-number-icon", icon: licensePlateStarEu }), h("div", { class: "plate-number-location", "aria-label": this.country, role: "img" }, this.countries
|
|
86
86
|
.filter(item => item.country === this.country)[0].letter))), this.motorbike
|
|
87
87
|
? (h("textarea", { class: "form-control plate-number-input mb-0", disabled: this.disabled, placeholder: this.placeholder != null ? this.placeholder : this.countries.filter(item => item.country === this.country)[0].placeholder, readOnly: this.readonly, maxlength: "9", rows: 2, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus }))
|
|
88
88
|
: (h("input", { class: "plate-number-input mb-0", disabled: this.disabled, placeholder: this.placeholder != null ? this.placeholder : this.countries.filter(item => item.country === this.country)[0].placeholder, readOnly: this.readonly, value: value, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus })), h("label", { slot: "append", class: "input-group-append" }, h("div", { class: "plate-number-end" }))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plate-number.js","sourceRoot":"","sources":["../../../src/components/plate-number/plate-number.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plate-number.js","sourceRoot":"","sources":["../../../src/components/plate-number/plate-number.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Event, EventEmitter, Watch } from '@stencil/core';\nimport { licensePlateStarEu } from '../../../icons';\n\n@Component({\n tag: 'road-plate-number',\n styleUrl: 'plate-number.css',\n scoped: true,\n})\nexport class PlateNumber {\n\n private countries = [\n {\n country: 'FR',\n letter: 'F',\n placeholder: 'AT-857-YY',\n },\n {\n country: 'BE',\n letter: 'B',\n placeholder: '1-AAA-001',\n },\n {\n country: 'IT',\n letter: 'I',\n placeholder: 'AT 814TX',\n },\n {\n country: 'ES',\n letter: 'E',\n placeholder: '9512 HVY',\n },\n {\n country: 'PT',\n letter: 'P',\n placeholder: '13 24 PZ',\n },\n {\n country: 'PL',\n letter: 'PL',\n placeholder: 'GD 921KF',\n },\n {\n country: 'AT',\n letter: 'A',\n placeholder: 'FF 10 FF',\n },\n {\n country: 'DE',\n letter: 'D',\n placeholder: 'RA KL 8136',\n }\n ];\n\n /**\n * country of the plate\n */\n @Prop() country: 'FR' | 'BE' | 'IT' | 'ES' | 'PT' | 'PL' | 'AT' | 'DE' = 'FR';\n\n /**\n * If `true`, the user cannot interact with the input.\n */\n @Prop() disabled = false;\n\n /**\n * overwrite the default placeholder\n */\n @Prop() placeholder?: string;\n\n /**\n * If `true`, the user cannot modify the value.\n */\n @Prop() readonly = false;\n\n /**\n * The value of the input.\n */\n @Prop({ mutable: true }) value?: string | number | null = '';\n\n /**\n * Enable motorbike display\n */\n @Prop() motorbike?: boolean;\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n this.roadchange.emit({ value: this.value == null ? this.value : this.value.toString() });\n this.roadChange.emit({ value: this.value == null ? this.value : this.value.toString() });\n }\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() roadinput!: EventEmitter<KeyboardEvent>;\n /** @internal */\n @Event() roadInput!: EventEmitter<KeyboardEvent>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() roadchange!: EventEmitter<{\n value: string | undefined | null;\n }>;\n /** @internal */\n @Event() roadChange!: EventEmitter<{\n value: string | undefined | null;\n }>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() roadblur!: EventEmitter<void>;\n /** @internal */\n @Event() roadBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() roadfocus!: EventEmitter<void>;\n /** @internal */\n @Event() roadFocus!: EventEmitter<void>;\n\n private getValue(): string {\n return typeof this.value === 'number'\n ? this.value.toString()\n : (this.value || '').toString();\n }\n\n private onInput = (ev: Event) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) {\n input.value = input.value.toUpperCase() || \"\";\n }\n this.roadinput.emit(ev as KeyboardEvent);\n this.roadInput.emit(ev as KeyboardEvent);\n };\n\n private onBlur = () => {\n this.roadblur.emit();\n this.roadBlur.emit();\n };\n\n private onFocus = () => {\n this.roadfocus.emit();\n this.roadFocus.emit();\n };\n\n render() {\n const value = this.getValue();\n const motorbikeClass = this.motorbike ? 'motorbike-plate' : '';\n\n return (\n <road-input-group class={`plate-number plate-number-${this.country.toLowerCase()} ${motorbikeClass}`}>\n <label slot=\"prepend\" class=\"input-group-prepend\">\n <div class=\"plate-number-start\">\n <road-icon class=\"plate-number-icon\" icon={licensePlateStarEu}></road-icon>\n <div class=\"plate-number-location\" aria-label={this.country} role=\"img\">\n {this.countries\n .filter(item => item.country === this.country)[0].letter}\n </div>\n </div>\n </label>\n {this.motorbike\n ? (\n <textarea\n class=\"form-control plate-number-input mb-0\"\n disabled={this.disabled}\n placeholder={this.placeholder != null ? this.placeholder : this.countries.filter(item => item.country === this.country)[0].placeholder}\n readOnly={this.readonly}\n maxlength=\"9\"\n rows={2}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n >\n </textarea>\n )\n : (\n <input\n class=\"plate-number-input mb-0\"\n disabled={this.disabled}\n placeholder={this.placeholder != null ? this.placeholder : this.countries.filter(item => item.country === this.country)[0].placeholder}\n readOnly={this.readonly}\n value={value}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n />\n )}\n <label slot=\"append\" class=\"input-group-append\">\n <div class=\"plate-number-end\"></div>\n </label>\n </road-input-group>\n );\n }\n\n}"]}
|