@lobehub/ui 6.0.0-beta.7 → 6.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/Accordion/Accordion.mjs +3 -3
- package/es/Accordion/Accordion.mjs.map +1 -1
- package/es/Accordion/atoms.mjs +2 -2
- package/es/Accordion/atoms.mjs.map +1 -1
- package/es/Accordion/style.d.mts +1 -1
- package/es/ActionIcon/ActionIcon.mjs +2 -2
- package/es/ActionIcon/ActionIcon.mjs.map +1 -1
- package/es/Alert/Alert.mjs +5 -5
- package/es/Alert/Alert.mjs.map +1 -1
- package/es/AutoComplete/AutoComplete.mjs +5 -5
- package/es/AutoComplete/AutoComplete.mjs.map +1 -1
- package/es/AutoComplete/style.mjs +2 -2
- package/es/AutoComplete/style.mjs.map +1 -1
- package/es/Avatar/Avatar.mjs +2 -2
- package/es/Avatar/Avatar.mjs.map +1 -1
- package/es/Avatar/AvatarGroup/index.mjs +2 -2
- package/es/Avatar/AvatarGroup/index.mjs.map +1 -1
- package/es/Breadcrumb/Breadcrumb.mjs +2 -2
- package/es/Breadcrumb/Breadcrumb.mjs.map +1 -1
- package/es/Button/Button.mjs +1 -1
- package/es/Button/Button.mjs.map +1 -1
- package/es/Button/style.d.mts +8 -1
- package/es/Button/style.mjs +41 -18
- package/es/Button/style.mjs.map +1 -1
- package/es/Checkbox/Checkbox.mjs +3 -3
- package/es/Checkbox/Checkbox.mjs.map +1 -1
- package/es/CodeDiff/DiffPanel.mjs +4 -4
- package/es/CodeDiff/DiffPanel.mjs.map +1 -1
- package/es/CodeEditor/CodeEditor.mjs +4 -4
- package/es/CodeEditor/CodeEditor.mjs.map +1 -1
- package/es/ColorPicker/ColorInputs.mjs +136 -0
- package/es/ColorPicker/ColorInputs.mjs.map +1 -0
- package/es/ColorPicker/ColorPanel.mjs +145 -0
- package/es/ColorPicker/ColorPanel.mjs.map +1 -0
- package/es/ColorPicker/ColorPicker.mjs +62 -199
- package/es/ColorPicker/ColorPicker.mjs.map +1 -1
- package/es/ColorPicker/SaturationArea.mjs +2 -1
- package/es/ColorPicker/SaturationArea.mjs.map +1 -1
- package/es/ColorPicker/Swatch.mjs +24 -0
- package/es/ColorPicker/Swatch.mjs.map +1 -0
- package/es/ColorPicker/Swatches.mjs +66 -0
- package/es/ColorPicker/Swatches.mjs.map +1 -0
- package/es/ColorPicker/Trigger.mjs +112 -0
- package/es/ColorPicker/Trigger.mjs.map +1 -0
- package/es/ColorPicker/color.mjs +25 -1
- package/es/ColorPicker/color.mjs.map +1 -1
- package/es/ColorPicker/recent.mjs +25 -0
- package/es/ColorPicker/recent.mjs.map +1 -0
- package/es/ColorPicker/style.mjs +269 -70
- package/es/ColorPicker/style.mjs.map +1 -1
- package/es/ColorPicker/type.d.mts +15 -0
- package/es/ContextMenu/ContextMenuHost.mjs +2 -2
- package/es/ContextMenu/ContextMenuHost.mjs.map +1 -1
- package/es/ContextMenu/ContextMenuTrigger.mjs +2 -2
- package/es/ContextMenu/ContextMenuTrigger.mjs.map +1 -1
- package/es/ContextMenu/renderItems.mjs +3 -3
- package/es/ContextMenu/renderItems.mjs.map +1 -1
- package/es/DatePicker/DatePicker.d.mts +9 -2
- package/es/DatePicker/DatePicker.mjs +15 -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/DayjsDatePicker.d.mts +12 -0
- package/es/DatePicker/DayjsDatePicker.mjs +19 -0
- package/es/DatePicker/DayjsDatePicker.mjs.map +1 -0
- package/es/DatePicker/DayjsDateRangePicker.d.mts +7 -0
- package/es/DatePicker/DayjsDateRangePicker.mjs +8 -0
- package/es/DatePicker/DayjsDateRangePicker.mjs.map +1 -0
- package/es/DatePicker/PurePanel.mjs +65 -0
- package/es/DatePicker/PurePanel.mjs.map +1 -0
- package/es/DatePicker/RangePicker.mjs +121 -0
- package/es/DatePicker/RangePicker.mjs.map +1 -0
- package/es/DatePicker/SinglePicker.mjs +134 -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/dateGenerateConfig.mjs +52 -0
- package/es/DatePicker/dateGenerateConfig.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 +8 -3
- package/es/DatePicker/index.mjs +5 -1
- package/es/DatePicker/legacyDate.mjs +58 -0
- package/es/DatePicker/legacyDate.mjs.map +1 -0
- 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 +294 -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 +49 -0
- package/es/DatePicker/usePresetActive.mjs.map +1 -0
- package/es/DraggablePanel/atoms.mjs +5 -5
- package/es/DraggablePanel/atoms.mjs.map +1 -1
- package/es/DraggableSideNav/DraggableSideNav.mjs +3 -3
- package/es/DraggableSideNav/DraggableSideNav.mjs.map +1 -1
- package/es/Drawer/Drawer.mjs +2 -2
- package/es/Drawer/Drawer.mjs.map +1 -1
- package/es/Drawer/atoms.mjs +6 -6
- package/es/Drawer/atoms.mjs.map +1 -1
- package/es/DropdownMenu/atoms.mjs +22 -22
- package/es/DropdownMenu/atoms.mjs.map +1 -1
- package/es/DropdownMenu/sharedStyle.mjs +2 -2
- package/es/DropdownMenu/sharedStyle.mjs.map +1 -1
- package/es/EditorSlashMenu/atoms.mjs +12 -12
- package/es/EditorSlashMenu/atoms.mjs.map +1 -1
- package/es/EmojiPicker/EmojiPicker.mjs +7 -7
- package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
- package/es/EmojiPicker/loadEmojiData.mjs +6 -0
- package/es/EmojiPicker/loadEmojiData.mjs.map +1 -0
- package/es/FloatingPanel/FloatingPanel.mjs +2 -2
- package/es/FloatingPanel/FloatingPanel.mjs.map +1 -1
- package/es/FormKit/List.mjs +2 -2
- package/es/FormKit/List.mjs.map +1 -1
- package/es/Highlighter/FullFeatured.mjs +2 -2
- package/es/Highlighter/FullFeatured.mjs.map +1 -1
- package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs +2 -2
- package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs.map +1 -1
- package/es/Highlighter/SyntaxHighlighter/index.mjs +4 -4
- package/es/Highlighter/SyntaxHighlighter/index.mjs.map +1 -1
- package/es/Highlighter/style.mjs +2 -2
- package/es/Highlighter/style.mjs.map +1 -1
- package/es/HtmlPreview/HtmlPreview.mjs +2 -2
- package/es/HtmlPreview/HtmlPreview.mjs.map +1 -1
- package/es/Icon/Icon.mjs +2 -2
- package/es/Icon/Icon.mjs.map +1 -1
- package/es/List/ListRow.mjs +3 -3
- package/es/List/ListRow.mjs.map +1 -1
- package/es/Markdown/Markdown.mjs +2 -2
- package/es/Markdown/Markdown.mjs.map +1 -1
- package/es/Markdown/Typography.mjs +2 -2
- package/es/Markdown/Typography.mjs.map +1 -1
- package/es/Mermaid/FullFeatured.mjs +2 -2
- package/es/Mermaid/FullFeatured.mjs.map +1 -1
- package/es/Mermaid/SyntaxMermaid/index.mjs +4 -4
- package/es/Mermaid/SyntaxMermaid/index.mjs.map +1 -1
- package/es/Modal/atoms.mjs +6 -6
- package/es/Modal/atoms.mjs.map +1 -1
- package/es/Pagination/Pagination.mjs +181 -41
- package/es/Pagination/Pagination.mjs.map +1 -1
- package/es/Pagination/helpers.mjs +3 -3
- package/es/Pagination/helpers.mjs.map +1 -1
- package/es/Pagination/index.d.mts +2 -2
- package/es/Pagination/marker.stylex.mjs +9 -0
- package/es/Pagination/marker.stylex.mjs.map +1 -0
- package/es/Pagination/style.mjs +74 -4
- package/es/Pagination/style.mjs.map +1 -1
- package/es/Pagination/type.d.mts +41 -3
- package/es/Popover/PopoverInGroup.mjs +2 -2
- package/es/Popover/PopoverInGroup.mjs.map +1 -1
- package/es/Popover/atoms.mjs +6 -6
- package/es/Popover/atoms.mjs.map +1 -1
- package/es/ProTable/ProTable.d.mts +11 -0
- package/es/ProTable/ProTable.mjs +208 -0
- package/es/ProTable/ProTable.mjs.map +1 -0
- package/es/ProTable/hooks/useColumnRequest.mjs +55 -0
- package/es/ProTable/hooks/useColumnRequest.mjs.map +1 -0
- package/es/ProTable/hooks/useColumnsState.mjs +37 -0
- package/es/ProTable/hooks/useColumnsState.mjs.map +1 -0
- package/es/ProTable/hooks/useDelayedFlag.mjs +18 -0
- package/es/ProTable/hooks/useDelayedFlag.mjs.map +1 -0
- package/es/ProTable/hooks/useDensity.mjs +15 -0
- package/es/ProTable/hooks/useDensity.mjs.map +1 -0
- package/es/ProTable/hooks/useFetchData.mjs +97 -0
- package/es/ProTable/hooks/useFetchData.mjs.map +1 -0
- package/es/ProTable/hooks/useFullscreen.mjs +22 -0
- package/es/ProTable/hooks/useFullscreen.mjs.map +1 -0
- package/es/ProTable/hooks/usePageInfo.mjs +35 -0
- package/es/ProTable/hooks/usePageInfo.mjs.map +1 -0
- package/es/ProTable/hooks/useProColumns.mjs +123 -0
- package/es/ProTable/hooks/useProColumns.mjs.map +1 -0
- package/es/ProTable/hooks/useProLoading.mjs +19 -0
- package/es/ProTable/hooks/useProLoading.mjs.map +1 -0
- package/es/ProTable/hooks/useProLocale.mjs +22 -0
- package/es/ProTable/hooks/useProLocale.mjs.map +1 -0
- package/es/ProTable/hooks/useProRequest.mjs +137 -0
- package/es/ProTable/hooks/useProRequest.mjs.map +1 -0
- package/es/ProTable/hooks/useRowCache.mjs +11 -0
- package/es/ProTable/hooks/useRowCache.mjs.map +1 -0
- package/es/ProTable/hooks/useSearchForm.mjs +141 -0
- package/es/ProTable/hooks/useSearchForm.mjs.map +1 -0
- package/es/ProTable/hooks/useTableBindings.mjs +39 -0
- package/es/ProTable/hooks/useTableBindings.mjs.map +1 -0
- package/es/ProTable/hooks/useTableSelection.mjs +14 -0
- package/es/ProTable/hooks/useTableSelection.mjs.map +1 -0
- package/es/ProTable/index.d.mts +4 -0
- package/es/ProTable/index.d.ts +1 -0
- package/es/ProTable/index.js +1 -0
- package/es/ProTable/index.mjs +3 -0
- package/es/ProTable/locale.d.mts +15 -0
- package/es/ProTable/locale.mjs +66 -0
- package/es/ProTable/locale.mjs.map +1 -0
- package/es/ProTable/parts/ColumnSetting.mjs +155 -0
- package/es/ProTable/parts/ColumnSetting.mjs.map +1 -0
- package/es/ProTable/parts/FieldControl.mjs +117 -0
- package/es/ProTable/parts/FieldControl.mjs.map +1 -0
- package/es/ProTable/parts/KeywordInput.mjs +19 -0
- package/es/ProTable/parts/KeywordInput.mjs.map +1 -0
- package/es/ProTable/parts/LightFilter.mjs +70 -0
- package/es/ProTable/parts/LightFilter.mjs.map +1 -0
- package/es/ProTable/parts/OptionPopover.mjs +17 -0
- package/es/ProTable/parts/OptionPopover.mjs.map +1 -0
- package/es/ProTable/parts/SearchForm.mjs +180 -0
- package/es/ProTable/parts/SearchForm.mjs.map +1 -0
- package/es/ProTable/parts/SearchSection.mjs +33 -0
- package/es/ProTable/parts/SearchSection.mjs.map +1 -0
- package/es/ProTable/parts/TableAlert.mjs +38 -0
- package/es/ProTable/parts/TableAlert.mjs.map +1 -0
- package/es/ProTable/parts/Toolbar.mjs +50 -0
- package/es/ProTable/parts/Toolbar.mjs.map +1 -0
- package/es/ProTable/parts/ToolbarOptions.mjs +103 -0
- package/es/ProTable/parts/ToolbarOptions.mjs.map +1 -0
- package/es/ProTable/parts/renderValue.mjs +118 -0
- package/es/ProTable/parts/renderValue.mjs.map +1 -0
- package/es/ProTable/style.mjs +278 -0
- package/es/ProTable/style.mjs.map +1 -0
- package/es/ProTable/type.d.mts +397 -0
- package/es/ProTable/utils.mjs +152 -0
- package/es/ProTable/utils.mjs.map +1 -0
- package/es/Radio/Radio.mjs +3 -3
- package/es/Radio/Radio.mjs.map +1 -1
- package/es/ScrollArea/atoms.mjs +4 -4
- package/es/ScrollArea/atoms.mjs.map +1 -1
- package/es/Segmented/Segmented.mjs +3 -3
- package/es/Segmented/Segmented.mjs.map +1 -1
- package/es/Segmented/atoms.mjs +2 -2
- package/es/Segmented/atoms.mjs.map +1 -1
- package/es/Select/Select.mjs +22 -13
- package/es/Select/Select.mjs.map +1 -1
- package/es/Select/atoms.mjs +4 -4
- package/es/Select/atoms.mjs.map +1 -1
- package/es/Select/helpers.mjs +8 -1
- package/es/Select/helpers.mjs.map +1 -1
- package/es/Select/hooks.mjs +8 -4
- package/es/Select/hooks.mjs.map +1 -1
- package/es/Select/renderOptions.mjs +2 -2
- package/es/Select/renderOptions.mjs.map +1 -1
- package/es/Select/type.d.mts +7 -0
- package/es/Switch/Switch.mjs +2 -2
- package/es/Switch/Switch.mjs.map +1 -1
- package/es/Switch/atoms.mjs +2 -2
- package/es/Switch/atoms.mjs.map +1 -1
- package/es/Table/Column.d.mts +8 -0
- package/es/Table/Column.mjs +6 -0
- package/es/Table/Column.mjs.map +1 -0
- package/es/Table/ColumnGroup.d.mts +11 -0
- package/es/Table/ColumnGroup.mjs +6 -0
- package/es/Table/ColumnGroup.mjs.map +1 -0
- package/es/Table/Table.d.mts +16 -2
- package/es/Table/Table.mjs +149 -118
- package/es/Table/Table.mjs.map +1 -1
- package/es/Table/atoms/cells.d.mts +42 -0
- package/es/Table/atoms/cells.mjs +72 -0
- package/es/Table/atoms/cells.mjs.map +1 -0
- package/es/Table/atoms/index.d.mts +3 -0
- package/es/Table/atoms/layout.d.mts +44 -0
- package/es/Table/atoms/layout.mjs +62 -0
- package/es/Table/atoms/layout.mjs.map +1 -0
- package/es/Table/constants.mjs +16 -0
- package/es/Table/constants.mjs.map +1 -0
- package/es/Table/engine/fixed.d.mts +1 -0
- package/es/Table/engine/fixed.mjs +53 -0
- package/es/Table/engine/fixed.mjs.map +1 -0
- package/es/Table/engine/types.d.mts +1 -0
- package/es/Table/engine/useTableEngine.mjs +180 -0
- package/es/Table/engine/useTableEngine.mjs.map +1 -0
- package/es/Table/index.d.mts +7 -2
- package/es/Table/index.mjs +4 -1
- package/es/Table/internal.d.mts +3 -0
- package/es/Table/pipeline/columnUtils.d.mts +5 -0
- package/es/Table/pipeline/columnUtils.mjs +58 -0
- package/es/Table/pipeline/columnUtils.mjs.map +1 -0
- package/es/Table/pipeline/convertChildrenToColumns.mjs +24 -0
- package/es/Table/pipeline/convertChildrenToColumns.mjs.map +1 -0
- package/es/Table/pipeline/normalizeColumns.mjs +140 -0
- package/es/Table/pipeline/normalizeColumns.mjs.map +1 -0
- package/es/Table/pipeline/selectionUtils.d.mts +9 -0
- package/es/Table/pipeline/selectionUtils.mjs +115 -0
- package/es/Table/pipeline/selectionUtils.mjs.map +1 -0
- package/es/Table/pipeline/useBreakpoint.mjs +36 -0
- package/es/Table/pipeline/useBreakpoint.mjs.map +1 -0
- package/es/Table/pipeline/useExpandable.mjs +45 -0
- package/es/Table/pipeline/useExpandable.mjs.map +1 -0
- package/es/Table/pipeline/useFilter.mjs +52 -0
- package/es/Table/pipeline/useFilter.mjs.map +1 -0
- package/es/Table/pipeline/useSelection.mjs +302 -0
- package/es/Table/pipeline/useSelection.mjs.map +1 -0
- package/es/Table/pipeline/useSorter.mjs +146 -0
- package/es/Table/pipeline/useSorter.mjs.map +1 -0
- package/es/Table/pipeline/useTableLocale.mjs +30 -0
- package/es/Table/pipeline/useTableLocale.mjs.map +1 -0
- package/es/Table/pipeline/useTableState.mjs +118 -0
- package/es/Table/pipeline/useTableState.mjs.map +1 -0
- package/es/Table/pipeline/useVirtualLayout.mjs +80 -0
- package/es/Table/pipeline/useVirtualLayout.mjs.map +1 -0
- package/es/Table/render/Body.mjs +150 -0
- package/es/Table/render/Body.mjs.map +1 -0
- package/es/Table/render/BodyCell.mjs +87 -0
- package/es/Table/render/BodyCell.mjs.map +1 -0
- package/es/Table/render/CellShell.mjs +84 -0
- package/es/Table/render/CellShell.mjs.map +1 -0
- package/es/Table/render/ExpandIcon.mjs +28 -0
- package/es/Table/render/ExpandIcon.mjs.map +1 -0
- package/es/Table/render/FilterDropdown.mjs +139 -0
- package/es/Table/render/FilterDropdown.mjs.map +1 -0
- package/es/Table/render/FilterPanel.mjs +152 -0
- package/es/Table/render/FilterPanel.mjs.map +1 -0
- package/es/Table/render/FixedFrost.mjs +113 -0
- package/es/Table/render/FixedFrost.mjs.map +1 -0
- package/es/Table/render/FixedHolder.mjs +51 -0
- package/es/Table/render/FixedHolder.mjs.map +1 -0
- package/es/Table/render/Header.mjs +184 -0
- package/es/Table/render/Header.mjs.map +1 -0
- package/es/Table/render/LoadingSkeleton.mjs +78 -0
- package/es/Table/render/LoadingSkeleton.mjs.map +1 -0
- package/es/Table/render/PaginationBar.mjs +71 -0
- package/es/Table/render/PaginationBar.mjs.map +1 -0
- package/es/Table/render/SelectionCells.mjs +111 -0
- package/es/Table/render/SelectionCells.mjs.map +1 -0
- package/es/Table/render/StickyScrollBar.mjs +99 -0
- package/es/Table/render/StickyScrollBar.mjs.map +1 -0
- package/es/Table/render/Summary.d.mts +16 -0
- package/es/Table/render/Summary.mjs +58 -0
- package/es/Table/render/Summary.mjs.map +1 -0
- package/es/Table/render/TableView.mjs +215 -0
- package/es/Table/render/TableView.mjs.map +1 -0
- package/es/Table/render/VirtualBody.mjs +101 -0
- package/es/Table/render/VirtualBody.mjs.map +1 -0
- package/es/Table/render/context.mjs +15 -0
- package/es/Table/render/context.mjs.map +1 -0
- package/es/Table/render/filterUtils.mjs +22 -0
- package/es/Table/render/filterUtils.mjs.map +1 -0
- package/es/Table/render/tableHelpers.mjs +27 -0
- package/es/Table/render/tableHelpers.mjs.map +1 -0
- package/es/Table/render/useColGroups.mjs +23 -0
- package/es/Table/render/useColGroups.mjs.map +1 -0
- package/es/Table/render/useScrollSync.mjs +104 -0
- package/es/Table/render/useScrollSync.mjs.map +1 -0
- package/es/Table/render/useViewContexts.mjs +134 -0
- package/es/Table/render/useViewContexts.mjs.map +1 -0
- package/es/Table/semantic.mjs +45 -0
- package/es/Table/semantic.mjs.map +1 -0
- package/es/Table/store/createTableStore.d.mts +1 -0
- package/es/Table/store/createTableStore.mjs +40 -0
- package/es/Table/store/createTableStore.mjs.map +1 -0
- package/es/Table/store/hooks.mjs +24 -0
- package/es/Table/store/hooks.mjs.map +1 -0
- package/es/Table/style.mjs +175 -90
- package/es/Table/style.mjs.map +1 -1
- package/es/Table/type.d.mts +467 -37
- package/es/Table/useTableController.mjs +293 -0
- package/es/Table/useTableController.mjs.map +1 -0
- package/es/Tabs/Tabs.mjs +2 -2
- package/es/Tabs/Tabs.mjs.map +1 -1
- package/es/Tabs/atoms.mjs +2 -2
- package/es/Tabs/atoms.mjs.map +1 -1
- package/es/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 -6
- package/es/index.mjs +12 -6
- package/es/internal/overflow/OverflowList.mjs +71 -0
- package/es/internal/overflow/OverflowList.mjs.map +1 -0
- package/es/mdx/Callout/index.mjs +2 -2
- package/es/mdx/Callout/index.mjs.map +1 -1
- package/es/mdx/Cards/Card.mjs +2 -2
- package/es/mdx/Cards/Card.mjs.map +1 -1
- package/es/mdx/Cards/index.mjs +2 -2
- package/es/mdx/Cards/index.mjs.map +1 -1
- package/es/mdx/Mdx/index.mjs +2 -2
- package/es/mdx/Mdx/index.mjs.map +1 -1
- package/es/mdx/Steps/index.mjs +2 -2
- package/es/mdx/Steps/index.mjs.map +1 -1
- package/es/mdx/mdxComponents/Pre.mjs +5 -5
- package/es/mdx/mdxComponents/Pre.mjs.map +1 -1
- package/es/storybook/StoryBook/style.mjs +2 -0
- package/es/storybook/StoryBook/style.mjs.map +1 -1
- package/es/style.css +2966 -957
- package/es/styles/stylex/props.mjs +2 -2
- package/es/styles/stylex/props.mjs.map +1 -1
- package/es/styles/theme/themeCss.mjs +15 -0
- package/es/styles/theme/themeCss.mjs.map +1 -1
- package/es/theme.css +8 -0
- package/package.json +6 -1
- package/es/DatePicker/CalendarPanel.mjs +0 -189
- package/es/DatePicker/CalendarPanel.mjs.map +0 -1
- package/es/DatePicker/PickerShell.mjs +0 -43
- package/es/DatePicker/PickerShell.mjs.map +0 -1
- package/es/DatePicker/calendar.d.mts +0 -4
- package/es/DatePicker/calendar.mjs +0 -46
- package/es/DatePicker/calendar.mjs.map +0 -1
- package/es/Table/FilterMenu.mjs +0 -45
- package/es/Table/FilterMenu.mjs.map +0 -1
- package/es/Table/TableBody.mjs +0 -67
- package/es/Table/TableBody.mjs.map +0 -1
- package/es/Table/TableHead.mjs +0 -58
- package/es/Table/TableHead.mjs.map +0 -1
- package/es/Table/features.mjs +0 -12
- package/es/Table/features.mjs.map +0 -1
- package/es/Table/fixedOffsets.mjs +0 -29
- package/es/Table/fixedOffsets.mjs.map +0 -1
- package/es/Table/marker.stylex.mjs +0 -9
- package/es/Table/marker.stylex.mjs.map +0 -1
- package/es/Table/toColumnDefs.mjs +0 -26
- package/es/Table/toColumnDefs.mjs.map +0 -1
- package/es/Table/useTableState.mjs +0 -99
- package/es/Table/useTableState.mjs.map +0 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useEventCallback } from "../../hooks/useEventCallback.mjs";
|
|
2
|
+
import { useMemo, useState } from "react";
|
|
3
|
+
//#region src/ProTable/hooks/usePageInfo.ts
|
|
4
|
+
const usePageInfo = (pagination) => {
|
|
5
|
+
const config = useMemo(() => pagination === false ? false : pagination ?? {}, [pagination]);
|
|
6
|
+
const [pageInfo, setPageInfoState] = useState(() => ({
|
|
7
|
+
current: config && (config.current ?? config.defaultCurrent) || 1,
|
|
8
|
+
pageSize: config && (config.pageSize ?? config.defaultPageSize) || 10,
|
|
9
|
+
total: 0
|
|
10
|
+
}));
|
|
11
|
+
const controlledCurrent = config ? config.current : void 0;
|
|
12
|
+
const controlledPageSize = config ? config.pageSize : void 0;
|
|
13
|
+
return {
|
|
14
|
+
config,
|
|
15
|
+
pageInfo: useMemo(() => ({
|
|
16
|
+
...pageInfo,
|
|
17
|
+
...controlledCurrent !== void 0 && { current: controlledCurrent },
|
|
18
|
+
...controlledPageSize !== void 0 && { pageSize: controlledPageSize }
|
|
19
|
+
}), [
|
|
20
|
+
pageInfo,
|
|
21
|
+
controlledCurrent,
|
|
22
|
+
controlledPageSize
|
|
23
|
+
]),
|
|
24
|
+
setPageInfo: useEventCallback((next) => setPageInfoState((prev) => {
|
|
25
|
+
return Object.entries(next).some(([key, value]) => prev[key] !== value) ? {
|
|
26
|
+
...prev,
|
|
27
|
+
...next
|
|
28
|
+
} : prev;
|
|
29
|
+
}))
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
//#endregion
|
|
33
|
+
export { usePageInfo };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=usePageInfo.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePageInfo.mjs","names":[],"sources":["../../../src/ProTable/hooks/usePageInfo.ts"],"sourcesContent":["import { useMemo, useState } from 'react';\n\nimport { useEventCallback } from '@/hooks/useEventCallback';\nimport type { TablePaginationConfig } from '@/Table/type';\n\nimport type { ProTablePageInfo } from '../type';\n\nexport const usePageInfo = (pagination: false | TablePaginationConfig | undefined) => {\n const config = useMemo(\n (): TablePaginationConfig | false => (pagination === false ? false : (pagination ?? {})),\n [pagination],\n );\n const [pageInfo, setPageInfoState] = useState<ProTablePageInfo>(() => ({\n current: (config && (config.current ?? config.defaultCurrent)) || 1,\n pageSize: (config && (config.pageSize ?? config.defaultPageSize)) || 10,\n total: 0,\n }));\n const controlledCurrent = config ? config.current : undefined;\n const controlledPageSize = config ? config.pageSize : undefined;\n const merged = useMemo(\n (): ProTablePageInfo => ({\n ...pageInfo,\n ...(controlledCurrent !== undefined && { current: controlledCurrent }),\n ...(controlledPageSize !== undefined && { pageSize: controlledPageSize }),\n }),\n [pageInfo, controlledCurrent, controlledPageSize],\n );\n const setPageInfo = useEventCallback((next: Partial<ProTablePageInfo>) =>\n setPageInfoState((prev) => {\n const changed = Object.entries(next).some(\n ([key, value]) => prev[key as keyof ProTablePageInfo] !== value,\n );\n return changed ? { ...prev, ...next } : prev;\n }),\n );\n return { config, pageInfo: merged, setPageInfo };\n};\n"],"mappings":";;;AAOA,MAAa,eAAe,eAA0D;CACpF,MAAM,SAAS,cACyB,eAAe,QAAQ,QAAS,cAAc,CAAC,GACrF,CAAC,UAAU,CACb;CACA,MAAM,CAAC,UAAU,oBAAoB,gBAAkC;EACrE,SAAU,WAAW,OAAO,WAAW,OAAO,mBAAoB;EAClE,UAAW,WAAW,OAAO,YAAY,OAAO,oBAAqB;EACrE,OAAO;CACT,EAAE;CACF,MAAM,oBAAoB,SAAS,OAAO,UAAU,KAAA;CACpD,MAAM,qBAAqB,SAAS,OAAO,WAAW,KAAA;CAiBtD,OAAO;EAAE;EAAQ,UAhBF,eACY;GACvB,GAAG;GACH,GAAI,sBAAsB,KAAA,KAAa,EAAE,SAAS,kBAAkB;GACpE,GAAI,uBAAuB,KAAA,KAAa,EAAE,UAAU,mBAAmB;EACzE,IACA;GAAC;GAAU;GAAmB;EAAkB,CAUlB;EAAG,aARf,kBAAkB,SACpC,kBAAkB,SAAS;GAIzB,OAHgB,OAAO,QAAQ,IAAI,CAAC,CAAC,MAClC,CAAC,KAAK,WAAW,KAAK,SAAmC,KAE/C,IAAI;IAAE,GAAG;IAAM,GAAG;GAAK,IAAI;EAC1C,CAAC,CAE0C;CAAE;AACjD"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import ActionIcon from "../../ActionIcon/ActionIcon.mjs";
|
|
2
|
+
import { getByPath, getProColumnKey, isEmptyValue, resolveValueEnum, resolveValueType, valueEnumToList } from "../utils.mjs";
|
|
3
|
+
import { styles } from "../style.mjs";
|
|
4
|
+
import { CopyableText, renderValue } from "../parts/renderValue.mjs";
|
|
5
|
+
import { useMemo } from "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { CircleHelp } from "lucide-react";
|
|
8
|
+
//#region src/ProTable/hooks/useProColumns.tsx
|
|
9
|
+
const orderOf = (state, key, index) => state[key]?.order ?? index;
|
|
10
|
+
const sortedEntries = (columns, state) => columns.map((column, index) => ({
|
|
11
|
+
column,
|
|
12
|
+
index,
|
|
13
|
+
key: getProColumnKey(column, index)
|
|
14
|
+
})).sort((a, b) => orderOf(state, a.key, a.index) - orderOf(state, b.key, b.index));
|
|
15
|
+
const useProColumns = ({ actionRef, columnEmptyText, columns, copyLabel, current, pageSize, state }) => {
|
|
16
|
+
const tableColumns = useMemo(() => {
|
|
17
|
+
const offset = (current - 1) * pageSize;
|
|
18
|
+
const convert = (column, index, top) => {
|
|
19
|
+
const key = getProColumnKey(column, index);
|
|
20
|
+
const columnState = top ? state[key] : void 0;
|
|
21
|
+
if (column.hideInTable || columnState?.show === false) return null;
|
|
22
|
+
const { children, colSize: _colSize, copyable, disable: _disable, fieldProps, filters, formItemProps: _formItemProps, hideInForm: _hideInForm, hideInSearch: _hideInSearch, hideInSetting: _hideInSetting, hideInTable: _hideInTable, initialValue: _initialValue, onFilter, order: _order, render, renderFormItem: _renderFormItem, renderText, search: _search, sorter, title, tooltip: columnTooltip, valueEnum: _valueEnum, valueType: _valueType, ...rest } = column;
|
|
23
|
+
const titleNode = columnTooltip ? /* @__PURE__ */ jsxs("span", {
|
|
24
|
+
className: styles.titleTooltip,
|
|
25
|
+
children: [title, /* @__PURE__ */ jsx(ActionIcon, {
|
|
26
|
+
icon: CircleHelp,
|
|
27
|
+
size: "small",
|
|
28
|
+
title: columnTooltip
|
|
29
|
+
})]
|
|
30
|
+
}) : title;
|
|
31
|
+
if (children?.length) {
|
|
32
|
+
const childColumns = children.map((child, childIndex) => convert(child, childIndex, false)).filter((child) => child !== null);
|
|
33
|
+
return {
|
|
34
|
+
...rest,
|
|
35
|
+
children: childColumns,
|
|
36
|
+
key,
|
|
37
|
+
title: titleNode
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const valueType = resolveValueType(column);
|
|
41
|
+
const staticEnum = typeof column.valueEnum === "function" ? void 0 : column.valueEnum;
|
|
42
|
+
const fixed = columnState?.fixed ?? rest.fixed;
|
|
43
|
+
return {
|
|
44
|
+
...rest,
|
|
45
|
+
...valueType === "option" && rest.align === void 0 && { align: "end" },
|
|
46
|
+
...(valueType === "index" || valueType === "indexBorder") && rest.width === void 0 && { width: 56 },
|
|
47
|
+
filters: filters === true ? valueEnumToList(staticEnum).map((item) => ({
|
|
48
|
+
text: item.text,
|
|
49
|
+
value: item.value
|
|
50
|
+
})) : filters || void 0,
|
|
51
|
+
fixed: fixed === "left" ? "start" : fixed === "right" ? "end" : fixed,
|
|
52
|
+
key,
|
|
53
|
+
onFilter: onFilter === true ? (value, record) => String(getByPath(record, column.dataIndex)) === String(value) : onFilter || void 0,
|
|
54
|
+
sorter: typeof sorter === "string" ? true : sorter,
|
|
55
|
+
title: titleNode,
|
|
56
|
+
render: (value, record, rowIndex) => {
|
|
57
|
+
const action = actionRef.current;
|
|
58
|
+
const text = renderText ? renderText(value, record, rowIndex, action) : value;
|
|
59
|
+
let dom = renderValue(text, {
|
|
60
|
+
emptyText: columnEmptyText === false ? null : columnEmptyText,
|
|
61
|
+
fieldProps,
|
|
62
|
+
rowIndex: offset + rowIndex,
|
|
63
|
+
valueEnum: resolveValueEnum(column, record),
|
|
64
|
+
valueType: resolveValueType(column, record)
|
|
65
|
+
});
|
|
66
|
+
if (copyable && !isEmptyValue(text)) dom = /* @__PURE__ */ jsx(CopyableText, {
|
|
67
|
+
label: copyLabel,
|
|
68
|
+
text: String(text),
|
|
69
|
+
children: dom
|
|
70
|
+
});
|
|
71
|
+
if (!render) return dom;
|
|
72
|
+
const result = render(dom, record, rowIndex, action, column);
|
|
73
|
+
if (valueType === "option" && Array.isArray(result)) return /* @__PURE__ */ jsx("div", {
|
|
74
|
+
className: styles.optionCell,
|
|
75
|
+
children: result
|
|
76
|
+
});
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
return sortedEntries(columns, state).map(({ column, index }) => convert(column, index, true)).filter((column) => column !== null);
|
|
82
|
+
}, [
|
|
83
|
+
actionRef,
|
|
84
|
+
columnEmptyText,
|
|
85
|
+
columns,
|
|
86
|
+
copyLabel,
|
|
87
|
+
current,
|
|
88
|
+
pageSize,
|
|
89
|
+
state
|
|
90
|
+
]);
|
|
91
|
+
return {
|
|
92
|
+
settingColumns: useMemo(() => {
|
|
93
|
+
const list = [];
|
|
94
|
+
sortedEntries(columns, state).forEach(({ column, key }) => {
|
|
95
|
+
if (column.hideInTable || column.hideInSetting) return;
|
|
96
|
+
const disable = state[key]?.disable ?? (typeof column.disable === "object" ? column.disable.checkbox : column.disable);
|
|
97
|
+
list.push({
|
|
98
|
+
disabled: !!disable,
|
|
99
|
+
key,
|
|
100
|
+
title: column.title ?? key
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
return list;
|
|
104
|
+
}, [columns, state]),
|
|
105
|
+
sortFieldOf: useMemo(() => {
|
|
106
|
+
const map = /* @__PURE__ */ new Map();
|
|
107
|
+
const walk = (list) => list.forEach((column, index) => {
|
|
108
|
+
if (column.children?.length) walk(column.children);
|
|
109
|
+
const key = getProColumnKey(column, index);
|
|
110
|
+
if (typeof column.sorter === "string") map.set(key, column.sorter);
|
|
111
|
+
else if (Array.isArray(column.dataIndex)) map.set(key, column.dataIndex.join("."));
|
|
112
|
+
else if (column.dataIndex !== void 0) map.set(key, String(column.dataIndex));
|
|
113
|
+
});
|
|
114
|
+
walk(columns);
|
|
115
|
+
return map;
|
|
116
|
+
}, [columns]),
|
|
117
|
+
tableColumns
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
//#endregion
|
|
121
|
+
export { useProColumns };
|
|
122
|
+
|
|
123
|
+
//# sourceMappingURL=useProColumns.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProColumns.mjs","names":[],"sources":["../../../src/ProTable/hooks/useProColumns.tsx"],"sourcesContent":["import { CircleHelp } from 'lucide-react';\nimport { type ReactNode, type RefObject, useMemo } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport type { TableColumn } from '@/Table/type';\n\nimport type { SettingColumn } from '../parts/ColumnSetting';\nimport { CopyableText, renderValue } from '../parts/renderValue';\nimport { styles } from '../style';\nimport type { ProColumnType, ProTableActionType, ProTableColumnsStateMap } from '../type';\nimport {\n getByPath,\n getProColumnKey,\n isEmptyValue,\n resolveValueEnum,\n resolveValueType,\n valueEnumToList,\n} from '../utils';\n\ninterface ProColumnsOptions<T> {\n actionRef: RefObject<ProTableActionType | undefined>;\n columnEmptyText: ReactNode | false;\n columns: ProColumnType<T>[];\n copyLabel: string;\n current: number;\n pageSize: number;\n state: ProTableColumnsStateMap;\n}\n\nconst orderOf = (state: ProTableColumnsStateMap, key: string, index: number) =>\n state[key]?.order ?? index;\n\nconst sortedEntries = <T,>(columns: ProColumnType<T>[], state: ProTableColumnsStateMap) =>\n columns\n .map((column, index) => ({ column, index, key: getProColumnKey(column, index) }))\n .sort((a, b) => orderOf(state, a.key, a.index) - orderOf(state, b.key, b.index));\n\nexport const useProColumns = <T,>({\n actionRef,\n columnEmptyText,\n columns,\n copyLabel,\n current,\n pageSize,\n state,\n}: ProColumnsOptions<T>) => {\n const tableColumns = useMemo(() => {\n const offset = (current - 1) * pageSize;\n\n const convert = (\n column: ProColumnType<T>,\n index: number,\n top: boolean,\n ): TableColumn<T> | null => {\n const key = getProColumnKey(column, index);\n const columnState = top ? state[key] : undefined;\n if (column.hideInTable || columnState?.show === false) return null;\n\n const {\n children,\n colSize: _colSize,\n copyable,\n disable: _disable,\n fieldProps,\n filters,\n formItemProps: _formItemProps,\n hideInForm: _hideInForm,\n hideInSearch: _hideInSearch,\n hideInSetting: _hideInSetting,\n hideInTable: _hideInTable,\n initialValue: _initialValue,\n onFilter,\n order: _order,\n render,\n renderFormItem: _renderFormItem,\n renderText,\n search: _search,\n sorter,\n title,\n tooltip: columnTooltip,\n valueEnum: _valueEnum,\n valueType: _valueType,\n ...rest\n } = column;\n\n const titleNode: ReactNode = columnTooltip ? (\n <span className={styles.titleTooltip}>\n {title}\n <ActionIcon icon={CircleHelp} size=\"small\" title={columnTooltip} />\n </span>\n ) : (\n title\n );\n\n if (children?.length) {\n const childColumns = children\n .map((child, childIndex) => convert(child, childIndex, false))\n .filter((child): child is TableColumn<T> => child !== null);\n return { ...(rest as any), children: childColumns, key, title: titleNode };\n }\n\n const valueType = resolveValueType(column);\n const staticEnum = typeof column.valueEnum === 'function' ? undefined : column.valueEnum;\n const fixed = columnState?.fixed ?? rest.fixed;\n return {\n ...(rest as any),\n ...(valueType === 'option' && rest.align === undefined && { align: 'end' }),\n ...((valueType === 'index' || valueType === 'indexBorder') &&\n rest.width === undefined && { width: 56 }),\n filters:\n filters === true\n ? valueEnumToList(staticEnum).map((item) => ({ text: item.text, value: item.value }))\n : filters || undefined,\n fixed: fixed === 'left' ? 'start' : fixed === 'right' ? 'end' : fixed,\n key,\n onFilter:\n onFilter === true\n ? (value: unknown, record: T) =>\n String(getByPath(record, column.dataIndex)) === String(value)\n : onFilter || undefined,\n sorter: typeof sorter === 'string' ? true : sorter,\n title: titleNode,\n render: (value: any, record: T, rowIndex: number) => {\n const action = actionRef.current;\n const text = renderText ? renderText(value, record, rowIndex, action) : value;\n let dom: ReactNode = renderValue(text, {\n emptyText: columnEmptyText === false ? null : columnEmptyText,\n fieldProps,\n rowIndex: offset + rowIndex,\n valueEnum: resolveValueEnum(column, record),\n valueType: resolveValueType(column, record),\n });\n if (copyable && !isEmptyValue(text)) {\n dom = (\n <CopyableText label={copyLabel} text={String(text)}>\n {dom}\n </CopyableText>\n );\n }\n if (!render) return dom;\n const result = render(dom, record, rowIndex, action, column);\n if (valueType === 'option' && Array.isArray(result)) {\n return <div className={styles.optionCell}>{result}</div>;\n }\n return result;\n },\n } as TableColumn<T>;\n };\n\n return sortedEntries(columns, state)\n .map(({ column, index }) => convert(column, index, true))\n .filter((column): column is TableColumn<T> => column !== null);\n }, [actionRef, columnEmptyText, columns, copyLabel, current, pageSize, state]);\n\n const settingColumns = useMemo(() => {\n const list: SettingColumn[] = [];\n sortedEntries(columns, state).forEach(({ column, key }) => {\n if (column.hideInTable || column.hideInSetting) return;\n const disable =\n state[key]?.disable ??\n (typeof column.disable === 'object' ? column.disable.checkbox : column.disable);\n list.push({ disabled: !!disable, key, title: column.title ?? key });\n });\n return list;\n }, [columns, state]);\n\n const sortFieldOf = useMemo(() => {\n const map = new Map<string, string>();\n const walk = (list: ProColumnType<T>[]) =>\n list.forEach((column, index) => {\n if (column.children?.length) walk(column.children);\n const key = getProColumnKey(column, index);\n if (typeof column.sorter === 'string') map.set(key, column.sorter);\n else if (Array.isArray(column.dataIndex)) map.set(key, column.dataIndex.join('.'));\n else if (column.dataIndex !== undefined) map.set(key, String(column.dataIndex));\n });\n walk(columns);\n return map;\n }, [columns]);\n\n return { settingColumns, sortFieldOf, tableColumns };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useDelayedFlag } from "./useDelayedFlag.mjs";
|
|
2
|
+
//#region src/ProTable/hooks/useProLoading.ts
|
|
3
|
+
const useProLoading = (loadingProp, fetching, hasRequest) => {
|
|
4
|
+
const config = typeof loadingProp === "object" ? loadingProp : void 0;
|
|
5
|
+
const { delay, ...spin } = config ?? {};
|
|
6
|
+
const raw = config === void 0 ? loadingProp ?? fetching : config.spinning ?? (hasRequest ? fetching : true);
|
|
7
|
+
const loading = useDelayedFlag(raw, delay);
|
|
8
|
+
return {
|
|
9
|
+
loading,
|
|
10
|
+
tableLoading: config ? {
|
|
11
|
+
...spin,
|
|
12
|
+
spinning: loading
|
|
13
|
+
} : loading
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
//#endregion
|
|
17
|
+
export { useProLoading };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=useProLoading.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProLoading.mjs","names":[],"sources":["../../../src/ProTable/hooks/useProLoading.ts"],"sourcesContent":["import type { TableLoadingConfig } from '@/Table/type';\n\nimport type { ProTableProps } from '../type';\nimport { useDelayedFlag } from './useDelayedFlag';\n\nexport const useProLoading = (\n loadingProp: ProTableProps['loading'],\n fetching: boolean,\n hasRequest: boolean,\n) => {\n const config = typeof loadingProp === 'object' ? loadingProp : undefined;\n const { delay, ...spin } = config ?? {};\n const raw =\n config === undefined\n ? ((loadingProp as boolean | undefined) ?? fetching)\n : (config.spinning ?? (hasRequest ? fetching : true));\n const loading = useDelayedFlag(raw, delay);\n const tableLoading: boolean | TableLoadingConfig = config\n ? { ...spin, spinning: loading }\n : loading;\n return { loading, tableLoading };\n};\n"],"mappings":";;AAKA,MAAa,iBACX,aACA,UACA,eACG;CACH,MAAM,SAAS,OAAO,gBAAgB,WAAW,cAAc,KAAA;CAC/D,MAAM,EAAE,OAAO,GAAG,SAAS,UAAU,CAAC;CACtC,MAAM,MACJ,WAAW,KAAA,IACL,eAAuC,WACxC,OAAO,aAAa,aAAa,WAAW;CACnD,MAAM,UAAU,eAAe,KAAK,KAAK;CAIzC,OAAO;EAAE;EAAS,cAHiC,SAC/C;GAAE,GAAG;GAAM,UAAU;EAAQ,IAC7B;CAC2B;AACjC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useI18n } from "../../ConfigProvider/index.mjs";
|
|
2
|
+
import { PRO_TABLE_LOCALE_EN_US, resolveProTableLocale } from "../locale.mjs";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
//#region src/ProTable/hooks/useProLocale.ts
|
|
5
|
+
const useProLocale = (localeProp) => {
|
|
6
|
+
const i18n = useI18n();
|
|
7
|
+
return {
|
|
8
|
+
locale: useMemo(() => ({
|
|
9
|
+
...resolveProTableLocale(i18n?.locale),
|
|
10
|
+
...localeProp
|
|
11
|
+
}), [i18n?.locale, localeProp]),
|
|
12
|
+
tableLocale: useMemo(() => {
|
|
13
|
+
if (!localeProp) return void 0;
|
|
14
|
+
const entries = Object.entries(localeProp).filter(([key]) => !(key in PRO_TABLE_LOCALE_EN_US));
|
|
15
|
+
return entries.length > 0 ? Object.fromEntries(entries) : void 0;
|
|
16
|
+
}, [localeProp])
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
export { useProLocale };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=useProLocale.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProLocale.mjs","names":[],"sources":["../../../src/ProTable/hooks/useProLocale.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { useI18n } from '@/ConfigProvider';\nimport type { TableLocale } from '@/Table/type';\n\nimport { PRO_TABLE_LOCALE_EN_US, resolveProTableLocale } from '../locale';\nimport type { ProTableProps } from '../type';\n\nexport const useProLocale = (localeProp: ProTableProps['locale']) => {\n const i18n = useI18n();\n const locale = useMemo(\n () => ({ ...resolveProTableLocale(i18n?.locale), ...localeProp }),\n [i18n?.locale, localeProp],\n );\n const tableLocale = useMemo(() => {\n if (!localeProp) return undefined;\n const entries = Object.entries(localeProp).filter(([key]) => !(key in PRO_TABLE_LOCALE_EN_US));\n return entries.length > 0 ? (Object.fromEntries(entries) as TableLocale) : undefined;\n }, [localeProp]);\n return { locale, tableLocale };\n};\n"],"mappings":";;;;AAQA,MAAa,gBAAgB,eAAwC;CACnE,MAAM,OAAO,QAAQ;CAUrB,OAAO;EAAE,QATM,eACN;GAAE,GAAG,sBAAsB,MAAM,MAAM;GAAG,GAAG;EAAW,IAC/D,CAAC,MAAM,QAAQ,UAAU,CAOb;EAAG,aALG,cAAc;GAChC,IAAI,CAAC,YAAY,OAAO,KAAA;GACxB,MAAM,UAAU,OAAO,QAAQ,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,uBAAuB;GAC7F,OAAO,QAAQ,SAAS,IAAK,OAAO,YAAY,OAAO,IAAoB,KAAA;EAC7E,GAAG,CAAC,UAAU,CACa;CAAE;AAC/B"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { useEventCallback } from "../../hooks/useEventCallback.mjs";
|
|
2
|
+
import { useFetchData } from "./useFetchData.mjs";
|
|
3
|
+
import { getSearchFields, useSearchForm } from "./useSearchForm.mjs";
|
|
4
|
+
import { useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
|
|
5
|
+
//#region src/ProTable/hooks/useProRequest.ts
|
|
6
|
+
const stableKey = (value) => {
|
|
7
|
+
try {
|
|
8
|
+
return JSON.stringify(value, (_key, item) => item instanceof Date ? item.toISOString() : item);
|
|
9
|
+
} catch {
|
|
10
|
+
return String(Math.random());
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
const useProRequest = ({ pageInfo, paginated, props, setPageInfo, sortFieldOf }) => {
|
|
14
|
+
const { beforeSearchSubmit, columns = [], dateFormatter = "string", debounceTime = 10, defaultData, form: formConfig, formRef, manualRequest = false, onChange, onDataSourceChange, onLoad, onLoadingChange, onRequestError, onReset, onSubmit, options, params, polling, postData, request } = props;
|
|
15
|
+
const [sort, setSort] = useState({});
|
|
16
|
+
const [filter, setFilter] = useState({});
|
|
17
|
+
const searchFields = useMemo(() => getSearchFields(columns), [columns]);
|
|
18
|
+
const [formParams, setFormParams] = useState({});
|
|
19
|
+
const [keyword, setKeyword] = useState(void 0);
|
|
20
|
+
const formReadyRef = useRef(false);
|
|
21
|
+
const applyFormValues = (formatted) => {
|
|
22
|
+
const next = beforeSearchSubmit ? beforeSearchSubmit(formatted) : formatted;
|
|
23
|
+
formReadyRef.current = true;
|
|
24
|
+
setFormParams(next);
|
|
25
|
+
setPageInfo({ current: 1 });
|
|
26
|
+
return next;
|
|
27
|
+
};
|
|
28
|
+
const handleSubmit = useEventCallback((formatted) => {
|
|
29
|
+
const next = applyFormValues(formatted);
|
|
30
|
+
onSubmit?.(next);
|
|
31
|
+
fetcher.reload();
|
|
32
|
+
});
|
|
33
|
+
const { form } = useSearchForm({
|
|
34
|
+
dateFormatter,
|
|
35
|
+
fields: searchFields,
|
|
36
|
+
initialValues: formConfig?.initialValues,
|
|
37
|
+
onSubmit: handleSubmit,
|
|
38
|
+
onValuesChange: formConfig?.onValuesChange,
|
|
39
|
+
validateOn: formConfig?.validateOn
|
|
40
|
+
});
|
|
41
|
+
const initialFormParams = useMemo(() => form.getFieldsFormatValue(), [form]);
|
|
42
|
+
const effectiveFormParams = formReadyRef.current ? formParams : initialFormParams;
|
|
43
|
+
useImperativeHandle(formRef, () => form, [form]);
|
|
44
|
+
const keywordName = options && typeof options.search === "object" ? options.search.name ?? "keyword" : "keyword";
|
|
45
|
+
const fetcher = useFetchData({
|
|
46
|
+
debounceTime,
|
|
47
|
+
defaultData,
|
|
48
|
+
depsKey: stableKey([
|
|
49
|
+
effectiveFormParams,
|
|
50
|
+
params,
|
|
51
|
+
keyword,
|
|
52
|
+
sort,
|
|
53
|
+
filter
|
|
54
|
+
]),
|
|
55
|
+
filter,
|
|
56
|
+
getParams: () => ({
|
|
57
|
+
...effectiveFormParams,
|
|
58
|
+
...params,
|
|
59
|
+
...keyword !== void 0 && keyword !== "" && { [keywordName]: keyword }
|
|
60
|
+
}),
|
|
61
|
+
manual: manualRequest,
|
|
62
|
+
onDataSourceChange,
|
|
63
|
+
onLoad,
|
|
64
|
+
onLoadingChange,
|
|
65
|
+
onRequestError,
|
|
66
|
+
pageInfo,
|
|
67
|
+
paginated,
|
|
68
|
+
polling,
|
|
69
|
+
postData,
|
|
70
|
+
request,
|
|
71
|
+
setTotal: (total) => setPageInfo({ total }),
|
|
72
|
+
sort
|
|
73
|
+
});
|
|
74
|
+
const paramsKey = stableKey(params);
|
|
75
|
+
const firstParamsRef = useRef(true);
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
if (firstParamsRef.current) {
|
|
78
|
+
firstParamsRef.current = false;
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
setPageInfo({ current: 1 });
|
|
82
|
+
}, [paramsKey, setPageInfo]);
|
|
83
|
+
const reload = useEventCallback(async (resetPageIndex) => {
|
|
84
|
+
if (resetPageIndex) setPageInfo({ current: 1 });
|
|
85
|
+
await fetcher.reload();
|
|
86
|
+
});
|
|
87
|
+
const reset = useEventCallback(() => {
|
|
88
|
+
form.resetFields();
|
|
89
|
+
applyFormValues(form.getFieldsFormatValue());
|
|
90
|
+
fetcher.reload();
|
|
91
|
+
});
|
|
92
|
+
const handleReset = useEventCallback(() => {
|
|
93
|
+
reset();
|
|
94
|
+
onReset?.();
|
|
95
|
+
});
|
|
96
|
+
const searchKeyword = useEventCallback((value) => {
|
|
97
|
+
setKeyword(value);
|
|
98
|
+
setPageInfo({ current: 1 });
|
|
99
|
+
});
|
|
100
|
+
const handleTableChange = useEventCallback((pagination, filters, sorter, extra) => {
|
|
101
|
+
if (extra.action === "sort") {
|
|
102
|
+
const next = {};
|
|
103
|
+
(Array.isArray(sorter) ? sorter : [sorter]).forEach((item) => {
|
|
104
|
+
if (!item.order || item.columnKey === void 0) return;
|
|
105
|
+
const columnKey = String(item.columnKey);
|
|
106
|
+
next[sortFieldOf.get(columnKey) ?? columnKey] = item.order;
|
|
107
|
+
});
|
|
108
|
+
setSort(next);
|
|
109
|
+
}
|
|
110
|
+
if (extra.action === "filter") {
|
|
111
|
+
const next = {};
|
|
112
|
+
Object.entries(filters).forEach(([columnKey, value]) => {
|
|
113
|
+
next[sortFieldOf.get(columnKey) ?? columnKey] = value;
|
|
114
|
+
});
|
|
115
|
+
setFilter(next);
|
|
116
|
+
}
|
|
117
|
+
onChange?.(pagination, filters, sorter, extra);
|
|
118
|
+
});
|
|
119
|
+
return {
|
|
120
|
+
fetcher,
|
|
121
|
+
form,
|
|
122
|
+
getSortFilter: useEventCallback(() => ({
|
|
123
|
+
filter,
|
|
124
|
+
sort
|
|
125
|
+
})),
|
|
126
|
+
handleReset,
|
|
127
|
+
handleTableChange,
|
|
128
|
+
reload,
|
|
129
|
+
reset,
|
|
130
|
+
searchFields,
|
|
131
|
+
searchKeyword
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
//#endregion
|
|
135
|
+
export { useProRequest };
|
|
136
|
+
|
|
137
|
+
//# sourceMappingURL=useProRequest.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProRequest.mjs","names":[],"sources":["../../../src/ProTable/hooks/useProRequest.ts"],"sourcesContent":["import { type Ref, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\n\nimport { useEventCallback } from '@/hooks/useEventCallback';\nimport type {\n SortOrder,\n TableFilters,\n TablePaginationConfig,\n TableSorterResult,\n} from '@/Table/type';\n\nimport type { ProTableFormInstance, ProTablePageInfo, ProTableProps } from '../type';\nimport { useFetchData } from './useFetchData';\nimport { getSearchFields, useSearchForm } from './useSearchForm';\n\ntype Filter = Record<string, (string | number | boolean)[] | null>;\n\nconst stableKey = (value: unknown) => {\n try {\n return JSON.stringify(value, (_key, item) =>\n item instanceof Date ? item.toISOString() : item,\n );\n } catch {\n return String(Math.random());\n }\n};\n\ninterface ProRequestOptions<T> {\n pageInfo: ProTablePageInfo;\n paginated: boolean;\n props: ProTableProps<T, any>;\n setPageInfo: (next: Partial<ProTablePageInfo>) => void;\n sortFieldOf: Map<string, string>;\n}\n\nexport const useProRequest = <T>({\n pageInfo,\n paginated,\n props,\n setPageInfo,\n sortFieldOf,\n}: ProRequestOptions<T>) => {\n const {\n beforeSearchSubmit,\n columns = [],\n dateFormatter = 'string',\n debounceTime = 10,\n defaultData,\n form: formConfig,\n formRef,\n manualRequest = false,\n onChange,\n onDataSourceChange,\n onLoad,\n onLoadingChange,\n onRequestError,\n onReset,\n onSubmit,\n options,\n params,\n polling,\n postData,\n request,\n } = props;\n\n const [sort, setSort] = useState<Record<string, SortOrder>>({});\n const [filter, setFilter] = useState<Filter>({});\n const searchFields = useMemo(() => getSearchFields(columns), [columns]);\n const [formParams, setFormParams] = useState<Record<string, any>>({});\n const [keyword, setKeyword] = useState<string | undefined>(undefined);\n const formReadyRef = useRef(false);\n\n const applyFormValues = (formatted: Record<string, any>) => {\n const next = beforeSearchSubmit ? beforeSearchSubmit(formatted) : formatted;\n formReadyRef.current = true;\n setFormParams(next);\n setPageInfo({ current: 1 });\n return next;\n };\n\n const handleSubmit = useEventCallback((formatted: Record<string, any>) => {\n const next = applyFormValues(formatted);\n onSubmit?.(next);\n void fetcher.reload();\n });\n\n const { form } = useSearchForm({\n dateFormatter,\n fields: searchFields,\n initialValues: formConfig?.initialValues,\n onSubmit: handleSubmit,\n onValuesChange: formConfig?.onValuesChange,\n validateOn: formConfig?.validateOn,\n });\n const initialFormParams = useMemo(() => form.getFieldsFormatValue(), [form]);\n const effectiveFormParams = formReadyRef.current ? formParams : initialFormParams;\n useImperativeHandle(formRef as Ref<ProTableFormInstance>, () => form, [form]);\n\n const keywordName =\n options && typeof options.search === 'object' ? (options.search.name ?? 'keyword') : 'keyword';\n\n const fetcher = useFetchData<T>({\n debounceTime,\n defaultData,\n depsKey: stableKey([effectiveFormParams, params, keyword, sort, filter]),\n filter,\n getParams: () => ({\n ...effectiveFormParams,\n ...params,\n ...(keyword !== undefined && keyword !== '' && { [keywordName]: keyword }),\n }),\n manual: manualRequest,\n onDataSourceChange,\n onLoad,\n onLoadingChange,\n onRequestError,\n pageInfo,\n paginated,\n polling,\n postData,\n request,\n setTotal: (total) => setPageInfo({ total }),\n sort,\n });\n\n const paramsKey = stableKey(params);\n const firstParamsRef = useRef(true);\n useEffect(() => {\n if (firstParamsRef.current) {\n firstParamsRef.current = false;\n return;\n }\n setPageInfo({ current: 1 });\n }, [paramsKey, setPageInfo]);\n\n const reload = useEventCallback(async (resetPageIndex?: boolean) => {\n if (resetPageIndex) setPageInfo({ current: 1 });\n await fetcher.reload();\n });\n\n const reset = useEventCallback(() => {\n form.resetFields();\n applyFormValues(form.getFieldsFormatValue());\n void fetcher.reload();\n });\n\n const handleReset = useEventCallback(() => {\n reset();\n onReset?.();\n });\n\n const searchKeyword = useEventCallback((value: string | undefined) => {\n setKeyword(value);\n setPageInfo({ current: 1 });\n });\n\n const handleTableChange = useEventCallback(\n (\n pagination: TablePaginationConfig,\n filters: TableFilters,\n sorter: TableSorterResult<T> | TableSorterResult<T>[],\n extra: Parameters<NonNullable<ProTableProps<T>['onChange']>>[3],\n ) => {\n if (extra.action === 'sort') {\n const next: Record<string, SortOrder> = {};\n (Array.isArray(sorter) ? sorter : [sorter]).forEach((item) => {\n if (!item.order || item.columnKey === undefined) return;\n const columnKey = String(item.columnKey);\n next[sortFieldOf.get(columnKey) ?? columnKey] = item.order;\n });\n setSort(next);\n }\n if (extra.action === 'filter') {\n const next: Filter = {};\n Object.entries(filters).forEach(([columnKey, value]) => {\n next[sortFieldOf.get(columnKey) ?? columnKey] = value;\n });\n setFilter(next);\n }\n onChange?.(pagination, filters, sorter, extra);\n },\n );\n\n const getSortFilter = useEventCallback(() => ({ filter, sort }));\n\n return {\n fetcher,\n form,\n getSortFilter,\n handleReset,\n handleTableChange,\n reload,\n reset,\n searchFields,\n searchKeyword,\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useCallback, useRef } from "react";
|
|
2
|
+
//#region src/ProTable/hooks/useRowCache.ts
|
|
3
|
+
const useRowCache = (rows, rowKey) => {
|
|
4
|
+
const cacheRef = useRef(/* @__PURE__ */ new Map());
|
|
5
|
+
rows.forEach((record, index) => cacheRef.current.set(typeof rowKey === "function" ? rowKey(record, index) : record[rowKey], record));
|
|
6
|
+
return useCallback((key) => cacheRef.current.get(key), []);
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { useRowCache };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=useRowCache.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRowCache.mjs","names":[],"sources":["../../../src/ProTable/hooks/useRowCache.ts"],"sourcesContent":["import { type Key, useCallback, useRef } from 'react';\n\nexport const useRowCache = <T extends Record<string, any>>(\n rows: readonly T[],\n rowKey: string | ((record: T, index?: number) => Key),\n) => {\n const cacheRef = useRef(new Map<Key, T>());\n rows.forEach((record, index) =>\n cacheRef.current.set(\n typeof rowKey === 'function' ? rowKey(record, index) : record[rowKey],\n record,\n ),\n );\n return useCallback((key: Key) => cacheRef.current.get(key), []);\n};\n"],"mappings":";;AAEA,MAAa,eACX,MACA,WACG;CACH,MAAM,WAAW,uBAAO,IAAI,IAAY,CAAC;CACzC,KAAK,SAAS,QAAQ,UACpB,SAAS,QAAQ,IACf,OAAO,WAAW,aAAa,OAAO,QAAQ,KAAK,IAAI,OAAO,SAC9D,MACF,CACF;CACA,OAAO,aAAa,QAAa,SAAS,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC;AAChE"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { useForm } from "../../FormKit/useForm.mjs";
|
|
2
|
+
import { formatDateValue, getByPath, getFieldName, isDateType, isEmptyValue, isNil, resolveValueType, setByPath } from "../utils.mjs";
|
|
3
|
+
import { useMemo, useRef } from "react";
|
|
4
|
+
//#region src/ProTable/hooks/useSearchForm.ts
|
|
5
|
+
const NON_SEARCH_TYPES = /* @__PURE__ */ new Set([
|
|
6
|
+
"index",
|
|
7
|
+
"indexBorder",
|
|
8
|
+
"option"
|
|
9
|
+
]);
|
|
10
|
+
const getSearchFields = (columns = []) => {
|
|
11
|
+
const list = [];
|
|
12
|
+
const walk = (items) => {
|
|
13
|
+
items.forEach((column) => {
|
|
14
|
+
if (column.children?.length) {
|
|
15
|
+
walk(column.children);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const index = list.length;
|
|
19
|
+
const valueType = resolveValueType(column);
|
|
20
|
+
if (column.hideInSearch || column.search === false) return;
|
|
21
|
+
if (valueType && NON_SEARCH_TYPES.has(valueType)) return;
|
|
22
|
+
if (isNil(column.dataIndex) && isNil(column.key) && !column.renderFormItem) return;
|
|
23
|
+
list.push({
|
|
24
|
+
column,
|
|
25
|
+
index,
|
|
26
|
+
name: getFieldName(column, index)
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
walk(columns);
|
|
31
|
+
return list.map((field, position) => ({
|
|
32
|
+
field,
|
|
33
|
+
position
|
|
34
|
+
})).sort((a, b) => (b.field.column.order ?? 0) - (a.field.column.order ?? 0) || a.position - b.position).map(({ field }) => field);
|
|
35
|
+
};
|
|
36
|
+
const ruleLength = (value) => typeof value === "string" || Array.isArray(value) ? value.length : Number(value);
|
|
37
|
+
const rulesToFieldProps = (rules, required) => {
|
|
38
|
+
const list = rules ?? [];
|
|
39
|
+
const requiredRule = list.find((rule) => rule.required);
|
|
40
|
+
const rest = list.filter((rule) => !rule.required || Object.keys(rule).length > 2);
|
|
41
|
+
const result = {};
|
|
42
|
+
if (requiredRule) result.required = requiredRule.message ? String(requiredRule.message) : true;
|
|
43
|
+
else if (required) result.required = true;
|
|
44
|
+
if (rest.length === 0) return result;
|
|
45
|
+
result.validate = async (value, values) => {
|
|
46
|
+
for (const rule of rest) {
|
|
47
|
+
const message = rule.message ? String(rule.message) : void 0;
|
|
48
|
+
if (rule.validator) {
|
|
49
|
+
try {
|
|
50
|
+
await rule.validator(rule, value, values);
|
|
51
|
+
} catch (error) {
|
|
52
|
+
return (error instanceof Error ? error.message : String(error ?? "")) || message || "Invalid value";
|
|
53
|
+
}
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (isEmptyValue(value)) continue;
|
|
57
|
+
if (rule.pattern && !rule.pattern.test(String(value))) return message ?? "Invalid format";
|
|
58
|
+
if (rule.len !== void 0 && ruleLength(value) !== rule.len) return message ?? `Must be ${rule.len}`;
|
|
59
|
+
if (rule.min !== void 0 && ruleLength(value) < rule.min) return message ?? `At least ${rule.min}`;
|
|
60
|
+
if (rule.max !== void 0 && ruleLength(value) > rule.max) return message ?? `At most ${rule.max}`;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
return result;
|
|
64
|
+
};
|
|
65
|
+
const useSearchForm = ({ dateFormatter, fields, initialValues, onSubmit, onValuesChange, validateOn }) => {
|
|
66
|
+
const latest = useRef({
|
|
67
|
+
dateFormatter,
|
|
68
|
+
fields,
|
|
69
|
+
onSubmit
|
|
70
|
+
});
|
|
71
|
+
latest.current = {
|
|
72
|
+
dateFormatter,
|
|
73
|
+
fields,
|
|
74
|
+
onSubmit
|
|
75
|
+
};
|
|
76
|
+
const [initial] = useMemo(() => {
|
|
77
|
+
const values = {};
|
|
78
|
+
fields.forEach(({ column, name }) => {
|
|
79
|
+
if (column.initialValue !== void 0) setByPath(values, name, column.initialValue);
|
|
80
|
+
});
|
|
81
|
+
return [{
|
|
82
|
+
...values,
|
|
83
|
+
...initialValues
|
|
84
|
+
}];
|
|
85
|
+
}, []);
|
|
86
|
+
const format = (raw) => {
|
|
87
|
+
const { dateFormatter: formatter, fields: list } = latest.current;
|
|
88
|
+
const result = {};
|
|
89
|
+
const fieldRoots = new Set(list.map((field) => field.name.split(".")[0]));
|
|
90
|
+
Object.entries(raw).forEach(([key, value]) => {
|
|
91
|
+
if (!fieldRoots.has(key) && !isEmptyValue(value)) result[key] = value;
|
|
92
|
+
});
|
|
93
|
+
list.forEach(({ column, name }) => {
|
|
94
|
+
const value = getByPath(raw, name.split("."));
|
|
95
|
+
if (isEmptyValue(value)) return;
|
|
96
|
+
const valueType = resolveValueType(column);
|
|
97
|
+
let next = valueType && isDateType(valueType) ? formatDateValue(value, valueType, formatter) : value;
|
|
98
|
+
const { search } = column;
|
|
99
|
+
if (search && typeof search === "object" && search.transform) {
|
|
100
|
+
const transformed = search.transform(next, name, raw);
|
|
101
|
+
if (transformed && typeof transformed === "object") {
|
|
102
|
+
Object.assign(result, transformed);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (typeof transformed === "string") {
|
|
106
|
+
setByPath(result, transformed, next);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
next = transformed;
|
|
110
|
+
}
|
|
111
|
+
setByPath(result, name, next);
|
|
112
|
+
});
|
|
113
|
+
return result;
|
|
114
|
+
};
|
|
115
|
+
const base = useForm({
|
|
116
|
+
initialValues: initial,
|
|
117
|
+
onSubmit: (values) => latest.current.onSubmit(format(values)),
|
|
118
|
+
onValuesChange,
|
|
119
|
+
validateOn
|
|
120
|
+
});
|
|
121
|
+
return {
|
|
122
|
+
base,
|
|
123
|
+
form: useMemo(() => Object.assign(base, {
|
|
124
|
+
getFieldsFormatValue: () => format(base.getValues()),
|
|
125
|
+
getFieldsValue: () => base.getValues(),
|
|
126
|
+
getFieldValue: (name) => base.getValue(name),
|
|
127
|
+
resetFields: () => base.reset(structuredClone(initial)),
|
|
128
|
+
setFieldsValue: (values) => base.setValues(values),
|
|
129
|
+
setFieldValue: (name, value) => base.setValue(name, value),
|
|
130
|
+
validateFields: async () => {
|
|
131
|
+
const result = await base.validate();
|
|
132
|
+
if (!result.valid) throw result;
|
|
133
|
+
return base.getValues();
|
|
134
|
+
}
|
|
135
|
+
}), [base])
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
//#endregion
|
|
139
|
+
export { getSearchFields, rulesToFieldProps, useSearchForm };
|
|
140
|
+
|
|
141
|
+
//# sourceMappingURL=useSearchForm.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSearchForm.mjs","names":[],"sources":["../../../src/ProTable/hooks/useSearchForm.ts"],"sourcesContent":["import {\n type FieldValidate,\n type FormValues,\n useForm,\n type UseFormOptions,\n} from '@lobehub/ui/form';\nimport { useMemo, useRef } from 'react';\n\nimport type { ProColumnType, ProTableFormInstance, ProTableFormRule } from '../type';\nimport {\n type DateFormatter,\n formatDateValue,\n getByPath,\n getFieldName,\n isDateType,\n isEmptyValue,\n isNil,\n resolveValueType,\n setByPath,\n} from '../utils';\n\ntype ValidateOn = UseFormOptions<FormValues>['validateOn'];\n\nexport interface SearchFieldSchema {\n column: ProColumnType<any>;\n index: number;\n name: string;\n}\n\nconst NON_SEARCH_TYPES = new Set(['index', 'indexBorder', 'option']);\n\nexport const getSearchFields = (columns: ProColumnType<any>[] = []): SearchFieldSchema[] => {\n const list: SearchFieldSchema[] = [];\n const walk = (items: ProColumnType<any>[]) => {\n items.forEach((column) => {\n if (column.children?.length) {\n walk(column.children);\n return;\n }\n const index = list.length;\n const valueType = resolveValueType(column);\n if (column.hideInSearch || column.search === false) return;\n if (valueType && NON_SEARCH_TYPES.has(valueType)) return;\n if (isNil(column.dataIndex) && isNil(column.key) && !column.renderFormItem) return;\n list.push({ column, index, name: getFieldName(column, index) });\n });\n };\n walk(columns);\n // Pro: larger `order` first; stable for equal orders.\n return list\n .map((field, position) => ({ field, position }))\n .sort(\n (a, b) =>\n (b.field.column.order ?? 0) - (a.field.column.order ?? 0) || a.position - b.position,\n )\n .map(({ field }) => field);\n};\n\nconst ruleLength = (value: unknown) =>\n typeof value === 'string' || Array.isArray(value) ? value.length : Number(value);\n\nexport const rulesToFieldProps = (\n rules: ProTableFormRule[] | undefined,\n required?: boolean,\n): { required?: boolean | string; validate?: FieldValidate } => {\n const list = rules ?? [];\n const requiredRule = list.find((rule) => rule.required);\n const rest = list.filter((rule) => !rule.required || Object.keys(rule).length > 2);\n const result: { required?: boolean | string; validate?: FieldValidate } = {};\n if (requiredRule) result.required = requiredRule.message ? String(requiredRule.message) : true;\n else if (required) result.required = true;\n if (rest.length === 0) return result;\n result.validate = async (value, values) => {\n for (const rule of rest) {\n const message = rule.message ? String(rule.message) : undefined;\n if (rule.validator) {\n try {\n await rule.validator(rule, value, values);\n } catch (error) {\n return (\n (error instanceof Error ? error.message : String(error ?? '')) ||\n message ||\n 'Invalid value'\n );\n }\n continue;\n }\n if (isEmptyValue(value)) continue;\n if (rule.pattern && !rule.pattern.test(String(value))) return message ?? 'Invalid format';\n if (rule.len !== undefined && ruleLength(value) !== rule.len)\n return message ?? `Must be ${rule.len}`;\n if (rule.min !== undefined && ruleLength(value) < rule.min)\n return message ?? `At least ${rule.min}`;\n if (rule.max !== undefined && ruleLength(value) > rule.max)\n return message ?? `At most ${rule.max}`;\n }\n return undefined;\n };\n return result;\n};\n\nexport interface UseSearchFormOptions {\n dateFormatter: DateFormatter;\n fields: SearchFieldSchema[];\n initialValues?: Record<string, any>;\n onSubmit: (formatted: Record<string, any>) => void;\n onValuesChange?: (changed: Record<string, any>, all: Record<string, any>) => void;\n validateOn?: ValidateOn;\n}\n\nexport const useSearchForm = ({\n dateFormatter,\n fields,\n initialValues,\n onSubmit,\n onValuesChange,\n validateOn,\n}: UseSearchFormOptions) => {\n const latest = useRef({ dateFormatter, fields, onSubmit });\n latest.current = { dateFormatter, fields, onSubmit };\n\n const [initial] = useMemo(() => {\n const values: Record<string, any> = {};\n fields.forEach(({ column, name }) => {\n if (column.initialValue !== undefined) setByPath(values, name, column.initialValue);\n });\n return [{ ...values, ...initialValues }];\n // Initial values are read once, like antd / Pro.\n }, []);\n\n const format = (raw: Record<string, any>) => {\n const { dateFormatter: formatter, fields: list } = latest.current;\n const result: Record<string, any> = {};\n const fieldRoots = new Set(list.map((field) => field.name.split('.')[0]));\n // Values set through `formRef` without a matching field pass through untouched.\n Object.entries(raw).forEach(([key, value]) => {\n if (!fieldRoots.has(key) && !isEmptyValue(value)) result[key] = value;\n });\n list.forEach(({ column, name }) => {\n const value = getByPath(raw, name.split('.'));\n if (isEmptyValue(value)) return;\n const valueType = resolveValueType(column);\n let next =\n valueType && isDateType(valueType) ? formatDateValue(value, valueType, formatter) : value;\n const { search } = column;\n if (search && typeof search === 'object' && search.transform) {\n const transformed = search.transform(next, name, raw);\n if (transformed && typeof transformed === 'object') {\n Object.assign(result, transformed);\n return;\n }\n if (typeof transformed === 'string') {\n setByPath(result, transformed, next);\n return;\n }\n next = transformed;\n }\n setByPath(result, name, next);\n });\n return result;\n };\n\n const base = useForm<Record<string, any>>({\n initialValues: initial,\n onSubmit: (values) => latest.current.onSubmit(format(values)),\n onValuesChange,\n validateOn,\n });\n\n // Aliases go onto the instance itself: base-ui `Form` looks the instance up by identity.\n const form = useMemo<ProTableFormInstance>(\n () =>\n Object.assign(base, {\n getFieldsFormatValue: () => format(base.getValues()),\n getFieldsValue: () => base.getValues(),\n getFieldValue: (name: string) => base.getValue(name),\n // base-ui `reset()` returns to the last submitted values; Pro resets to the initial ones.\n resetFields: () => base.reset(structuredClone(initial)),\n setFieldsValue: (values: Record<string, any>) => base.setValues(values),\n setFieldValue: (name: string, value: any) => base.setValue(name, value),\n validateFields: async () => {\n const result = await base.validate();\n if (!result.valid) throw result;\n return base.getValues();\n },\n }) as ProTableFormInstance,\n // `format` only reads `latest`.\n [base],\n );\n\n return { base, form };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useEventCallback } from "../../hooks/useEventCallback.mjs";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
//#region src/ProTable/hooks/useTableBindings.ts
|
|
4
|
+
const useTableBindings = ({ hasRequest, pageInfo, paginationConfig, rowSelection, setPageInfo }) => {
|
|
5
|
+
const rowSelectionProp = useMemo(() => {
|
|
6
|
+
if (!rowSelection) return void 0;
|
|
7
|
+
const { alwaysShowAlert: _always, ...rest } = rowSelection;
|
|
8
|
+
return {
|
|
9
|
+
...rest,
|
|
10
|
+
preserveSelectedRowKeys: rest.preserveSelectedRowKeys ?? hasRequest
|
|
11
|
+
};
|
|
12
|
+
}, [rowSelection, hasRequest]);
|
|
13
|
+
const onPageChange = useEventCallback((page, pageSize) => {
|
|
14
|
+
setPageInfo({
|
|
15
|
+
current: page,
|
|
16
|
+
pageSize
|
|
17
|
+
});
|
|
18
|
+
if (paginationConfig) paginationConfig.onChange?.(page, pageSize);
|
|
19
|
+
});
|
|
20
|
+
return {
|
|
21
|
+
pagination: useMemo(() => paginationConfig === false ? false : {
|
|
22
|
+
...paginationConfig,
|
|
23
|
+
current: pageInfo.current,
|
|
24
|
+
onChange: onPageChange,
|
|
25
|
+
pageSize: pageInfo.pageSize,
|
|
26
|
+
...hasRequest && { total: pageInfo.total }
|
|
27
|
+
}, [
|
|
28
|
+
paginationConfig,
|
|
29
|
+
pageInfo,
|
|
30
|
+
onPageChange,
|
|
31
|
+
hasRequest
|
|
32
|
+
]),
|
|
33
|
+
rowSelection: rowSelectionProp
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
//#endregion
|
|
37
|
+
export { useTableBindings };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=useTableBindings.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTableBindings.mjs","names":[],"sources":["../../../src/ProTable/hooks/useTableBindings.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { useEventCallback } from '@/hooks/useEventCallback';\nimport type { TablePaginationConfig } from '@/Table/type';\n\nimport type { ProTablePageInfo, ProTableProps } from '../type';\n\ninterface TableBindingsOptions<T> {\n hasRequest: boolean;\n pageInfo: ProTablePageInfo;\n paginationConfig: TablePaginationConfig | false;\n rowSelection: ProTableProps<T>['rowSelection'];\n setPageInfo: (next: Partial<ProTablePageInfo>) => void;\n}\n\nexport const useTableBindings = <T>({\n hasRequest,\n pageInfo,\n paginationConfig,\n rowSelection,\n setPageInfo,\n}: TableBindingsOptions<T>) => {\n const rowSelectionProp = useMemo(() => {\n if (!rowSelection) return undefined;\n const { alwaysShowAlert: _always, ...rest } = rowSelection;\n return { ...rest, preserveSelectedRowKeys: rest.preserveSelectedRowKeys ?? hasRequest };\n }, [rowSelection, hasRequest]);\n\n const onPageChange = useEventCallback((page: number, pageSize: number) => {\n setPageInfo({ current: page, pageSize });\n if (paginationConfig) paginationConfig.onChange?.(page, pageSize);\n });\n const pagination = useMemo(\n (): TablePaginationConfig | false =>\n paginationConfig === false\n ? false\n : {\n ...paginationConfig,\n current: pageInfo.current,\n onChange: onPageChange,\n pageSize: pageInfo.pageSize,\n ...(hasRequest && { total: pageInfo.total }),\n },\n [paginationConfig, pageInfo, onPageChange, hasRequest],\n );\n\n return { pagination, rowSelection: rowSelectionProp };\n};\n"],"mappings":";;;AAeA,MAAa,oBAAuB,EAClC,YACA,UACA,kBACA,cACA,kBAC6B;CAC7B,MAAM,mBAAmB,cAAc;EACrC,IAAI,CAAC,cAAc,OAAO,KAAA;EAC1B,MAAM,EAAE,iBAAiB,SAAS,GAAG,SAAS;EAC9C,OAAO;GAAE,GAAG;GAAM,yBAAyB,KAAK,2BAA2B;EAAW;CACxF,GAAG,CAAC,cAAc,UAAU,CAAC;CAE7B,MAAM,eAAe,kBAAkB,MAAc,aAAqB;EACxE,YAAY;GAAE,SAAS;GAAM;EAAS,CAAC;EACvC,IAAI,kBAAkB,iBAAiB,WAAW,MAAM,QAAQ;CAClE,CAAC;CAeD,OAAO;EAAE,YAdU,cAEf,qBAAqB,QACjB,QACA;GACE,GAAG;GACH,SAAS,SAAS;GAClB,UAAU;GACV,UAAU,SAAS;GACnB,GAAI,cAAc,EAAE,OAAO,SAAS,MAAM;EAC5C,GACN;GAAC;GAAkB;GAAU;GAAc;EAAU,CAGrC;EAAG,cAAc;CAAiB;AACtD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useCallback, useMemo, useSyncExternalStore } from "react";
|
|
2
|
+
//#region src/ProTable/hooks/useTableSelection.ts
|
|
3
|
+
const EMPTY = /* @__PURE__ */ new Set();
|
|
4
|
+
const noop = () => {};
|
|
5
|
+
const useSelectedRowKeys = (handleRef) => {
|
|
6
|
+
const subscribe = useCallback((notify) => handleRef.current?.store.subscribe(notify) ?? noop, [handleRef]);
|
|
7
|
+
const getSnapshot = () => handleRef.current?.store.getState().selectedKeys ?? EMPTY;
|
|
8
|
+
const keySet = useSyncExternalStore(subscribe, getSnapshot, () => EMPTY);
|
|
9
|
+
return useMemo(() => [...keySet], [keySet]);
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { useSelectedRowKeys };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=useTableSelection.mjs.map
|