@eunomia/elements 1.0.0-beta.6 → 1.0.0-beta.8
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/README.md +1 -1
- package/dist/cdn/components/chunks/{chunk-KDN4O5W2.js → chunk-32L2QYWQ.js} +5 -5
- package/dist/cdn/components/chunks/{chunk-JYIIWN2P.js → chunk-36KLGY6U.js} +8 -8
- package/dist/cdn/components/chunks/chunk-3BMACIDO.js +1 -0
- package/dist/cdn/components/chunks/{chunk-2Y2EU2CI.js → chunk-3UUZM7X2.js} +1 -1
- package/dist/cdn/components/chunks/chunk-55PUDL7D.js +109 -0
- package/dist/cdn/components/chunks/chunk-5LA5DQMP.js +1 -0
- package/dist/cdn/components/chunks/chunk-5LXGJVJR.js +1 -0
- package/dist/cdn/components/chunks/{chunk-ZKZV2YG5.js → chunk-5XPOGBPL.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-LMVW522V.js → chunk-62RLISRD.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-PMPSJG5V.js → chunk-6FYW5TQU.js} +3 -3
- package/dist/cdn/components/chunks/chunk-6TIEBY34.js +1 -0
- package/dist/cdn/components/chunks/{chunk-MOMYII3P.js → chunk-AH2SKZ7T.js} +14 -1
- package/dist/cdn/components/chunks/chunk-AK2DIJX7.js +1 -0
- package/dist/cdn/components/chunks/chunk-B5XMGWM7.js +10 -0
- package/dist/cdn/components/chunks/chunk-GVS6IUKC.js +1 -0
- package/dist/cdn/components/chunks/chunk-GWLD2I3P.js +8 -0
- package/dist/cdn/components/chunks/{chunk-UDVB4LAE.js → chunk-I4ERDXSM.js} +5 -3
- package/dist/cdn/components/chunks/{chunk-QZ5SHR3I.js → chunk-J3SZBXM6.js} +2 -2
- package/dist/cdn/components/chunks/chunk-JAGZL7JH.js +1 -0
- package/dist/cdn/components/chunks/{chunk-VYFR364B.js → chunk-LD35BFNK.js} +18 -17
- package/dist/cdn/components/chunks/{chunk-XDPRWUKN.js → chunk-MQQJ6DID.js} +1 -1
- package/dist/cdn/components/chunks/chunk-P6LGU3FT.js +1 -0
- package/dist/cdn/components/chunks/chunk-QL5GSW2A.js +1 -0
- package/dist/cdn/components/chunks/{chunk-UYZR4JXZ.js → chunk-QSZO4GIH.js} +45 -9
- package/dist/cdn/components/chunks/{chunk-7KKWYPHY.js → chunk-QXQ25SQS.js} +21 -19
- package/dist/cdn/components/chunks/{chunk-SZYEBMG6.js → chunk-QYB6Z6FG.js} +5 -5
- package/dist/cdn/components/chunks/{chunk-RIFF2D2F.js → chunk-RGC3I6MK.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-L2ADCEN7.js → chunk-SVGWCKWT.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-N6ZW5CDN.js → chunk-TCSB2MLU.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-MQQ4BGVJ.js → chunk-TFTRCIIK.js} +7 -6
- package/dist/cdn/components/chunks/chunk-TLBXTBMM.js +46 -0
- package/dist/cdn/components/chunks/chunk-UVHVQRPT.js +1 -0
- package/dist/cdn/components/chunks/chunk-WIUERJII.js +1 -0
- package/dist/cdn/components/chunks/chunk-WW4BTWMH.js +1 -0
- package/dist/cdn/components/eun-alert.js +13 -6
- package/dist/cdn/components/eun-animate.js +6 -6
- package/dist/cdn/components/eun-badge.js +1 -1
- package/dist/cdn/components/eun-button.js +1 -1
- package/dist/cdn/components/eun-calendar.js +2 -2
- package/dist/cdn/components/eun-card.js +4 -4
- package/dist/cdn/components/eun-carousel.js +26 -22
- package/dist/cdn/components/eun-check-card.js +1 -1
- package/dist/cdn/components/eun-checkbox-list.js +11 -8
- package/dist/cdn/components/eun-checkbox.js +1 -1
- package/dist/cdn/components/eun-chip.js +17 -11
- package/dist/cdn/components/eun-collapse.js +1 -1
- package/dist/cdn/components/eun-color-picker.js +74 -69
- package/dist/cdn/components/eun-counter.js +16 -14
- package/dist/cdn/components/eun-date-picker.js +67 -63
- package/dist/cdn/components/eun-description-list.js +2 -2
- package/dist/cdn/components/eun-divider.js +3 -3
- package/dist/cdn/components/eun-drawer.js +21 -22
- package/dist/cdn/components/eun-dropdown-button.js +1 -1
- package/dist/cdn/components/eun-dropdown-item.js +3 -3
- package/dist/cdn/components/eun-fab.js +2 -2
- package/dist/cdn/components/eun-icon.js +1 -1
- package/dist/cdn/components/eun-image-card.js +1 -1
- package/dist/cdn/components/eun-image-carousel.js +10 -10
- package/dist/cdn/components/eun-infinite-list.js +1 -1
- package/dist/cdn/components/eun-input-file.js +21 -21
- package/dist/cdn/components/eun-input-phone.js +16 -12
- package/dist/cdn/components/eun-input.js +1 -1
- package/dist/cdn/components/eun-link.js +59 -13
- package/dist/cdn/components/eun-loader.js +1 -1
- package/dist/cdn/components/eun-modal.js +33 -23
- package/dist/cdn/components/eun-pagination.js +16 -16
- package/dist/cdn/components/eun-password-strength.js +14 -10
- package/dist/cdn/components/eun-radio-card.js +1 -1
- package/dist/cdn/components/eun-radio-list.js +11 -8
- package/dist/cdn/components/eun-radio.js +1 -1
- package/dist/cdn/components/eun-rating.js +276 -0
- package/dist/cdn/components/eun-scheduler-event-editor.js +11 -11
- package/dist/cdn/components/eun-scheduler-event.js +1 -1
- package/dist/cdn/components/eun-scheduler.js +28 -28
- package/dist/cdn/components/eun-search.js +36 -32
- package/dist/cdn/components/eun-select.js +27 -27
- package/dist/cdn/components/eun-sidebar.js +73 -26
- package/dist/cdn/components/eun-skeleton.js +1 -1
- package/dist/cdn/components/eun-slider.js +3 -3
- package/dist/cdn/components/eun-sliding-card.js +1 -1
- package/dist/cdn/components/eun-step.js +5 -4
- package/dist/cdn/components/eun-stepper.js +30 -30
- package/dist/cdn/components/eun-switch.js +1 -1
- package/dist/cdn/components/eun-tab-group.js +4 -4
- package/dist/cdn/components/eun-tab-panel.js +1 -1
- package/dist/cdn/components/eun-tab.js +1 -1
- package/dist/cdn/components/eun-table-action-bar.js +1 -1
- package/dist/cdn/components/eun-table.js +2 -2
- package/dist/cdn/components/eun-tag.js +3 -3
- package/dist/cdn/components/eun-textarea.js +36 -28
- package/dist/cdn/components/eun-time-picker.js +31 -28
- package/dist/cdn/components/eun-toast.js +24 -15
- package/dist/cdn/components/eun-toggle-group.js +75 -37
- package/dist/cdn/components/eun-toggle-item.js +9 -9
- package/dist/cdn/components/eun-toggle.js +2 -2
- package/dist/cdn/components/eun-toolbar.js +22 -22
- package/dist/cdn/components/eun-tooltip.js +6 -6
- package/dist/cdn/styles/eunomia-themes.css +1 -1
- package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
- package/dist/components/action/button/button.d.ts +4 -3
- package/dist/components/action/button/button.js +6 -9
- package/dist/components/action/button/button.styles.js +13 -8
- package/dist/components/action/dropdown-button/dropdown-button.d.ts +4 -6
- package/dist/components/action/dropdown-button/dropdown-button.js +16 -13
- package/dist/components/action/dropdown-button/dropdown-item.d.ts +10 -2
- package/dist/components/action/dropdown-button/dropdown-item.js +24 -9
- package/dist/components/action/link/link.d.ts +10 -1
- package/dist/components/action/link/link.js +13 -1
- package/dist/components/action/link/link.styles.js +50 -3
- package/dist/components/action/toggle/toggle-group.d.ts +12 -2
- package/dist/components/action/toggle/toggle-group.js +18 -3
- package/dist/components/action/toggle/toggle-group.styles.js +58 -20
- package/dist/components/action/toggle/toggle-item.js +1 -3
- package/dist/components/action/toggle/toggle-item.styles.js +7 -7
- package/dist/components/action/toggle/toggle.js +1 -1
- package/dist/components/alert/alert/alert.d.ts +9 -7
- package/dist/components/alert/alert/alert.js +11 -14
- package/dist/components/alert/alert/alert.styles.js +9 -2
- package/dist/components/alert/drawer/drawer.d.ts +30 -5
- package/dist/components/alert/drawer/drawer.js +48 -13
- package/dist/components/alert/drawer/drawer.styles.js +7 -7
- package/dist/components/alert/modal/modal.d.ts +35 -10
- package/dist/components/alert/modal/modal.js +55 -28
- package/dist/components/alert/modal/modal.styles.js +17 -6
- package/dist/components/alert/toast/toast.d.ts +7 -5
- package/dist/components/alert/toast/toast.js +12 -15
- package/dist/components/alert/toast/toast.styles.js +18 -9
- package/dist/components/content/badge/badge.js +2 -2
- package/dist/components/content/card/card.js +1 -1
- package/dist/components/content/card/card.styles.js +2 -2
- package/dist/components/content/chip/chip.d.ts +4 -4
- package/dist/components/content/chip/chip.js +11 -10
- package/dist/components/content/chip/chip.styles.js +9 -3
- package/dist/components/content/description-list/description-list.js +3 -3
- package/dist/components/content/icon/icon.d.ts +3 -0
- package/dist/components/content/icon/icon.js +3 -0
- package/dist/components/content/icon/icon.style.d.ts +2 -0
- package/dist/components/content/icon/icon.style.js +4 -0
- package/dist/components/content/image-carousel/image-carousel.d.ts +12 -12
- package/dist/components/content/image-carousel/image-carousel.js +29 -28
- package/dist/components/content/password-strength/password-strength.d.ts +21 -6
- package/dist/components/content/password-strength/password-strength.js +37 -16
- package/dist/components/content/password-strength/password-strength.styles.js +4 -0
- package/dist/components/content/tag/tag.js +2 -2
- package/dist/components/content/tooltip/tooltip.d.ts +16 -9
- package/dist/components/content/tooltip/tooltip.js +31 -15
- package/dist/components/content/tooltip/tooltip.styles.js +1 -1
- package/dist/components/form/checkbox/check-card.d.ts +1 -0
- package/dist/components/form/checkbox/check-card.js +1 -0
- package/dist/components/form/checkbox/checkbox-list.d.ts +17 -0
- package/dist/components/form/checkbox/checkbox-list.js +39 -10
- package/dist/components/form/checkbox/checkbox.d.ts +1 -0
- package/dist/components/form/checkbox/checkbox.js +3 -1
- package/dist/components/form/checkbox/checkbox.styles.js +3 -2
- package/dist/components/form/color-picker/color-picker.d.ts +47 -28
- package/dist/components/form/color-picker/color-picker.js +73 -51
- package/dist/components/form/color-picker/color-picker.styles.js +14 -1
- package/dist/components/form/counter/counter.d.ts +24 -18
- package/dist/components/form/counter/counter.js +61 -61
- package/dist/components/form/counter/counter.styles.js +6 -4
- package/dist/components/form/date-picker/date-picker.d.ts +33 -7
- package/dist/components/form/date-picker/date-picker.js +82 -56
- package/dist/components/form/date-picker/date-picker.styles.js +9 -6
- package/dist/components/form/input/input.d.ts +43 -39
- package/dist/components/form/input/input.js +91 -110
- package/dist/components/form/input-file/input-file.d.ts +26 -13
- package/dist/components/form/input-file/input-file.js +35 -35
- package/dist/components/form/input-file/input-file.styles.js +4 -4
- package/dist/components/form/input-phone/input-phone.d.ts +28 -5
- package/dist/components/form/input-phone/input-phone.js +47 -13
- package/dist/components/form/input-phone/input-phone.styles.js +6 -3
- package/dist/components/form/radio/radio-card.d.ts +1 -0
- package/dist/components/form/radio/radio-card.js +1 -0
- package/dist/components/form/radio/radio-list.d.ts +23 -7
- package/dist/components/form/radio/radio-list.js +47 -22
- package/dist/components/form/radio/radio.d.ts +1 -0
- package/dist/components/form/radio/radio.js +1 -0
- package/dist/components/form/rating/rating.d.ts +349 -0
- package/dist/components/form/rating/rating.js +665 -0
- package/dist/components/form/rating/rating.styles.d.ts +1 -0
- package/dist/components/form/rating/rating.styles.js +213 -0
- package/dist/components/form/search/search.d.ts +72 -18
- package/dist/components/form/search/search.js +135 -72
- package/dist/components/form/search/search.styles.js +2 -0
- package/dist/components/form/select/select.d.ts +29 -10
- package/dist/components/form/select/select.js +65 -41
- package/dist/components/form/shared-styles/field.styles.js +45 -8
- package/dist/components/form/shared-styles/listbox.styles.js +15 -1
- package/dist/components/form/slider/slider.d.ts +7 -8
- package/dist/components/form/slider/slider.js +9 -12
- package/dist/components/form/switch/switch.d.ts +1 -0
- package/dist/components/form/switch/switch.js +1 -0
- package/dist/components/form/textarea/textarea.d.ts +90 -23
- package/dist/components/form/textarea/textarea.js +194 -44
- package/dist/components/form/textarea/textarea.styles.js +3 -0
- package/dist/components/form/time-picker/time-picker-columns.d.ts +2 -2
- package/dist/components/form/time-picker/time-picker-columns.js +8 -8
- package/dist/components/form/time-picker/time-picker.d.ts +30 -9
- package/dist/components/form/time-picker/time-picker.js +66 -40
- package/dist/components/form/time-picker/time-picker.styles.js +7 -5
- package/dist/components/layout/animate/animate.js +3 -2
- package/dist/components/layout/animate/animate.styles.js +2 -2
- package/dist/components/layout/divider/divider.js +1 -1
- package/dist/components/layout/divider/divider.styles.js +1 -1
- package/dist/components/loader/loader/loader.js +2 -2
- package/dist/components/loader/loader/loader.styles.js +14 -12
- package/dist/components/loader/skeleton/skeleton.js +1 -1
- package/dist/components/navigation/carousel/carousel.d.ts +32 -9
- package/dist/components/navigation/carousel/carousel.js +88 -41
- package/dist/components/navigation/carousel/carousel.styles.js +10 -6
- package/dist/components/navigation/pagination/pagination.d.ts +23 -21
- package/dist/components/navigation/pagination/pagination.js +30 -53
- package/dist/components/navigation/sidebar/sidebar.d.ts +113 -65
- package/dist/components/navigation/sidebar/sidebar.js +161 -118
- package/dist/components/navigation/sidebar/sidebar.styles.d.ts +1 -1
- package/dist/components/navigation/sidebar/sidebar.styles.js +74 -24
- package/dist/components/navigation/stepper/step.js +9 -8
- package/dist/components/navigation/stepper/stepper.d.ts +1 -3
- package/dist/components/navigation/stepper/stepper.js +15 -26
- package/dist/components/navigation/tabs/tab-group/tab-group.js +2 -2
- package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +2 -2
- package/dist/components/navigation/toolbar/toolbar.d.ts +23 -13
- package/dist/components/navigation/toolbar/toolbar.js +28 -35
- package/dist/components/navigation/toolbar/toolbar.styles.js +18 -17
- package/dist/events/select.event.d.ts +3 -2
- package/dist/events/select.event.js +2 -1
- package/dist/features/scheduler/calendar/calendar.js +1 -1
- package/dist/features/scheduler/scheduler/scheduler.d.ts +7 -7
- package/dist/features/scheduler/scheduler/scheduler.js +15 -24
- package/dist/features/scheduler/scheduler-event/scheduler-event.js +3 -3
- package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +1 -1
- package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.d.ts +6 -4
- package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.js +7 -8
- package/dist/features/table/table/table.js +1 -1
- package/dist/features/table/table-action-bar/table-action-bar.js +2 -2
- package/dist/i18n/en.d.ts +68 -0
- package/dist/i18n/en.js +68 -0
- package/dist/i18n/fr.js +68 -2
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1 -0
- package/dist/mixins/button.mixin.d.ts +1 -1
- package/dist/mixins/button.mixin.js +9 -6
- package/dist/mixins/check.mixin.js +11 -10
- package/dist/mixins/dialog-surface.mixin.d.ts +8 -0
- package/dist/mixins/disabled.mixin.d.ts +5 -0
- package/dist/mixins/disabled.mixin.js +21 -1
- package/dist/mixins/editable.mixin.js +28 -5
- package/dist/mixins/field-appearance.mixin.js +3 -2
- package/dist/mixins/field-size.mixin.d.ts +19 -0
- package/dist/mixins/field-size.mixin.js +33 -0
- package/dist/mixins/form.mixin.d.ts +4 -0
- package/dist/mixins/form.mixin.js +87 -13
- package/dist/mixins/localizable.mixin.d.ts +1 -1
- package/dist/mixins/localizable.mixin.js +1 -1
- package/dist/mixins/radio.mixin.js +11 -10
- package/dist/mixins/readonly.mixin.d.ts +2 -1
- package/dist/mixins/readonly.mixin.js +10 -3
- package/dist/mixins/rounded.mixin.d.ts +18 -0
- package/dist/mixins/rounded.mixin.js +32 -0
- package/dist/ssr/alert-ssr.css +187 -0
- package/dist/ssr/badge-ssr.css +67 -0
- package/dist/ssr/breadcrumb-ssr.css +41 -0
- package/dist/ssr/button-ssr.css +5 -5
- package/dist/ssr/card-ssr.css +27 -15
- package/dist/ssr/carousel-ssr.css +247 -0
- package/dist/ssr/checkbox-ssr.css +67 -0
- package/dist/ssr/chip-ssr.css +250 -0
- package/dist/ssr/collapse-ssr.css +180 -0
- package/dist/ssr/field-ssr.css +202 -0
- package/dist/ssr/icon-ssr.css +266 -0
- package/dist/ssr/image-carousel-ssr.css +34 -0
- package/dist/ssr/links-ssr.css +44 -1
- package/dist/ssr/pagination-ssr.css +4 -0
- package/dist/ssr/rating-ssr.css +254 -0
- package/dist/ssr/sidebar-ssr.css +102 -3
- package/dist/ssr/skeleton-ssr.css +63 -0
- package/dist/ssr/tabs-ssr.css +129 -0
- package/dist/ssr/toggle-group-ssr.css +233 -0
- package/dist/ssr/toolbar-ssr.css +81 -2
- package/dist/types/variant.type.d.ts +4 -1
- package/dist/utils/boolean.utils.d.ts +14 -0
- package/dist/utils/boolean.utils.js +20 -0
- package/dist/utils/dropdown-menu.utils.d.ts +1 -1
- package/dist/utils/focusable-elements.utils.d.ts +12 -0
- package/dist/utils/focusable-elements.utils.js +26 -0
- package/dist/utils/implicit-submission.utils.d.ts +18 -0
- package/dist/utils/implicit-submission.utils.js +79 -0
- package/dist/utils/input-modality.utils.d.ts +13 -0
- package/dist/utils/input-modality.utils.js +34 -0
- package/dist/utils/listbox-options.utils.d.ts +11 -0
- package/dist/utils/listbox-options.utils.js +41 -3
- package/dist/utils/theme-generator.utils.d.ts +8 -2
- package/dist/utils/theme-generator.utils.js +30 -9
- package/package.json +26 -7
- package/styles/themes/mixins/eunomia-neutrals.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +6 -2
- package/dist/cdn/components/chunks/chunk-4PI6RDUS.js +0 -1
- package/dist/cdn/components/chunks/chunk-6VK6SHCG.js +0 -1
- package/dist/cdn/components/chunks/chunk-A3X4KD2X.js +0 -1
- package/dist/cdn/components/chunks/chunk-BQFJR2UP.js +0 -110
- package/dist/cdn/components/chunks/chunk-G5SBDQQ3.js +0 -1
- package/dist/cdn/components/chunks/chunk-KSZRQRN4.js +0 -1
- package/dist/cdn/components/chunks/chunk-PE4DAXHQ.js +0 -3
- package/dist/cdn/components/chunks/chunk-RS7TWEMQ.js +0 -1
- package/dist/cdn/components/chunks/chunk-UDOZRIJZ.js +0 -1
- package/dist/cdn/components/chunks/chunk-VOTRXBDS.js +0 -38
|
@@ -11,6 +11,7 @@ import { debounce } from "../../../utils/time.utils.js";
|
|
|
11
11
|
import { SlideChangeEvent } from "../../../events/slidechange.event.js";
|
|
12
12
|
import { carouselStyles } from "./carousel.styles.js";
|
|
13
13
|
import { LocalizableMixin } from "../../../mixins/localizable.mixin.js";
|
|
14
|
+
import { defaultTrueConverter } from "../../../utils/boolean.utils.js";
|
|
14
15
|
/**
|
|
15
16
|
* Tag name of the carousel component.
|
|
16
17
|
*/
|
|
@@ -54,10 +55,10 @@ const ACTIVE_SLIDE_CLASS = "eun-carousel-active-slide";
|
|
|
54
55
|
* @prop {boolean} [showArrows=true] - Shows the previous and next buttons
|
|
55
56
|
* @prop {boolean} [showDots=true] - Shows the pagination dots
|
|
56
57
|
* @attr {string} aria-label - The accessible name for the carousel region. Defaults to Carousel, and is recommended whenever a page has more than one carousel, or its purpose isn't already clear from a preceding heading
|
|
57
|
-
* @prop {string} [
|
|
58
|
-
* @attr {string} [
|
|
59
|
-
* @prop {string} [
|
|
60
|
-
* @attr {string} [
|
|
58
|
+
* @prop {string} [previousLabel] - The accessible label of the previous control. Defaults to the localized string for the current locale (English: "Previous slide")
|
|
59
|
+
* @attr {string} [previous-label] - The accessible label of the previous control. Defaults to the localized string for the current locale (English: "Previous slide")
|
|
60
|
+
* @prop {string} [nextLabel] - The accessible label of the next control. Defaults to the localized string for the current locale (English: "Next slide")
|
|
61
|
+
* @attr {string} [next-label] - The accessible label of the next control. Defaults to the localized string for the current locale (English: "Next slide")
|
|
61
62
|
* @fires {SlideChangeEvent} eunslidechange - Fired once the active slide settles on a new index
|
|
62
63
|
* @cssprop [--carousel-visible-slides] - Sets how many slides are shown at once, overriding visibleSlides. Meant to be changed from your own media or container queries, so the slide count follows the available space without any script
|
|
63
64
|
* @cssprop [--carousel-scroll-step] - Sets how many slides a previous, next, or dot click advances by, overriding scrollStep. Read again whenever the carousel resizes
|
|
@@ -154,8 +155,7 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
|
|
|
154
155
|
* Fades the viewport's edges to hint there's more to scroll — hidden
|
|
155
156
|
* automatically on whichever side is already at its scroll bound (never
|
|
156
157
|
* shown on the left at the very start, or the right at the very end).
|
|
157
|
-
* On by default ;
|
|
158
|
-
* Examples tab for the boolean-attribute caveat that applies here too).
|
|
158
|
+
* On by default ; `edge-fade="false"` turns it off.
|
|
159
159
|
* @default true
|
|
160
160
|
*/
|
|
161
161
|
this.edgeFade = true;
|
|
@@ -428,6 +428,37 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
|
|
|
428
428
|
}
|
|
429
429
|
return Number.parseFloat(getComputedStyle(this.trackEl).paddingLeft) || 0;
|
|
430
430
|
}
|
|
431
|
+
/**
|
|
432
|
+
* Whether the track lays out right to left. Slides then start from the
|
|
433
|
+
* track's right edge and `scrollLeft` runs from `0` down to negative
|
|
434
|
+
* values, so every scroll measurement goes through the logical helpers
|
|
435
|
+
* below instead of reading `left`/`scrollLeft` directly.
|
|
436
|
+
* @private
|
|
437
|
+
*/
|
|
438
|
+
isRtl() {
|
|
439
|
+
return !!this.trackEl && getComputedStyle(this.trackEl).direction === "rtl";
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* How far the track has scrolled from its inline start, always positive
|
|
443
|
+
* whatever the direction.
|
|
444
|
+
* @private
|
|
445
|
+
*/
|
|
446
|
+
getScrollProgress() {
|
|
447
|
+
return this.trackEl ? Math.abs(this.trackEl.scrollLeft) : 0;
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Distance from the track's inline-start edge to a rect's own
|
|
451
|
+
* inline-start edge (`left` in LTR, `right` in RTL), positive toward the
|
|
452
|
+
* end of the track.
|
|
453
|
+
* @param rect the measured element's rect.
|
|
454
|
+
* @param trackRect the track's own rect.
|
|
455
|
+
* @private
|
|
456
|
+
*/
|
|
457
|
+
getInlineStartOffset(rect, trackRect) {
|
|
458
|
+
return this.isRtl()
|
|
459
|
+
? trackRect.right - rect.right
|
|
460
|
+
: rect.left - trackRect.left;
|
|
461
|
+
}
|
|
431
462
|
/**
|
|
432
463
|
* Number of pagination dots, derived from how many `scrollStep`-sized
|
|
433
464
|
* jumps it takes to cover every slide. Rounds up so a trailing partial
|
|
@@ -493,16 +524,16 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
|
|
|
493
524
|
}
|
|
494
525
|
const track = this.trackEl;
|
|
495
526
|
const trackRect = track.getBoundingClientRect();
|
|
496
|
-
const
|
|
527
|
+
const maxScroll = Math.max(0, track.scrollWidth - track.clientWidth);
|
|
528
|
+
const scrolled = this.getScrollProgress();
|
|
497
529
|
const inset = this.getTrackInset();
|
|
498
530
|
let max = 0;
|
|
499
531
|
let closestDistance = Infinity;
|
|
500
532
|
this.slides.forEach((slide, index) => {
|
|
501
|
-
const slideStart = slide.getBoundingClientRect()
|
|
502
|
-
|
|
503
|
-
track.scrollLeft -
|
|
533
|
+
const slideStart = this.getInlineStartOffset(slide.getBoundingClientRect(), trackRect) +
|
|
534
|
+
scrolled -
|
|
504
535
|
inset;
|
|
505
|
-
const distance = Math.abs(slideStart -
|
|
536
|
+
const distance = Math.abs(slideStart - maxScroll);
|
|
506
537
|
if (distance < closestDistance) {
|
|
507
538
|
closestDistance = distance;
|
|
508
539
|
max = index;
|
|
@@ -613,8 +644,9 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
|
|
|
613
644
|
? ((index % (max + 1)) + (max + 1)) % (max + 1)
|
|
614
645
|
: Math.max(0, Math.min(index, max));
|
|
615
646
|
if (!this.centerSnap && target === max) {
|
|
647
|
+
const maxScroll = this.trackEl.scrollWidth - this.trackEl.clientWidth;
|
|
616
648
|
this.trackEl.scrollTo({
|
|
617
|
-
left: this.
|
|
649
|
+
left: this.isRtl() ? -maxScroll : maxScroll,
|
|
618
650
|
behavior: this.scrollBehavior(),
|
|
619
651
|
});
|
|
620
652
|
return;
|
|
@@ -712,27 +744,20 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
|
|
|
712
744
|
}
|
|
713
745
|
const trackRect = this.trackEl.getBoundingClientRect();
|
|
714
746
|
const reference = this.centerSnap
|
|
715
|
-
? trackRect.
|
|
716
|
-
:
|
|
747
|
+
? trackRect.width / 2
|
|
748
|
+
: this.getTrackInset();
|
|
717
749
|
let closestIndex = 0;
|
|
718
750
|
let closestDistance = Infinity;
|
|
719
751
|
this.slides.forEach((slide, index) => {
|
|
720
752
|
const rect = slide.getBoundingClientRect();
|
|
721
|
-
const
|
|
753
|
+
const start = this.getInlineStartOffset(rect, trackRect);
|
|
754
|
+
const point = this.centerSnap ? start + rect.width / 2 : start;
|
|
722
755
|
const distance = Math.abs(point - reference);
|
|
723
756
|
if (distance < closestDistance) {
|
|
724
757
|
closestDistance = distance;
|
|
725
758
|
closestIndex = index;
|
|
726
759
|
}
|
|
727
760
|
});
|
|
728
|
-
// At the true scroll end, the nearest slide to `reference` can sit past
|
|
729
|
-
// `measureMaxIndex`'s result — e.g. when the slide count doesn't evenly
|
|
730
|
-
// divide into pages, the flush-end scroll position (see the `target ===
|
|
731
|
-
// max` branch in `goToIndex`) reveals a trailing slide that ends up
|
|
732
|
-
// closer to `reference` than the officially "reachable" last page. Left
|
|
733
|
-
// unclamped, `currentIndex` would exceed `maxIndex`, which breaks the
|
|
734
|
-
// pagination dot lookup (no dot matches) and gets `previous()` stuck,
|
|
735
|
-
// since it re-targets that same last-page scroll position every time.
|
|
736
761
|
this.maxIndex = this.measureMaxIndex();
|
|
737
762
|
closestIndex = Math.min(closestIndex, this.maxIndex);
|
|
738
763
|
this.slides.forEach((slide, index) => {
|
|
@@ -740,17 +765,21 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
|
|
|
740
765
|
});
|
|
741
766
|
const changedIndex = closestIndex !== this.currentIndex;
|
|
742
767
|
this.currentIndex = closestIndex;
|
|
743
|
-
const
|
|
768
|
+
const scrolled = this.getScrollProgress();
|
|
744
769
|
const maxScroll = this.trackEl.scrollWidth - this.trackEl.clientWidth;
|
|
745
|
-
|
|
746
|
-
|
|
770
|
+
const startFade = scrolled > 1 ? "1" : "0";
|
|
771
|
+
const endFade = scrolled < maxScroll - 1 ? "1" : "0";
|
|
772
|
+
const rtl = this.isRtl();
|
|
773
|
+
this.style.setProperty("--_showLeftFade", rtl ? endFade : startFade);
|
|
774
|
+
this.style.setProperty("--_showRightFade", rtl ? startFade : endFade);
|
|
747
775
|
if (changedIndex) {
|
|
748
776
|
this.scheduleAnnounce();
|
|
749
777
|
}
|
|
750
778
|
}
|
|
751
779
|
/**
|
|
752
780
|
* Handles keyboard navigation on the track : arrow keys page by
|
|
753
|
-
* `scrollStep`, Home/End jump to the bounds.
|
|
781
|
+
* `scrollStep`, Home/End jump to the bounds. Right to left, the arrows
|
|
782
|
+
* swap so each one still moves toward the side it points to.
|
|
754
783
|
*
|
|
755
784
|
* @param event the native keyboard event.
|
|
756
785
|
* @private
|
|
@@ -759,11 +788,21 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
|
|
|
759
788
|
switch (event.key) {
|
|
760
789
|
case "ArrowLeft":
|
|
761
790
|
event.preventDefault();
|
|
762
|
-
this.
|
|
791
|
+
if (this.isRtl()) {
|
|
792
|
+
this.next();
|
|
793
|
+
}
|
|
794
|
+
else {
|
|
795
|
+
this.previous();
|
|
796
|
+
}
|
|
763
797
|
break;
|
|
764
798
|
case "ArrowRight":
|
|
765
799
|
event.preventDefault();
|
|
766
|
-
this.
|
|
800
|
+
if (this.isRtl()) {
|
|
801
|
+
this.previous();
|
|
802
|
+
}
|
|
803
|
+
else {
|
|
804
|
+
this.next();
|
|
805
|
+
}
|
|
767
806
|
break;
|
|
768
807
|
case "Home":
|
|
769
808
|
event.preventDefault();
|
|
@@ -822,8 +861,8 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
|
|
|
822
861
|
id=${direction}
|
|
823
862
|
class="nav"
|
|
824
863
|
aria-label=${isPrev
|
|
825
|
-
? (this.
|
|
826
|
-
: (this.
|
|
864
|
+
? (this.previousLabel ?? this.dictionary.carousel.previous)
|
|
865
|
+
: (this.nextLabel ?? this.dictionary.carousel.next)}
|
|
827
866
|
aria-controls="track"
|
|
828
867
|
?disabled=${disabled}
|
|
829
868
|
@click=${() => (isPrev ? this.previous() : this.next())}
|
|
@@ -892,10 +931,10 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
|
|
|
892
931
|
*/
|
|
893
932
|
EunomiaCarousel.styles = carouselStyles;
|
|
894
933
|
__decorate([
|
|
895
|
-
property({ reflect: true })
|
|
934
|
+
property({ reflect: true, useDefault: true })
|
|
896
935
|
], EunomiaCarousel.prototype, "layout", void 0);
|
|
897
936
|
__decorate([
|
|
898
|
-
property({ reflect: true, attribute: "nav-placement" })
|
|
937
|
+
property({ reflect: true, attribute: "nav-placement", useDefault: true })
|
|
899
938
|
], EunomiaCarousel.prototype, "navPlacement", void 0);
|
|
900
939
|
__decorate([
|
|
901
940
|
property({ type: Number, attribute: "responsive-breakpoint" })
|
|
@@ -904,7 +943,11 @@ __decorate([
|
|
|
904
943
|
property({ type: Number, attribute: "visible-slides" })
|
|
905
944
|
], EunomiaCarousel.prototype, "visibleSlides", void 0);
|
|
906
945
|
__decorate([
|
|
907
|
-
property({
|
|
946
|
+
property({
|
|
947
|
+
converter: defaultTrueConverter,
|
|
948
|
+
reflect: true,
|
|
949
|
+
attribute: "full-slides",
|
|
950
|
+
})
|
|
908
951
|
], EunomiaCarousel.prototype, "fullSlides", void 0);
|
|
909
952
|
__decorate([
|
|
910
953
|
property({ type: Number, attribute: "scroll-step" })
|
|
@@ -913,7 +956,11 @@ __decorate([
|
|
|
913
956
|
property({ type: Boolean, reflect: true, attribute: "center-snap" })
|
|
914
957
|
], EunomiaCarousel.prototype, "centerSnap", void 0);
|
|
915
958
|
__decorate([
|
|
916
|
-
property({
|
|
959
|
+
property({
|
|
960
|
+
converter: defaultTrueConverter,
|
|
961
|
+
reflect: true,
|
|
962
|
+
attribute: "edge-fade",
|
|
963
|
+
})
|
|
917
964
|
], EunomiaCarousel.prototype, "edgeFade", void 0);
|
|
918
965
|
__decorate([
|
|
919
966
|
property({ type: Boolean, reflect: true })
|
|
@@ -925,17 +972,17 @@ __decorate([
|
|
|
925
972
|
property({ type: Number, attribute: "autoplay-interval" })
|
|
926
973
|
], EunomiaCarousel.prototype, "autoplayInterval", void 0);
|
|
927
974
|
__decorate([
|
|
928
|
-
property({
|
|
975
|
+
property({ converter: defaultTrueConverter, attribute: "show-arrows" })
|
|
929
976
|
], EunomiaCarousel.prototype, "showArrows", void 0);
|
|
930
977
|
__decorate([
|
|
931
|
-
property({
|
|
978
|
+
property({ converter: defaultTrueConverter, attribute: "show-dots" })
|
|
932
979
|
], EunomiaCarousel.prototype, "showDots", void 0);
|
|
933
980
|
__decorate([
|
|
934
|
-
property({ attribute: "
|
|
935
|
-
], EunomiaCarousel.prototype, "
|
|
981
|
+
property({ attribute: "previous-label" })
|
|
982
|
+
], EunomiaCarousel.prototype, "previousLabel", void 0);
|
|
936
983
|
__decorate([
|
|
937
|
-
property({ attribute: "
|
|
938
|
-
], EunomiaCarousel.prototype, "
|
|
984
|
+
property({ attribute: "next-label" })
|
|
985
|
+
], EunomiaCarousel.prototype, "nextLabel", void 0);
|
|
939
986
|
__decorate([
|
|
940
987
|
state()
|
|
941
988
|
], EunomiaCarousel.prototype, "currentIndex", void 0);
|
|
@@ -130,8 +130,8 @@ const base = css `
|
|
|
130
130
|
transparent
|
|
131
131
|
);
|
|
132
132
|
}
|
|
133
|
-
:host(:not([edge-fade])) #viewport::before,
|
|
134
|
-
:host(:not([edge-fade])) #viewport::after {
|
|
133
|
+
:host(:is(:not([edge-fade]), [edge-fade="false"])) #viewport::before,
|
|
134
|
+
:host(:is(:not([edge-fade]), [edge-fade="false"])) #viewport::after {
|
|
135
135
|
content: none;
|
|
136
136
|
}
|
|
137
137
|
|
|
@@ -184,7 +184,7 @@ const base = css `
|
|
|
184
184
|
transition: transform var(--eun-duration-m, 200ms)
|
|
185
185
|
var(--eun-easing-default, ease);
|
|
186
186
|
}
|
|
187
|
-
:host([full-slides]) ::slotted(:not([slot])) {
|
|
187
|
+
:host([full-slides]:not([full-slides="false"])) ::slotted(:not([slot])) {
|
|
188
188
|
--_slideBasis: max(
|
|
189
189
|
var(--carousel-min-slide-width, 220px),
|
|
190
190
|
calc(
|
|
@@ -196,7 +196,8 @@ const base = css `
|
|
|
196
196
|
)
|
|
197
197
|
);
|
|
198
198
|
}
|
|
199
|
-
:host(:not([full-slides])
|
|
199
|
+
:host(:is(:not([full-slides]), [full-slides="false"]))
|
|
200
|
+
::slotted(:not([slot])) {
|
|
200
201
|
--_slideBasis: max(
|
|
201
202
|
var(--carousel-min-slide-width, 220px),
|
|
202
203
|
calc(
|
|
@@ -282,11 +283,14 @@ const base = css `
|
|
|
282
283
|
.nav eun-icon {
|
|
283
284
|
pointer-events: none;
|
|
284
285
|
}
|
|
286
|
+
:host(:dir(rtl)) .nav eun-icon {
|
|
287
|
+
transform: scaleX(-1);
|
|
288
|
+
}
|
|
285
289
|
#prev {
|
|
286
|
-
|
|
290
|
+
inset-inline-start: var(--eun-space-s, 8px);
|
|
287
291
|
}
|
|
288
292
|
#next {
|
|
289
|
-
|
|
293
|
+
inset-inline-end: var(--eun-space-s, 8px);
|
|
290
294
|
}
|
|
291
295
|
#viewport .nav {
|
|
292
296
|
box-shadow: var(--carousel-nav-shadow, 0 2px 10px rgba(15, 23, 42, 0.18));
|
|
@@ -3,6 +3,7 @@ import { LitElement, TemplateResult } from "lit";
|
|
|
3
3
|
* Tag name of the pagination component.
|
|
4
4
|
*/
|
|
5
5
|
export declare const EunomiaPaginationTagName = "eun-pagination";
|
|
6
|
+
declare const EunomiaPagination_base: import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/localizable.mixin.js").LocalizableMixinInterface> & typeof LitElement;
|
|
6
7
|
/**
|
|
7
8
|
* A set of page numbers letting someone jump between the pages of a
|
|
8
9
|
* longer list, such as a search results page or a data table, with First,
|
|
@@ -38,16 +39,16 @@ export declare const EunomiaPaginationTagName = "eun-pagination";
|
|
|
38
39
|
* @attr {string} [page-size-options='[]'] - The selectable page sizes, as a JSON array such as [10,25,50]. Setting this renders a page-size selector alongside the page controls. Left empty, the default, no selector is rendered at all
|
|
39
40
|
* @prop {string} [pageSizeLabel='Items per page'] - The label for the page-size selector
|
|
40
41
|
* @attr {string} [page-size-label='Items per page'] - The label for the page-size selector
|
|
41
|
-
* @prop {string} [
|
|
42
|
-
* @attr {string} [
|
|
43
|
-
* @prop {string} [
|
|
44
|
-
* @attr {string} [
|
|
45
|
-
* @prop {string} [
|
|
46
|
-
* @attr {string} [
|
|
47
|
-
* @prop {string} [
|
|
48
|
-
* @attr {string} [
|
|
49
|
-
* @prop {string} [
|
|
50
|
-
* @attr {string} [
|
|
42
|
+
* @prop {string} [previousLabel] - The accessible label of the previous control. Defaults to the localized string for the current locale (English: "Previous page")
|
|
43
|
+
* @attr {string} [previous-label] - The accessible label of the previous control. Defaults to the localized string for the current locale (English: "Previous page")
|
|
44
|
+
* @prop {string} [nextLabel] - The accessible label of the next control. Defaults to the localized string for the current locale (English: "Next page")
|
|
45
|
+
* @attr {string} [next-label] - The accessible label of the next control. Defaults to the localized string for the current locale (English: "Next page")
|
|
46
|
+
* @prop {string} [firstLabel] - The accessible label of the first control. Defaults to the localized string for the current locale (English: "First page")
|
|
47
|
+
* @attr {string} [first-label] - The accessible label of the first control. Defaults to the localized string for the current locale (English: "First page")
|
|
48
|
+
* @prop {string} [lastLabel] - The accessible label of the last control. Defaults to the localized string for the current locale (English: "Last page")
|
|
49
|
+
* @attr {string} [last-label] - The accessible label of the last control. Defaults to the localized string for the current locale (English: "Last page")
|
|
50
|
+
* @prop {string} [pageLabel] - The accessible label prefix applied to every page number control, such as Page 3. Defaults to the localized string for the current locale (English: "Page")
|
|
51
|
+
* @attr {string} [page-label] - The accessible label prefix applied to every page number control, such as Page 3. Defaults to the localized string for the current locale (English: "Page")
|
|
51
52
|
* @attr {string} [aria-label='Pagination'] - The accessible label for the navigation landmark
|
|
52
53
|
* @fires {PageChangeEvent} eunpagechange - Fired with the requested page whenever a control is activated. Page is never updated internally
|
|
53
54
|
* @fires {PageSizeChangeEvent} eunpagesizechange - Fired with the chosen value whenever the page-size selector changes. PageSize is never updated internally
|
|
@@ -68,7 +69,7 @@ export declare const EunomiaPaginationTagName = "eun-pagination";
|
|
|
68
69
|
* @cssprop [--pagination-transition-duration] - Sets the duration of the hover color and background transition
|
|
69
70
|
* @element eun-pagination
|
|
70
71
|
*/
|
|
71
|
-
export declare class EunomiaPagination extends
|
|
72
|
+
export declare class EunomiaPagination extends EunomiaPagination_base {
|
|
72
73
|
/**
|
|
73
74
|
* Styles to import to the component.
|
|
74
75
|
*
|
|
@@ -142,30 +143,30 @@ export declare class EunomiaPagination extends LitElement {
|
|
|
142
143
|
pageSizeLabel: string;
|
|
143
144
|
/**
|
|
144
145
|
* Accessible label of the Previous control.
|
|
145
|
-
*
|
|
146
|
+
* Falls back to the localized string for the current locale when unset.
|
|
146
147
|
*/
|
|
147
|
-
|
|
148
|
+
previousLabel?: string;
|
|
148
149
|
/**
|
|
149
150
|
* Accessible label of the Next control.
|
|
150
|
-
*
|
|
151
|
+
* Falls back to the localized string for the current locale when unset.
|
|
151
152
|
*/
|
|
152
|
-
|
|
153
|
+
nextLabel?: string;
|
|
153
154
|
/**
|
|
154
155
|
* Accessible label of the First control.
|
|
155
|
-
*
|
|
156
|
+
* Falls back to the localized string for the current locale when unset.
|
|
156
157
|
*/
|
|
157
|
-
|
|
158
|
+
firstLabel?: string;
|
|
158
159
|
/**
|
|
159
160
|
* Accessible label of the Last control.
|
|
160
|
-
*
|
|
161
|
+
* Falls back to the localized string for the current locale when unset.
|
|
161
162
|
*/
|
|
162
|
-
|
|
163
|
+
lastLabel?: string;
|
|
163
164
|
/**
|
|
164
165
|
* Accessible label prefix applied to every page number control (e.g.
|
|
165
166
|
* "Page 3").
|
|
166
|
-
*
|
|
167
|
+
* Falls back to the localized string for the current locale when unset.
|
|
167
168
|
*/
|
|
168
|
-
|
|
169
|
+
pageLabel?: string;
|
|
169
170
|
/**
|
|
170
171
|
* Builds the list of entries rendered between the first/previous and
|
|
171
172
|
* next/last controls : the boundary pages, the current page's siblings,
|
|
@@ -244,3 +245,4 @@ declare global {
|
|
|
244
245
|
[EunomiaPaginationTagName]: EunomiaPagination;
|
|
245
246
|
}
|
|
246
247
|
}
|
|
248
|
+
export {};
|
|
@@ -10,6 +10,7 @@ import { ifDefined } from "lit/directives/if-defined.js";
|
|
|
10
10
|
import { PageChangeEvent } from "../../../events/pagechange.event.js";
|
|
11
11
|
import { PageSizeChangeEvent } from "../../../events/pagesizechange.event.js";
|
|
12
12
|
import { paginationStyles } from "./pagination.styles.js";
|
|
13
|
+
import { LocalizableMixin } from "../../../mixins/localizable.mixin.js";
|
|
13
14
|
/**
|
|
14
15
|
* Tag name of the pagination component.
|
|
15
16
|
*/
|
|
@@ -49,16 +50,16 @@ export const EunomiaPaginationTagName = "eun-pagination";
|
|
|
49
50
|
* @attr {string} [page-size-options='[]'] - The selectable page sizes, as a JSON array such as [10,25,50]. Setting this renders a page-size selector alongside the page controls. Left empty, the default, no selector is rendered at all
|
|
50
51
|
* @prop {string} [pageSizeLabel='Items per page'] - The label for the page-size selector
|
|
51
52
|
* @attr {string} [page-size-label='Items per page'] - The label for the page-size selector
|
|
52
|
-
* @prop {string} [
|
|
53
|
-
* @attr {string} [
|
|
54
|
-
* @prop {string} [
|
|
55
|
-
* @attr {string} [
|
|
56
|
-
* @prop {string} [
|
|
57
|
-
* @attr {string} [
|
|
58
|
-
* @prop {string} [
|
|
59
|
-
* @attr {string} [
|
|
60
|
-
* @prop {string} [
|
|
61
|
-
* @attr {string} [
|
|
53
|
+
* @prop {string} [previousLabel] - The accessible label of the previous control. Defaults to the localized string for the current locale (English: "Previous page")
|
|
54
|
+
* @attr {string} [previous-label] - The accessible label of the previous control. Defaults to the localized string for the current locale (English: "Previous page")
|
|
55
|
+
* @prop {string} [nextLabel] - The accessible label of the next control. Defaults to the localized string for the current locale (English: "Next page")
|
|
56
|
+
* @attr {string} [next-label] - The accessible label of the next control. Defaults to the localized string for the current locale (English: "Next page")
|
|
57
|
+
* @prop {string} [firstLabel] - The accessible label of the first control. Defaults to the localized string for the current locale (English: "First page")
|
|
58
|
+
* @attr {string} [first-label] - The accessible label of the first control. Defaults to the localized string for the current locale (English: "First page")
|
|
59
|
+
* @prop {string} [lastLabel] - The accessible label of the last control. Defaults to the localized string for the current locale (English: "Last page")
|
|
60
|
+
* @attr {string} [last-label] - The accessible label of the last control. Defaults to the localized string for the current locale (English: "Last page")
|
|
61
|
+
* @prop {string} [pageLabel] - The accessible label prefix applied to every page number control, such as Page 3. Defaults to the localized string for the current locale (English: "Page")
|
|
62
|
+
* @attr {string} [page-label] - The accessible label prefix applied to every page number control, such as Page 3. Defaults to the localized string for the current locale (English: "Page")
|
|
62
63
|
* @attr {string} [aria-label='Pagination'] - The accessible label for the navigation landmark
|
|
63
64
|
* @fires {PageChangeEvent} eunpagechange - Fired with the requested page whenever a control is activated. Page is never updated internally
|
|
64
65
|
* @fires {PageSizeChangeEvent} eunpagesizechange - Fired with the chosen value whenever the page-size selector changes. PageSize is never updated internally
|
|
@@ -79,7 +80,7 @@ export const EunomiaPaginationTagName = "eun-pagination";
|
|
|
79
80
|
* @cssprop [--pagination-transition-duration] - Sets the duration of the hover color and background transition
|
|
80
81
|
* @element eun-pagination
|
|
81
82
|
*/
|
|
82
|
-
let EunomiaPagination = class EunomiaPagination extends LitElement {
|
|
83
|
+
let EunomiaPagination = class EunomiaPagination extends LocalizableMixin(LitElement) {
|
|
83
84
|
constructor() {
|
|
84
85
|
super(...arguments);
|
|
85
86
|
/**
|
|
@@ -139,32 +140,6 @@ let EunomiaPagination = class EunomiaPagination extends LitElement {
|
|
|
139
140
|
* @default Items per page
|
|
140
141
|
*/
|
|
141
142
|
this.pageSizeLabel = "Items per page";
|
|
142
|
-
/**
|
|
143
|
-
* Accessible label of the Previous control.
|
|
144
|
-
* @default Previous page
|
|
145
|
-
*/
|
|
146
|
-
this.ariaLabelPrevious = "Previous page";
|
|
147
|
-
/**
|
|
148
|
-
* Accessible label of the Next control.
|
|
149
|
-
* @default Next page
|
|
150
|
-
*/
|
|
151
|
-
this.ariaLabelNext = "Next page";
|
|
152
|
-
/**
|
|
153
|
-
* Accessible label of the First control.
|
|
154
|
-
* @default First page
|
|
155
|
-
*/
|
|
156
|
-
this.ariaLabelFirst = "First page";
|
|
157
|
-
/**
|
|
158
|
-
* Accessible label of the Last control.
|
|
159
|
-
* @default Last page
|
|
160
|
-
*/
|
|
161
|
-
this.ariaLabelLast = "Last page";
|
|
162
|
-
/**
|
|
163
|
-
* Accessible label prefix applied to every page number control (e.g.
|
|
164
|
-
* "Page 3").
|
|
165
|
-
* @default Page
|
|
166
|
-
*/
|
|
167
|
-
this.ariaLabelPage = "Page";
|
|
168
143
|
}
|
|
169
144
|
/**
|
|
170
145
|
* Builds the list of entries rendered between the first/previous and
|
|
@@ -319,7 +294,8 @@ let EunomiaPagination = class EunomiaPagination extends LitElement {
|
|
|
319
294
|
<span
|
|
320
295
|
class="page current"
|
|
321
296
|
aria-current="page"
|
|
322
|
-
aria-label="${this.
|
|
297
|
+
aria-label="${this.pageLabel ??
|
|
298
|
+
this.dictionary.pagination.page} ${item}"
|
|
323
299
|
>${item}</span
|
|
324
300
|
>
|
|
325
301
|
</li>
|
|
@@ -330,7 +306,8 @@ let EunomiaPagination = class EunomiaPagination extends LitElement {
|
|
|
330
306
|
<button
|
|
331
307
|
type="button"
|
|
332
308
|
class="control page"
|
|
333
|
-
aria-label="${this.
|
|
309
|
+
aria-label="${this.pageLabel ??
|
|
310
|
+
this.dictionary.pagination.page} ${item}"
|
|
334
311
|
?disabled=${this.disabled}
|
|
335
312
|
@click=${() => this.requestPage(item)}
|
|
336
313
|
>
|
|
@@ -347,17 +324,17 @@ let EunomiaPagination = class EunomiaPagination extends LitElement {
|
|
|
347
324
|
<ul id="list" role="list">
|
|
348
325
|
${this.hideFirstLast
|
|
349
326
|
? nothing
|
|
350
|
-
: this.renderControl(1, this.
|
|
327
|
+
: this.renderControl(1, this.firstLabel ?? this.dictionary.pagination.first, "first_page", this.page <= 1, "start")}
|
|
351
328
|
${this.hidePrevNext
|
|
352
329
|
? nothing
|
|
353
|
-
: this.renderControl(this.page - 1, this.
|
|
330
|
+
: this.renderControl(this.page - 1, this.previousLabel ?? this.dictionary.pagination.previous, "chevron_left", this.page <= 1, "start")}
|
|
354
331
|
${this.getPageItems().map((item) => this.renderItem(item))}
|
|
355
332
|
${this.hidePrevNext
|
|
356
333
|
? nothing
|
|
357
|
-
: this.renderControl(this.page + 1, this.
|
|
334
|
+
: this.renderControl(this.page + 1, this.nextLabel ?? this.dictionary.pagination.next, "chevron_right", this.page >= this.totalPages, "end")}
|
|
358
335
|
${this.hideFirstLast
|
|
359
336
|
? nothing
|
|
360
|
-
: this.renderControl(this.totalPages, this.
|
|
337
|
+
: this.renderControl(this.totalPages, this.lastLabel ?? this.dictionary.pagination.last, "last_page", this.page >= this.totalPages, "end")}
|
|
361
338
|
</ul>
|
|
362
339
|
</nav>
|
|
363
340
|
`;
|
|
@@ -406,20 +383,20 @@ __decorate([
|
|
|
406
383
|
property({ attribute: "page-size-label" })
|
|
407
384
|
], EunomiaPagination.prototype, "pageSizeLabel", void 0);
|
|
408
385
|
__decorate([
|
|
409
|
-
property({ attribute: "
|
|
410
|
-
], EunomiaPagination.prototype, "
|
|
386
|
+
property({ attribute: "previous-label" })
|
|
387
|
+
], EunomiaPagination.prototype, "previousLabel", void 0);
|
|
411
388
|
__decorate([
|
|
412
|
-
property({ attribute: "
|
|
413
|
-
], EunomiaPagination.prototype, "
|
|
389
|
+
property({ attribute: "next-label" })
|
|
390
|
+
], EunomiaPagination.prototype, "nextLabel", void 0);
|
|
414
391
|
__decorate([
|
|
415
|
-
property({ attribute: "
|
|
416
|
-
], EunomiaPagination.prototype, "
|
|
392
|
+
property({ attribute: "first-label" })
|
|
393
|
+
], EunomiaPagination.prototype, "firstLabel", void 0);
|
|
417
394
|
__decorate([
|
|
418
|
-
property({ attribute: "
|
|
419
|
-
], EunomiaPagination.prototype, "
|
|
395
|
+
property({ attribute: "last-label" })
|
|
396
|
+
], EunomiaPagination.prototype, "lastLabel", void 0);
|
|
420
397
|
__decorate([
|
|
421
|
-
property({ attribute: "
|
|
422
|
-
], EunomiaPagination.prototype, "
|
|
398
|
+
property({ attribute: "page-label" })
|
|
399
|
+
], EunomiaPagination.prototype, "pageLabel", void 0);
|
|
423
400
|
EunomiaPagination = __decorate([
|
|
424
401
|
customElement(EunomiaPaginationTagName)
|
|
425
402
|
], EunomiaPagination);
|