@lobehub/ui 6.0.0-beta.6 → 6.0.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/Accordion/Accordion.mjs +3 -3
- package/es/Accordion/Accordion.mjs.map +1 -1
- package/es/Accordion/atoms.mjs +2 -2
- package/es/Accordion/atoms.mjs.map +1 -1
- package/es/Accordion/style.d.mts +1 -1
- package/es/ActionIcon/ActionIcon.mjs +2 -2
- package/es/ActionIcon/ActionIcon.mjs.map +1 -1
- package/es/Alert/Alert.mjs +5 -5
- package/es/Alert/Alert.mjs.map +1 -1
- package/es/AutoComplete/AutoComplete.mjs +5 -5
- package/es/AutoComplete/AutoComplete.mjs.map +1 -1
- package/es/AutoComplete/style.mjs +2 -2
- package/es/AutoComplete/style.mjs.map +1 -1
- package/es/Avatar/Avatar.mjs +2 -2
- package/es/Avatar/Avatar.mjs.map +1 -1
- package/es/Avatar/AvatarGroup/index.mjs +2 -2
- package/es/Avatar/AvatarGroup/index.mjs.map +1 -1
- package/es/Breadcrumb/Breadcrumb.mjs +2 -2
- package/es/Breadcrumb/Breadcrumb.mjs.map +1 -1
- package/es/Button/Button.mjs +1 -1
- package/es/Button/Button.mjs.map +1 -1
- package/es/Button/style.d.mts +8 -1
- package/es/Button/style.mjs +41 -18
- package/es/Button/style.mjs.map +1 -1
- package/es/Checkbox/Checkbox.mjs +3 -3
- package/es/Checkbox/Checkbox.mjs.map +1 -1
- package/es/CodeDiff/DiffPanel.mjs +4 -4
- package/es/CodeDiff/DiffPanel.mjs.map +1 -1
- package/es/CodeEditor/CodeEditor.mjs +4 -4
- package/es/CodeEditor/CodeEditor.mjs.map +1 -1
- package/es/ColorPicker/ColorInputs.mjs +136 -0
- package/es/ColorPicker/ColorInputs.mjs.map +1 -0
- package/es/ColorPicker/ColorPanel.mjs +145 -0
- package/es/ColorPicker/ColorPanel.mjs.map +1 -0
- package/es/ColorPicker/ColorPicker.mjs +62 -199
- package/es/ColorPicker/ColorPicker.mjs.map +1 -1
- package/es/ColorPicker/SaturationArea.mjs +2 -1
- package/es/ColorPicker/SaturationArea.mjs.map +1 -1
- package/es/ColorPicker/Swatch.mjs +24 -0
- package/es/ColorPicker/Swatch.mjs.map +1 -0
- package/es/ColorPicker/Swatches.mjs +66 -0
- package/es/ColorPicker/Swatches.mjs.map +1 -0
- package/es/ColorPicker/Trigger.mjs +112 -0
- package/es/ColorPicker/Trigger.mjs.map +1 -0
- package/es/ColorPicker/color.mjs +25 -1
- package/es/ColorPicker/color.mjs.map +1 -1
- package/es/ColorPicker/recent.mjs +25 -0
- package/es/ColorPicker/recent.mjs.map +1 -0
- package/es/ColorPicker/style.mjs +269 -70
- package/es/ColorPicker/style.mjs.map +1 -1
- package/es/ColorPicker/type.d.mts +15 -0
- package/es/ColorSwatches/type.d.mts +2 -2
- package/es/ContextMenu/ContextMenuHost.mjs +2 -2
- package/es/ContextMenu/ContextMenuHost.mjs.map +1 -1
- package/es/ContextMenu/ContextMenuTrigger.mjs +2 -2
- package/es/ContextMenu/ContextMenuTrigger.mjs.map +1 -1
- package/es/ContextMenu/renderItems.mjs +3 -3
- package/es/ContextMenu/renderItems.mjs.map +1 -1
- package/es/DatePicker/DatePicker.d.mts +7 -2
- package/es/DatePicker/DatePicker.mjs +13 -85
- package/es/DatePicker/DatePicker.mjs.map +1 -1
- package/es/DatePicker/DateRangePicker.d.mts +3 -2
- package/es/DatePicker/DateRangePicker.mjs +3 -125
- package/es/DatePicker/DateRangePicker.mjs.map +1 -1
- package/es/DatePicker/PurePanel.mjs +65 -0
- package/es/DatePicker/PurePanel.mjs.map +1 -0
- package/es/DatePicker/RangePicker.mjs +115 -0
- package/es/DatePicker/RangePicker.mjs.map +1 -0
- package/es/DatePicker/SinglePicker.mjs +132 -0
- package/es/DatePicker/SinglePicker.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Popup/Footer.mjs +57 -0
- package/es/DatePicker/core/PickerInput/Popup/Footer.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Popup/PopupPanel.mjs +57 -0
- package/es/DatePicker/core/PickerInput/Popup/PopupPanel.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Popup/PresetPanel.mjs +29 -0
- package/es/DatePicker/core/PickerInput/Popup/PresetPanel.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Popup/index.mjs +133 -0
- package/es/DatePicker/core/PickerInput/Popup/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/RangePicker.d.mts +51 -0
- package/es/DatePicker/core/PickerInput/RangePicker.mjs +343 -0
- package/es/DatePicker/core/PickerInput/RangePicker.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/ClearIcon.mjs +27 -0
- package/es/DatePicker/core/PickerInput/Selector/ClearIcon.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/Icon.mjs +19 -0
- package/es/DatePicker/core/PickerInput/Selector/Icon.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/Input.mjs +237 -0
- package/es/DatePicker/core/PickerInput/Selector/Input.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/MaskFormat.mjs +70 -0
- package/es/DatePicker/core/PickerInput/Selector/MaskFormat.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/RangeSelector.d.mts +8 -0
- package/es/DatePicker/core/PickerInput/Selector/RangeSelector.mjs +136 -0
- package/es/DatePicker/core/PickerInput/Selector/RangeSelector.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/SingleSelector/HoverSelector.mjs +28 -0
- package/es/DatePicker/core/PickerInput/Selector/SingleSelector/HoverSelector.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/SingleSelector/MultipleDates.mjs +69 -0
- package/es/DatePicker/core/PickerInput/Selector/SingleSelector/MultipleDates.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/SingleSelector/index.mjs +111 -0
- package/es/DatePicker/core/PickerInput/Selector/SingleSelector/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/hooks/useClearIcon.mjs +18 -0
- package/es/DatePicker/core/PickerInput/Selector/hooks/useClearIcon.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/hooks/useInputProps.mjs +108 -0
- package/es/DatePicker/core/PickerInput/Selector/hooks/useInputProps.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/hooks/useRootProps.mjs +11 -0
- package/es/DatePicker/core/PickerInput/Selector/hooks/useRootProps.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/Selector/util.mjs +20 -0
- package/es/DatePicker/core/PickerInput/Selector/util.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/SinglePicker.d.mts +55 -0
- package/es/DatePicker/core/PickerInput/SinglePicker.mjs +318 -0
- package/es/DatePicker/core/PickerInput/SinglePicker.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/context.mjs +7 -0
- package/es/DatePicker/core/PickerInput/context.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useCellRender.mjs +30 -0
- package/es/DatePicker/core/PickerInput/hooks/useCellRender.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useDelayState.mjs +37 -0
- package/es/DatePicker/core/PickerInput/hooks/useDelayState.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useDisabledBoundary.mjs +18 -0
- package/es/DatePicker/core/PickerInput/hooks/useDisabledBoundary.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useFieldFormat.mjs +20 -0
- package/es/DatePicker/core/PickerInput/hooks/useFieldFormat.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useFieldsInvalidate.mjs +31 -0
- package/es/DatePicker/core/PickerInput/hooks/useFieldsInvalidate.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useFilledProps.mjs +98 -0
- package/es/DatePicker/core/PickerInput/hooks/useFilledProps.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useFocusEvents.mjs +41 -0
- package/es/DatePicker/core/PickerInput/hooks/useFocusEvents.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useFocusLock.mjs +34 -0
- package/es/DatePicker/core/PickerInput/hooks/useFocusLock.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useHoverStore.mjs +35 -0
- package/es/DatePicker/core/PickerInput/hooks/useHoverStore.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useInputReadOnly.mjs +9 -0
- package/es/DatePicker/core/PickerInput/hooks/useInputReadOnly.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useInvalidate.mjs +36 -0
- package/es/DatePicker/core/PickerInput/hooks/useInvalidate.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useLockEffect.mjs +27 -0
- package/es/DatePicker/core/PickerInput/hooks/useLockEffect.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useOpen.mjs +18 -0
- package/es/DatePicker/core/PickerInput/hooks/useOpen.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/usePickerRef.mjs +19 -0
- package/es/DatePicker/core/PickerInput/hooks/usePickerRef.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/usePresets.mjs +20 -0
- package/es/DatePicker/core/PickerInput/hooks/usePresets.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangeDisabledDate.mjs +24 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangeDisabledDate.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangePickerValue.mjs +107 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangePickerValue.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangeValue.mjs +144 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangeValue.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangeValueChange.mjs +219 -0
- package/es/DatePicker/core/PickerInput/hooks/useRangeValueChange.mjs.map +1 -0
- package/es/DatePicker/core/PickerInput/hooks/useShowNow.mjs +11 -0
- package/es/DatePicker/core/PickerInput/hooks/useShowNow.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/DatePanel/index.mjs +131 -0
- package/es/DatePicker/core/PickerPanel/DatePanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/DateTimePanel/index.mjs +35 -0
- package/es/DatePicker/core/PickerPanel/DateTimePanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/DecadePanel/index.mjs +84 -0
- package/es/DatePicker/core/PickerPanel/DecadePanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/MonthPanel/index.mjs +73 -0
- package/es/DatePicker/core/PickerPanel/MonthPanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/PanelBody.mjs +95 -0
- package/es/DatePicker/core/PickerPanel/PanelBody.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/PanelHeader.mjs +130 -0
- package/es/DatePicker/core/PickerPanel/PanelHeader.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/QuarterPanel/index.mjs +64 -0
- package/es/DatePicker/core/PickerPanel/QuarterPanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/ClockDial.mjs +108 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/ClockDial.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/geometry.mjs +44 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/geometry.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/index.mjs +157 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/TimeColumn.mjs +100 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/TimeColumn.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/index.mjs +71 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useScrollTo.mjs +62 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useScrollTo.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useTimeState.mjs +200 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useTimeState.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/util.mjs +25 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/util.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/index.mjs +31 -0
- package/es/DatePicker/core/PickerPanel/TimePanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/WeekPanel/index.mjs +34 -0
- package/es/DatePicker/core/PickerPanel/WeekPanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/YearPanel/index.mjs +92 -0
- package/es/DatePicker/core/PickerPanel/YearPanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/context.mjs +48 -0
- package/es/DatePicker/core/PickerPanel/context.mjs.map +1 -0
- package/es/DatePicker/core/PickerPanel/index.d.mts +1 -0
- package/es/DatePicker/core/PickerPanel/index.mjs +175 -0
- package/es/DatePicker/core/PickerPanel/index.mjs.map +1 -0
- package/es/DatePicker/core/PickerPopup.mjs +118 -0
- package/es/DatePicker/core/PickerPopup.mjs.map +1 -0
- package/es/DatePicker/core/generate/dayjs.mjs +109 -0
- package/es/DatePicker/core/generate/dayjs.mjs.map +1 -0
- package/es/DatePicker/core/generate/index.d.mts +40 -0
- package/es/DatePicker/core/hooks/react.mjs +58 -0
- package/es/DatePicker/core/hooks/react.mjs.map +1 -0
- package/es/DatePicker/core/hooks/useLocale.mjs +51 -0
- package/es/DatePicker/core/hooks/useLocale.mjs.map +1 -0
- package/es/DatePicker/core/hooks/useSemantic.mjs +20 -0
- package/es/DatePicker/core/hooks/useSemantic.mjs.map +1 -0
- package/es/DatePicker/core/hooks/useSyncState.mjs +25 -0
- package/es/DatePicker/core/hooks/useSyncState.mjs.map +1 -0
- package/es/DatePicker/core/hooks/useTimeConfig.mjs +173 -0
- package/es/DatePicker/core/hooks/useTimeConfig.mjs.map +1 -0
- package/es/DatePicker/core/hooks/useTimeInfo.mjs +110 -0
- package/es/DatePicker/core/hooks/useTimeInfo.mjs.map +1 -0
- package/es/DatePicker/core/hooks/useToggleDates.mjs +21 -0
- package/es/DatePicker/core/hooks/useToggleDates.mjs.map +1 -0
- package/es/DatePicker/core/index.d.mts +5 -0
- package/es/DatePicker/core/index.mjs +9 -0
- package/es/DatePicker/core/index.mjs.map +1 -0
- package/es/DatePicker/core/interface.d.mts +325 -0
- package/es/DatePicker/core/locale/common.mjs +11 -0
- package/es/DatePicker/core/locale/common.mjs.map +1 -0
- package/es/DatePicker/core/locale/en_US.mjs +39 -0
- package/es/DatePicker/core/locale/en_US.mjs.map +1 -0
- package/es/DatePicker/core/utils/common.mjs +73 -0
- package/es/DatePicker/core/utils/common.mjs.map +1 -0
- package/es/DatePicker/core/utils/dateUtil.mjs +106 -0
- package/es/DatePicker/core/utils/dateUtil.mjs.map +1 -0
- package/es/DatePicker/core/utils/miscUtil.mjs +46 -0
- package/es/DatePicker/core/utils/miscUtil.mjs.map +1 -0
- package/es/DatePicker/core/utils/uiUtil.mjs +9 -0
- package/es/DatePicker/core/utils/uiUtil.mjs.map +1 -0
- package/es/DatePicker/generateConfig.mjs +12 -0
- package/es/DatePicker/generateConfig.mjs.map +1 -0
- package/es/DatePicker/generatePicker.d.mts +12 -0
- package/es/DatePicker/generatePicker.mjs +22 -0
- package/es/DatePicker/generatePicker.mjs.map +1 -0
- package/es/DatePicker/index.d.mts +6 -3
- package/es/DatePicker/index.mjs +3 -1
- package/es/DatePicker/locale.d.mts +15 -0
- package/es/DatePicker/locale.mjs +143 -0
- package/es/DatePicker/locale.mjs.map +1 -0
- package/es/DatePicker/semantic.mjs +29 -0
- package/es/DatePicker/semantic.mjs.map +1 -0
- package/es/DatePicker/style.mjs +3 -155
- package/es/DatePicker/style.mjs.map +1 -1
- package/es/DatePicker/type.d.mts +268 -27
- package/es/DatePicker/usePanelKeyboard.mjs +230 -0
- package/es/DatePicker/usePanelKeyboard.mjs.map +1 -0
- package/es/DatePicker/usePickerShared.mjs +106 -0
- package/es/DatePicker/usePickerShared.mjs.map +1 -0
- package/es/DatePicker/usePresetActive.mjs +48 -0
- package/es/DatePicker/usePresetActive.mjs.map +1 -0
- package/es/DraggablePanel/atoms.mjs +5 -5
- package/es/DraggablePanel/atoms.mjs.map +1 -1
- package/es/DraggableSideNav/DraggableSideNav.mjs +3 -3
- package/es/DraggableSideNav/DraggableSideNav.mjs.map +1 -1
- package/es/Drawer/Drawer.mjs +2 -2
- package/es/Drawer/Drawer.mjs.map +1 -1
- package/es/Drawer/atoms.mjs +6 -6
- package/es/Drawer/atoms.mjs.map +1 -1
- package/es/DropdownMenu/atoms.mjs +22 -22
- package/es/DropdownMenu/atoms.mjs.map +1 -1
- package/es/DropdownMenu/sharedStyle.mjs +2 -2
- package/es/DropdownMenu/sharedStyle.mjs.map +1 -1
- package/es/EditableText/EditableText.mjs +1 -1
- package/es/EditorSlashMenu/atoms.mjs +12 -12
- package/es/EditorSlashMenu/atoms.mjs.map +1 -1
- package/es/EmojiPicker/EmojiPicker.mjs +7 -7
- package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
- package/es/EmojiPicker/loadEmojiData.mjs +6 -0
- package/es/EmojiPicker/loadEmojiData.mjs.map +1 -0
- package/es/FloatingPanel/FloatingPanel.mjs +2 -2
- package/es/FloatingPanel/FloatingPanel.mjs.map +1 -1
- package/es/FormKit/List.mjs +2 -2
- package/es/FormKit/List.mjs.map +1 -1
- package/es/Highlighter/FullFeatured.mjs +2 -2
- package/es/Highlighter/FullFeatured.mjs.map +1 -1
- package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs +2 -2
- package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs.map +1 -1
- package/es/Highlighter/SyntaxHighlighter/index.mjs +4 -4
- package/es/Highlighter/SyntaxHighlighter/index.mjs.map +1 -1
- package/es/Highlighter/style.mjs +2 -2
- package/es/Highlighter/style.mjs.map +1 -1
- package/es/HtmlPreview/HtmlPreview.mjs +2 -2
- package/es/HtmlPreview/HtmlPreview.mjs.map +1 -1
- package/es/Icon/Icon.mjs +2 -2
- package/es/Icon/Icon.mjs.map +1 -1
- package/es/List/ListRow.mjs +3 -3
- package/es/List/ListRow.mjs.map +1 -1
- package/es/Markdown/Markdown.mjs +2 -2
- package/es/Markdown/Markdown.mjs.map +1 -1
- package/es/Markdown/Typography.mjs +2 -2
- package/es/Markdown/Typography.mjs.map +1 -1
- package/es/Mermaid/FullFeatured.mjs +2 -2
- package/es/Mermaid/FullFeatured.mjs.map +1 -1
- package/es/Mermaid/SyntaxMermaid/index.mjs +4 -4
- package/es/Mermaid/SyntaxMermaid/index.mjs.map +1 -1
- package/es/Modal/atoms.mjs +6 -6
- package/es/Modal/atoms.mjs.map +1 -1
- package/es/Pagination/Pagination.mjs +181 -41
- package/es/Pagination/Pagination.mjs.map +1 -1
- package/es/Pagination/helpers.mjs +3 -3
- package/es/Pagination/helpers.mjs.map +1 -1
- package/es/Pagination/index.d.mts +2 -2
- package/es/Pagination/marker.stylex.mjs +9 -0
- package/es/Pagination/marker.stylex.mjs.map +1 -0
- package/es/Pagination/style.mjs +74 -4
- package/es/Pagination/style.mjs.map +1 -1
- package/es/Pagination/type.d.mts +41 -3
- package/es/Popover/PopoverInGroup.mjs +2 -2
- package/es/Popover/PopoverInGroup.mjs.map +1 -1
- package/es/Popover/atoms.mjs +6 -6
- package/es/Popover/atoms.mjs.map +1 -1
- package/es/ProTable/ProTable.d.mts +11 -0
- package/es/ProTable/ProTable.mjs +208 -0
- package/es/ProTable/ProTable.mjs.map +1 -0
- package/es/ProTable/hooks/useColumnRequest.mjs +55 -0
- package/es/ProTable/hooks/useColumnRequest.mjs.map +1 -0
- package/es/ProTable/hooks/useColumnsState.mjs +37 -0
- package/es/ProTable/hooks/useColumnsState.mjs.map +1 -0
- package/es/ProTable/hooks/useDelayedFlag.mjs +18 -0
- package/es/ProTable/hooks/useDelayedFlag.mjs.map +1 -0
- package/es/ProTable/hooks/useDensity.mjs +15 -0
- package/es/ProTable/hooks/useDensity.mjs.map +1 -0
- package/es/ProTable/hooks/useFetchData.mjs +97 -0
- package/es/ProTable/hooks/useFetchData.mjs.map +1 -0
- package/es/ProTable/hooks/useFullscreen.mjs +22 -0
- package/es/ProTable/hooks/useFullscreen.mjs.map +1 -0
- package/es/ProTable/hooks/usePageInfo.mjs +35 -0
- package/es/ProTable/hooks/usePageInfo.mjs.map +1 -0
- package/es/ProTable/hooks/useProColumns.mjs +123 -0
- package/es/ProTable/hooks/useProColumns.mjs.map +1 -0
- package/es/ProTable/hooks/useProLoading.mjs +19 -0
- package/es/ProTable/hooks/useProLoading.mjs.map +1 -0
- package/es/ProTable/hooks/useProLocale.mjs +22 -0
- package/es/ProTable/hooks/useProLocale.mjs.map +1 -0
- package/es/ProTable/hooks/useProRequest.mjs +137 -0
- package/es/ProTable/hooks/useProRequest.mjs.map +1 -0
- package/es/ProTable/hooks/useRowCache.mjs +11 -0
- package/es/ProTable/hooks/useRowCache.mjs.map +1 -0
- package/es/ProTable/hooks/useSearchForm.mjs +141 -0
- package/es/ProTable/hooks/useSearchForm.mjs.map +1 -0
- package/es/ProTable/hooks/useTableBindings.mjs +39 -0
- package/es/ProTable/hooks/useTableBindings.mjs.map +1 -0
- package/es/ProTable/hooks/useTableSelection.mjs +14 -0
- package/es/ProTable/hooks/useTableSelection.mjs.map +1 -0
- package/es/ProTable/index.d.mts +4 -0
- package/es/ProTable/index.d.ts +1 -0
- package/es/ProTable/index.js +1 -0
- package/es/ProTable/index.mjs +3 -0
- package/es/ProTable/locale.d.mts +15 -0
- package/es/ProTable/locale.mjs +66 -0
- package/es/ProTable/locale.mjs.map +1 -0
- package/es/ProTable/parts/ColumnSetting.mjs +155 -0
- package/es/ProTable/parts/ColumnSetting.mjs.map +1 -0
- package/es/ProTable/parts/FieldControl.mjs +117 -0
- package/es/ProTable/parts/FieldControl.mjs.map +1 -0
- package/es/ProTable/parts/KeywordInput.mjs +19 -0
- package/es/ProTable/parts/KeywordInput.mjs.map +1 -0
- package/es/ProTable/parts/LightFilter.mjs +70 -0
- package/es/ProTable/parts/LightFilter.mjs.map +1 -0
- package/es/ProTable/parts/OptionPopover.mjs +17 -0
- package/es/ProTable/parts/OptionPopover.mjs.map +1 -0
- package/es/ProTable/parts/SearchForm.mjs +180 -0
- package/es/ProTable/parts/SearchForm.mjs.map +1 -0
- package/es/ProTable/parts/SearchSection.mjs +33 -0
- package/es/ProTable/parts/SearchSection.mjs.map +1 -0
- package/es/ProTable/parts/TableAlert.mjs +38 -0
- package/es/ProTable/parts/TableAlert.mjs.map +1 -0
- package/es/ProTable/parts/Toolbar.mjs +50 -0
- package/es/ProTable/parts/Toolbar.mjs.map +1 -0
- package/es/ProTable/parts/ToolbarOptions.mjs +103 -0
- package/es/ProTable/parts/ToolbarOptions.mjs.map +1 -0
- package/es/ProTable/parts/renderValue.mjs +118 -0
- package/es/ProTable/parts/renderValue.mjs.map +1 -0
- package/es/ProTable/style.mjs +278 -0
- package/es/ProTable/style.mjs.map +1 -0
- package/es/ProTable/type.d.mts +397 -0
- package/es/ProTable/utils.mjs +152 -0
- package/es/ProTable/utils.mjs.map +1 -0
- package/es/Radio/Radio.mjs +3 -3
- package/es/Radio/Radio.mjs.map +1 -1
- package/es/ScrollArea/atoms.mjs +4 -4
- package/es/ScrollArea/atoms.mjs.map +1 -1
- package/es/Segmented/Segmented.mjs +3 -3
- package/es/Segmented/Segmented.mjs.map +1 -1
- package/es/Segmented/atoms.mjs +2 -2
- package/es/Segmented/atoms.mjs.map +1 -1
- package/es/Select/Select.mjs +22 -13
- package/es/Select/Select.mjs.map +1 -1
- package/es/Select/atoms.mjs +4 -4
- package/es/Select/atoms.mjs.map +1 -1
- package/es/Select/helpers.mjs +8 -1
- package/es/Select/helpers.mjs.map +1 -1
- package/es/Select/hooks.mjs +8 -4
- package/es/Select/hooks.mjs.map +1 -1
- package/es/Select/renderOptions.mjs +2 -2
- package/es/Select/renderOptions.mjs.map +1 -1
- package/es/Select/type.d.mts +7 -0
- package/es/Switch/Switch.mjs +2 -2
- package/es/Switch/Switch.mjs.map +1 -1
- package/es/Switch/atoms.mjs +2 -2
- package/es/Switch/atoms.mjs.map +1 -1
- package/es/Table/Column.d.mts +8 -0
- package/es/Table/Column.mjs +6 -0
- package/es/Table/Column.mjs.map +1 -0
- package/es/Table/ColumnGroup.d.mts +11 -0
- package/es/Table/ColumnGroup.mjs +6 -0
- package/es/Table/ColumnGroup.mjs.map +1 -0
- package/es/Table/Table.d.mts +16 -2
- package/es/Table/Table.mjs +149 -118
- package/es/Table/Table.mjs.map +1 -1
- package/es/Table/atoms/cells.d.mts +42 -0
- package/es/Table/atoms/cells.mjs +72 -0
- package/es/Table/atoms/cells.mjs.map +1 -0
- package/es/Table/atoms/index.d.mts +3 -0
- package/es/Table/atoms/layout.d.mts +44 -0
- package/es/Table/atoms/layout.mjs +62 -0
- package/es/Table/atoms/layout.mjs.map +1 -0
- package/es/Table/constants.mjs +16 -0
- package/es/Table/constants.mjs.map +1 -0
- package/es/Table/engine/fixed.d.mts +1 -0
- package/es/Table/engine/fixed.mjs +53 -0
- package/es/Table/engine/fixed.mjs.map +1 -0
- package/es/Table/engine/types.d.mts +1 -0
- package/es/Table/engine/useTableEngine.mjs +180 -0
- package/es/Table/engine/useTableEngine.mjs.map +1 -0
- package/es/Table/index.d.mts +7 -2
- package/es/Table/index.mjs +4 -1
- package/es/Table/internal.d.mts +3 -0
- package/es/Table/pipeline/columnUtils.d.mts +5 -0
- package/es/Table/pipeline/columnUtils.mjs +58 -0
- package/es/Table/pipeline/columnUtils.mjs.map +1 -0
- package/es/Table/pipeline/convertChildrenToColumns.mjs +24 -0
- package/es/Table/pipeline/convertChildrenToColumns.mjs.map +1 -0
- package/es/Table/pipeline/normalizeColumns.mjs +140 -0
- package/es/Table/pipeline/normalizeColumns.mjs.map +1 -0
- package/es/Table/pipeline/selectionUtils.d.mts +9 -0
- package/es/Table/pipeline/selectionUtils.mjs +115 -0
- package/es/Table/pipeline/selectionUtils.mjs.map +1 -0
- package/es/Table/pipeline/useBreakpoint.mjs +36 -0
- package/es/Table/pipeline/useBreakpoint.mjs.map +1 -0
- package/es/Table/pipeline/useExpandable.mjs +45 -0
- package/es/Table/pipeline/useExpandable.mjs.map +1 -0
- package/es/Table/pipeline/useFilter.mjs +52 -0
- package/es/Table/pipeline/useFilter.mjs.map +1 -0
- package/es/Table/pipeline/useSelection.mjs +302 -0
- package/es/Table/pipeline/useSelection.mjs.map +1 -0
- package/es/Table/pipeline/useSorter.mjs +146 -0
- package/es/Table/pipeline/useSorter.mjs.map +1 -0
- package/es/Table/pipeline/useTableLocale.mjs +30 -0
- package/es/Table/pipeline/useTableLocale.mjs.map +1 -0
- package/es/Table/pipeline/useTableState.mjs +118 -0
- package/es/Table/pipeline/useTableState.mjs.map +1 -0
- package/es/Table/pipeline/useVirtualLayout.mjs +80 -0
- package/es/Table/pipeline/useVirtualLayout.mjs.map +1 -0
- package/es/Table/render/Body.mjs +150 -0
- package/es/Table/render/Body.mjs.map +1 -0
- package/es/Table/render/BodyCell.mjs +87 -0
- package/es/Table/render/BodyCell.mjs.map +1 -0
- package/es/Table/render/CellShell.mjs +84 -0
- package/es/Table/render/CellShell.mjs.map +1 -0
- package/es/Table/render/ExpandIcon.mjs +28 -0
- package/es/Table/render/ExpandIcon.mjs.map +1 -0
- package/es/Table/render/FilterDropdown.mjs +139 -0
- package/es/Table/render/FilterDropdown.mjs.map +1 -0
- package/es/Table/render/FilterPanel.mjs +152 -0
- package/es/Table/render/FilterPanel.mjs.map +1 -0
- package/es/Table/render/FixedFrost.mjs +113 -0
- package/es/Table/render/FixedFrost.mjs.map +1 -0
- package/es/Table/render/FixedHolder.mjs +51 -0
- package/es/Table/render/FixedHolder.mjs.map +1 -0
- package/es/Table/render/Header.mjs +184 -0
- package/es/Table/render/Header.mjs.map +1 -0
- package/es/Table/render/LoadingSkeleton.mjs +78 -0
- package/es/Table/render/LoadingSkeleton.mjs.map +1 -0
- package/es/Table/render/PaginationBar.mjs +71 -0
- package/es/Table/render/PaginationBar.mjs.map +1 -0
- package/es/Table/render/SelectionCells.mjs +111 -0
- package/es/Table/render/SelectionCells.mjs.map +1 -0
- package/es/Table/render/StickyScrollBar.mjs +99 -0
- package/es/Table/render/StickyScrollBar.mjs.map +1 -0
- package/es/Table/render/Summary.d.mts +16 -0
- package/es/Table/render/Summary.mjs +58 -0
- package/es/Table/render/Summary.mjs.map +1 -0
- package/es/Table/render/TableView.mjs +215 -0
- package/es/Table/render/TableView.mjs.map +1 -0
- package/es/Table/render/VirtualBody.mjs +101 -0
- package/es/Table/render/VirtualBody.mjs.map +1 -0
- package/es/Table/render/context.mjs +15 -0
- package/es/Table/render/context.mjs.map +1 -0
- package/es/Table/render/filterUtils.mjs +22 -0
- package/es/Table/render/filterUtils.mjs.map +1 -0
- package/es/Table/render/tableHelpers.mjs +27 -0
- package/es/Table/render/tableHelpers.mjs.map +1 -0
- package/es/Table/render/useColGroups.mjs +23 -0
- package/es/Table/render/useColGroups.mjs.map +1 -0
- package/es/Table/render/useScrollSync.mjs +104 -0
- package/es/Table/render/useScrollSync.mjs.map +1 -0
- package/es/Table/render/useViewContexts.mjs +134 -0
- package/es/Table/render/useViewContexts.mjs.map +1 -0
- package/es/Table/semantic.mjs +45 -0
- package/es/Table/semantic.mjs.map +1 -0
- package/es/Table/store/createTableStore.d.mts +1 -0
- package/es/Table/store/createTableStore.mjs +40 -0
- package/es/Table/store/createTableStore.mjs.map +1 -0
- package/es/Table/store/hooks.mjs +24 -0
- package/es/Table/store/hooks.mjs.map +1 -0
- package/es/Table/style.mjs +175 -90
- package/es/Table/style.mjs.map +1 -1
- package/es/Table/type.d.mts +467 -37
- package/es/Table/useTableController.mjs +293 -0
- package/es/Table/useTableController.mjs.map +1 -0
- package/es/Tabs/Tabs.mjs +2 -2
- package/es/Tabs/Tabs.mjs.map +1 -1
- package/es/Tabs/atoms.mjs +2 -2
- package/es/Tabs/atoms.mjs.map +1 -1
- package/es/Tabs/style.d.mts +1 -1
- package/es/Tag/Tag.mjs +2 -2
- package/es/Tag/Tag.mjs.map +1 -1
- package/es/Text/Text.mjs +2 -2
- package/es/Text/Text.mjs.map +1 -1
- package/es/Text/style.d.mts +3 -3
- package/es/Text/style.mjs +3 -3
- package/es/Text/style.mjs.map +1 -1
- package/es/ToggleGroup/ToggleGroup.mjs +3 -3
- package/es/ToggleGroup/ToggleGroup.mjs.map +1 -1
- package/es/ToggleGroup/atoms.mjs +2 -2
- package/es/ToggleGroup/atoms.mjs.map +1 -1
- package/es/Tooltip/TooltipGroup.mjs +3 -3
- package/es/Tooltip/TooltipGroup.mjs.map +1 -1
- package/es/Tooltip/TooltipStandalone.mjs +3 -3
- package/es/Tooltip/TooltipStandalone.mjs.map +1 -1
- package/es/Tree/Tree.mjs +2 -2
- package/es/Tree/Tree.mjs.map +1 -1
- package/es/Tree/TreeNode.mjs +2 -2
- package/es/Tree/TreeNode.mjs.map +1 -1
- package/es/Video/Video.mjs +2 -2
- package/es/Video/Video.mjs.map +1 -1
- package/es/awesome/Features/FeatureItem.mjs +2 -2
- package/es/awesome/Features/FeatureItem.mjs.map +1 -1
- package/es/awesome/Hero/Hero.mjs +3 -3
- package/es/awesome/Hero/Hero.mjs.map +1 -1
- package/es/awesome/InstallBanner/InstallBanner.mjs +2 -2
- package/es/awesome/InstallBanner/InstallBanner.mjs.map +1 -1
- package/es/awesome/LandingHero/LandingHero.mjs +3 -3
- package/es/awesome/LandingHero/LandingHero.mjs.map +1 -1
- package/es/awesome/LogoMarquee/LogoMarquee.mjs +2 -2
- package/es/awesome/LogoMarquee/LogoMarquee.mjs.map +1 -1
- package/es/awesome/TypewriterEffect/TypewriterEffect.mjs +4 -4
- package/es/awesome/TypewriterEffect/TypewriterEffect.mjs.map +1 -1
- package/es/awesome/landingActions.mjs +2 -2
- package/es/awesome/landingActions.mjs.map +1 -1
- package/es/chat/ChatItem/ChatItem.mjs +2 -2
- package/es/chat/ChatItem/ChatItem.mjs.map +1 -1
- package/es/chat/EditableMessage/EditableMessage.mjs +3 -3
- package/es/chat/EditableMessage/EditableMessage.mjs.map +1 -1
- package/es/chat/EditableMessageList/EditableMessageList.mjs +1 -1
- package/es/chat/MessageInput/MessageInput.mjs +3 -3
- package/es/chat/MessageInput/MessageInput.mjs.map +1 -1
- package/es/dashboard/AuthLayout/AuthLayout.mjs +8 -4
- package/es/dashboard/AuthLayout/AuthLayout.mjs.map +1 -1
- package/es/dashboard/AuthLayout/style.mjs +14 -3
- package/es/dashboard/AuthLayout/style.mjs.map +1 -1
- package/es/dashboard/AuthTools/AuthLocaleSwitch.mjs +2 -2
- package/es/dashboard/AuthTools/AuthLocaleSwitch.mjs.map +1 -1
- package/es/dashboard/AuthTools/AuthThemeSwitch.mjs +2 -2
- package/es/dashboard/AuthTools/AuthThemeSwitch.mjs.map +1 -1
- package/es/dashboard/ConsoleNav/ConsoleNav.mjs +3 -3
- package/es/dashboard/ConsoleNav/ConsoleNav.mjs.map +1 -1
- package/es/dashboard/ConsoleNav/style.mjs +2 -2
- package/es/dashboard/ConsoleNav/style.mjs.map +1 -1
- package/es/dashboard/ConsoleShell/style.mjs +1 -1
- package/es/dashboard/ConsoleShell/style.mjs.map +1 -1
- package/es/dashboard/FilterSidebar/FilterSidebar.mjs +1 -1
- package/es/dashboard/FilterSidebar/style.mjs +2 -2
- package/es/dashboard/FilterSidebar/style.mjs.map +1 -1
- package/es/dashboard/FilterStrip/style.mjs +1 -1
- package/es/dashboard/FilterStrip/style.mjs.map +1 -1
- package/es/dashboard/MetricStrip/MetricCell.mjs +25 -14
- package/es/dashboard/MetricStrip/MetricCell.mjs.map +1 -1
- package/es/dashboard/MetricStrip/style.mjs +14 -1
- package/es/dashboard/MetricStrip/style.mjs.map +1 -1
- package/es/dashboard/MetricStrip/type.d.mts +2 -0
- package/es/dashboard/PageSkeleton/style.mjs +2 -1
- package/es/dashboard/PageSkeleton/style.mjs.map +1 -1
- package/es/dashboard/StatCard/StatCard.d.mts +1 -1
- package/es/dashboard/StatCard/StatCard.mjs +2 -1
- package/es/dashboard/StatCard/StatCard.mjs.map +1 -1
- package/es/dashboard/StatCard/type.d.mts +2 -0
- package/es/dashboard/Surface/Surface.mjs +3 -4
- package/es/dashboard/Surface/Surface.mjs.map +1 -1
- package/es/dashboard/Surface/link.mjs +1 -1
- package/es/dashboard/Surface/link.mjs.map +1 -1
- package/es/dashboard/Surface/style.mjs +15 -14
- package/es/dashboard/Surface/style.mjs.map +1 -1
- package/es/dashboard/index.mjs +2 -2
- package/es/eslint/noBaseUiSubpath.mjs +2 -1
- package/es/eslint/noBaseUiSubpath.mjs.map +1 -1
- package/es/i18n/resources/en/colorPicker.d.mts +5 -0
- package/es/i18n/resources/en/colorPicker.mjs +5 -0
- package/es/i18n/resources/en/colorPicker.mjs.map +1 -1
- package/es/i18n/resources/en/datePicker.d.mts +54 -0
- package/es/i18n/resources/en/datePicker.mjs +55 -1
- package/es/i18n/resources/en/datePicker.mjs.map +1 -1
- package/es/i18n/resources/en/index.d.mts +4 -3
- package/es/i18n/resources/en/index.mjs +3 -1
- package/es/i18n/resources/en/index.mjs.map +1 -1
- package/es/i18n/resources/en/table.d.mts +23 -0
- package/es/i18n/resources/en/table.mjs +24 -0
- package/es/i18n/resources/en/table.mjs.map +1 -0
- package/es/i18n/resources/zhCn/colorPicker.d.mts +5 -0
- package/es/i18n/resources/zhCn/colorPicker.mjs +5 -0
- package/es/i18n/resources/zhCn/colorPicker.mjs.map +1 -1
- package/es/i18n/resources/zhCn/datePicker.d.mts +54 -0
- package/es/i18n/resources/zhCn/datePicker.mjs +55 -1
- package/es/i18n/resources/zhCn/datePicker.mjs.map +1 -1
- package/es/i18n/resources/zhCn/index.d.mts +4 -3
- package/es/i18n/resources/zhCn/index.mjs +4 -2
- package/es/i18n/resources/zhCn/index.mjs.map +1 -1
- package/es/i18n/resources/zhCn/table.d.mts +23 -0
- package/es/i18n/resources/zhCn/table.mjs +24 -0
- package/es/i18n/resources/zhCn/table.mjs.map +1 -0
- package/es/i18n/types.d.mts +3 -2
- package/es/index.d.mts +15 -7
- package/es/index.mjs +14 -9
- package/es/internal/overflow/OverflowList.mjs +71 -0
- package/es/internal/overflow/OverflowList.mjs.map +1 -0
- package/es/mdx/Callout/index.mjs +2 -2
- package/es/mdx/Callout/index.mjs.map +1 -1
- package/es/mdx/Cards/Card.mjs +2 -2
- package/es/mdx/Cards/Card.mjs.map +1 -1
- package/es/mdx/Cards/index.mjs +2 -2
- package/es/mdx/Cards/index.mjs.map +1 -1
- package/es/mdx/Mdx/index.mjs +2 -2
- package/es/mdx/Mdx/index.mjs.map +1 -1
- package/es/mdx/Steps/index.mjs +2 -2
- package/es/mdx/Steps/index.mjs.map +1 -1
- package/es/mdx/mdxComponents/Pre.mjs +5 -5
- package/es/mdx/mdxComponents/Pre.mjs.map +1 -1
- package/es/storybook/StoryBook/style.mjs +2 -0
- package/es/storybook/StoryBook/style.mjs.map +1 -1
- package/es/style.css +2966 -957
- package/es/styles/createGlobalStyle.mjs +1 -1
- package/es/styles/index.d.mts +3 -2
- package/es/styles/index.mjs +5 -4
- package/es/styles/stylex/props.mjs +2 -2
- package/es/styles/stylex/props.mjs.map +1 -1
- package/es/styles/theme/createLobeToken.d.mts +3 -2
- package/es/styles/theme/createLobeToken.mjs.map +1 -1
- package/es/styles/theme/customPrimary.d.mts +7 -0
- package/es/styles/theme/customPrimary.mjs +66 -0
- package/es/styles/theme/customPrimary.mjs.map +1 -0
- package/es/styles/theme/scope.d.mts +4 -3
- package/es/styles/theme/scope.mjs +30 -8
- package/es/styles/theme/scope.mjs.map +1 -1
- package/es/styles/theme/themeCss.d.mts +2 -0
- package/es/styles/theme/themeCss.mjs +24 -2
- package/es/styles/theme/themeCss.mjs.map +1 -1
- package/es/styles/theme/token/primary.mjs +6 -2
- package/es/styles/theme/token/primary.mjs.map +1 -1
- package/es/theme.css +8 -0
- package/package.json +6 -1
- package/es/DatePicker/CalendarPanel.mjs +0 -189
- package/es/DatePicker/CalendarPanel.mjs.map +0 -1
- package/es/DatePicker/PickerShell.mjs +0 -43
- package/es/DatePicker/PickerShell.mjs.map +0 -1
- package/es/DatePicker/calendar.d.mts +0 -4
- package/es/DatePicker/calendar.mjs +0 -46
- package/es/DatePicker/calendar.mjs.map +0 -1
- package/es/Table/FilterMenu.mjs +0 -45
- package/es/Table/FilterMenu.mjs.map +0 -1
- package/es/Table/TableBody.mjs +0 -67
- package/es/Table/TableBody.mjs.map +0 -1
- package/es/Table/TableHead.mjs +0 -58
- package/es/Table/TableHead.mjs.map +0 -1
- package/es/Table/features.mjs +0 -12
- package/es/Table/features.mjs.map +0 -1
- package/es/Table/fixedOffsets.mjs +0 -29
- package/es/Table/fixedOffsets.mjs.map +0 -1
- package/es/Table/marker.stylex.mjs +0 -9
- package/es/Table/marker.stylex.mjs.map +0 -1
- package/es/Table/toColumnDefs.mjs +0 -26
- package/es/Table/toColumnDefs.mjs.map +0 -1
- package/es/Table/useTableState.mjs +0 -99
- package/es/Table/useTableState.mjs.map +0 -1
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { useControlledState, useEvent } from "../hooks/react.mjs";
|
|
2
|
+
import PickerContext from "../PickerInput/context.mjs";
|
|
3
|
+
import { warning } from "../utils/common.mjs";
|
|
4
|
+
import { isSame } from "../utils/dateUtil.mjs";
|
|
5
|
+
import { pickProps, toArray } from "../utils/miscUtil.mjs";
|
|
6
|
+
import useCellRender from "../PickerInput/hooks/useCellRender.mjs";
|
|
7
|
+
import useLocale from "../hooks/useLocale.mjs";
|
|
8
|
+
import { fillShowTimeConfig, getTimeProps } from "../hooks/useTimeConfig.mjs";
|
|
9
|
+
import useToggleDates from "../hooks/useToggleDates.mjs";
|
|
10
|
+
import { PickerHackContext, SharedPanelContext } from "./context.mjs";
|
|
11
|
+
import DatePanel from "./DatePanel/index.mjs";
|
|
12
|
+
import TimePanel from "./TimePanel/index.mjs";
|
|
13
|
+
import DateTimePanel from "./DateTimePanel/index.mjs";
|
|
14
|
+
import DecadePanel from "./DecadePanel/index.mjs";
|
|
15
|
+
import MonthPanel from "./MonthPanel/index.mjs";
|
|
16
|
+
import QuarterPanel from "./QuarterPanel/index.mjs";
|
|
17
|
+
import WeekPanel from "./WeekPanel/index.mjs";
|
|
18
|
+
import YearPanel from "./YearPanel/index.mjs";
|
|
19
|
+
import * as React$1 from "react";
|
|
20
|
+
import { jsx } from "react/jsx-runtime";
|
|
21
|
+
import { clsx } from "clsx";
|
|
22
|
+
//#region src/DatePicker/core/PickerPanel/index.tsx
|
|
23
|
+
const DefaultComponents = {
|
|
24
|
+
date: DatePanel,
|
|
25
|
+
datetime: DateTimePanel,
|
|
26
|
+
week: WeekPanel,
|
|
27
|
+
month: MonthPanel,
|
|
28
|
+
quarter: QuarterPanel,
|
|
29
|
+
year: YearPanel,
|
|
30
|
+
decade: DecadePanel,
|
|
31
|
+
time: TimePanel
|
|
32
|
+
};
|
|
33
|
+
function PickerPanel(props, ref) {
|
|
34
|
+
const { classNames: panelClassNames, styles: panelStyles, locale, generateConfig, direction, prefixCls, tabIndex = 0, multiple, defaultValue, value, onChange, onSelect, defaultPickerValue, pickerValue, onPickerValueChange, mode, onPanelChange, picker = "date", showTime, hoverValue, hoverRangeValue, cellRender, dateRender, monthCellRender, components = {}, hideHeader } = props;
|
|
35
|
+
const { prefixCls: contextPrefixCls, classNames: pickerClassNames, styles: pickerStyles } = React$1.use(PickerContext) || {};
|
|
36
|
+
const mergedPrefixCls = contextPrefixCls || prefixCls || "rc-picker";
|
|
37
|
+
const rootRef = React$1.useRef(null);
|
|
38
|
+
React$1.useImperativeHandle(ref, () => ({ nativeElement: rootRef.current }));
|
|
39
|
+
const [timeProps, localeTimeProps, showTimeFormat, propFormat] = getTimeProps(props);
|
|
40
|
+
const filledLocale = useLocale(locale, localeTimeProps);
|
|
41
|
+
const internalPicker = picker === "date" && showTime ? "datetime" : picker;
|
|
42
|
+
const mergedShowTime = React$1.useMemo(() => fillShowTimeConfig(internalPicker, showTimeFormat, propFormat, timeProps, filledLocale), [
|
|
43
|
+
internalPicker,
|
|
44
|
+
showTimeFormat,
|
|
45
|
+
propFormat,
|
|
46
|
+
timeProps,
|
|
47
|
+
filledLocale
|
|
48
|
+
]);
|
|
49
|
+
const now = generateConfig.getNow();
|
|
50
|
+
const [mergedMode, setMergedMode] = useControlledState(picker || "date", mode);
|
|
51
|
+
const internalMode = mergedMode === "date" && mergedShowTime ? "datetime" : mergedMode;
|
|
52
|
+
const toggleDates = useToggleDates(generateConfig, locale, internalPicker);
|
|
53
|
+
const [innerValue, setMergedValue] = useControlledState(defaultValue, value);
|
|
54
|
+
const mergedValue = React$1.useMemo(() => {
|
|
55
|
+
const values = toArray(innerValue).filter((val) => !!val);
|
|
56
|
+
return multiple ? values : values.slice(0, 1);
|
|
57
|
+
}, [innerValue, multiple]);
|
|
58
|
+
const triggerChange = useEvent((nextValue) => {
|
|
59
|
+
setMergedValue(nextValue);
|
|
60
|
+
if (onChange && (nextValue === null || mergedValue.length !== nextValue.length || mergedValue.some((ori, index) => !isSame(generateConfig, locale, ori, nextValue[index], internalPicker)))) onChange?.(multiple ? nextValue : nextValue[0]);
|
|
61
|
+
});
|
|
62
|
+
const onInternalSelect = useEvent((newDate) => {
|
|
63
|
+
onSelect?.(newDate);
|
|
64
|
+
if (mergedMode === picker) {
|
|
65
|
+
const nextValues = multiple ? toggleDates(mergedValue, newDate) : [newDate];
|
|
66
|
+
triggerChange(nextValues);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
const [mergedPickerValue, setInternalPickerValue] = useControlledState(defaultPickerValue || mergedValue[0] || now, pickerValue);
|
|
70
|
+
React$1.useEffect(() => {
|
|
71
|
+
if (mergedValue[0] && !pickerValue) setInternalPickerValue(mergedValue[0]);
|
|
72
|
+
}, [mergedValue[0]]);
|
|
73
|
+
const triggerPanelChange = (viewDate, nextMode) => {
|
|
74
|
+
onPanelChange?.(viewDate || pickerValue, nextMode || mergedMode);
|
|
75
|
+
};
|
|
76
|
+
const setPickerValue = (nextPickerValue, triggerPanelEvent = false) => {
|
|
77
|
+
setInternalPickerValue(nextPickerValue);
|
|
78
|
+
onPickerValueChange?.(nextPickerValue);
|
|
79
|
+
if (triggerPanelEvent) triggerPanelChange(nextPickerValue);
|
|
80
|
+
};
|
|
81
|
+
const triggerModeChange = (nextMode, viewDate) => {
|
|
82
|
+
setMergedMode(nextMode);
|
|
83
|
+
if (viewDate) setPickerValue(viewDate);
|
|
84
|
+
triggerPanelChange(viewDate, nextMode);
|
|
85
|
+
};
|
|
86
|
+
const onPanelValueSelect = (nextValue) => {
|
|
87
|
+
onInternalSelect(nextValue);
|
|
88
|
+
setPickerValue(nextValue);
|
|
89
|
+
if (mergedMode !== picker) {
|
|
90
|
+
const decadeYearQueue = ["decade", "year"];
|
|
91
|
+
const decadeYearMonthQueue = [...decadeYearQueue, "month"];
|
|
92
|
+
const queue = {
|
|
93
|
+
quarter: [...decadeYearQueue, "quarter"],
|
|
94
|
+
week: [...decadeYearMonthQueue, "week"],
|
|
95
|
+
date: [...decadeYearMonthQueue, "date"]
|
|
96
|
+
}[picker] || decadeYearMonthQueue;
|
|
97
|
+
const nextMode = queue[queue.indexOf(mergedMode) + 1];
|
|
98
|
+
if (nextMode) triggerModeChange(nextMode, nextValue);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
const hoverRangeDate = React$1.useMemo(() => {
|
|
102
|
+
let start;
|
|
103
|
+
let end;
|
|
104
|
+
if (Array.isArray(hoverRangeValue)) [start, end] = hoverRangeValue;
|
|
105
|
+
else start = hoverRangeValue;
|
|
106
|
+
if (!start && !end) return null;
|
|
107
|
+
start = start || end;
|
|
108
|
+
end = end || start;
|
|
109
|
+
return generateConfig.isAfter(start, end) ? [end, start] : [start, end];
|
|
110
|
+
}, [hoverRangeValue, generateConfig]);
|
|
111
|
+
const onInternalCellRender = useCellRender(cellRender, dateRender, monthCellRender);
|
|
112
|
+
const PanelComponent = components[internalMode] || DefaultComponents[internalMode] || DatePanel;
|
|
113
|
+
const sharedPanelContext = React$1.useMemo(() => ({
|
|
114
|
+
classNames: pickerClassNames?.popup ?? panelClassNames ?? {},
|
|
115
|
+
styles: pickerStyles?.popup ?? panelStyles ?? {}
|
|
116
|
+
}), [
|
|
117
|
+
pickerClassNames,
|
|
118
|
+
panelClassNames,
|
|
119
|
+
pickerStyles,
|
|
120
|
+
panelStyles
|
|
121
|
+
]);
|
|
122
|
+
const parentHackContext = React$1.use(PickerHackContext);
|
|
123
|
+
const pickerPanelContext = React$1.useMemo(() => ({
|
|
124
|
+
...parentHackContext,
|
|
125
|
+
hideHeader
|
|
126
|
+
}), [parentHackContext, hideHeader]);
|
|
127
|
+
if (process.env.NODE_ENV !== "production") warning(!mergedValue || mergedValue.every((val) => generateConfig.isValidate(val)), "Invalidate date pass to `value` or `defaultValue`.");
|
|
128
|
+
const panelCls = `${mergedPrefixCls}-panel`;
|
|
129
|
+
const panelProps = pickProps(props, [
|
|
130
|
+
"showWeek",
|
|
131
|
+
"prevIcon",
|
|
132
|
+
"nextIcon",
|
|
133
|
+
"superPrevIcon",
|
|
134
|
+
"superNextIcon",
|
|
135
|
+
"disabledDate",
|
|
136
|
+
"minDate",
|
|
137
|
+
"maxDate",
|
|
138
|
+
"onHover"
|
|
139
|
+
]);
|
|
140
|
+
return /* @__PURE__ */ jsx(SharedPanelContext, {
|
|
141
|
+
value: sharedPanelContext,
|
|
142
|
+
children: /* @__PURE__ */ jsx(PickerHackContext, {
|
|
143
|
+
value: pickerPanelContext,
|
|
144
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
145
|
+
className: clsx(panelCls, { [`${panelCls}-rtl`]: direction === "rtl" }),
|
|
146
|
+
ref: rootRef,
|
|
147
|
+
tabIndex,
|
|
148
|
+
children: /* @__PURE__ */ jsx(PanelComponent, {
|
|
149
|
+
...panelProps,
|
|
150
|
+
hoverRangeValue: hoverRangeDate,
|
|
151
|
+
hoverValue,
|
|
152
|
+
value: mergedValue[0],
|
|
153
|
+
onSelect: onPanelValueSelect,
|
|
154
|
+
onPickerValueChange: (nextPickerValue) => {
|
|
155
|
+
setPickerValue(nextPickerValue, true);
|
|
156
|
+
},
|
|
157
|
+
generateConfig,
|
|
158
|
+
onModeChange: triggerModeChange,
|
|
159
|
+
locale: filledLocale,
|
|
160
|
+
pickerValue: mergedPickerValue,
|
|
161
|
+
showTime: mergedShowTime,
|
|
162
|
+
prefixCls: mergedPrefixCls,
|
|
163
|
+
values: mergedValue,
|
|
164
|
+
cellRender: onInternalCellRender
|
|
165
|
+
})
|
|
166
|
+
})
|
|
167
|
+
})
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
const RefPanelPicker = React$1.memo(React$1.forwardRef(PickerPanel));
|
|
171
|
+
if (process.env.NODE_ENV !== "production") RefPanelPicker.displayName = "PanelPicker";
|
|
172
|
+
//#endregion
|
|
173
|
+
export { RefPanelPicker as default };
|
|
174
|
+
|
|
175
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["React"],"sources":["../../../../src/DatePicker/core/PickerPanel/index.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport * as React from 'react';\n\nimport { useControlledState, useEvent } from '../hooks/react';\nimport useLocale from '../hooks/useLocale';\nimport { fillShowTimeConfig, getTimeProps } from '../hooks/useTimeConfig';\nimport useToggleDates from '../hooks/useToggleDates';\nimport type {\n CellRender,\n Components,\n InternalMode,\n Locale,\n OnPanelChange,\n PanelMode,\n PanelSemanticName,\n PickerMode,\n SharedPanelProps,\n SharedTimeProps,\n} from '../interface';\nimport PickerContext from '../PickerInput/context';\nimport useCellRender from '../PickerInput/hooks/useCellRender';\nimport { warning } from '../utils/common';\nimport { isSame } from '../utils/dateUtil';\nimport { pickProps, toArray } from '../utils/miscUtil';\nimport { PickerHackContext, SharedPanelContext } from './context';\nimport DatePanel from './DatePanel';\nimport DateTimePanel from './DateTimePanel';\nimport DecadePanel from './DecadePanel';\nimport MonthPanel from './MonthPanel';\nimport QuarterPanel from './QuarterPanel';\nimport TimePanel from './TimePanel';\nimport WeekPanel from './WeekPanel';\nimport YearPanel from './YearPanel';\n\nconst DefaultComponents: Components = {\n date: DatePanel,\n datetime: DateTimePanel,\n week: WeekPanel,\n month: MonthPanel,\n quarter: QuarterPanel,\n year: YearPanel,\n decade: DecadePanel,\n time: TimePanel,\n};\n\nexport interface PickerPanelRef {\n nativeElement: HTMLDivElement;\n}\n\nexport interface BasePickerPanelProps<DateType extends object = any>\n extends\n Pick<\n SharedPanelProps<DateType>,\n // MISC\n | 'locale'\n | 'generateConfig'\n\n // Disabled\n | 'disabledDate'\n | 'minDate'\n | 'maxDate'\n\n // Icon\n | 'prevIcon'\n | 'nextIcon'\n | 'superPrevIcon'\n | 'superNextIcon'\n >,\n Omit<SharedTimeProps<DateType>, 'format'>,\n Pick<React.HTMLAttributes<HTMLDivElement>, 'tabIndex'> {\n // Cell\n cellRender?: CellRender<DateType>;\n\n // Components\n components?: Components;\n\n /** @deprecated use cellRender instead of dateRender */\n dateRender?: (currentDate: DateType, today: DateType) => React.ReactNode;\n\n // Panel control\n defaultPickerValue?: DateType | null;\n\n direction?: 'ltr' | 'rtl';\n format?: string | null;\n /** @private This is internal usage. Do not use in your production env */\n hideHeader?: boolean;\n\n /** @private Used for Picker passing */\n hoverRangeValue?: [start: DateType, end: DateType] | null;\n // Hover\n /** @private Used for Picker passing */\n hoverValue?: DateType[] | null;\n // Mode\n mode?: PanelMode;\n\n /** @deprecated use cellRender instead of monthCellRender */\n monthCellRender?: (currentDate: DateType, locale: Locale) => React.ReactNode;\n\n /** @private Used for Picker passing */\n onHover?: (date: DateType | null) => void;\n\n /**\n * Compatible with origin API.\n * Not mean the PickerPanel `onChange` event.\n */\n onPanelChange?: OnPanelChange<DateType>;\n\n onPickerValueChange?: (date: DateType) => void;\n // Value\n onSelect?: (date: DateType) => void;\n\n picker?: PickerMode;\n pickerValue?: DateType | null;\n // Style\n prefixCls?: string;\n\n // Time\n showTime?: true | SharedTimeProps<DateType> | null;\n\n // Week\n /**\n * Only worked in `date` mode. Show the current week\n */\n showWeek?: boolean;\n}\n\nexport interface SinglePickerPanelProps<DateType extends object = any> extends Omit<\n BasePickerPanelProps<DateType>,\n 'defaultValue'\n> {\n defaultValue?: DateType | null;\n\n multiple?: false;\n onChange?: (date: DateType) => void;\n value?: DateType | null;\n}\n\nexport type PickerPanelProps<DateType extends object = any> = BasePickerPanelProps<DateType> & {\n /** multiple selection. Not support time or datetime picker */\n multiple?: boolean;\n\n defaultValue?: DateType | DateType[] | null;\n value?: DateType | DateType[] | null;\n onChange?: ((date: DateType | DateType[]) => void) | null;\n styles?: Partial<Record<PanelSemanticName, React.CSSProperties>>;\n classNames?: Partial<Record<PanelSemanticName, string>>;\n};\n\nfunction PickerPanel<DateType extends object = any>(\n props: PickerPanelProps<DateType>,\n ref: React.Ref<PickerPanelRef>,\n) {\n const {\n classNames: panelClassNames,\n styles: panelStyles,\n\n locale,\n generateConfig,\n\n direction,\n\n // Style\n prefixCls,\n tabIndex = 0,\n\n // Value\n multiple,\n defaultValue,\n value,\n onChange,\n onSelect,\n\n // Picker control\n defaultPickerValue,\n pickerValue,\n onPickerValueChange,\n\n // Mode\n mode,\n onPanelChange,\n picker = 'date',\n showTime,\n\n // Hover\n hoverValue,\n hoverRangeValue,\n\n // Cell\n cellRender,\n dateRender,\n monthCellRender,\n\n // Components\n components = {},\n\n hideHeader,\n } = props;\n\n // ======================== Context ========================\n const {\n prefixCls: contextPrefixCls,\n classNames: pickerClassNames,\n styles: pickerStyles,\n } = React.use(PickerContext) || {};\n\n // ======================== prefixCls ========================\n const mergedPrefixCls = contextPrefixCls || prefixCls || 'rc-picker';\n\n // ========================== Refs ==========================\n const rootRef = React.useRef<HTMLDivElement>(null);\n\n React.useImperativeHandle(ref, () => ({\n nativeElement: rootRef.current!,\n }));\n\n // ========================== Time ==========================\n // Auto `format` need to check `showTime.showXXX` first.\n // And then merge the `locale` into `mergedShowTime`.\n const [timeProps, localeTimeProps, showTimeFormat, propFormat] = getTimeProps(props);\n\n // ========================= Locale =========================\n const filledLocale = useLocale(locale, localeTimeProps);\n\n // ========================= Picker =========================\n const internalPicker: InternalMode = picker === 'date' && showTime ? 'datetime' : picker;\n\n // ======================== ShowTime ========================\n const mergedShowTime = React.useMemo(\n () => fillShowTimeConfig(internalPicker, showTimeFormat, propFormat, timeProps, filledLocale),\n [internalPicker, showTimeFormat, propFormat, timeProps, filledLocale],\n );\n\n // ========================== Now ===========================\n const now = generateConfig.getNow();\n\n // ========================== Mode ==========================\n const [mergedMode, setMergedMode] = useControlledState<PanelMode>(picker || 'date', mode);\n\n const internalMode: InternalMode =\n mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode;\n\n // ========================= Toggle =========================\n const toggleDates = useToggleDates(generateConfig, locale, internalPicker);\n\n // ========================= Value ==========================\n // >>> Real value\n // Interactive with `onChange` event which only trigger when the `mode` is `picker`\n const [innerValue, setMergedValue] = useControlledState(defaultValue, value);\n\n const mergedValue = React.useMemo(() => {\n // Clean up `[null]`\n const values = toArray(innerValue).filter((val): val is DateType => !!val);\n return multiple ? values : values.slice(0, 1);\n }, [innerValue, multiple]);\n\n // Sync value and only trigger onChange event when changed\n const triggerChange = useEvent((nextValue: DateType[]) => {\n setMergedValue(nextValue);\n\n if (\n onChange &&\n (nextValue === null ||\n mergedValue.length !== nextValue.length ||\n mergedValue.some(\n (ori, index) => !isSame(generateConfig, locale, ori, nextValue[index], internalPicker),\n ))\n ) {\n onChange?.(multiple ? nextValue : nextValue[0]);\n }\n });\n\n // >>> CalendarValue\n // CalendarValue is a temp value for user operation\n // which will only trigger `onCalendarChange` but not `onChange`\n const onInternalSelect = useEvent((newDate: DateType) => {\n onSelect?.(newDate);\n\n if (mergedMode === picker) {\n const nextValues = multiple ? toggleDates(mergedValue, newDate) : [newDate];\n\n triggerChange(nextValues);\n }\n });\n\n // >>> PickerValue\n // PickerValue is used to control the current displaying panel\n const [mergedPickerValue, setInternalPickerValue] = useControlledState(\n defaultPickerValue || mergedValue[0] || now,\n pickerValue,\n );\n\n React.useEffect(() => {\n if (mergedValue[0] && !pickerValue) {\n setInternalPickerValue(mergedValue[0]);\n }\n }, [mergedValue[0]]);\n\n // Both trigger when manually pickerValue or mode change\n const triggerPanelChange = (viewDate?: DateType, nextMode?: PanelMode) => {\n onPanelChange?.((viewDate || pickerValue)!, nextMode || mergedMode);\n };\n\n const setPickerValue = (nextPickerValue: DateType, triggerPanelEvent = false) => {\n setInternalPickerValue(nextPickerValue);\n\n onPickerValueChange?.(nextPickerValue);\n\n if (triggerPanelEvent) {\n triggerPanelChange(nextPickerValue);\n }\n };\n\n const triggerModeChange = (nextMode: PanelMode, viewDate?: DateType) => {\n setMergedMode(nextMode);\n\n if (viewDate) {\n setPickerValue(viewDate);\n }\n\n triggerPanelChange(viewDate, nextMode);\n };\n\n const onPanelValueSelect = (nextValue: DateType) => {\n onInternalSelect(nextValue);\n setPickerValue(nextValue);\n\n // Update mode if needed\n if (mergedMode !== picker) {\n const decadeYearQueue: PanelMode[] = ['decade', 'year'];\n const decadeYearMonthQueue: PanelMode[] = [...decadeYearQueue, 'month'];\n\n const pickerQueue: Partial<Record<PickerMode, PanelMode[]>> = {\n quarter: [...decadeYearQueue, 'quarter'],\n week: [...decadeYearMonthQueue, 'week'],\n date: [...decadeYearMonthQueue, 'date'],\n };\n\n const queue = pickerQueue[picker] || decadeYearMonthQueue;\n const index = queue.indexOf(mergedMode);\n const nextMode = queue[index + 1];\n\n if (nextMode) {\n triggerModeChange(nextMode, nextValue);\n }\n }\n };\n\n // ======================= Hover Date =======================\n const hoverRangeDate = React.useMemo<[DateType, DateType] | null>(() => {\n let start: DateType | null | undefined;\n let end: DateType | null | undefined;\n\n if (Array.isArray(hoverRangeValue)) {\n [start, end] = hoverRangeValue;\n } else {\n start = hoverRangeValue;\n }\n\n // Return for not exist\n if (!start && !end) {\n return null;\n }\n\n // Fill if has empty\n start = start || end;\n end = end || start;\n\n return generateConfig.isAfter(start!, end!) ? [end!, start!] : [start!, end!];\n }, [hoverRangeValue, generateConfig]);\n\n // ======================= Components =======================\n // >>> cellRender\n const onInternalCellRender = useCellRender(cellRender, dateRender, monthCellRender);\n\n // ======================= Components =======================\n const PanelComponent = (components[internalMode] ||\n DefaultComponents[internalMode] ||\n DatePanel) as typeof DatePanel;\n\n // ======================== Context =========================\n const sharedPanelContext = React.useMemo(\n () => ({\n classNames: pickerClassNames?.popup ?? panelClassNames ?? {},\n styles: pickerStyles?.popup ?? panelStyles ?? {},\n }),\n [pickerClassNames, panelClassNames, pickerStyles, panelStyles],\n );\n\n const parentHackContext = React.use(PickerHackContext);\n const pickerPanelContext = React.useMemo(\n () => ({\n ...parentHackContext,\n hideHeader,\n }),\n [parentHackContext, hideHeader],\n );\n\n // ======================== Warnings ========================\n if (process.env.NODE_ENV !== 'production') {\n warning(\n !mergedValue || mergedValue.every((val) => generateConfig.isValidate(val)),\n 'Invalidate date pass to `value` or `defaultValue`.',\n );\n }\n\n // ========================= Render =========================\n const panelCls = `${mergedPrefixCls}-panel`;\n\n const panelProps = pickProps(props, [\n // Week\n 'showWeek',\n\n // Icons\n 'prevIcon',\n 'nextIcon',\n 'superPrevIcon',\n 'superNextIcon',\n\n // Disabled\n 'disabledDate',\n 'minDate',\n 'maxDate',\n\n // Hover\n 'onHover',\n ]);\n\n return (\n <SharedPanelContext value={sharedPanelContext}>\n <PickerHackContext value={pickerPanelContext}>\n <div\n className={clsx(panelCls, { [`${panelCls}-rtl`]: direction === 'rtl' })}\n ref={rootRef}\n tabIndex={tabIndex}\n >\n <PanelComponent\n {...panelProps}\n // Time\n hoverRangeValue={hoverRangeDate}\n hoverValue={hoverValue}\n value={mergedValue[0]}\n onSelect={onPanelValueSelect}\n onPickerValueChange={(nextPickerValue) => {\n setPickerValue(nextPickerValue, true);\n }}\n generateConfig={generateConfig}\n // Mode\n onModeChange={triggerModeChange}\n locale={filledLocale}\n // Value\n pickerValue={mergedPickerValue!}\n // Hover\n showTime={mergedShowTime}\n // MISC\n prefixCls={mergedPrefixCls}\n values={mergedValue}\n // Render\n cellRender={onInternalCellRender}\n />\n </div>\n </PickerHackContext>\n </SharedPanelContext>\n );\n}\n\nconst RefPanelPicker = React.memo(React.forwardRef(PickerPanel));\n\nif (process.env.NODE_ENV !== 'production') {\n RefPanelPicker.displayName = 'PanelPicker';\n}\n\n// Make support generic\nexport default RefPanelPicker as <DateType extends object = any>(\n props: PickerPanelProps<DateType> & React.RefAttributes<PickerPanelRef>,\n) => React.ReactElement;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMotionComponent } from "../../MotionProvider/index.mjs";
|
|
3
|
+
import { placementMap } from "../../utils/placement.mjs";
|
|
4
|
+
import { PopoverPortal, PopoverPositioner } from "../../Popover/atoms.mjs";
|
|
5
|
+
import PickerContext from "./PickerInput/context.mjs";
|
|
6
|
+
import { getRealPlacement } from "./utils/uiUtil.mjs";
|
|
7
|
+
import { use, useLayoutEffect, useState } from "react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import clsx$1 from "clsx";
|
|
10
|
+
import { AnimatePresence } from "motion/react";
|
|
11
|
+
import { Popover } from "@base-ui/react/popover";
|
|
12
|
+
//#region src/DatePicker/core/PickerPopup.tsx
|
|
13
|
+
const ease = [
|
|
14
|
+
.22,
|
|
15
|
+
1,
|
|
16
|
+
.36,
|
|
17
|
+
1
|
|
18
|
+
];
|
|
19
|
+
const motionProps = (side) => {
|
|
20
|
+
const hidden = {
|
|
21
|
+
opacity: 0,
|
|
22
|
+
scale: .98,
|
|
23
|
+
y: side === "top" ? 4 : -4
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
animate: {
|
|
27
|
+
opacity: 1,
|
|
28
|
+
scale: 1,
|
|
29
|
+
y: 0
|
|
30
|
+
},
|
|
31
|
+
exit: {
|
|
32
|
+
...hidden,
|
|
33
|
+
transition: {
|
|
34
|
+
duration: .1,
|
|
35
|
+
ease
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
initial: hidden,
|
|
39
|
+
transition: {
|
|
40
|
+
duration: .15,
|
|
41
|
+
ease
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
const PickerPopup = ({ children, direction, getAnchor, getPopupContainer, inline, onClose, placement, popupClassName, popupElement, popupStyle, range, visible }) => {
|
|
46
|
+
const { prefixCls } = use(PickerContext);
|
|
47
|
+
const Motion = useMotionComponent();
|
|
48
|
+
const dropdownPrefixCls = `${prefixCls}-dropdown`;
|
|
49
|
+
const [mounted, setMounted] = useState(visible);
|
|
50
|
+
if (visible && !mounted) setMounted(true);
|
|
51
|
+
if (inline && !visible && mounted) setMounted(false);
|
|
52
|
+
const rtl = direction === "rtl";
|
|
53
|
+
const { align, side } = placementMap[getRealPlacement(placement, rtl)];
|
|
54
|
+
const anchor = () => getAnchor() ?? null;
|
|
55
|
+
const [container, setContainer] = useState(null);
|
|
56
|
+
useLayoutEffect(() => {
|
|
57
|
+
if (!mounted) return;
|
|
58
|
+
const element = getAnchor();
|
|
59
|
+
setContainer(element instanceof HTMLElement && getPopupContainer ? getPopupContainer(element) : element?.ownerDocument.body ?? null);
|
|
60
|
+
}, [
|
|
61
|
+
mounted,
|
|
62
|
+
getAnchor,
|
|
63
|
+
getPopupContainer
|
|
64
|
+
]);
|
|
65
|
+
return /* @__PURE__ */ jsxs(Popover.Root, {
|
|
66
|
+
modal: false,
|
|
67
|
+
open: mounted,
|
|
68
|
+
onOpenChange: (open, details) => {
|
|
69
|
+
if (open) return;
|
|
70
|
+
const target = details.event?.target;
|
|
71
|
+
if (details.reason === "outside-press" && target instanceof Node && getAnchor()?.contains(target)) {
|
|
72
|
+
details.cancel();
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
onClose();
|
|
76
|
+
},
|
|
77
|
+
children: [children, mounted && container && /* @__PURE__ */ jsx(PopoverPortal, {
|
|
78
|
+
container,
|
|
79
|
+
children: /* @__PURE__ */ jsx(PopoverPositioner, {
|
|
80
|
+
align,
|
|
81
|
+
anchor,
|
|
82
|
+
side,
|
|
83
|
+
sideOffset: 4,
|
|
84
|
+
collisionAvoidance: inline ? {
|
|
85
|
+
align: "none",
|
|
86
|
+
fallbackAxisSide: "none",
|
|
87
|
+
side: "none"
|
|
88
|
+
} : {
|
|
89
|
+
align: "shift",
|
|
90
|
+
fallbackAxisSide: "none",
|
|
91
|
+
side: "flip"
|
|
92
|
+
},
|
|
93
|
+
...inline && { style: { zIndex: "auto" } },
|
|
94
|
+
children: /* @__PURE__ */ jsx(Popover.Popup, {
|
|
95
|
+
finalFocus: false,
|
|
96
|
+
initialFocus: false,
|
|
97
|
+
style: {
|
|
98
|
+
minWidth: "var(--anchor-width)",
|
|
99
|
+
...popupStyle
|
|
100
|
+
},
|
|
101
|
+
className: clsx$1(dropdownPrefixCls, range && `${dropdownPrefixCls}-range`, rtl && `${dropdownPrefixCls}-rtl`, popupClassName),
|
|
102
|
+
children: inline ? visible && popupElement : /* @__PURE__ */ jsx(AnimatePresence, {
|
|
103
|
+
onExitComplete: () => setMounted(false),
|
|
104
|
+
children: visible ? /* @__PURE__ */ jsx(Motion.div, {
|
|
105
|
+
style: { transformOrigin: "var(--transform-origin)" },
|
|
106
|
+
...motionProps(side === "top" ? "top" : "bottom"),
|
|
107
|
+
children: popupElement
|
|
108
|
+
}, "picker-popup") : null
|
|
109
|
+
})
|
|
110
|
+
})
|
|
111
|
+
})
|
|
112
|
+
})]
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
//#endregion
|
|
116
|
+
export { PickerPopup as default };
|
|
117
|
+
|
|
118
|
+
//# sourceMappingURL=PickerPopup.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PickerPopup.mjs","names":["BasePopover","clsx"],"sources":["../../../src/DatePicker/core/PickerPopup.tsx"],"sourcesContent":["'use client';\n\nimport { Popover as BasePopover } from '@base-ui/react/popover';\nimport clsx from 'clsx';\nimport { AnimatePresence, type MotionProps } from 'motion/react';\nimport {\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n use,\n useLayoutEffect,\n useState,\n} from 'react';\n\nimport { useMotionComponent } from '@/MotionProvider';\nimport { PopoverPortal, PopoverPositioner } from '@/Popover/atoms';\nimport { placementMap } from '@/utils/placement';\n\nimport PickerContext from './PickerInput/context';\nimport { getRealPlacement } from './utils/uiUtil';\n\nconst ease = [0.22, 1, 0.36, 1] as const;\n\nconst motionProps = (side: 'top' | 'bottom'): MotionProps => {\n const hidden = { opacity: 0, scale: 0.98, y: side === 'top' ? 4 : -4 };\n return {\n animate: { opacity: 1, scale: 1, y: 0 },\n exit: { ...hidden, transition: { duration: 0.1, ease } },\n initial: hidden,\n transition: { duration: 0.15, ease },\n };\n};\n\nexport interface PickerPopupProps {\n children: ReactElement;\n direction?: 'ltr' | 'rtl';\n getAnchor: () => Element | null | undefined;\n getPopupContainer?: (node: HTMLElement) => HTMLElement;\n inline?: boolean;\n onClose: () => void;\n placement?: string;\n popupClassName?: string;\n popupElement: ReactNode;\n popupStyle?: CSSProperties;\n range?: boolean;\n visible: boolean;\n}\n\n// The input keeps focus while the popup is open: the popup never takes it, and a press on the\n// input is not an outside press.\nconst PickerPopup = ({\n children,\n direction,\n getAnchor,\n getPopupContainer,\n inline,\n onClose,\n placement,\n popupClassName,\n popupElement,\n popupStyle,\n range,\n visible,\n}: PickerPopupProps) => {\n const { prefixCls } = use(PickerContext);\n const Motion = useMotionComponent();\n const dropdownPrefixCls = `${prefixCls}-dropdown`;\n\n // Stays true through the exit animation, so Base UI keeps the popup mounted until Motion is done.\n const [mounted, setMounted] = useState(visible);\n if (visible && !mounted) setMounted(true);\n if (inline && !visible && mounted) setMounted(false);\n\n const rtl = direction === 'rtl';\n const { align, side } =\n placementMap[getRealPlacement(placement, rtl) as keyof typeof placementMap];\n const anchor = () => getAnchor() ?? null;\n const [container, setContainer] = useState<HTMLElement | null>(null);\n\n useLayoutEffect(() => {\n if (!mounted) return;\n const element = getAnchor();\n setContainer(\n element instanceof HTMLElement && getPopupContainer\n ? getPopupContainer(element)\n : (element?.ownerDocument.body ?? null),\n );\n }, [mounted, getAnchor, getPopupContainer]);\n\n return (\n <BasePopover.Root\n modal={false}\n open={mounted}\n onOpenChange={(open, details) => {\n if (open) return;\n const target = details.event?.target;\n if (\n details.reason === 'outside-press' &&\n target instanceof Node &&\n getAnchor()?.contains(target)\n ) {\n details.cancel();\n return;\n }\n onClose();\n }}\n >\n {children}\n {mounted && container && (\n <PopoverPortal container={container}>\n <PopoverPositioner\n align={align}\n anchor={anchor}\n side={side}\n sideOffset={4}\n collisionAvoidance={\n inline\n ? { align: 'none', fallbackAxisSide: 'none', side: 'none' }\n : { align: 'shift', fallbackAxisSide: 'none', side: 'flip' }\n }\n {...(inline && { style: { zIndex: 'auto' } })}\n >\n <BasePopover.Popup\n finalFocus={false}\n initialFocus={false}\n style={{ minWidth: 'var(--anchor-width)', ...popupStyle }}\n className={clsx(\n dropdownPrefixCls,\n range && `${dropdownPrefixCls}-range`,\n rtl && `${dropdownPrefixCls}-rtl`,\n popupClassName,\n )}\n >\n {inline ? (\n visible && popupElement\n ) : (\n <AnimatePresence onExitComplete={() => setMounted(false)}>\n {visible ? (\n <Motion.div\n key=\"picker-popup\"\n style={{ transformOrigin: 'var(--transform-origin)' }}\n {...motionProps(side === 'top' ? 'top' : 'bottom')}\n >\n {popupElement}\n </Motion.div>\n ) : null}\n </AnimatePresence>\n )}\n </BasePopover.Popup>\n </PopoverPositioner>\n </PopoverPortal>\n )}\n </BasePopover.Root>\n );\n};\n\nexport default PickerPopup;\n"],"mappings":";;;;;;;;;;;;AAqBA,MAAM,OAAO;CAAC;CAAM;CAAG;CAAM;AAAC;AAE9B,MAAM,eAAe,SAAwC;CAC3D,MAAM,SAAS;EAAE,SAAS;EAAG,OAAO;EAAM,GAAG,SAAS,QAAQ,IAAI;CAAG;CACrE,OAAO;EACL,SAAS;GAAE,SAAS;GAAG,OAAO;GAAG,GAAG;EAAE;EACtC,MAAM;GAAE,GAAG;GAAQ,YAAY;IAAE,UAAU;IAAK;GAAK;EAAE;EACvD,SAAS;EACT,YAAY;GAAE,UAAU;GAAM;EAAK;CACrC;AACF;AAmBA,MAAM,eAAe,EACnB,UACA,WACA,WACA,mBACA,QACA,SACA,WACA,gBACA,cACA,YACA,OACA,cACsB;CACtB,MAAM,EAAE,cAAc,IAAI,aAAa;CACvC,MAAM,SAAS,mBAAmB;CAClC,MAAM,oBAAoB,GAAG,UAAU;CAGvC,MAAM,CAAC,SAAS,cAAc,SAAS,OAAO;CAC9C,IAAI,WAAW,CAAC,SAAS,WAAW,IAAI;CACxC,IAAI,UAAU,CAAC,WAAW,SAAS,WAAW,KAAK;CAEnD,MAAM,MAAM,cAAc;CAC1B,MAAM,EAAE,OAAO,SACb,aAAa,iBAAiB,WAAW,GAAG;CAC9C,MAAM,eAAe,UAAU,KAAK;CACpC,MAAM,CAAC,WAAW,gBAAgB,SAA6B,IAAI;CAEnE,sBAAsB;EACpB,IAAI,CAAC,SAAS;EACd,MAAM,UAAU,UAAU;EAC1B,aACE,mBAAmB,eAAe,oBAC9B,kBAAkB,OAAO,IACxB,SAAS,cAAc,QAAQ,IACtC;CACF,GAAG;EAAC;EAAS;EAAW;CAAiB,CAAC;CAE1C,OACE,qBAACA,QAAY,MAAb;EACE,OAAO;EACP,MAAM;EACN,eAAe,MAAM,YAAY;GAC/B,IAAI,MAAM;GACV,MAAM,SAAS,QAAQ,OAAO;GAC9B,IACE,QAAQ,WAAW,mBACnB,kBAAkB,QAClB,UAAU,CAAC,EAAE,SAAS,MAAM,GAC5B;IACA,QAAQ,OAAO;IACf;GACF;GACA,QAAQ;EACV;EAfF,UAAA,CAiBG,UACA,WAAW,aACV,oBAAC,eAAD;GAA0B;GACxB,UAAA,oBAAC,mBAAD;IACS;IACC;IACF;IACN,YAAY;IACZ,oBACE,SACI;KAAE,OAAO;KAAQ,kBAAkB;KAAQ,MAAM;IAAO,IACxD;KAAE,OAAO;KAAS,kBAAkB;KAAQ,MAAM;IAAO;IAE/D,GAAK,UAAU,EAAE,OAAO,EAAE,QAAQ,OAAO,EAAE;IAE3C,UAAA,oBAACA,QAAY,OAAb;KACE,YAAY;KACZ,cAAc;KACd,OAAO;MAAE,UAAU;MAAuB,GAAG;KAAW;KACxD,WAAWC,OACT,mBACA,SAAS,GAAG,kBAAkB,SAC9B,OAAO,GAAG,kBAAkB,OAC5B,cACF;KAEC,UAAA,SACC,WAAW,eAEX,oBAAC,iBAAD;MAAiB,sBAAsB,WAAW,KAAK;MACpD,UAAA,UACC,oBAAC,OAAO,KAAR;OAEE,OAAO,EAAE,iBAAiB,0BAA0B;OACpD,GAAI,YAAY,SAAS,QAAQ,QAAQ,QAAQ;OAEhD,UAAA;MACS,GALN,cAKM,IACV;KACW,CAAA;IAEF,CAAA;GACF,CAAA;EACN,CAAA,CAED;;AAEtB"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import dayjs from "dayjs";
|
|
2
|
+
import advancedFormat from "dayjs/plugin/advancedFormat.js";
|
|
3
|
+
import customParseFormat from "dayjs/plugin/customParseFormat.js";
|
|
4
|
+
import localeData from "dayjs/plugin/localeData.js";
|
|
5
|
+
import weekday from "dayjs/plugin/weekday.js";
|
|
6
|
+
import weekOfYear from "dayjs/plugin/weekOfYear.js";
|
|
7
|
+
import weekYear from "dayjs/plugin/weekYear.js";
|
|
8
|
+
//#region src/DatePicker/core/generate/dayjs.ts
|
|
9
|
+
dayjs.extend(customParseFormat);
|
|
10
|
+
dayjs.extend(advancedFormat);
|
|
11
|
+
dayjs.extend(weekday);
|
|
12
|
+
dayjs.extend(localeData);
|
|
13
|
+
dayjs.extend(weekOfYear);
|
|
14
|
+
dayjs.extend(weekYear);
|
|
15
|
+
dayjs.extend((o, c) => {
|
|
16
|
+
const proto = c.prototype;
|
|
17
|
+
const oldFormat = proto.format;
|
|
18
|
+
proto.format = function f(formatStr) {
|
|
19
|
+
const str = (formatStr || "").replace("Wo", "wo");
|
|
20
|
+
return oldFormat.bind(this)(str);
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
const localeMap = {
|
|
24
|
+
bn_BD: "bn-bd",
|
|
25
|
+
by_BY: "be",
|
|
26
|
+
en_GB: "en-gb",
|
|
27
|
+
en_US: "en",
|
|
28
|
+
fr_BE: "fr",
|
|
29
|
+
fr_CA: "fr-ca",
|
|
30
|
+
hy_AM: "hy-am",
|
|
31
|
+
kmr_IQ: "ku",
|
|
32
|
+
nl_BE: "nl-be",
|
|
33
|
+
pt_BR: "pt-br",
|
|
34
|
+
zh_CN: "zh-cn",
|
|
35
|
+
zh_HK: "zh-hk",
|
|
36
|
+
zh_TW: "zh-tw"
|
|
37
|
+
};
|
|
38
|
+
const parseLocale = (locale) => {
|
|
39
|
+
return localeMap[locale] || locale.split("_")[0];
|
|
40
|
+
};
|
|
41
|
+
const getUDayjs = (value) => {
|
|
42
|
+
if (!dayjs.isDayjs(value) || value instanceof dayjs) return value;
|
|
43
|
+
return dayjs(value.valueOf());
|
|
44
|
+
};
|
|
45
|
+
const generateConfig = {
|
|
46
|
+
getNow: () => {
|
|
47
|
+
const now = dayjs();
|
|
48
|
+
if (typeof now.tz === "function") return now.tz();
|
|
49
|
+
return now;
|
|
50
|
+
},
|
|
51
|
+
getFixedDate: (string) => dayjs(string, ["YYYY-M-DD", "YYYY-MM-DD"]),
|
|
52
|
+
getEndDate: (date) => getUDayjs(date).endOf("month"),
|
|
53
|
+
getWeekDay: (date) => {
|
|
54
|
+
const clone = getUDayjs(date).locale("en");
|
|
55
|
+
return clone.weekday() + clone.localeData().firstDayOfWeek();
|
|
56
|
+
},
|
|
57
|
+
getYear: (date) => getUDayjs(date).year(),
|
|
58
|
+
getMonth: (date) => getUDayjs(date).month(),
|
|
59
|
+
getDate: (date) => getUDayjs(date).date(),
|
|
60
|
+
getHour: (date) => getUDayjs(date).hour(),
|
|
61
|
+
getMinute: (date) => getUDayjs(date).minute(),
|
|
62
|
+
getSecond: (date) => getUDayjs(date).second(),
|
|
63
|
+
getMillisecond: (date) => getUDayjs(date).millisecond(),
|
|
64
|
+
addYear: (date, diff) => getUDayjs(date).add(diff, "year"),
|
|
65
|
+
addMonth: (date, diff) => getUDayjs(date).add(diff, "month"),
|
|
66
|
+
addDate: (date, diff) => getUDayjs(date).add(diff, "day"),
|
|
67
|
+
setYear: (date, year) => getUDayjs(date).year(year),
|
|
68
|
+
setMonth: (date, month) => getUDayjs(date).month(month),
|
|
69
|
+
setDate: (date, num) => getUDayjs(date).date(num),
|
|
70
|
+
setHour: (date, hour) => getUDayjs(date).hour(hour),
|
|
71
|
+
setMinute: (date, minute) => getUDayjs(date).minute(minute),
|
|
72
|
+
setSecond: (date, second) => getUDayjs(date).second(second),
|
|
73
|
+
setMillisecond: (date, milliseconds) => getUDayjs(date).millisecond(milliseconds),
|
|
74
|
+
isAfter: (date1, date2) => getUDayjs(date1).isAfter(getUDayjs(date2)),
|
|
75
|
+
isValidate: (date) => getUDayjs(date).isValid(),
|
|
76
|
+
locale: {
|
|
77
|
+
getWeekFirstDay: (locale) => dayjs().locale(parseLocale(locale)).localeData().firstDayOfWeek(),
|
|
78
|
+
getWeekFirstDate: (locale, date) => getUDayjs(date).locale(parseLocale(locale)).weekday(0),
|
|
79
|
+
getWeek: (locale, date) => getUDayjs(date).locale(parseLocale(locale)).week(),
|
|
80
|
+
getShortWeekDays: (locale) => dayjs().locale(parseLocale(locale)).localeData().weekdaysMin(),
|
|
81
|
+
getShortMonths: (locale) => dayjs().locale(parseLocale(locale)).localeData().monthsShort(),
|
|
82
|
+
format: (locale, date, format) => getUDayjs(date).locale(parseLocale(locale)).format(format),
|
|
83
|
+
parse: (locale, text, formats) => {
|
|
84
|
+
const localeStr = parseLocale(locale);
|
|
85
|
+
for (let i = 0; i < formats.length; i += 1) {
|
|
86
|
+
const format = formats[i];
|
|
87
|
+
const formatText = text;
|
|
88
|
+
if (format.includes("wo") || format.includes("Wo")) {
|
|
89
|
+
const year = formatText.split("-")[0];
|
|
90
|
+
const weekStr = formatText.split("-")[1];
|
|
91
|
+
const firstWeek = dayjs(year, "YYYY").startOf("year").locale(localeStr);
|
|
92
|
+
for (let j = 0; j <= 52; j += 1) {
|
|
93
|
+
const nextWeek = firstWeek.add(j, "week");
|
|
94
|
+
if (nextWeek.format("Wo") === weekStr) return nextWeek;
|
|
95
|
+
}
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
const date = dayjs(formatText, format, true).locale(localeStr);
|
|
99
|
+
if (date.isValid()) return date;
|
|
100
|
+
}
|
|
101
|
+
if (text) {}
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
//#endregion
|
|
107
|
+
export { generateConfig as default };
|
|
108
|
+
|
|
109
|
+
//# sourceMappingURL=dayjs.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dayjs.mjs","names":[],"sources":["../../../../src/DatePicker/core/generate/dayjs.ts"],"sourcesContent":["import type { Dayjs } from 'dayjs';\nimport dayjs from 'dayjs';\nimport advancedFormat from 'dayjs/plugin/advancedFormat.js';\nimport customParseFormat from 'dayjs/plugin/customParseFormat.js';\nimport localeData from 'dayjs/plugin/localeData.js';\nimport weekday from 'dayjs/plugin/weekday.js';\nimport weekOfYear from 'dayjs/plugin/weekOfYear.js';\nimport weekYear from 'dayjs/plugin/weekYear.js';\n\nimport type { GenerateConfig } from '.';\n\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(weekday);\ndayjs.extend(localeData);\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\n\ndayjs.extend((o, c) => {\n // todo support Wo (ISO week)\n const proto = c.prototype;\n const oldFormat = proto.format;\n proto.format = function f(formatStr: string) {\n const str = (formatStr || '').replace('Wo', 'wo');\n return oldFormat.bind(this)(str);\n };\n});\n\ntype IlocaleMapObject = Record<string, string>;\nconst localeMap: IlocaleMapObject = {\n // ar_EG:\n // az_AZ:\n // bg_BG:\n bn_BD: 'bn-bd',\n by_BY: 'be',\n // ca_ES:\n // cs_CZ:\n // da_DK:\n // de_DE:\n // el_GR:\n en_GB: 'en-gb',\n en_US: 'en',\n // es_ES:\n // et_EE:\n // fa_IR:\n // fi_FI:\n fr_BE: 'fr', // todo: dayjs has no fr_BE locale, use fr at present\n fr_CA: 'fr-ca',\n // fr_FR:\n // ga_IE:\n // gl_ES:\n // he_IL:\n // hi_IN:\n // hr_HR:\n // hu_HU:\n hy_AM: 'hy-am',\n // id_ID:\n // is_IS:\n // it_IT:\n // ja_JP:\n // ka_GE:\n // kk_KZ:\n // km_KH:\n kmr_IQ: 'ku',\n // kn_IN:\n // ko_KR:\n // ku_IQ: // previous ku in antd\n // lt_LT:\n // lv_LV:\n // mk_MK:\n // ml_IN:\n // mn_MN:\n // ms_MY:\n // nb_NO:\n // ne_NP:\n nl_BE: 'nl-be',\n // nl_NL:\n // pl_PL:\n pt_BR: 'pt-br',\n // pt_PT:\n // ro_RO:\n // ru_RU:\n // sk_SK:\n // sl_SI:\n // sr_RS:\n // sv_SE:\n // ta_IN:\n // th_TH:\n // tr_TR:\n // uk_UA:\n // ur_PK:\n // vi_VN:\n zh_CN: 'zh-cn',\n zh_HK: 'zh-hk',\n zh_TW: 'zh-tw',\n};\n\nconst parseLocale = (locale: string) => {\n const mapLocale = localeMap[locale];\n return mapLocale || locale.split('_')[0];\n};\n\n/* istanbul ignore next */\nconst parseNoMatchNotice = () => {\n // zombieJ:\n // When user typing, its always miss match format.\n // This check is meaningless.\n // https://github.com/ant-design/ant-design/issues/51839\n // noteOnce(false, 'Not match any format. Please help to fire a issue about this.');\n};\n\n// Use internal dayjs instance to avoid implicit dependency on plugins extended by external dayjs versions\nconst getUDayjs = (value: Dayjs): Dayjs => {\n if (!dayjs.isDayjs(value) || value instanceof dayjs) {\n return value;\n }\n\n return dayjs(value.valueOf());\n};\n\nconst generateConfig: GenerateConfig<Dayjs> = {\n // get\n getNow: () => {\n const now: Dayjs & { tz?: () => Dayjs } = dayjs();\n // https://github.com/ant-design/ant-design/discussions/50934\n if (typeof now.tz === 'function') {\n return now.tz(); // use default timezone\n }\n return now;\n },\n getFixedDate: (string) => dayjs(string, ['YYYY-M-DD', 'YYYY-MM-DD']),\n getEndDate: (date) => getUDayjs(date).endOf('month'),\n getWeekDay: (date) => {\n const clone = getUDayjs(date).locale('en');\n return clone.weekday() + clone.localeData().firstDayOfWeek();\n },\n getYear: (date) => getUDayjs(date).year(),\n getMonth: (date) => getUDayjs(date).month(),\n getDate: (date) => getUDayjs(date).date(),\n getHour: (date) => getUDayjs(date).hour(),\n getMinute: (date) => getUDayjs(date).minute(),\n getSecond: (date) => getUDayjs(date).second(),\n getMillisecond: (date) => getUDayjs(date).millisecond(),\n\n // set\n addYear: (date, diff) => getUDayjs(date).add(diff, 'year'),\n addMonth: (date, diff) => getUDayjs(date).add(diff, 'month'),\n addDate: (date, diff) => getUDayjs(date).add(diff, 'day'),\n setYear: (date, year) => getUDayjs(date).year(year),\n setMonth: (date, month) => getUDayjs(date).month(month),\n setDate: (date, num) => getUDayjs(date).date(num),\n setHour: (date, hour) => getUDayjs(date).hour(hour),\n setMinute: (date, minute) => getUDayjs(date).minute(minute),\n setSecond: (date, second) => getUDayjs(date).second(second),\n setMillisecond: (date, milliseconds) => getUDayjs(date).millisecond(milliseconds),\n\n // Compare\n isAfter: (date1, date2) => getUDayjs(date1).isAfter(getUDayjs(date2)),\n isValidate: (date) => getUDayjs(date).isValid(),\n\n locale: {\n getWeekFirstDay: (locale) => dayjs().locale(parseLocale(locale)).localeData().firstDayOfWeek(),\n getWeekFirstDate: (locale, date) => getUDayjs(date).locale(parseLocale(locale)).weekday(0),\n getWeek: (locale, date) => getUDayjs(date).locale(parseLocale(locale)).week(),\n getShortWeekDays: (locale) => dayjs().locale(parseLocale(locale)).localeData().weekdaysMin(),\n getShortMonths: (locale) => dayjs().locale(parseLocale(locale)).localeData().monthsShort(),\n format: (locale, date, format) => getUDayjs(date).locale(parseLocale(locale)).format(format),\n parse: (locale, text, formats) => {\n const localeStr = parseLocale(locale);\n for (let i = 0; i < formats.length; i += 1) {\n const format = formats[i];\n const formatText = text;\n if (format.includes('wo') || format.includes('Wo')) {\n // parse Wo\n const year = formatText.split('-')[0];\n const weekStr = formatText.split('-')[1];\n const firstWeek = dayjs(year, 'YYYY').startOf('year').locale(localeStr);\n for (let j = 0; j <= 52; j += 1) {\n const nextWeek = firstWeek.add(j, 'week');\n if (nextWeek.format('Wo') === weekStr) {\n return nextWeek;\n }\n }\n parseNoMatchNotice();\n return null;\n }\n const date = dayjs(formatText, format, true).locale(localeStr);\n if (date.isValid()) {\n return date;\n }\n }\n\n if (text) {\n parseNoMatchNotice();\n }\n return null;\n },\n },\n};\n\nexport default generateConfig;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
//#region src/DatePicker/core/generate/index.d.ts
|
|
2
|
+
export type GenerateConfig<DateType> = {
|
|
3
|
+
getWeekDay: (value: DateType) => number;
|
|
4
|
+
getMillisecond: (value: DateType) => number;
|
|
5
|
+
getSecond: (value: DateType) => number;
|
|
6
|
+
getMinute: (value: DateType) => number;
|
|
7
|
+
getHour: (value: DateType) => number;
|
|
8
|
+
getDate: (value: DateType) => number;
|
|
9
|
+
getMonth: (value: DateType) => number;
|
|
10
|
+
getYear: (value: DateType) => number;
|
|
11
|
+
getNow: () => DateType;
|
|
12
|
+
getFixedDate: (fixed: string) => DateType;
|
|
13
|
+
getEndDate: (value: DateType) => DateType;
|
|
14
|
+
addYear: (value: DateType, diff: number) => DateType;
|
|
15
|
+
addMonth: (value: DateType, diff: number) => DateType;
|
|
16
|
+
addDate: (value: DateType, diff: number) => DateType;
|
|
17
|
+
setYear: (value: DateType, year: number) => DateType;
|
|
18
|
+
setMonth: (value: DateType, month: number) => DateType;
|
|
19
|
+
setDate: (value: DateType, date: number) => DateType;
|
|
20
|
+
setHour: (value: DateType, hour: number) => DateType;
|
|
21
|
+
setMinute: (value: DateType, minute: number) => DateType;
|
|
22
|
+
setSecond: (value: DateType, second: number) => DateType;
|
|
23
|
+
setMillisecond: (value: DateType, millisecond: number) => DateType;
|
|
24
|
+
isAfter: (date1: DateType, date2: DateType) => boolean;
|
|
25
|
+
isValidate: (date: DateType) => boolean;
|
|
26
|
+
locale: {
|
|
27
|
+
getWeekFirstDay: (locale: string) => number;
|
|
28
|
+
getWeekFirstDate: (locale: string, value: DateType) => DateType;
|
|
29
|
+
getWeek: (locale: string, value: DateType) => number;
|
|
30
|
+
format: (locale: string, date: DateType, format: string) => string;
|
|
31
|
+
/** Should only return validate date instance */
|
|
32
|
+
parse: (locale: string, text: string, formats: string[]) => DateType | null;
|
|
33
|
+
/** A proxy for getting locale with moment or other locale library */
|
|
34
|
+
getShortWeekDays?: (locale: string) => string[];
|
|
35
|
+
/** A proxy for getting locale with moment or other locale library */
|
|
36
|
+
getShortMonths?: (locale: string) => string[];
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
//#endregion
|
|
40
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { useCallback, useInsertionEffect, useLayoutEffect, useReducer, useRef, useState } from "react";
|
|
2
|
+
//#region src/DatePicker/core/hooks/react.ts
|
|
3
|
+
const useEvent = (callback) => {
|
|
4
|
+
const callbackRef = useRef(callback);
|
|
5
|
+
useInsertionEffect(() => {
|
|
6
|
+
callbackRef.current = callback;
|
|
7
|
+
});
|
|
8
|
+
return useCallback((...args) => callbackRef.current?.(...args), []);
|
|
9
|
+
};
|
|
10
|
+
const useLayoutEffect$1 = (callback, deps) => {
|
|
11
|
+
const firstMountRef = useRef(true);
|
|
12
|
+
useLayoutEffect(() => callback(firstMountRef.current), deps);
|
|
13
|
+
useLayoutEffect(() => {
|
|
14
|
+
firstMountRef.current = false;
|
|
15
|
+
return () => {
|
|
16
|
+
firstMountRef.current = true;
|
|
17
|
+
};
|
|
18
|
+
}, []);
|
|
19
|
+
};
|
|
20
|
+
const useLayoutUpdateEffect = (callback, deps) => {
|
|
21
|
+
useLayoutEffect$1((firstMount) => {
|
|
22
|
+
if (!firstMount) return callback();
|
|
23
|
+
}, deps);
|
|
24
|
+
};
|
|
25
|
+
const useControlledState = (defaultStateValue, value) => {
|
|
26
|
+
const [innerValue, setInnerValue] = useState(defaultStateValue);
|
|
27
|
+
const mergedValue = value === void 0 ? innerValue : value;
|
|
28
|
+
useLayoutEffect$1((firstMount) => {
|
|
29
|
+
if (!firstMount) setInnerValue(value);
|
|
30
|
+
}, [value]);
|
|
31
|
+
return [mergedValue, setInnerValue];
|
|
32
|
+
};
|
|
33
|
+
const useLatestState = (defaultValue) => {
|
|
34
|
+
const [, forceUpdate] = useReducer((count) => count + 1, 0);
|
|
35
|
+
const valueRef = useRef(defaultValue);
|
|
36
|
+
return [useEvent(() => valueRef.current), useEvent((next) => {
|
|
37
|
+
valueRef.current = typeof next === "function" ? next(valueRef.current) : next;
|
|
38
|
+
forceUpdate();
|
|
39
|
+
})];
|
|
40
|
+
};
|
|
41
|
+
const useResizeObserver = (ref, onResize, enabled = true) => {
|
|
42
|
+
const handleResize = useEvent(onResize);
|
|
43
|
+
useLayoutEffect(() => {
|
|
44
|
+
const element = ref.current;
|
|
45
|
+
if (!enabled || !element || typeof ResizeObserver === "undefined") return;
|
|
46
|
+
const observer = new ResizeObserver(() => handleResize(element));
|
|
47
|
+
observer.observe(element);
|
|
48
|
+
return () => observer.disconnect();
|
|
49
|
+
}, [
|
|
50
|
+
enabled,
|
|
51
|
+
handleResize,
|
|
52
|
+
ref
|
|
53
|
+
]);
|
|
54
|
+
};
|
|
55
|
+
//#endregion
|
|
56
|
+
export { useControlledState, useEvent, useLatestState, useLayoutEffect$1 as useLayoutEffect, useLayoutUpdateEffect, useResizeObserver };
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=react.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.mjs","names":["useLayoutEffect"],"sources":["../../../../src/DatePicker/core/hooks/react.ts"],"sourcesContent":["import {\n type DependencyList,\n type RefObject,\n type SetStateAction,\n useCallback,\n useInsertionEffect,\n useLayoutEffect as useReactLayoutEffect,\n useReducer,\n useRef,\n useState,\n} from 'react';\n\nexport const useEvent = <T extends (...args: any[]) => any>(callback: T): T => {\n const callbackRef = useRef(callback);\n useInsertionEffect(() => {\n callbackRef.current = callback;\n });\n return useCallback((...args: Parameters<T>) => callbackRef.current?.(...args), []) as T;\n};\n\nexport const useLayoutEffect = (\n callback: (firstMount: boolean) => void | (() => void),\n deps?: DependencyList,\n) => {\n const firstMountRef = useRef(true);\n\n useReactLayoutEffect(() => callback(firstMountRef.current), deps);\n\n useReactLayoutEffect(() => {\n firstMountRef.current = false;\n return () => {\n firstMountRef.current = true;\n };\n }, []);\n};\n\nexport const useLayoutUpdateEffect = (\n callback: () => void | (() => void),\n deps?: DependencyList,\n) => {\n useLayoutEffect((firstMount) => {\n if (!firstMount) return callback();\n }, deps);\n};\n\nexport const useControlledState = <T>(\n defaultStateValue: T | (() => T),\n value?: T,\n): [T, (next: SetStateAction<T>) => void] => {\n const [innerValue, setInnerValue] = useState(defaultStateValue);\n const mergedValue = value === undefined ? innerValue : value;\n\n useLayoutEffect(\n (firstMount) => {\n if (!firstMount) setInnerValue(value as T);\n },\n [value],\n );\n\n return [mergedValue, setInnerValue];\n};\n\nexport const useLatestState = <T>(\n defaultValue: T,\n): [() => T, (next: T | ((prev: T) => T)) => void] => {\n const [, forceUpdate] = useReducer((count: number) => count + 1, 0);\n const valueRef = useRef(defaultValue);\n const getValue = useEvent(() => valueRef.current);\n const setValue = useEvent((next: T | ((prev: T) => T)) => {\n valueRef.current =\n typeof next === 'function' ? (next as (prev: T) => T)(valueRef.current) : next;\n forceUpdate();\n });\n return [getValue, setValue];\n};\n\nexport const useResizeObserver = (\n ref: RefObject<HTMLElement | null>,\n onResize: (element: HTMLElement) => void,\n enabled = true,\n) => {\n const handleResize = useEvent(onResize);\n\n useReactLayoutEffect(() => {\n const element = ref.current;\n if (!enabled || !element || typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(() => handleResize(element));\n observer.observe(element);\n return () => observer.disconnect();\n }, [enabled, handleResize, ref]);\n};\n"],"mappings":";;AAYA,MAAa,YAA+C,aAAmB;CAC7E,MAAM,cAAc,OAAO,QAAQ;CACnC,yBAAyB;EACvB,YAAY,UAAU;CACxB,CAAC;CACD,OAAO,aAAa,GAAG,SAAwB,YAAY,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC;AACnF;AAEA,MAAaA,qBACX,UACA,SACG;CACH,MAAM,gBAAgB,OAAO,IAAI;CAEjC,sBAA2B,SAAS,cAAc,OAAO,GAAG,IAAI;CAEhE,sBAA2B;EACzB,cAAc,UAAU;EACxB,aAAa;GACX,cAAc,UAAU;EAC1B;CACF,GAAG,CAAC,CAAC;AACP;AAEA,MAAa,yBACX,UACA,SACG;CACH,mBAAiB,eAAe;EAC9B,IAAI,CAAC,YAAY,OAAO,SAAS;CACnC,GAAG,IAAI;AACT;AAEA,MAAa,sBACX,mBACA,UAC2C;CAC3C,MAAM,CAAC,YAAY,iBAAiB,SAAS,iBAAiB;CAC9D,MAAM,cAAc,UAAU,KAAA,IAAY,aAAa;CAEvD,mBACG,eAAe;EACd,IAAI,CAAC,YAAY,cAAc,KAAU;CAC3C,GACA,CAAC,KAAK,CACR;CAEA,OAAO,CAAC,aAAa,aAAa;AACpC;AAEA,MAAa,kBACX,iBACoD;CACpD,MAAM,GAAG,eAAe,YAAY,UAAkB,QAAQ,GAAG,CAAC;CAClE,MAAM,WAAW,OAAO,YAAY;CAOpC,OAAO,CANU,eAAe,SAAS,OAM1B,GALE,UAAU,SAA+B;EACxD,SAAS,UACP,OAAO,SAAS,aAAc,KAAwB,SAAS,OAAO,IAAI;EAC5E,YAAY;CACd,CACyB,CAAC;AAC5B;AAEA,MAAa,qBACX,KACA,UACA,UAAU,SACP;CACH,MAAM,eAAe,SAAS,QAAQ;CAEtC,sBAA2B;EACzB,MAAM,UAAU,IAAI;EACpB,IAAI,CAAC,WAAW,CAAC,WAAW,OAAO,mBAAmB,aAAa;EACnE,MAAM,WAAW,IAAI,qBAAqB,aAAa,OAAO,CAAC;EAC/D,SAAS,QAAQ,OAAO;EACxB,aAAa,SAAS,WAAW;CACnC,GAAG;EAAC;EAAS;EAAc;CAAG,CAAC;AACjC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
//#region src/DatePicker/core/hooks/useLocale.ts
|
|
3
|
+
function fillTimeFormat(showHour, showMinute, showSecond, showMillisecond, showMeridiem) {
|
|
4
|
+
const cells = [];
|
|
5
|
+
if (showHour) cells.push(showMeridiem ? "hh" : "HH");
|
|
6
|
+
if (showMinute) cells.push("mm");
|
|
7
|
+
if (showSecond) cells.push("ss");
|
|
8
|
+
let timeFormat = cells.join(":");
|
|
9
|
+
if (showMillisecond) timeFormat += ".SSS";
|
|
10
|
+
if (showMeridiem) timeFormat += " A";
|
|
11
|
+
return timeFormat;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Used for `useFilledProps` since it already in the React.useMemo
|
|
15
|
+
*/
|
|
16
|
+
function fillLocale(locale, showHour, showMinute, showSecond, showMillisecond, use12Hours) {
|
|
17
|
+
const { fieldDateTimeFormat, fieldDateFormat, fieldTimeFormat, fieldMonthFormat, fieldYearFormat, fieldWeekFormat, fieldQuarterFormat, yearFormat, cellYearFormat, cellQuarterFormat, dayFormat, cellDateFormat } = locale;
|
|
18
|
+
const timeFormat = fillTimeFormat(showHour, showMinute, showSecond, showMillisecond, use12Hours);
|
|
19
|
+
return {
|
|
20
|
+
...locale,
|
|
21
|
+
fieldDateTimeFormat: fieldDateTimeFormat || `YYYY-MM-DD ${timeFormat}`,
|
|
22
|
+
fieldDateFormat: fieldDateFormat || "YYYY-MM-DD",
|
|
23
|
+
fieldTimeFormat: fieldTimeFormat || timeFormat,
|
|
24
|
+
fieldMonthFormat: fieldMonthFormat || "YYYY-MM",
|
|
25
|
+
fieldYearFormat: fieldYearFormat || "YYYY",
|
|
26
|
+
fieldWeekFormat: fieldWeekFormat || "gggg-wo",
|
|
27
|
+
fieldQuarterFormat: fieldQuarterFormat || "YYYY-[Q]Q",
|
|
28
|
+
yearFormat: yearFormat || "YYYY",
|
|
29
|
+
cellYearFormat: cellYearFormat || "YYYY",
|
|
30
|
+
cellQuarterFormat: cellQuarterFormat || "[Q]Q",
|
|
31
|
+
cellDateFormat: cellDateFormat || dayFormat || "D"
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Fill locale format as start up
|
|
36
|
+
*/
|
|
37
|
+
function useLocale(locale, showProps) {
|
|
38
|
+
const { showHour, showMinute, showSecond, showMillisecond, use12Hours } = showProps;
|
|
39
|
+
return React.useMemo(() => fillLocale(locale, showHour, showMinute, showSecond, showMillisecond, use12Hours), [
|
|
40
|
+
locale,
|
|
41
|
+
showHour,
|
|
42
|
+
showMinute,
|
|
43
|
+
showSecond,
|
|
44
|
+
showMillisecond,
|
|
45
|
+
use12Hours
|
|
46
|
+
]);
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
export { useLocale as default, fillTimeFormat };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=useLocale.mjs.map
|