@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 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["React"],"sources":["../../../../../src/DatePicker/core/PickerInput/Popup/index.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport * as React from 'react';\n\nimport { useMergeRefs } from '@/utils/mergeRefs';\n\nimport { useResizeObserver } from '../../hooks/react';\nimport type {\n RangeTimeProps,\n SharedPickerProps,\n SharedTimeProps,\n ValueDate,\n} from '../../interface';\nimport { toArray } from '../../utils/miscUtil';\nimport PickerContext from '../context';\nimport Footer, { type FooterProps } from './Footer';\nimport PopupPanel, { type PopupPanelProps } from './PopupPanel';\nimport PresetPanel from './PresetPanel';\n\nexport type PopupShowTimeConfig<DateType extends object = any> = Omit<\n RangeTimeProps<DateType>,\n 'defaultValue' | 'defaultOpenValue' | 'disabledTime'\n> &\n Pick<SharedTimeProps<DateType>, 'disabledTime'>;\n\nexport interface PopupProps<DateType extends object = any, PresetValue = DateType>\n extends\n Pick<React.InputHTMLAttributes<HTMLDivElement>, 'onFocus' | 'onBlur'>,\n FooterProps<DateType>,\n PopupPanelProps<DateType> {\n // Range\n activeInfo?: [activeInputLeft: number, activeInputRight: number, selectorWidth: number];\n classNames?: SharedPickerProps['classNames'];\n\n containerRef?: React.Ref<HTMLDivElement>;\n // Fill\n /** TimePicker or showTime only */\n defaultOpenValue: DateType;\n // Direction\n direction?: 'ltr' | 'rtl';\n\n isInvalid: (date: DateType | DateType[]) => boolean;\n // Change\n needConfirm: boolean;\n\n onOk: VoidFunction;\n\n onPanelMouseDown?: React.MouseEventHandler<HTMLDivElement>;\n onPresetHover: (presetValue: PresetValue) => void;\n onPresetSubmit: (presetValue: PresetValue) => void;\n\n panelRender?: SharedPickerProps['panelRender'];\n\n // Presets\n presets: ValueDate<DateType>[];\n styles?: SharedPickerProps['styles'];\n}\n\nexport default function Popup<DateType extends object = any>(props: PopupProps<DateType>) {\n const {\n containerRef,\n panelRender,\n internalMode,\n picker,\n showNow,\n\n // Range\n range,\n multiple,\n activeInfo = [0, 0, 0],\n\n // Presets\n presets,\n onPresetHover,\n onPresetSubmit,\n\n // Focus\n onFocus,\n onBlur,\n onPanelMouseDown,\n\n // Direction\n direction,\n\n // Change\n value,\n onSelect,\n isInvalid,\n defaultOpenValue,\n onOk,\n onSubmit,\n classNames,\n styles,\n } = props;\n\n const { prefixCls } = React.use(PickerContext);\n const panelPrefixCls = `${prefixCls}-panel`;\n\n const rtl = direction === 'rtl';\n\n // ========================= Refs =========================\n const arrowRef = React.useRef<HTMLDivElement>(null);\n const wrapperRef = React.useRef<HTMLDivElement>(null);\n const panelContainerRef = React.useRef<HTMLDivElement>(null);\n const mergedContainerRef = useMergeRefs([containerRef, panelContainerRef]);\n\n // ======================== Offset ========================\n const [containerWidth, setContainerWidth] = React.useState<number>(0);\n const [containerOffset, setContainerOffset] = React.useState<number>(0);\n const [arrowOffset, setArrowOffset] = React.useState<number>(0);\n\n useResizeObserver(\n panelContainerRef,\n (element) => {\n if (element.offsetWidth) {\n setContainerWidth(element.offsetWidth);\n }\n },\n !!range,\n );\n\n const [activeInputLeft, activeInputRight, selectorWidth] = activeInfo;\n const [retryTimes, setRetryTimes] = React.useState(0);\n\n React.useEffect(() => {\n setRetryTimes(10);\n }, [activeInputLeft]);\n\n React.useEffect(() => {\n // `activeOffset` is always align with the active input element\n // So we need only check container contains the `activeOffset`\n if (range && wrapperRef.current) {\n // Offset in case container has border radius\n const arrowWidth = arrowRef.current?.offsetWidth || 0;\n\n // Arrow Offset\n const wrapperRect = wrapperRef.current.getBoundingClientRect();\n if (!wrapperRect.height || wrapperRect.right < 0) {\n setRetryTimes((times) => Math.max(0, times - 1));\n return;\n }\n\n const nextArrowOffset =\n (rtl ? activeInputRight - arrowWidth : activeInputLeft) - wrapperRect.left;\n setArrowOffset(nextArrowOffset);\n\n // Container Offset\n if (containerWidth && containerWidth < selectorWidth) {\n const offset = rtl\n ? wrapperRect.right - (activeInputRight - arrowWidth + containerWidth)\n : activeInputLeft + arrowWidth - wrapperRect.left - containerWidth;\n\n const safeOffset = Math.max(0, offset);\n setContainerOffset(safeOffset);\n } else {\n setContainerOffset(0);\n }\n }\n }, [retryTimes, rtl, containerWidth, activeInputLeft, activeInputRight, selectorWidth, range]);\n\n // ======================== Custom ========================\n function filterEmpty<T>(list: T[]) {\n return list.filter((item) => item);\n }\n\n const valueList = React.useMemo(() => filterEmpty(toArray(value)), [value]);\n\n const isTimePickerEmptyValue = picker === 'time' && !valueList.length;\n\n const footerSubmitValue = React.useMemo(() => {\n if (isTimePickerEmptyValue) {\n return filterEmpty([defaultOpenValue]);\n }\n return valueList;\n }, [isTimePickerEmptyValue, valueList, defaultOpenValue]);\n\n const popupPanelValue = isTimePickerEmptyValue ? defaultOpenValue : valueList;\n\n const disableSubmit = React.useMemo(() => {\n // Empty is invalid\n if (!footerSubmitValue.length) {\n return true;\n }\n\n return footerSubmitValue.some((val) => isInvalid(val));\n }, [footerSubmitValue, isInvalid]);\n\n const onFooterSubmit = () => {\n // For TimePicker, we will additional trigger the value update\n if (isTimePickerEmptyValue) {\n onSelect!(defaultOpenValue);\n }\n\n onOk();\n onSubmit();\n };\n\n let mergedNodes: React.ReactNode = (\n <div className={`${prefixCls}-panel-layout`}>\n {/* `any` here since PresetPanel is reused for both Single & Range Picker which means return type is not stable */}\n <PresetPanel<any>\n prefixCls={prefixCls}\n presets={presets}\n onClick={onPresetSubmit}\n onHover={onPresetHover}\n />\n <div>\n <PopupPanel {...props} value={popupPanelValue} />\n <Footer\n {...props}\n invalid={disableSubmit}\n showNow={multiple ? false : showNow}\n onSubmit={onFooterSubmit}\n />\n </div>\n </div>\n );\n\n if (panelRender) {\n mergedNodes = panelRender(mergedNodes);\n }\n\n // ======================== Render ========================\n const containerPrefixCls = `${panelPrefixCls}-container`;\n\n const marginLeft = 'marginLeft';\n const marginRight = 'marginRight';\n\n // Container\n let renderNode = (\n <div\n ref={mergedContainerRef}\n tabIndex={-1}\n className={clsx(\n containerPrefixCls,\n // Used for Today Button style, safe to remove if no need\n `${prefixCls}-${internalMode}-panel-container`,\n classNames?.popup?.container,\n )}\n onBlur={onBlur}\n style={{\n [rtl ? marginRight : marginLeft]: containerOffset,\n [rtl ? marginLeft : marginRight]: 'auto',\n ...styles?.popup?.container,\n }}\n // Still wish not to lose focus on mouse down\n // onMouseDown={(e) => {\n // // e.preventDefault();\n // }}\n onFocus={onFocus}\n onMouseDown={onPanelMouseDown}\n >\n {mergedNodes}\n </div>\n );\n\n if (range) {\n renderNode = (\n <div\n className={clsx(`${prefixCls}-range-wrapper`, `${prefixCls}-${picker}-range-wrapper`)}\n ref={wrapperRef}\n onMouseDown={onPanelMouseDown}\n >\n <div className={`${prefixCls}-range-arrow`} ref={arrowRef} style={{ left: arrowOffset }} />\n\n {/* Watch for container size */}\n {renderNode}\n </div>\n );\n }\n\n return renderNode;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { BaseInfo, PanelMode, RangeTimeProps, SharedPickerProps, ValueDate } from "../interface.mjs";
|
|
2
|
+
import { SelectorIdType } from "./Selector/RangeSelector.mjs";
|
|
3
|
+
import * as React$1 from "react";
|
|
4
|
+
//#region src/DatePicker/core/PickerInput/RangePicker.d.ts
|
|
5
|
+
export type RangeValueType<DateType> = [start: DateType | null | undefined, end: DateType | null | undefined];
|
|
6
|
+
/** Used for change event, it should always be not undefined */
|
|
7
|
+
export type NoUndefinedRangeValueType<DateType> = [start: DateType | null, end: DateType | null];
|
|
8
|
+
export interface BaseRangePickerProps<DateType extends object> extends Omit<SharedPickerProps<DateType>, 'showTime' | 'id'> {
|
|
9
|
+
allowEmpty?: boolean | [boolean, boolean];
|
|
10
|
+
/**
|
|
11
|
+
* Config the popup panel date.
|
|
12
|
+
* Every time active the input to open popup will reset with `defaultPickerValue`.
|
|
13
|
+
*
|
|
14
|
+
* Note: `defaultPickerValue` priority is higher than `value` for the first open.
|
|
15
|
+
*/
|
|
16
|
+
defaultPickerValue?: [DateType, DateType] | DateType | null;
|
|
17
|
+
defaultValue?: RangeValueType<DateType>;
|
|
18
|
+
disabled?: boolean | [boolean, boolean];
|
|
19
|
+
id?: SelectorIdType;
|
|
20
|
+
mode?: [startMode: PanelMode, endMode: PanelMode];
|
|
21
|
+
onCalendarChange?: (dates: NoUndefinedRangeValueType<DateType>, dateStrings: [string, string], info: BaseInfo) => void;
|
|
22
|
+
onChange?: (dates: NoUndefinedRangeValueType<DateType> | null, dateStrings: [string, string]) => void;
|
|
23
|
+
onOk?: (values: NoUndefinedRangeValueType<DateType>) => void;
|
|
24
|
+
/** Trigger on each `mode` or `pickerValue` changed. */
|
|
25
|
+
onPanelChange?: (values: NoUndefinedRangeValueType<DateType>, modes: [startMode: PanelMode, endMode: PanelMode]) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Each popup panel `pickerValue` includes `mode` change will trigger the callback.
|
|
28
|
+
* @param date The changed picker value
|
|
29
|
+
* @param info.source `panel` from the panel click. `reset` from popup open or field typing
|
|
30
|
+
* @param info.mode Next `mode` panel
|
|
31
|
+
*/
|
|
32
|
+
onPickerValueChange?: (date: [DateType, DateType], info: BaseInfo & {
|
|
33
|
+
source: 'reset' | 'panel';
|
|
34
|
+
mode: [PanelMode, PanelMode];
|
|
35
|
+
}) => void;
|
|
36
|
+
/**
|
|
37
|
+
* Config each start & end field popup panel date.
|
|
38
|
+
* When config `pickerValue`, you must also provide `onPickerValueChange` to handle changes.
|
|
39
|
+
*/
|
|
40
|
+
pickerValue?: [DateType, DateType] | DateType | null;
|
|
41
|
+
placeholder?: [string, string];
|
|
42
|
+
presets?: ValueDate<Exclude<RangeValueType<DateType>, null>>[];
|
|
43
|
+
/** @deprecated Please use `presets` instead */
|
|
44
|
+
ranges?: Record<string, Exclude<RangeValueType<DateType>, null> | (() => Exclude<RangeValueType<DateType>, null>)>;
|
|
45
|
+
separator?: React$1.ReactNode;
|
|
46
|
+
showTime?: boolean | RangeTimeProps<DateType>;
|
|
47
|
+
value?: RangeValueType<DateType> | null;
|
|
48
|
+
}
|
|
49
|
+
export interface RangePickerProps<DateType extends object> extends BaseRangePickerProps<DateType>, Omit<RangeTimeProps<DateType>, 'format' | 'defaultValue' | 'defaultOpenValue'> {}
|
|
50
|
+
//#endregion
|
|
51
|
+
//# sourceMappingURL=RangePicker.d.mts.map
|
|
@@ -0,0 +1,343 @@
|
|
|
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, warning } from "../utils/common.mjs";
|
|
6
|
+
import { isSameTimestamp } from "../utils/dateUtil.mjs";
|
|
7
|
+
import { fillIndex, getFromDate, toArray } from "../utils/miscUtil.mjs";
|
|
8
|
+
import useCellRender from "./hooks/useCellRender.mjs";
|
|
9
|
+
import useFieldsInvalidate from "./hooks/useFieldsInvalidate.mjs";
|
|
10
|
+
import useFilledProps from "./hooks/useFilledProps.mjs";
|
|
11
|
+
import useFocusEvents, { isTargetInContainers } from "./hooks/useFocusEvents.mjs";
|
|
12
|
+
import useFocusLock from "./hooks/useFocusLock.mjs";
|
|
13
|
+
import useOpen from "./hooks/useOpen.mjs";
|
|
14
|
+
import usePickerRef from "./hooks/usePickerRef.mjs";
|
|
15
|
+
import usePresets from "./hooks/usePresets.mjs";
|
|
16
|
+
import useRangeDisabledDate from "./hooks/useRangeDisabledDate.mjs";
|
|
17
|
+
import useRangePickerValue from "./hooks/useRangePickerValue.mjs";
|
|
18
|
+
import useRangeValue, { useInnerValue } from "./hooks/useRangeValue.mjs";
|
|
19
|
+
import useRangeValueChange from "./hooks/useRangeValueChange.mjs";
|
|
20
|
+
import useShowNow from "./hooks/useShowNow.mjs";
|
|
21
|
+
import Popup from "./Popup/index.mjs";
|
|
22
|
+
import RefRangeSelector from "./Selector/RangeSelector.mjs";
|
|
23
|
+
import * as React$1 from "react";
|
|
24
|
+
import { jsx } from "react/jsx-runtime";
|
|
25
|
+
import { clsx } from "clsx";
|
|
26
|
+
//#region src/DatePicker/core/PickerInput/RangePicker.tsx
|
|
27
|
+
function separateConfig(config, defaultConfig) {
|
|
28
|
+
const singleConfig = config ?? defaultConfig;
|
|
29
|
+
if (Array.isArray(singleConfig)) return singleConfig;
|
|
30
|
+
return [singleConfig, singleConfig];
|
|
31
|
+
}
|
|
32
|
+
function getActiveRange(activeIndex) {
|
|
33
|
+
return activeIndex === 1 ? "end" : "start";
|
|
34
|
+
}
|
|
35
|
+
function RangePicker(props, ref) {
|
|
36
|
+
const [filledProps, internalPicker, complexPicker, formatList, maskFormat, isInvalidateDate] = useFilledProps(props, () => {
|
|
37
|
+
const { disabled, allowEmpty } = props;
|
|
38
|
+
return {
|
|
39
|
+
disabled: separateConfig(disabled, false),
|
|
40
|
+
allowEmpty: separateConfig(allowEmpty, false)
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
const { prefixCls, rootClassName, styles: propStyles, classNames: propClassNames, previewValue, defaultValue, value, needConfirm, onClear, onKeyDown, disabled, allowEmpty, disabledDate, minDate, maxDate, defaultOpen, open, onOpenChange, locale, generateConfig, picker, showNow, showToday, showTime, mode, onPanelChange, onCalendarChange, onOk, defaultPickerValue, pickerValue, onPickerValueChange, inputReadOnly, suffixIcon, onFocus, onBlur, presets, ranges, components, cellRender, dateRender, monthCellRender, onClick } = filledProps;
|
|
44
|
+
const selectorRef = usePickerRef(ref);
|
|
45
|
+
const popupRef = React$1.useRef(null);
|
|
46
|
+
const [mergedClassNames, mergedStyles] = useSemantic(propClassNames, propStyles);
|
|
47
|
+
const [mergedOpen, setMergeOpen] = useOpen(open, defaultOpen, disabled, onOpenChange);
|
|
48
|
+
const triggerOpen = (nextOpen, config) => {
|
|
49
|
+
if (disabled.some((fieldDisabled) => !fieldDisabled) || !nextOpen) setMergeOpen(nextOpen, config);
|
|
50
|
+
};
|
|
51
|
+
const [mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, triggerOk] = useInnerValue(generateConfig, locale, formatList, true, false, defaultValue, value, onCalendarChange, onOk);
|
|
52
|
+
const calendarValue = getCalendarValue();
|
|
53
|
+
const isInternalPickerElement = useEvent((element) => isTargetInContainers(element, [selectorRef.current.nativeElement, popupRef.current]));
|
|
54
|
+
const [focused, onFieldFocus, onFieldBlur] = useFocusEvents(isInternalPickerElement, (index, event) => {
|
|
55
|
+
onFocus?.(event, { range: getActiveRange(index) });
|
|
56
|
+
}, (index, event) => {
|
|
57
|
+
onBlur?.(event, { range: getActiveRange(index) });
|
|
58
|
+
}, () => {
|
|
59
|
+
triggerOpen(false);
|
|
60
|
+
});
|
|
61
|
+
const [flushSubmit, triggerSubmitChange, resetValue] = useRangeValue(filledProps, mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, disabled, formatList, isInvalidateDate);
|
|
62
|
+
const triggerFieldCalendarChange = useEvent((index, date) => {
|
|
63
|
+
triggerCalendarChange(fillIndex(getCalendarValue(), index, date));
|
|
64
|
+
});
|
|
65
|
+
const flushFieldSubmit = useEvent((index, needTriggerChange) => {
|
|
66
|
+
flushSubmit(index, needTriggerChange);
|
|
67
|
+
if (needTriggerChange) triggerOpen(false, { force: true });
|
|
68
|
+
});
|
|
69
|
+
const enabledFieldCount = disabled.filter((fieldDisabled) => !fieldDisabled).length;
|
|
70
|
+
const [rangeValueIndex, activeIndex, forceFocus, triggeredFields, triggerRangeValueChange, resetRangeValueChange] = useRangeValueChange(enabledFieldCount, needConfirm, allowEmpty, getCalendarValue, triggerFieldCalendarChange, flushFieldSubmit, resetValue);
|
|
71
|
+
useFocusLock(rangeValueIndex, forceFocus, selectorRef, popupRef, triggerOpen);
|
|
72
|
+
useLayoutEffect$1((firstMount) => {
|
|
73
|
+
if (!firstMount && !mergedOpen) triggerRangeValueChange(rangeValueIndex ?? activeIndex, "popupClose");
|
|
74
|
+
}, [mergedOpen]);
|
|
75
|
+
/** Used for Popup panel */
|
|
76
|
+
const mergedShowTime = React$1.useMemo(() => {
|
|
77
|
+
if (!showTime) return null;
|
|
78
|
+
const { disabledTime } = showTime;
|
|
79
|
+
const proxyDisabledTime = disabledTime ? (date) => {
|
|
80
|
+
const range = getActiveRange(activeIndex);
|
|
81
|
+
const fromDate = getFromDate(calendarValue, triggeredFields, activeIndex);
|
|
82
|
+
return disabledTime(date, range, { from: fromDate });
|
|
83
|
+
} : void 0;
|
|
84
|
+
return {
|
|
85
|
+
...showTime,
|
|
86
|
+
disabledTime: proxyDisabledTime
|
|
87
|
+
};
|
|
88
|
+
}, [
|
|
89
|
+
showTime,
|
|
90
|
+
activeIndex,
|
|
91
|
+
calendarValue,
|
|
92
|
+
triggeredFields
|
|
93
|
+
]);
|
|
94
|
+
const [modes, setModes] = useControlledState([picker, picker], mode);
|
|
95
|
+
const mergedMode = modes[activeIndex] || picker;
|
|
96
|
+
/** Extends from `mergedMode` to patch `datetime` mode */
|
|
97
|
+
const internalMode = mergedMode === "date" && mergedShowTime ? "datetime" : mergedMode;
|
|
98
|
+
const multiplePanel = internalMode === picker && internalMode !== "time";
|
|
99
|
+
const mergedShowNow = useShowNow(picker, mergedMode, showNow, showToday, true);
|
|
100
|
+
const mergedDisabledDate = useRangeDisabledDate(calendarValue, disabled, activeIndex, triggeredFields, generateConfig, locale, disabledDate);
|
|
101
|
+
const [submitInvalidates, onSelectorInvalid] = useFieldsInvalidate(calendarValue, isInvalidateDate, allowEmpty);
|
|
102
|
+
const [currentPickerValue, setCurrentPickerValue] = useRangePickerValue(generateConfig, locale, calendarValue, modes, mergedOpen, focused, activeIndex, internalPicker, multiplePanel, defaultPickerValue, pickerValue, mergedShowTime?.defaultOpenValue, onPickerValueChange, minDate, maxDate);
|
|
103
|
+
const triggerModeChange = useEvent((nextPickerValue, nextMode, triggerEvent) => {
|
|
104
|
+
const clone = fillIndex(modes, activeIndex, nextMode);
|
|
105
|
+
if (clone[0] !== modes[0] || clone[1] !== modes[1]) setModes(clone);
|
|
106
|
+
if (onPanelChange && triggerEvent !== false) {
|
|
107
|
+
const clonePickerValue = [...calendarValue];
|
|
108
|
+
if (nextPickerValue) clonePickerValue[activeIndex] = nextPickerValue;
|
|
109
|
+
onPanelChange(clonePickerValue, clone);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
const fillCalendarValue = (date, index) => fillIndex(calendarValue, index, date);
|
|
113
|
+
/**
|
|
114
|
+
* Trigger by confirm operation.
|
|
115
|
+
* This function has already handle the `needConfirm` check logic.
|
|
116
|
+
* - Selector: enter key
|
|
117
|
+
* - Panel: OK button
|
|
118
|
+
*/
|
|
119
|
+
const triggerPartConfirm = (date, source = "confirm") => {
|
|
120
|
+
triggerRangeValueChange(activeIndex, source, date ?? void 0);
|
|
121
|
+
};
|
|
122
|
+
const onSelectorClick = (event) => {
|
|
123
|
+
const rootNode = event.target.getRootNode();
|
|
124
|
+
if (!selectorRef.current.nativeElement.contains(rootNode.activeElement ?? document.activeElement)) {
|
|
125
|
+
const enabledIndex = disabled.findIndex((d) => !d);
|
|
126
|
+
if (enabledIndex >= 0) selectorRef.current.focus({ index: enabledIndex });
|
|
127
|
+
}
|
|
128
|
+
triggerOpen(true);
|
|
129
|
+
onClick?.(event);
|
|
130
|
+
};
|
|
131
|
+
const onSelectorClear = () => {
|
|
132
|
+
resetRangeValueChange();
|
|
133
|
+
triggerSubmitChange(null);
|
|
134
|
+
triggerOpen(false, { force: true });
|
|
135
|
+
onClear?.();
|
|
136
|
+
};
|
|
137
|
+
const [hoverSource, setHoverSource] = React$1.useState(null);
|
|
138
|
+
const [internalHoverValues, setInternalHoverValues] = React$1.useState(null);
|
|
139
|
+
const hoverValues = React$1.useMemo(() => {
|
|
140
|
+
return internalHoverValues || calendarValue;
|
|
141
|
+
}, [calendarValue, internalHoverValues]);
|
|
142
|
+
const showWeakHover = hoverSource === "cell" && !calendarValue[(activeIndex + 1) % 2] && !isSameTimestamp(generateConfig, calendarValue[activeIndex], mergedValue[activeIndex]);
|
|
143
|
+
const activeHoverValue = internalHoverValues?.[activeIndex];
|
|
144
|
+
React$1.useEffect(() => {
|
|
145
|
+
if (!mergedOpen) setInternalHoverValues(null);
|
|
146
|
+
}, [mergedOpen]);
|
|
147
|
+
const [activeInfo, setActiveInfo] = React$1.useState([
|
|
148
|
+
0,
|
|
149
|
+
0,
|
|
150
|
+
0
|
|
151
|
+
]);
|
|
152
|
+
const onSetHover = (date, source) => {
|
|
153
|
+
if (previewValue !== "hover") return;
|
|
154
|
+
setInternalHoverValues(date);
|
|
155
|
+
setHoverSource(source);
|
|
156
|
+
};
|
|
157
|
+
const presetList = usePresets(presets, ranges);
|
|
158
|
+
const onPresetHover = (nextValues) => {
|
|
159
|
+
onSetHover(nextValues, "preset");
|
|
160
|
+
};
|
|
161
|
+
const onPresetSubmit = (nextValues) => {
|
|
162
|
+
if (triggerSubmitChange(nextValues)) triggerOpen(false, { force: true });
|
|
163
|
+
};
|
|
164
|
+
const onNow = (now) => {
|
|
165
|
+
triggerPartConfirm(now);
|
|
166
|
+
};
|
|
167
|
+
const onPanelHover = (date) => {
|
|
168
|
+
onSetHover(date ? fillCalendarValue(date, activeIndex) : null, "cell");
|
|
169
|
+
};
|
|
170
|
+
const onPanelFocus = (event) => {
|
|
171
|
+
triggerOpen(true);
|
|
172
|
+
onFieldFocus(activeIndex, "panel", event);
|
|
173
|
+
};
|
|
174
|
+
const onPanelSelect = (date) => {
|
|
175
|
+
triggerRangeValueChange(activeIndex, !complexPicker && internalPicker === internalMode ? "panel-final" : "panel-intermediate", date);
|
|
176
|
+
};
|
|
177
|
+
const onPopupClose = () => {
|
|
178
|
+
triggerOpen(false);
|
|
179
|
+
};
|
|
180
|
+
const onInternalCellRender = useCellRender(cellRender, dateRender, monthCellRender, getActiveRange(activeIndex));
|
|
181
|
+
const panelValue = calendarValue[activeIndex] || null;
|
|
182
|
+
const isPopupInvalidateDate = useEvent((date) => {
|
|
183
|
+
return isInvalidateDate(date, { activeIndex });
|
|
184
|
+
});
|
|
185
|
+
const panelProps = React$1.useMemo(() => {
|
|
186
|
+
const domProps = pickAttrs(filledProps);
|
|
187
|
+
return omit(filledProps, [
|
|
188
|
+
...Object.keys(domProps),
|
|
189
|
+
"onChange",
|
|
190
|
+
"onCalendarChange",
|
|
191
|
+
"onClear",
|
|
192
|
+
"style",
|
|
193
|
+
"className",
|
|
194
|
+
"onPanelChange",
|
|
195
|
+
"disabledTime",
|
|
196
|
+
"classNames",
|
|
197
|
+
"styles"
|
|
198
|
+
]);
|
|
199
|
+
}, [filledProps]);
|
|
200
|
+
const panel = /* @__PURE__ */ jsx(Popup, {
|
|
201
|
+
containerRef: popupRef,
|
|
202
|
+
...panelProps,
|
|
203
|
+
defaultOpenValue: toArray(showTime?.defaultOpenValue)[activeIndex],
|
|
204
|
+
hoverRangeValue: showWeakHover ? null : hoverValues,
|
|
205
|
+
internalMode,
|
|
206
|
+
multiplePanel,
|
|
207
|
+
showNow: mergedShowNow,
|
|
208
|
+
styles: mergedStyles,
|
|
209
|
+
value: panelValue,
|
|
210
|
+
onChange: null,
|
|
211
|
+
onFocus: onPanelFocus,
|
|
212
|
+
onPresetHover,
|
|
213
|
+
onSubmit: (date) => triggerPartConfirm(date, "confirm"),
|
|
214
|
+
activeInfo,
|
|
215
|
+
disabledDate: mergedDisabledDate,
|
|
216
|
+
cellRender: onInternalCellRender,
|
|
217
|
+
classNames: mergedClassNames,
|
|
218
|
+
isInvalid: isPopupInvalidateDate,
|
|
219
|
+
mode: mergedMode,
|
|
220
|
+
showTime: mergedShowTime,
|
|
221
|
+
range: true,
|
|
222
|
+
onBlur: (event) => onFieldBlur(activeIndex, "panel", event),
|
|
223
|
+
picker,
|
|
224
|
+
onHover: onPanelHover,
|
|
225
|
+
needConfirm,
|
|
226
|
+
onOk: triggerOk,
|
|
227
|
+
presets: presetList,
|
|
228
|
+
onPanelChange: triggerModeChange,
|
|
229
|
+
format: maskFormat,
|
|
230
|
+
onPickerValueChange: setCurrentPickerValue,
|
|
231
|
+
hoverValue: showWeakHover && activeHoverValue ? [activeHoverValue] : null,
|
|
232
|
+
onPresetSubmit,
|
|
233
|
+
onNow,
|
|
234
|
+
onSelect: onPanelSelect,
|
|
235
|
+
pickerValue: currentPickerValue
|
|
236
|
+
});
|
|
237
|
+
const onSelectorChange = (date, index) => {
|
|
238
|
+
triggerRangeValueChange(index, "input", date);
|
|
239
|
+
};
|
|
240
|
+
const onSelectorInputChange = () => {
|
|
241
|
+
triggerRangeValueChange(activeIndex, "input");
|
|
242
|
+
};
|
|
243
|
+
const onSelectorFocus = (event, index) => {
|
|
244
|
+
triggerRangeValueChange(index, "field-switch");
|
|
245
|
+
triggerOpen(true, { inherit: true });
|
|
246
|
+
onFieldFocus(index, "input", event);
|
|
247
|
+
};
|
|
248
|
+
const onSelectorBlur = (event, index) => {
|
|
249
|
+
onFieldBlur(index, "input", event);
|
|
250
|
+
};
|
|
251
|
+
const onSelectorKeyDown = (event, preventDefault) => {
|
|
252
|
+
if (event.key === "Tab") triggerPartConfirm(null, "keyboard-submit-weak");
|
|
253
|
+
else if (event.key === "Escape") {
|
|
254
|
+
triggerRangeValueChange(activeIndex, "esc");
|
|
255
|
+
triggerOpen(false);
|
|
256
|
+
}
|
|
257
|
+
onKeyDown?.(event, preventDefault);
|
|
258
|
+
};
|
|
259
|
+
const context = React$1.useMemo(() => ({
|
|
260
|
+
prefixCls,
|
|
261
|
+
locale,
|
|
262
|
+
generateConfig,
|
|
263
|
+
button: components.button,
|
|
264
|
+
input: components.input,
|
|
265
|
+
classNames: mergedClassNames,
|
|
266
|
+
styles: mergedStyles
|
|
267
|
+
}), [
|
|
268
|
+
prefixCls,
|
|
269
|
+
locale,
|
|
270
|
+
generateConfig,
|
|
271
|
+
components.button,
|
|
272
|
+
components.input,
|
|
273
|
+
mergedClassNames,
|
|
274
|
+
mergedStyles
|
|
275
|
+
]);
|
|
276
|
+
useLayoutEffect$1(() => {
|
|
277
|
+
if (mergedOpen && activeIndex !== void 0) triggerModeChange(null, picker, false);
|
|
278
|
+
}, [
|
|
279
|
+
mergedOpen,
|
|
280
|
+
activeIndex,
|
|
281
|
+
picker
|
|
282
|
+
]);
|
|
283
|
+
if (process.env.NODE_ENV !== "production") {
|
|
284
|
+
const isIndexEmpty = (index) => {
|
|
285
|
+
return !value?.[index] && !defaultValue?.[index];
|
|
286
|
+
};
|
|
287
|
+
if (disabled.some((fieldDisabled, index) => fieldDisabled && isIndexEmpty(index) && !allowEmpty[index])) warning(false, "`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.");
|
|
288
|
+
}
|
|
289
|
+
return /* @__PURE__ */ jsx(PickerContext, {
|
|
290
|
+
value: context,
|
|
291
|
+
children: /* @__PURE__ */ jsx(PickerPopup, {
|
|
292
|
+
direction: filledProps.direction,
|
|
293
|
+
getAnchor: () => selectorRef.current?.nativeElement,
|
|
294
|
+
getPopupContainer: filledProps.getPopupContainer,
|
|
295
|
+
inline: filledProps.inlinePopup,
|
|
296
|
+
placement: filledProps.placement,
|
|
297
|
+
popupElement: panel,
|
|
298
|
+
popupStyle: mergedStyles.popup.root,
|
|
299
|
+
popupClassName: clsx(rootClassName, mergedClassNames.popup.root),
|
|
300
|
+
visible: mergedOpen,
|
|
301
|
+
onClose: onPopupClose,
|
|
302
|
+
range: true,
|
|
303
|
+
children: /* @__PURE__ */ jsx(RefRangeSelector, {
|
|
304
|
+
...filledProps,
|
|
305
|
+
activeHelp: !!internalHoverValues,
|
|
306
|
+
focused,
|
|
307
|
+
maskFormat,
|
|
308
|
+
open: mergedOpen,
|
|
309
|
+
onBlur: onSelectorBlur,
|
|
310
|
+
onChange: onSelectorChange,
|
|
311
|
+
onFocus: onSelectorFocus,
|
|
312
|
+
onKeyDown: onSelectorKeyDown,
|
|
313
|
+
activeIndex: focused || mergedOpen ? activeIndex : null,
|
|
314
|
+
allHelp: !!internalHoverValues && hoverSource === "preset",
|
|
315
|
+
inputReadOnly,
|
|
316
|
+
disabled,
|
|
317
|
+
ref: selectorRef,
|
|
318
|
+
className: clsx(filledProps.className, rootClassName, mergedClassNames.root),
|
|
319
|
+
style: {
|
|
320
|
+
...mergedStyles.root,
|
|
321
|
+
...filledProps.style
|
|
322
|
+
},
|
|
323
|
+
suffixIcon,
|
|
324
|
+
onClear: onSelectorClear,
|
|
325
|
+
invalid: submitInvalidates,
|
|
326
|
+
onInputChange: onSelectorInputChange,
|
|
327
|
+
format: formatList,
|
|
328
|
+
onInvalid: onSelectorInvalid,
|
|
329
|
+
onActiveInfo: setActiveInfo,
|
|
330
|
+
onOpenChange: triggerOpen,
|
|
331
|
+
onClick: onSelectorClick,
|
|
332
|
+
onSubmit: () => triggerPartConfirm(null, "keyboard-submit"),
|
|
333
|
+
value: hoverValues
|
|
334
|
+
})
|
|
335
|
+
})
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
const RefRangePicker = React$1.forwardRef(RangePicker);
|
|
339
|
+
if (process.env.NODE_ENV !== "production") RefRangePicker.displayName = "RefRangePicker";
|
|
340
|
+
//#endregion
|
|
341
|
+
export { RefRangePicker as default };
|
|
342
|
+
|
|
343
|
+
//# sourceMappingURL=RangePicker.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RangePicker.mjs","names":["React","RangeSelector"],"sources":["../../../../src/DatePicker/core/PickerInput/RangePicker.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 type {\n BaseInfo,\n InternalMode,\n OnOpenChange,\n OpenConfig,\n PanelMode,\n RangePickerRef,\n RangeTimeProps,\n SelectorProps,\n SharedHTMLAttrs,\n SharedPickerProps,\n ValueDate,\n} from '../interface';\nimport type { PickerPanelProps } from '../PickerPanel';\nimport PickerPopup from '../PickerPopup';\nimport { omit, pickAttrs, warning } from '../utils/common';\nimport { isSameTimestamp } from '../utils/dateUtil';\nimport { fillIndex, getFromDate, 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 useFocusLock from './hooks/useFocusLock';\nimport useOpen from './hooks/useOpen';\nimport usePickerRef from './hooks/usePickerRef';\nimport usePresets from './hooks/usePresets';\nimport useRangeDisabledDate from './hooks/useRangeDisabledDate';\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, { type PopupShowTimeConfig } from './Popup';\nimport RangeSelector, {\n type RangeSelectorRef,\n type SelectorIdType,\n} from './Selector/RangeSelector';\n\nfunction separateConfig<T>(config: T | [T, T] | null | undefined, defaultConfig: T): [T, T] {\n const singleConfig = config ?? defaultConfig;\n\n if (Array.isArray(singleConfig)) {\n return singleConfig;\n }\n\n return [singleConfig, singleConfig];\n}\n\nexport type RangeValueType<DateType> = [\n start: DateType | null | undefined,\n end: DateType | null | undefined,\n];\n\n/** Used for change event, it should always be not undefined */\nexport type NoUndefinedRangeValueType<DateType> = [start: DateType | null, end: DateType | null];\n\nexport interface BaseRangePickerProps<DateType extends object> extends Omit<\n SharedPickerProps<DateType>,\n 'showTime' | 'id'\n> {\n allowEmpty?: boolean | [boolean, boolean];\n\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, DateType] | DateType | null;\n\n defaultValue?: RangeValueType<DateType>;\n // Control\n disabled?: boolean | [boolean, boolean];\n // Structure\n id?: SelectorIdType;\n // Mode\n mode?: [startMode: PanelMode, endMode: PanelMode];\n onCalendarChange?: (\n dates: NoUndefinedRangeValueType<DateType>,\n dateStrings: [string, string],\n info: BaseInfo,\n ) => void;\n\n onChange?: (\n dates: NoUndefinedRangeValueType<DateType> | null,\n dateStrings: [string, string],\n ) => void;\n\n onOk?: (values: NoUndefinedRangeValueType<DateType>) => void;\n /** Trigger on each `mode` or `pickerValue` changed. */\n onPanelChange?: (\n values: NoUndefinedRangeValueType<DateType>,\n modes: [startMode: PanelMode, endMode: PanelMode],\n ) => void;\n /**\n * Each popup panel `pickerValue` includes `mode` 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 * @param info.mode Next `mode` panel\n */\n onPickerValueChange?: (\n date: [DateType, DateType],\n info: BaseInfo & {\n source: 'reset' | 'panel';\n mode: [PanelMode, PanelMode];\n },\n ) => void;\n\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, DateType] | DateType | null;\n // Placeholder\n placeholder?: [string, string];\n\n // Preset\n presets?: ValueDate<Exclude<RangeValueType<DateType>, null>>[];\n /** @deprecated Please use `presets` instead */\n ranges?: Record<\n string,\n Exclude<RangeValueType<DateType>, null> | (() => Exclude<RangeValueType<DateType>, null>)\n >;\n\n separator?: React.ReactNode;\n\n // Time\n showTime?: boolean | RangeTimeProps<DateType>;\n // Value\n value?: RangeValueType<DateType> | null;\n}\n\nexport interface RangePickerProps<DateType extends object>\n extends\n BaseRangePickerProps<DateType>,\n Omit<RangeTimeProps<DateType>, 'format' | 'defaultValue' | 'defaultOpenValue'> {}\n\nfunction getActiveRange(activeIndex: number) {\n return activeIndex === 1 ? 'end' : 'start';\n}\n\nfunction RangePicker<DateType extends object = any>(\n props: RangePickerProps<DateType>,\n ref: React.Ref<RangePickerRef>,\n) {\n // ========================= Prop =========================\n const [filledProps, internalPicker, complexPicker, formatList, maskFormat, isInvalidateDate] =\n useFilledProps(props, () => {\n const { disabled, allowEmpty } = props;\n\n const mergedDisabled = separateConfig(disabled, false);\n const mergedAllowEmpty = separateConfig(allowEmpty, false);\n\n return {\n disabled: mergedDisabled,\n allowEmpty: mergedAllowEmpty,\n };\n });\n\n const {\n // Style\n prefixCls,\n rootClassName,\n styles: propStyles,\n classNames: propClassNames,\n\n previewValue,\n // Value\n defaultValue,\n value,\n needConfirm,\n onClear,\n onKeyDown,\n\n // Disabled\n disabled,\n allowEmpty,\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\n // Picker Value\n defaultPickerValue,\n pickerValue,\n onPickerValueChange,\n\n // Format\n inputReadOnly,\n\n suffixIcon,\n\n // Focus\n onFocus,\n onBlur,\n\n // Presets\n presets,\n ranges,\n\n // Render\n components,\n cellRender,\n dateRender,\n monthCellRender,\n\n // Native\n onClick,\n } = filledProps;\n\n // ========================= Refs =========================\n const selectorRef = usePickerRef<Parameters<RangePickerRef['focus']>[0], RangeSelectorRef>(ref);\n const popupRef = React.useRef<HTMLDivElement>(null);\n\n // ======================= Semantic =======================\n const [mergedClassNames, mergedStyles] = useSemantic(propClassNames, propStyles);\n\n // ========================= Open =========================\n const [mergedOpen, setMergeOpen] = useOpen(open, defaultOpen, disabled, onOpenChange);\n\n const triggerOpen: OnOpenChange = (nextOpen, config?: OpenConfig) => {\n // No need to open if all disabled\n if (disabled.some((fieldDisabled) => !fieldDisabled) || !nextOpen) {\n setMergeOpen(nextOpen, config);\n }\n };\n\n // ======================== Values ========================\n const [mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, triggerOk] =\n useInnerValue<RangeValueType<DateType>, DateType>(\n generateConfig,\n locale,\n formatList,\n true,\n false,\n defaultValue,\n value,\n onCalendarChange,\n onOk,\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 range: getActiveRange(index),\n });\n },\n (index, event) => {\n onBlur?.(event, {\n range: getActiveRange(index),\n });\n },\n () => {\n triggerOpen(false);\n },\n );\n\n // ======================== Value =========================\n const [\n /** Trigger `onChange` by check `disabledDate` */\n flushSubmit,\n /** Trigger `onChange` directly without check `disabledDate` */\n triggerSubmitChange,\n /** Reset uncommitted values */\n resetValue,\n ] = useRangeValue<RangeValueType<DateType>, DateType>(\n filledProps,\n mergedValue,\n setInnerValue,\n getCalendarValue,\n triggerCalendarChange,\n disabled,\n formatList,\n isInvalidateDate,\n );\n\n const triggerFieldCalendarChange = useEvent((index: number, date: DateType) => {\n triggerCalendarChange(fillIndex(getCalendarValue(), index, date));\n });\n\n const flushFieldSubmit = useEvent((index: number, needTriggerChange: boolean) => {\n flushSubmit(index, needTriggerChange);\n\n if (needTriggerChange) {\n triggerOpen(false, { force: true });\n }\n });\n\n const enabledFieldCount = disabled.filter((fieldDisabled) => !fieldDisabled).length;\n const [\n rangeValueIndex,\n activeIndex,\n forceFocus,\n triggeredFields,\n triggerRangeValueChange,\n resetRangeValueChange,\n ] = useRangeValueChange(\n enabledFieldCount,\n needConfirm,\n allowEmpty,\n getCalendarValue,\n triggerFieldCalendarChange,\n flushFieldSubmit,\n resetValue,\n );\n\n useFocusLock(rangeValueIndex, forceFocus, selectorRef, popupRef, triggerOpen);\n\n // Finalize the current interaction only after the popup is actually closed.\n // 仅在 popup 实际关闭后,统一收口当前交互。\n useLayoutEffect(\n (firstMount) => {\n if (!firstMount && !mergedOpen) {\n triggerRangeValueChange(rangeValueIndex ?? activeIndex, 'popupClose');\n }\n },\n [mergedOpen],\n );\n\n // ======================= ShowTime =======================\n /** Used for Popup panel */\n const mergedShowTime = React.useMemo<\n (PopupShowTimeConfig<DateType> & Pick<RangeTimeProps<DateType>, 'defaultOpenValue'>) | null\n >(() => {\n if (!showTime) {\n return null;\n }\n\n const { disabledTime } = showTime;\n\n const proxyDisabledTime = disabledTime\n ? (date: DateType) => {\n const range = getActiveRange(activeIndex);\n const fromDate = getFromDate(calendarValue, triggeredFields, activeIndex);\n return disabledTime(date, range, {\n from: fromDate,\n });\n }\n : undefined;\n\n return { ...showTime, disabledTime: proxyDisabledTime };\n }, [showTime, activeIndex, calendarValue, triggeredFields]);\n\n // ========================= Mode =========================\n const [modes, setModes] = useControlledState<[PanelMode, PanelMode]>([picker, picker], mode);\n\n const mergedMode = modes[activeIndex] || picker;\n\n /** Extends from `mergedMode` to patch `datetime` mode */\n const internalMode: InternalMode =\n mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode;\n\n // ====================== PanelCount ======================\n const multiplePanel = internalMode === picker && internalMode !== 'time';\n\n // ======================= Show Now =======================\n const mergedShowNow = useShowNow(picker, mergedMode, showNow, showToday, true);\n\n // ===================== DisabledDate =====================\n const mergedDisabledDate = useRangeDisabledDate(\n calendarValue,\n disabled,\n activeIndex,\n triggeredFields,\n generateConfig,\n locale,\n disabledDate,\n );\n\n // ======================= Validate =======================\n const [submitInvalidates, onSelectorInvalid] = useFieldsInvalidate(\n calendarValue,\n isInvalidateDate,\n allowEmpty,\n );\n\n // ===================== Picker Value =====================\n const [currentPickerValue, setCurrentPickerValue] = useRangePickerValue(\n generateConfig,\n locale,\n calendarValue,\n modes,\n mergedOpen,\n focused,\n activeIndex,\n internalPicker,\n multiplePanel,\n defaultPickerValue,\n pickerValue,\n mergedShowTime?.defaultOpenValue,\n onPickerValueChange,\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 const clone = fillIndex(modes, activeIndex, nextMode);\n\n if (clone[0] !== modes[0] || clone[1] !== modes[1]) {\n setModes(clone);\n }\n\n // Compatible with `onPanelChange`\n if (onPanelChange && triggerEvent !== false) {\n const clonePickerValue: RangeValueType<DateType> = [...calendarValue];\n if (nextPickerValue) {\n clonePickerValue[activeIndex] = nextPickerValue;\n }\n onPanelChange(clonePickerValue as NoUndefinedRangeValueType<DateType>, clone);\n }\n },\n );\n\n // ======================== Change ========================\n const fillCalendarValue = (date: DateType, index: number) =>\n // Trigger change only when date changed\n fillIndex(calendarValue, index, date);\n\n // ======================== Submit ========================\n /**\n * Trigger by confirm operation.\n * This function has already handle the `needConfirm` check logic.\n * - Selector: enter key\n * - Panel: OK button\n */\n const triggerPartConfirm = (\n date?: DateType | null,\n source: RangeValueChangeSource = 'confirm',\n ) => {\n triggerRangeValueChange(activeIndex, source, date ?? undefined);\n };\n\n // ======================== Click =========================\n const onSelectorClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n const rootNode = (event.target as HTMLElement).getRootNode();\n if (\n !selectorRef.current!.nativeElement.contains(\n (rootNode as Document | ShadowRoot).activeElement ?? document.activeElement,\n )\n ) {\n // Click to focus the enabled input\n const enabledIndex = disabled.findIndex((d) => !d);\n if (enabledIndex >= 0) {\n selectorRef.current!.focus({ index: enabledIndex });\n }\n }\n\n triggerOpen(true);\n\n onClick?.(event);\n };\n\n const onSelectorClear = () => {\n resetRangeValueChange();\n triggerSubmitChange(null);\n triggerOpen(false, { force: true });\n onClear?.();\n };\n\n // ======================== Hover =========================\n const [hoverSource, setHoverSource] = React.useState<'cell' | 'preset' | null>(null);\n const [internalHoverValues, setInternalHoverValues] =\n React.useState<RangeValueType<DateType> | null>(null);\n\n const hoverValues = React.useMemo(() => {\n return internalHoverValues || calendarValue;\n }, [calendarValue, internalHoverValues]);\n\n // \"Weak\" hover only highlights the hovered cell instead of composing a range.\n // Use it while choosing the first value so the pending selection remains selected.\n const showWeakHover =\n // Preset hover always previews the whole range.\n hoverSource === 'cell' &&\n // Once the other field has a value, range hover takes precedence.\n !calendarValue[(activeIndex + 1) % 2] &&\n // Only a changed active value needs weak hover.\n !isSameTimestamp(generateConfig, calendarValue[activeIndex], mergedValue[activeIndex]);\n const activeHoverValue = internalHoverValues?.[activeIndex];\n\n // Clean up `internalHoverValues` when closed\n React.useEffect(() => {\n if (!mergedOpen) {\n setInternalHoverValues(null);\n }\n }, [mergedOpen]);\n\n // ========================================================\n // == Panels ==\n // ========================================================\n // Save the offset with active bar position\n // const [activeOffset, setActiveOffset] = React.useState(0);\n const [activeInfo, setActiveInfo] = React.useState<\n [activeInputLeft: number, activeInputRight: number, selectorWidth: number]\n >([0, 0, 0]);\n\n const onSetHover = (date: RangeValueType<DateType> | null, source: 'cell' | 'preset') => {\n if (previewValue !== 'hover') {\n return;\n }\n setInternalHoverValues(date);\n setHoverSource(source);\n };\n\n // ======================= Presets ========================\n const presetList = usePresets(presets, ranges);\n\n const onPresetHover = (nextValues: RangeValueType<DateType> | null) => {\n onSetHover(nextValues, 'preset');\n };\n\n const onPresetSubmit = (nextValues: RangeValueType<DateType>) => {\n const passed = triggerSubmitChange(nextValues);\n\n if (passed) {\n triggerOpen(false, { force: true });\n }\n };\n\n const onNow = (now: DateType) => {\n triggerPartConfirm(now);\n };\n\n // ======================== Panel =========================\n const onPanelHover = (date: DateType) => {\n onSetHover(date ? fillCalendarValue(date, activeIndex) : null, 'cell');\n };\n\n // >>> Focus\n const onPanelFocus: React.FocusEventHandler<HTMLElement> = (event) => {\n triggerOpen(true);\n onFieldFocus(activeIndex, 'panel', event);\n };\n\n // >>> Calendar\n const onPanelSelect: PickerPanelProps<DateType>['onSelect'] = (date: DateType) => {\n const panelFinished = !complexPicker && internalPicker === internalMode;\n\n triggerRangeValueChange(\n activeIndex,\n panelFinished ? 'panel-final' : 'panel-intermediate',\n date,\n );\n };\n\n // >>> Close\n const onPopupClose = () => {\n triggerOpen(false);\n };\n\n // >>> cellRender\n const onInternalCellRender = useCellRender(\n cellRender,\n dateRender,\n monthCellRender,\n getActiveRange(activeIndex),\n );\n\n // >>> Value\n const panelValue = calendarValue[activeIndex] || null;\n\n // >>> invalid\n const isPopupInvalidateDate = useEvent((date: DateType) => {\n return isInvalidateDate(date, {\n activeIndex,\n });\n });\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 'disabledTime',\n 'classNames',\n 'styles',\n ]);\n return restProps;\n }, [filledProps]);\n\n // >>> Render\n const panel = (\n <Popup<any>\n containerRef={popupRef}\n // MISC\n {...panelProps}\n defaultOpenValue={toArray(showTime?.defaultOpenValue)[activeIndex]}\n hoverRangeValue={showWeakHover ? null : hoverValues}\n internalMode={internalMode}\n multiplePanel={multiplePanel}\n showNow={mergedShowNow}\n styles={mergedStyles}\n value={panelValue}\n onChange={null}\n onFocus={onPanelFocus}\n onPresetHover={onPresetHover}\n onSubmit={(date) => triggerPartConfirm(date, 'confirm')}\n activeInfo={activeInfo}\n // Disabled\n disabledDate={mergedDisabledDate}\n cellRender={onInternalCellRender}\n // Styles\n classNames={mergedClassNames}\n isInvalid={isPopupInvalidateDate}\n // Focus\n mode={mergedMode}\n showTime={mergedShowTime}\n // Range\n range\n onBlur={(event) => onFieldBlur(activeIndex, 'panel', event)}\n // Mode\n picker={picker}\n onHover={onPanelHover}\n // Submit\n needConfirm={needConfirm}\n onOk={triggerOk}\n // Preset\n presets={presetList}\n onPanelChange={triggerModeChange}\n // Value\n format={maskFormat}\n onPickerValueChange={setCurrentPickerValue}\n // Hover\n hoverValue={showWeakHover && activeHoverValue ? [activeHoverValue] : null}\n // Render\n onPresetSubmit={onPresetSubmit}\n // Now\n onNow={onNow}\n onSelect={onPanelSelect}\n // PickerValue\n pickerValue={currentPickerValue}\n />\n );\n\n // ========================================================\n // == Selector ==\n // ========================================================\n\n // ======================== Change ========================\n const onSelectorChange = (date: DateType, index?: number) => {\n triggerRangeValueChange(index!, 'input', date);\n };\n\n const onSelectorInputChange = () => {\n triggerRangeValueChange(activeIndex, 'input');\n };\n\n // ======================= Selector =======================\n const onSelectorFocus: SelectorProps['onFocus'] = (event, index) => {\n triggerRangeValueChange(index!, 'field-switch');\n\n triggerOpen(true, {\n inherit: true,\n });\n\n onFieldFocus(index!, 'input', event);\n };\n\n const onSelectorBlur: SelectorProps['onBlur'] = (event, index) => {\n onFieldBlur(index!, 'input', event);\n };\n\n const onSelectorKeyDown: SelectorProps['onKeyDown'] = (event, preventDefault) => {\n if (event.key === 'Tab') {\n triggerPartConfirm(null, 'keyboard-submit-weak');\n } else if (event.key === 'Escape') {\n triggerRangeValueChange(activeIndex, '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 // ====================== DevWarning ======================\n if (process.env.NODE_ENV !== 'production') {\n const isIndexEmpty = (index: number) => {\n return (\n // Value is empty\n !value?.[index] &&\n // DefaultValue is empty\n !defaultValue?.[index]\n );\n };\n\n if (\n disabled.some(\n (fieldDisabled, index) => fieldDisabled && isIndexEmpty(index) && !allowEmpty[index],\n )\n ) {\n warning(\n false,\n '`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.',\n );\n }\n }\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 popupClassName={clsx(rootClassName, mergedClassNames.popup.root)}\n // Visible\n visible={mergedOpen}\n onClose={onPopupClose}\n // Range\n range\n >\n <RangeSelector\n // Shared\n {...filledProps}\n // Ref\n activeHelp={!!internalHoverValues}\n focused={focused}\n maskFormat={maskFormat}\n open={mergedOpen}\n onBlur={onSelectorBlur}\n onChange={onSelectorChange}\n onFocus={onSelectorFocus}\n onKeyDown={onSelectorKeyDown}\n activeIndex={focused || mergedOpen ? activeIndex : null}\n // Active\n allHelp={!!internalHoverValues && hoverSource === 'preset'}\n inputReadOnly={inputReadOnly}\n // Disabled\n disabled={disabled}\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={submitInvalidates}\n // Open\n onInputChange={onSelectorInputChange}\n // Format\n format={formatList}\n onInvalid={onSelectorInvalid}\n // Offset\n onActiveInfo={setActiveInfo}\n onOpenChange={triggerOpen}\n // Click\n onClick={onSelectorClick}\n onSubmit={() => triggerPartConfirm(null, 'keyboard-submit')}\n // Change\n value={hoverValues}\n />\n </PickerPopup>\n </PickerContext>\n );\n}\n\nconst RefRangePicker = React.forwardRef(RangePicker) as <DateType extends object = any>(\n props: RangePickerProps<DateType> & React.RefAttributes<RangePickerRef>,\n) => React.ReactElement;\n\nif (process.env.NODE_ENV !== 'production') {\n (RefRangePicker as any).displayName = 'RefRangePicker';\n}\n\nexport default RefRangePicker;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import PickerContext from "../context.mjs";
|
|
2
|
+
import * as React$1 from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { clsx } from "clsx";
|
|
5
|
+
//#region src/DatePicker/core/PickerInput/Selector/ClearIcon.tsx
|
|
6
|
+
function ClearIcon({ icon, onClear, ...restProps }) {
|
|
7
|
+
const { prefixCls, classNames, styles, locale } = React$1.use(PickerContext);
|
|
8
|
+
return /* @__PURE__ */ jsx("button", {
|
|
9
|
+
...restProps,
|
|
10
|
+
"aria-label": locale.clear,
|
|
11
|
+
className: clsx(`${prefixCls}-clear`, classNames.suffix),
|
|
12
|
+
style: styles.suffix,
|
|
13
|
+
type: "button",
|
|
14
|
+
onClick: (e) => {
|
|
15
|
+
e.stopPropagation();
|
|
16
|
+
onClear();
|
|
17
|
+
},
|
|
18
|
+
onMouseDown: (e) => {
|
|
19
|
+
e.preventDefault();
|
|
20
|
+
},
|
|
21
|
+
children: icon
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { ClearIcon as default };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=ClearIcon.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClearIcon.mjs","names":["React"],"sources":["../../../../../src/DatePicker/core/PickerInput/Selector/ClearIcon.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport * as React from 'react';\n\nimport PickerContext from '../context';\n\nexport interface ClearIconProps extends React.HtmlHTMLAttributes<HTMLElement> {\n icon?: React.ReactNode;\n onClear: VoidFunction;\n}\n\nexport default function ClearIcon({ icon, onClear, ...restProps }: ClearIconProps) {\n const { prefixCls, classNames, styles, locale } = React.use(PickerContext);\n\n return (\n <button\n {...restProps}\n aria-label={locale.clear}\n className={clsx(`${prefixCls}-clear`, classNames.suffix)}\n style={styles.suffix}\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n onClear();\n }}\n onMouseDown={(e) => {\n e.preventDefault();\n }}\n >\n {icon}\n </button>\n );\n}\n"],"mappings":";;;;;AAUA,SAAwB,UAAU,EAAE,MAAM,SAAS,GAAG,aAA6B;CACjF,MAAM,EAAE,WAAW,YAAY,QAAQ,WAAWA,QAAM,IAAI,aAAa;CAEzE,OACE,oBAAC,UAAD;EACE,GAAI;EACJ,cAAY,OAAO;EACnB,WAAW,KAAK,GAAG,UAAU,SAAS,WAAW,MAAM;EACvD,OAAO,OAAO;EACd,MAAK;EACL,UAAU,MAAM;GACd,EAAE,gBAAgB;GAClB,QAAQ;EACV;EACA,cAAc,MAAM;GAClB,EAAE,eAAe;EACnB;EAEC,UAAA;CACK,CAAA;AAEZ"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import PickerContext from "../context.mjs";
|
|
2
|
+
import { isReactRenderable } from "../../utils/common.mjs";
|
|
3
|
+
import * as React$1 from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { clsx } from "clsx";
|
|
6
|
+
//#region src/DatePicker/core/PickerInput/Selector/Icon.tsx
|
|
7
|
+
function Icon({ icon, ...restProps }) {
|
|
8
|
+
const { prefixCls, classNames, styles } = React$1.use(PickerContext);
|
|
9
|
+
return isReactRenderable(icon) ? /* @__PURE__ */ jsx("span", {
|
|
10
|
+
className: clsx(`${prefixCls}-suffix`, classNames.suffix),
|
|
11
|
+
style: styles.suffix,
|
|
12
|
+
...restProps,
|
|
13
|
+
children: icon
|
|
14
|
+
}) : null;
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { Icon as default };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=Icon.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.mjs","names":["React"],"sources":["../../../../../src/DatePicker/core/PickerInput/Selector/Icon.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport * as React from 'react';\n\nimport { isReactRenderable } from '../../utils/common';\nimport PickerContext from '../context';\n\nexport interface IconProps extends React.HtmlHTMLAttributes<HTMLElement> {\n icon?: React.ReactNode;\n}\n\nexport default function Icon({ icon, ...restProps }: IconProps) {\n const { prefixCls, classNames, styles } = React.use(PickerContext);\n\n return isReactRenderable(icon) ? (\n <span\n className={clsx(`${prefixCls}-suffix`, classNames.suffix)}\n style={styles.suffix}\n {...restProps}\n >\n {icon}\n </span>\n ) : null;\n}\n"],"mappings":";;;;;;AAUA,SAAwB,KAAK,EAAE,MAAM,GAAG,aAAwB;CAC9D,MAAM,EAAE,WAAW,YAAY,WAAWA,QAAM,IAAI,aAAa;CAEjE,OAAO,kBAAkB,IAAI,IAC3B,oBAAC,QAAD;EACE,WAAW,KAAK,GAAG,UAAU,UAAU,WAAW,MAAM;EACxD,OAAO,OAAO;EACd,GAAI;EAEH,UAAA;CACG,CAAA,IACJ;AACN"}
|