@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,58 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { TableCell } from "../atoms/cells.mjs";
|
|
3
|
+
import { TableSummaryFoot } from "../atoms/layout.mjs";
|
|
4
|
+
import { getFixedInfo } from "../engine/fixed.mjs";
|
|
5
|
+
import { createContext, use, useMemo } from "react";
|
|
6
|
+
import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
|
|
7
|
+
//#region src/Table/render/Summary.tsx
|
|
8
|
+
const SummaryContext = createContext(null);
|
|
9
|
+
const SummaryProvider = SummaryContext.Provider;
|
|
10
|
+
const TableSummaryRoot = ({ children }) => /* @__PURE__ */ jsx(Fragment$1, { children });
|
|
11
|
+
const TableSummaryRow = (props) => /* @__PURE__ */ jsx("tr", { ...props });
|
|
12
|
+
const TableSummaryCell = ({ align, children, className, colSpan = 1, index, rowSpan, scope, style }) => {
|
|
13
|
+
const summary = use(SummaryContext);
|
|
14
|
+
const mergedColSpan = summary?.scrollColumnIndex !== void 0 && index + colSpan === summary.scrollColumnIndex ? colSpan + 1 : colSpan;
|
|
15
|
+
const fixedInfo = summary ? getFixedInfo(index, index + mergedColSpan - 1, summary.leaves, summary.offsets) : void 0;
|
|
16
|
+
return /* @__PURE__ */ jsx(TableCell, {
|
|
17
|
+
align,
|
|
18
|
+
className,
|
|
19
|
+
colSpan: mergedColSpan,
|
|
20
|
+
fixEnd: fixedInfo?.fixEnd,
|
|
21
|
+
fixStart: fixedInfo?.fixStart,
|
|
22
|
+
rowSpan,
|
|
23
|
+
scope,
|
|
24
|
+
shadowEnd: fixedInfo?.shadowEnd,
|
|
25
|
+
shadowStart: fixedInfo?.shadowStart,
|
|
26
|
+
style,
|
|
27
|
+
zIndex: fixedInfo?.zIndex,
|
|
28
|
+
zIndexReverse: fixedInfo?.zIndexReverse,
|
|
29
|
+
children
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
const TableSummary = TableSummaryRoot;
|
|
33
|
+
TableSummary.Row = TableSummaryRow;
|
|
34
|
+
TableSummary.Cell = TableSummaryCell;
|
|
35
|
+
const SummaryFooter = ({ children, scrollbar = 0 }) => {
|
|
36
|
+
const summary = use(SummaryContext);
|
|
37
|
+
const value = useMemo(() => {
|
|
38
|
+
if (!summary || !scrollbar) return summary;
|
|
39
|
+
const leaves = [...summary.leaves, { fixed: summary.leaves.at(-1)?.fixed }];
|
|
40
|
+
return {
|
|
41
|
+
leaves,
|
|
42
|
+
offsets: {
|
|
43
|
+
...summary.offsets,
|
|
44
|
+
end: [...summary.offsets.end.map((width) => width + scrollbar), 0],
|
|
45
|
+
widths: [...summary.offsets.widths, scrollbar]
|
|
46
|
+
},
|
|
47
|
+
scrollColumnIndex: leaves.length - 1
|
|
48
|
+
};
|
|
49
|
+
}, [summary, scrollbar]);
|
|
50
|
+
return /* @__PURE__ */ jsx(SummaryContext, {
|
|
51
|
+
value,
|
|
52
|
+
children: /* @__PURE__ */ jsx(TableSummaryFoot, { children })
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
//#endregion
|
|
56
|
+
export { SummaryFooter, SummaryProvider, TableSummary };
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=Summary.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Summary.mjs","names":[],"sources":["../../../src/Table/render/Summary.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, type ReactNode, use, useMemo } from 'react';\n\nimport { TableCell, TableSummaryFoot } from '../atoms';\nimport { getFixedInfo, type StickyOffsets } from '../engine/fixed';\nimport type { EngineColumn } from '../engine/types';\nimport type { TableSummaryCellProps, TableSummaryProps, TableSummaryRowProps } from '../type';\n\ninterface SummaryContextValue {\n leaves: readonly Pick<EngineColumn, 'fixed'>[];\n offsets: StickyOffsets;\n scrollColumnIndex?: number;\n}\n\nconst SummaryContext = createContext<SummaryContextValue | null>(null);\n\nexport const SummaryProvider = SummaryContext.Provider;\n\nconst TableSummaryRoot = ({ children }: TableSummaryProps) => <>{children}</>;\n\nconst TableSummaryRow = (props: TableSummaryRowProps) => <tr {...props} />;\n\nconst TableSummaryCell = ({\n align,\n children,\n className,\n colSpan = 1,\n index,\n rowSpan,\n scope,\n style,\n}: TableSummaryCellProps) => {\n const summary = use(SummaryContext);\n const mergedColSpan =\n summary?.scrollColumnIndex !== undefined && index + colSpan === summary.scrollColumnIndex\n ? colSpan + 1\n : colSpan;\n const fixedInfo = summary\n ? getFixedInfo(index, index + mergedColSpan - 1, summary.leaves, summary.offsets)\n : undefined;\n return (\n <TableCell\n align={align}\n className={className}\n colSpan={mergedColSpan}\n fixEnd={fixedInfo?.fixEnd}\n fixStart={fixedInfo?.fixStart}\n rowSpan={rowSpan}\n scope={scope}\n shadowEnd={fixedInfo?.shadowEnd}\n shadowStart={fixedInfo?.shadowStart}\n style={style}\n zIndex={fixedInfo?.zIndex}\n zIndexReverse={fixedInfo?.zIndexReverse}\n >\n {children}\n </TableCell>\n );\n};\n\ntype TableSummaryComponent = typeof TableSummaryRoot & {\n Cell: typeof TableSummaryCell;\n Row: typeof TableSummaryRow;\n};\n\nexport const TableSummary = TableSummaryRoot as TableSummaryComponent;\nTableSummary.Row = TableSummaryRow;\nTableSummary.Cell = TableSummaryCell;\n\nexport const SummaryFooter = ({\n children,\n scrollbar = 0,\n}: {\n children: ReactNode;\n scrollbar?: number;\n}) => {\n const summary = use(SummaryContext);\n const value = useMemo(() => {\n if (!summary || !scrollbar) return summary;\n const leaves = [...summary.leaves, { fixed: summary.leaves.at(-1)?.fixed }];\n return {\n leaves,\n offsets: {\n ...summary.offsets,\n end: [...summary.offsets.end.map((width) => width + scrollbar), 0],\n widths: [...summary.offsets.widths, scrollbar],\n },\n scrollColumnIndex: leaves.length - 1,\n };\n }, [summary, scrollbar]);\n return (\n <SummaryContext value={value}>\n <TableSummaryFoot>{children}</TableSummaryFoot>\n </SummaryContext>\n );\n};\n"],"mappings":";;;;;;;AAeA,MAAM,iBAAiB,cAA0C,IAAI;AAErE,MAAa,kBAAkB,eAAe;AAE9C,MAAM,oBAAoB,EAAE,eAAkC,oBAAA,YAAA,EAAG,SAAW,CAAA;AAE5E,MAAM,mBAAmB,UAAgC,oBAAC,MAAD,EAAI,GAAI,MAAQ,CAAA;AAEzE,MAAM,oBAAoB,EACxB,OACA,UACA,WACA,UAAU,GACV,OACA,SACA,OACA,YAC2B;CAC3B,MAAM,UAAU,IAAI,cAAc;CAClC,MAAM,gBACJ,SAAS,sBAAsB,KAAA,KAAa,QAAQ,YAAY,QAAQ,oBACpE,UAAU,IACV;CACN,MAAM,YAAY,UACd,aAAa,OAAO,QAAQ,gBAAgB,GAAG,QAAQ,QAAQ,QAAQ,OAAO,IAC9E,KAAA;CACJ,OACE,oBAAC,WAAD;EACS;EACI;EACX,SAAS;EACT,QAAQ,WAAW;EACnB,UAAU,WAAW;EACZ;EACF;EACP,WAAW,WAAW;EACtB,aAAa,WAAW;EACjB;EACP,QAAQ,WAAW;EACnB,eAAe,WAAW;EAEzB;CACQ,CAAA;AAEf;AAOA,MAAa,eAAe;AAC5B,aAAa,MAAM;AACnB,aAAa,OAAO;AAEpB,MAAa,iBAAiB,EAC5B,UACA,YAAY,QAIR;CACJ,MAAM,UAAU,IAAI,cAAc;CAClC,MAAM,QAAQ,cAAc;EAC1B,IAAI,CAAC,WAAW,CAAC,WAAW,OAAO;EACnC,MAAM,SAAS,CAAC,GAAG,QAAQ,QAAQ,EAAE,OAAO,QAAQ,OAAO,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC;EAC1E,OAAO;GACL;GACA,SAAS;IACP,GAAG,QAAQ;IACX,KAAK,CAAC,GAAG,QAAQ,QAAQ,IAAI,KAAK,UAAU,QAAQ,SAAS,GAAG,CAAC;IACjE,QAAQ,CAAC,GAAG,QAAQ,QAAQ,QAAQ,SAAS;GAC/C;GACA,mBAAmB,OAAO,SAAS;EACrC;CACF,GAAG,CAAC,SAAS,SAAS,CAAC;CACvB,OACE,oBAAC,gBAAD;EAAuB;EACrB,UAAA,oBAAC,kBAAD,EAAmB,SAA2B,CAAA;CAChC,CAAA;AAEpB"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { TableContainer, TableElement, TableFooter, TableRoot, TableScroll, TableTitle } from "../atoms/layout.mjs";
|
|
3
|
+
import { useTableView } from "./context.mjs";
|
|
4
|
+
import { SummaryFooter, SummaryProvider } from "./Summary.mjs";
|
|
5
|
+
import { HeaderRows } from "./Header.mjs";
|
|
6
|
+
import { Body } from "./Body.mjs";
|
|
7
|
+
import { FixedHolder } from "./FixedHolder.mjs";
|
|
8
|
+
import StickyScrollBar from "./StickyScrollBar.mjs";
|
|
9
|
+
import { useColGroups } from "./useColGroups.mjs";
|
|
10
|
+
import { useScrollSync } from "./useScrollSync.mjs";
|
|
11
|
+
import VirtualBody from "./VirtualBody.mjs";
|
|
12
|
+
import { useCallback } from "react";
|
|
13
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
+
import clsx$1 from "clsx";
|
|
15
|
+
//#region src/Table/render/TableView.tsx
|
|
16
|
+
const TableView = ({ bodyRef, className, colWidths, emptyNode, fixFooter, fixHeader, footer, grouped, headerRows, hoverable, offsets, onColumnResize, onScroll, ref, rows, scrollX, scrollY, showHeader, size, sticky, style, summaryNode, tableLayout, title, variant, virtual, virtualScrollRef }) => {
|
|
17
|
+
const view = useTableView();
|
|
18
|
+
const { horizonScroll, leafColumns, prefixCls, semanticClassNames, semanticStyles } = view;
|
|
19
|
+
const { headerRef, onInternalScroll, rootRef, scrollbarSize, stickyRef, summaryRef } = useScrollSync({
|
|
20
|
+
bodyRef,
|
|
21
|
+
columnCount: leafColumns.length,
|
|
22
|
+
fixHeader,
|
|
23
|
+
horizonScroll,
|
|
24
|
+
prefixCls,
|
|
25
|
+
rows,
|
|
26
|
+
sticky: sticky.isSticky
|
|
27
|
+
});
|
|
28
|
+
const onBodyScroll = (event) => {
|
|
29
|
+
onInternalScroll({ currentTarget: event.currentTarget });
|
|
30
|
+
onScroll?.(event);
|
|
31
|
+
};
|
|
32
|
+
const setRootRef = useCallback((element) => {
|
|
33
|
+
rootRef.current = element;
|
|
34
|
+
if (typeof ref === "function") ref(element);
|
|
35
|
+
else if (ref) ref.current = element;
|
|
36
|
+
}, [ref]);
|
|
37
|
+
const headerScrollbar = sticky.isSticky && !fixHeader ? 0 : scrollbarSize;
|
|
38
|
+
const { bodyColGroup, holderColGroup } = useColGroups({
|
|
39
|
+
colWidths,
|
|
40
|
+
headerScrollbar,
|
|
41
|
+
leafColumns,
|
|
42
|
+
rowCount: rows.length,
|
|
43
|
+
tableLayout,
|
|
44
|
+
virtualWidths: view.virtualWidths
|
|
45
|
+
});
|
|
46
|
+
const scrollTableStyle = horizonScroll ? {
|
|
47
|
+
minWidth: "100%",
|
|
48
|
+
width: scrollX === true ? "auto" : scrollX
|
|
49
|
+
} : void 0;
|
|
50
|
+
const scrollXStyle = horizonScroll ? { overflowX: "auto" } : void 0;
|
|
51
|
+
const scrollYStyle = fixHeader ? {
|
|
52
|
+
maxHeight: scrollY,
|
|
53
|
+
overflowY: rows.length > 0 ? "scroll" : "auto"
|
|
54
|
+
} : horizonScroll ? { overflowY: "hidden" } : void 0;
|
|
55
|
+
const summary = summaryNode ? /* @__PURE__ */ jsx(SummaryFooter, { children: summaryNode }) : null;
|
|
56
|
+
const holderSummary = summaryNode ? /* @__PURE__ */ jsx(SummaryFooter, {
|
|
57
|
+
scrollbar: headerScrollbar,
|
|
58
|
+
children: summaryNode
|
|
59
|
+
}) : null;
|
|
60
|
+
const stickyHolderClass = sticky.isSticky ? `${prefixCls}-sticky-holder` : void 0;
|
|
61
|
+
const headerRowsNode = /* @__PURE__ */ jsx(HeaderRows, {
|
|
62
|
+
rows: headerRows,
|
|
63
|
+
scrollbar: headerScrollbar
|
|
64
|
+
});
|
|
65
|
+
let content;
|
|
66
|
+
if (fixHeader || sticky.isSticky || virtual) {
|
|
67
|
+
const bodyNode = virtual ? /* @__PURE__ */ jsx(VirtualBody, {
|
|
68
|
+
emptyNode,
|
|
69
|
+
holderRef: bodyRef,
|
|
70
|
+
input: virtual,
|
|
71
|
+
maxHeight: scrollY,
|
|
72
|
+
rows,
|
|
73
|
+
scrollRef: virtualScrollRef,
|
|
74
|
+
scrollX,
|
|
75
|
+
onScroll: onBodyScroll
|
|
76
|
+
}) : /* @__PURE__ */ jsx(TableScroll, {
|
|
77
|
+
part: "body",
|
|
78
|
+
ref: bodyRef,
|
|
79
|
+
style: {
|
|
80
|
+
...scrollXStyle,
|
|
81
|
+
...scrollYStyle
|
|
82
|
+
},
|
|
83
|
+
onScroll: onBodyScroll,
|
|
84
|
+
children: /* @__PURE__ */ jsxs(TableElement, {
|
|
85
|
+
component: view.components.table,
|
|
86
|
+
style: {
|
|
87
|
+
...scrollTableStyle,
|
|
88
|
+
tableLayout
|
|
89
|
+
},
|
|
90
|
+
children: [
|
|
91
|
+
bodyColGroup,
|
|
92
|
+
/* @__PURE__ */ jsx(Body, {
|
|
93
|
+
measure: true,
|
|
94
|
+
emptyNode,
|
|
95
|
+
rows,
|
|
96
|
+
onColumnResize
|
|
97
|
+
}),
|
|
98
|
+
!fixFooter && summary
|
|
99
|
+
]
|
|
100
|
+
})
|
|
101
|
+
});
|
|
102
|
+
content = /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
103
|
+
showHeader && /* @__PURE__ */ jsxs(FixedHolder, {
|
|
104
|
+
className: clsx$1(`${prefixCls}-header`, stickyHolderClass),
|
|
105
|
+
colGroup: holderColGroup,
|
|
106
|
+
holderRef: headerRef,
|
|
107
|
+
scrollX,
|
|
108
|
+
tableLayout,
|
|
109
|
+
stickyStyle: sticky.isSticky ? {
|
|
110
|
+
position: "sticky",
|
|
111
|
+
top: sticky.offsetHeader
|
|
112
|
+
} : void 0,
|
|
113
|
+
onWheelX: (target, scrollLeft) => onInternalScroll({
|
|
114
|
+
currentTarget: target,
|
|
115
|
+
scrollLeft
|
|
116
|
+
}),
|
|
117
|
+
children: [headerRowsNode, fixFooter === "top" && holderSummary]
|
|
118
|
+
}),
|
|
119
|
+
bodyNode,
|
|
120
|
+
fixFooter && fixFooter !== "top" && /* @__PURE__ */ jsx(FixedHolder, {
|
|
121
|
+
className: clsx$1(`${prefixCls}-summary`, stickyHolderClass),
|
|
122
|
+
colGroup: holderColGroup,
|
|
123
|
+
holderRef: summaryRef,
|
|
124
|
+
scrollX,
|
|
125
|
+
tableLayout,
|
|
126
|
+
stickyStyle: sticky.isSticky ? {
|
|
127
|
+
bottom: sticky.offsetSummary,
|
|
128
|
+
position: "sticky"
|
|
129
|
+
} : void 0,
|
|
130
|
+
onWheelX: (target, scrollLeft) => onInternalScroll({
|
|
131
|
+
currentTarget: target,
|
|
132
|
+
scrollLeft
|
|
133
|
+
}),
|
|
134
|
+
children: holderSummary
|
|
135
|
+
}),
|
|
136
|
+
sticky.isSticky && bodyRef.current && /* @__PURE__ */ jsx(StickyScrollBar, {
|
|
137
|
+
bodyRef,
|
|
138
|
+
container: sticky.container,
|
|
139
|
+
offsetScroll: sticky.offsetScroll,
|
|
140
|
+
prefixCls,
|
|
141
|
+
ref: stickyRef,
|
|
142
|
+
onScroll: onInternalScroll
|
|
143
|
+
})
|
|
144
|
+
] });
|
|
145
|
+
} else content = /* @__PURE__ */ jsx(TableScroll, {
|
|
146
|
+
className: semanticClassNames.content,
|
|
147
|
+
part: "content",
|
|
148
|
+
ref: bodyRef,
|
|
149
|
+
style: {
|
|
150
|
+
...scrollXStyle,
|
|
151
|
+
...scrollYStyle,
|
|
152
|
+
...semanticStyles.content
|
|
153
|
+
},
|
|
154
|
+
onScroll: onBodyScroll,
|
|
155
|
+
children: /* @__PURE__ */ jsxs(TableElement, {
|
|
156
|
+
component: view.components.table,
|
|
157
|
+
style: {
|
|
158
|
+
...scrollTableStyle,
|
|
159
|
+
tableLayout
|
|
160
|
+
},
|
|
161
|
+
children: [
|
|
162
|
+
bodyColGroup,
|
|
163
|
+
showHeader && headerRowsNode,
|
|
164
|
+
/* @__PURE__ */ jsx(Body, {
|
|
165
|
+
emptyNode,
|
|
166
|
+
measure: horizonScroll,
|
|
167
|
+
rows,
|
|
168
|
+
onColumnResize
|
|
169
|
+
}),
|
|
170
|
+
summary
|
|
171
|
+
]
|
|
172
|
+
})
|
|
173
|
+
});
|
|
174
|
+
const first = leafColumns[0];
|
|
175
|
+
const last = leafColumns.at(-1);
|
|
176
|
+
return /* @__PURE__ */ jsx(SummaryProvider, {
|
|
177
|
+
value: {
|
|
178
|
+
leaves: leafColumns,
|
|
179
|
+
offsets
|
|
180
|
+
},
|
|
181
|
+
children: /* @__PURE__ */ jsxs(TableRoot, {
|
|
182
|
+
grouped,
|
|
183
|
+
hoverable,
|
|
184
|
+
ref: setRootRef,
|
|
185
|
+
size,
|
|
186
|
+
variant,
|
|
187
|
+
className: clsx$1(className, horizonScroll && [`${prefixCls}-fix-start-shadow`, `${prefixCls}-fix-end-shadow`], tableLayout === "fixed" && `${prefixCls}-layout-fixed`, fixHeader && `${prefixCls}-fixed-header`, horizonScroll && leafColumns.some((leaf) => leaf.fixed) && `${prefixCls}-fixed-column`, horizonScroll && `${prefixCls}-scroll-horizontal`, first?.fixed && `${prefixCls}-has-fix-start`, last?.fixed === "end" && `${prefixCls}-has-fix-end`, virtual && `${prefixCls}-virtual`),
|
|
188
|
+
style: sticky.isSticky ? {
|
|
189
|
+
...style,
|
|
190
|
+
"--columns-count": leafColumns.length
|
|
191
|
+
} : style,
|
|
192
|
+
children: [
|
|
193
|
+
title !== void 0 && /* @__PURE__ */ jsx(TableTitle, {
|
|
194
|
+
className: semanticClassNames.title,
|
|
195
|
+
style: semanticStyles.title,
|
|
196
|
+
children: title
|
|
197
|
+
}),
|
|
198
|
+
/* @__PURE__ */ jsx(TableContainer, {
|
|
199
|
+
className: semanticClassNames.section,
|
|
200
|
+
style: semanticStyles.section,
|
|
201
|
+
children: content
|
|
202
|
+
}),
|
|
203
|
+
footer !== void 0 && /* @__PURE__ */ jsx(TableFooter, {
|
|
204
|
+
className: semanticClassNames.footer,
|
|
205
|
+
style: semanticStyles.footer,
|
|
206
|
+
children: footer
|
|
207
|
+
})
|
|
208
|
+
]
|
|
209
|
+
})
|
|
210
|
+
});
|
|
211
|
+
};
|
|
212
|
+
//#endregion
|
|
213
|
+
export { TableView as default };
|
|
214
|
+
|
|
215
|
+
//# sourceMappingURL=TableView.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableView.mjs","names":["clsx"],"sources":["../../../src/Table/render/TableView.tsx"],"sourcesContent":["'use client';\n\nimport clsx from 'clsx';\nimport { type CSSProperties, type ReactNode, type UIEvent, useCallback } from 'react';\n\nimport {\n TableContainer,\n TableElement,\n TableFooter,\n TableRoot,\n TableScroll,\n TableTitle,\n} from '../atoms';\nimport { Body } from './Body';\nimport { useTableView } from './context';\nimport { FixedHolder } from './FixedHolder';\nimport { HeaderRows } from './Header';\nimport StickyScrollBar from './StickyScrollBar';\nimport { SummaryFooter, SummaryProvider } from './Summary';\nimport { useColGroups } from './useColGroups';\nimport { useScrollSync } from './useScrollSync';\nimport type { TableViewProps } from './viewTypes';\nimport VirtualBody from './VirtualBody';\n\nconst TableView = <T,>({\n bodyRef,\n className,\n colWidths,\n emptyNode,\n fixFooter,\n fixHeader,\n footer,\n grouped,\n headerRows,\n hoverable,\n offsets,\n onColumnResize,\n onScroll,\n ref,\n rows,\n scrollX,\n scrollY,\n showHeader,\n size,\n sticky,\n style,\n summaryNode,\n tableLayout,\n title,\n variant,\n virtual,\n virtualScrollRef,\n}: TableViewProps<T>) => {\n const view = useTableView<T>();\n const { horizonScroll, leafColumns, prefixCls, semanticClassNames, semanticStyles } = view;\n const { headerRef, onInternalScroll, rootRef, scrollbarSize, stickyRef, summaryRef } =\n useScrollSync({\n bodyRef,\n columnCount: leafColumns.length,\n fixHeader,\n horizonScroll,\n prefixCls,\n rows,\n sticky: sticky.isSticky,\n });\n\n const onBodyScroll = (event: UIEvent<HTMLDivElement>) => {\n onInternalScroll({ currentTarget: event.currentTarget });\n onScroll?.(event);\n };\n\n const setRootRef = useCallback(\n (element: HTMLDivElement | null) => {\n rootRef.current = element;\n if (typeof ref === 'function') ref(element);\n else if (ref) ref.current = element;\n },\n [ref],\n );\n\n const headerScrollbar = sticky.isSticky && !fixHeader ? 0 : scrollbarSize;\n const { bodyColGroup, holderColGroup } = useColGroups({\n colWidths,\n headerScrollbar,\n leafColumns,\n rowCount: rows.length,\n tableLayout,\n virtualWidths: view.virtualWidths,\n });\n\n const scrollTableStyle: CSSProperties | undefined = horizonScroll\n ? { minWidth: '100%', width: scrollX === true ? 'auto' : scrollX }\n : undefined;\n const scrollXStyle: CSSProperties | undefined = horizonScroll ? { overflowX: 'auto' } : undefined;\n const scrollYStyle: CSSProperties | undefined = fixHeader\n ? { maxHeight: scrollY, overflowY: rows.length > 0 ? 'scroll' : 'auto' }\n : horizonScroll\n ? { overflowY: 'hidden' }\n : undefined;\n\n const summary = summaryNode ? <SummaryFooter>{summaryNode}</SummaryFooter> : null;\n const holderSummary = summaryNode ? (\n <SummaryFooter scrollbar={headerScrollbar}>{summaryNode}</SummaryFooter>\n ) : null;\n const stickyHolderClass = sticky.isSticky ? `${prefixCls}-sticky-holder` : undefined;\n const headerRowsNode = <HeaderRows rows={headerRows} scrollbar={headerScrollbar} />;\n\n let content: ReactNode;\n if (fixHeader || sticky.isSticky || virtual) {\n const bodyNode = virtual ? (\n <VirtualBody\n emptyNode={emptyNode}\n holderRef={bodyRef}\n input={virtual}\n maxHeight={scrollY}\n rows={rows}\n scrollRef={virtualScrollRef}\n scrollX={scrollX}\n onScroll={onBodyScroll}\n />\n ) : (\n <TableScroll\n part=\"body\"\n ref={bodyRef}\n style={{ ...scrollXStyle, ...scrollYStyle }}\n onScroll={onBodyScroll}\n >\n <TableElement\n component={view.components.table}\n style={{ ...scrollTableStyle, tableLayout }}\n >\n {bodyColGroup}\n <Body measure emptyNode={emptyNode} rows={rows} onColumnResize={onColumnResize} />\n {!fixFooter && summary}\n </TableElement>\n </TableScroll>\n );\n\n content = (\n <>\n {showHeader && (\n <FixedHolder\n className={clsx(`${prefixCls}-header`, stickyHolderClass)}\n colGroup={holderColGroup}\n holderRef={headerRef}\n scrollX={scrollX}\n tableLayout={tableLayout}\n stickyStyle={\n sticky.isSticky ? { position: 'sticky', top: sticky.offsetHeader } : undefined\n }\n onWheelX={(target, scrollLeft) =>\n onInternalScroll({ currentTarget: target, scrollLeft })\n }\n >\n {headerRowsNode}\n {fixFooter === 'top' && holderSummary}\n </FixedHolder>\n )}\n {bodyNode}\n {fixFooter && fixFooter !== 'top' && (\n <FixedHolder\n className={clsx(`${prefixCls}-summary`, stickyHolderClass)}\n colGroup={holderColGroup}\n holderRef={summaryRef}\n scrollX={scrollX}\n tableLayout={tableLayout}\n stickyStyle={\n sticky.isSticky ? { bottom: sticky.offsetSummary, position: 'sticky' } : undefined\n }\n onWheelX={(target, scrollLeft) =>\n onInternalScroll({ currentTarget: target, scrollLeft })\n }\n >\n {holderSummary}\n </FixedHolder>\n )}\n {sticky.isSticky && bodyRef.current && (\n <StickyScrollBar\n bodyRef={bodyRef}\n container={sticky.container}\n offsetScroll={sticky.offsetScroll}\n prefixCls={prefixCls}\n ref={stickyRef}\n onScroll={onInternalScroll}\n />\n )}\n </>\n );\n } else {\n content = (\n <TableScroll\n className={semanticClassNames.content}\n part=\"content\"\n ref={bodyRef}\n style={{ ...scrollXStyle, ...scrollYStyle, ...semanticStyles.content }}\n onScroll={onBodyScroll}\n >\n <TableElement\n component={view.components.table}\n style={{ ...scrollTableStyle, tableLayout }}\n >\n {bodyColGroup}\n {showHeader && headerRowsNode}\n <Body\n emptyNode={emptyNode}\n measure={horizonScroll}\n rows={rows}\n onColumnResize={onColumnResize}\n />\n {summary}\n </TableElement>\n </TableScroll>\n );\n }\n\n const first = leafColumns[0];\n const last = leafColumns.at(-1);\n\n return (\n <SummaryProvider value={{ leaves: leafColumns, offsets }}>\n <TableRoot\n grouped={grouped}\n hoverable={hoverable}\n ref={setRootRef}\n size={size}\n variant={variant}\n className={clsx(\n className,\n horizonScroll && [`${prefixCls}-fix-start-shadow`, `${prefixCls}-fix-end-shadow`],\n tableLayout === 'fixed' && `${prefixCls}-layout-fixed`,\n fixHeader && `${prefixCls}-fixed-header`,\n horizonScroll && leafColumns.some((leaf) => leaf.fixed) && `${prefixCls}-fixed-column`,\n horizonScroll && `${prefixCls}-scroll-horizontal`,\n first?.fixed && `${prefixCls}-has-fix-start`,\n last?.fixed === 'end' && `${prefixCls}-has-fix-end`,\n virtual && `${prefixCls}-virtual`,\n )}\n style={\n sticky.isSticky\n ? ({ ...style, '--columns-count': leafColumns.length } as CSSProperties)\n : style\n }\n >\n {title !== undefined && (\n <TableTitle className={semanticClassNames.title} style={semanticStyles.title}>\n {title}\n </TableTitle>\n )}\n <TableContainer className={semanticClassNames.section} style={semanticStyles.section}>\n {content}\n </TableContainer>\n {footer !== undefined && (\n <TableFooter className={semanticClassNames.footer} style={semanticStyles.footer}>\n {footer}\n </TableFooter>\n )}\n </TableRoot>\n </SummaryProvider>\n );\n};\n\nexport type { StickyConfig, TableViewProps } from './viewTypes';\n\nexport default TableView;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useTableView } from "./context.mjs";
|
|
3
|
+
import { BodyRow } from "./Body.mjs";
|
|
4
|
+
import { useVirtualModel } from "../engine/useTableEngine.mjs";
|
|
5
|
+
import { useLayoutEffect } from "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
//#region src/Table/render/VirtualBody.tsx
|
|
8
|
+
const getRowSpan = (leaf, row) => {
|
|
9
|
+
if (!row) return 1;
|
|
10
|
+
return leaf.column.source.column.onCell?.(row.record, row.index)?.rowSpan ?? 1;
|
|
11
|
+
};
|
|
12
|
+
const collectSpanLines = (leaves, rows, start, end) => {
|
|
13
|
+
const spanning = leaves.filter((leaf) => leaf.column.source.column.onCell);
|
|
14
|
+
if (spanning.length === 0 || end < 0) return [];
|
|
15
|
+
let first = start;
|
|
16
|
+
let covered = spanning.filter((leaf) => getRowSpan(leaf, rows[start]) === 0);
|
|
17
|
+
for (let index = start; index >= 0 && covered.length > 0; index -= 1) {
|
|
18
|
+
covered = covered.filter((leaf) => getRowSpan(leaf, rows[index]) === 0);
|
|
19
|
+
first = index;
|
|
20
|
+
}
|
|
21
|
+
const lines = [];
|
|
22
|
+
for (let index = first; index <= end; index += 1) if (spanning.some((leaf) => getRowSpan(leaf, rows[index]) > 1)) lines.push(index);
|
|
23
|
+
return lines;
|
|
24
|
+
};
|
|
25
|
+
const VirtualBody = ({ emptyNode, holderRef, input, maxHeight, onScroll, rows, scrollRef, scrollX }) => {
|
|
26
|
+
const virtual = useVirtualModel(input, rows);
|
|
27
|
+
useLayoutEffect(() => {
|
|
28
|
+
scrollRef.current = virtual.scrollTo;
|
|
29
|
+
});
|
|
30
|
+
const { leafColumns, prefixCls, semanticClassNames, semanticStyles } = useTableView();
|
|
31
|
+
const width = scrollX === true ? "auto" : scrollX;
|
|
32
|
+
const offset = virtual.items[0]?.start ?? 0;
|
|
33
|
+
const spanLines = collectSpanLines(leafColumns, rows, virtual.items[0]?.index ?? 0, virtual.items.at(-1)?.index ?? -1);
|
|
34
|
+
return /* @__PURE__ */ jsx("div", {
|
|
35
|
+
style: semanticStyles.body.wrapper,
|
|
36
|
+
className: [`${prefixCls}-tbody-virtual`, semanticClassNames.body.wrapper].filter(Boolean).join(" "),
|
|
37
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
38
|
+
className: `${prefixCls}-tbody-virtual-holder`,
|
|
39
|
+
ref: holderRef,
|
|
40
|
+
style: {
|
|
41
|
+
maxHeight,
|
|
42
|
+
overflow: "auto"
|
|
43
|
+
},
|
|
44
|
+
onScroll,
|
|
45
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
46
|
+
className: `${prefixCls}-tbody-virtual-holder-inner`,
|
|
47
|
+
style: {
|
|
48
|
+
height: virtual.totalSize,
|
|
49
|
+
minWidth: "100%",
|
|
50
|
+
position: "relative",
|
|
51
|
+
width
|
|
52
|
+
},
|
|
53
|
+
children: [rows.length === 0 ? /* @__PURE__ */ jsx("div", {
|
|
54
|
+
className: `${prefixCls}-placeholder`,
|
|
55
|
+
children: emptyNode
|
|
56
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
57
|
+
style: {
|
|
58
|
+
position: "relative",
|
|
59
|
+
top: offset
|
|
60
|
+
},
|
|
61
|
+
children: virtual.items.map((item) => {
|
|
62
|
+
const row = rows[item.index];
|
|
63
|
+
if (!row) return null;
|
|
64
|
+
return /* @__PURE__ */ jsx("div", {
|
|
65
|
+
"data-index": item.index,
|
|
66
|
+
ref: virtual.measureElement,
|
|
67
|
+
children: /* @__PURE__ */ jsx(BodyRow, {
|
|
68
|
+
depth: row.depth,
|
|
69
|
+
hasChildren: row.hasChildren,
|
|
70
|
+
index: row.index,
|
|
71
|
+
record: row.record,
|
|
72
|
+
renderIndex: row.renderIndex,
|
|
73
|
+
rowKey: row.key
|
|
74
|
+
})
|
|
75
|
+
}, item.key);
|
|
76
|
+
})
|
|
77
|
+
}), spanLines.map((index) => {
|
|
78
|
+
const row = rows[index];
|
|
79
|
+
const top = virtual.getRange(index)?.start ?? 0;
|
|
80
|
+
const getHeight = (rowSpan) => (virtual.getRange(Math.min(index + rowSpan - 1, rows.length - 1))?.end ?? top) - top;
|
|
81
|
+
return /* @__PURE__ */ jsx(BodyRow, {
|
|
82
|
+
depth: row.depth,
|
|
83
|
+
extra: {
|
|
84
|
+
getHeight,
|
|
85
|
+
top
|
|
86
|
+
},
|
|
87
|
+
hasChildren: row.hasChildren,
|
|
88
|
+
index: row.index,
|
|
89
|
+
record: row.record,
|
|
90
|
+
renderIndex: row.renderIndex,
|
|
91
|
+
rowKey: row.key
|
|
92
|
+
}, `extra-${row.key}`);
|
|
93
|
+
})]
|
|
94
|
+
})
|
|
95
|
+
})
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
//#endregion
|
|
99
|
+
export { VirtualBody as default };
|
|
100
|
+
|
|
101
|
+
//# sourceMappingURL=VirtualBody.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VirtualBody.mjs","names":[],"sources":["../../../src/Table/render/VirtualBody.tsx"],"sourcesContent":["'use client';\n\nimport { type ReactNode, type Ref, type RefObject, type UIEvent, useLayoutEffect } from 'react';\n\nimport type { LeafColumnModel, RowModel, VirtualInput, VirtualScrollConfig } from '../engine/types';\nimport { useVirtualModel } from '../engine/useTableEngine';\nimport type { ColumnSource } from '../pipeline/normalizeColumns';\nimport type { TableColumnType } from '../type';\nimport { BodyRow } from './Body';\nimport { useTableView } from './context';\n\ninterface VirtualBodyProps<T> {\n emptyNode: ReactNode;\n holderRef: Ref<HTMLDivElement>;\n input: VirtualInput;\n maxHeight?: number | string;\n onScroll: (event: UIEvent<HTMLDivElement>) => void;\n rows: readonly RowModel<T>[];\n scrollRef: RefObject<((config: VirtualScrollConfig) => void) | undefined>;\n scrollX?: number | string | true;\n}\n\nconst getRowSpan = <T,>(leaf: LeafColumnModel<ColumnSource<T>>, row: RowModel<T> | undefined) => {\n if (!row) return 1;\n const column = leaf.column.source.column as TableColumnType<T>;\n return column.onCell?.(row.record, row.index)?.rowSpan ?? 1;\n};\n\nconst collectSpanLines = <T,>(\n leaves: readonly LeafColumnModel<ColumnSource<T>>[],\n rows: readonly RowModel<T>[],\n start: number,\n end: number,\n) => {\n const spanning = leaves.filter(\n (leaf) => (leaf.column.source.column as TableColumnType<T>).onCell,\n );\n if (spanning.length === 0 || end < 0) return [];\n\n let first = start;\n let covered = spanning.filter((leaf) => getRowSpan(leaf, rows[start]) === 0);\n for (let index = start; index >= 0 && covered.length > 0; index -= 1) {\n covered = covered.filter((leaf) => getRowSpan(leaf, rows[index]) === 0);\n first = index;\n }\n\n const lines: number[] = [];\n for (let index = first; index <= end; index += 1) {\n if (spanning.some((leaf) => getRowSpan(leaf, rows[index]) > 1)) lines.push(index);\n }\n return lines;\n};\n\nconst VirtualBody = <T,>({\n emptyNode,\n holderRef,\n input,\n maxHeight,\n onScroll,\n rows,\n scrollRef,\n scrollX,\n}: VirtualBodyProps<T>) => {\n const virtual = useVirtualModel(input, rows);\n useLayoutEffect(() => {\n scrollRef.current = virtual.scrollTo;\n });\n const { leafColumns, prefixCls, semanticClassNames, semanticStyles } = useTableView<T>();\n const width = scrollX === true ? 'auto' : scrollX;\n const offset = virtual.items[0]?.start ?? 0;\n const spanLines = collectSpanLines(\n leafColumns,\n rows,\n virtual.items[0]?.index ?? 0,\n virtual.items.at(-1)?.index ?? -1,\n );\n\n return (\n <div\n style={semanticStyles.body.wrapper}\n className={[`${prefixCls}-tbody-virtual`, semanticClassNames.body.wrapper]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={`${prefixCls}-tbody-virtual-holder`}\n ref={holderRef}\n style={{ maxHeight, overflow: 'auto' }}\n onScroll={onScroll}\n >\n <div\n className={`${prefixCls}-tbody-virtual-holder-inner`}\n style={{ height: virtual.totalSize, minWidth: '100%', position: 'relative', width }}\n >\n {rows.length === 0 ? (\n <div className={`${prefixCls}-placeholder`}>{emptyNode}</div>\n ) : (\n // Not a transform: that opens a stacking context and FixedFrost's rail would\n // cover the fixed cells inside it.\n <div style={{ position: 'relative', top: offset }}>\n {virtual.items.map((item) => {\n const row = rows[item.index];\n if (!row) return null;\n return (\n <div data-index={item.index} key={item.key} ref={virtual.measureElement}>\n <BodyRow\n depth={row.depth}\n hasChildren={row.hasChildren}\n index={row.index}\n record={row.record}\n renderIndex={row.renderIndex}\n rowKey={row.key}\n />\n </div>\n );\n })}\n </div>\n )}\n {spanLines.map((index) => {\n const row = rows[index];\n const top = virtual.getRange(index)?.start ?? 0;\n const getHeight = (rowSpan: number) =>\n (virtual.getRange(Math.min(index + rowSpan - 1, rows.length - 1))?.end ?? top) - top;\n return (\n <BodyRow\n depth={row.depth}\n extra={{ getHeight, top }}\n hasChildren={row.hasChildren}\n index={row.index}\n key={`extra-${row.key}`}\n record={row.record}\n renderIndex={row.renderIndex}\n rowKey={row.key}\n />\n );\n })}\n </div>\n </div>\n </div>\n );\n};\n\nexport default VirtualBody;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext, use } from "react";
|
|
3
|
+
//#region src/Table/render/context.ts
|
|
4
|
+
const TableViewContext = createContext(null);
|
|
5
|
+
const useTableView = () => use(TableViewContext);
|
|
6
|
+
const SelectionContext = createContext(null);
|
|
7
|
+
const useSelectionView = () => use(SelectionContext);
|
|
8
|
+
const HeaderContext = createContext(null);
|
|
9
|
+
const useHeaderView = () => use(HeaderContext);
|
|
10
|
+
const MeasureRowContext = createContext(false);
|
|
11
|
+
const VirtualCellContext = createContext({ inverse: false });
|
|
12
|
+
//#endregion
|
|
13
|
+
export { HeaderContext, MeasureRowContext, SelectionContext, TableViewContext, VirtualCellContext, useHeaderView, useSelectionView, useTableView };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=context.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.mjs","names":[],"sources":["../../../src/Table/render/context.ts"],"sourcesContent":["'use client';\n\nimport {\n createContext,\n type CSSProperties,\n type HTMLAttributes,\n type Key,\n type ReactNode,\n use,\n} from 'react';\n\nimport type { LeafColumnModel } from '../engine/types';\nimport type { ColumnSource } from '../pipeline/normalizeColumns';\nimport type { ExpandType } from '../pipeline/useExpandable';\nimport type { FilterKeys, FilterState } from '../pipeline/useFilter';\nimport type { MergedSelectionItem, SelectionActions } from '../pipeline/useSelection';\nimport type { SortState } from '../pipeline/useSorter';\nimport type { NormalizedSemantic } from '../semantic';\nimport type {\n SortOrder,\n TableColumn,\n TableColumnTitleProps,\n TableCustomizeComponent,\n TableExpandIconProps,\n TableLocale,\n TableRowClassName,\n TableRowSelection,\n TableRowSelectionCheckboxProps,\n TableSorterTooltipProps,\n} from '../type';\n\nexport interface TableComponentSet {\n bodyCell?: TableCustomizeComponent;\n bodyRow?: TableCustomizeComponent;\n bodyWrapper?: TableCustomizeComponent;\n headerCell?: TableCustomizeComponent;\n headerRow?: TableCustomizeComponent;\n headerTable?: TableCustomizeComponent;\n headerWrapper?: TableCustomizeComponent;\n table?: TableCustomizeComponent;\n}\n\nexport interface ExpandView<T> {\n expandedRowClassName?: string | TableRowClassName<T>;\n expandedRowRender?: (record: T, index: number, indent: number, expanded: boolean) => ReactNode;\n expandIcon: (props: TableExpandIconProps<T>) => ReactNode;\n expandRowByClick?: boolean;\n forceRender?: boolean;\n indentSize: number;\n nestIconColumnIndex: number;\n rowExpandable?: (record: T) => boolean;\n toggle: (record: T, event?: unknown) => void;\n type: ExpandType;\n}\n\nexport interface TableViewValue<T = any> {\n components: TableComponentSet;\n expand: ExpandView<T>;\n fixColumn: boolean;\n getRowKey: (record: T, index?: number) => Key;\n horizonScroll: boolean;\n leafColumns: LeafColumnModel<ColumnSource<T>>[];\n onRow?: (record: T, index: number) => HTMLAttributes<HTMLTableRowElement>;\n prefixCls: string;\n rowClassName?: string | TableRowClassName<T>;\n rowHoverable: boolean;\n semanticClassNames: NormalizedSemantic<string>;\n semanticStyles: NormalizedSemantic<CSSProperties>;\n virtualWidths?: readonly number[];\n}\n\nexport const TableViewContext = createContext<TableViewValue | null>(null);\n\nexport const useTableView = <T>() => use(TableViewContext) as TableViewValue<T>;\n\nexport interface SelectionView<T = any> {\n actions: SelectionActions;\n checkboxPropsMap: ReadonlyMap<Key, TableRowSelectionCheckboxProps>;\n expandType: ExpandType;\n getRowKey: (record: T, index?: number) => Key;\n getTitleCheckboxProps?: () => TableRowSelectionCheckboxProps;\n hideSelectAll?: boolean;\n locale: TableLocale;\n renderCell?: TableRowSelection<T>['renderCell'];\n selections: MergedSelectionItem[] | null;\n title?: TableRowSelection<T>['columnTitle'];\n type: 'checkbox' | 'radio';\n}\n\nexport const SelectionContext = createContext<SelectionView | null>(null);\n\nexport const useSelectionView = <T>() => use(SelectionContext) as SelectionView<T>;\n\nexport interface HeaderView<T = any> {\n filterStates: readonly FilterState<T>[];\n getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;\n locale: TableLocale;\n onHeaderRow?: (\n columns: readonly TableColumn<T>[],\n index?: number,\n ) => HTMLAttributes<HTMLTableRowElement>;\n showSorterTooltip: boolean | TableSorterTooltipProps;\n sortDirections: SortOrder[];\n sortStates: readonly SortState<T>[];\n titleProps: TableColumnTitleProps<T>;\n triggerFilter: (columnKey: string, filteredKeys: FilterKeys) => void;\n triggerSort: (state: SortState<T>) => void;\n}\n\nexport const HeaderContext = createContext<HeaderView | null>(null);\n\nexport const useHeaderView = <T>() => use(HeaderContext) as HeaderView<T>;\n\nexport const MeasureRowContext = createContext(false);\n\nexport interface VirtualCellValue {\n getHeight?: (rowSpan: number) => number;\n inverse: boolean;\n}\n\nexport const VirtualCellContext = createContext<VirtualCellValue>({ inverse: false });\n"],"mappings":";;;AAuEA,MAAa,mBAAmB,cAAqC,IAAI;AAEzE,MAAa,qBAAwB,IAAI,gBAAgB;AAgBzD,MAAa,mBAAmB,cAAoC,IAAI;AAExE,MAAa,yBAA4B,IAAI,gBAAgB;AAkB7D,MAAa,gBAAgB,cAAiC,IAAI;AAElE,MAAa,sBAAyB,IAAI,aAAa;AAEvD,MAAa,oBAAoB,cAAc,KAAK;AAOpD,MAAa,qBAAqB,cAAgC,EAAE,SAAS,MAAM,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { PREFIX_CLS } from "../constants.mjs";
|
|
2
|
+
import { getAllKeys } from "../../Tree/utils.mjs";
|
|
3
|
+
import * as stylex from "@stylexjs/stylex";
|
|
4
|
+
//#region src/Table/render/filterUtils.ts
|
|
5
|
+
const sx = (...list) => stylex.props(...list).className;
|
|
6
|
+
const FILTER_CLS = `${PREFIX_CLS}-filter`;
|
|
7
|
+
const sameKeys = (a, b) => (a ?? null) === (b ?? null) || Boolean(a) && Boolean(b) && a.length === b.length && a.every((key, i) => key === b[i]);
|
|
8
|
+
const textMatches = (search, text) => (typeof text === "string" || typeof text === "number") && String(text).toLowerCase().includes(search);
|
|
9
|
+
const findLineage = (nodes, key, ancestors = []) => {
|
|
10
|
+
for (const node of nodes) {
|
|
11
|
+
if (node.key === key) return {
|
|
12
|
+
ancestors,
|
|
13
|
+
subtree: getAllKeys([node])
|
|
14
|
+
};
|
|
15
|
+
const found = node.children && findLineage(node.children, key, [...ancestors, node.key]);
|
|
16
|
+
if (found) return found;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
export { FILTER_CLS, findLineage, sameKeys, sx, textMatches };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=filterUtils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterUtils.mjs","names":[],"sources":["../../../src/Table/render/filterUtils.ts"],"sourcesContent":["import * as stylex from '@stylexjs/stylex';\nimport type { Key, ReactNode } from 'react';\n\nimport { getAllKeys, type TreeDataNode } from '@/Tree';\n\nimport { PREFIX_CLS } from '../constants';\n\nexport const sx = (...list: (stylex.StyleXStyles | false | null | undefined)[]) =>\n stylex.props(...list).className;\n\nexport const FILTER_CLS = `${PREFIX_CLS}-filter`;\n\nexport const sameKeys = (\n a: readonly Key[] | null | undefined,\n b: readonly Key[] | null | undefined,\n) =>\n (a ?? null) === (b ?? null) ||\n (Boolean(a) && Boolean(b) && a!.length === b!.length && a!.every((key, i) => key === b![i]));\n\nexport const textMatches = (search: string, text: ReactNode) =>\n (typeof text === 'string' || typeof text === 'number') &&\n String(text).toLowerCase().includes(search);\n\nexport const findLineage = (\n nodes: readonly TreeDataNode[],\n key: string,\n ancestors: string[] = [],\n): { ancestors: string[]; subtree: string[] } | undefined => {\n for (const node of nodes) {\n if (node.key === key) return { ancestors, subtree: getAllKeys([node]) };\n const found = node.children && findLineage(node.children, key, [...ancestors, node.key]);\n if (found) return found;\n }\n};\n"],"mappings":";;;;AAIA,MAAa,MAAM,GAAG,SAA6D,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;AACzG,MAAa,aAAa,GAAG,WAAW;AACxC,MAAa,YAAY,GAAsC,OAA0C,KAAK,WAAW,KAAK,SAAS,QAAQ,CAAC,KAAK,QAAQ,CAAC,KAAK,EAAG,WAAW,EAAG,UAAU,EAAG,OAAO,KAAK,MAAM,QAAQ,EAAG,EAAE;AAChO,MAAa,eAAe,QAAgB,UAAqB,OAAO,SAAS,YAAY,OAAO,SAAS,aAAa,OAAO,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,MAAM;AACpK,MAAa,eAAe,OAAgC,KAAa,YAAsB,CAAC,MAG/E;CACf,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,KAAK,QAAQ,KAAK,OAAO;GAC3B;GACA,SAAS,WAAW,CAAC,IAAI,CAAC;EAC5B;EACA,MAAM,QAAQ,KAAK,YAAY,YAAY,KAAK,UAAU,KAAK,CAAC,GAAG,WAAW,KAAK,GAAG,CAAC;EACvF,IAAI,OAAO,OAAO;CACpB;AACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region src/Table/render/tableHelpers.ts
|
|
2
|
+
const toTableRef = (element, scrollTo) => {
|
|
3
|
+
const extra = {
|
|
4
|
+
nativeElement: element,
|
|
5
|
+
scrollTo
|
|
6
|
+
};
|
|
7
|
+
return new Proxy(element, { get(target, prop) {
|
|
8
|
+
if (prop in extra) return extra[prop];
|
|
9
|
+
const value = Reflect.get(target, prop, target);
|
|
10
|
+
return typeof value === "function" ? value.bind(target) : value;
|
|
11
|
+
} });
|
|
12
|
+
};
|
|
13
|
+
const resolveSticky = (sticky) => {
|
|
14
|
+
const config = typeof sticky === "object" ? sticky : {};
|
|
15
|
+
const fallback = typeof window === "undefined" ? void 0 : window;
|
|
16
|
+
return {
|
|
17
|
+
container: config.getContainer?.() || fallback,
|
|
18
|
+
isSticky: Boolean(sticky),
|
|
19
|
+
offsetHeader: config.offsetHeader ?? 0,
|
|
20
|
+
offsetScroll: config.offsetScroll ?? 0,
|
|
21
|
+
offsetSummary: config.offsetSummary ?? 0
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
export { resolveSticky, toTableRef };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=tableHelpers.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tableHelpers.mjs","names":[],"sources":["../../../src/Table/render/tableHelpers.ts"],"sourcesContent":["import type { TableProps, TableRef, TableScrollToConfig } from '../type';\nimport type { StickyConfig } from './viewTypes';\n\nexport const toTableRef = (\n element: HTMLDivElement,\n scrollTo: (config: TableScrollToConfig) => void,\n): TableRef => {\n const extra = { nativeElement: element, scrollTo };\n return new Proxy(element, {\n get(target, prop) {\n if (prop in extra) return extra[prop as keyof typeof extra];\n const value = Reflect.get(target, prop, target);\n return typeof value === 'function' ? value.bind(target) : value;\n },\n }) as TableRef;\n};\n\nexport const resolveSticky = (sticky: TableProps<unknown>['sticky']): StickyConfig => {\n const config = typeof sticky === 'object' ? sticky : {};\n const fallback = typeof window === 'undefined' ? (undefined as any) : window;\n return {\n container: config.getContainer?.() || fallback,\n isSticky: Boolean(sticky),\n offsetHeader: config.offsetHeader ?? 0,\n offsetScroll: config.offsetScroll ?? 0,\n offsetSummary: config.offsetSummary ?? 0,\n };\n};\n"],"mappings":";AAGA,MAAa,cACX,SACA,aACa;CACb,MAAM,QAAQ;EAAE,eAAe;EAAS;CAAS;CACjD,OAAO,IAAI,MAAM,SAAS,EACxB,IAAI,QAAQ,MAAM;EAChB,IAAI,QAAQ,OAAO,OAAO,MAAM;EAChC,MAAM,QAAQ,QAAQ,IAAI,QAAQ,MAAM,MAAM;EAC9C,OAAO,OAAO,UAAU,aAAa,MAAM,KAAK,MAAM,IAAI;CAC5D,EACF,CAAC;AACH;AAEA,MAAa,iBAAiB,WAAwD;CACpF,MAAM,SAAS,OAAO,WAAW,WAAW,SAAS,CAAC;CACtD,MAAM,WAAW,OAAO,WAAW,cAAe,KAAA,IAAoB;CACtE,OAAO;EACL,WAAW,OAAO,eAAe,KAAK;EACtC,UAAU,QAAQ,MAAM;EACxB,cAAc,OAAO,gBAAgB;EACrC,cAAc,OAAO,gBAAgB;EACrC,eAAe,OAAO,iBAAiB;CACzC;AACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TableColGroup } from "../atoms/layout.mjs";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
//#region src/Table/render/useColGroups.tsx
|
|
4
|
+
const useColGroups = ({ colWidths, headerScrollbar, leafColumns, rowCount, tableLayout, virtualWidths }) => {
|
|
5
|
+
const colGroupColumns = leafColumns.map((leaf, index) => ({
|
|
6
|
+
className: leaf.column.source.colClassName,
|
|
7
|
+
minWidth: tableLayout === "auto" ? leaf.column.source.column.minWidth : void 0,
|
|
8
|
+
width: virtualWidths ? virtualWidths[index] : leaf.column.width
|
|
9
|
+
}));
|
|
10
|
+
const bodyColGroup = /* @__PURE__ */ jsx(TableColGroup, { columns: colGroupColumns });
|
|
11
|
+
const allMeasured = rowCount > 0 && colWidths.length === leafColumns.length && colWidths.every((width) => width !== void 0) && !colWidths.every((width) => !width);
|
|
12
|
+
return {
|
|
13
|
+
bodyColGroup,
|
|
14
|
+
holderColGroup: allMeasured || headerScrollbar ? /* @__PURE__ */ jsx(TableColGroup, { columns: [...allMeasured ? colWidths.map((width, index) => ({
|
|
15
|
+
...colGroupColumns[index],
|
|
16
|
+
width
|
|
17
|
+
})) : colGroupColumns, ...headerScrollbar ? [{ width: headerScrollbar }] : []] }) : bodyColGroup
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
//#endregion
|
|
21
|
+
export { useColGroups };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=useColGroups.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColGroups.mjs","names":[],"sources":["../../../src/Table/render/useColGroups.tsx"],"sourcesContent":["import { TableColGroup, type TableColGroupColumn } from '../atoms';\nimport type { LeafColumnModel } from '../engine/types';\nimport type { ColumnSource } from '../pipeline/normalizeColumns';\n\ninterface ColGroupsOptions<T> {\n colWidths: readonly number[];\n headerScrollbar: number;\n leafColumns: readonly LeafColumnModel<ColumnSource<T>>[];\n rowCount: number;\n tableLayout: 'auto' | 'fixed';\n virtualWidths?: readonly number[];\n}\n\nexport const useColGroups = <T,>({\n colWidths,\n headerScrollbar,\n leafColumns,\n rowCount,\n tableLayout,\n virtualWidths,\n}: ColGroupsOptions<T>) => {\n const colGroupColumns: TableColGroupColumn[] = leafColumns.map((leaf, index) => ({\n className: leaf.column.source.colClassName,\n minWidth:\n tableLayout === 'auto'\n ? (leaf.column.source.column as { minWidth?: number }).minWidth\n : undefined,\n width: virtualWidths ? virtualWidths[index] : leaf.column.width,\n }));\n const bodyColGroup = <TableColGroup columns={colGroupColumns} />;\n\n const allMeasured =\n rowCount > 0 &&\n colWidths.length === leafColumns.length &&\n colWidths.every((width) => width !== undefined) &&\n !colWidths.every((width) => !width);\n const holderColGroup =\n allMeasured || headerScrollbar ? (\n <TableColGroup\n columns={[\n ...(allMeasured\n ? colWidths.map((width, index) => ({ ...colGroupColumns[index], width }))\n : colGroupColumns),\n ...(headerScrollbar ? [{ width: headerScrollbar }] : []),\n ]}\n />\n ) : (\n bodyColGroup\n );\n\n return { bodyColGroup, holderColGroup };\n};\n"],"mappings":";;;AAaA,MAAa,gBAAoB,EAC/B,WACA,iBACA,aACA,UACA,aACA,oBACyB;CACzB,MAAM,kBAAyC,YAAY,KAAK,MAAM,WAAW;EAC/E,WAAW,KAAK,OAAO,OAAO;EAC9B,UACE,gBAAgB,SACX,KAAK,OAAO,OAAO,OAAiC,WACrD,KAAA;EACN,OAAO,gBAAgB,cAAc,SAAS,KAAK,OAAO;CAC5D,EAAE;CACF,MAAM,eAAe,oBAAC,eAAD,EAAe,SAAS,gBAAkB,CAAA;CAE/D,MAAM,cACJ,WAAW,KACX,UAAU,WAAW,YAAY,UACjC,UAAU,OAAO,UAAU,UAAU,KAAA,CAAS,KAC9C,CAAC,UAAU,OAAO,UAAU,CAAC,KAAK;CAepC,OAAO;EAAE;EAAc,gBAbrB,eAAe,kBACb,oBAAC,eAAD,EACE,SAAS,CACP,GAAI,cACA,UAAU,KAAK,OAAO,WAAW;GAAE,GAAG,gBAAgB;GAAQ;EAAM,EAAE,IACtE,iBACJ,GAAI,kBAAkB,CAAC,EAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CACxD,EACD,CAAA,IAED;CAGkC;AACxC"}
|