@bifrostui/react 2.0.0-alpha.0 → 2.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Alert/Alert.js +2 -1
- package/dist/Alert/__tests__/fixtures/A11yDemos.d.ts +17 -0
- package/dist/Alert/__tests__/fixtures/A11yDemos.js +143 -0
- package/dist/Alert/index.css +4 -4
- package/dist/Avatar/AvatarGroup.css +8 -8
- package/dist/Avatar/index.css +8 -8
- package/dist/Backdrop/Backdrop.js +3 -2
- package/dist/Backdrop/Backdrop.types.d.ts +4 -0
- package/dist/Backdrop/__tests__/fixtures/A11yDemos.d.ts +8 -0
- package/dist/Backdrop/__tests__/fixtures/A11yDemos.js +51 -0
- package/dist/Backdrop/index.css +2 -2
- package/dist/Badge/Badge.js +38 -11
- package/dist/Badge/Badge.types.d.ts +30 -1
- package/dist/Badge/__tests__/fixtures/A11yDemos.d.ts +25 -0
- package/dist/Badge/__tests__/fixtures/A11yDemos.js +110 -0
- package/dist/Badge/hooks/useBadgeA11y.d.ts +23 -0
- package/dist/Badge/hooks/useBadgeA11y.js +76 -0
- package/dist/Badge/hooks/useBadgeDisplay.d.ts +16 -0
- package/dist/Badge/hooks/useBadgeDisplay.js +56 -0
- package/dist/Button/Button.js +2 -1
- package/dist/Button/__tests__/fixtures/A11yDemos.d.ts +23 -0
- package/dist/Button/__tests__/fixtures/A11yDemos.js +81 -0
- package/dist/Button/index.css +4 -5
- package/dist/CSSTransition/CSSTransition.d.ts +4 -0
- package/dist/CSSTransition/CSSTransition.js +177 -0
- package/dist/CSSTransition/CSSTransition.types.d.ts +13 -0
- package/dist/CSSTransition/CSSTransition.types.js +15 -0
- package/dist/CSSTransition/demo/CSSTransitionDemo.d.ts +4 -0
- package/dist/CSSTransition/demo/CSSTransitionDemo.js +76 -0
- package/dist/CSSTransition/demo/index.css +25 -0
- package/dist/CSSTransition/index.d.ts +2 -0
- package/dist/CSSTransition/index.js +41 -0
- package/dist/Calendar/Calendar.js +131 -34
- package/dist/Calendar/Calendar.types.d.ts +16 -1
- package/dist/Calendar/__tests__/fixtures/A11yDemos.d.ts +2 -0
- package/dist/Calendar/__tests__/fixtures/A11yDemos.js +41 -0
- package/dist/Calendar/index.css +52 -9
- package/dist/Calendar/utils.d.ts +7 -3
- package/dist/Calendar/utils.js +33 -23
- package/dist/Checkbox/Checkbox.js +5 -4
- package/dist/Checkbox/__tests__/fixtures/A11yDemos.d.ts +15 -0
- package/dist/Checkbox/__tests__/fixtures/A11yDemos.js +57 -0
- package/dist/CitySelector/CitySelector.types.d.ts +0 -1
- package/dist/Collapse/Collapse.d.ts +1 -1
- package/dist/Collapse/Collapse.js +26 -12
- package/dist/Collapse/Collapse.miniapp.d.ts +10 -0
- package/dist/Collapse/Collapse.miniapp.js +255 -0
- package/dist/Collapse/index.css +40 -1
- package/dist/CollapsePanel/index.css +1 -1
- package/dist/Countdown/Countdown.js +61 -21
- package/dist/Countdown/Countdown.types.d.ts +19 -15
- package/dist/Countdown/__tests__/fixtures/A11yDemos.d.ts +23 -0
- package/dist/Countdown/__tests__/fixtures/A11yDemos.js +107 -0
- package/dist/Countdown/index.css +11 -0
- package/dist/DatePicker/DatePicker.d.ts +4 -0
- package/dist/DatePicker/DatePicker.js +335 -0
- package/dist/DatePicker/DatePicker.types.d.ts +36 -0
- package/dist/DatePicker/DatePicker.types.js +15 -0
- package/dist/DatePicker/constants.d.ts +9 -0
- package/dist/DatePicker/constants.js +37 -0
- package/dist/DatePicker/index.d.ts +3 -0
- package/dist/DatePicker/index.js +44 -0
- package/dist/DesktopDatePicker/DesktopDatePicker.css +61 -0
- package/dist/DesktopDatePicker/DesktopDatePicker.d.ts +5 -0
- package/dist/DesktopDatePicker/DesktopDatePicker.js +280 -0
- package/dist/DesktopDatePicker/DesktopDatePicker.types.d.ts +163 -0
- package/dist/DesktopDatePicker/DesktopDatePicker.types.js +15 -0
- package/dist/DesktopDatePicker/deskTopPickerContainer.css +100 -0
- package/dist/DesktopDatePicker/index.css +161 -0
- package/dist/DesktopDatePicker/index.d.ts +2 -0
- package/dist/DesktopDatePicker/index.js +41 -0
- package/dist/DesktopDatePicker/useGetDatePickerContent.d.ts +6 -0
- package/dist/DesktopDatePicker/useGetDatePickerContent.js +343 -0
- package/dist/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +5 -0
- package/dist/DesktopDateTimePicker/DesktopDateTimePicker.js +322 -0
- package/dist/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +163 -0
- package/dist/DesktopDateTimePicker/DesktopDateTimePicker.types.js +15 -0
- package/dist/DesktopDateTimePicker/index.css +66 -0
- package/dist/DesktopDateTimePicker/index.d.ts +2 -0
- package/dist/DesktopDateTimePicker/index.js +41 -0
- package/dist/DesktopPicker/DesktopPicker.d.ts +5 -0
- package/dist/DesktopPicker/DesktopPicker.js +243 -0
- package/dist/DesktopPicker/DesktopPicker.types.d.ts +61 -0
- package/dist/DesktopPicker/DesktopPicker.types.js +15 -0
- package/dist/DesktopPicker/index.css +39 -0
- package/dist/DesktopPicker/index.d.ts +2 -0
- package/dist/DesktopPicker/index.js +41 -0
- package/dist/DesktopPicker/utils/calcAfterMounted.d.ts +2 -0
- package/dist/{Tabs/utils/bound.js → DesktopPicker/utils/calcAfterMounted.js} +7 -14
- package/dist/DesktopPicker/utils/calcAfterMounted.miniapp.d.ts +2 -0
- package/dist/DesktopPicker/utils/calcAfterMounted.miniapp.js +38 -0
- package/dist/DesktopTimePicker/DesktopTimePicker.d.ts +5 -0
- package/dist/DesktopTimePicker/DesktopTimePicker.js +288 -0
- package/dist/DesktopTimePicker/DesktopTimePicker.types.d.ts +182 -0
- package/dist/DesktopTimePicker/DesktopTimePicker.types.js +15 -0
- package/dist/DesktopTimePicker/DesktopTimePickerList.d.ts +4 -0
- package/dist/DesktopTimePicker/DesktopTimePickerList.js +111 -0
- package/dist/DesktopTimePicker/index.css +170 -0
- package/dist/DesktopTimePicker/index.d.ts +2 -0
- package/dist/DesktopTimePicker/index.js +41 -0
- package/dist/DesktopTimePicker/useGetTimePickerContent.d.ts +6 -0
- package/dist/DesktopTimePicker/useGetTimePickerContent.js +249 -0
- package/dist/DesktopTimePicker/utils/scrollUtil.d.ts +2 -0
- package/dist/DesktopTimePicker/utils/scrollUtil.js +27 -0
- package/dist/DesktopTimePicker/utils/scrollUtil.miniapp.d.ts +2 -0
- package/dist/DesktopTimePicker/utils/scrollUtil.miniapp.js +51 -0
- package/dist/DesktopTimePicker/utils/utils.d.ts +28 -0
- package/dist/DesktopTimePicker/utils/utils.js +408 -0
- package/dist/Dialog/Dialog.d.ts +5 -2
- package/dist/Dialog/Dialog.js +56 -34
- package/dist/Dialog/Dialog.types.d.ts +50 -22
- package/dist/Dialog/FunctionalDialog.d.ts +10 -3
- package/dist/Dialog/FunctionalDialog.js +102 -80
- package/dist/Dialog/__tests__/fixtures/A11yDemos.d.ts +9 -0
- package/dist/Dialog/__tests__/fixtures/A11yDemos.js +78 -0
- package/dist/Dialog/index.css +19 -19
- package/dist/Dialog/index.d.ts +4 -1
- package/dist/Dialog/index.js +9 -2
- package/dist/Drawer/Drawer.js +7 -7
- package/dist/Drawer/__tests__/fixtures/A11yDemos.d.ts +21 -0
- package/dist/Drawer/__tests__/fixtures/A11yDemos.js +148 -0
- package/dist/Fade/Fade.js +2 -2
- package/dist/Fade/Fade.miniapp.d.ts +10 -0
- package/dist/Fade/Fade.miniapp.js +200 -0
- package/dist/Fade/index.css +18 -0
- package/dist/IconButton/IconButton.js +23 -8
- package/dist/IconButton/IconButton.types.d.ts +35 -1
- package/dist/IconButton/index.css +3 -0
- package/dist/Image/Image.js +17 -10
- package/dist/Image/__tests__/fixtures/A11yDemos.d.ts +21 -0
- package/dist/Image/__tests__/fixtures/A11yDemos.js +130 -0
- package/dist/Image/index.css +3 -8
- package/dist/Input/Input.js +5 -3
- package/dist/Input/__tests__/fixtures/A11yDemos.d.ts +21 -0
- package/dist/Input/__tests__/fixtures/A11yDemos.js +81 -0
- package/dist/Input/index.css +8 -8
- package/dist/ItemSelector/ItemSelector.types.d.ts +0 -1
- package/dist/Modal/Modal.js +47 -47
- package/dist/Modal/Modal.miniapp.d.ts +2 -2
- package/dist/Modal/Modal.miniapp.js +48 -32
- package/dist/Modal/Modal.types.d.ts +26 -2
- package/dist/Modal/ModalManager.d.ts +21 -0
- package/dist/Modal/ModalManager.js +238 -0
- package/dist/Modal/__tests__/fixtures/A11yDemos.d.ts +8 -0
- package/dist/Modal/__tests__/fixtures/A11yDemos.js +52 -0
- package/dist/Modal/index.css +1 -1
- package/dist/Modal/index.d.ts +3 -0
- package/dist/Modal/index.js +9 -1
- package/dist/Modal/useModal.d.ts +24 -0
- package/dist/Modal/useModal.js +190 -0
- package/dist/NavBar/index.css +2 -2
- package/dist/Picker/Picker.css +4 -0
- package/dist/Picker/Picker.js +72 -18
- package/dist/Picker/Picker.types.d.ts +15 -2
- package/dist/Picker/PickerPanel.css +4 -0
- package/dist/Picker/PickerPanel.js +52 -41
- package/dist/Picker/__tests__/fixtures/A11yDemos.d.ts +2 -0
- package/dist/Picker/__tests__/fixtures/A11yDemos.js +79 -0
- package/dist/Picker/index.css +8 -0
- package/dist/Picker/utils.d.ts +8 -5
- package/dist/Picker/utils.js +9 -12
- package/dist/Popover/Popover.js +123 -91
- package/dist/Popover/Popover.types.d.ts +44 -7
- package/dist/Popover/__tests__/fixtures/A11yDemos.d.ts +25 -0
- package/dist/Popover/__tests__/fixtures/A11yDemos.js +175 -0
- package/dist/Popover/hooks/index.d.ts +8 -0
- package/dist/Popover/hooks/index.js +36 -0
- package/dist/Popover/hooks/usePopoverA11y.d.ts +14 -0
- package/dist/Popover/hooks/usePopoverA11y.js +66 -0
- package/dist/Popover/hooks/usePopoverEvents.d.ts +21 -0
- package/dist/Popover/hooks/usePopoverEvents.js +150 -0
- package/dist/Popover/hooks/usePopoverPosition.d.ts +17 -0
- package/dist/Popover/hooks/usePopoverPosition.js +124 -0
- package/dist/Popover/hooks/usePopoverState.d.ts +16 -0
- package/dist/Popover/hooks/usePopoverState.js +54 -0
- package/dist/Portal/Portal.miniapp.js +20 -11
- package/dist/Portal/Portal.types.d.ts +1 -1
- package/dist/Portal/PortalCore.js +2 -2
- package/dist/Progress/Progress.js +61 -6
- package/dist/Progress/Progress.types.d.ts +44 -0
- package/dist/Progress/__tests__/fixtures/A11yDemos.d.ts +21 -0
- package/dist/Progress/__tests__/fixtures/A11yDemos.js +100 -0
- package/dist/Radio/Radio.js +5 -4
- package/dist/Radio/RadioGroup.js +1 -1
- package/dist/Radio/__tests__/fixtures/A11yDemos.d.ts +15 -0
- package/dist/Radio/__tests__/fixtures/A11yDemos.js +57 -0
- package/dist/Rating/index.css +8 -12
- package/dist/ScrollView/ScrollView.js +48 -196
- package/dist/ScrollView/ScrollView.types.d.ts +120 -86
- package/dist/ScrollView/__tests__/fixtures/A11yDemos.d.ts +7 -0
- package/dist/ScrollView/__tests__/fixtures/A11yDemos.js +319 -0
- package/dist/ScrollView/useScrollView.d.ts +10 -0
- package/dist/ScrollView/useScrollView.js +300 -0
- package/dist/Select/Select.js +73 -39
- package/dist/Select/Select.types.d.ts +2 -2
- package/dist/Select/SelectOption.js +5 -1
- package/dist/Select/__tests__/fixtures/A11yDemos.d.ts +21 -0
- package/dist/Select/__tests__/fixtures/A11yDemos.js +154 -0
- package/dist/Select/index.css +12 -8
- package/dist/Select/selectContext.d.ts +0 -1
- package/dist/Slide/Slide.js +2 -2
- package/dist/Slide/Slide.miniapp.d.ts +14 -0
- package/dist/Slide/Slide.miniapp.js +213 -0
- package/dist/Slide/index.css +72 -0
- package/dist/Slider/Slider.js +13 -5
- package/dist/Stack/demo/index.css +2 -0
- package/dist/SwipeAction/SwipeAction.css +79 -0
- package/dist/SwipeAction/SwipeAction.d.ts +5 -0
- package/dist/SwipeAction/SwipeAction.js +349 -0
- package/dist/SwipeAction/SwipeAction.types.d.ts +75 -0
- package/dist/SwipeAction/SwipeAction.types.js +15 -0
- package/dist/SwipeAction/SwipeActionContext.d.ts +3 -0
- package/dist/SwipeAction/SwipeActionContext.js +30 -0
- package/dist/SwipeAction/SwipeActionItem.css +31 -0
- package/dist/SwipeAction/SwipeActionItem.d.ts +5 -0
- package/dist/SwipeAction/SwipeActionItem.js +105 -0
- package/dist/SwipeAction/constants.d.ts +9 -0
- package/dist/SwipeAction/constants.js +39 -0
- package/dist/SwipeAction/index.css +110 -0
- package/dist/SwipeAction/index.d.ts +5 -0
- package/dist/SwipeAction/index.js +50 -0
- package/dist/Swiper/Swiper.js +18 -4
- package/dist/Switch/Switch.js +5 -4
- package/dist/Switch/__tests__/fixtures/A11yDemos.d.ts +15 -0
- package/dist/Switch/__tests__/fixtures/A11yDemos.js +57 -0
- package/dist/Tabs/Tab.js +36 -21
- package/dist/Tabs/Tab.types.d.ts +1 -1
- package/dist/Tabs/TabPanel.d.ts +1 -1
- package/dist/Tabs/TabPanel.js +9 -5
- package/dist/Tabs/Tabs.css +2 -2
- package/dist/Tabs/Tabs.js +87 -64
- package/dist/Tabs/Tabs.types.d.ts +1 -1
- package/dist/Tabs/TabsContext.d.ts +4 -5
- package/dist/Tabs/TabsContext.js +3 -1
- package/dist/Tabs/index.css +2 -2
- package/dist/Tabs/utils/scroll.d.ts +2 -0
- package/dist/Tabs/utils/scroll.js +55 -0
- package/dist/Tag/__tests__/fixtures/A11yDemos.d.ts +21 -0
- package/dist/Tag/__tests__/fixtures/A11yDemos.js +196 -0
- package/dist/TextArea/TextArea.js +50 -7
- package/dist/TextArea/TextArea.types.d.ts +28 -0
- package/dist/TextArea/__tests__/fixtures/A11yDemos.d.ts +19 -0
- package/dist/TextArea/__tests__/fixtures/A11yDemos.js +91 -0
- package/dist/TextArea/index.css +4 -4
- package/dist/ThemeProvider/ThemeProvider.types.d.ts +2 -2
- package/dist/ThemeProvider/ThemeProvider.types.js +0 -12
- package/dist/Toast/FunctionalToast.d.ts +2 -2
- package/dist/Toast/FunctionalToast.js +180 -85
- package/dist/Toast/Toast.d.ts +2 -2
- package/dist/Toast/Toast.js +69 -28
- package/dist/Toast/Toast.types.d.ts +13 -10
- package/dist/Toast/__tests__/fixtures/A11yDemos.d.ts +2 -0
- package/dist/Toast/__tests__/fixtures/A11yDemos.js +54 -0
- package/dist/Toast/index.css +0 -1
- package/dist/Tooltip/Tooltip.js +63 -107
- package/dist/Tooltip/Tooltip.types.d.ts +94 -43
- package/dist/Tooltip/__tests__/fixtures/A11yDemos.d.ts +25 -0
- package/dist/Tooltip/__tests__/fixtures/A11yDemos.js +100 -0
- package/dist/Tooltip/useTooltip.d.ts +29 -0
- package/dist/Tooltip/useTooltip.js +313 -0
- package/dist/Transition/TransitionCore.js +30 -25
- package/dist/TransitionGroup/TransitionGroup.d.ts +7 -0
- package/dist/TransitionGroup/TransitionGroup.js +132 -0
- package/dist/TransitionGroup/TransitionGroup.types.d.ts +47 -0
- package/dist/TransitionGroup/TransitionGroup.types.js +15 -0
- package/dist/TransitionGroup/demo/TransitionGroupDemo.d.ts +4 -0
- package/dist/TransitionGroup/demo/TransitionGroupDemo.js +68 -0
- package/dist/TransitionGroup/demo/index.css +33 -0
- package/dist/TransitionGroup/index.d.ts +2 -0
- package/dist/TransitionGroup/index.js +41 -0
- package/dist/TransitionGroup/utils/childMapping.d.ts +27 -0
- package/dist/TransitionGroup/utils/childMapping.js +119 -0
- package/dist/_.._/benchmarks/components/Button.js +41 -0
- package/dist/_.._/benchmarks/components/Input.js +45 -0
- package/dist/_.._/benchmarks/components/Tabs.js +50 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +17 -1
- package/dist/locales/base.d.ts +40 -1
- package/dist/locales/en-US.js +54 -2
- package/dist/locales/zh-CN.js +56 -1
- package/dist/locales/zh-TW.js +56 -1
- package/es/Alert/Alert.js +2 -1
- package/es/Alert/__tests__/fixtures/A11yDemos.d.ts +17 -0
- package/es/Alert/__tests__/fixtures/A11yDemos.js +107 -0
- package/es/Alert/index.css +4 -4
- package/es/Avatar/AvatarGroup.css +8 -8
- package/es/Avatar/index.css +8 -8
- package/es/Backdrop/Backdrop.js +3 -2
- package/es/Backdrop/Backdrop.types.d.ts +4 -0
- package/es/Backdrop/__tests__/fixtures/A11yDemos.d.ts +8 -0
- package/es/Backdrop/__tests__/fixtures/A11yDemos.js +17 -0
- package/es/Backdrop/index.css +2 -2
- package/es/Badge/Badge.js +38 -11
- package/es/Badge/Badge.types.d.ts +30 -1
- package/es/Badge/__tests__/fixtures/A11yDemos.d.ts +25 -0
- package/es/Badge/__tests__/fixtures/A11yDemos.js +70 -0
- package/es/Badge/hooks/useBadgeA11y.d.ts +23 -0
- package/es/Badge/hooks/useBadgeA11y.js +53 -0
- package/es/Badge/hooks/useBadgeDisplay.d.ts +16 -0
- package/es/Badge/hooks/useBadgeDisplay.js +33 -0
- package/es/Button/Button.js +2 -1
- package/es/Button/__tests__/fixtures/A11yDemos.d.ts +23 -0
- package/es/Button/__tests__/fixtures/A11yDemos.js +42 -0
- package/es/Button/index.css +4 -5
- package/es/CSSTransition/CSSTransition.d.ts +4 -0
- package/es/CSSTransition/CSSTransition.js +153 -0
- package/es/CSSTransition/CSSTransition.types.d.ts +13 -0
- package/es/CSSTransition/CSSTransition.types.js +1 -0
- package/es/CSSTransition/demo/CSSTransitionDemo.d.ts +4 -0
- package/es/CSSTransition/demo/CSSTransitionDemo.js +47 -0
- package/es/CSSTransition/demo/index.css +25 -0
- package/es/CSSTransition/index.d.ts +2 -0
- package/es/CSSTransition/index.js +6 -0
- package/es/Calendar/Calendar.js +131 -34
- package/es/Calendar/Calendar.types.d.ts +16 -1
- package/es/Calendar/__tests__/fixtures/A11yDemos.d.ts +2 -0
- package/es/Calendar/__tests__/fixtures/A11yDemos.js +8 -0
- package/es/Calendar/index.css +52 -9
- package/es/Calendar/utils.d.ts +7 -3
- package/es/Calendar/utils.js +29 -20
- package/es/Checkbox/Checkbox.js +5 -4
- package/es/Checkbox/__tests__/fixtures/A11yDemos.d.ts +15 -0
- package/es/Checkbox/__tests__/fixtures/A11yDemos.js +22 -0
- package/es/CitySelector/CitySelector.types.d.ts +0 -1
- package/es/Collapse/Collapse.d.ts +1 -1
- package/es/Collapse/Collapse.js +26 -12
- package/es/Collapse/Collapse.miniapp.d.ts +10 -0
- package/es/Collapse/Collapse.miniapp.js +236 -0
- package/es/Collapse/index.css +40 -1
- package/es/CollapsePanel/index.css +1 -1
- package/es/Countdown/Countdown.js +61 -21
- package/es/Countdown/Countdown.types.d.ts +19 -15
- package/es/Countdown/__tests__/fixtures/A11yDemos.d.ts +23 -0
- package/es/Countdown/__tests__/fixtures/A11yDemos.js +68 -0
- package/es/Countdown/index.css +11 -0
- package/es/DatePicker/DatePicker.d.ts +4 -0
- package/es/DatePicker/DatePicker.js +308 -0
- package/es/DatePicker/DatePicker.types.d.ts +36 -0
- package/es/DatePicker/DatePicker.types.js +1 -0
- package/es/DatePicker/constants.d.ts +9 -0
- package/es/DatePicker/constants.js +14 -0
- package/es/DatePicker/index.d.ts +3 -0
- package/es/DatePicker/index.js +8 -0
- package/es/DesktopDatePicker/DesktopDatePicker.css +61 -0
- package/es/DesktopDatePicker/DesktopDatePicker.d.ts +5 -0
- package/es/DesktopDatePicker/DesktopDatePicker.js +253 -0
- package/es/DesktopDatePicker/DesktopDatePicker.types.d.ts +163 -0
- package/es/DesktopDatePicker/DesktopDatePicker.types.js +1 -0
- package/es/DesktopDatePicker/deskTopPickerContainer.css +100 -0
- package/es/DesktopDatePicker/index.css +161 -0
- package/es/DesktopDatePicker/index.d.ts +2 -0
- package/es/DesktopDatePicker/index.js +6 -0
- package/es/DesktopDatePicker/useGetDatePickerContent.d.ts +6 -0
- package/es/DesktopDatePicker/useGetDatePickerContent.js +316 -0
- package/es/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +5 -0
- package/es/DesktopDateTimePicker/DesktopDateTimePicker.js +295 -0
- package/es/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +163 -0
- package/es/DesktopDateTimePicker/DesktopDateTimePicker.types.js +1 -0
- package/es/DesktopDateTimePicker/index.css +66 -0
- package/es/DesktopDateTimePicker/index.d.ts +2 -0
- package/es/DesktopDateTimePicker/index.js +9 -0
- package/es/DesktopPicker/DesktopPicker.d.ts +5 -0
- package/es/DesktopPicker/DesktopPicker.js +226 -0
- package/es/DesktopPicker/DesktopPicker.types.d.ts +61 -0
- package/es/DesktopPicker/DesktopPicker.types.js +1 -0
- package/es/DesktopPicker/index.css +39 -0
- package/es/DesktopPicker/index.d.ts +2 -0
- package/es/DesktopPicker/index.js +6 -0
- package/es/DesktopPicker/utils/calcAfterMounted.d.ts +2 -0
- package/es/DesktopPicker/utils/calcAfterMounted.js +6 -0
- package/es/DesktopPicker/utils/calcAfterMounted.miniapp.d.ts +2 -0
- package/es/DesktopPicker/utils/calcAfterMounted.miniapp.js +9 -0
- package/es/DesktopTimePicker/DesktopTimePicker.d.ts +5 -0
- package/es/DesktopTimePicker/DesktopTimePicker.js +261 -0
- package/es/DesktopTimePicker/DesktopTimePicker.types.d.ts +182 -0
- package/es/DesktopTimePicker/DesktopTimePicker.types.js +1 -0
- package/es/DesktopTimePicker/DesktopTimePickerList.d.ts +4 -0
- package/es/DesktopTimePicker/DesktopTimePickerList.js +84 -0
- package/es/DesktopTimePicker/index.css +170 -0
- package/es/DesktopTimePicker/index.d.ts +2 -0
- package/es/DesktopTimePicker/index.js +6 -0
- package/es/DesktopTimePicker/useGetTimePickerContent.d.ts +6 -0
- package/es/DesktopTimePicker/useGetTimePickerContent.js +226 -0
- package/es/DesktopTimePicker/utils/scrollUtil.d.ts +2 -0
- package/es/DesktopTimePicker/utils/scrollUtil.js +8 -0
- package/es/DesktopTimePicker/utils/scrollUtil.miniapp.d.ts +2 -0
- package/es/DesktopTimePicker/utils/scrollUtil.miniapp.js +22 -0
- package/es/DesktopTimePicker/utils/utils.d.ts +28 -0
- package/es/DesktopTimePicker/utils/utils.js +365 -0
- package/es/Dialog/Dialog.d.ts +5 -2
- package/es/Dialog/Dialog.js +57 -35
- package/es/Dialog/Dialog.types.d.ts +50 -22
- package/es/Dialog/FunctionalDialog.d.ts +10 -3
- package/es/Dialog/FunctionalDialog.js +106 -84
- package/es/Dialog/__tests__/fixtures/A11yDemos.d.ts +9 -0
- package/es/Dialog/__tests__/fixtures/A11yDemos.js +43 -0
- package/es/Dialog/index.css +19 -19
- package/es/Dialog/index.d.ts +4 -1
- package/es/Dialog/index.js +10 -3
- package/es/Drawer/Drawer.js +8 -8
- package/es/Drawer/__tests__/fixtures/A11yDemos.d.ts +21 -0
- package/es/Drawer/__tests__/fixtures/A11yDemos.js +112 -0
- package/es/Fade/Fade.js +2 -2
- package/es/Fade/Fade.miniapp.d.ts +10 -0
- package/es/Fade/Fade.miniapp.js +179 -0
- package/es/Fade/index.css +18 -0
- package/es/IconButton/IconButton.js +23 -8
- package/es/IconButton/IconButton.types.d.ts +35 -1
- package/es/IconButton/index.css +3 -0
- package/es/Image/Image.js +17 -10
- package/es/Image/__tests__/fixtures/A11yDemos.d.ts +21 -0
- package/es/Image/__tests__/fixtures/A11yDemos.js +92 -0
- package/es/Image/index.css +3 -8
- package/es/Input/Input.js +5 -3
- package/es/Input/__tests__/fixtures/A11yDemos.d.ts +21 -0
- package/es/Input/__tests__/fixtures/A11yDemos.js +43 -0
- package/es/Input/index.css +8 -8
- package/es/ItemSelector/ItemSelector.types.d.ts +0 -1
- package/es/Modal/Modal.js +48 -48
- package/es/Modal/Modal.miniapp.d.ts +2 -2
- package/es/Modal/Modal.miniapp.js +49 -33
- package/es/Modal/Modal.types.d.ts +26 -2
- package/es/Modal/ModalManager.d.ts +21 -0
- package/es/Modal/ModalManager.js +214 -0
- package/es/Modal/__tests__/fixtures/A11yDemos.d.ts +8 -0
- package/es/Modal/__tests__/fixtures/A11yDemos.js +18 -0
- package/es/Modal/index.css +1 -1
- package/es/Modal/index.d.ts +3 -0
- package/es/Modal/index.js +6 -1
- package/es/Modal/useModal.d.ts +24 -0
- package/es/Modal/useModal.js +169 -0
- package/es/NavBar/index.css +2 -2
- package/es/Picker/Picker.css +4 -0
- package/es/Picker/Picker.js +72 -18
- package/es/Picker/Picker.types.d.ts +15 -2
- package/es/Picker/PickerPanel.css +4 -0
- package/es/Picker/PickerPanel.js +52 -41
- package/es/Picker/__tests__/fixtures/A11yDemos.d.ts +2 -0
- package/es/Picker/__tests__/fixtures/A11yDemos.js +46 -0
- package/es/Picker/index.css +8 -0
- package/es/Picker/utils.d.ts +8 -5
- package/es/Picker/utils.js +9 -12
- package/es/Popover/Popover.js +130 -99
- package/es/Popover/Popover.types.d.ts +44 -7
- package/es/Popover/__tests__/fixtures/A11yDemos.d.ts +25 -0
- package/es/Popover/__tests__/fixtures/A11yDemos.js +135 -0
- package/es/Popover/hooks/index.d.ts +8 -0
- package/es/Popover/hooks/index.js +10 -0
- package/es/Popover/hooks/usePopoverA11y.d.ts +14 -0
- package/es/Popover/hooks/usePopoverA11y.js +43 -0
- package/es/Popover/hooks/usePopoverEvents.d.ts +21 -0
- package/es/Popover/hooks/usePopoverEvents.js +127 -0
- package/es/Popover/hooks/usePopoverPosition.d.ts +17 -0
- package/es/Popover/hooks/usePopoverPosition.js +105 -0
- package/es/Popover/hooks/usePopoverState.d.ts +16 -0
- package/es/Popover/hooks/usePopoverState.js +31 -0
- package/es/Portal/Portal.miniapp.js +21 -12
- package/es/Portal/Portal.types.d.ts +1 -1
- package/es/Portal/PortalCore.js +2 -2
- package/es/Progress/Progress.js +61 -6
- package/es/Progress/Progress.types.d.ts +44 -0
- package/es/Progress/__tests__/fixtures/A11yDemos.d.ts +21 -0
- package/es/Progress/__tests__/fixtures/A11yDemos.js +62 -0
- package/es/Radio/Radio.js +5 -4
- package/es/Radio/RadioGroup.js +1 -1
- package/es/Radio/__tests__/fixtures/A11yDemos.d.ts +15 -0
- package/es/Radio/__tests__/fixtures/A11yDemos.js +22 -0
- package/es/Rating/index.css +8 -12
- package/es/ScrollView/ScrollView.js +51 -197
- package/es/ScrollView/ScrollView.types.d.ts +120 -86
- package/es/ScrollView/__tests__/fixtures/A11yDemos.d.ts +7 -0
- package/es/ScrollView/__tests__/fixtures/A11yDemos.js +283 -0
- package/es/ScrollView/useScrollView.d.ts +10 -0
- package/es/ScrollView/useScrollView.js +279 -0
- package/es/Select/Select.js +73 -40
- package/es/Select/Select.types.d.ts +2 -2
- package/es/Select/SelectOption.js +5 -1
- package/es/Select/__tests__/fixtures/A11yDemos.d.ts +21 -0
- package/es/Select/__tests__/fixtures/A11yDemos.js +118 -0
- package/es/Select/index.css +12 -8
- package/es/Select/selectContext.d.ts +0 -1
- package/es/Slide/Slide.js +2 -2
- package/es/Slide/Slide.miniapp.d.ts +14 -0
- package/es/Slide/Slide.miniapp.js +192 -0
- package/es/Slide/index.css +72 -0
- package/es/Slider/Slider.js +16 -6
- package/es/Stack/demo/index.css +2 -0
- package/es/SwipeAction/SwipeAction.css +79 -0
- package/es/SwipeAction/SwipeAction.d.ts +5 -0
- package/es/SwipeAction/SwipeAction.js +334 -0
- package/es/SwipeAction/SwipeAction.types.d.ts +75 -0
- package/es/SwipeAction/SwipeAction.types.js +1 -0
- package/es/SwipeAction/SwipeActionContext.d.ts +3 -0
- package/es/SwipeAction/SwipeActionContext.js +11 -0
- package/es/SwipeAction/SwipeActionItem.css +31 -0
- package/es/SwipeAction/SwipeActionItem.d.ts +5 -0
- package/es/SwipeAction/SwipeActionItem.js +78 -0
- package/es/SwipeAction/constants.d.ts +9 -0
- package/es/SwipeAction/constants.js +15 -0
- package/es/SwipeAction/index.css +110 -0
- package/es/SwipeAction/index.d.ts +5 -0
- package/es/SwipeAction/index.js +12 -0
- package/es/Swiper/Swiper.js +18 -4
- package/es/Switch/Switch.js +5 -4
- package/es/Switch/__tests__/fixtures/A11yDemos.d.ts +15 -0
- package/es/Switch/__tests__/fixtures/A11yDemos.js +22 -0
- package/es/Tabs/Tab.js +36 -21
- package/es/Tabs/Tab.types.d.ts +1 -1
- package/es/Tabs/TabPanel.d.ts +1 -1
- package/es/Tabs/TabPanel.js +8 -4
- package/es/Tabs/Tabs.css +2 -2
- package/es/Tabs/Tabs.js +87 -64
- package/es/Tabs/Tabs.types.d.ts +1 -1
- package/es/Tabs/TabsContext.d.ts +4 -5
- package/es/Tabs/TabsContext.js +3 -1
- package/es/Tabs/index.css +2 -2
- package/es/Tabs/utils/scroll.d.ts +2 -0
- package/es/Tabs/utils/scroll.js +36 -0
- package/es/Tag/__tests__/fixtures/A11yDemos.d.ts +21 -0
- package/es/Tag/__tests__/fixtures/A11yDemos.js +160 -0
- package/es/TextArea/TextArea.js +51 -8
- package/es/TextArea/TextArea.types.d.ts +28 -0
- package/es/TextArea/__tests__/fixtures/A11yDemos.d.ts +19 -0
- package/es/TextArea/__tests__/fixtures/A11yDemos.js +54 -0
- package/es/TextArea/index.css +4 -4
- package/es/ThemeProvider/ThemeProvider.types.d.ts +2 -2
- package/es/Toast/FunctionalToast.d.ts +2 -2
- package/es/Toast/FunctionalToast.js +186 -86
- package/es/Toast/Toast.d.ts +2 -2
- package/es/Toast/Toast.js +69 -28
- package/es/Toast/Toast.types.d.ts +13 -10
- package/es/Toast/__tests__/fixtures/A11yDemos.d.ts +2 -0
- package/es/Toast/__tests__/fixtures/A11yDemos.js +21 -0
- package/es/Toast/index.css +0 -1
- package/es/Tooltip/Tooltip.js +64 -114
- package/es/Tooltip/Tooltip.types.d.ts +94 -43
- package/es/Tooltip/__tests__/fixtures/A11yDemos.d.ts +25 -0
- package/es/Tooltip/__tests__/fixtures/A11yDemos.js +60 -0
- package/es/Tooltip/useTooltip.d.ts +29 -0
- package/es/Tooltip/useTooltip.js +290 -0
- package/es/Transition/TransitionCore.js +31 -26
- package/es/TransitionGroup/TransitionGroup.d.ts +7 -0
- package/es/TransitionGroup/TransitionGroup.js +109 -0
- package/es/TransitionGroup/TransitionGroup.types.d.ts +47 -0
- package/es/TransitionGroup/TransitionGroup.types.js +1 -0
- package/es/TransitionGroup/demo/TransitionGroupDemo.d.ts +4 -0
- package/es/TransitionGroup/demo/TransitionGroupDemo.js +39 -0
- package/es/TransitionGroup/demo/index.css +33 -0
- package/es/TransitionGroup/index.d.ts +2 -0
- package/es/TransitionGroup/index.js +6 -0
- package/es/TransitionGroup/utils/childMapping.d.ts +27 -0
- package/es/TransitionGroup/utils/childMapping.js +93 -0
- package/es/_.._/benchmarks/components/Button.js +8 -0
- package/es/_.._/benchmarks/components/Input.js +12 -0
- package/es/_.._/benchmarks/components/Tabs.js +17 -0
- package/es/index.d.ts +8 -0
- package/es/index.js +8 -0
- package/es/locales/base.d.ts +40 -1
- package/es/locales/en-US.js +54 -2
- package/es/locales/zh-CN.js +56 -1
- package/es/locales/zh-TW.js +56 -1
- package/package.json +9 -6
- package/dist/Tabs/utils/bound.d.ts +0 -1
- package/es/Tabs/utils/bound.d.ts +0 -1
- package/es/Tabs/utils/bound.js +0 -13
|
@@ -61,6 +61,7 @@ var import_react = __toESM(require("react"));
|
|
|
61
61
|
var import_utils = require("@bifrostui/utils");
|
|
62
62
|
var import_useCountdown = __toESM(require("./useCountdown"));
|
|
63
63
|
var import_utils2 = require("./utils");
|
|
64
|
+
var import_locales = require("../locales");
|
|
64
65
|
var import_index = require("./index.css");
|
|
65
66
|
const prefixCls = "bui-countdown";
|
|
66
67
|
const Countdown = (0, import_react.forwardRef)((props, ref) => {
|
|
@@ -70,25 +71,28 @@ const Countdown = (0, import_react.forwardRef)((props, ref) => {
|
|
|
70
71
|
endTimestamp,
|
|
71
72
|
remainingTime = 0,
|
|
72
73
|
format = "HH:mm:ss",
|
|
73
|
-
unitStyle = {},
|
|
74
|
-
valueStyle = [{}, {}],
|
|
75
|
-
timeSliceStyle = {},
|
|
76
74
|
renderContent,
|
|
77
75
|
onChange,
|
|
78
|
-
onFinish
|
|
76
|
+
onFinish,
|
|
77
|
+
"aria-label": ariaLabel,
|
|
78
|
+
"aria-labelledby": ariaLabelledby,
|
|
79
|
+
"aria-describedby": ariaDescribedby,
|
|
80
|
+
role = "timer"
|
|
79
81
|
} = _a, others = __objRest(_a, [
|
|
80
82
|
"className",
|
|
81
83
|
"serverTimestamp",
|
|
82
84
|
"endTimestamp",
|
|
83
85
|
"remainingTime",
|
|
84
86
|
"format",
|
|
85
|
-
"unitStyle",
|
|
86
|
-
"valueStyle",
|
|
87
|
-
"timeSliceStyle",
|
|
88
87
|
"renderContent",
|
|
89
88
|
"onChange",
|
|
90
|
-
"onFinish"
|
|
89
|
+
"onFinish",
|
|
90
|
+
"aria-label",
|
|
91
|
+
"aria-labelledby",
|
|
92
|
+
"aria-describedby",
|
|
93
|
+
"role"
|
|
91
94
|
]);
|
|
95
|
+
const { remain, remainTime, willEnd, hasEnd, timer } = (0, import_locales.useLocaleText)("countdown");
|
|
92
96
|
const [startTime, setStartTime] = (0, import_react.useState)(
|
|
93
97
|
() => serverTimestamp != null ? serverTimestamp : Date.now()
|
|
94
98
|
);
|
|
@@ -117,9 +121,38 @@ const Countdown = (0, import_react.forwardRef)((props, ref) => {
|
|
|
117
121
|
setEndTime(endTimestamp);
|
|
118
122
|
}
|
|
119
123
|
}, [serverTimestamp, endTimestamp]);
|
|
124
|
+
const getAccessibleTimeDescription = (timeIns) => {
|
|
125
|
+
const { years, months, days, hours, minutes, seconds, total } = timeIns;
|
|
126
|
+
if (total <= 0) {
|
|
127
|
+
return hasEnd;
|
|
128
|
+
}
|
|
129
|
+
const parts = [];
|
|
130
|
+
if (parseInt(years, 10) > 0)
|
|
131
|
+
parts.push(`${parseInt(years, 10)}${remain.year}`);
|
|
132
|
+
if (parseInt(months, 10) > 0)
|
|
133
|
+
parts.push(`${parseInt(months, 10)}${remain.month}`);
|
|
134
|
+
if (parseInt(days, 10) > 0)
|
|
135
|
+
parts.push(`${parseInt(days, 10)}${remain.day}`);
|
|
136
|
+
if (parseInt(hours, 10) > 0)
|
|
137
|
+
parts.push(`${parseInt(hours, 10)}${remain.hour}`);
|
|
138
|
+
if (parseInt(minutes, 10) > 0)
|
|
139
|
+
parts.push(`${parseInt(minutes, 10)}${remain.minute}`);
|
|
140
|
+
if (parseInt(seconds, 10) > 0)
|
|
141
|
+
parts.push(`${parseInt(seconds, 10)}${remain.second}`);
|
|
142
|
+
return parts.length > 0 ? `${remainTime}\uFF1A${parts.join("")}` : willEnd;
|
|
143
|
+
};
|
|
120
144
|
const defaultRender = (timeIns) => {
|
|
121
145
|
const { timeList } = (0, import_utils2.formatCountdown)(timeIns.total, format);
|
|
122
|
-
|
|
146
|
+
const accessibleDescription = getAccessibleTimeDescription(timeIns);
|
|
147
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
|
|
148
|
+
"span",
|
|
149
|
+
{
|
|
150
|
+
className: (0, import_clsx.default)(`${prefixCls}-sr-only`),
|
|
151
|
+
"aria-live": "polite",
|
|
152
|
+
"aria-atomic": "true"
|
|
153
|
+
},
|
|
154
|
+
accessibleDescription
|
|
155
|
+
), timeList.map((item, index) => {
|
|
123
156
|
const { unitText, valStr } = item;
|
|
124
157
|
const valueList = valStr.split("");
|
|
125
158
|
return /* @__PURE__ */ import_react.default.createElement(
|
|
@@ -127,29 +160,36 @@ const Countdown = (0, import_react.forwardRef)((props, ref) => {
|
|
|
127
160
|
{
|
|
128
161
|
key: `slice-${index}`,
|
|
129
162
|
className: (0, import_clsx.default)(`${prefixCls}-slice`),
|
|
130
|
-
|
|
163
|
+
"aria-hidden": "true"
|
|
131
164
|
},
|
|
132
165
|
/* @__PURE__ */ import_react.default.createElement("span", { className: (0, import_clsx.default)(`${prefixCls}-slice-item`) }, valueList.map((val, i) => /* @__PURE__ */ import_react.default.createElement(
|
|
133
166
|
"span",
|
|
134
167
|
{
|
|
135
168
|
key: `slice-value-${i}`,
|
|
136
|
-
className: (0, import_clsx.default)(`${prefixCls}-slice-value`)
|
|
137
|
-
style: valueStyle[i]
|
|
169
|
+
className: (0, import_clsx.default)(`${prefixCls}-slice-value`)
|
|
138
170
|
},
|
|
139
171
|
val
|
|
140
172
|
))),
|
|
141
|
-
unitText && /* @__PURE__ */ import_react.default.createElement(
|
|
142
|
-
"span",
|
|
143
|
-
{
|
|
144
|
-
className: (0, import_clsx.default)(`${prefixCls}-slice-unit`),
|
|
145
|
-
style: unitStyle
|
|
146
|
-
},
|
|
147
|
-
unitText
|
|
148
|
-
)
|
|
173
|
+
unitText && /* @__PURE__ */ import_react.default.createElement("span", { className: (0, import_clsx.default)(`${prefixCls}-slice-unit`) }, unitText)
|
|
149
174
|
);
|
|
150
175
|
}));
|
|
151
176
|
};
|
|
152
|
-
|
|
177
|
+
const ariaProps = {
|
|
178
|
+
role,
|
|
179
|
+
"aria-label": ariaLabel || `${timer}\uFF0C${getAccessibleTimeDescription(time)}`,
|
|
180
|
+
"aria-labelledby": ariaLabelledby,
|
|
181
|
+
"aria-describedby": ariaDescribedby,
|
|
182
|
+
"aria-live": "polite",
|
|
183
|
+
"aria-atomic": true
|
|
184
|
+
};
|
|
185
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
186
|
+
"div",
|
|
187
|
+
__spreadValues(__spreadValues({
|
|
188
|
+
ref,
|
|
189
|
+
className: (0, import_clsx.default)(prefixCls, className)
|
|
190
|
+
}, ariaProps), others),
|
|
191
|
+
renderContent ? renderContent(time) : defaultRender(time)
|
|
192
|
+
);
|
|
153
193
|
});
|
|
154
194
|
Countdown.displayName = "BuiCountdown";
|
|
155
195
|
var Countdown_default = Countdown;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OverrideProps } from '@bifrostui/types';
|
|
2
|
-
import React
|
|
2
|
+
import React from 'react';
|
|
3
3
|
/**
|
|
4
4
|
* 当前时间
|
|
5
5
|
*/
|
|
@@ -57,18 +57,6 @@ export type CountdownProps<D extends React.ElementType = 'div', P = {}> = Overri
|
|
|
57
57
|
* @default HH:mm:ss
|
|
58
58
|
*/
|
|
59
59
|
format?: string;
|
|
60
|
-
/**
|
|
61
|
-
* 时间单位的样式
|
|
62
|
-
*/
|
|
63
|
-
unitStyle?: CSSProperties;
|
|
64
|
-
/**
|
|
65
|
-
* 倒计时位数的样式,用于定制第一、第二位数字的样式
|
|
66
|
-
*/
|
|
67
|
-
valueStyle?: CSSProperties[];
|
|
68
|
-
/**
|
|
69
|
-
* 各时间区块的样式,用于定制各个时间块的样式,若第一、第二位数字的样式相同,则可替代valueStyle
|
|
70
|
-
*/
|
|
71
|
-
timeSliceStyle?: CSSProperties;
|
|
72
60
|
/**
|
|
73
61
|
* 倒计时完成时触发
|
|
74
62
|
*/
|
|
@@ -83,13 +71,30 @@ export type CountdownProps<D extends React.ElementType = 'div', P = {}> = Overri
|
|
|
83
71
|
* 自定义render内容
|
|
84
72
|
*/
|
|
85
73
|
renderContent?: (data: CurrentTime) => React.ReactNode;
|
|
74
|
+
/**
|
|
75
|
+
* 无障碍标签,为屏幕阅读器提供组件描述
|
|
76
|
+
*/
|
|
77
|
+
'aria-label'?: string;
|
|
78
|
+
/**
|
|
79
|
+
* 引用其他元素ID作为标签
|
|
80
|
+
*/
|
|
81
|
+
'aria-labelledby'?: string;
|
|
82
|
+
/**
|
|
83
|
+
* 引用其他元素ID作为描述
|
|
84
|
+
*/
|
|
85
|
+
'aria-describedby'?: string;
|
|
86
|
+
/**
|
|
87
|
+
* 组件的语义角色
|
|
88
|
+
* @default 'timer'
|
|
89
|
+
*/
|
|
90
|
+
role?: string;
|
|
86
91
|
};
|
|
87
92
|
defaultComponent: D;
|
|
88
93
|
}, D>;
|
|
89
94
|
/**
|
|
90
95
|
* 倒计时格式化后分割项
|
|
91
96
|
*/
|
|
92
|
-
interface CountdownItem {
|
|
97
|
+
export interface CountdownItem {
|
|
93
98
|
/**
|
|
94
99
|
* 倒计时切片字符串
|
|
95
100
|
*/
|
|
@@ -120,4 +125,3 @@ export type FormatedCountdown = {
|
|
|
120
125
|
*/
|
|
121
126
|
timeList: CountdownItem[];
|
|
122
127
|
};
|
|
123
|
-
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* 自定义 Countdown 组件 Demo 集合
|
|
4
|
+
* 这个文件包含多个测试 demo,展示如何使用 getCustomDemoCodesFromFile 进行无障碍测试
|
|
5
|
+
* 文件名必须是 customDemoComponent.tsx(固定约定)
|
|
6
|
+
*/
|
|
7
|
+
export declare const basicCountdownDemo: () => React.JSX.Element;
|
|
8
|
+
export declare const ariaLabelCountdownDemo: () => React.JSX.Element;
|
|
9
|
+
export declare const ariaLabelledbyCountdownDemo: () => React.JSX.Element;
|
|
10
|
+
export declare const ariaDescribedbyCountdownDemo: () => React.JSX.Element;
|
|
11
|
+
export declare const customRenderCountdownDemo: () => React.JSX.Element;
|
|
12
|
+
export declare const endTimestampCountdownDemo: () => React.JSX.Element;
|
|
13
|
+
export declare const serverTimestampCountdownDemo: () => React.JSX.Element;
|
|
14
|
+
declare const _default: {
|
|
15
|
+
basicCountdownDemo: () => React.JSX.Element;
|
|
16
|
+
ariaLabelCountdownDemo: () => React.JSX.Element;
|
|
17
|
+
ariaLabelledbyCountdownDemo: () => React.JSX.Element;
|
|
18
|
+
ariaDescribedbyCountdownDemo: () => React.JSX.Element;
|
|
19
|
+
customRenderCountdownDemo: () => React.JSX.Element;
|
|
20
|
+
endTimestampCountdownDemo: () => React.JSX.Element;
|
|
21
|
+
serverTimestampCountdownDemo: () => React.JSX.Element;
|
|
22
|
+
};
|
|
23
|
+
export default _default;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var A11yDemos_exports = {};
|
|
29
|
+
__export(A11yDemos_exports, {
|
|
30
|
+
ariaDescribedbyCountdownDemo: () => ariaDescribedbyCountdownDemo,
|
|
31
|
+
ariaLabelCountdownDemo: () => ariaLabelCountdownDemo,
|
|
32
|
+
ariaLabelledbyCountdownDemo: () => ariaLabelledbyCountdownDemo,
|
|
33
|
+
basicCountdownDemo: () => basicCountdownDemo,
|
|
34
|
+
customRenderCountdownDemo: () => customRenderCountdownDemo,
|
|
35
|
+
default: () => A11yDemos_default,
|
|
36
|
+
endTimestampCountdownDemo: () => endTimestampCountdownDemo,
|
|
37
|
+
serverTimestampCountdownDemo: () => serverTimestampCountdownDemo
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(A11yDemos_exports);
|
|
40
|
+
var import_react = __toESM(require("react"));
|
|
41
|
+
var import_Countdown = __toESM(require("../../Countdown"));
|
|
42
|
+
const basicCountdownDemo = () => {
|
|
43
|
+
return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(import_Countdown.default, { remainingTime: 60 * 1e3 }));
|
|
44
|
+
};
|
|
45
|
+
const ariaLabelCountdownDemo = () => {
|
|
46
|
+
return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(import_Countdown.default, { remainingTime: 120 * 1e3, "aria-label": "\u4FC3\u9500\u6D3B\u52A8\u7ED3\u675F\u5012\u8BA1\u65F6" }));
|
|
47
|
+
};
|
|
48
|
+
const ariaLabelledbyCountdownDemo = () => {
|
|
49
|
+
return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("h3", { id: "flash-sale-title" }, "\u9650\u65F6\u62A2\u8D2D"), /* @__PURE__ */ import_react.default.createElement(
|
|
50
|
+
import_Countdown.default,
|
|
51
|
+
{
|
|
52
|
+
remainingTime: 180 * 1e3,
|
|
53
|
+
"aria-labelledby": "flash-sale-title"
|
|
54
|
+
}
|
|
55
|
+
));
|
|
56
|
+
};
|
|
57
|
+
const ariaDescribedbyCountdownDemo = () => {
|
|
58
|
+
return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(
|
|
59
|
+
import_Countdown.default,
|
|
60
|
+
{
|
|
61
|
+
remainingTime: 240 * 1e3,
|
|
62
|
+
"aria-describedby": "countdown-description"
|
|
63
|
+
}
|
|
64
|
+
), /* @__PURE__ */ import_react.default.createElement("p", { id: "countdown-description" }, "\u5012\u8BA1\u65F6\u7ED3\u675F\u540E\uFF0C\u4F18\u60E0\u4EF7\u683C\u5C06\u6062\u590D\u4E3A\u539F\u4EF7"));
|
|
65
|
+
};
|
|
66
|
+
const customRenderCountdownDemo = () => {
|
|
67
|
+
return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(
|
|
68
|
+
import_Countdown.default,
|
|
69
|
+
{
|
|
70
|
+
remainingTime: 300 * 1e3,
|
|
71
|
+
renderContent: ({ hours, minutes, seconds }) => {
|
|
72
|
+
return /* @__PURE__ */ import_react.default.createElement("span", null, "\u8DDD\u79BB\u5012\u8BA1\u65F6\u7ED3\u675F\u8FD8\u5269", hours, "\u5C0F\u65F6", minutes, "\u5206\u949F", seconds, "\u79D2");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
));
|
|
76
|
+
};
|
|
77
|
+
const endTimestampCountdownDemo = () => {
|
|
78
|
+
return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(import_Countdown.default, { endTimestamp: Date.now() + 360 * 1e3 }));
|
|
79
|
+
};
|
|
80
|
+
const serverTimestampCountdownDemo = () => {
|
|
81
|
+
return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(
|
|
82
|
+
import_Countdown.default,
|
|
83
|
+
{
|
|
84
|
+
serverTimestamp: Date.now() - 10 * 1e3,
|
|
85
|
+
endTimestamp: Date.now() + 420 * 1e3
|
|
86
|
+
}
|
|
87
|
+
));
|
|
88
|
+
};
|
|
89
|
+
var A11yDemos_default = {
|
|
90
|
+
basicCountdownDemo,
|
|
91
|
+
ariaLabelCountdownDemo,
|
|
92
|
+
ariaLabelledbyCountdownDemo,
|
|
93
|
+
ariaDescribedbyCountdownDemo,
|
|
94
|
+
customRenderCountdownDemo,
|
|
95
|
+
endTimestampCountdownDemo,
|
|
96
|
+
serverTimestampCountdownDemo
|
|
97
|
+
};
|
|
98
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
99
|
+
0 && (module.exports = {
|
|
100
|
+
ariaDescribedbyCountdownDemo,
|
|
101
|
+
ariaLabelCountdownDemo,
|
|
102
|
+
ariaLabelledbyCountdownDemo,
|
|
103
|
+
basicCountdownDemo,
|
|
104
|
+
customRenderCountdownDemo,
|
|
105
|
+
endTimestampCountdownDemo,
|
|
106
|
+
serverTimestampCountdownDemo
|
|
107
|
+
});
|
package/dist/Countdown/index.css
CHANGED
|
@@ -15,6 +15,17 @@ xhs-page {
|
|
|
15
15
|
font-weight: var(--bui-countdown-font-weight);
|
|
16
16
|
font-family: var(--bui-font-family);
|
|
17
17
|
}
|
|
18
|
+
.bui-countdown-sr-only {
|
|
19
|
+
position: absolute;
|
|
20
|
+
width: 1px;
|
|
21
|
+
height: 1px;
|
|
22
|
+
padding: 0;
|
|
23
|
+
margin: -1px;
|
|
24
|
+
overflow: hidden;
|
|
25
|
+
clip: rect(0, 0, 0, 0);
|
|
26
|
+
white-space: nowrap;
|
|
27
|
+
border: 0;
|
|
28
|
+
}
|
|
18
29
|
.bui-countdown-slice {
|
|
19
30
|
display: flex;
|
|
20
31
|
flex-direction: row;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DatePickerProps } from './DatePicker.types';
|
|
3
|
+
declare const DatePicker: React.ForwardRefExoticComponent<Omit<DatePickerProps<"div", Omit<import("../Picker").PickerProps<"div", import("..").DrawerProps>, "value" | "defaultValue" | "onChange" | "onClose" | "onConfirm">>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
+
export default DatePicker;
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __objRest = (source, exclude) => {
|
|
25
|
+
var target = {};
|
|
26
|
+
for (var prop in source)
|
|
27
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
28
|
+
target[prop] = source[prop];
|
|
29
|
+
if (source != null && __getOwnPropSymbols)
|
|
30
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
31
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
32
|
+
target[prop] = source[prop];
|
|
33
|
+
}
|
|
34
|
+
return target;
|
|
35
|
+
};
|
|
36
|
+
var __export = (target, all) => {
|
|
37
|
+
for (var name in all)
|
|
38
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
39
|
+
};
|
|
40
|
+
var __copyProps = (to, from, except, desc) => {
|
|
41
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
42
|
+
for (let key of __getOwnPropNames(from))
|
|
43
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
44
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
45
|
+
}
|
|
46
|
+
return to;
|
|
47
|
+
};
|
|
48
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
49
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
50
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
51
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
52
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
53
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
54
|
+
mod
|
|
55
|
+
));
|
|
56
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
57
|
+
var DatePicker_exports = {};
|
|
58
|
+
__export(DatePicker_exports, {
|
|
59
|
+
default: () => DatePicker_default
|
|
60
|
+
});
|
|
61
|
+
module.exports = __toCommonJS(DatePicker_exports);
|
|
62
|
+
var import_react = __toESM(require("react"));
|
|
63
|
+
var import_clsx = __toESM(require("clsx"));
|
|
64
|
+
var import_utils = require("@bifrostui/utils");
|
|
65
|
+
var import_Picker = __toESM(require("../Picker"));
|
|
66
|
+
var import_locales = require("../locales");
|
|
67
|
+
var import_constants = require("./constants");
|
|
68
|
+
const MIN_DATE = new Date((/* @__PURE__ */ new Date()).getFullYear() - 10, 0, 1);
|
|
69
|
+
const MAX_DATE = new Date((/* @__PURE__ */ new Date()).getFullYear() + 10, 11, 31);
|
|
70
|
+
const DEFAULT_PICKER = [
|
|
71
|
+
import_constants.DatePickerType.YEAR,
|
|
72
|
+
import_constants.DatePickerType.MONTH,
|
|
73
|
+
import_constants.DatePickerType.DAY
|
|
74
|
+
];
|
|
75
|
+
function isValidDate(value) {
|
|
76
|
+
return value instanceof Date && !Number.isNaN(value.getTime());
|
|
77
|
+
}
|
|
78
|
+
const padZero = (num, targetLength = 2) => {
|
|
79
|
+
let str = `${num}`;
|
|
80
|
+
while (str.length < targetLength) {
|
|
81
|
+
str = `0${str}`;
|
|
82
|
+
}
|
|
83
|
+
return str;
|
|
84
|
+
};
|
|
85
|
+
const getMaxDay = (year, monthIndex) => {
|
|
86
|
+
return new Date(year, monthIndex + 1, 0).getDate();
|
|
87
|
+
};
|
|
88
|
+
const getDateTypeValue = (date, type) => {
|
|
89
|
+
switch (type) {
|
|
90
|
+
case import_constants.DatePickerType.YEAR:
|
|
91
|
+
return date.getFullYear();
|
|
92
|
+
case import_constants.DatePickerType.MONTH:
|
|
93
|
+
return date.getMonth() + 1;
|
|
94
|
+
case import_constants.DatePickerType.DAY:
|
|
95
|
+
return date.getDate();
|
|
96
|
+
case import_constants.DatePickerType.HOUR:
|
|
97
|
+
return date.getHours();
|
|
98
|
+
case import_constants.DatePickerType.MINUTE:
|
|
99
|
+
return date.getMinutes();
|
|
100
|
+
case import_constants.DatePickerType.SECOND:
|
|
101
|
+
return date.getSeconds();
|
|
102
|
+
default:
|
|
103
|
+
throw new Error(`\u9519\u8BEF\u7684picker\u7C7B\u578B\uFF1A${type}`);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
const DatePicker = (0, import_react.forwardRef)((props, ref) => {
|
|
107
|
+
const _a = props, {
|
|
108
|
+
className,
|
|
109
|
+
value: propValue,
|
|
110
|
+
defaultValue,
|
|
111
|
+
views = DEFAULT_PICKER,
|
|
112
|
+
minDate: propMinDate = MIN_DATE,
|
|
113
|
+
maxDate: propMaxDate = MAX_DATE,
|
|
114
|
+
showUnit = false,
|
|
115
|
+
formatter,
|
|
116
|
+
filter,
|
|
117
|
+
disableDateTimeView,
|
|
118
|
+
dateTimeStep,
|
|
119
|
+
onConfirm,
|
|
120
|
+
onClose,
|
|
121
|
+
onChange
|
|
122
|
+
} = _a, others = __objRest(_a, [
|
|
123
|
+
"className",
|
|
124
|
+
"value",
|
|
125
|
+
"defaultValue",
|
|
126
|
+
"views",
|
|
127
|
+
"minDate",
|
|
128
|
+
"maxDate",
|
|
129
|
+
"showUnit",
|
|
130
|
+
"formatter",
|
|
131
|
+
"filter",
|
|
132
|
+
"disableDateTimeView",
|
|
133
|
+
"dateTimeStep",
|
|
134
|
+
"onConfirm",
|
|
135
|
+
"onClose",
|
|
136
|
+
"onChange"
|
|
137
|
+
]);
|
|
138
|
+
const [options, setOptions] = (0, import_react.useState)([]);
|
|
139
|
+
const [pickerValue, setPickerValue] = (0, import_react.useState)([]);
|
|
140
|
+
const datePickerText = (0, import_locales.useLocaleText)("datePicker");
|
|
141
|
+
const formatDate = (date) => {
|
|
142
|
+
let formattedDate = date;
|
|
143
|
+
if (!formattedDate || !isValidDate(date) || formattedDate.getTime() < propMinDate.getTime()) {
|
|
144
|
+
formattedDate = propMinDate;
|
|
145
|
+
}
|
|
146
|
+
if (formattedDate.getTime() > propMaxDate.getTime()) {
|
|
147
|
+
formattedDate = propMaxDate;
|
|
148
|
+
}
|
|
149
|
+
return formattedDate;
|
|
150
|
+
};
|
|
151
|
+
const [currentDate, triggerChange] = (0, import_utils.useValue)({
|
|
152
|
+
value: propValue && formatDate(propValue),
|
|
153
|
+
defaultValue: formatDate(defaultValue)
|
|
154
|
+
});
|
|
155
|
+
const handleConfirm = (e) => {
|
|
156
|
+
onConfirm == null ? void 0 : onConfirm(e, { value: currentDate });
|
|
157
|
+
};
|
|
158
|
+
const handleClose = (e) => {
|
|
159
|
+
onClose == null ? void 0 : onClose(e, { value: currentDate });
|
|
160
|
+
};
|
|
161
|
+
const handleChange = (e, { value, columnIndex }) => {
|
|
162
|
+
if (value[columnIndex] === null)
|
|
163
|
+
return;
|
|
164
|
+
const current = new Date(currentDate);
|
|
165
|
+
switch (views[columnIndex]) {
|
|
166
|
+
case import_constants.DatePickerType.YEAR:
|
|
167
|
+
current.setFullYear(value[columnIndex]);
|
|
168
|
+
break;
|
|
169
|
+
case import_constants.DatePickerType.MONTH: {
|
|
170
|
+
const selectedMaxDay = getMaxDay(
|
|
171
|
+
current.getFullYear(),
|
|
172
|
+
Number(value[columnIndex]) - 1
|
|
173
|
+
);
|
|
174
|
+
if (current.getDate() > selectedMaxDay) {
|
|
175
|
+
current.setDate(selectedMaxDay);
|
|
176
|
+
}
|
|
177
|
+
current.setMonth(value[columnIndex] - 1);
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
case import_constants.DatePickerType.DAY:
|
|
181
|
+
current.setDate(value[columnIndex]);
|
|
182
|
+
break;
|
|
183
|
+
case import_constants.DatePickerType.HOUR:
|
|
184
|
+
current.setHours(value[columnIndex]);
|
|
185
|
+
break;
|
|
186
|
+
case import_constants.DatePickerType.MINUTE:
|
|
187
|
+
current.setMinutes(value[columnIndex]);
|
|
188
|
+
break;
|
|
189
|
+
case import_constants.DatePickerType.SECOND:
|
|
190
|
+
current.setSeconds(value[columnIndex]);
|
|
191
|
+
break;
|
|
192
|
+
default:
|
|
193
|
+
throw new Error(`\u9519\u8BEF\u7684picker\u7C7B\u578B\uFF1A${views[columnIndex]}`);
|
|
194
|
+
}
|
|
195
|
+
triggerChange(e, formatDate(current));
|
|
196
|
+
onChange == null ? void 0 : onChange(e, { type: views[columnIndex], value: current });
|
|
197
|
+
};
|
|
198
|
+
const formatOption = (type, value) => {
|
|
199
|
+
let label = padZero(value);
|
|
200
|
+
if (formatter) {
|
|
201
|
+
return formatter(type, {
|
|
202
|
+
value,
|
|
203
|
+
label
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
if (showUnit) {
|
|
207
|
+
label += datePickerText[type];
|
|
208
|
+
}
|
|
209
|
+
return { value, label };
|
|
210
|
+
};
|
|
211
|
+
const generateOptions = (min, max, type, columnIndex) => {
|
|
212
|
+
const step = (dateTimeStep == null ? void 0 : dateTimeStep[type]) || 1;
|
|
213
|
+
let valueIndex = 0;
|
|
214
|
+
const optionsArray = Array.from(
|
|
215
|
+
{ length: (max - min + 1) / step || 1 },
|
|
216
|
+
(_, index) => {
|
|
217
|
+
const value = index * step + min;
|
|
218
|
+
if (value <= getDateTypeValue(currentDate, type)) {
|
|
219
|
+
valueIndex = index;
|
|
220
|
+
}
|
|
221
|
+
return formatOption(type, value);
|
|
222
|
+
}
|
|
223
|
+
);
|
|
224
|
+
pickerValue[columnIndex] = optionsArray[valueIndex].value;
|
|
225
|
+
setPickerValue([...pickerValue]);
|
|
226
|
+
if ((disableDateTimeView == null ? void 0 : disableDateTimeView[type]) && typeof disableDateTimeView[type] === "function") {
|
|
227
|
+
const disabledOptionsValue = disableDateTimeView[type](
|
|
228
|
+
optionsArray.map((i) => i.value)
|
|
229
|
+
);
|
|
230
|
+
return optionsArray.map((option) => {
|
|
231
|
+
if (disabledOptionsValue.includes(option.value)) {
|
|
232
|
+
return __spreadProps(__spreadValues({}, option), {
|
|
233
|
+
disabled: true
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
return option;
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
if (filter) {
|
|
240
|
+
return filter(type, optionsArray);
|
|
241
|
+
}
|
|
242
|
+
return optionsArray;
|
|
243
|
+
};
|
|
244
|
+
const getBoundary = (type, value) => {
|
|
245
|
+
const boundary = type === "min" ? propMinDate : propMaxDate;
|
|
246
|
+
const year = boundary.getFullYear();
|
|
247
|
+
let month = 1;
|
|
248
|
+
let date = 1;
|
|
249
|
+
let hour = 0;
|
|
250
|
+
let minute = 0;
|
|
251
|
+
let seconds = 0;
|
|
252
|
+
if (type === "max") {
|
|
253
|
+
month = 12;
|
|
254
|
+
date = getMaxDay(value.getFullYear(), value.getMonth());
|
|
255
|
+
hour = 23;
|
|
256
|
+
minute = 59;
|
|
257
|
+
seconds = 59;
|
|
258
|
+
}
|
|
259
|
+
if (value.getFullYear() === year) {
|
|
260
|
+
month = boundary.getMonth() + 1;
|
|
261
|
+
if (value.getMonth() + 1 === month) {
|
|
262
|
+
date = boundary.getDate();
|
|
263
|
+
if (value.getDate() === date) {
|
|
264
|
+
hour = boundary.getHours();
|
|
265
|
+
if (value.getHours() === hour) {
|
|
266
|
+
minute = boundary.getMinutes();
|
|
267
|
+
if (value.getMinutes() === minute) {
|
|
268
|
+
seconds = boundary.getSeconds();
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return {
|
|
275
|
+
[`${type}Year`]: year,
|
|
276
|
+
[`${type}Month`]: month,
|
|
277
|
+
[`${type}Date`]: date,
|
|
278
|
+
[`${type}Hour`]: hour,
|
|
279
|
+
[`${type}Minute`]: minute,
|
|
280
|
+
[`${type}Seconds`]: seconds
|
|
281
|
+
};
|
|
282
|
+
};
|
|
283
|
+
const generateRanges = () => {
|
|
284
|
+
const ranges = [];
|
|
285
|
+
const { minYear, minMonth, minDate, minHour, minMinute, minSeconds } = getBoundary("min", currentDate);
|
|
286
|
+
const { maxYear, maxMonth, maxDate, maxHour, maxMinute, maxSeconds } = getBoundary("max", currentDate);
|
|
287
|
+
for (let i = 0; i < views.length; i += 1) {
|
|
288
|
+
const type = views[i];
|
|
289
|
+
switch (type) {
|
|
290
|
+
case import_constants.DatePickerType.YEAR:
|
|
291
|
+
ranges.push([minYear, maxYear]);
|
|
292
|
+
break;
|
|
293
|
+
case import_constants.DatePickerType.MONTH:
|
|
294
|
+
ranges.push([minMonth, maxMonth]);
|
|
295
|
+
break;
|
|
296
|
+
case import_constants.DatePickerType.DAY:
|
|
297
|
+
ranges.push([minDate, maxDate]);
|
|
298
|
+
break;
|
|
299
|
+
case import_constants.DatePickerType.HOUR:
|
|
300
|
+
ranges.push([minHour, maxHour]);
|
|
301
|
+
break;
|
|
302
|
+
case import_constants.DatePickerType.MINUTE:
|
|
303
|
+
ranges.push([minMinute, maxMinute]);
|
|
304
|
+
break;
|
|
305
|
+
case import_constants.DatePickerType.SECOND:
|
|
306
|
+
ranges.push([minSeconds, maxSeconds]);
|
|
307
|
+
break;
|
|
308
|
+
default:
|
|
309
|
+
throw new Error(`\u9519\u8BEF\u7684picker\u7C7B\u578B\uFF1A${type}`);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return ranges;
|
|
313
|
+
};
|
|
314
|
+
const generateRangeOptions = () => generateRanges().map(
|
|
315
|
+
(range, index) => generateOptions(range[0], range[1], views[index], index)
|
|
316
|
+
);
|
|
317
|
+
(0, import_react.useEffect)(() => {
|
|
318
|
+
setOptions(generateRangeOptions());
|
|
319
|
+
}, [currentDate, views, propMinDate, propMaxDate]);
|
|
320
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
321
|
+
import_Picker.default,
|
|
322
|
+
__spreadProps(__spreadValues({}, others), {
|
|
323
|
+
"data-selected": currentDate ? currentDate.getTime() : "",
|
|
324
|
+
className: (0, import_clsx.default)("bui-date-picker", className),
|
|
325
|
+
ref,
|
|
326
|
+
options,
|
|
327
|
+
value: pickerValue,
|
|
328
|
+
onConfirm: handleConfirm,
|
|
329
|
+
onClose: handleClose,
|
|
330
|
+
onOptionChange: handleChange
|
|
331
|
+
})
|
|
332
|
+
);
|
|
333
|
+
});
|
|
334
|
+
DatePicker.displayName = "BuiDatePicker";
|
|
335
|
+
var DatePicker_default = DatePicker;
|