@prokodo/ui 0.1.15 → 1.0.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/LICENSE +187 -26
- package/NOTICE +24 -0
- package/README.md +32 -302
- package/dist/components/RTE/RTE.css +180 -68
- package/dist/components/RTE/RTE.module.css +180 -68
- package/dist/components/RTE/RTE.module.scss.js +10 -0
- package/dist/components/RTE/RTE.view.js +5 -1
- package/dist/components/accordion/Accordion.css +120 -67
- package/dist/components/accordion/Accordion.module.css +120 -67
- package/dist/components/accordion/Accordion.module.scss.js +12 -5
- package/dist/components/accordion/Accordion.view.js +3 -3
- package/dist/components/autocomplete/Autocomplete.css +111 -95
- package/dist/components/autocomplete/Autocomplete.module.css +111 -95
- package/dist/components/autocomplete/Autocomplete.module.scss.js +11 -4
- package/dist/components/autocomplete/Autocomplete.view.js +3 -1
- package/dist/components/avatar/Avatar.css +11 -8
- package/dist/components/avatar/Avatar.module.css +11 -8
- package/dist/components/avatar/Avatar.module.scss.js +1 -0
- package/dist/components/avatar/Avatar.view.js +5 -5
- package/dist/components/button/Button.client.js +12 -16
- package/dist/components/button/Button.css +85 -137
- package/dist/components/button/Button.module.css +85 -137
- package/dist/components/button/Button.module.scss.js +15 -19
- package/dist/components/button/Button.view.js +6 -2
- package/dist/components/calendly/Calendly.css +132 -0
- package/dist/components/calendly/Calendly.module.css +132 -0
- package/dist/components/calendly/Calendly.module.scss.js +6 -0
- package/dist/components/calendly/Calendly.view.js +12 -6
- package/dist/components/card/Card.client.js +6 -1
- package/dist/components/card/Card.css +67 -32
- package/dist/components/card/Card.module.css +67 -32
- package/dist/components/card/Card.module.scss.js +8 -2
- package/dist/components/card/Card.view.js +3 -3
- package/dist/components/carousel/Carousel.client.js +2 -4
- package/dist/components/carousel/Carousel.css +8 -4
- package/dist/components/carousel/Carousel.module.css +8 -4
- package/dist/components/checkbox/Checkbox.css +100 -79
- package/dist/components/checkbox/Checkbox.module.css +100 -79
- package/dist/components/checkbox/Checkbox.module.scss.js +11 -4
- package/dist/components/checkbox/Checkbox.view.js +3 -1
- package/dist/components/checkbox-group/CheckboxGroup.css +39 -6
- package/dist/components/checkbox-group/CheckboxGroup.module.css +39 -6
- package/dist/components/checkbox-group/CheckboxGroup.module.scss.js +8 -0
- package/dist/components/checkbox-group/CheckboxGroup.view.js +3 -1
- package/dist/components/chip/Chip.css +185 -61
- package/dist/components/chip/Chip.module.css +185 -61
- package/dist/components/chip/Chip.module.scss.js +13 -17
- package/dist/components/chip/Chip.view.js +3 -4
- package/dist/components/datePicker/DatePicker.client.js +211 -66
- package/dist/components/datePicker/DatePicker.css +940 -0
- package/dist/components/datePicker/DatePicker.module.css +940 -0
- package/dist/components/datePicker/DatePicker.module.scss.js +62 -0
- package/dist/components/datePicker/DatePicker.server.js +31 -1
- package/dist/components/datePicker/DatePicker.utils.js +103 -0
- package/dist/components/datePicker/DatePicker.view.js +113 -41
- package/dist/components/datePicker/DatePickerDialog.view.js +291 -0
- package/dist/components/dialog/Dialog.css +107 -132
- package/dist/components/dialog/Dialog.module.css +107 -132
- package/dist/components/dialog/Dialog.module.scss.js +13 -8
- package/dist/components/drawer/Drawer.css +8 -8
- package/dist/components/drawer/Drawer.module.css +8 -8
- package/dist/components/dynamic-list/DynamicList.css +20 -12
- package/dist/components/dynamic-list/DynamicList.module.css +20 -12
- package/dist/components/dynamic-list/DynamicList.module.scss.js +1 -0
- package/dist/components/dynamic-list/DynamicList.view.js +78 -46
- package/dist/components/form/Form.view.js +3 -3
- package/dist/components/form/FormField.client.js +51 -2
- package/dist/components/form/FormField.server.js +10 -4
- package/dist/components/form/FormResponse.js +2 -2
- package/dist/components/grid/Grid.css +1 -1
- package/dist/components/grid/Grid.module.css +1 -1
- package/dist/components/headline/Headline.css +16 -16
- package/dist/components/headline/Headline.js +5 -6
- package/dist/components/headline/Headline.module.css +16 -16
- package/dist/components/headline/Headline.module.scss.js +1 -1
- package/dist/components/headline/Headline.variants.js +4 -1
- package/dist/components/icon/Icon.css +14 -14
- package/dist/components/icon/Icon.module.css +14 -14
- package/dist/components/image/Image.css +4 -3
- package/dist/components/image/Image.module.css +4 -3
- package/dist/components/image-text/ImageText.css +43 -14
- package/dist/components/image-text/ImageText.js +61 -53
- package/dist/components/image-text/ImageText.module.css +43 -14
- package/dist/components/image-text/ImageText.module.scss.js +11 -2
- package/dist/components/input/Input.css +197 -115
- package/dist/components/input/Input.module.css +197 -115
- package/dist/components/input/Input.module.scss.js +19 -3
- package/dist/components/input/Input.view.js +87 -57
- package/dist/components/inputOTP/InputOTP.client.js +165 -0
- package/dist/components/inputOTP/InputOTP.css +155 -7
- package/dist/components/inputOTP/InputOTP.js +10 -195
- package/dist/components/inputOTP/InputOTP.lazy.js +12 -0
- package/dist/components/inputOTP/InputOTP.module.css +155 -7
- package/dist/components/inputOTP/InputOTP.module.scss.js +14 -0
- package/dist/components/inputOTP/InputOTP.server.js +32 -0
- package/dist/components/inputOTP/InputOTP.view.js +117 -0
- package/dist/components/label/Label.css +33 -14
- package/dist/components/label/Label.js +37 -35
- package/dist/components/label/Label.module.css +33 -14
- package/dist/components/label/Label.module.scss.js +9 -2
- package/dist/components/link/Link.css +13 -13
- package/dist/components/link/Link.module.css +13 -13
- package/dist/components/link/Link.view.js +14 -12
- package/dist/components/list/List.css +71 -32
- package/dist/components/list/List.js +25 -8
- package/dist/components/list/List.module.css +71 -32
- package/dist/components/list/List.module.scss.js +1 -1
- package/dist/components/loading/Loading.view.js +22 -2
- package/dist/components/lottie/Lottie.css +16 -0
- package/dist/components/lottie/Lottie.module.css +16 -0
- package/dist/components/lottie/Lottie.module.scss.js +6 -2
- package/dist/components/map/Map.css +130 -0
- package/dist/components/map/Map.js +5 -2
- package/dist/components/map/Map.module.css +130 -0
- package/dist/components/map/Map.module.scss.js +6 -0
- package/dist/components/pagination/Pagination.css +127 -11
- package/dist/components/pagination/Pagination.module.css +127 -11
- package/dist/components/pagination/Pagination.module.scss.js +12 -4
- package/dist/components/pagination/Pagination.view.js +13 -1
- package/dist/components/post-item/PostItem.css +16 -16
- package/dist/components/post-item/PostItem.module.css +16 -16
- package/dist/components/post-item/PostItem.view.js +14 -5
- package/dist/components/post-teaser/PostTeaser.css +13 -13
- package/dist/components/post-teaser/PostTeaser.module.css +13 -13
- package/dist/components/post-teaser/PostTeaser.view.js +10 -3
- package/dist/components/post-widget/PostWidget.css +6 -8
- package/dist/components/post-widget/PostWidget.module.css +6 -8
- package/dist/components/post-widget/PostWidget.view.js +12 -5
- package/dist/components/post-widget-carousel/PostWidgetCarousel.css +7 -7
- package/dist/components/post-widget-carousel/PostWidgetCarousel.module.css +7 -7
- package/dist/components/post-widget-carousel/PostWidgetCarousel.view.js +30 -13
- package/dist/components/progressBar/ProgressBar.css +4 -4
- package/dist/components/progressBar/ProgressBar.module.css +4 -4
- package/dist/components/progressBar/ProgressBar.view.js +2 -2
- package/dist/components/quote/Quote.css +21 -6
- package/dist/components/quote/Quote.js +5 -5
- package/dist/components/quote/Quote.module.css +21 -6
- package/dist/components/quote/Quote.module.scss.js +5 -0
- package/dist/components/rating/Rating.css +34 -21
- package/dist/components/rating/Rating.module.css +34 -21
- package/dist/components/rating/Rating.module.scss.js +8 -0
- package/dist/components/rating/Rating.view.js +4 -2
- package/dist/components/rich-text/RichText.client.js +3 -3
- package/dist/components/rich-text/RichText.css +47 -31
- package/dist/components/rich-text/RichText.module.css +47 -31
- package/dist/components/rich-text/RichText.server.js +1 -1
- package/dist/components/select/Select.client.js +154 -1
- package/dist/components/select/Select.css +542 -221
- package/dist/components/select/Select.module.css +542 -221
- package/dist/components/select/Select.module.scss.js +57 -14
- package/dist/components/select/Select.view.js +40 -14
- package/dist/components/sidenav/SideNav.client.js +24 -1
- package/dist/components/sidenav/SideNav.css +89 -21
- package/dist/components/sidenav/SideNav.module.css +89 -21
- package/dist/components/sidenav/SideNav.module.scss.js +6 -1
- package/dist/components/sidenav/SideNav.view.js +69 -14
- package/dist/components/skeleton/Skeleton.css +7 -7
- package/dist/components/skeleton/Skeleton.module.css +7 -7
- package/dist/components/slider/Slider.css +177 -112
- package/dist/components/slider/Slider.module.css +177 -112
- package/dist/components/slider/Slider.module.scss.js +11 -2
- package/dist/components/slider/Slider.view.js +113 -101
- package/dist/components/snackbar/Snackbar.css +125 -64
- package/dist/components/snackbar/Snackbar.module.css +125 -64
- package/dist/components/snackbar/Snackbar.module.scss.js +11 -13
- package/dist/components/snackbar/Snackbar.view.js +2 -2
- package/dist/components/stepper/Stepper.client.js +21 -6
- package/dist/components/stepper/Stepper.css +46 -11
- package/dist/components/stepper/Stepper.module.css +46 -11
- package/dist/components/stepper/Stepper.module.scss.js +7 -0
- package/dist/components/stepper/Stepper.server.js +2 -0
- package/dist/components/stepper/Stepper.view.js +6 -1
- package/dist/components/switch/Switch.css +108 -84
- package/dist/components/switch/Switch.module.css +108 -84
- package/dist/components/switch/Switch.module.scss.js +14 -12
- package/dist/components/switch/Switch.view.js +9 -8
- package/dist/components/table/Table.css +19 -14
- package/dist/components/table/Table.module.css +19 -14
- package/dist/components/tabs/Tabs.css +53 -27
- package/dist/components/tabs/Tabs.module.css +53 -27
- package/dist/components/tabs/Tabs.module.scss.js +7 -2
- package/dist/components/tabs/Tabs.view.js +4 -2
- package/dist/components/teaser/Teaser.css +5 -5
- package/dist/components/teaser/Teaser.js +4 -4
- package/dist/components/teaser/Teaser.module.css +5 -5
- package/dist/components/tooltip/Tooltip.client.js +14 -4
- package/dist/components/tooltip/Tooltip.css +46 -9
- package/dist/components/tooltip/Tooltip.module.css +46 -9
- package/dist/components/tooltip/Tooltip.module.scss.js +5 -1
- package/dist/components/tooltip/Tooltip.view.js +6 -1
- package/dist/constants/project.js +1 -1
- package/dist/theme.css +3269 -1588
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/components/RTE/RTE.d.ts +5 -0
- package/dist/types/components/RTE/RTE.lazy.d.ts +5 -0
- package/dist/types/components/RTE/RTE.view.d.ts +1 -1
- package/dist/types/components/accordion/Accordion.d.ts +1 -1
- package/dist/types/components/accordion/Accordion.lazy.d.ts +1 -1
- package/dist/types/components/accordion/Accordion.model.d.ts +1 -1
- package/dist/types/components/accordion/Accordion.view.d.ts +1 -1
- package/dist/types/components/autocomplete/Autocomplete.model.d.ts +2 -0
- package/dist/types/components/autocomplete/Autocomplete.view.d.ts +1 -1
- package/dist/types/components/avatar/Avatar.d.ts +1 -1
- package/dist/types/components/avatar/Avatar.lazy.d.ts +1 -1
- package/dist/types/components/avatar/Avatar.model.d.ts +1 -1
- package/dist/types/components/avatar/Avatar.view.d.ts +1 -1
- package/dist/types/components/calendly/Calendly.view.d.ts +1 -1
- package/dist/types/components/card/Card.model.d.ts +1 -1
- package/dist/types/components/card/Card.view.d.ts +1 -1
- package/dist/types/components/checkbox/Checkbox.d.ts +1 -0
- package/dist/types/components/checkbox/Checkbox.lazy.d.ts +1 -0
- package/dist/types/components/checkbox/Checkbox.model.d.ts +2 -0
- package/dist/types/components/checkbox/Checkbox.view.d.ts +1 -1
- package/dist/types/components/checkbox-group/CheckboxGroup.model.d.ts +2 -0
- package/dist/types/components/checkbox-group/CheckboxGroup.view.d.ts +1 -1
- package/dist/types/components/datePicker/DatePicker.model.d.ts +70 -1
- package/dist/types/components/datePicker/DatePicker.utils.d.ts +10 -0
- package/dist/types/components/datePicker/DatePicker.view.d.ts +7 -4
- package/dist/types/components/datePicker/DatePickerDialog.view.d.ts +4 -0
- package/dist/types/components/dynamic-list/DynamicList.model.d.ts +2 -0
- package/dist/types/components/dynamic-list/DynamicList.view.d.ts +1 -1
- package/dist/types/components/form/Form.d.ts +1 -1
- package/dist/types/components/form/Form.lazy.d.ts +1 -1
- package/dist/types/components/form/Form.model.d.ts +19 -4
- package/dist/types/components/form/FormField.client.d.ts +2 -2
- package/dist/types/components/form/FormField.d.ts +1 -1
- package/dist/types/components/form/FormField.lazy.d.ts +1 -1
- package/dist/types/components/form/FormField.server.d.ts +2 -2
- package/dist/types/components/headline/Headline.model.d.ts +1 -1
- package/dist/types/components/input/Input.model.d.ts +8 -1
- package/dist/types/components/input/Input.view.d.ts +1 -1
- package/dist/types/components/inputOTP/InputOTP.client.d.ts +4 -0
- package/dist/types/components/inputOTP/InputOTP.d.ts +10 -3
- package/dist/types/components/inputOTP/InputOTP.lazy.d.ts +11 -0
- package/dist/types/components/inputOTP/InputOTP.model.d.ts +10 -0
- package/dist/types/components/inputOTP/InputOTP.server.d.ts +3 -0
- package/dist/types/components/inputOTP/InputOTP.view.d.ts +3 -0
- package/dist/types/components/inputOTP/index.d.ts +1 -1
- package/dist/types/components/label/Label.model.d.ts +2 -0
- package/dist/types/components/link/Link.model.d.ts +1 -1
- package/dist/types/components/link/Link.view.d.ts +1 -1
- package/dist/types/components/list/List.d.ts +1 -1
- package/dist/types/components/list/List.model.d.ts +14 -5
- package/dist/types/components/list/index.d.ts +1 -1
- package/dist/types/components/loading/Loading.model.d.ts +2 -0
- package/dist/types/components/loading/index.d.ts +1 -1
- package/dist/types/components/pagination/Pagination.model.d.ts +2 -0
- package/dist/types/components/pagination/Pagination.view.d.ts +1 -1
- package/dist/types/components/post-item/PostItem.model.d.ts +2 -1
- package/dist/types/components/post-teaser/PostTeaser.model.d.ts +2 -1
- package/dist/types/components/post-widget/PostWidget.view.d.ts +1 -1
- package/dist/types/components/progressBar/ProgressBar.d.ts +1 -1
- package/dist/types/components/progressBar/ProgressBar.lazy.d.ts +1 -1
- package/dist/types/components/progressBar/ProgressBar.model.d.ts +3 -2
- package/dist/types/components/progressBar/ProgressBar.view.d.ts +1 -1
- package/dist/types/components/progressBar/index.d.ts +1 -1
- package/dist/types/components/quote/Quote.model.d.ts +1 -1
- package/dist/types/components/rating/Rating.model.d.ts +2 -0
- package/dist/types/components/rich-text/RichText.client.d.ts +1 -1
- package/dist/types/components/rich-text/RichText.d.ts +1 -1
- package/dist/types/components/rich-text/RichText.lazy.d.ts +1 -1
- package/dist/types/components/rich-text/RichText.model.d.ts +1 -1
- package/dist/types/components/select/Select.model.d.ts +2 -0
- package/dist/types/components/select/Select.view.d.ts +1 -1
- package/dist/types/components/sidenav/SideNav.client.d.ts +1 -1
- package/dist/types/components/sidenav/SideNav.model.d.ts +16 -2
- package/dist/types/components/sidenav/SideNav.view.d.ts +1 -1
- package/dist/types/components/slider/Slider.model.d.ts +2 -0
- package/dist/types/components/snackbar/Snackbar.model.d.ts +3 -2
- package/dist/types/components/snackbar/Snackbar.view.d.ts +3 -2
- package/dist/types/components/snackbar/index.d.ts +1 -1
- package/dist/types/components/stepper/Stepper.d.ts +1 -0
- package/dist/types/components/stepper/Stepper.lazy.d.ts +1 -0
- package/dist/types/components/stepper/Stepper.model.d.ts +3 -0
- package/dist/types/components/stepper/Stepper.server.d.ts +1 -1
- package/dist/types/components/switch/Switch.d.ts +2 -2
- package/dist/types/components/switch/Switch.lazy.d.ts +2 -2
- package/dist/types/components/switch/Switch.model.d.ts +3 -4
- package/dist/types/components/tabs/Tabs.model.d.ts +2 -0
- package/dist/types/components/tabs/Tabs.view.d.ts +1 -1
- package/dist/types/components/teaser/Teaser.model.d.ts +1 -1
- package/dist/types/components/tooltip/Tooltip.model.d.ts +2 -0
- package/package.json +37 -22
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
const dpBorderShift = "dpBorderShift";
|
|
2
|
+
const dpDialogIn = "dpDialogIn";
|
|
3
|
+
const dpSlideUp = "dpSlideUp";
|
|
4
|
+
const styles = {
|
|
5
|
+
"prokodo-DatePicker": "prokodo-DatePicker",
|
|
6
|
+
"prokodo-DatePicker--primary": "prokodo-DatePicker--primary",
|
|
7
|
+
"prokodo-DatePicker--secondary": "prokodo-DatePicker--secondary",
|
|
8
|
+
"prokodo-DatePicker--success": "prokodo-DatePicker--success",
|
|
9
|
+
"prokodo-DatePicker--warning": "prokodo-DatePicker--warning",
|
|
10
|
+
"prokodo-DatePicker--error": "prokodo-DatePicker--error",
|
|
11
|
+
"prokodo-DatePicker--info": "prokodo-DatePicker--info",
|
|
12
|
+
"prokodo-DatePicker--inherit": "prokodo-DatePicker--inherit",
|
|
13
|
+
"prokodo-DatePicker--white": "prokodo-DatePicker--white",
|
|
14
|
+
"prokodo-DatePicker__trigger": "prokodo-DatePicker__trigger",
|
|
15
|
+
"prokodo-DatePicker__trigger--open": "prokodo-DatePicker__trigger--open",
|
|
16
|
+
dpBorderShift,
|
|
17
|
+
"prokodo-DatePicker__trigger__label": "prokodo-DatePicker__trigger__label",
|
|
18
|
+
"prokodo-DatePicker__trigger__label--float": "prokodo-DatePicker__trigger__label--float",
|
|
19
|
+
"prokodo-DatePicker__trigger__value": "prokodo-DatePicker__trigger__value",
|
|
20
|
+
"prokodo-DatePicker__trigger__value--empty": "prokodo-DatePicker__trigger__value--empty",
|
|
21
|
+
"prokodo-DatePicker__trigger__icon": "prokodo-DatePicker__trigger__icon",
|
|
22
|
+
"prokodo-DatePicker__dialog": "prokodo-DatePicker__dialog",
|
|
23
|
+
dpDialogIn,
|
|
24
|
+
dpSlideUp,
|
|
25
|
+
"prokodo-DatePicker__dialog__backdrop": "prokodo-DatePicker__dialog__backdrop",
|
|
26
|
+
"prokodo-DatePicker__dialog__close": "prokodo-DatePicker__dialog__close",
|
|
27
|
+
"prokodo-DatePicker__dialog__header": "prokodo-DatePicker__dialog__header",
|
|
28
|
+
"prokodo-DatePicker__month__label": "prokodo-DatePicker__month__label",
|
|
29
|
+
"prokodo-DatePicker__header-btn": "prokodo-DatePicker__header-btn",
|
|
30
|
+
"prokodo-DatePicker__header-range": "prokodo-DatePicker__header-range",
|
|
31
|
+
"prokodo-DatePicker__picker-grid": "prokodo-DatePicker__picker-grid",
|
|
32
|
+
"prokodo-DatePicker__picker-cell": "prokodo-DatePicker__picker-cell",
|
|
33
|
+
"prokodo-DatePicker__picker-cell--today": "prokodo-DatePicker__picker-cell--today",
|
|
34
|
+
"prokodo-DatePicker__picker-cell--selected": "prokodo-DatePicker__picker-cell--selected",
|
|
35
|
+
"prokodo-DatePicker__picker-cell--disabled": "prokodo-DatePicker__picker-cell--disabled",
|
|
36
|
+
"prokodo-DatePicker__nav__btn": "prokodo-DatePicker__nav__btn",
|
|
37
|
+
"prokodo-DatePicker__nav__btn--prev": "prokodo-DatePicker__nav__btn--prev",
|
|
38
|
+
"prokodo-DatePicker__weekdays": "prokodo-DatePicker__weekdays",
|
|
39
|
+
"prokodo-DatePicker__weekday": "prokodo-DatePicker__weekday",
|
|
40
|
+
"prokodo-DatePicker__days": "prokodo-DatePicker__days",
|
|
41
|
+
"prokodo-DatePicker__day": "prokodo-DatePicker__day",
|
|
42
|
+
"prokodo-DatePicker__day--disabled": "prokodo-DatePicker__day--disabled",
|
|
43
|
+
"prokodo-DatePicker__day--today": "prokodo-DatePicker__day--today",
|
|
44
|
+
"prokodo-DatePicker__day--selected": "prokodo-DatePicker__day--selected",
|
|
45
|
+
"prokodo-DatePicker__day--outside": "prokodo-DatePicker__day--outside",
|
|
46
|
+
"prokodo-DatePicker__time__row": "prokodo-DatePicker__time__row",
|
|
47
|
+
"prokodo-DatePicker__time__label": "prokodo-DatePicker__time__label",
|
|
48
|
+
"prokodo-DatePicker__time__select": "prokodo-DatePicker__time__select",
|
|
49
|
+
"prokodo-DatePicker__time__sep": "prokodo-DatePicker__time__sep",
|
|
50
|
+
"prokodo-DatePicker__footer": "prokodo-DatePicker__footer",
|
|
51
|
+
"prokodo-DatePicker__footer__btn": "prokodo-DatePicker__footer__btn",
|
|
52
|
+
"prokodo-DatePicker__footer__btn--ghost": "prokodo-DatePicker__footer__btn--ghost",
|
|
53
|
+
"prokodo-DatePicker__footer__btn--filled": "prokodo-DatePicker__footer__btn--filled",
|
|
54
|
+
"prokodo-DatePicker__helper": "prokodo-DatePicker__helper",
|
|
55
|
+
"prokodo-DatePicker__error": "prokodo-DatePicker__error"
|
|
56
|
+
};
|
|
57
|
+
export {
|
|
58
|
+
styles as default,
|
|
59
|
+
dpBorderShift,
|
|
60
|
+
dpDialogIn,
|
|
61
|
+
dpSlideUp
|
|
62
|
+
};
|
|
@@ -1,8 +1,38 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import dayjs from "dayjs";
|
|
4
5
|
import { DatePickerView } from "./DatePicker.view.js";
|
|
5
|
-
const
|
|
6
|
+
const noop = /* @__PURE__ */ __name(() => void 0, "noop");
|
|
7
|
+
const DatePickerServer = /* @__PURE__ */ __name(({
|
|
8
|
+
onChange: _onChange,
|
|
9
|
+
value,
|
|
10
|
+
...props
|
|
11
|
+
}) => {
|
|
12
|
+
const selectedDate = value ? dayjs(value) : null;
|
|
13
|
+
return /* @__PURE__ */ jsx(
|
|
14
|
+
DatePickerView,
|
|
15
|
+
{
|
|
16
|
+
...props,
|
|
17
|
+
readOnly: true,
|
|
18
|
+
isOpen: false,
|
|
19
|
+
selectedDate,
|
|
20
|
+
viewingMonth: selectedDate ?? dayjs(),
|
|
21
|
+
viewMode: "days",
|
|
22
|
+
onApply: noop,
|
|
23
|
+
onClear: noop,
|
|
24
|
+
onDayClick: noop,
|
|
25
|
+
onMonthSelect: noop,
|
|
26
|
+
onNextMonth: noop,
|
|
27
|
+
onPrevMonth: noop,
|
|
28
|
+
onTimeChange: noop,
|
|
29
|
+
onToday: noop,
|
|
30
|
+
onToggle: noop,
|
|
31
|
+
onViewModeChange: noop,
|
|
32
|
+
onYearSelect: noop
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
}, "DatePickerServer");
|
|
6
36
|
export {
|
|
7
37
|
DatePickerServer as default
|
|
8
38
|
};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import dayjs from "dayjs";
|
|
4
|
+
import { isNull } from "../../helpers/validations.js";
|
|
5
|
+
const WEEKDAYS = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"];
|
|
6
|
+
const MONTHS_SHORT = [
|
|
7
|
+
"Jan",
|
|
8
|
+
"Feb",
|
|
9
|
+
"Mar",
|
|
10
|
+
"Apr",
|
|
11
|
+
"May",
|
|
12
|
+
"Jun",
|
|
13
|
+
"Jul",
|
|
14
|
+
"Aug",
|
|
15
|
+
"Sep",
|
|
16
|
+
"Oct",
|
|
17
|
+
"Nov",
|
|
18
|
+
"Dec"
|
|
19
|
+
];
|
|
20
|
+
function buildCalendarGrid(viewingMonth, minDate, maxDate) {
|
|
21
|
+
const today = dayjs();
|
|
22
|
+
const firstOfMonth = viewingMonth.startOf("month");
|
|
23
|
+
const totalDays = viewingMonth.daysInMonth();
|
|
24
|
+
const startOffset = (firstOfMonth.day() + 6) % 7;
|
|
25
|
+
const min = !isNull(minDate) ? dayjs(minDate).startOf("day") : null;
|
|
26
|
+
const max = !isNull(maxDate) ? dayjs(maxDate).startOf("day") : null;
|
|
27
|
+
const cells = [];
|
|
28
|
+
for (let i = startOffset - 1; i >= 0; i--) {
|
|
29
|
+
cells.push({
|
|
30
|
+
date: firstOfMonth.subtract(i + 1, "day"),
|
|
31
|
+
isCurrentMonth: false,
|
|
32
|
+
isToday: false,
|
|
33
|
+
isDisabled: true
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
for (let d = 1; d <= totalDays; d++) {
|
|
37
|
+
const date = firstOfMonth.date(d);
|
|
38
|
+
const start = date.startOf("day");
|
|
39
|
+
cells.push({
|
|
40
|
+
date,
|
|
41
|
+
isCurrentMonth: true,
|
|
42
|
+
isToday: date.isSame(today, "day"),
|
|
43
|
+
isDisabled: min !== null && start.isBefore(min) || max !== null && start.isAfter(max)
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const trailing = (7 - cells.length % 7) % 7;
|
|
47
|
+
const lastOfMonth = firstOfMonth.endOf("month");
|
|
48
|
+
for (let i = 1; i <= trailing; i++) {
|
|
49
|
+
cells.push({
|
|
50
|
+
date: lastOfMonth.add(i, "day"),
|
|
51
|
+
isCurrentMonth: false,
|
|
52
|
+
isToday: false,
|
|
53
|
+
isDisabled: true
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return cells;
|
|
57
|
+
}
|
|
58
|
+
__name(buildCalendarGrid, "buildCalendarGrid");
|
|
59
|
+
function buildHours() {
|
|
60
|
+
return Array.from({ length: 24 }, (_, i) => i);
|
|
61
|
+
}
|
|
62
|
+
__name(buildHours, "buildHours");
|
|
63
|
+
function buildMinutes(step) {
|
|
64
|
+
const s = Math.max(1, step);
|
|
65
|
+
const out = [];
|
|
66
|
+
for (let m = 0; m < 60; m += s) out.push(m);
|
|
67
|
+
return out;
|
|
68
|
+
}
|
|
69
|
+
__name(buildMinutes, "buildMinutes");
|
|
70
|
+
function pad2(n) {
|
|
71
|
+
return String(n).padStart(2, "0");
|
|
72
|
+
}
|
|
73
|
+
__name(pad2, "pad2");
|
|
74
|
+
function isMonthDisabled(month, year, minDate, maxDate) {
|
|
75
|
+
const firstDay = dayjs(new Date(year, month, 1));
|
|
76
|
+
const lastDay = firstDay.endOf("month");
|
|
77
|
+
const min = !isNull(minDate) ? dayjs(minDate).startOf("day") : null;
|
|
78
|
+
const max = !isNull(maxDate) ? dayjs(maxDate).startOf("day") : null;
|
|
79
|
+
if (min && lastDay.isBefore(min, "day")) return true;
|
|
80
|
+
if (max && firstDay.isAfter(max, "day")) return true;
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
__name(isMonthDisabled, "isMonthDisabled");
|
|
84
|
+
function isYearDisabled(year, minDate, maxDate) {
|
|
85
|
+
const firstDay = dayjs(new Date(year, 0, 1));
|
|
86
|
+
const lastDay = dayjs(new Date(year, 11, 31));
|
|
87
|
+
const min = !isNull(minDate) ? dayjs(minDate).startOf("day") : null;
|
|
88
|
+
const max = !isNull(maxDate) ? dayjs(maxDate).startOf("day") : null;
|
|
89
|
+
if (min && lastDay.isBefore(min, "day")) return true;
|
|
90
|
+
if (max && firstDay.isAfter(max, "day")) return true;
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
__name(isYearDisabled, "isYearDisabled");
|
|
94
|
+
export {
|
|
95
|
+
MONTHS_SHORT,
|
|
96
|
+
WEEKDAYS,
|
|
97
|
+
buildCalendarGrid,
|
|
98
|
+
buildHours,
|
|
99
|
+
buildMinutes,
|
|
100
|
+
isMonthDisabled,
|
|
101
|
+
isYearDisabled,
|
|
102
|
+
pad2
|
|
103
|
+
};
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
import
|
|
5
|
-
import { isNull } from "../../helpers/validations.js";
|
|
3
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
4
|
+
import { createPortal } from "react-dom";
|
|
6
5
|
import { InputView } from "../input/Input.view.js";
|
|
6
|
+
import { create } from "../../helpers/bem.js";
|
|
7
|
+
import styles from "./DatePicker.module.scss.js";
|
|
8
|
+
import { DatePickerDialog } from "./DatePickerDialog.view.js";
|
|
9
|
+
const bem = create(styles, "DatePicker");
|
|
7
10
|
function DatePickerView({
|
|
8
11
|
name,
|
|
9
12
|
label,
|
|
10
|
-
value,
|
|
11
13
|
helperText,
|
|
12
14
|
errorText,
|
|
13
15
|
format,
|
|
@@ -16,45 +18,115 @@ function DatePickerView({
|
|
|
16
18
|
maxDate,
|
|
17
19
|
withTime = false,
|
|
18
20
|
minuteStep = 1,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
color = "primary",
|
|
22
|
+
required,
|
|
23
|
+
prevIcon,
|
|
24
|
+
nextIcon,
|
|
25
|
+
prevAriaLabel,
|
|
26
|
+
nextAriaLabel,
|
|
27
|
+
weekdays,
|
|
28
|
+
monthFormat,
|
|
29
|
+
dayAriaFormat,
|
|
30
|
+
todayLabel,
|
|
31
|
+
clearLabel,
|
|
32
|
+
applyLabel,
|
|
33
|
+
timeLabel,
|
|
34
|
+
closeIcon,
|
|
35
|
+
closeLabel,
|
|
36
|
+
dialogColor,
|
|
37
|
+
isOpen,
|
|
38
|
+
/** When provided, the calendar dialog is portaled into this element (e.g. document.body on mobile). */
|
|
39
|
+
dialogPortalTarget,
|
|
40
|
+
viewingMonth,
|
|
41
|
+
selectedDate,
|
|
42
|
+
onToggle,
|
|
43
|
+
onPrevMonth,
|
|
44
|
+
onNextMonth,
|
|
45
|
+
onDayClick,
|
|
46
|
+
onToday,
|
|
47
|
+
onClear,
|
|
48
|
+
onApply,
|
|
49
|
+
onTimeChange,
|
|
50
|
+
onDialogTouchStart,
|
|
51
|
+
onDialogTouchEnd,
|
|
52
|
+
viewMode,
|
|
53
|
+
onViewModeChange,
|
|
54
|
+
onMonthSelect,
|
|
55
|
+
onYearSelect
|
|
22
56
|
}) {
|
|
23
57
|
const effectiveFormat = format ?? (withTime ? "YYYY-MM-DDTHH:mm" : "YYYY-MM-DD");
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
const displayValue = (selectedDate == null ? void 0 : selectedDate.format(effectiveFormat)) ?? "";
|
|
59
|
+
return /* @__PURE__ */ jsxs("div", { className: bem(void 0, { [color]: true }), children: [
|
|
60
|
+
/* @__PURE__ */ jsx(
|
|
61
|
+
InputView,
|
|
62
|
+
{
|
|
63
|
+
readOnly: true,
|
|
64
|
+
color,
|
|
65
|
+
errorText,
|
|
66
|
+
helperText,
|
|
67
|
+
isFocused: isOpen,
|
|
68
|
+
label,
|
|
69
|
+
name,
|
|
70
|
+
placeholder,
|
|
71
|
+
required,
|
|
72
|
+
trailingIcon: "Calendar01Icon",
|
|
73
|
+
trailingIconLabel: isOpen ? "Close calendar" : "Open calendar",
|
|
74
|
+
type: "text",
|
|
75
|
+
value: displayValue,
|
|
76
|
+
trailingIconButtonProps: {
|
|
77
|
+
"aria-haspopup": "dialog",
|
|
78
|
+
"aria-expanded": isOpen,
|
|
79
|
+
"aria-controls": isOpen ? `${name}-dialog` : void 0
|
|
80
|
+
},
|
|
81
|
+
onClick: onToggle,
|
|
82
|
+
onTrailingIconClick: onToggle
|
|
83
|
+
}
|
|
84
|
+
),
|
|
85
|
+
isOpen && (() => {
|
|
86
|
+
const dialog = /* @__PURE__ */ jsx(
|
|
87
|
+
DatePickerDialog,
|
|
88
|
+
{
|
|
89
|
+
applyLabel,
|
|
90
|
+
clearLabel,
|
|
91
|
+
closeIcon,
|
|
92
|
+
closeLabel,
|
|
93
|
+
dayAriaFormat,
|
|
94
|
+
dialogColor: dialogColor ?? color,
|
|
95
|
+
label,
|
|
96
|
+
maxDate,
|
|
97
|
+
minDate,
|
|
98
|
+
minuteStep,
|
|
99
|
+
monthFormat,
|
|
100
|
+
name,
|
|
101
|
+
nextAriaLabel,
|
|
102
|
+
nextIcon,
|
|
103
|
+
prevAriaLabel,
|
|
104
|
+
prevIcon,
|
|
105
|
+
selectedDate,
|
|
106
|
+
timeLabel,
|
|
107
|
+
todayLabel,
|
|
108
|
+
viewingMonth,
|
|
109
|
+
viewMode,
|
|
110
|
+
weekdays,
|
|
111
|
+
withTime,
|
|
112
|
+
onApply,
|
|
113
|
+
onClear,
|
|
114
|
+
onClose: onToggle,
|
|
115
|
+
onDayClick,
|
|
116
|
+
onDialogTouchEnd,
|
|
117
|
+
onDialogTouchStart,
|
|
118
|
+
onMonthSelect,
|
|
119
|
+
onNextMonth,
|
|
120
|
+
onPrevMonth,
|
|
121
|
+
onTimeChange,
|
|
122
|
+
onToday,
|
|
123
|
+
onViewModeChange,
|
|
124
|
+
onYearSelect
|
|
125
|
+
}
|
|
126
|
+
);
|
|
127
|
+
return dialogPortalTarget ? createPortal(dialog, dialogPortalTarget) : dialog;
|
|
128
|
+
})()
|
|
129
|
+
] });
|
|
58
130
|
}
|
|
59
131
|
__name(DatePickerView, "DatePickerView");
|
|
60
132
|
export {
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
4
|
+
import { create } from "../../helpers/bem.js";
|
|
5
|
+
import styles from "./DatePicker.module.scss.js";
|
|
6
|
+
import { buildCalendarGrid, buildHours, WEEKDAYS, MONTHS_SHORT, isMonthDisabled, isYearDisabled, pad2, buildMinutes } from "./DatePicker.utils.js";
|
|
7
|
+
import { Icon } from "../icon/Icon.js";
|
|
8
|
+
const bem = create(styles, "DatePicker");
|
|
9
|
+
function DatePickerDialog({
|
|
10
|
+
name,
|
|
11
|
+
label,
|
|
12
|
+
withTime = false,
|
|
13
|
+
minuteStep = 1,
|
|
14
|
+
selectedDate,
|
|
15
|
+
viewingMonth,
|
|
16
|
+
minDate,
|
|
17
|
+
maxDate,
|
|
18
|
+
prevIcon = "ArrowLeft01Icon",
|
|
19
|
+
nextIcon = "ArrowRight01Icon",
|
|
20
|
+
prevAriaLabel = "Previous month",
|
|
21
|
+
nextAriaLabel = "Next month",
|
|
22
|
+
weekdays = WEEKDAYS,
|
|
23
|
+
monthFormat: _monthFormat,
|
|
24
|
+
dayAriaFormat = "D MMMM YYYY",
|
|
25
|
+
todayLabel = "Today",
|
|
26
|
+
clearLabel = "Clear",
|
|
27
|
+
applyLabel = "Apply",
|
|
28
|
+
timeLabel = "Time",
|
|
29
|
+
closeIcon = "Cancel01Icon",
|
|
30
|
+
closeLabel = "Close",
|
|
31
|
+
dialogColor,
|
|
32
|
+
onPrevMonth,
|
|
33
|
+
onNextMonth,
|
|
34
|
+
onDayClick,
|
|
35
|
+
onToday,
|
|
36
|
+
onClear,
|
|
37
|
+
onApply,
|
|
38
|
+
onTimeChange,
|
|
39
|
+
onClose,
|
|
40
|
+
onDialogTouchStart,
|
|
41
|
+
onDialogTouchEnd,
|
|
42
|
+
viewMode = "days",
|
|
43
|
+
onViewModeChange,
|
|
44
|
+
onMonthSelect,
|
|
45
|
+
onYearSelect
|
|
46
|
+
}) {
|
|
47
|
+
const calendarDays = buildCalendarGrid(viewingMonth, minDate, maxDate);
|
|
48
|
+
const hours = buildHours();
|
|
49
|
+
const minutes = buildMinutes(minuteStep);
|
|
50
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
51
|
+
/* @__PURE__ */ jsx(
|
|
52
|
+
"div",
|
|
53
|
+
{
|
|
54
|
+
"aria-hidden": "true",
|
|
55
|
+
className: bem("dialog__backdrop"),
|
|
56
|
+
onClick: onClose
|
|
57
|
+
}
|
|
58
|
+
),
|
|
59
|
+
/* @__PURE__ */ jsxs(
|
|
60
|
+
"div",
|
|
61
|
+
{
|
|
62
|
+
"aria-label": `Choose ${label}`,
|
|
63
|
+
"aria-modal": "true",
|
|
64
|
+
id: `${name}-dialog`,
|
|
65
|
+
role: "dialog",
|
|
66
|
+
className: [
|
|
67
|
+
bem("dialog"),
|
|
68
|
+
dialogColor ? bem(void 0, { [dialogColor]: true }) : ""
|
|
69
|
+
].filter(Boolean).join(" "),
|
|
70
|
+
onTouchEnd: onDialogTouchEnd,
|
|
71
|
+
onTouchStart: onDialogTouchStart,
|
|
72
|
+
children: [
|
|
73
|
+
/* @__PURE__ */ jsxs("div", { className: bem("dialog__header"), children: [
|
|
74
|
+
/* @__PURE__ */ jsx(
|
|
75
|
+
"button",
|
|
76
|
+
{
|
|
77
|
+
"aria-label": prevAriaLabel,
|
|
78
|
+
className: bem("nav__btn", { prev: true }),
|
|
79
|
+
type: "button",
|
|
80
|
+
onClick: onPrevMonth,
|
|
81
|
+
children: /* @__PURE__ */ jsx(Icon, { name: prevIcon, size: "sm" })
|
|
82
|
+
}
|
|
83
|
+
),
|
|
84
|
+
/* @__PURE__ */ jsxs("span", { className: bem("month__label"), children: [
|
|
85
|
+
viewMode === "days" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
86
|
+
/* @__PURE__ */ jsx(
|
|
87
|
+
"button",
|
|
88
|
+
{
|
|
89
|
+
className: bem("header-btn"),
|
|
90
|
+
type: "button",
|
|
91
|
+
onClick: /* @__PURE__ */ __name(() => onViewModeChange == null ? void 0 : onViewModeChange("months"), "onClick"),
|
|
92
|
+
children: viewingMonth.format("MMMM")
|
|
93
|
+
}
|
|
94
|
+
),
|
|
95
|
+
/* @__PURE__ */ jsx(
|
|
96
|
+
"button",
|
|
97
|
+
{
|
|
98
|
+
className: bem("header-btn"),
|
|
99
|
+
type: "button",
|
|
100
|
+
onClick: /* @__PURE__ */ __name(() => onViewModeChange == null ? void 0 : onViewModeChange("years"), "onClick"),
|
|
101
|
+
children: viewingMonth.format("YYYY")
|
|
102
|
+
}
|
|
103
|
+
)
|
|
104
|
+
] }),
|
|
105
|
+
viewMode === "months" && /* @__PURE__ */ jsx(
|
|
106
|
+
"button",
|
|
107
|
+
{
|
|
108
|
+
className: bem("header-btn"),
|
|
109
|
+
type: "button",
|
|
110
|
+
onClick: /* @__PURE__ */ __name(() => onViewModeChange == null ? void 0 : onViewModeChange("years"), "onClick"),
|
|
111
|
+
children: viewingMonth.format("YYYY")
|
|
112
|
+
}
|
|
113
|
+
),
|
|
114
|
+
viewMode === "years" && (() => {
|
|
115
|
+
const startYear = Math.floor(viewingMonth.year() / 10) * 10;
|
|
116
|
+
return /* @__PURE__ */ jsxs("span", { className: bem("header-range"), children: [
|
|
117
|
+
startYear,
|
|
118
|
+
"–",
|
|
119
|
+
startYear + 11
|
|
120
|
+
] });
|
|
121
|
+
})()
|
|
122
|
+
] }),
|
|
123
|
+
/* @__PURE__ */ jsx(
|
|
124
|
+
"button",
|
|
125
|
+
{
|
|
126
|
+
"aria-label": nextAriaLabel,
|
|
127
|
+
className: bem("nav__btn", { next: true }),
|
|
128
|
+
type: "button",
|
|
129
|
+
onClick: onNextMonth,
|
|
130
|
+
children: /* @__PURE__ */ jsx(Icon, { name: nextIcon, size: "sm" })
|
|
131
|
+
}
|
|
132
|
+
),
|
|
133
|
+
/* @__PURE__ */ jsx(
|
|
134
|
+
"button",
|
|
135
|
+
{
|
|
136
|
+
"aria-label": closeLabel,
|
|
137
|
+
className: bem("dialog__close"),
|
|
138
|
+
type: "button",
|
|
139
|
+
onClick: onClose,
|
|
140
|
+
children: /* @__PURE__ */ jsx(Icon, { name: closeIcon, size: "sm" })
|
|
141
|
+
}
|
|
142
|
+
)
|
|
143
|
+
] }),
|
|
144
|
+
viewMode === "days" && /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: bem("weekdays"), children: weekdays.map((wd) => /* @__PURE__ */ jsx("span", { className: bem("weekday"), children: wd }, wd)) }),
|
|
145
|
+
viewMode === "days" && /* @__PURE__ */ jsx("div", { className: bem("days"), role: "grid", children: Array.from(
|
|
146
|
+
{ length: Math.ceil(calendarDays.length / 7) },
|
|
147
|
+
(_, weekIdx) => /* @__PURE__ */ jsx("div", { role: "row", children: calendarDays.slice(weekIdx * 7, weekIdx * 7 + 7).map((cell) => {
|
|
148
|
+
const isSelected = Boolean(
|
|
149
|
+
selectedDate && cell.isCurrentMonth && cell.date.isSame(selectedDate, "day")
|
|
150
|
+
);
|
|
151
|
+
return /* @__PURE__ */ jsx(
|
|
152
|
+
"button",
|
|
153
|
+
{
|
|
154
|
+
"aria-label": cell.date.format(dayAriaFormat),
|
|
155
|
+
"aria-selected": isSelected,
|
|
156
|
+
disabled: cell.isDisabled,
|
|
157
|
+
role: "gridcell",
|
|
158
|
+
type: "button",
|
|
159
|
+
className: bem("day", {
|
|
160
|
+
today: cell.isToday,
|
|
161
|
+
selected: isSelected,
|
|
162
|
+
outside: !cell.isCurrentMonth,
|
|
163
|
+
disabled: cell.isDisabled
|
|
164
|
+
}),
|
|
165
|
+
tabIndex: cell.isCurrentMonth && !cell.isDisabled ? 0 : -1,
|
|
166
|
+
onClick: /* @__PURE__ */ __name(() => {
|
|
167
|
+
if (!cell.isDisabled && cell.isCurrentMonth) {
|
|
168
|
+
onDayClick(cell.date);
|
|
169
|
+
}
|
|
170
|
+
}, "onClick"),
|
|
171
|
+
children: cell.date.date()
|
|
172
|
+
},
|
|
173
|
+
cell.date.format("YYYY-MM-DD")
|
|
174
|
+
);
|
|
175
|
+
}) }, weekIdx)
|
|
176
|
+
) }),
|
|
177
|
+
viewMode === "months" && /* @__PURE__ */ jsx("div", { className: bem("picker-grid"), children: MONTHS_SHORT.map((monthName, idx) => {
|
|
178
|
+
const disabled = isMonthDisabled(
|
|
179
|
+
idx,
|
|
180
|
+
viewingMonth.year(),
|
|
181
|
+
minDate,
|
|
182
|
+
maxDate
|
|
183
|
+
);
|
|
184
|
+
const isSelected = (selectedDate == null ? void 0 : selectedDate.month()) === idx && (selectedDate == null ? void 0 : selectedDate.year()) === viewingMonth.year();
|
|
185
|
+
const isCurrent = (/* @__PURE__ */ new Date()).getMonth() === idx && (/* @__PURE__ */ new Date()).getFullYear() === viewingMonth.year();
|
|
186
|
+
return /* @__PURE__ */ jsx(
|
|
187
|
+
"button",
|
|
188
|
+
{
|
|
189
|
+
"aria-disabled": disabled,
|
|
190
|
+
disabled,
|
|
191
|
+
type: "button",
|
|
192
|
+
className: bem("picker-cell", {
|
|
193
|
+
selected: isSelected,
|
|
194
|
+
today: isCurrent,
|
|
195
|
+
disabled
|
|
196
|
+
}),
|
|
197
|
+
onClick: /* @__PURE__ */ __name(() => !disabled && (onMonthSelect == null ? void 0 : onMonthSelect(idx)), "onClick"),
|
|
198
|
+
children: monthName
|
|
199
|
+
},
|
|
200
|
+
monthName
|
|
201
|
+
);
|
|
202
|
+
}) }),
|
|
203
|
+
viewMode === "years" && (() => {
|
|
204
|
+
const startYear = Math.floor(viewingMonth.year() / 10) * 10;
|
|
205
|
+
const years = Array.from({ length: 12 }, (_, i) => startYear + i);
|
|
206
|
+
return /* @__PURE__ */ jsx("div", { className: bem("picker-grid"), children: years.map((y) => {
|
|
207
|
+
const disabled = isYearDisabled(y, minDate, maxDate);
|
|
208
|
+
const isSelected = (selectedDate == null ? void 0 : selectedDate.year()) === y;
|
|
209
|
+
const isCurrent = (/* @__PURE__ */ new Date()).getFullYear() === y;
|
|
210
|
+
return /* @__PURE__ */ jsx(
|
|
211
|
+
"button",
|
|
212
|
+
{
|
|
213
|
+
"aria-disabled": disabled,
|
|
214
|
+
disabled,
|
|
215
|
+
type: "button",
|
|
216
|
+
className: bem("picker-cell", {
|
|
217
|
+
selected: isSelected,
|
|
218
|
+
today: isCurrent,
|
|
219
|
+
disabled
|
|
220
|
+
}),
|
|
221
|
+
onClick: /* @__PURE__ */ __name(() => !disabled && (onYearSelect == null ? void 0 : onYearSelect(y)), "onClick"),
|
|
222
|
+
children: y
|
|
223
|
+
},
|
|
224
|
+
y
|
|
225
|
+
);
|
|
226
|
+
}) });
|
|
227
|
+
})(),
|
|
228
|
+
withTime && /* @__PURE__ */ jsxs("div", { className: bem("time__row"), children: [
|
|
229
|
+
/* @__PURE__ */ jsx("span", { className: bem("time__label"), children: timeLabel }),
|
|
230
|
+
/* @__PURE__ */ jsx(
|
|
231
|
+
"select",
|
|
232
|
+
{
|
|
233
|
+
"aria-label": "Hour",
|
|
234
|
+
className: bem("time__select"),
|
|
235
|
+
value: (selectedDate == null ? void 0 : selectedDate.hour()) ?? 0,
|
|
236
|
+
onChange: /* @__PURE__ */ __name((e) => onTimeChange(parseInt(e.target.value, 10), "hour"), "onChange"),
|
|
237
|
+
children: hours.map((h) => /* @__PURE__ */ jsx("option", { value: h, children: pad2(h) }, h))
|
|
238
|
+
}
|
|
239
|
+
),
|
|
240
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: bem("time__sep"), children: ":" }),
|
|
241
|
+
/* @__PURE__ */ jsx(
|
|
242
|
+
"select",
|
|
243
|
+
{
|
|
244
|
+
"aria-label": "Minute",
|
|
245
|
+
className: bem("time__select"),
|
|
246
|
+
value: selectedDate ? Math.round(
|
|
247
|
+
selectedDate.minute() / Math.max(1, minuteStep)
|
|
248
|
+
) * Math.max(1, minuteStep) : 0,
|
|
249
|
+
onChange: /* @__PURE__ */ __name((e) => onTimeChange(parseInt(e.target.value, 10), "minute"), "onChange"),
|
|
250
|
+
children: minutes.map((m) => /* @__PURE__ */ jsx("option", { value: m, children: pad2(m) }, m))
|
|
251
|
+
}
|
|
252
|
+
)
|
|
253
|
+
] }),
|
|
254
|
+
/* @__PURE__ */ jsxs("div", { className: bem("footer"), children: [
|
|
255
|
+
/* @__PURE__ */ jsx(
|
|
256
|
+
"button",
|
|
257
|
+
{
|
|
258
|
+
className: bem("footer__btn", { ghost: true }),
|
|
259
|
+
type: "button",
|
|
260
|
+
onClick: onToday,
|
|
261
|
+
children: todayLabel
|
|
262
|
+
}
|
|
263
|
+
),
|
|
264
|
+
/* @__PURE__ */ jsx(
|
|
265
|
+
"button",
|
|
266
|
+
{
|
|
267
|
+
className: bem("footer__btn", { ghost: true }),
|
|
268
|
+
type: "button",
|
|
269
|
+
onClick: onClear,
|
|
270
|
+
children: clearLabel
|
|
271
|
+
}
|
|
272
|
+
),
|
|
273
|
+
/* @__PURE__ */ jsx(
|
|
274
|
+
"button",
|
|
275
|
+
{
|
|
276
|
+
className: bem("footer__btn", { filled: true }),
|
|
277
|
+
type: "button",
|
|
278
|
+
onClick: onApply,
|
|
279
|
+
children: applyLabel
|
|
280
|
+
}
|
|
281
|
+
)
|
|
282
|
+
] })
|
|
283
|
+
]
|
|
284
|
+
}
|
|
285
|
+
)
|
|
286
|
+
] });
|
|
287
|
+
}
|
|
288
|
+
__name(DatePickerDialog, "DatePickerDialog");
|
|
289
|
+
export {
|
|
290
|
+
DatePickerDialog
|
|
291
|
+
};
|