@lobehub/ui 6.0.0-beta.7 → 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/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/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 +13 -6
- package/es/index.mjs +10 -6
- 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/stylex/props.mjs +2 -2
- package/es/styles/stylex/props.mjs.map +1 -1
- package/es/styles/theme/themeCss.mjs +15 -0
- package/es/styles/theme/themeCss.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,318 @@
|
|
|
1
|
+
import { useControlledState, useEvent, useLayoutEffect as useLayoutEffect$1 } from "../hooks/react.mjs";
|
|
2
|
+
import useSemantic from "../hooks/useSemantic.mjs";
|
|
3
|
+
import PickerContext from "./context.mjs";
|
|
4
|
+
import PickerPopup from "../PickerPopup.mjs";
|
|
5
|
+
import { omit, pickAttrs } from "../utils/common.mjs";
|
|
6
|
+
import { toArray } from "../utils/miscUtil.mjs";
|
|
7
|
+
import useCellRender from "./hooks/useCellRender.mjs";
|
|
8
|
+
import useFieldsInvalidate from "./hooks/useFieldsInvalidate.mjs";
|
|
9
|
+
import useFilledProps from "./hooks/useFilledProps.mjs";
|
|
10
|
+
import useFocusEvents, { isTargetInContainers } from "./hooks/useFocusEvents.mjs";
|
|
11
|
+
import useOpen from "./hooks/useOpen.mjs";
|
|
12
|
+
import usePickerRef from "./hooks/usePickerRef.mjs";
|
|
13
|
+
import usePresets from "./hooks/usePresets.mjs";
|
|
14
|
+
import useRangePickerValue from "./hooks/useRangePickerValue.mjs";
|
|
15
|
+
import useRangeValue, { useInnerValue } from "./hooks/useRangeValue.mjs";
|
|
16
|
+
import useRangeValueChange from "./hooks/useRangeValueChange.mjs";
|
|
17
|
+
import useShowNow from "./hooks/useShowNow.mjs";
|
|
18
|
+
import useToggleDates from "../hooks/useToggleDates.mjs";
|
|
19
|
+
import Popup from "./Popup/index.mjs";
|
|
20
|
+
import useHoverStore from "./hooks/useHoverStore.mjs";
|
|
21
|
+
import HoverSelector from "./Selector/SingleSelector/HoverSelector.mjs";
|
|
22
|
+
import * as React$1 from "react";
|
|
23
|
+
import { jsx } from "react/jsx-runtime";
|
|
24
|
+
import { clsx } from "clsx";
|
|
25
|
+
//#region src/DatePicker/core/PickerInput/SinglePicker.tsx
|
|
26
|
+
function Picker(props, ref) {
|
|
27
|
+
const [filledProps, internalPicker, complexPicker, formatList, maskFormat, isInvalidateDate] = useFilledProps(props);
|
|
28
|
+
const { prefixCls, rootClassName, styles: propStyles, classNames: propClassNames, previewValue, order, defaultValue, value, needConfirm, onChange, onClear, onKeyDown, disabled, disabledDate, minDate, maxDate, defaultOpen, open, onOpenChange, locale, generateConfig, picker, showNow, showToday, showTime, mode, onPanelChange, onCalendarChange, onOk, multiple, defaultPickerValue, pickerValue, onPickerValueChange, inputReadOnly, suffixIcon, removeIcon, tagRender, onFocus, onBlur, presets, components, cellRender, dateRender, monthCellRender, onClick } = filledProps;
|
|
29
|
+
const selectorRef = usePickerRef(ref);
|
|
30
|
+
const popupRef = React$1.useRef(null);
|
|
31
|
+
function pickerParam(values) {
|
|
32
|
+
if (values === null) return null;
|
|
33
|
+
return multiple ? values : values[0];
|
|
34
|
+
}
|
|
35
|
+
const toggleDates = useToggleDates(generateConfig, locale, internalPicker);
|
|
36
|
+
const [mergedClassNames, mergedStyles] = useSemantic(propClassNames, propStyles);
|
|
37
|
+
const [mergedOpen, triggerOpen] = useOpen(open, defaultOpen, [disabled], onOpenChange);
|
|
38
|
+
const onInternalCalendarChange = (dates, dateStrings, info) => {
|
|
39
|
+
if (onCalendarChange) {
|
|
40
|
+
const filteredInfo = { ...info };
|
|
41
|
+
delete filteredInfo.range;
|
|
42
|
+
onCalendarChange(pickerParam(dates), pickerParam(dateStrings), filteredInfo);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const onInternalOk = (dates) => {
|
|
46
|
+
onOk?.(pickerParam(dates));
|
|
47
|
+
};
|
|
48
|
+
const [mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, triggerOk] = useInnerValue(generateConfig, locale, formatList, false, order, defaultValue, value, onInternalCalendarChange, onInternalOk);
|
|
49
|
+
const calendarValue = getCalendarValue();
|
|
50
|
+
const isInternalPickerElement = useEvent((element) => isTargetInContainers(element, [selectorRef.current.nativeElement, popupRef.current]));
|
|
51
|
+
const [focused, onFieldFocus, onFieldBlur] = useFocusEvents(isInternalPickerElement, (_index, event) => {
|
|
52
|
+
onFocus?.(event, {});
|
|
53
|
+
}, (_index, event) => {
|
|
54
|
+
onBlur?.(event, {});
|
|
55
|
+
}, () => {
|
|
56
|
+
triggerOpen(false);
|
|
57
|
+
});
|
|
58
|
+
const [mergedMode, setMode] = useControlledState(picker, mode);
|
|
59
|
+
/** Extends from `mergedMode` to patch `datetime` mode */
|
|
60
|
+
const internalMode = mergedMode === "date" && showTime ? "datetime" : mergedMode;
|
|
61
|
+
const mergedShowNow = useShowNow(picker, mergedMode, showNow, showToday);
|
|
62
|
+
const onInternalChange = onChange && ((dates, dateStrings) => {
|
|
63
|
+
onChange(pickerParam(dates), pickerParam(dateStrings));
|
|
64
|
+
});
|
|
65
|
+
const [, triggerSubmitChange, resetValue] = useRangeValue({
|
|
66
|
+
...filledProps,
|
|
67
|
+
onChange: onInternalChange
|
|
68
|
+
}, mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, [], formatList, isInvalidateDate);
|
|
69
|
+
const getFieldCalendarValue = useEvent(() => {
|
|
70
|
+
const values = getCalendarValue();
|
|
71
|
+
return [values.length ? values : null];
|
|
72
|
+
});
|
|
73
|
+
const triggerFieldCalendarChange = useEvent((_index, nextValues) => {
|
|
74
|
+
triggerCalendarChange(nextValues);
|
|
75
|
+
});
|
|
76
|
+
const flushFieldSubmit = useEvent((_index, needTriggerChange) => {
|
|
77
|
+
if (needTriggerChange) {
|
|
78
|
+
triggerSubmitChange(getCalendarValue());
|
|
79
|
+
triggerOpen(false, { force: true });
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
const resetFieldValue = useEvent(() => {
|
|
83
|
+
resetValue();
|
|
84
|
+
});
|
|
85
|
+
const [, activeIndex, , , triggerSingleValueChange, resetSingleValueChange] = useRangeValueChange(1, needConfirm, [false], getFieldCalendarValue, triggerFieldCalendarChange, flushFieldSubmit, resetFieldValue);
|
|
86
|
+
useLayoutEffect$1((firstMount) => {
|
|
87
|
+
if (!firstMount && !mergedOpen) triggerSingleValueChange(0, "popupClose");
|
|
88
|
+
}, [mergedOpen]);
|
|
89
|
+
const [submitInvalidates, onSelectorInvalid] = useFieldsInvalidate(calendarValue, isInvalidateDate);
|
|
90
|
+
const submitInvalidate = React$1.useMemo(() => submitInvalidates.some((invalidated) => invalidated), [submitInvalidates]);
|
|
91
|
+
const onInternalPickerValueChange = (dates, info) => {
|
|
92
|
+
if (onPickerValueChange) {
|
|
93
|
+
const cleanInfo = {
|
|
94
|
+
...info,
|
|
95
|
+
mode: info.mode[0]
|
|
96
|
+
};
|
|
97
|
+
delete cleanInfo.range;
|
|
98
|
+
onPickerValueChange(dates[0], cleanInfo);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
const [currentPickerValue, setCurrentPickerValue] = useRangePickerValue(generateConfig, locale, calendarValue, [mergedMode], mergedOpen, false, activeIndex, internalPicker, false, defaultPickerValue, pickerValue, toArray(showTime?.defaultOpenValue), onInternalPickerValueChange, minDate, maxDate);
|
|
102
|
+
const triggerModeChange = useEvent((nextPickerValue, nextMode, triggerEvent) => {
|
|
103
|
+
setMode(nextMode);
|
|
104
|
+
if (onPanelChange && triggerEvent !== false) {
|
|
105
|
+
const lastPickerValue = nextPickerValue || calendarValue.at(-1);
|
|
106
|
+
onPanelChange(lastPickerValue, nextMode);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
/**
|
|
110
|
+
* Submit the complete value list stored in SinglePicker field `0`.
|
|
111
|
+
* 提交 SinglePicker field `0` 内保存的整组值。
|
|
112
|
+
*/
|
|
113
|
+
const triggerConfirm = (source = "confirm") => {
|
|
114
|
+
triggerSingleValueChange(0, source);
|
|
115
|
+
};
|
|
116
|
+
const onSelectorClick = (event) => {
|
|
117
|
+
if (!disabled && !selectorRef.current.nativeElement.contains(document.activeElement)) selectorRef.current.focus();
|
|
118
|
+
triggerOpen(true);
|
|
119
|
+
onClick?.(event);
|
|
120
|
+
};
|
|
121
|
+
const onSelectorClear = () => {
|
|
122
|
+
resetSingleValueChange();
|
|
123
|
+
triggerSubmitChange(null);
|
|
124
|
+
triggerOpen(false, { force: true });
|
|
125
|
+
selectorRef.current.focus();
|
|
126
|
+
onClear?.();
|
|
127
|
+
};
|
|
128
|
+
const hoverStore = useHoverStore();
|
|
129
|
+
const panelHoverValues = React$1.useMemo(() => {
|
|
130
|
+
const values = calendarValue.filter((date) => date);
|
|
131
|
+
return multiple ? values : values.slice(0, 1);
|
|
132
|
+
}, [calendarValue, multiple]);
|
|
133
|
+
React$1.useEffect(() => {
|
|
134
|
+
if (!mergedOpen) hoverStore.set(null, null);
|
|
135
|
+
}, [mergedOpen, hoverStore]);
|
|
136
|
+
const onSetHover = (date, source) => {
|
|
137
|
+
if (previewValue !== "hover") return;
|
|
138
|
+
hoverStore.set(date, date ? source : null);
|
|
139
|
+
};
|
|
140
|
+
const presetList = usePresets(presets);
|
|
141
|
+
const onPresetHover = (nextValue) => {
|
|
142
|
+
onSetHover(nextValue, "preset");
|
|
143
|
+
};
|
|
144
|
+
const onPresetSubmit = (nextValue) => {
|
|
145
|
+
const nextCalendarValues = multiple ? toggleDates(getCalendarValue(), nextValue) : [nextValue];
|
|
146
|
+
if (triggerSubmitChange(nextCalendarValues) && !multiple) triggerOpen(false, { force: true });
|
|
147
|
+
};
|
|
148
|
+
const onNow = (now) => {
|
|
149
|
+
onPresetSubmit(now);
|
|
150
|
+
};
|
|
151
|
+
const onPanelHover = (date) => {
|
|
152
|
+
onSetHover(date, "cell");
|
|
153
|
+
};
|
|
154
|
+
const onPanelFocus = (event) => {
|
|
155
|
+
triggerOpen(true);
|
|
156
|
+
onFieldFocus(0, "panel", event);
|
|
157
|
+
};
|
|
158
|
+
const onPanelSelect = (date) => {
|
|
159
|
+
if (multiple && internalMode !== picker) return;
|
|
160
|
+
const nextValues = multiple ? toggleDates(getCalendarValue(), date) : [date];
|
|
161
|
+
triggerSingleValueChange(0, !complexPicker && internalPicker === internalMode ? "panel-final" : "panel-intermediate", nextValues);
|
|
162
|
+
};
|
|
163
|
+
const onPopupClose = () => {
|
|
164
|
+
triggerOpen(false);
|
|
165
|
+
};
|
|
166
|
+
const onInternalCellRender = useCellRender(cellRender, dateRender, monthCellRender);
|
|
167
|
+
const panelProps = React$1.useMemo(() => {
|
|
168
|
+
const domProps = pickAttrs(filledProps);
|
|
169
|
+
return {
|
|
170
|
+
...omit(filledProps, [
|
|
171
|
+
...Object.keys(domProps),
|
|
172
|
+
"onChange",
|
|
173
|
+
"onCalendarChange",
|
|
174
|
+
"onClear",
|
|
175
|
+
"style",
|
|
176
|
+
"className",
|
|
177
|
+
"onPanelChange",
|
|
178
|
+
"classNames",
|
|
179
|
+
"styles"
|
|
180
|
+
]),
|
|
181
|
+
multiple: filledProps.multiple
|
|
182
|
+
};
|
|
183
|
+
}, [filledProps]);
|
|
184
|
+
const panel = /* @__PURE__ */ jsx(Popup, {
|
|
185
|
+
containerRef: popupRef,
|
|
186
|
+
...panelProps,
|
|
187
|
+
classNames: mergedClassNames,
|
|
188
|
+
isInvalid: isInvalidateDate,
|
|
189
|
+
mode: mergedMode,
|
|
190
|
+
showNow: mergedShowNow,
|
|
191
|
+
styles: mergedStyles,
|
|
192
|
+
value: calendarValue,
|
|
193
|
+
onChange: null,
|
|
194
|
+
onFocus: onPanelFocus,
|
|
195
|
+
onPresetHover,
|
|
196
|
+
onPresetSubmit,
|
|
197
|
+
onSubmit: () => triggerConfirm("confirm"),
|
|
198
|
+
defaultOpenValue: showTime?.defaultOpenValue,
|
|
199
|
+
internalMode,
|
|
200
|
+
showTime,
|
|
201
|
+
disabledDate,
|
|
202
|
+
onBlur: (event) => onFieldBlur(0, "panel", event),
|
|
203
|
+
picker,
|
|
204
|
+
onHover: onPanelHover,
|
|
205
|
+
needConfirm,
|
|
206
|
+
onNow,
|
|
207
|
+
cellRender: onInternalCellRender,
|
|
208
|
+
onOk: triggerOk,
|
|
209
|
+
presets: presetList,
|
|
210
|
+
onPanelChange: triggerModeChange,
|
|
211
|
+
format: maskFormat,
|
|
212
|
+
onPickerValueChange: setCurrentPickerValue,
|
|
213
|
+
hoverValue: panelHoverValues,
|
|
214
|
+
onSelect: onPanelSelect,
|
|
215
|
+
pickerValue: currentPickerValue
|
|
216
|
+
});
|
|
217
|
+
const onSelectorChange = (date, source = "input") => {
|
|
218
|
+
triggerSingleValueChange(0, source, date);
|
|
219
|
+
};
|
|
220
|
+
const onSelectorInputChange = () => {
|
|
221
|
+
triggerSingleValueChange(0, "input");
|
|
222
|
+
};
|
|
223
|
+
const onSelectorFocus = (event) => {
|
|
224
|
+
triggerSingleValueChange(0, "field-switch");
|
|
225
|
+
triggerOpen(true, { inherit: true });
|
|
226
|
+
onFieldFocus(0, "input", event);
|
|
227
|
+
};
|
|
228
|
+
const onSelectorBlur = (event) => {
|
|
229
|
+
onFieldBlur(0, "input", event);
|
|
230
|
+
};
|
|
231
|
+
const onSelectorKeyDown = (event, preventDefault) => {
|
|
232
|
+
if (event.key === "Tab") triggerConfirm("keyboard-submit-weak");
|
|
233
|
+
else if (event.key === "Escape") {
|
|
234
|
+
triggerSingleValueChange(0, "esc");
|
|
235
|
+
triggerOpen(false);
|
|
236
|
+
}
|
|
237
|
+
onKeyDown?.(event, preventDefault);
|
|
238
|
+
};
|
|
239
|
+
const context = React$1.useMemo(() => ({
|
|
240
|
+
prefixCls,
|
|
241
|
+
locale,
|
|
242
|
+
generateConfig,
|
|
243
|
+
button: components.button,
|
|
244
|
+
input: components.input,
|
|
245
|
+
classNames: mergedClassNames,
|
|
246
|
+
styles: mergedStyles
|
|
247
|
+
}), [
|
|
248
|
+
prefixCls,
|
|
249
|
+
locale,
|
|
250
|
+
generateConfig,
|
|
251
|
+
components.button,
|
|
252
|
+
components.input,
|
|
253
|
+
mergedClassNames,
|
|
254
|
+
mergedStyles
|
|
255
|
+
]);
|
|
256
|
+
useLayoutEffect$1(() => {
|
|
257
|
+
if (mergedOpen && activeIndex !== void 0) triggerModeChange(null, picker, false);
|
|
258
|
+
}, [
|
|
259
|
+
mergedOpen,
|
|
260
|
+
activeIndex,
|
|
261
|
+
picker
|
|
262
|
+
]);
|
|
263
|
+
return /* @__PURE__ */ jsx(PickerContext, {
|
|
264
|
+
value: context,
|
|
265
|
+
children: /* @__PURE__ */ jsx(PickerPopup, {
|
|
266
|
+
direction: filledProps.direction,
|
|
267
|
+
getAnchor: () => selectorRef.current?.nativeElement,
|
|
268
|
+
getPopupContainer: filledProps.getPopupContainer,
|
|
269
|
+
inline: filledProps.inlinePopup,
|
|
270
|
+
placement: filledProps.placement,
|
|
271
|
+
popupElement: panel,
|
|
272
|
+
popupStyle: mergedStyles.popup.root,
|
|
273
|
+
onClose: onPopupClose,
|
|
274
|
+
popupClassName: clsx(rootClassName, mergedClassNames.popup.root),
|
|
275
|
+
visible: mergedOpen,
|
|
276
|
+
children: /* @__PURE__ */ jsx(HoverSelector, {
|
|
277
|
+
...filledProps,
|
|
278
|
+
calendarValue,
|
|
279
|
+
focused,
|
|
280
|
+
hoverStore,
|
|
281
|
+
maskFormat,
|
|
282
|
+
open: mergedOpen,
|
|
283
|
+
removeIcon,
|
|
284
|
+
tagRender,
|
|
285
|
+
onBlur: onSelectorBlur,
|
|
286
|
+
onChange: onSelectorChange,
|
|
287
|
+
onFocus: onSelectorFocus,
|
|
288
|
+
onInputChange: onSelectorInputChange,
|
|
289
|
+
onKeyDown: onSelectorKeyDown,
|
|
290
|
+
onSubmit: () => triggerConfirm("keyboard-submit"),
|
|
291
|
+
onInvalid: (invalid) => {
|
|
292
|
+
onSelectorInvalid(invalid, 0);
|
|
293
|
+
},
|
|
294
|
+
inputReadOnly,
|
|
295
|
+
disabled,
|
|
296
|
+
internalPicker,
|
|
297
|
+
format: formatList,
|
|
298
|
+
ref: selectorRef,
|
|
299
|
+
className: clsx(filledProps.className, rootClassName, mergedClassNames.root),
|
|
300
|
+
style: {
|
|
301
|
+
...mergedStyles.root,
|
|
302
|
+
...filledProps.style
|
|
303
|
+
},
|
|
304
|
+
suffixIcon,
|
|
305
|
+
onClear: onSelectorClear,
|
|
306
|
+
invalid: submitInvalidate,
|
|
307
|
+
onOpenChange: triggerOpen,
|
|
308
|
+
onClick: onSelectorClick
|
|
309
|
+
})
|
|
310
|
+
})
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
const RefPicker = React$1.forwardRef(Picker);
|
|
314
|
+
if (process.env.NODE_ENV !== "production") RefPicker.displayName = "RefPicker";
|
|
315
|
+
//#endregion
|
|
316
|
+
export { RefPicker as default };
|
|
317
|
+
|
|
318
|
+
//# sourceMappingURL=SinglePicker.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SinglePicker.mjs","names":["React"],"sources":["../../../../src/DatePicker/core/PickerInput/SinglePicker.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport * as React from 'react';\n\nimport { useControlledState, useEvent, useLayoutEffect } from '../hooks/react';\nimport useSemantic from '../hooks/useSemantic';\nimport useToggleDates from '../hooks/useToggleDates';\nimport type {\n BaseInfo,\n InternalMode,\n PanelMode,\n PickerRef,\n SelectorProps,\n SharedHTMLAttrs,\n SharedPickerProps,\n SharedTimeProps,\n ValueDate,\n} from '../interface';\nimport PickerPopup from '../PickerPopup';\nimport { omit, pickAttrs } from '../utils/common';\nimport { toArray } from '../utils/miscUtil';\nimport PickerContext from './context';\nimport useCellRender from './hooks/useCellRender';\nimport useFieldsInvalidate from './hooks/useFieldsInvalidate';\nimport useFilledProps from './hooks/useFilledProps';\nimport useFocusEvents, { isTargetInContainers } from './hooks/useFocusEvents';\nimport useHoverStore, { type HoverSource } from './hooks/useHoverStore';\nimport useOpen from './hooks/useOpen';\nimport usePickerRef from './hooks/usePickerRef';\nimport usePresets from './hooks/usePresets';\nimport useRangePickerValue from './hooks/useRangePickerValue';\nimport useRangeValue, { useInnerValue } from './hooks/useRangeValue';\nimport useRangeValueChange, { type RangeValueChangeSource } from './hooks/useRangeValueChange';\nimport useShowNow from './hooks/useShowNow';\nimport Popup from './Popup';\nimport HoverSelector from './Selector/SingleSelector/HoverSelector';\n\n// TODO: isInvalidateDate with showTime.disabledTime should not provide `range` prop\n\nexport interface CustomTagProps<DateType extends object = any> {\n closable: boolean;\n disabled: boolean;\n label: React.ReactNode;\n onClose: (event?: React.MouseEvent<HTMLElement>) => void;\n value: DateType;\n}\n\nexport interface BasePickerProps<\n DateType extends object = any,\n> extends SharedPickerProps<DateType> {\n // Picker Value\n /**\n * Config the popup panel date.\n * Every time active the input to open popup will reset with `defaultPickerValue`.\n *\n * Note: `defaultPickerValue` priority is higher than `value` for the first open.\n */\n defaultPickerValue?: DateType | null;\n\n defaultValue?: DateType | DateType[];\n // Control\n disabled?: boolean;\n // Structure\n id?: string;\n /** Only works when `multiple` is in use */\n maxTagCount?: number | 'responsive';\n\n // Mode\n mode?: PanelMode;\n /** Not support `time` or `datetime` picker */\n multiple?: boolean;\n onCalendarChange?: (\n date: DateType | DateType[],\n dateString: string | string[],\n info: BaseInfo,\n ) => void;\n onChange?: (date: DateType | DateType[], dateString: string | string[]) => void;\n /** */\n onOk?: (value?: DateType | DateType[]) => void;\n\n onPanelChange?: (values: DateType, modes: PanelMode) => void;\n\n /**\n * Each popup panel `pickerValue` change will trigger the callback.\n * @param date The changed picker value\n * @param info.source `panel` from the panel click. `reset` from popup open or field typing.\n */\n onPickerValueChange?: (\n date: DateType,\n info: {\n source: 'reset' | 'panel';\n mode: PanelMode;\n },\n ) => void;\n /**\n * Config each start & end field popup panel date.\n * When config `pickerValue`, you must also provide `onPickerValueChange` to handle changes.\n */\n pickerValue?: DateType | null;\n // Placeholder\n placeholder?: string;\n\n // Preset\n presets?: ValueDate<DateType>[];\n\n removeIcon?: React.ReactNode;\n\n /** Only works when `multiple` is in use */\n tagRender?: (props: CustomTagProps<DateType>) => React.ReactNode;\n // Value\n value?: DateType | DateType[] | null;\n}\n\nexport interface PickerProps<DateType extends object = any>\n extends BasePickerProps<DateType>, Omit<SharedTimeProps<DateType>, 'format' | 'defaultValue'> {}\n\n/** Internal usage. For cross function get same aligned props */\nexport type ReplacedPickerProps<DateType extends object = any> = {\n value?: DateType[];\n defaultValue?: DateType[];\n pickerValue?: DateType[];\n defaultPickerValue?: DateType[];\n onChange?: (date: DateType | DateType[], dateString: string | string[]) => void;\n onCalendarChange?: (\n date: DateType | DateType[],\n dateString: string | string[],\n info: BaseInfo,\n ) => void;\n};\n\nfunction Picker<DateType extends object = any>(\n props: PickerProps<DateType>,\n ref: React.Ref<PickerRef>,\n) {\n // ========================= Prop =========================\n const [filledProps, internalPicker, complexPicker, formatList, maskFormat, isInvalidateDate] =\n useFilledProps(props);\n\n const {\n // Style\n prefixCls,\n rootClassName,\n styles: propStyles,\n classNames: propClassNames,\n\n previewValue,\n\n // Value\n order,\n defaultValue,\n value,\n needConfirm,\n onChange,\n onClear,\n onKeyDown,\n\n // Disabled\n disabled,\n disabledDate,\n minDate,\n maxDate,\n\n // Open\n defaultOpen,\n open,\n onOpenChange,\n\n // Picker\n locale,\n generateConfig,\n picker,\n showNow,\n showToday,\n showTime,\n\n // Mode\n mode,\n onPanelChange,\n onCalendarChange,\n onOk,\n multiple,\n\n // Picker Value\n defaultPickerValue,\n pickerValue,\n onPickerValueChange,\n\n // Format\n inputReadOnly,\n\n suffixIcon,\n removeIcon,\n tagRender,\n\n // Focus\n onFocus,\n onBlur,\n\n // Presets\n presets,\n\n // Render\n components,\n cellRender,\n dateRender,\n monthCellRender,\n\n // Native\n onClick,\n } = filledProps as Omit<typeof filledProps, keyof ReplacedPickerProps<DateType>> &\n ReplacedPickerProps<DateType>;\n\n // ========================= Refs =========================\n const selectorRef = usePickerRef(ref);\n const popupRef = React.useRef<HTMLDivElement>(null);\n\n // ========================= Util =========================\n function pickerParam<T>(values: T[] | null) {\n if (values === null) {\n return null;\n }\n\n return multiple ? values : values[0];\n }\n\n const toggleDates = useToggleDates(generateConfig, locale, internalPicker);\n\n // ======================= Semantic =======================\n const [mergedClassNames, mergedStyles] = useSemantic(propClassNames, propStyles);\n\n // ========================= Open =========================\n const [mergedOpen, triggerOpen] = useOpen(open, defaultOpen, [disabled], onOpenChange);\n\n // ======================= Calendar =======================\n const onInternalCalendarChange = (dates: DateType[], dateStrings: string[], info: BaseInfo) => {\n if (onCalendarChange) {\n const filteredInfo = {\n ...info,\n };\n delete filteredInfo.range;\n onCalendarChange(pickerParam(dates)!, pickerParam(dateStrings)!, filteredInfo);\n }\n };\n\n const onInternalOk = (dates: DateType[]) => {\n onOk?.(pickerParam(dates)!);\n };\n\n // ======================== Values ========================\n const [mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, triggerOk] =\n useInnerValue(\n generateConfig,\n locale,\n formatList,\n false,\n order,\n defaultValue,\n value,\n onInternalCalendarChange,\n onInternalOk,\n );\n\n const calendarValue = getCalendarValue();\n\n // ======================== Focus =========================\n const isInternalPickerElement = useEvent((element: EventTarget | null) =>\n isTargetInContainers(element, [selectorRef.current!.nativeElement, popupRef.current]),\n );\n\n const [focused, onFieldFocus, onFieldBlur] = useFocusEvents(\n isInternalPickerElement,\n (_index, event) => {\n onFocus?.(event, {});\n },\n (_index, event) => {\n onBlur?.(event, {});\n },\n () => {\n triggerOpen(false);\n },\n );\n\n // ========================= Mode =========================\n const [mergedMode, setMode] = useControlledState(picker, mode);\n\n /** Extends from `mergedMode` to patch `datetime` mode */\n const internalMode: InternalMode = mergedMode === 'date' && showTime ? 'datetime' : mergedMode;\n\n // ======================= Show Now =======================\n const mergedShowNow = useShowNow(picker, mergedMode, showNow, showToday);\n\n // ======================== Value =========================\n const onInternalChange =\n onChange &&\n ((dates: DateType[] | null, dateStrings: string[] | null) => {\n onChange(pickerParam(dates)!, pickerParam(dateStrings)!);\n });\n\n const [\n ,\n /** Trigger `onChange` directly without check `disabledDate` */\n triggerSubmitChange,\n /** Reset uncommitted values */\n resetValue,\n ] = useRangeValue(\n {\n ...filledProps,\n onChange: onInternalChange,\n },\n mergedValue,\n setInnerValue,\n getCalendarValue,\n triggerCalendarChange,\n [], //disabled,\n formatList,\n isInvalidateDate,\n );\n\n // Treat the complete SinglePicker value list as one field value. This keeps\n // multiple dates inside field `0` instead of exposing them as extra fields.\n // 将 SinglePicker 的整组值视为一个 field value;multiple 日期仍属于\n // field `0` 内部,不会被当成额外的 field。\n const getFieldCalendarValue = useEvent(() => {\n const values = getCalendarValue();\n return [values.length ? values : null];\n });\n\n const triggerFieldCalendarChange = useEvent((_index: number, nextValues: DateType[]) => {\n triggerCalendarChange(nextValues);\n });\n\n const flushFieldSubmit = useEvent((_index: number, needTriggerChange: boolean) => {\n if (needTriggerChange) {\n triggerSubmitChange(getCalendarValue());\n triggerOpen(false, { force: true });\n }\n });\n\n const resetFieldValue = useEvent(() => {\n resetValue();\n });\n\n const [, activeIndex, , , triggerSingleValueChange, resetSingleValueChange] = useRangeValueChange<\n DateType[]\n >(\n 1,\n needConfirm,\n [false],\n getFieldCalendarValue,\n triggerFieldCalendarChange,\n flushFieldSubmit,\n resetFieldValue,\n );\n\n // Finalize the current interaction only after the popup is actually closed.\n // 仅在 popup 实际关闭后,统一收口当前交互。\n useLayoutEffect(\n (firstMount) => {\n if (!firstMount && !mergedOpen) {\n triggerSingleValueChange(0, 'popupClose');\n }\n },\n [mergedOpen],\n );\n\n // ======================= Validate =======================\n const [submitInvalidates, onSelectorInvalid] = useFieldsInvalidate(\n calendarValue,\n isInvalidateDate,\n );\n\n const submitInvalidate = React.useMemo(\n () => submitInvalidates.some((invalidated) => invalidated),\n [submitInvalidates],\n );\n\n // ===================== Picker Value =====================\n // Proxy to single pickerValue\n const onInternalPickerValueChange = (\n dates: DateType[],\n info: BaseInfo & { source: 'reset' | 'panel'; mode: [PanelMode, PanelMode] },\n ) => {\n if (onPickerValueChange) {\n const cleanInfo = { ...info, mode: info.mode[0] };\n delete cleanInfo.range;\n onPickerValueChange(dates[0], cleanInfo);\n }\n };\n\n const [currentPickerValue, setCurrentPickerValue] = useRangePickerValue(\n generateConfig,\n locale,\n calendarValue,\n [mergedMode],\n mergedOpen,\n false,\n activeIndex,\n internalPicker,\n false, // multiplePanel,\n defaultPickerValue,\n pickerValue,\n toArray(showTime?.defaultOpenValue),\n onInternalPickerValueChange,\n minDate,\n maxDate,\n );\n\n // >>> Mode need wait for `pickerValue`\n const triggerModeChange = useEvent(\n (nextPickerValue: DateType | null, nextMode: PanelMode, triggerEvent?: boolean) => {\n setMode(nextMode);\n\n // Compatible with `onPanelChange`\n if (onPanelChange && triggerEvent !== false) {\n const lastPickerValue: DateType = nextPickerValue || calendarValue.at(-1)!;\n onPanelChange(lastPickerValue, nextMode);\n }\n },\n );\n\n // ======================== Submit ========================\n /**\n * Submit the complete value list stored in SinglePicker field `0`.\n * 提交 SinglePicker field `0` 内保存的整组值。\n */\n const triggerConfirm = (source: RangeValueChangeSource = 'confirm') => {\n triggerSingleValueChange(0, source);\n };\n\n // ======================== Click =========================\n const onSelectorClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n if (!disabled && !selectorRef.current!.nativeElement.contains(document.activeElement)) {\n // Click to focus the enabled input\n selectorRef.current!.focus();\n }\n\n triggerOpen(true);\n\n onClick?.(event);\n };\n\n const onSelectorClear = () => {\n resetSingleValueChange();\n triggerSubmitChange(null);\n triggerOpen(false, { force: true });\n selectorRef.current!.focus();\n onClear?.();\n };\n\n // ======================== Hover =========================\n // The hovered date lives outside React state: only the selector's preview reads it, so a\n // cell hover must not re-render the popup and every panel cell.\n const hoverStore = useHoverStore<DateType>();\n\n const panelHoverValues = React.useMemo(() => {\n const values = calendarValue.filter((date) => date);\n return multiple ? values : values.slice(0, 1);\n }, [calendarValue, multiple]);\n\n React.useEffect(() => {\n if (!mergedOpen) {\n hoverStore.set(null, null);\n }\n }, [mergedOpen, hoverStore]);\n\n const onSetHover = (date: DateType | null, source: HoverSource) => {\n if (previewValue !== 'hover') {\n return;\n }\n hoverStore.set(date, date ? source : null);\n };\n\n // ========================================================\n // == Panels ==\n // ========================================================\n // ======================= Presets ========================\n const presetList = usePresets(presets);\n\n const onPresetHover = (nextValue: DateType | null) => {\n onSetHover(nextValue, 'preset');\n };\n\n // TODO: handle this\n const onPresetSubmit = (nextValue: DateType) => {\n const nextCalendarValues = multiple ? toggleDates(getCalendarValue(), nextValue) : [nextValue];\n const passed = triggerSubmitChange(nextCalendarValues);\n\n if (passed && !multiple) {\n triggerOpen(false, { force: true });\n }\n };\n\n const onNow = (now: DateType) => {\n onPresetSubmit(now);\n };\n\n // ======================== Panel =========================\n const onPanelHover = (date: DateType | null) => {\n onSetHover(date, 'cell');\n };\n\n // >>> Focus\n const onPanelFocus: React.FocusEventHandler<HTMLElement> = (event) => {\n triggerOpen(true);\n onFieldFocus(0, 'panel', event);\n };\n\n // >>> Calendar\n const onPanelSelect = (date: DateType) => {\n // Not change values if multiple and current panel is to match with picker\n if (multiple && internalMode !== picker) {\n return;\n }\n\n const nextValues = multiple ? toggleDates(getCalendarValue(), date) : [date];\n const panelFinished = !complexPicker && internalPicker === internalMode;\n\n triggerSingleValueChange(0, panelFinished ? 'panel-final' : 'panel-intermediate', nextValues);\n };\n\n // >>> Close\n const onPopupClose = () => {\n // Close popup\n triggerOpen(false);\n };\n\n // >>> cellRender\n const onInternalCellRender = useCellRender(cellRender, dateRender, monthCellRender);\n\n // >>> invalid\n\n const panelProps = React.useMemo(() => {\n const domProps = pickAttrs(filledProps);\n const restProps = omit(filledProps, [\n ...(Object.keys(domProps) as (keyof SharedHTMLAttrs)[]),\n 'onChange',\n 'onCalendarChange',\n 'onClear',\n 'style',\n 'className',\n 'onPanelChange',\n 'classNames',\n 'styles',\n ]);\n return {\n ...restProps,\n multiple: filledProps.multiple,\n };\n }, [filledProps]);\n\n // >>> Render\n const panel = (\n <Popup<any>\n containerRef={popupRef}\n // MISC\n {...panelProps}\n classNames={mergedClassNames}\n isInvalid={isInvalidateDate}\n mode={mergedMode}\n showNow={mergedShowNow}\n styles={mergedStyles}\n value={calendarValue}\n onChange={null}\n onFocus={onPanelFocus}\n onPresetHover={onPresetHover}\n onPresetSubmit={onPresetSubmit}\n onSubmit={() => triggerConfirm('confirm')}\n defaultOpenValue={showTime?.defaultOpenValue}\n // Focus\n internalMode={internalMode}\n showTime={showTime}\n // Disabled\n disabledDate={disabledDate}\n onBlur={(event) => onFieldBlur(0, 'panel', event)}\n // Mode\n picker={picker}\n onHover={onPanelHover}\n // Submit\n needConfirm={needConfirm}\n onNow={onNow}\n // Render\n cellRender={onInternalCellRender}\n onOk={triggerOk}\n // Preset\n presets={presetList}\n onPanelChange={triggerModeChange}\n // Value\n format={maskFormat}\n // Styles\n onPickerValueChange={setCurrentPickerValue}\n // Hover\n hoverValue={panelHoverValues}\n onSelect={onPanelSelect}\n // PickerValue\n pickerValue={currentPickerValue}\n />\n );\n\n // ========================================================\n // == Selector ==\n // ========================================================\n\n // ======================== Change ========================\n const onSelectorChange = (date: DateType[], source: 'input' | 'remove' = 'input') => {\n triggerSingleValueChange(0, source, date);\n };\n\n const onSelectorInputChange = () => {\n triggerSingleValueChange(0, 'input');\n };\n\n // ======================= Selector =======================\n const onSelectorFocus: SelectorProps['onFocus'] = (event) => {\n triggerSingleValueChange(0, 'field-switch');\n\n triggerOpen(true, {\n inherit: true,\n });\n\n onFieldFocus(0, 'input', event);\n };\n\n const onSelectorBlur: SelectorProps['onBlur'] = (event) => {\n onFieldBlur(0, 'input', event);\n };\n\n const onSelectorKeyDown: SelectorProps['onKeyDown'] = (event, preventDefault) => {\n if (event.key === 'Tab') {\n triggerConfirm('keyboard-submit-weak');\n } else if (event.key === 'Escape') {\n triggerSingleValueChange(0, 'esc');\n triggerOpen(false);\n }\n\n onKeyDown?.(event, preventDefault);\n };\n\n // ======================= Context ========================\n const context = React.useMemo(\n () => ({\n prefixCls,\n locale,\n generateConfig,\n button: components.button,\n input: components.input,\n classNames: mergedClassNames,\n styles: mergedStyles,\n }),\n [\n prefixCls,\n locale,\n generateConfig,\n components.button,\n components.input,\n mergedClassNames,\n mergedStyles,\n ],\n );\n\n // ======================== Effect ========================\n // >>> Mode\n // Reset for every active\n useLayoutEffect(() => {\n if (mergedOpen && activeIndex !== undefined) {\n // Legacy compatible. This effect update should not trigger `onPanelChange`\n triggerModeChange(null, picker, false);\n }\n }, [mergedOpen, activeIndex, picker]);\n\n // ======================== Render ========================\n return (\n <PickerContext value={context}>\n <PickerPopup\n direction={filledProps.direction}\n getAnchor={() => selectorRef.current?.nativeElement}\n getPopupContainer={filledProps.getPopupContainer}\n inline={filledProps.inlinePopup}\n placement={filledProps.placement}\n popupElement={panel}\n popupStyle={mergedStyles.popup.root}\n onClose={onPopupClose}\n popupClassName={clsx(rootClassName, mergedClassNames.popup.root)}\n // Visible\n visible={mergedOpen}\n >\n <HoverSelector\n // Shared\n {...filledProps}\n // Ref\n calendarValue={calendarValue}\n focused={focused}\n hoverStore={hoverStore}\n maskFormat={maskFormat}\n open={mergedOpen}\n removeIcon={removeIcon}\n tagRender={tagRender}\n onBlur={onSelectorBlur}\n onChange={onSelectorChange}\n onFocus={onSelectorFocus}\n onInputChange={onSelectorInputChange}\n onKeyDown={onSelectorKeyDown}\n onSubmit={() => triggerConfirm('keyboard-submit')}\n onInvalid={(invalid) => {\n // Only `single` mode support type date.\n // `multiple` mode can not typing.\n onSelectorInvalid(invalid, 0);\n }}\n inputReadOnly={inputReadOnly}\n // Disabled\n disabled={disabled}\n internalPicker={internalPicker}\n // Format\n format={formatList}\n // Open\n ref={selectorRef}\n // Style\n className={clsx(filledProps.className, rootClassName, mergedClassNames.root)}\n style={{ ...mergedStyles.root, ...filledProps.style }}\n // Icon\n suffixIcon={suffixIcon}\n onClear={onSelectorClear}\n // Invalid\n invalid={submitInvalidate}\n onOpenChange={triggerOpen}\n // Click\n onClick={onSelectorClick}\n />\n </PickerPopup>\n </PickerContext>\n );\n}\n\nconst RefPicker = React.forwardRef(Picker) as <DateType extends object = any>(\n props: PickerProps<DateType> & React.RefAttributes<PickerRef>,\n) => React.ReactElement;\n\nif (process.env.NODE_ENV !== 'production') {\n (RefPicker as any).displayName = 'RefPicker';\n}\n\nexport default RefPicker;\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.mjs","names":["React"],"sources":["../../../../src/DatePicker/core/PickerInput/context.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport type { GenerateConfig } from '../generate';\nimport type { FilledClassNames, FilledStyles } from '../hooks/useSemantic';\nimport type { Components, Locale } from '../interface';\n\nexport interface PickerContextProps<DateType = any> {\n /** Customize button component */\n button?: Components['button'];\n classNames: FilledClassNames;\n generateConfig: GenerateConfig<DateType>;\n input?: Components['input'];\n locale: Locale;\n prefixCls: string;\n styles: FilledStyles;\n}\n\nconst PickerContext = React.createContext<PickerContextProps>(null!);\n\nexport default PickerContext;\n"],"mappings":";;AAiBA,MAAM,gBAAgBA,QAAM,cAAkC,IAAK"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { warning } from "../../utils/common.mjs";
|
|
2
|
+
import * as React$1 from "react";
|
|
3
|
+
//#region src/DatePicker/core/PickerInput/hooks/useCellRender.ts
|
|
4
|
+
function useCellRender(cellRender, dateRender, monthCellRender, range) {
|
|
5
|
+
if (process.env.NODE_ENV !== "production") {
|
|
6
|
+
warning(!dateRender, `'dateRender' is deprecated. Please use 'cellRender' instead.`);
|
|
7
|
+
warning(!monthCellRender, `'monthCellRender' is deprecated. Please use 'cellRender' instead.`);
|
|
8
|
+
}
|
|
9
|
+
const mergedCellRender = React$1.useMemo(() => {
|
|
10
|
+
if (cellRender) return cellRender;
|
|
11
|
+
return (current, info) => {
|
|
12
|
+
const date = current;
|
|
13
|
+
if (dateRender && info.type === "date") return dateRender(date, info.today);
|
|
14
|
+
if (monthCellRender && info.type === "month") return monthCellRender(date, info.locale);
|
|
15
|
+
return info.originNode;
|
|
16
|
+
};
|
|
17
|
+
}, [
|
|
18
|
+
cellRender,
|
|
19
|
+
monthCellRender,
|
|
20
|
+
dateRender
|
|
21
|
+
]);
|
|
22
|
+
return React$1.useCallback((date, info) => mergedCellRender(date, {
|
|
23
|
+
...info,
|
|
24
|
+
range
|
|
25
|
+
}), [mergedCellRender, range]);
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { useCellRender as default };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=useCellRender.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCellRender.mjs","names":["React"],"sources":["../../../../../src/DatePicker/core/PickerInput/hooks/useCellRender.ts"],"sourcesContent":["import * as React from 'react';\n\nimport type { CellRender, CellRenderInfo, SharedPickerProps } from '../../interface';\nimport { warning } from '../../utils/common';\n\nexport default function useCellRender<DateType extends object = any>(\n cellRender: SharedPickerProps<DateType>['cellRender'],\n dateRender?: SharedPickerProps<DateType>['dateRender'],\n monthCellRender?: SharedPickerProps<DateType>['monthCellRender'],\n range?: CellRenderInfo<DateType>['range'],\n) {\n // ========================= Warn =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(!dateRender, `'dateRender' is deprecated. Please use 'cellRender' instead.`);\n warning(!monthCellRender, `'monthCellRender' is deprecated. Please use 'cellRender' instead.`);\n }\n\n // ======================== Render ========================\n // Merged render\n const mergedCellRender = React.useMemo(() => {\n if (cellRender) {\n return cellRender;\n }\n\n return (current: DateType | number | string, info: CellRenderInfo<DateType>) => {\n const date = current as DateType;\n\n if (dateRender && info.type === 'date') {\n return dateRender(date, info.today);\n }\n if (monthCellRender && info.type === 'month') {\n return monthCellRender(date, info.locale!);\n }\n return info.originNode;\n };\n }, [cellRender, monthCellRender, dateRender]);\n\n // Cell render\n const onInternalCellRender: CellRender<DateType> = React.useCallback(\n (date, info) => mergedCellRender(date, { ...info, range }),\n [mergedCellRender, range],\n );\n\n return onInternalCellRender;\n}\n"],"mappings":";;;AAKA,SAAwB,cACtB,YACA,YACA,iBACA,OACA;CAEA,IAAI,QAAQ,IAAI,aAAa,cAAc;EACzC,QAAQ,CAAC,YAAY,8DAA8D;EACnF,QAAQ,CAAC,iBAAiB,mEAAmE;CAC/F;CAIA,MAAM,mBAAmBA,QAAM,cAAc;EAC3C,IAAI,YACF,OAAO;EAGT,QAAQ,SAAqC,SAAmC;GAC9E,MAAM,OAAO;GAEb,IAAI,cAAc,KAAK,SAAS,QAC9B,OAAO,WAAW,MAAM,KAAK,KAAK;GAEpC,IAAI,mBAAmB,KAAK,SAAS,SACnC,OAAO,gBAAgB,MAAM,KAAK,MAAO;GAE3C,OAAO,KAAK;EACd;CACF,GAAG;EAAC;EAAY;EAAiB;CAAU,CAAC;CAQ5C,OALmDA,QAAM,aACtD,MAAM,SAAS,iBAAiB,MAAM;EAAE,GAAG;EAAM;CAAM,CAAC,GACzD,CAAC,kBAAkB,KAAK,CAGA;AAC5B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { useControlledState, useEvent } from "../../hooks/react.mjs";
|
|
2
|
+
import { raf } from "../../utils/common.mjs";
|
|
3
|
+
import React from "react";
|
|
4
|
+
//#region src/DatePicker/core/PickerInput/hooks/useDelayState.ts
|
|
5
|
+
/**
|
|
6
|
+
* Will be `true` immediately for next effect.
|
|
7
|
+
* But will be `false` for a delay of effect.
|
|
8
|
+
*/
|
|
9
|
+
function useDelayState(value, defaultValue, onChange) {
|
|
10
|
+
const [state, setState] = useControlledState(defaultValue, value);
|
|
11
|
+
const [, forceUpdate] = React.useState({});
|
|
12
|
+
const triggerUpdate = useEvent((nextState) => {
|
|
13
|
+
setState(nextState);
|
|
14
|
+
forceUpdate({});
|
|
15
|
+
});
|
|
16
|
+
const nextValueRef = React.useRef(value);
|
|
17
|
+
const rafRef = React.useRef(void 0);
|
|
18
|
+
const cancelRaf = () => {
|
|
19
|
+
raf.cancel(rafRef.current);
|
|
20
|
+
};
|
|
21
|
+
const doUpdate = useEvent(() => {
|
|
22
|
+
triggerUpdate(nextValueRef.current);
|
|
23
|
+
if (onChange && state !== nextValueRef.current) onChange(nextValueRef.current);
|
|
24
|
+
});
|
|
25
|
+
const updateValue = useEvent((next, immediately) => {
|
|
26
|
+
cancelRaf();
|
|
27
|
+
nextValueRef.current = next;
|
|
28
|
+
if (next || immediately) doUpdate();
|
|
29
|
+
else rafRef.current = raf(doUpdate);
|
|
30
|
+
});
|
|
31
|
+
React.useEffect(() => cancelRaf, []);
|
|
32
|
+
return [state, updateValue];
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
export { useDelayState as default };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=useDelayState.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDelayState.mjs","names":[],"sources":["../../../../../src/DatePicker/core/PickerInput/hooks/useDelayState.ts"],"sourcesContent":["import React from 'react';\n\nimport { useControlledState, useEvent } from '../../hooks/react';\nimport { raf } from '../../utils/common';\n\n/**\n * Will be `true` immediately for next effect.\n * But will be `false` for a delay of effect.\n */\nexport default function useDelayState<T>(\n value: T | undefined,\n defaultValue: T,\n onChange?: (next: T) => void,\n): [state: T, setState: (nextState: T, immediately?: boolean) => void] {\n const [state, setState] = useControlledState<T>(defaultValue, value);\n\n // Need force update to ensure React re-render\n const [, forceUpdate] = React.useState({});\n\n const triggerUpdate = useEvent((nextState: T) => {\n setState(nextState);\n forceUpdate({});\n });\n\n const nextValueRef = React.useRef<T>(value!);\n\n // ============================= Update =============================\n const rafRef = React.useRef<number | undefined>(undefined);\n const cancelRaf = () => {\n raf.cancel(rafRef.current!);\n };\n\n const doUpdate = useEvent(() => {\n triggerUpdate(nextValueRef.current);\n\n if (onChange && state !== nextValueRef.current) {\n onChange(nextValueRef.current);\n }\n });\n\n const updateValue = useEvent((next: T, immediately?: boolean) => {\n cancelRaf();\n\n nextValueRef.current = next;\n\n if (next || immediately) {\n doUpdate();\n } else {\n rafRef.current = raf(doUpdate);\n }\n });\n\n React.useEffect(() => cancelRaf, []);\n\n return [state, updateValue];\n}\n"],"mappings":";;;;;;;;AASA,SAAwB,cACtB,OACA,cACA,UACqE;CACrE,MAAM,CAAC,OAAO,YAAY,mBAAsB,cAAc,KAAK;CAGnE,MAAM,GAAG,eAAe,MAAM,SAAS,CAAC,CAAC;CAEzC,MAAM,gBAAgB,UAAU,cAAiB;EAC/C,SAAS,SAAS;EAClB,YAAY,CAAC,CAAC;CAChB,CAAC;CAED,MAAM,eAAe,MAAM,OAAU,KAAM;CAG3C,MAAM,SAAS,MAAM,OAA2B,KAAA,CAAS;CACzD,MAAM,kBAAkB;EACtB,IAAI,OAAO,OAAO,OAAQ;CAC5B;CAEA,MAAM,WAAW,eAAe;EAC9B,cAAc,aAAa,OAAO;EAElC,IAAI,YAAY,UAAU,aAAa,SACrC,SAAS,aAAa,OAAO;CAEjC,CAAC;CAED,MAAM,cAAc,UAAU,MAAS,gBAA0B;EAC/D,UAAU;EAEV,aAAa,UAAU;EAEvB,IAAI,QAAQ,aACV,SAAS;OAET,OAAO,UAAU,IAAI,QAAQ;CAEjC,CAAC;CAED,MAAM,gBAAgB,WAAW,CAAC,CAAC;CAEnC,OAAO,CAAC,OAAO,WAAW;AAC5B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useEvent } from "../../hooks/react.mjs";
|
|
2
|
+
import { isSame } from "../../utils/dateUtil.mjs";
|
|
3
|
+
//#region src/DatePicker/core/PickerInput/hooks/useDisabledBoundary.ts
|
|
4
|
+
/**
|
|
5
|
+
* Merge `disabledDate` with `minDate` & `maxDate`.
|
|
6
|
+
*/
|
|
7
|
+
function useDisabledBoundary(generateConfig, locale, disabledDate, minDate, maxDate) {
|
|
8
|
+
return useEvent((date, info) => {
|
|
9
|
+
if (disabledDate && disabledDate(date, info)) return true;
|
|
10
|
+
if (minDate && generateConfig.isAfter(minDate, date) && !isSame(generateConfig, locale, minDate, date, info.type)) return true;
|
|
11
|
+
if (maxDate && generateConfig.isAfter(date, maxDate) && !isSame(generateConfig, locale, maxDate, date, info.type)) return true;
|
|
12
|
+
return false;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { useDisabledBoundary as default };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=useDisabledBoundary.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDisabledBoundary.mjs","names":[],"sources":["../../../../../src/DatePicker/core/PickerInput/hooks/useDisabledBoundary.ts"],"sourcesContent":["import type { GenerateConfig } from '../../generate';\nimport { useEvent } from '../../hooks/react';\nimport type { DisabledDate, InternalMode, Locale } from '../../interface';\nimport { isSame } from '../../utils/dateUtil';\n\nexport type IsInvalidBoundary<DateType> = (\n currentDate: DateType,\n type: InternalMode,\n fromDate?: DateType,\n) => boolean;\n\n/**\n * Merge `disabledDate` with `minDate` & `maxDate`.\n */\nexport default function useDisabledBoundary<DateType extends object = any>(\n generateConfig: GenerateConfig<DateType>,\n locale: Locale,\n disabledDate?: DisabledDate<DateType>,\n minDate?: DateType,\n maxDate?: DateType,\n) {\n const mergedDisabledDate = useEvent<DisabledDate<DateType>>((date, info) => {\n if (disabledDate && disabledDate(date, info)) {\n return true;\n }\n\n if (\n minDate &&\n generateConfig.isAfter(minDate, date) &&\n !isSame(generateConfig, locale, minDate, date, info.type)\n ) {\n return true;\n }\n\n if (\n maxDate &&\n generateConfig.isAfter(date, maxDate) &&\n !isSame(generateConfig, locale, maxDate, date, info.type)\n ) {\n return true;\n }\n\n return false;\n });\n\n return mergedDisabledDate;\n}\n"],"mappings":";;;;;;AAcA,SAAwB,oBACtB,gBACA,QACA,cACA,SACA,SACA;CAyBA,OAxB2B,UAAkC,MAAM,SAAS;EAC1E,IAAI,gBAAgB,aAAa,MAAM,IAAI,GACzC,OAAO;EAGT,IACE,WACA,eAAe,QAAQ,SAAS,IAAI,KACpC,CAAC,OAAO,gBAAgB,QAAQ,SAAS,MAAM,KAAK,IAAI,GAExD,OAAO;EAGT,IACE,WACA,eAAe,QAAQ,MAAM,OAAO,KACpC,CAAC,OAAO,gBAAgB,QAAQ,SAAS,MAAM,KAAK,IAAI,GAExD,OAAO;EAGT,OAAO;CACT,CAEwB;AAC1B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getRowFormat, toArray } from "../../utils/miscUtil.mjs";
|
|
2
|
+
import * as React$1 from "react";
|
|
3
|
+
//#region src/DatePicker/core/PickerInput/hooks/useFieldFormat.ts
|
|
4
|
+
function useFieldFormat(picker, locale, format) {
|
|
5
|
+
return React$1.useMemo(() => {
|
|
6
|
+
const rawFormat = getRowFormat(picker, locale, format);
|
|
7
|
+
const formatList = toArray(rawFormat);
|
|
8
|
+
const firstFormat = formatList[0];
|
|
9
|
+
const maskFormat = typeof firstFormat === "object" && firstFormat.type === "mask" ? firstFormat.format : null;
|
|
10
|
+
return [formatList.map((config) => typeof config === "string" || typeof config === "function" ? config : config.format), maskFormat];
|
|
11
|
+
}, [
|
|
12
|
+
picker,
|
|
13
|
+
locale,
|
|
14
|
+
format
|
|
15
|
+
]);
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { useFieldFormat };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=useFieldFormat.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFieldFormat.mjs","names":["React"],"sources":["../../../../../src/DatePicker/core/PickerInput/hooks/useFieldFormat.ts"],"sourcesContent":["import * as React from 'react';\n\nimport type { FormatType, InternalMode, Locale, SharedPickerProps } from '../../interface';\nimport { getRowFormat, toArray } from '../../utils/miscUtil';\n\nexport function useFieldFormat<DateType = any>(\n picker: InternalMode,\n locale: Locale,\n format?: SharedPickerProps['format'],\n): [formatList: FormatType<DateType>[], maskFormat?: string | null] {\n return React.useMemo(() => {\n const rawFormat = getRowFormat(picker, locale, format);\n\n const formatList = toArray(rawFormat);\n\n const firstFormat = formatList[0];\n const maskFormat =\n typeof firstFormat === 'object' && firstFormat.type === 'mask' ? firstFormat.format : null;\n\n return [\n // Format list\n formatList.map((config) =>\n typeof config === 'string' || typeof config === 'function' ? config : config.format,\n ),\n // Mask Format\n maskFormat,\n ];\n }, [picker, locale, format]);\n}\n"],"mappings":";;;AAKA,SAAgB,eACd,QACA,QACA,QACkE;CAClE,OAAOA,QAAM,cAAc;EACzB,MAAM,YAAY,aAAa,QAAQ,QAAQ,MAAM;EAErD,MAAM,aAAa,QAAQ,SAAS;EAEpC,MAAM,cAAc,WAAW;EAC/B,MAAM,aACJ,OAAO,gBAAgB,YAAY,YAAY,SAAS,SAAS,YAAY,SAAS;EAExF,OAAO,CAEL,WAAW,KAAK,WACd,OAAO,WAAW,YAAY,OAAO,WAAW,aAAa,SAAS,OAAO,MAC/E,GAEA,UACF;CACF,GAAG;EAAC;EAAQ;EAAQ;CAAM,CAAC;AAC7B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { fillIndex } from "../../utils/miscUtil.mjs";
|
|
2
|
+
import * as React$1 from "react";
|
|
3
|
+
//#region src/DatePicker/core/PickerInput/hooks/useFieldsInvalidate.ts
|
|
4
|
+
/**
|
|
5
|
+
* Used to control each fields invalidate status
|
|
6
|
+
*/
|
|
7
|
+
function useFieldsInvalidate(calendarValue, isInvalidateDate, allowEmpty = []) {
|
|
8
|
+
const [fieldsInvalidates, setFieldsInvalidates] = React$1.useState([false, false]);
|
|
9
|
+
const onSelectorInvalid = (invalid, index) => {
|
|
10
|
+
setFieldsInvalidates((ori) => fillIndex(ori, index, invalid));
|
|
11
|
+
};
|
|
12
|
+
return [React$1.useMemo(() => {
|
|
13
|
+
return fieldsInvalidates.map((invalid, index) => {
|
|
14
|
+
if (invalid) return true;
|
|
15
|
+
const current = calendarValue[index];
|
|
16
|
+
if (!current) return false;
|
|
17
|
+
if (!allowEmpty[index] && !current) return true;
|
|
18
|
+
if (current && isInvalidateDate(current, { activeIndex: index })) return true;
|
|
19
|
+
return false;
|
|
20
|
+
});
|
|
21
|
+
}, [
|
|
22
|
+
calendarValue,
|
|
23
|
+
fieldsInvalidates,
|
|
24
|
+
isInvalidateDate,
|
|
25
|
+
allowEmpty
|
|
26
|
+
]), onSelectorInvalid];
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
export { useFieldsInvalidate as default };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=useFieldsInvalidate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFieldsInvalidate.mjs","names":["React"],"sources":["../../../../../src/DatePicker/core/PickerInput/hooks/useFieldsInvalidate.ts"],"sourcesContent":["import * as React from 'react';\n\nimport type { NullableDateType } from '../../interface';\nimport { fillIndex } from '../../utils/miscUtil';\nimport type useInvalidate from './useInvalidate';\n\n/**\n * Used to control each fields invalidate status\n */\nexport default function useFieldsInvalidate<\n DateType extends object,\n ValueType extends NullableDateType<DateType>[],\n>(\n calendarValue: ValueType,\n isInvalidateDate: ReturnType<typeof useInvalidate<DateType>>,\n allowEmpty: boolean[] = [],\n) {\n const [fieldsInvalidates, setFieldsInvalidates] = React.useState<[boolean, boolean]>([\n false,\n false,\n ]);\n\n const onSelectorInvalid = (invalid: boolean, index?: number) => {\n setFieldsInvalidates((ori) => fillIndex(ori, index!, invalid));\n };\n\n /**\n * For the Selector Input to mark as `aria-disabled`\n */\n const submitInvalidates = React.useMemo(() => {\n return fieldsInvalidates.map((invalid, index) => {\n // If typing invalidate\n if (invalid) {\n return true;\n }\n\n const current = calendarValue[index];\n\n // Not check if all empty\n if (!current) {\n return false;\n }\n\n // Not allow empty\n if (!allowEmpty[index] && !current) {\n return true;\n }\n\n // Invalidate\n if (current && isInvalidateDate(current, { activeIndex: index })) {\n return true;\n }\n\n return false;\n }) as [boolean, boolean];\n }, [calendarValue, fieldsInvalidates, isInvalidateDate, allowEmpty]);\n\n return [submitInvalidates, onSelectorInvalid] as const;\n}\n"],"mappings":";;;;;;AASA,SAAwB,oBAItB,eACA,kBACA,aAAwB,CAAC,GACzB;CACA,MAAM,CAAC,mBAAmB,wBAAwBA,QAAM,SAA6B,CACnF,OACA,KACF,CAAC;CAED,MAAM,qBAAqB,SAAkB,UAAmB;EAC9D,sBAAsB,QAAQ,UAAU,KAAK,OAAQ,OAAO,CAAC;CAC/D;CAiCA,OAAO,CA5BmBA,QAAM,cAAc;EAC5C,OAAO,kBAAkB,KAAK,SAAS,UAAU;GAE/C,IAAI,SACF,OAAO;GAGT,MAAM,UAAU,cAAc;GAG9B,IAAI,CAAC,SACH,OAAO;GAIT,IAAI,CAAC,WAAW,UAAU,CAAC,SACzB,OAAO;GAIT,IAAI,WAAW,iBAAiB,SAAS,EAAE,aAAa,MAAM,CAAC,GAC7D,OAAO;GAGT,OAAO;EACT,CAAC;CACH,GAAG;EAAC;EAAe;EAAmB;EAAkB;CAAU,CAE1C,GAAG,iBAAiB;AAC9C"}
|