@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,104 @@
|
|
|
1
|
+
import { useEventCallback } from "../../hooks/useEventCallback.mjs";
|
|
2
|
+
import { useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
3
|
+
//#region src/Table/render/useScrollSync.ts
|
|
4
|
+
const forceScroll = (scrollLeft, target) => {
|
|
5
|
+
if (target && target.scrollLeft !== scrollLeft) target.scrollLeft = scrollLeft;
|
|
6
|
+
};
|
|
7
|
+
const useScrollSync = ({ bodyRef, columnCount, fixHeader, horizonScroll, prefixCls, rows, sticky }) => {
|
|
8
|
+
const rootRef = useRef(null);
|
|
9
|
+
const headerRef = useRef(null);
|
|
10
|
+
const summaryRef = useRef(null);
|
|
11
|
+
const stickyRef = useRef(null);
|
|
12
|
+
const shadowRef = useRef({
|
|
13
|
+
end: false,
|
|
14
|
+
start: false
|
|
15
|
+
});
|
|
16
|
+
const lockRef = useRef({ target: null });
|
|
17
|
+
const [scrollbarSize, setScrollbarSize] = useState(0);
|
|
18
|
+
const [, forceRender] = useState(0);
|
|
19
|
+
const applyShadow = () => {
|
|
20
|
+
const root = rootRef.current;
|
|
21
|
+
if (!root) return;
|
|
22
|
+
root.classList.toggle(`${prefixCls}-fix-start-shadow-show`, horizonScroll && shadowRef.current.start);
|
|
23
|
+
root.classList.toggle(`${prefixCls}-fix-end-shadow-show`, horizonScroll && shadowRef.current.end);
|
|
24
|
+
};
|
|
25
|
+
const onInternalScroll = useEventCallback(({ currentTarget, scrollLeft }) => {
|
|
26
|
+
const target = currentTarget ?? bodyRef.current;
|
|
27
|
+
const left = typeof scrollLeft === "number" ? scrollLeft : target?.scrollLeft ?? 0;
|
|
28
|
+
const lock = lockRef.current;
|
|
29
|
+
if (!lock.target || lock.target === target) {
|
|
30
|
+
lock.target = target ?? null;
|
|
31
|
+
clearTimeout(lock.timer);
|
|
32
|
+
lock.timer = setTimeout(() => {
|
|
33
|
+
lock.target = null;
|
|
34
|
+
}, 100);
|
|
35
|
+
forceScroll(left, headerRef.current);
|
|
36
|
+
forceScroll(left, bodyRef.current);
|
|
37
|
+
forceScroll(left, summaryRef.current);
|
|
38
|
+
stickyRef.current?.setScrollLeft(left);
|
|
39
|
+
}
|
|
40
|
+
const measure = target ?? headerRef.current;
|
|
41
|
+
if (measure) {
|
|
42
|
+
const { clientWidth, scrollWidth } = measure;
|
|
43
|
+
const abs = Math.abs(left);
|
|
44
|
+
shadowRef.current = scrollWidth === clientWidth ? {
|
|
45
|
+
end: false,
|
|
46
|
+
start: false
|
|
47
|
+
} : {
|
|
48
|
+
end: abs < scrollWidth - clientWidth - 1,
|
|
49
|
+
start: abs > 0
|
|
50
|
+
};
|
|
51
|
+
applyShadow();
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
useLayoutEffect(() => {
|
|
55
|
+
applyShadow();
|
|
56
|
+
});
|
|
57
|
+
useLayoutEffect(() => {
|
|
58
|
+
const root = rootRef.current;
|
|
59
|
+
if (!root || typeof ResizeObserver === "undefined") return;
|
|
60
|
+
const update = () => {
|
|
61
|
+
root.style.setProperty("--lobe-table-component-width", `${root.offsetWidth}px`);
|
|
62
|
+
stickyRef.current?.checkVisible();
|
|
63
|
+
if (horizonScroll) onInternalScroll({ currentTarget: bodyRef.current });
|
|
64
|
+
};
|
|
65
|
+
update();
|
|
66
|
+
const observer = new ResizeObserver(update);
|
|
67
|
+
observer.observe(root);
|
|
68
|
+
return () => observer.disconnect();
|
|
69
|
+
}, [
|
|
70
|
+
horizonScroll,
|
|
71
|
+
bodyRef,
|
|
72
|
+
onInternalScroll
|
|
73
|
+
]);
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
if (horizonScroll) onInternalScroll({ currentTarget: bodyRef.current });
|
|
76
|
+
}, [
|
|
77
|
+
horizonScroll,
|
|
78
|
+
rows,
|
|
79
|
+
columnCount,
|
|
80
|
+
bodyRef,
|
|
81
|
+
onInternalScroll
|
|
82
|
+
]);
|
|
83
|
+
useLayoutEffect(() => {
|
|
84
|
+
const body = bodyRef.current;
|
|
85
|
+
if (!fixHeader || !body) return;
|
|
86
|
+
const size = body.offsetWidth - body.clientWidth;
|
|
87
|
+
setScrollbarSize((previous) => previous === size ? previous : Math.max(0, size));
|
|
88
|
+
});
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
if (sticky) forceRender((count) => count + 1);
|
|
91
|
+
}, [sticky]);
|
|
92
|
+
return {
|
|
93
|
+
headerRef,
|
|
94
|
+
onInternalScroll,
|
|
95
|
+
rootRef,
|
|
96
|
+
scrollbarSize,
|
|
97
|
+
stickyRef,
|
|
98
|
+
summaryRef
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
//#endregion
|
|
102
|
+
export { useScrollSync };
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=useScrollSync.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollSync.mjs","names":[],"sources":["../../../src/Table/render/useScrollSync.ts"],"sourcesContent":["import { type RefObject, useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nimport { useEventCallback } from '@/hooks/useEventCallback';\n\nimport type { StickyScrollBarApi } from './StickyScrollBar';\n\nconst forceScroll = (scrollLeft: number, target: HTMLElement | null | undefined) => {\n if (target && target.scrollLeft !== scrollLeft) target.scrollLeft = scrollLeft;\n};\n\ninterface ScrollSyncOptions {\n bodyRef: RefObject<HTMLDivElement | null>;\n columnCount: number;\n fixHeader: boolean;\n horizonScroll: boolean;\n prefixCls: string;\n rows: unknown;\n sticky: boolean;\n}\n\nexport const useScrollSync = ({\n bodyRef,\n columnCount,\n fixHeader,\n horizonScroll,\n prefixCls,\n rows,\n sticky,\n}: ScrollSyncOptions) => {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const headerRef = useRef<HTMLDivElement | null>(null);\n const summaryRef = useRef<HTMLDivElement | null>(null);\n const stickyRef = useRef<StickyScrollBarApi>(null);\n const shadowRef = useRef({ end: false, start: false });\n const lockRef = useRef<{ target: EventTarget | null; timer?: ReturnType<typeof setTimeout> }>({\n target: null,\n });\n const [scrollbarSize, setScrollbarSize] = useState(0);\n const [, forceRender] = useState(0);\n\n const applyShadow = () => {\n const root = rootRef.current;\n if (!root) return;\n root.classList.toggle(\n `${prefixCls}-fix-start-shadow-show`,\n horizonScroll && shadowRef.current.start,\n );\n root.classList.toggle(\n `${prefixCls}-fix-end-shadow-show`,\n horizonScroll && shadowRef.current.end,\n );\n };\n\n const onInternalScroll = useEventCallback(\n ({\n currentTarget,\n scrollLeft,\n }: {\n currentTarget?: HTMLElement | null;\n scrollLeft?: number;\n }) => {\n const target = currentTarget ?? bodyRef.current;\n const left = typeof scrollLeft === 'number' ? scrollLeft : (target?.scrollLeft ?? 0);\n const lock = lockRef.current;\n if (!lock.target || lock.target === target) {\n lock.target = target ?? null;\n clearTimeout(lock.timer);\n lock.timer = setTimeout(() => {\n lock.target = null;\n }, 100);\n forceScroll(left, headerRef.current);\n forceScroll(left, bodyRef.current);\n forceScroll(left, summaryRef.current);\n stickyRef.current?.setScrollLeft(left);\n }\n const measure = target ?? headerRef.current;\n if (measure) {\n const { clientWidth, scrollWidth } = measure;\n const abs = Math.abs(left);\n shadowRef.current =\n scrollWidth === clientWidth\n ? { end: false, start: false }\n : { end: abs < scrollWidth - clientWidth - 1, start: abs > 0 };\n applyShadow();\n }\n },\n );\n\n useLayoutEffect(() => {\n applyShadow();\n });\n\n useLayoutEffect(() => {\n const root = rootRef.current;\n if (!root || typeof ResizeObserver === 'undefined') return;\n const update = () => {\n root.style.setProperty('--lobe-table-component-width', `${root.offsetWidth}px`);\n stickyRef.current?.checkVisible();\n if (horizonScroll) onInternalScroll({ currentTarget: bodyRef.current });\n };\n update();\n const observer = new ResizeObserver(update);\n observer.observe(root);\n return () => observer.disconnect();\n }, [horizonScroll, bodyRef, onInternalScroll]);\n\n useEffect(() => {\n if (horizonScroll) onInternalScroll({ currentTarget: bodyRef.current });\n }, [horizonScroll, rows, columnCount, bodyRef, onInternalScroll]);\n\n useLayoutEffect(() => {\n const body = bodyRef.current;\n if (!fixHeader || !body) return;\n const size = body.offsetWidth - body.clientWidth;\n setScrollbarSize((previous) => (previous === size ? previous : Math.max(0, size)));\n });\n\n useEffect(() => {\n if (sticky) forceRender((count) => count + 1);\n }, [sticky]);\n\n return { headerRef, onInternalScroll, rootRef, scrollbarSize, stickyRef, summaryRef };\n};\n"],"mappings":";;;AAMA,MAAM,eAAe,YAAoB,WAA2C;CAClF,IAAI,UAAU,OAAO,eAAe,YAAY,OAAO,aAAa;AACtE;AAYA,MAAa,iBAAiB,EAC5B,SACA,aACA,WACA,eACA,WACA,MACA,aACuB;CACvB,MAAM,UAAU,OAA8B,IAAI;CAClD,MAAM,YAAY,OAA8B,IAAI;CACpD,MAAM,aAAa,OAA8B,IAAI;CACrD,MAAM,YAAY,OAA2B,IAAI;CACjD,MAAM,YAAY,OAAO;EAAE,KAAK;EAAO,OAAO;CAAM,CAAC;CACrD,MAAM,UAAU,OAA8E,EAC5F,QAAQ,KACV,CAAC;CACD,MAAM,CAAC,eAAe,oBAAoB,SAAS,CAAC;CACpD,MAAM,GAAG,eAAe,SAAS,CAAC;CAElC,MAAM,oBAAoB;EACxB,MAAM,OAAO,QAAQ;EACrB,IAAI,CAAC,MAAM;EACX,KAAK,UAAU,OACb,GAAG,UAAU,yBACb,iBAAiB,UAAU,QAAQ,KACrC;EACA,KAAK,UAAU,OACb,GAAG,UAAU,uBACb,iBAAiB,UAAU,QAAQ,GACrC;CACF;CAEA,MAAM,mBAAmB,kBACtB,EACC,eACA,iBAII;EACJ,MAAM,SAAS,iBAAiB,QAAQ;EACxC,MAAM,OAAO,OAAO,eAAe,WAAW,aAAc,QAAQ,cAAc;EAClF,MAAM,OAAO,QAAQ;EACrB,IAAI,CAAC,KAAK,UAAU,KAAK,WAAW,QAAQ;GAC1C,KAAK,SAAS,UAAU;GACxB,aAAa,KAAK,KAAK;GACvB,KAAK,QAAQ,iBAAiB;IAC5B,KAAK,SAAS;GAChB,GAAG,GAAG;GACN,YAAY,MAAM,UAAU,OAAO;GACnC,YAAY,MAAM,QAAQ,OAAO;GACjC,YAAY,MAAM,WAAW,OAAO;GACpC,UAAU,SAAS,cAAc,IAAI;EACvC;EACA,MAAM,UAAU,UAAU,UAAU;EACpC,IAAI,SAAS;GACX,MAAM,EAAE,aAAa,gBAAgB;GACrC,MAAM,MAAM,KAAK,IAAI,IAAI;GACzB,UAAU,UACR,gBAAgB,cACZ;IAAE,KAAK;IAAO,OAAO;GAAM,IAC3B;IAAE,KAAK,MAAM,cAAc,cAAc;IAAG,OAAO,MAAM;GAAE;GACjE,YAAY;EACd;CACF,CACF;CAEA,sBAAsB;EACpB,YAAY;CACd,CAAC;CAED,sBAAsB;EACpB,MAAM,OAAO,QAAQ;EACrB,IAAI,CAAC,QAAQ,OAAO,mBAAmB,aAAa;EACpD,MAAM,eAAe;GACnB,KAAK,MAAM,YAAY,gCAAgC,GAAG,KAAK,YAAY,GAAG;GAC9E,UAAU,SAAS,aAAa;GAChC,IAAI,eAAe,iBAAiB,EAAE,eAAe,QAAQ,QAAQ,CAAC;EACxE;EACA,OAAO;EACP,MAAM,WAAW,IAAI,eAAe,MAAM;EAC1C,SAAS,QAAQ,IAAI;EACrB,aAAa,SAAS,WAAW;CACnC,GAAG;EAAC;EAAe;EAAS;CAAgB,CAAC;CAE7C,gBAAgB;EACd,IAAI,eAAe,iBAAiB,EAAE,eAAe,QAAQ,QAAQ,CAAC;CACxE,GAAG;EAAC;EAAe;EAAM;EAAa;EAAS;CAAgB,CAAC;CAEhE,sBAAsB;EACpB,MAAM,OAAO,QAAQ;EACrB,IAAI,CAAC,aAAa,CAAC,MAAM;EACzB,MAAM,OAAO,KAAK,cAAc,KAAK;EACrC,kBAAkB,aAAc,aAAa,OAAO,WAAW,KAAK,IAAI,GAAG,IAAI,CAAE;CACnF,CAAC;CAED,gBAAgB;EACd,IAAI,QAAQ,aAAa,UAAU,QAAQ,CAAC;CAC9C,GAAG,CAAC,MAAM,CAAC;CAEX,OAAO;EAAE;EAAW;EAAkB;EAAS;EAAe;EAAW;CAAW;AACtF"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { useEventCallback } from "../../hooks/useEventCallback.mjs";
|
|
2
|
+
import { PREFIX_CLS } from "../constants.mjs";
|
|
3
|
+
import { DEFAULT_SORT_DIRECTIONS } from "../pipeline/useSorter.mjs";
|
|
4
|
+
import { useMemo } from "react";
|
|
5
|
+
//#region src/Table/render/useViewContexts.ts
|
|
6
|
+
const DEFAULT_SORTER_TOOLTIP = { target: "full-header" };
|
|
7
|
+
const useViewContexts = ({ controller, props, semanticClassNames, semanticStyles }) => {
|
|
8
|
+
const { components, expandable, getPopupContainer, onHeaderRow, onRow, rowClassName, rowHoverable = true, rowSelection, showSorterTooltip = DEFAULT_SORTER_TOOLTIP, sortDirections = DEFAULT_SORT_DIRECTIONS, virtual } = props;
|
|
9
|
+
const { model, selection, state, tableLocale } = controller;
|
|
10
|
+
const { expandedRowClassName, expandedRowRender, expandRowByClick, forceRender, rowExpandable } = expandable ?? {};
|
|
11
|
+
const { columnTitle, getTitleCheckboxProps, hideSelectAll, renderCell, type: selectionType = "checkbox" } = rowSelection ?? {};
|
|
12
|
+
const leafColumns = model.leafColumns;
|
|
13
|
+
const componentSet = useMemo(() => {
|
|
14
|
+
const fallback = virtual ? "div" : void 0;
|
|
15
|
+
return {
|
|
16
|
+
bodyCell: components?.body?.cell ?? fallback,
|
|
17
|
+
bodyRow: components?.body?.row ?? fallback,
|
|
18
|
+
bodyWrapper: components?.body?.wrapper,
|
|
19
|
+
headerCell: components?.header?.cell,
|
|
20
|
+
headerRow: components?.header?.row,
|
|
21
|
+
headerTable: components?.header?.table,
|
|
22
|
+
headerWrapper: components?.header?.wrapper,
|
|
23
|
+
table: components?.table
|
|
24
|
+
};
|
|
25
|
+
}, [components, virtual]);
|
|
26
|
+
const toggleExpand = useEventCallback((record) => controller.toggleExpand(record));
|
|
27
|
+
const fixColumn = controller.horizonScroll && leafColumns.some((leaf) => leaf.fixed);
|
|
28
|
+
const viewValue = useMemo(() => ({
|
|
29
|
+
components: componentSet,
|
|
30
|
+
expand: {
|
|
31
|
+
expandedRowClassName,
|
|
32
|
+
expandedRowRender,
|
|
33
|
+
expandIcon: controller.expandIcon,
|
|
34
|
+
expandRowByClick,
|
|
35
|
+
forceRender,
|
|
36
|
+
indentSize: controller.indentSize,
|
|
37
|
+
nestIconColumnIndex: controller.nestIconColumnIndex,
|
|
38
|
+
rowExpandable,
|
|
39
|
+
toggle: toggleExpand,
|
|
40
|
+
type: controller.expandType
|
|
41
|
+
},
|
|
42
|
+
fixColumn,
|
|
43
|
+
getRowKey: controller.getRowKey,
|
|
44
|
+
horizonScroll: controller.horizonScroll,
|
|
45
|
+
leafColumns,
|
|
46
|
+
onRow,
|
|
47
|
+
prefixCls: PREFIX_CLS,
|
|
48
|
+
rowClassName,
|
|
49
|
+
rowHoverable,
|
|
50
|
+
semanticClassNames,
|
|
51
|
+
semanticStyles,
|
|
52
|
+
virtualWidths: controller.virtualWidths
|
|
53
|
+
}), [
|
|
54
|
+
componentSet,
|
|
55
|
+
expandedRowClassName,
|
|
56
|
+
expandedRowRender,
|
|
57
|
+
expandRowByClick,
|
|
58
|
+
forceRender,
|
|
59
|
+
rowExpandable,
|
|
60
|
+
controller.expandIcon,
|
|
61
|
+
controller.indentSize,
|
|
62
|
+
controller.nestIconColumnIndex,
|
|
63
|
+
toggleExpand,
|
|
64
|
+
controller.expandType,
|
|
65
|
+
fixColumn,
|
|
66
|
+
controller.getRowKey,
|
|
67
|
+
controller.horizonScroll,
|
|
68
|
+
leafColumns,
|
|
69
|
+
onRow,
|
|
70
|
+
rowClassName,
|
|
71
|
+
rowHoverable,
|
|
72
|
+
semanticClassNames,
|
|
73
|
+
semanticStyles,
|
|
74
|
+
controller.virtualWidths
|
|
75
|
+
]);
|
|
76
|
+
const selectionValue = useMemo(() => ({
|
|
77
|
+
actions: selection.actions,
|
|
78
|
+
checkboxPropsMap: selection.checkboxPropsMap,
|
|
79
|
+
expandType: controller.expandType,
|
|
80
|
+
getRowKey: controller.getRowKey,
|
|
81
|
+
getTitleCheckboxProps,
|
|
82
|
+
hideSelectAll,
|
|
83
|
+
locale: tableLocale,
|
|
84
|
+
renderCell,
|
|
85
|
+
selections: selection.mergedSelections,
|
|
86
|
+
title: columnTitle,
|
|
87
|
+
type: selectionType
|
|
88
|
+
}), [
|
|
89
|
+
selection.actions,
|
|
90
|
+
selection.checkboxPropsMap,
|
|
91
|
+
selection.mergedSelections,
|
|
92
|
+
controller.expandType,
|
|
93
|
+
controller.getRowKey,
|
|
94
|
+
getTitleCheckboxProps,
|
|
95
|
+
hideSelectAll,
|
|
96
|
+
renderCell,
|
|
97
|
+
columnTitle,
|
|
98
|
+
selectionType,
|
|
99
|
+
tableLocale
|
|
100
|
+
]);
|
|
101
|
+
const triggerSort = useEventCallback(state.triggerSort);
|
|
102
|
+
const triggerFilter = useEventCallback(state.triggerFilter);
|
|
103
|
+
return {
|
|
104
|
+
headerValue: useMemo(() => ({
|
|
105
|
+
filterStates: state.filterStates,
|
|
106
|
+
getPopupContainer,
|
|
107
|
+
locale: tableLocale,
|
|
108
|
+
onHeaderRow,
|
|
109
|
+
showSorterTooltip,
|
|
110
|
+
sortDirections,
|
|
111
|
+
sortStates: state.sortStates,
|
|
112
|
+
titleProps: state.titleProps,
|
|
113
|
+
triggerFilter,
|
|
114
|
+
triggerSort
|
|
115
|
+
}), [
|
|
116
|
+
state.filterStates,
|
|
117
|
+
getPopupContainer,
|
|
118
|
+
tableLocale,
|
|
119
|
+
onHeaderRow,
|
|
120
|
+
showSorterTooltip,
|
|
121
|
+
sortDirections,
|
|
122
|
+
state.sortStates,
|
|
123
|
+
state.titleProps,
|
|
124
|
+
triggerFilter,
|
|
125
|
+
triggerSort
|
|
126
|
+
]),
|
|
127
|
+
selectionValue,
|
|
128
|
+
viewValue
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
//#endregion
|
|
132
|
+
export { useViewContexts };
|
|
133
|
+
|
|
134
|
+
//# sourceMappingURL=useViewContexts.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useViewContexts.mjs","names":[],"sources":["../../../src/Table/render/useViewContexts.ts"],"sourcesContent":["import { type CSSProperties, useMemo } from 'react';\n\nimport { useEventCallback } from '@/hooks/useEventCallback';\n\nimport { PREFIX_CLS } from '../constants';\nimport { DEFAULT_SORT_DIRECTIONS } from '../pipeline/useSorter';\nimport type { NormalizedSemantic } from '../semantic';\nimport type { TableProps, TableSorterTooltipProps } from '../type';\nimport type { useTableController } from '../useTableController';\nimport type { HeaderView, SelectionView, TableComponentSet, TableViewValue } from './context';\n\nconst DEFAULT_SORTER_TOOLTIP: TableSorterTooltipProps = { target: 'full-header' };\n\ninterface ViewContextsOptions<T> {\n controller: ReturnType<typeof useTableController<T>>;\n props: TableProps<T>;\n semanticClassNames: NormalizedSemantic<string>;\n semanticStyles: NormalizedSemantic<CSSProperties>;\n}\n\nexport const useViewContexts = <T>({\n controller,\n props,\n semanticClassNames,\n semanticStyles,\n}: ViewContextsOptions<T>) => {\n const {\n components,\n expandable,\n getPopupContainer,\n onHeaderRow,\n onRow,\n rowClassName,\n rowHoverable = true,\n rowSelection,\n showSorterTooltip = DEFAULT_SORTER_TOOLTIP,\n sortDirections = DEFAULT_SORT_DIRECTIONS,\n virtual,\n } = props;\n const { model, selection, state, tableLocale } = controller;\n const { expandedRowClassName, expandedRowRender, expandRowByClick, forceRender, rowExpandable } =\n expandable ?? {};\n const {\n columnTitle,\n getTitleCheckboxProps,\n hideSelectAll,\n renderCell,\n type: selectionType = 'checkbox',\n } = rowSelection ?? {};\n const leafColumns = model.leafColumns;\n\n const componentSet = useMemo((): TableComponentSet => {\n const fallback = virtual ? 'div' : undefined;\n return {\n bodyCell: components?.body?.cell ?? fallback,\n bodyRow: components?.body?.row ?? fallback,\n bodyWrapper: components?.body?.wrapper,\n headerCell: components?.header?.cell,\n headerRow: components?.header?.row,\n headerTable: components?.header?.table,\n headerWrapper: components?.header?.wrapper,\n table: components?.table,\n };\n }, [components, virtual]);\n\n const toggleExpand = useEventCallback((record: T) => controller.toggleExpand(record));\n const fixColumn = controller.horizonScroll && leafColumns.some((leaf) => leaf.fixed);\n\n const viewValue = useMemo(\n (): TableViewValue<T> => ({\n components: componentSet,\n expand: {\n expandedRowClassName,\n expandedRowRender,\n expandIcon: controller.expandIcon,\n expandRowByClick,\n forceRender,\n indentSize: controller.indentSize,\n nestIconColumnIndex: controller.nestIconColumnIndex,\n rowExpandable,\n toggle: toggleExpand,\n type: controller.expandType,\n },\n fixColumn,\n getRowKey: controller.getRowKey,\n horizonScroll: controller.horizonScroll,\n leafColumns,\n onRow,\n prefixCls: PREFIX_CLS,\n rowClassName,\n rowHoverable,\n semanticClassNames,\n semanticStyles,\n virtualWidths: controller.virtualWidths,\n }),\n [\n componentSet,\n expandedRowClassName,\n expandedRowRender,\n expandRowByClick,\n forceRender,\n rowExpandable,\n controller.expandIcon,\n controller.indentSize,\n controller.nestIconColumnIndex,\n toggleExpand,\n controller.expandType,\n fixColumn,\n controller.getRowKey,\n controller.horizonScroll,\n leafColumns,\n onRow,\n rowClassName,\n rowHoverable,\n semanticClassNames,\n semanticStyles,\n controller.virtualWidths,\n ],\n );\n\n const selectionValue = useMemo(\n (): SelectionView<T> => ({\n actions: selection.actions,\n checkboxPropsMap: selection.checkboxPropsMap,\n expandType: controller.expandType,\n getRowKey: controller.getRowKey,\n getTitleCheckboxProps,\n hideSelectAll,\n locale: tableLocale,\n renderCell,\n selections: selection.mergedSelections,\n title: columnTitle,\n type: selectionType,\n }),\n [\n selection.actions,\n selection.checkboxPropsMap,\n selection.mergedSelections,\n controller.expandType,\n controller.getRowKey,\n getTitleCheckboxProps,\n hideSelectAll,\n renderCell,\n columnTitle,\n selectionType,\n tableLocale,\n ],\n );\n\n const triggerSort = useEventCallback(state.triggerSort);\n const triggerFilter = useEventCallback(state.triggerFilter);\n const headerValue = useMemo(\n (): HeaderView<T> => ({\n filterStates: state.filterStates,\n getPopupContainer,\n locale: tableLocale,\n onHeaderRow,\n showSorterTooltip,\n sortDirections,\n sortStates: state.sortStates,\n titleProps: state.titleProps,\n triggerFilter,\n triggerSort,\n }),\n [\n state.filterStates,\n getPopupContainer,\n tableLocale,\n onHeaderRow,\n showSorterTooltip,\n sortDirections,\n state.sortStates,\n state.titleProps,\n triggerFilter,\n triggerSort,\n ],\n );\n\n return { headerValue, selectionValue, viewValue };\n};\n"],"mappings":";;;;;AAWA,MAAM,yBAAkD,EAAE,QAAQ,cAAc;AAShF,MAAa,mBAAsB,EACjC,YACA,OACA,oBACA,qBAC4B;CAC5B,MAAM,EACJ,YACA,YACA,mBACA,aACA,OACA,cACA,eAAe,MACf,cACA,oBAAoB,wBACpB,iBAAiB,yBACjB,YACE;CACJ,MAAM,EAAE,OAAO,WAAW,OAAO,gBAAgB;CACjD,MAAM,EAAE,sBAAsB,mBAAmB,kBAAkB,aAAa,kBAC9E,cAAc,CAAC;CACjB,MAAM,EACJ,aACA,uBACA,eACA,YACA,MAAM,gBAAgB,eACpB,gBAAgB,CAAC;CACrB,MAAM,cAAc,MAAM;CAE1B,MAAM,eAAe,cAAiC;EACpD,MAAM,WAAW,UAAU,QAAQ,KAAA;EACnC,OAAO;GACL,UAAU,YAAY,MAAM,QAAQ;GACpC,SAAS,YAAY,MAAM,OAAO;GAClC,aAAa,YAAY,MAAM;GAC/B,YAAY,YAAY,QAAQ;GAChC,WAAW,YAAY,QAAQ;GAC/B,aAAa,YAAY,QAAQ;GACjC,eAAe,YAAY,QAAQ;GACnC,OAAO,YAAY;EACrB;CACF,GAAG,CAAC,YAAY,OAAO,CAAC;CAExB,MAAM,eAAe,kBAAkB,WAAc,WAAW,aAAa,MAAM,CAAC;CACpF,MAAM,YAAY,WAAW,iBAAiB,YAAY,MAAM,SAAS,KAAK,KAAK;CAEnF,MAAM,YAAY,eACU;EACxB,YAAY;EACZ,QAAQ;GACN;GACA;GACA,YAAY,WAAW;GACvB;GACA;GACA,YAAY,WAAW;GACvB,qBAAqB,WAAW;GAChC;GACA,QAAQ;GACR,MAAM,WAAW;EACnB;EACA;EACA,WAAW,WAAW;EACtB,eAAe,WAAW;EAC1B;EACA;EACA,WAAW;EACX;EACA;EACA;EACA;EACA,eAAe,WAAW;CAC5B,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;EACX,WAAW;EACX,WAAW;EACX;EACA,WAAW;EACX;EACA,WAAW;EACX,WAAW;EACX;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;CACb,CACF;CAEA,MAAM,iBAAiB,eACI;EACvB,SAAS,UAAU;EACnB,kBAAkB,UAAU;EAC5B,YAAY,WAAW;EACvB,WAAW,WAAW;EACtB;EACA;EACA,QAAQ;EACR;EACA,YAAY,UAAU;EACtB,OAAO;EACP,MAAM;CACR,IACA;EACE,UAAU;EACV,UAAU;EACV,UAAU;EACV,WAAW;EACX,WAAW;EACX;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,MAAM,cAAc,iBAAiB,MAAM,WAAW;CACtD,MAAM,gBAAgB,iBAAiB,MAAM,aAAa;CA4B1D,OAAO;EAAE,aA3BW,eACI;GACpB,cAAc,MAAM;GACpB;GACA,QAAQ;GACR;GACA;GACA;GACA,YAAY,MAAM;GAClB,YAAY,MAAM;GAClB;GACA;EACF,IACA;GACE,MAAM;GACN;GACA;GACA;GACA;GACA;GACA,MAAM;GACN,MAAM;GACN;GACA;EACF,CAGiB;EAAG;EAAgB;CAAU;AAClD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
import "clsx";
|
|
3
|
+
//#region src/Table/semantic.ts
|
|
4
|
+
const resolveSemantic = (value, info) => typeof value === "function" ? value(info) : value;
|
|
5
|
+
const normalizeClassNames = (classNames) => {
|
|
6
|
+
const { body, header, pagination, ...rest } = classNames ?? {};
|
|
7
|
+
return {
|
|
8
|
+
...rest,
|
|
9
|
+
body: { ...body },
|
|
10
|
+
header: { ...header },
|
|
11
|
+
pagination: { ...pagination }
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
const normalizeStyles = (styles) => {
|
|
15
|
+
const { body, header, pagination, ...rest } = styles ?? {};
|
|
16
|
+
return {
|
|
17
|
+
...rest,
|
|
18
|
+
body: { ...body },
|
|
19
|
+
header: { ...header },
|
|
20
|
+
pagination: { ...pagination }
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
const sameValue = (a, b, depth) => {
|
|
24
|
+
if (Object.is(a, b)) return true;
|
|
25
|
+
if (depth === 0 || typeof a !== "object" || typeof b !== "object" || !a || !b) return false;
|
|
26
|
+
const keysA = Object.keys(a);
|
|
27
|
+
if (keysA.length !== Object.keys(b).length) return false;
|
|
28
|
+
return keysA.every((key) => sameValue(a[key], b[key], depth - 1));
|
|
29
|
+
};
|
|
30
|
+
const useStableValue = (value) => {
|
|
31
|
+
const ref = useRef(value);
|
|
32
|
+
if (!sameValue(ref.current, value, 3)) ref.current = value;
|
|
33
|
+
return ref.current;
|
|
34
|
+
};
|
|
35
|
+
const useStableSemantic = (classNames, styles, props) => {
|
|
36
|
+
const info = { props };
|
|
37
|
+
return {
|
|
38
|
+
classNames: useStableValue(normalizeClassNames(resolveSemantic(classNames, info))),
|
|
39
|
+
styles: useStableValue(normalizeStyles(resolveSemantic(styles, info)))
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
//#endregion
|
|
43
|
+
export { normalizeClassNames, normalizeStyles, resolveSemantic, useStableSemantic };
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=semantic.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic.mjs","names":[],"sources":["../../src/Table/semantic.ts"],"sourcesContent":["import clsx from 'clsx';\nimport { type CSSProperties, useRef } from 'react';\n\nimport type { PaginationSemanticName } from '@/Pagination/type';\n\nimport type {\n TableClassNames,\n TableComponentsSemanticName,\n TableProps,\n TableSemanticInfo,\n TableStyles,\n} from './type';\n\ntype Components<V> = Partial<Record<TableComponentsSemanticName, V>>;\n\nexport interface NormalizedSemantic<V> {\n body: Components<V>;\n content?: V;\n footer?: V;\n header: Components<V>;\n pagination: Partial<Record<PaginationSemanticName, V>>;\n root?: V;\n section?: V;\n title?: V;\n}\n\nexport const resolveSemantic = <V, T>(\n value: V | ((info: TableSemanticInfo<T>) => V) | undefined,\n info: TableSemanticInfo<T>,\n): V | undefined =>\n typeof value === 'function' ? (value as (info: TableSemanticInfo<T>) => V)(info) : value;\n\nexport const normalizeClassNames = (\n classNames: TableClassNames | undefined,\n): NormalizedSemantic<string> => {\n const { body, header, pagination, ...rest } = classNames ?? {};\n return { ...rest, body: { ...body }, header: { ...header }, pagination: { ...pagination } };\n};\n\nexport const normalizeStyles = (\n styles: TableStyles | undefined,\n): NormalizedSemantic<CSSProperties> => {\n const { body, header, pagination, ...rest } = styles ?? {};\n return { ...rest, body: { ...body }, header: { ...header }, pagination: { ...pagination } };\n};\n\nexport const mergeClassName = (...names: (string | false | null | undefined)[]) =>\n clsx(...names) || undefined;\n\nexport const mergeStyle = (...styles: (CSSProperties | undefined)[]) =>\n styles.some(Boolean) ? Object.assign({}, ...styles) : undefined;\n\nconst sameValue = (a: unknown, b: unknown, depth: number): boolean => {\n if (Object.is(a, b)) return true;\n if (depth === 0 || typeof a !== 'object' || typeof b !== 'object' || !a || !b) return false;\n const keysA = Object.keys(a);\n if (keysA.length !== Object.keys(b).length) return false;\n return keysA.every((key) => sameValue((a as any)[key], (b as any)[key], depth - 1));\n};\n\nconst useStableValue = <V>(value: V): V => {\n const ref = useRef(value);\n if (!sameValue(ref.current, value, 3)) ref.current = value;\n return ref.current;\n};\n\nexport const useStableSemantic = <T>(\n classNames: TableClassNames | ((info: TableSemanticInfo<T>) => TableClassNames) | undefined,\n styles: TableStyles | ((info: TableSemanticInfo<T>) => TableStyles) | undefined,\n props: TableProps<T>,\n) => {\n const info = { props };\n return {\n classNames: useStableValue(normalizeClassNames(resolveSemantic(classNames, info))),\n styles: useStableValue(normalizeStyles(resolveSemantic(styles, info))),\n };\n};\n"],"mappings":";;;AA0BA,MAAa,mBACX,OACA,SAEA,OAAO,UAAU,aAAc,MAA4C,IAAI,IAAI;AAErF,MAAa,uBACX,eAC+B;CAC/B,MAAM,EAAE,MAAM,QAAQ,YAAY,GAAG,SAAS,cAAc,CAAC;CAC7D,OAAO;EAAE,GAAG;EAAM,MAAM,EAAE,GAAG,KAAK;EAAG,QAAQ,EAAE,GAAG,OAAO;EAAG,YAAY,EAAE,GAAG,WAAW;CAAE;AAC5F;AAEA,MAAa,mBACX,WACsC;CACtC,MAAM,EAAE,MAAM,QAAQ,YAAY,GAAG,SAAS,UAAU,CAAC;CACzD,OAAO;EAAE,GAAG;EAAM,MAAM,EAAE,GAAG,KAAK;EAAG,QAAQ,EAAE,GAAG,OAAO;EAAG,YAAY,EAAE,GAAG,WAAW;CAAE;AAC5F;AAQA,MAAM,aAAa,GAAY,GAAY,UAA2B;CACpE,IAAI,OAAO,GAAG,GAAG,CAAC,GAAG,OAAO;CAC5B,IAAI,UAAU,KAAK,OAAO,MAAM,YAAY,OAAO,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,OAAO;CACtF,MAAM,QAAQ,OAAO,KAAK,CAAC;CAC3B,IAAI,MAAM,WAAW,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,OAAO;CACnD,OAAO,MAAM,OAAO,QAAQ,UAAW,EAAU,MAAO,EAAU,MAAM,QAAQ,CAAC,CAAC;AACpF;AAEA,MAAM,kBAAqB,UAAgB;CACzC,MAAM,MAAM,OAAO,KAAK;CACxB,IAAI,CAAC,UAAU,IAAI,SAAS,OAAO,CAAC,GAAG,IAAI,UAAU;CACrD,OAAO,IAAI;AACb;AAEA,MAAa,qBACX,YACA,QACA,UACG;CACH,MAAM,OAAO,EAAE,MAAM;CACrB,OAAO;EACL,YAAY,eAAe,oBAAoB,gBAAgB,YAAY,IAAI,CAAC,CAAC;EACjF,QAAQ,eAAe,gBAAgB,gBAAgB,QAAQ,IAAI,CAAC,CAAC;CACvE;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { Key } from "react";
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
//#region src/Table/store/createTableStore.ts
|
|
2
|
+
const EMPTY_KEYS = /* @__PURE__ */ new Set();
|
|
3
|
+
const EMPTY_COLUMNS = /* @__PURE__ */ new Set();
|
|
4
|
+
const NO_HOVER = [-1, -1];
|
|
5
|
+
const EMPTY_SUMMARY = {
|
|
6
|
+
checked: false,
|
|
7
|
+
disabled: false,
|
|
8
|
+
indeterminate: false
|
|
9
|
+
};
|
|
10
|
+
const createTableStore = (initial) => {
|
|
11
|
+
let state = {
|
|
12
|
+
expandedKeys: EMPTY_KEYS,
|
|
13
|
+
halfSelectedKeys: EMPTY_KEYS,
|
|
14
|
+
hover: NO_HOVER,
|
|
15
|
+
selectedKeys: EMPTY_KEYS,
|
|
16
|
+
selectionSummary: EMPTY_SUMMARY,
|
|
17
|
+
sortedColumns: EMPTY_COLUMNS,
|
|
18
|
+
...initial
|
|
19
|
+
};
|
|
20
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
21
|
+
return {
|
|
22
|
+
getState: () => state,
|
|
23
|
+
setState: (patch) => {
|
|
24
|
+
if (!Object.keys(patch).some((key) => !Object.is(patch[key], state[key]))) return;
|
|
25
|
+
state = {
|
|
26
|
+
...state,
|
|
27
|
+
...patch
|
|
28
|
+
};
|
|
29
|
+
listeners.forEach((listener) => listener());
|
|
30
|
+
},
|
|
31
|
+
subscribe: (listener) => {
|
|
32
|
+
listeners.add(listener);
|
|
33
|
+
return () => listeners.delete(listener);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
//#endregion
|
|
38
|
+
export { createTableStore };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=createTableStore.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTableStore.mjs","names":[],"sources":["../../../src/Table/store/createTableStore.ts"],"sourcesContent":["import type { Key } from 'react';\n\nexport interface SelectionSummary {\n checked: boolean;\n disabled: boolean;\n indeterminate: boolean;\n}\n\nexport interface TableStoreState {\n expandedKeys: ReadonlySet<Key>;\n halfSelectedKeys: ReadonlySet<Key>;\n hover: readonly [number, number];\n selectedKeys: ReadonlySet<Key>;\n selectionSummary: SelectionSummary;\n sortedColumns: ReadonlySet<string>;\n}\n\nexport interface TableStore {\n getState: () => TableStoreState;\n setState: (patch: Partial<TableStoreState>) => void;\n subscribe: (listener: () => void) => () => void;\n}\n\nconst EMPTY_KEYS: ReadonlySet<Key> = new Set();\nconst EMPTY_COLUMNS: ReadonlySet<string> = new Set();\nconst NO_HOVER = [-1, -1] as const;\nconst EMPTY_SUMMARY: SelectionSummary = { checked: false, disabled: false, indeterminate: false };\n\nexport const createTableStore = (initial?: Partial<TableStoreState>): TableStore => {\n let state: TableStoreState = {\n expandedKeys: EMPTY_KEYS,\n halfSelectedKeys: EMPTY_KEYS,\n hover: NO_HOVER,\n selectedKeys: EMPTY_KEYS,\n selectionSummary: EMPTY_SUMMARY,\n sortedColumns: EMPTY_COLUMNS,\n ...initial,\n };\n const listeners = new Set<() => void>();\n\n return {\n getState: () => state,\n setState: (patch) => {\n const changed = (Object.keys(patch) as (keyof TableStoreState)[]).some(\n (key) => !Object.is(patch[key], state[key]),\n );\n if (!changed) return;\n state = { ...state, ...patch };\n listeners.forEach((listener) => listener());\n },\n subscribe: (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n };\n};\n"],"mappings":";AAuBA,MAAM,6BAA+B,IAAI,IAAI;AAC7C,MAAM,gCAAqC,IAAI,IAAI;AACnD,MAAM,WAAW,CAAC,IAAI,EAAE;AACxB,MAAM,gBAAkC;CAAE,SAAS;CAAO,UAAU;CAAO,eAAe;AAAM;AAEhG,MAAa,oBAAoB,YAAmD;CAClF,IAAI,QAAyB;EAC3B,cAAc;EACd,kBAAkB;EAClB,OAAO;EACP,cAAc;EACd,kBAAkB;EAClB,eAAe;EACf,GAAG;CACL;CACA,MAAM,4BAAY,IAAI,IAAgB;CAEtC,OAAO;EACL,gBAAgB;EAChB,WAAW,UAAU;GAInB,IAAI,CAHa,OAAO,KAAK,KAAK,CAAC,CAA+B,MAC/D,QAAQ,CAAC,OAAO,GAAG,MAAM,MAAM,MAAM,IAAI,CAEjC,GAAG;GACd,QAAQ;IAAE,GAAG;IAAO,GAAG;GAAM;GAC7B,UAAU,SAAS,aAAa,SAAS,CAAC;EAC5C;EACA,YAAY,aAAa;GACvB,UAAU,IAAI,QAAQ;GACtB,aAAa,UAAU,OAAO,QAAQ;EACxC;CACF;AACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createTableStore } from "./createTableStore.mjs";
|
|
3
|
+
import { createContext, use, useCallback, useSyncExternalStore } from "react";
|
|
4
|
+
//#region src/Table/store/hooks.ts
|
|
5
|
+
const fallbackStore = createTableStore();
|
|
6
|
+
const TableStoreContext = createContext(fallbackStore);
|
|
7
|
+
const TableStoreProvider = TableStoreContext.Provider;
|
|
8
|
+
const useTableStoreInstance = () => use(TableStoreContext);
|
|
9
|
+
const useTableStore = (selector) => {
|
|
10
|
+
const store = use(TableStoreContext);
|
|
11
|
+
const getSnapshot = useCallback(() => selector(store.getState()), [store, selector]);
|
|
12
|
+
return useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);
|
|
13
|
+
};
|
|
14
|
+
const useRowSelected = (key) => useTableStore(useCallback((state) => state.selectedKeys.has(key), [key]));
|
|
15
|
+
const useRowHalfSelected = (key) => useTableStore(useCallback((state) => state.halfSelectedKeys.has(key), [key]));
|
|
16
|
+
const useRowExpanded = (key) => useTableStore(useCallback((state) => state.expandedKeys.has(key), [key]));
|
|
17
|
+
const useCellHovered = (index, rowSpan) => useTableStore(useCallback(({ hover: [start, end] }) => start <= index + rowSpan - 1 && end >= index, [index, rowSpan]));
|
|
18
|
+
const useColumnSorted = (columnId) => useTableStore(useCallback((state) => state.sortedColumns.has(columnId), [columnId]));
|
|
19
|
+
const selectSummary = (state) => state.selectionSummary;
|
|
20
|
+
const useSelectionSummary = () => useTableStore(selectSummary);
|
|
21
|
+
//#endregion
|
|
22
|
+
export { TableStoreProvider, useCellHovered, useColumnSorted, useRowExpanded, useRowHalfSelected, useRowSelected, useSelectionSummary, useTableStore, useTableStoreInstance };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=hooks.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.mjs","names":[],"sources":["../../../src/Table/store/hooks.ts"],"sourcesContent":["'use client';\n\nimport { createContext, type Key, use, useCallback, useSyncExternalStore } from 'react';\n\nimport { createTableStore, type TableStore, type TableStoreState } from './createTableStore';\n\nconst fallbackStore = createTableStore();\n\nconst TableStoreContext = createContext<TableStore>(fallbackStore);\n\nexport const TableStoreProvider = TableStoreContext.Provider;\n\nexport const useTableStoreInstance = () => use(TableStoreContext);\n\nexport const useTableStore = <S>(selector: (state: TableStoreState) => S): S => {\n const store = use(TableStoreContext);\n const getSnapshot = useCallback(() => selector(store.getState()), [store, selector]);\n return useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);\n};\n\nexport const useRowSelected = (key: Key) =>\n useTableStore(useCallback((state: TableStoreState) => state.selectedKeys.has(key), [key]));\n\nexport const useRowHalfSelected = (key: Key) =>\n useTableStore(useCallback((state: TableStoreState) => state.halfSelectedKeys.has(key), [key]));\n\nexport const useRowExpanded = (key: Key) =>\n useTableStore(useCallback((state: TableStoreState) => state.expandedKeys.has(key), [key]));\n\nexport const useCellHovered = (index: number, rowSpan: number) =>\n useTableStore(\n useCallback(\n ({ hover: [start, end] }: TableStoreState) => start <= index + rowSpan - 1 && end >= index,\n [index, rowSpan],\n ),\n );\n\nexport const useColumnSorted = (columnId: string) =>\n useTableStore(\n useCallback((state: TableStoreState) => state.sortedColumns.has(columnId), [columnId]),\n );\n\nconst selectSummary = (state: TableStoreState) => state.selectionSummary;\n\nexport const useSelectionSummary = () => useTableStore(selectSummary);\n"],"mappings":";;;;AAMA,MAAM,gBAAgB,iBAAiB;AAEvC,MAAM,oBAAoB,cAA0B,aAAa;AAEjE,MAAa,qBAAqB,kBAAkB;AAEpD,MAAa,8BAA8B,IAAI,iBAAiB;AAEhE,MAAa,iBAAoB,aAA+C;CAC9E,MAAM,QAAQ,IAAI,iBAAiB;CACnC,MAAM,cAAc,kBAAkB,SAAS,MAAM,SAAS,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC;CACnF,OAAO,qBAAqB,MAAM,WAAW,aAAa,WAAW;AACvE;AAEA,MAAa,kBAAkB,QAC7B,cAAc,aAAa,UAA2B,MAAM,aAAa,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAE3F,MAAa,sBAAsB,QACjC,cAAc,aAAa,UAA2B,MAAM,iBAAiB,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAE/F,MAAa,kBAAkB,QAC7B,cAAc,aAAa,UAA2B,MAAM,aAAa,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAE3F,MAAa,kBAAkB,OAAe,YAC5C,cACE,aACG,EAAE,OAAO,CAAC,OAAO,WAA4B,SAAS,QAAQ,UAAU,KAAK,OAAO,OACrF,CAAC,OAAO,OAAO,CACjB,CACF;AAEF,MAAa,mBAAmB,aAC9B,cACE,aAAa,UAA2B,MAAM,cAAc,IAAI,QAAQ,GAAG,CAAC,QAAQ,CAAC,CACvF;AAEF,MAAM,iBAAiB,UAA2B,MAAM;AAExD,MAAa,4BAA4B,cAAc,aAAa"}
|