@para-ui/core 5.0.0-beta.11 → 5.0.0-beta.13
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/AGENTS.md +315 -0
- package/AlignBox/component.json +89 -0
- package/Anchor/component.json +130 -0
- package/Argv/component.json +216 -0
- package/AutoBox/component.json +133 -0
- package/AutoButton/component.json +109 -0
- package/AutoTips/component.json +121 -0
- package/Badge/component.json +92 -0
- package/Breadcrumbs/component.json +142 -0
- package/Button/component.json +168 -0
- package/ButtonGroup/component.json +132 -0
- package/Card/component.json +162 -0
- package/Carousel/component.json +142 -0
- package/Cascader/component.json +196 -0
- package/Checkbox/component.json +138 -0
- package/CheckboxGroup/component.json +152 -0
- package/CodeEditor/component.json +189 -0
- package/Collapse/component.json +166 -0
- package/CollapseBox/component.json +84 -0
- package/CollapseLayout/component.json +155 -0
- package/ColorPicker/component.json +142 -0
- package/ComboSelect/component.json +181 -0
- package/Container/component.json +111 -0
- package/ContentBox/component.json +81 -0
- package/CopyText/component.json +118 -0
- package/CycleSelector/component.json +98 -0
- package/DatePicker/component.json +192 -0
- package/Descriptions/component.json +142 -0
- package/Desktop/component.json +171 -0
- package/DragVerify/component.json +114 -0
- package/Drawer/component.json +200 -0
- package/Dropdown/component.json +147 -0
- package/DynamicMultiBox/component.json +278 -0
- package/Empty/component.json +123 -0
- package/FieldForm/component.json +196 -0
- package/Form/component.json +161 -0
- package/FormItem/component.json +171 -0
- package/FunctionModal/component.json +197 -0
- package/Help/component.json +118 -0
- package/HelperText/component.json +126 -0
- package/Image/component.json +165 -0
- package/InputCode/component.json +191 -0
- package/InputLang/component.json +205 -0
- package/InputNumber/component.json +162 -0
- package/Label/component.json +126 -0
- package/Loading/component.json +91 -0
- package/Menu/component.json +180 -0
- package/Message/component.json +246 -0
- package/Modal/component.json +277 -0
- package/MultiBox/component.json +216 -0
- package/Notification/component.json +184 -0
- package/OperateBtn/component.json +134 -0
- package/PageHeader/component.json +112 -0
- package/Pagination/component.json +181 -0
- package/PasswordRules/component.json +105 -0
- package/PopConfirm/component.json +227 -0
- package/PopMenu/component.json +131 -0
- package/Popover/component.json +165 -0
- package/Progress/component.json +161 -0
- package/Prompt/component.json +144 -0
- package/Querying/component.json +96 -0
- package/QuickReply/component.json +129 -0
- package/Radio/component.json +136 -0
- package/RadioGroup/component.json +149 -0
- package/RangeInput/component.json +198 -0
- package/Result/component.json +104 -0
- package/ScrollBar/component.json +115 -0
- package/Search/component.json +177 -0
- package/Select/component.json +244 -0
- package/SelectInput/component.json +184 -0
- package/Selector/component.json +203 -0
- package/SelectorPicker/component.json +179 -0
- package/SingleBox/component.json +151 -0
- package/Slider/component.json +181 -0
- package/SortBox/component.json +108 -0
- package/Status/component.json +104 -0
- package/Stepper/component.json +129 -0
- package/Switch/component.json +207 -0
- package/Table/component.json +547 -0
- package/Tabs/component.json +227 -0
- package/Tag/component.json +221 -0
- package/TextEditor/component.json +186 -0
- package/TextField/component.json +290 -0
- package/TimePicker/component.json +176 -0
- package/Timeline/component.json +110 -0
- package/Title/component.json +156 -0
- package/ToggleButton/component.json +153 -0
- package/Tooltip/component.json +176 -0
- package/Transfer/component.json +157 -0
- package/Tree/component.json +512 -0
- package/Upload/component.json +450 -0
- package/ai-workflows/01-crud-list-multi-drawer.md +278 -0
- package/ai-workflows/02-rbac-operation-buttons.md +290 -0
- package/ai-workflows/03-complex-form-async-cascade.md +350 -0
- package/ai-workflows/04-array-field-form.md +281 -0
- package/ai-workflows/05-popconfirm-async-message-queue.md +333 -0
- package/ai-workflows/06-modal-drawer-form-workflow.md +385 -0
- package/ai-workflows/07-search-filter-table-trio.md +387 -0
- package/ai-workflows/08-table-advanced-features.md +365 -0
- package/ai-workflows/09-batch-operation-export-progress.md +367 -0
- package/ai-workflows/10-cross-component-state-coordination.md +412 -0
- package/es/AlignBox/component.json +89 -0
- package/es/AlignBox/index.css +1 -1
- package/es/AlignBox/index.d.ts +6 -2
- package/es/AlignBox/index.js +1 -1
- package/es/AlignBox/style/index.css +1 -1
- package/es/Anchor/anchorMenu/index.d.ts +2 -1
- package/es/Anchor/anchorMenu/index.js +36 -33
- package/es/Anchor/component.json +130 -0
- package/es/Anchor/index.js +52 -49
- package/es/Anchor/type.d.ts +8 -4
- package/es/Argv/component.json +216 -0
- package/es/Argv/dataGenerator/index.js +1 -1
- package/es/Argv/index.d.ts +5 -6
- package/es/Argv/index.js +1 -1
- package/es/AutoBox/component.json +133 -0
- package/es/AutoBox/index.d.ts +3 -3
- package/es/AutoBox/index.js +1 -1
- package/es/AutoBox/protal.d.ts +2 -2
- package/es/AutoBox/protal.js +33 -30
- package/es/AutoButton/component.json +109 -0
- package/es/AutoButton/index.js +1 -1
- package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
- package/es/AutoTips/autoTipsMultiline/index.js +1 -1
- package/es/AutoTips/component.json +121 -0
- package/es/AutoTips/index.js +1 -1
- package/es/Badge/component.json +92 -0
- package/es/Breadcrumbs/component.json +142 -0
- package/es/Breadcrumbs/index.js +1 -1
- package/es/Button/SplitButton.d.ts +2 -2
- package/es/Button/component.json +168 -0
- package/es/Button/index.js +44 -44
- package/es/ButtonGroup/component.json +132 -0
- package/es/ButtonGroup/index.d.ts +1 -1
- package/es/Card/component.json +162 -0
- package/es/Card/index.d.ts +2 -2
- package/es/Card/index.js +2 -2
- package/es/Carousel/component.json +142 -0
- package/es/Carousel/index.d.ts +1 -1
- package/es/Cascader/Cascader.js +1 -1
- package/es/Cascader/OptionList/Column.js +1 -1
- package/es/Cascader/OptionList/index.js +1 -1
- package/es/Cascader/component.json +196 -0
- package/es/Cascader/hooks/useEntities.js +7 -7
- package/es/Cascader/interface.d.ts +1 -0
- package/es/Cascader/utils/commonUtil.d.ts +1 -1
- package/es/Cascader/utils/commonUtil.js +16 -16
- package/es/Cascader/utils/treeUtil.d.ts +14 -5
- package/es/Cascader/utils/treeUtil.js +1 -1
- package/es/Checkbox/component.json +138 -0
- package/es/CheckboxGroup/component.json +152 -0
- package/es/CheckboxGroup/index.js +1 -1
- package/es/CodeEditor/component.json +189 -0
- package/es/CodeEditor/index.d.ts +11 -10
- package/es/CodeEditor/index.js +19 -19
- package/es/Collapse/component.json +166 -0
- package/es/Collapse/index.d.ts +1 -1
- package/es/Collapse/index.js +23 -22
- package/es/CollapseBox/component.json +84 -0
- package/es/CollapseLayout/component.json +155 -0
- package/es/ColorPicker/component.json +142 -0
- package/es/ComboSelect/component.json +181 -0
- package/es/ComboSelect/index.js +115 -109
- package/es/ComboSelect/interface.d.ts +2 -2
- package/es/ComboSelect/utils.d.ts +3 -3
- package/es/ComboSelect/utils.js +1 -1
- package/es/Container/component.json +111 -0
- package/es/ContentBox/component.json +81 -0
- package/es/CopyText/component.json +118 -0
- package/es/CycleSelector/component.json +98 -0
- package/es/CycleSelector/index.js +14 -13
- package/es/DatePicker/component.json +192 -0
- package/es/DatePicker/generatePicker/generateRangePicker.js +11 -11
- package/es/DatePicker/generatePicker/generateSinglePicker.js +2 -2
- package/es/Descriptions/component.json +142 -0
- package/es/Descriptions/index.d.ts +1 -1
- package/es/Desktop/component.json +171 -0
- package/es/Desktop/index.js +1 -1
- package/es/DragVerify/component.json +114 -0
- package/es/DragVerify/index.js +19 -19
- package/es/Drawer/component.json +200 -0
- package/es/Drawer/index.js +86 -86
- package/es/Drawer/interface.d.ts +1 -1
- package/es/Drawer/util.d.ts +1 -6
- package/es/Drawer/util.js +9 -6
- package/es/Dropdown/component.json +147 -0
- package/es/Dropdown/index.js +1 -1
- package/es/DynamicMultiBox/component.json +278 -0
- package/es/DynamicMultiBox/formItem.d.ts +1 -1
- package/es/DynamicMultiBox/index.js +1 -1
- package/es/DynamicMultiBox/rowForm.d.ts +2 -2
- package/es/Empty/component.json +123 -0
- package/es/Empty/index.css +1 -1
- package/es/Empty/index.d.ts +2 -2
- package/es/Empty/index.js +27 -26
- package/es/Empty/style/index.css +1 -1
- package/es/FieldForm/FieldFormItem/ItemHolder.js +1 -1
- package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
- package/es/FieldForm/FieldFormItem/StatusProvider.js +1 -1
- package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
- package/es/FieldForm/Form.d.ts +2 -2
- package/es/FieldForm/Form.js +1 -1
- package/es/FieldForm/FormItemInput.js +1 -1
- package/es/FieldForm/FormItemLabel.js +1 -1
- package/es/FieldForm/FormList.d.ts +2 -2
- package/es/FieldForm/component.json +196 -0
- package/es/FieldForm/context.d.ts +5 -1
- package/es/FieldForm/context.js +2 -2
- package/es/FieldForm/hooks/useForm.d.ts +4 -3
- package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
- package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
- package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
- package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
- package/es/FieldForm/hooks/useItemRef.js +6 -6
- package/es/Form/component.json +161 -0
- package/es/Form/index.d.ts +52 -49
- package/es/Form/index.js +1 -1
- package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
- package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
- package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
- package/es/FormItem/compoments/formFile/index.js +8 -8
- package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
- package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
- package/es/FormItem/component.json +171 -0
- package/es/FormItem/index.d.ts +5 -5
- package/es/FormItem/index.js +23 -23
- package/es/FormItem/itemType.js +1 -1
- package/es/FunctionModal/component.json +197 -0
- package/es/FunctionModal/dialog.d.ts +1 -1
- package/es/FunctionModal/modalContext.d.ts +4 -1
- package/es/GlobalContext/confirmLocale.js +1 -1
- package/es/GlobalContext/index.js +1 -1
- package/es/Help/component.json +118 -0
- package/es/HelperText/component.json +126 -0
- package/es/Image/PreviewGroup.js +1 -1
- package/es/Image/component.json +165 -0
- package/es/Image/index.js +1 -1
- package/es/InputCode/component.json +191 -0
- package/es/InputCode/index.d.ts +2 -2
- package/es/InputLang/component.json +205 -0
- package/es/InputLang/index.js +2 -2
- package/es/InputNumber/component.json +162 -0
- package/es/Label/component.json +126 -0
- package/es/Label/index.d.ts +2 -2
- package/es/Loading/component.json +91 -0
- package/es/Menu/component.json +180 -0
- package/es/Menu/verticalMenuList.js +1 -1
- package/es/Message/component.json +246 -0
- package/es/Message/index.d.ts +2 -2
- package/es/Message/index.js +2 -2
- package/es/Modal/Confirm/index.d.ts +1 -1
- package/es/Modal/Confirm/index.js +1 -1
- package/es/Modal/component.json +277 -0
- package/es/Modal/index.d.ts +85 -5
- package/es/Modal/index.js +159 -122
- package/es/Modal/interface.d.ts +1 -0
- package/es/MultiBox/component.json +216 -0
- package/es/MultiBox/index.js +19 -14
- package/es/Notification/component.json +184 -0
- package/es/OperateBtn/component.json +134 -0
- package/es/OperateBtn/index.d.ts +3 -3
- package/es/PageHeader/component.json +112 -0
- package/es/PageHeader/horizontalMeun.js +1 -1
- package/es/PageHeader/horizontalMeunRight.js +1 -1
- package/es/Pagination/component.json +181 -0
- package/es/Pagination/index.js +15 -15
- package/es/ParauiProvider/index.js +1 -1
- package/es/PasswordRules/component.json +105 -0
- package/es/PasswordRules/index.d.ts +4 -4
- package/es/PopConfirm/component.json +227 -0
- package/es/PopConfirm/index.d.ts +1 -1
- package/es/PopConfirm/index.js +1 -1
- package/es/PopMenu/component.json +131 -0
- package/es/PopMenu/hooks.d.ts +1 -1
- package/es/PopMenu/index.js +8 -8
- package/es/Popover/component.json +165 -0
- package/es/Popover/index.js +1 -1
- package/es/Progress/component.json +161 -0
- package/es/Prompt/component.json +144 -0
- package/es/Querying/component.json +96 -0
- package/es/Querying/index.css +1 -1
- package/es/Querying/index.d.ts +2 -2
- package/es/Querying/index.js +20 -19
- package/es/Querying/style/index.css +1 -1
- package/es/QuickReply/QuickReplyCode/index.js +1 -1
- package/es/QuickReply/component.json +129 -0
- package/es/QuickReply/index.d.ts +1 -1
- package/es/Radio/component.json +136 -0
- package/es/RadioGroup/component.json +149 -0
- package/es/RangeInput/component.json +198 -0
- package/es/RangeInput/index.js +20 -20
- package/es/Result/component.json +104 -0
- package/es/ScrollBar/component.json +115 -0
- package/es/Search/component.json +177 -0
- package/es/Search/index.d.ts +1 -1
- package/es/Select/component.json +244 -0
- package/es/Select/index.js +114 -114
- package/es/SelectInput/component.json +184 -0
- package/es/Selector/component.json +203 -0
- package/es/Selector/index.js +56 -50
- package/es/Selector/interface.d.ts +2 -2
- package/es/Selector/selectorData/index.js +1 -1
- package/es/Selector/selectorMain/index.js +3 -3
- package/es/Selector/selectorNode/index.js +1 -1
- package/es/Selector/util.d.ts +3 -3
- package/es/Selector/util.js +6 -12
- package/es/SelectorPicker/component.json +179 -0
- package/es/SelectorPicker/index.d.ts +5 -5
- package/es/SelectorPicker/index.js +15 -15
- package/es/SingleBox/component.json +151 -0
- package/es/SingleBox/index.d.ts +2 -2
- package/es/Slider/component.json +181 -0
- package/es/SortBox/component.json +108 -0
- package/es/Status/component.json +104 -0
- package/es/Stepper/component.json +129 -0
- package/es/Stepper/index.d.ts +2 -2
- package/es/Switch/component.json +207 -0
- package/es/Switch/index.css +1 -1
- package/es/Switch/index.d.ts +3 -2
- package/es/Switch/index.js +60 -59
- package/es/Switch/style/index.css +1 -1
- package/es/Table/component.json +547 -0
- package/es/Table/index.d.ts +2 -2
- package/es/Table/index.js +385 -382
- package/es/Table/interface.d.ts +30 -0
- package/es/Table/tableHead.js +1 -1
- package/es/Table/util.d.ts +1 -1
- package/es/Table/util.js +3 -12
- package/es/Tabs/component.json +227 -0
- package/es/Tag/component.json +221 -0
- package/es/Tag/index.css +1 -1
- package/es/Tag/index.d.ts +1 -1
- package/es/Tag/index.js +20 -20
- package/es/Tag/style/index.css +1 -1
- package/es/TextEditor/component.json +186 -0
- package/es/TextEditor/index.d.ts +5 -5
- package/es/TextEditor/index.js +1 -1
- package/es/TextField/component.json +290 -0
- package/es/TextField/index.d.ts +2 -2
- package/es/TextField/index.js +1 -1
- package/es/TimePicker/component.json +176 -0
- package/es/Timeline/component.json +110 -0
- package/es/Title/component.json +156 -0
- package/es/ToggleButton/component.json +153 -0
- package/es/ToggleButton/index.js +1 -1
- package/es/Tooltip/component.json +176 -0
- package/es/Tooltip/index.js +58 -53
- package/es/Tooltip/interface.d.ts +14 -1
- package/es/Tooltip/utils.js +6 -6
- package/es/Transfer/component.json +157 -0
- package/es/Tree/OperateBar/index.js +1 -1
- package/es/Tree/Tree.js +3 -3
- package/es/Tree/component.json +512 -0
- package/es/Tree/interface.d.ts +1 -1
- package/es/Upload/component.json +450 -0
- package/es/Upload/util.js +1 -1
- package/es/Utils/snack-kit-shims.d.ts +18 -0
- package/es/Utils/snack-kit-shims.js +19 -0
- package/es/Utils/type.d.ts +0 -2
- package/es/_virtual/index.js +5 -3
- package/es/_virtual/index2.js +2 -5
- package/es/index.d.ts +2 -0
- package/es/index.js +1 -1
- package/es/locale/en_US.d.ts +361 -0
- package/es/locale/en_US.js +364 -0
- package/es/locale/index.d.ts +1 -723
- package/es/locale/index2.js +10 -0
- package/es/locale/zh_CN.d.ts +361 -0
- package/es/locale/zh_CN.js +364 -0
- package/es/node_modules/classnames/index.js +1 -1
- package/lib/AlignBox/component.json +89 -0
- package/lib/AlignBox/index.css +1 -1
- package/lib/AlignBox/index.d.ts +6 -2
- package/lib/AlignBox/index.js +1 -1
- package/lib/AlignBox/style/index.css +1 -1
- package/lib/Anchor/anchorMenu/index.d.ts +2 -1
- package/lib/Anchor/anchorMenu/index.js +1 -1
- package/lib/Anchor/component.json +130 -0
- package/lib/Anchor/index.js +1 -1
- package/lib/Anchor/type.d.ts +8 -4
- package/lib/Argv/component.json +216 -0
- package/lib/Argv/dataGenerator/index.js +1 -1
- package/lib/Argv/index.d.ts +5 -6
- package/lib/Argv/index.js +1 -1
- package/lib/AutoBox/component.json +133 -0
- package/lib/AutoBox/index.d.ts +3 -3
- package/lib/AutoBox/index.js +1 -1
- package/lib/AutoBox/protal.d.ts +2 -2
- package/lib/AutoBox/protal.js +1 -1
- package/lib/AutoButton/component.json +109 -0
- package/lib/AutoButton/index.js +1 -1
- package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
- package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
- package/lib/AutoTips/component.json +121 -0
- package/lib/AutoTips/index.js +1 -1
- package/lib/Badge/component.json +92 -0
- package/lib/Breadcrumbs/component.json +142 -0
- package/lib/Breadcrumbs/index.js +1 -1
- package/lib/Button/SplitButton.d.ts +2 -2
- package/lib/Button/component.json +168 -0
- package/lib/Button/index.js +1 -1
- package/lib/ButtonGroup/component.json +132 -0
- package/lib/ButtonGroup/index.d.ts +1 -1
- package/lib/Card/component.json +162 -0
- package/lib/Card/index.d.ts +2 -2
- package/lib/Card/index.js +1 -1
- package/lib/Carousel/component.json +142 -0
- package/lib/Carousel/index.d.ts +1 -1
- package/lib/Cascader/Cascader.js +1 -1
- package/lib/Cascader/OptionList/Column.js +1 -1
- package/lib/Cascader/OptionList/index.js +1 -1
- package/lib/Cascader/component.json +196 -0
- package/lib/Cascader/hooks/useEntities.js +1 -1
- package/lib/Cascader/interface.d.ts +1 -0
- package/lib/Cascader/utils/commonUtil.d.ts +1 -1
- package/lib/Cascader/utils/commonUtil.js +1 -1
- package/lib/Cascader/utils/treeUtil.d.ts +14 -5
- package/lib/Cascader/utils/treeUtil.js +1 -1
- package/lib/Checkbox/component.json +138 -0
- package/lib/CheckboxGroup/component.json +152 -0
- package/lib/CheckboxGroup/index.js +1 -1
- package/lib/CodeEditor/component.json +189 -0
- package/lib/CodeEditor/index.d.ts +11 -10
- package/lib/CodeEditor/index.js +1 -1
- package/lib/Collapse/component.json +166 -0
- package/lib/Collapse/index.d.ts +1 -1
- package/lib/Collapse/index.js +1 -1
- package/lib/CollapseBox/component.json +84 -0
- package/lib/CollapseLayout/component.json +155 -0
- package/lib/ColorPicker/component.json +142 -0
- package/lib/ComboSelect/component.json +181 -0
- package/lib/ComboSelect/index.js +1 -1
- package/lib/ComboSelect/interface.d.ts +2 -2
- package/lib/ComboSelect/utils.d.ts +3 -3
- package/lib/ComboSelect/utils.js +1 -1
- package/lib/Container/component.json +111 -0
- package/lib/ContentBox/component.json +81 -0
- package/lib/CopyText/component.json +118 -0
- package/lib/CycleSelector/component.json +98 -0
- package/lib/CycleSelector/index.js +1 -1
- package/lib/DatePicker/component.json +192 -0
- package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
- package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
- package/lib/Descriptions/component.json +142 -0
- package/lib/Descriptions/index.d.ts +1 -1
- package/lib/Desktop/component.json +171 -0
- package/lib/Desktop/index.js +1 -1
- package/lib/DragVerify/component.json +114 -0
- package/lib/DragVerify/index.js +1 -1
- package/lib/Drawer/component.json +200 -0
- package/lib/Drawer/index.js +1 -1
- package/lib/Drawer/interface.d.ts +1 -1
- package/lib/Drawer/util.d.ts +1 -6
- package/lib/Drawer/util.js +1 -1
- package/lib/Dropdown/component.json +147 -0
- package/lib/Dropdown/index.js +1 -1
- package/lib/DynamicMultiBox/component.json +278 -0
- package/lib/DynamicMultiBox/formItem.d.ts +1 -1
- package/lib/DynamicMultiBox/index.js +1 -1
- package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
- package/lib/Empty/component.json +123 -0
- package/lib/Empty/index.css +1 -1
- package/lib/Empty/index.d.ts +2 -2
- package/lib/Empty/index.js +1 -1
- package/lib/Empty/style/index.css +1 -1
- package/lib/FieldForm/FieldFormItem/ItemHolder.js +1 -1
- package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
- package/lib/FieldForm/FieldFormItem/StatusProvider.js +1 -1
- package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
- package/lib/FieldForm/Form.d.ts +2 -2
- package/lib/FieldForm/Form.js +1 -1
- package/lib/FieldForm/FormItemInput.js +1 -1
- package/lib/FieldForm/FormItemLabel.js +1 -1
- package/lib/FieldForm/FormList.d.ts +2 -2
- package/lib/FieldForm/component.json +196 -0
- package/lib/FieldForm/context.d.ts +5 -1
- package/lib/FieldForm/context.js +1 -1
- package/lib/FieldForm/hooks/useForm.d.ts +4 -3
- package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
- package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
- package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
- package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
- package/lib/FieldForm/hooks/useItemRef.js +1 -1
- package/lib/Form/component.json +161 -0
- package/lib/Form/index.d.ts +52 -49
- package/lib/Form/index.js +1 -1
- package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
- package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
- package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
- package/lib/FormItem/compoments/formFile/index.js +1 -1
- package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
- package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
- package/lib/FormItem/component.json +171 -0
- package/lib/FormItem/index.d.ts +5 -5
- package/lib/FormItem/index.js +1 -1
- package/lib/FormItem/itemType.js +1 -1
- package/lib/FunctionModal/component.json +197 -0
- package/lib/FunctionModal/dialog.d.ts +1 -1
- package/lib/FunctionModal/modalContext.d.ts +4 -1
- package/lib/GlobalContext/confirmLocale.js +1 -1
- package/lib/GlobalContext/index.js +1 -1
- package/lib/Help/component.json +118 -0
- package/lib/HelperText/component.json +126 -0
- package/lib/Image/PreviewGroup.js +1 -1
- package/lib/Image/component.json +165 -0
- package/lib/Image/index.js +1 -1
- package/lib/InputCode/component.json +191 -0
- package/lib/InputCode/index.d.ts +2 -2
- package/lib/InputLang/component.json +205 -0
- package/lib/InputLang/index.js +1 -1
- package/lib/InputNumber/component.json +162 -0
- package/lib/Label/component.json +126 -0
- package/lib/Label/index.d.ts +2 -2
- package/lib/Loading/component.json +91 -0
- package/lib/Menu/component.json +180 -0
- package/lib/Menu/verticalMenuList.js +1 -1
- package/lib/Message/component.json +246 -0
- package/lib/Message/index.d.ts +2 -2
- package/lib/Message/index.js +1 -1
- package/lib/Modal/Confirm/index.d.ts +1 -1
- package/lib/Modal/Confirm/index.js +1 -1
- package/lib/Modal/component.json +277 -0
- package/lib/Modal/index.d.ts +85 -5
- package/lib/Modal/index.js +1 -1
- package/lib/Modal/interface.d.ts +1 -0
- package/lib/MultiBox/component.json +216 -0
- package/lib/MultiBox/index.js +1 -1
- package/lib/Notification/component.json +184 -0
- package/lib/OperateBtn/component.json +134 -0
- package/lib/OperateBtn/index.d.ts +3 -3
- package/lib/PageHeader/component.json +112 -0
- package/lib/PageHeader/horizontalMeun.js +1 -1
- package/lib/PageHeader/horizontalMeunRight.js +1 -1
- package/lib/Pagination/component.json +181 -0
- package/lib/Pagination/index.js +1 -1
- package/lib/ParauiProvider/index.js +1 -1
- package/lib/PasswordRules/component.json +105 -0
- package/lib/PasswordRules/index.d.ts +4 -4
- package/lib/PopConfirm/component.json +227 -0
- package/lib/PopConfirm/index.d.ts +1 -1
- package/lib/PopConfirm/index.js +1 -1
- package/lib/PopMenu/component.json +131 -0
- package/lib/PopMenu/hooks.d.ts +1 -1
- package/lib/PopMenu/index.js +1 -1
- package/lib/Popover/component.json +165 -0
- package/lib/Popover/index.js +1 -1
- package/lib/Progress/component.json +161 -0
- package/lib/Prompt/component.json +144 -0
- package/lib/Querying/component.json +96 -0
- package/lib/Querying/index.css +1 -1
- package/lib/Querying/index.d.ts +2 -2
- package/lib/Querying/index.js +1 -1
- package/lib/Querying/style/index.css +1 -1
- package/lib/QuickReply/QuickReplyCode/index.js +1 -1
- package/lib/QuickReply/component.json +129 -0
- package/lib/QuickReply/index.d.ts +1 -1
- package/lib/Radio/component.json +136 -0
- package/lib/RadioGroup/component.json +149 -0
- package/lib/RangeInput/component.json +198 -0
- package/lib/RangeInput/index.js +1 -1
- package/lib/Result/component.json +104 -0
- package/lib/ScrollBar/component.json +115 -0
- package/lib/Search/component.json +177 -0
- package/lib/Search/index.d.ts +1 -1
- package/lib/Select/component.json +244 -0
- package/lib/Select/index.js +1 -1
- package/lib/SelectInput/component.json +184 -0
- package/lib/Selector/component.json +203 -0
- package/lib/Selector/index.js +1 -1
- package/lib/Selector/interface.d.ts +2 -2
- package/lib/Selector/selectorData/index.js +1 -1
- package/lib/Selector/selectorMain/index.js +1 -1
- package/lib/Selector/selectorNode/index.js +1 -1
- package/lib/Selector/util.d.ts +3 -3
- package/lib/Selector/util.js +1 -1
- package/lib/SelectorPicker/component.json +179 -0
- package/lib/SelectorPicker/index.d.ts +5 -5
- package/lib/SelectorPicker/index.js +1 -1
- package/lib/SingleBox/component.json +151 -0
- package/lib/SingleBox/index.d.ts +2 -2
- package/lib/Slider/component.json +181 -0
- package/lib/SortBox/component.json +108 -0
- package/lib/Status/component.json +104 -0
- package/lib/Stepper/component.json +129 -0
- package/lib/Stepper/index.d.ts +2 -2
- package/lib/Switch/component.json +207 -0
- package/lib/Switch/index.css +1 -1
- package/lib/Switch/index.d.ts +3 -2
- package/lib/Switch/index.js +1 -1
- package/lib/Switch/style/index.css +1 -1
- package/lib/Table/component.json +547 -0
- package/lib/Table/index.d.ts +2 -2
- package/lib/Table/index.js +1 -1
- package/lib/Table/interface.d.ts +30 -0
- package/lib/Table/tableHead.js +1 -1
- package/lib/Table/util.d.ts +1 -1
- package/lib/Table/util.js +1 -1
- package/lib/Tabs/component.json +227 -0
- package/lib/Tag/component.json +221 -0
- package/lib/Tag/index.css +1 -1
- package/lib/Tag/index.d.ts +1 -1
- package/lib/Tag/index.js +1 -1
- package/lib/Tag/style/index.css +1 -1
- package/lib/TextEditor/component.json +186 -0
- package/lib/TextEditor/index.d.ts +5 -5
- package/lib/TextEditor/index.js +1 -1
- package/lib/TextField/component.json +290 -0
- package/lib/TextField/index.d.ts +2 -2
- package/lib/TextField/index.js +1 -1
- package/lib/TimePicker/component.json +176 -0
- package/lib/Timeline/component.json +110 -0
- package/lib/Title/component.json +156 -0
- package/lib/ToggleButton/component.json +153 -0
- package/lib/ToggleButton/index.js +1 -1
- package/lib/Tooltip/component.json +176 -0
- package/lib/Tooltip/index.js +1 -1
- package/lib/Tooltip/interface.d.ts +14 -1
- package/lib/Tooltip/utils.js +1 -1
- package/lib/Transfer/component.json +157 -0
- package/lib/Tree/OperateBar/index.js +2 -2
- package/lib/Tree/Tree.js +1 -1
- package/lib/Tree/component.json +512 -0
- package/lib/Tree/interface.d.ts +1 -1
- package/lib/Upload/component.json +450 -0
- package/lib/Upload/util.js +1 -1
- package/lib/Utils/snack-kit-shims.d.ts +18 -0
- package/lib/Utils/snack-kit-shims.js +2 -0
- package/lib/Utils/type.d.ts +0 -2
- package/lib/_virtual/index.js +1 -1
- package/lib/_virtual/index2.js +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +1 -1
- package/lib/locale/en_US.d.ts +361 -0
- package/lib/locale/en_US.js +2 -0
- package/lib/locale/index.d.ts +1 -723
- package/lib/locale/index2.js +2 -0
- package/lib/locale/zh_CN.d.ts +361 -0
- package/lib/locale/zh_CN.js +2 -0
- package/lib/node_modules/classnames/index.js +1 -1
- package/package.json +11 -4
- package/es/_virtual/index3.js +0 -5
- package/es/_virtual/index4.js +0 -5
- package/es/node_modules/@para-snack/core/dist/index.js +0 -5231
- package/lib/_virtual/index3.js +0 -2
- package/lib/_virtual/index4.js +0 -2
- package/lib/node_modules/@para-snack/core/dist/index.js +0 -20
- /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
- /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
- /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
- /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
package/lib/Table/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const N=require("../_virtual/jsx-runtime.js"),o=require("react"),S=require("@paraview/lib"),y=require("./util.js"),Fr=require("./tableHead.js"),Hr=require("./tableBody.js"),Or=require("./tablePagination.js"),Lr=require("./tableContainer/index.js"),zr=require("./tableElement/index.js"),Pr=require("../Loading/index.js"),_r=require("../Hooks/useGlobalProps.js"),m=require("../GlobalContext/constant.js"),Wr=require("../GlobalContext/useFormatMessage.js"),Vr=require("./lang/index.js"),Jr=require("../ScrollBar/index.js");;/* empty css */const Ir=require("../Utils/Hooks/useResizeObserver.js"),Br=Ot=>{const s=_r.default(Ot,"Table");S.GetBrowserClass()==="ie"&&(s.fixedColumn=!1);const{className:Le,style:Lt,url:D,ctx:be,emptyProps:ze,method:O="Get",data:xe,page:zt=1,size:L=10,sizeArr:z=[10,20,50,100],search:Pe,pagination:q=!0,paginationType:_e="complex",flippingArrow:We,autoPagination:Ve=!0,tableCell:Je,requestCallback:Ie,checkDefaultValue:X,setCheck:Ce,radioDefaultValue:Y,setRadio:Se,refresh:Pt,disabledArr:Z,disabledArrStatus:Be,headData:Ke=[],sortTableRadio:Ue,sortTable:ee=!1,filter:Ge=!1,expandable:k,rowKey:v="key",check:P=!1,radio:_=!1,checkRememberPage:_t=!1,align:te="left",paramsCallback:re,operate:ne,showColumns:A="inside",fixedTable:W=!0,fixedColumn:F=!0,dragColumn:ye=!0,dragRow:V,formatter:Qe,lineHeight:J=48,lineWidth:ae=80,autoSize:Xe=!0,loadMore:T=!1,loadMoreRender:Ye,onClickMore:Ze,expandValue:et,expandMultiple:tt,disabledExpand:rt,onExpand:nt,defaultExpandAllRows:at=!1,onClickColumns:De,beyondText:se=!0,tipMaxWidth:oe=500,loading:Te,defaultSortValue:st,defaultFilterValue:Wt,searchKeyName:Vt,filterSearchCallback:Jt,onClickRow:ot,rowClassMapping:lt,getPopupContainer:it,onSort:we,onError:It,refreshInside:ct=!!s.url,checkCount:ut=!!s.check,onDragRow:ft,virtual:Re=!1,columnsInfoEvent:dt,onRefreshCallback:le}=s,Bt=Wr.default("Table",Vr.default),ht=s.expirationTime?s.expirationTime===0?1e8:s.expirationTime:7,[I,mt]=o.useState(s.page!==void 0?s.page:1),[B,Kt]=o.useState(null),[gt,Ut]=o.useState(z),[ie,Ne]=o.useState(0),[C,ke]=o.useState([]),[Gt,pt]=o.useState({}),[E,bt]=o.useState({}),[g,Qt]=o.useState(Object.values(st||{})),[b,Xt]=o.useState(Object.keys(st||{})),[ce,K]=o.useState("not"),[x,ve]=o.useState({}),[Ee,Yt]=o.useState(),[j,Zt]=o.useState({}),[er,tr]=o.useState({}),[U,rr]=o.useState([]),[G,xt]=o.useState([]),[$,nr]=o.useState({...Wt}),[ue,H]=o.useState(!0),[Ct,ar]=o.useState(!1),[je]=o.useState(Math.random().toString()),[sr,M]=o.useState(),[or,lr]=o.useState(0),[fe,ir]=o.useState({}),[St,$e]=o.useState({}),[de,yt]=o.useState(!1),[Dt,Tt]=o.useState([0,0]),[cr,wt]=o.useState(0),[Rt,ur]=o.useState(),h=o.useRef(null),Me=o.useRef(null),Q=o.useRef(null),n=o.useRef({page:s.page!==void 0?s.page:1,headDataConfig:{}});Ir.default({dom:Me.current,cb:()=>$r()}),n.current.loadMoreUrl=T&&D,n.current.search=Pe,n.current.url=D,n.current.orderTypeArr=g,n.current.orderFieldArr=b,n.current.selectFilterCom=$,n.current.data=xe,n.current.searchKeyName=Vt,n.current.filterSearchCallback=Jt,n.current.onError=It,n.current.sizeCom=B,n.current.virtual=Re,n.current.expandable=k,o.useEffect(()=>()=>{n.current.isDestroy=!0,clearTimeout(n.current.reqTimer),clearTimeout(n.current.loadingTimer),S.Cancel(je)},[]),o.useEffect(()=>{Te!==void 0&&(clearTimeout(n.current.loadingTimer),n.current.loadingTimer=setTimeout(()=>{H(Te)},50))},[Te]),o.useEffect(()=>{ar(!!(T&&D))},[T,D]),o.useEffect(()=>{s.page!==void 0&&w(s.page)},[zt]),o.useEffect(()=>{if(!Xe)return he(L);if(s.size)he(L);else if(h&&h.current){const e=Nt();z.indexOf(e)===-1&&(z.unshift(e),z.sort((t,r)=>t-r),Ut([...z])),he(e)}},[L,Xe]),o.useEffect(()=>{s.headData!==void 0&&qt(Ke,!1)},[Ke]),o.useEffect(()=>{if(xe){n.current.historyData=[];const e=kt(),t=S.ArrayToObject(v,e);bt(t),M(Math.random())}},[xe]),o.useEffect(()=>{n.current.initReq&&(w(1),n.current.historyData=[])},[Pe,D]),o.useEffect(()=>{n.current.loadMoreUrl?(n.current.historyData=[],w(1)):M(Math.random())},[Pt]),o.useEffect(()=>{clearTimeout(n.current.reqTimer),n.current.url&&S.Cancel(je),n.current.reqTimer=setTimeout(()=>{if(n.current.initReq=!0,n.current.url){let e={};if(q){if(n.current.page===null||n.current.size===null)return;e.size=n.current.size,e.page=n.current.page}if(b.length>0&&(e.orderField=b,e.orderType=g,s.sortTableRadio&&(e.orderField=b[0],e.orderType=g[0])),$&&Object.keys($).length>0){const r=pr();Object.keys(r).length>0&&(e.filter=r)}n.current.search&&typeof n.current.search=="object"&&(e={...e,...n.current.search});const t={url:n.current.url,ctx:be,method:O,data:e};if(O==="Get")if(re)re(t,r=>{const a=y.handGetReqParams(r);me({...r,url:a,ctx:be,method:O})});else{const r=y.handGetReqParams(t);me({url:r,ctx:be,method:O})}O==="Post"&&(re?re(t,r=>{me(r)}):me(t))}if(n.current.data){let e=kt();if(e=fr(e),q){if(n.current.page===null||n.current.size===null)return;const t=e.slice((n.current.page-1)*n.current.size,(n.current.page-1)*n.current.size+n.current.size);ge(t),Ne(e.length)}else ge(e);s.loading===void 0&&H(!1)}},50)},[sr]),o.useEffect(()=>{Y!==void 0&&Y!==Ee&&Yt(Y)},[Y]),o.useEffect(()=>{if(X){const e={};for(let t=0,r=X.length;t<r;t++){const a=X[t];e[a]=!0}ve(e)}},[X]),o.useEffect(()=>{if(Z){const e={};for(let t=0,r=Z.length;t<r;t++){const a=Z[t];e[a]=!0}Zt(e)}},[Z]),o.useEffect(()=>{if(Object.keys(x).length===0)K("not");else{const e=Object.keys(Gt);if(e.length===0)return K("not");let t=e.length,r=0;for(let a=0,i=e.length;a<i;a++){const l=e[a];j[l]?t--:x[l]!==void 0&&r++}if(r===0)return K("not");if(r===t)return K("all");if(r<t)return K("half")}},[x,C,j]),o.useEffect(()=>{Oe()},[Re,C,k]),o.useEffect(()=>{He({target:h.current})});const Nt=()=>{if(!h.current)return L;let e=h.current.clientHeight-48;s.loadMore&&(e-=J);const t=Math.floor(e/J);return t<1?L:t},he=e=>{n.current.size=e,Kt(e),M(Math.random())},w=e=>{n.current.page=e,mt(e),M(Math.random())},kt=()=>{let e=[];return n.current.data instanceof Array?e=n.current.data:e=n.current.data?.list,e},fr=e=>{const t=Object.keys(n.current.selectFilterCom||{}),r=[];for(let a=0,i=e.length;a<i;a++){const l=e[a];let u=!0;if(n.current.filterSearchCallback)u=n.current.filterSearchCallback(l,{search:n.current.search,filter:n.current.selectFilterCom});else{for(let c=0,f=t.length;c<f;c++){const d=t[c],p=n.current.selectFilterCom[d]||[],R=l[d];if(p.length>0&&p.indexOf(R)===-1){u=!1;continue}}u&&(u=dr(l))}u&&r.push(l)}return r},dr=e=>{let t;const r=n.current.search;if(r&&typeof r!="string"&&r.searchKey&&(t=r.searchKey),typeof t=="string"&&n.current.searchKeyName&&n.current.searchKeyName.length>0)for(let a=0,i=n.current.searchKeyName.length;a<i;a++){const l=n.current.searchKeyName[a],u=e[l];if(u&&u.indexOf&&u.indexOf(t)!==-1)return!0}else return!0;return!1},vt=()=>s.tableKey?s.tableKey:s.data?window.location.origin+window.location.pathname+window.location.hash:s.url?`${s.url}_${s.method||"Get"}`:"",Et=()=>s.rememberColumns===!1?{}:y.getLocalStorageSelectHead(vt(),ht),jt=e=>{if(s.rememberColumns===!1)return;const t=Et(),r={headName:t.headName||{},headDataConfig:t.headDataConfig||{},storageTime:new Date().getTime(),validity:ht*(3600*24)};if(e.setFixed){const a=S.ArrayToObject("name",e.headArr||[]);for(let i=0,l=U.length;i<l;i++){const c=U[i].name||"";r.headName[c]=!1,a[c]&&(r.headName[c]=!0)}}e.setDrag&&(r.headDataConfig=e.headDataConfig||{}),y.setLocalStorageSelectHead(vt(),r)},hr=(e,t,r)=>{if(A===!1){t.push(e);return}if(s.rememberColumns===!1)e.selected&&t.push(e);else{const a=r.headName||{},i=e.name||"",l=a[i];l!==void 0?l&&t.push(e):e.selected&&t.push(e)}},$t=e=>{const t={label:Bt({id:"serial"}),selected:!0,width:s.radio||s.check||s.expandable?45:55,fixed:"left",align:"center",className:"table-serial-number",name:"table-serial-number",sort:!1,filter:!1,render:(r,a,i,l,u)=>Number(u)+1};s.serialNumber&&(typeof s.serialNumber=="boolean"?e.unshift(t):e.unshift({...t,...s.serialNumber}))},Mt=e=>{dt&&dt(e)},qt=(e,t)=>{const r=[],a=[],i={},l=Et();n.current.headDataConfig=l.headDataConfig||{};for(let u=0,c=e.length;u<c;u++){const f=e[u],d=f.name||"";typeof f.width=="number"&&(f.width=`${f.width}px`),t||(f.orderNum=u),hr(f,r,l),a.push(f),i[d]=f}t&&(r.sort((u,c)=>Number(u.orderNum)-Number(c.orderNum)),a.sort((u,c)=>Number(u.orderNum)-Number(c.orderNum))),$t(r),Ae(r),xt(r),Mt(r),rr(a),$e({...n.current.headDataConfig}),n.current.headDataJson=i},mr=()=>{let e=0;return s.check&&(e+=48),s.radio&&(s.check?e+=32:e+=48),s.expandable&&(s.check||s.radio?e+=32:e+=48),e},gr=()=>{let e=0;return(s.showColumns==="inside"||s.showColumns===void 0||s.dragRow)&&(e+=53),s.operate&&(s.operate.width?e+=y.getStringInNumber(s.operate.width):s.operate.operateBtnRender?s.dragRow?e+=145:e+=e===0?158:105:e+=ae),e},qe=e=>{let t=e.width||"";const r=e.name||"",a=n.current.headDataConfig[r]&&n.current.headDataConfig[r].width;return a&&(t=a),t},Ae=e=>{const t=[],r=[];let a=0;const i=mr();a+=i;const l=gr();a+=l;const u={leftBol:!1,rightBol:!1};for(let c=0,f=e.length;c<f;c++){const d=e[c];let p=0;const R=qe(d);R?(p=y.getStringInNumber(R),a+=p):a+=ae,d.fixed==="left"&&d.width&&t.push(d),d.fixed==="right"&&d.width&&r.push(d)}if(t.length>0){u.leftBol=!0;let c=i;for(let f=0,d=t.length;f<d;f++){const p=t[f];if(p.width){const R=qe(p),Ar=y.getStringInNumber(R);p.paraui_left_width=c,c+=Ar,f===t.length-1?p.paraui_fixed_left_last=!0:p.paraui_fixed_left_last=!1}}}if(r.length>0){u.rightBol=!0;let c=l;for(let f=r.length-1;f>=0;f--){const d=r[f];if(d.width){const p=qe(d),R=y.getStringInNumber(p);d.paraui_right_width=c,c+=R,f===0?d.paraui_fixed_right_first=!0:d.paraui_fixed_right_first=!1}}}lr(a),ir(u)},pr=()=>{const e={},t=Object.keys($),r=n.current.headDataJson||{};for(let a=0,i=t.length;a<i;a++){const l=t[a],u=$[l]||[];if(u.length===0)continue;const c=r[l];c&&c.filterRadio?e[l]=u[0]:e[l]=u}return e},me=async e=>{e.uuid=je,s.loading===void 0&&H(!0);let{data:t,err:r}=await y.requestFunc(e);if(!n.current.isDestroy){if(r){if(s.loading===void 0&&H(!1),!r.__CANCEL__){let a=!1;if(n.current.onError&&(a=await n.current.onError(r)),!a)return;ke([]),Ne(0),pt({})}return!1}Ie?Ie(t,a=>{a&&(a.data&&(a=a.data),At(a),s.loading===void 0&&H(!1))}):(t.data&&(t=t.data),At(t),s.loading===void 0&&H(!1))}},At=e=>{if(e.columns&&s.headData===void 0&&JSON.stringify(e.columns)!==JSON.stringify(er)){tr(e.columns);const r=Object.keys(e.columns),a=[];for(let i=0,l=r.length;i<l;i++){const u=r[i],c=e.columns[u];c.name=u,c.label=c.displayName,c.filter=c.filterFlag,c.filterRadio=c.filterRadioFlag,c.sort=c.orderFlag,c.selected=c.selectedFlag,c.width=c.width,a.push(c)}qt(a,!0)}if(q)ge(e.list||[]),Ne(e.total),e.page!==void 0&&e.page!==null&&(n.current.page=Number(e.page),mt(Number(e.page)));else{let t=[];e instanceof Array?t=e:t=e.list||[],ge(t)}},ge=e=>{if(n.current.loadMoreUrl){const r=n.current.historyData||[];r.length>0&&(e=[...r,...e])}const t=S.ArrayToObject(v,e);n.current.historyData=e,pt(t),ke(e),D&&bt({...E,...t})},br=e=>{e!==void 0&&w(e),pe()},xr=e=>{e!==void 0&&he(e),w(1),pe()},Cr=e=>{const t=e||Number(I)+1;w(t)},Sr=(e,t)=>{const r=b.indexOf(t);if(r!==-1){const l=g[r];l==="asc"&&(g[r]="desc"),l==="desc"&&(b.splice(r,1),g.splice(r,1)),l===void 0&&(g[r]="asc")}else b.push(t),g.push("asc");let a=[...b],i=[...g];if(Ue){const l=a.indexOf(t);l!==-1&&(a=[a[l]],i=[i[l]])}Xt(a),Qt(i),n.current.orderFieldArr=a,n.current.orderTypeArr=i,we&&we({orderField:a,orderType:i}),n.current.loadMoreUrl&&(n.current.historyData=[],w(1)),M(Math.random())},Fe=e=>{s.checkDefaultValue===void 0&&ve({...e});const t=Object.keys(e);if(Ce){const r=[];for(let a=0,i=t.length;a<i;a++)E[t[a]]&&r.push(E[t[a]]);Ce(t,r)}},Ft=(e,t)=>{const r=s.checkDefaultValue!==void 0?{...x}:x;for(let a=0,i=C.length;a<i;a++){const l=C[a][v];j[l]||(t?r[l]=!0:r[l]&&delete r[l])}Fe(r)},yr=(e,t,r)=>{const a=s.checkDefaultValue!==void 0?{...x}:x;a[r]=t,a[r]===!1&&delete a[r],Fe(a)},Dr=(e,t)=>{Se&&Se(t,E[t])},pe=()=>{_t||(ve({}),Fe({}))},Ht=(e,t,r)=>{Ae(e),xt(e),Mt(e);const a={setFixed:!0,headArr:e};r&&(a.setDrag=!0,a.headDataConfig={}),jt(a),De&&De(e,t)},Tr=(e,t,r)=>{if(t){n.current.headDataConfig={},$e({});const i=[],l=[...U];$t(l);for(let u=0,c=l.length;u<c;u++){const f=l[u];f&&f.selected&&i.push(f)}Ht(i,r,!0);return}e.sort((i,l)=>Number(i.orderNum)-Number(l.orderNum));const a=[...e];Ht(a,r)},wr=e=>{n.current.selectFilterCom=S.DeepClone(e),nr(S.DeepClone(e)),w(1)},Rr=(e,t)=>{const r=e.name||"";n.current.headDataConfig[r]={width:t.width},$e({...n.current.headDataConfig}),Ae([...G]),jt({headDataConfig:n.current.headDataConfig,setDrag:!0})},Nr=(e,t,r)=>{const a=e.splice(t,1)[0];return e.splice(r,0,a),e},kr=async e=>{const{oldIndex:t,newIndex:r}=e;if(t===r)return;const a=[...C||[]];Nr(a,t,r),await ft?.(a,e)||ke(a)},vr=o.useMemo(()=>N.jsxRuntimeExports.jsx(Fr.TableHead,{orderTypeArr:g,orderFieldArr:b,sortTable:ee,filter:Ge,expandable:k,check:P,selectStatus:ce,radio:_,align:te,showList:U,headData:G,selectFilter:$,operate:ne,onRequestSort:Sr,selectAll:Ft,changeShowList:Tr,changeFilter:wr,showColumns:A,rowKey:v,fixedTable:W,fixedColumn:F,posFixed:fe,beyondText:se,lineWidth:ae,dragColumn:ye,dragRow:V,headDataConfig:St,tipMaxWidth:oe,changeColumnWidth:Rr,getPopupContainer:it}),[E,A,v,C,x,j,g,b,ee,Ge,k,P,ce,_,te,U,G,$,ne,De,Ue,W,fe,se,F,ae,ye,V,St,it,we,oe]),Er=o.useMemo(()=>N.jsxRuntimeExports.jsx(Hr.TableBody,{url:D,emptyProps:ze,changePage:Cr,loadMoreUrl:Ct,total:ie,page:I,currentRowsPerPage:B,loadState:ue,loadMore:T,loadMoreRender:Ye,onClickMore:Ze,rowData:C,headData:G,expandable:k,check:P,radio:_,checkJson:x,radioValue:Ee,disabledJson:j,disabledArrStatus:Be,align:te,tableCell:Je,operate:ne,showColumns:A,formatter:Qe,orderTypeArr:g,orderFieldArr:b,sortTable:ee,selectCheck:yr,selectRadio:Dr,rowKey:v,expandMultiple:tt,expandValue:et,disabledExpand:rt,onExpand:nt,defaultExpandAllRows:at,onRefresh:()=>{le?.("empty"),M(Math.random()),pe()},posFixed:fe,beyondText:se,fixedColumn:F,fixedTable:W,onClickRow:ot,rowClassMapping:lt,tipMaxWidth:oe,lineHeight:J,dragRow:V,onDragRow:kr,virtualIndex:Dt,virtual:de}),[A,Qe,v,C,G,k,P,_,x,ee,g,b,Ee,j,te,Je,ne,Se,Ce,E,T,Ye,Ze,ie,I,B,Ct,et,tt,rt,nt,at,ue,ze,D,Be,fe,se,W,F,ot,lt,oe,J,V,ft,Dt,Re,de,le]),jr=o.useMemo(()=>{if(!(n.current.page===null||n.current.size===null||T))return q&&N.jsxRuntimeExports.jsx(Or.TableHead,{paginationType:_e,flippingArrow:We,autoPagination:Ve,total:ie,page:I,currentRowsPerPage:B,rowsPerPage:gt,changePage:br,changeRowsPerPage:xr,refreshInside:ct,checkCount:ut,onRefresh:()=>{le?.("refresh"),M(Math.random()),pe()},selectStatus:ce,selectAll:Ft,checkNumber:Object.keys(x).length,currentPageTotal:C.length,resizePaginationLine:Rt})},[ie,I,B,gt,q,T,Ve,_e,We,ct,ut,ce,C,x,j,E,Rt,le]),He=e=>{const t=Me.current,r=e.target;if(!(!t||!r)&&(t.classList.remove("table-scroll-left","table-scroll-right","table-scroll-middle"),!(r.scrollWidth<=r.clientWidth))){if(r.scrollLeft===0){t.classList.add("table-scroll-left");return}if(r.scrollLeft+r.clientWidth===r.scrollWidth){t.classList.add("table-scroll-right");return}t.classList.add("table-scroll-middle")}},$r=()=>{Oe(),He({target:h.current}),ur(S.UUID())},Oe=()=>{const e=Nt(),t=10;if(n.current.virtual&&!n.current.expandable&&Number(n.current.sizeCom)>e+2*t){if(yt(!0),!Q.current||!h.current)return;const r=Q.current.clientHeight-h.current.clientHeight;h.current.scrollTop>=r&&(h.current.scrollTop=r,wt(r)),wt(h.current.scrollTop);const a=h.current,i=Math.floor(a.scrollTop/J),l=i+e+t;Tt([i,l])}else Tt([0,0]),yt(!1)},Mr=()=>!de||!Q.current||!h.current?null:N.jsxRuntimeExports.jsx(Jr.default,{style:{position:"absolute",top:0,right:0,zIndex:100},scrollTotalLength:Q.current.clientHeight-h.current.clientHeight,scrollLength:cr,onScroll:e=>{h.current&&(h.current.scrollTop=e)}}),qr=()=>{let e=`${m.$prefixCls}-table`;return A==="inside"&&(e+=` ${m.$prefixCls}-table-columns-inside`),q&&(e+=` ${m.$prefixCls}-table-pagination`),T&&(e+=` ${m.$prefixCls}-table-load-more`),W&&(e+=` ${m.$prefixCls}-table-fixed-table`),F&&(e+=` ${m.$prefixCls}-table-fixed-cloumn`),ye&&(e+=` ${m.$prefixCls}-table-drag-column`),V&&(e+=` ${m.$prefixCls}-table-drag-row`),P&&(e+=` ${m.$prefixCls}-table-check`),_&&(e+=` ${m.$prefixCls}-table-radio`),k&&(e+=` ${m.$prefixCls}-table-expandable`),C.length===0&&(e+=` ${m.$prefixCls}-table-no-data`),ue&&(e+=` ${m.$prefixCls}-table-load`),de&&(e+=` ${m.$prefixCls}-virtual`),Le&&(e+=` ${Le}`),e};return N.jsxRuntimeExports.jsxs("div",{className:qr(),style:Lt,ref:Me,children:[N.jsxRuntimeExports.jsx(Lr.TableContainer,{className:"table-contain",cRef:h,onScroll:e=>{Oe(),He(e)},children:N.jsxRuntimeExports.jsxs(zr.TableElement,{cRef:Q,fixedColumn:F,style:{minWidth:`${or}px`},children:[vr,Er]})}),Mr(),ue&&N.jsxRuntimeExports.jsx(Pr.Loading,{}),jr]})};exports.default=Br;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const w=require("../_virtual/jsx-runtime.js"),o=require("react"),Q=require("@snack-kit/lib"),Ce=require("../Utils/snack-kit-shims.js"),S=require("./util.js"),Hr=require("./tableHead.js"),zr=require("./tableBody.js"),Or=require("./tablePagination.js"),Pr=require("./tableContainer/index.js"),Lr=require("./tableElement/index.js"),_r=require("../Loading/index.js"),Wr=require("../Hooks/useGlobalProps.js"),m=require("../GlobalContext/constant.js"),Vr=require("../GlobalContext/useFormatMessage.js"),Jr=require("./lang/index.js"),Ir=require("../ScrollBar/index.js");;/* empty css */const Br=require("../Hooks/useResizeObserver.js"),Kr=X=>{const s=Wr.default(X,"Table");Ce.GetBrowserClass()==="ie"&&(s.fixedColumn=!1);const{className:Le,style:Pt,url:y,ctx:xe,emptyProps:_e,method:z="Get",data:Se,page:Lt=1,size:O=10,sizeArr:P=[10,20,50,100],search:We,pagination:$=!0,paginationType:Ve="complex",flippingArrow:Je,autoPagination:Ie=!0,tableCell:Be,requestCallback:Ke,checkDefaultValue:Y,setCheck:ye,radioDefaultValue:Z,setRadio:De,refresh:_t,disabledArr:ee,disabledArrStatus:Ue,headData:Ge=[],sortTableRadio:Qe,sortTable:te=!1,filter:Xe=!1,expandable:N,rowKey:k="key",check:L=!1,radio:_=!1,checkRememberPage:Wt=!1,align:re="left",paramsCallback:ne,operate:ae,showColumns:q="inside",fixedTable:W=!0,fixedColumn:A=!0,dragColumn:Te=!0,dragRow:V,formatter:Ye,lineHeight:J=48,lineWidth:se=80,autoSize:Ze=!0,loadMore:D=!1,loadMoreRender:et,onClickMore:tt,expandValue:rt,expandMultiple:nt,disabledExpand:at,onExpand:st,defaultExpandAllRows:ot=!1,onClickColumns:Re,beyondText:oe=!0,tipMaxWidth:le=500,loading:we,defaultSortValue:lt,defaultFilterValue:Vt,searchKeyName:Jt,filterSearchCallback:It,onClickRow:it,rowClassMapping:ct,getPopupContainer:ut,onSort:Ne,onError:Bt,refreshInside:ft=!!s.url,checkCount:dt=!!s.check,onDragRow:ht,virtual:ke=!1,columnsInfoEvent:mt,onRefreshCallback:ie}=s,Kt=Vr.default("Table",Jr.default),gt=s.expirationTime?s.expirationTime===0?1e8:s.expirationTime:7,[I,pt]=o.useState(s.page!==void 0?s.page:1),[F,Ut]=o.useState(null),[bt,Gt]=o.useState(P),[ce,ve]=o.useState(0),[x,Ee]=o.useState([]),[Qt,Ct]=o.useState({}),[v,xt]=o.useState({}),[g,Xt]=o.useState(Object.values(lt||{})),[b,Yt]=o.useState(Object.keys(lt||{})),[ue,B]=o.useState("not"),[C,je]=o.useState({}),[Me,Zt]=o.useState(),[E,er]=o.useState({}),[tr,rr]=o.useState({}),[K,nr]=o.useState([]),[U,St]=o.useState([]),[j,ar]=o.useState({...Vt}),[fe,H]=o.useState(!0),[yt,sr]=o.useState(!1),$e=o.useRef(""),[or,M]=o.useState(),[lr,ir]=o.useState(0),[de,cr]=o.useState({}),[Dt,qe]=o.useState({}),[he,Tt]=o.useState(!1),[Rt,wt]=o.useState([0,0]),[ur,Nt]=o.useState(0),[kt,fr]=o.useState(),h=o.useRef(null),Ae=o.useRef(null),G=o.useRef(null),n=o.useRef({page:s.page!==void 0?s.page:1,headDataConfig:{}});Br.default({dom:Ae.current,cb:()=>$r()}),n.current.loadMoreUrl=D&&y,n.current.search=We,n.current.url=y,n.current.orderTypeArr=g,n.current.orderFieldArr=b,n.current.selectFilterCom=j,n.current.data=Se,n.current.searchKeyName=Jt,n.current.filterSearchCallback=It,n.current.onError=Bt,n.current.sizeCom=F,n.current.virtual=ke,n.current.expandable=N,o.useEffect(()=>()=>{n.current.isDestroy=!0,clearTimeout(n.current.reqTimer),clearTimeout(n.current.loadingTimer),Q.Cancel($e.current)},[]),o.useEffect(()=>{we!==void 0&&(clearTimeout(n.current.loadingTimer),n.current.loadingTimer=setTimeout(()=>{H(we)},50))},[we]),o.useEffect(()=>{sr(!!(D&&y))},[D,y]),o.useEffect(()=>{s.page!==void 0&&T(s.page)},[Lt]),o.useEffect(()=>{if(!Ze)return me(O);if(s.size)me(O);else if(h&&h.current){const e=vt();P.indexOf(e)===-1&&(P.unshift(e),P.sort((t,r)=>t-r),Gt([...P])),me(e)}},[O,Ze]),o.useEffect(()=>{s.headData!==void 0&&Ft(Ge,!1)},[Ge]),o.useEffect(()=>{if(Se){n.current.historyData=[];const e=Et(),t=Ce.ArrayToObject(k,e);xt(t),M(Math.random())}},[Se]),o.useEffect(()=>{n.current.initReq&&(T(1),n.current.historyData=[])},[We,y]),o.useEffect(()=>{n.current.loadMoreUrl?(n.current.historyData=[],T(1)):M(Math.random())},[_t]),o.useEffect(()=>{clearTimeout(n.current.reqTimer),n.current.url&&Q.Cancel($e.current),n.current.reqTimer=setTimeout(()=>{if(n.current.initReq=!0,n.current.url){let e={};if($){if(n.current.page===null||n.current.size===null)return;e.size=n.current.size,e.page=n.current.page}if(b.length>0&&(e.orderField=b,e.orderType=g,s.sortTableRadio&&(e.orderField=b[0],e.orderType=g[0])),j&&Object.keys(j).length>0){const r=br();Object.keys(r).length>0&&(e.filter=r)}n.current.search&&typeof n.current.search=="object"&&(e={...e,...n.current.search});const t={url:n.current.url,ctx:xe,method:z,data:e};if(z==="Get")if(ne)ne(t,r=>{const a=S.handGetReqParams(r);ge({...r,url:a,ctx:xe,method:z})});else{const r=S.handGetReqParams(t);ge({url:r,ctx:xe,method:z})}z==="Post"&&(ne?ne(t,r=>{ge(r)}):ge(t))}if(n.current.data){let e=Et();if(e=dr(e),$){if(n.current.page===null||n.current.size===null)return;const t=e.slice((n.current.page-1)*n.current.size,(n.current.page-1)*n.current.size+n.current.size);pe(t),ve(e.length)}else pe(e);s.loading===void 0&&H(!1)}},50)},[or]),o.useEffect(()=>{Z!==void 0&&Z!==Me&&Zt(Z)},[Z]),o.useEffect(()=>{if(Y){const e={};for(let t=0,r=Y.length;t<r;t++){const a=Y[t];e[a]=!0}je(e)}},[Y]),o.useEffect(()=>{if(ee){const e={};for(let t=0,r=ee.length;t<r;t++){const a=ee[t];e[a]=!0}er(e)}},[ee]),o.useEffect(()=>{if(Object.keys(C).length===0)B("not");else{const e=Object.keys(Qt);if(e.length===0)return B("not");let t=e.length,r=0;for(let a=0,i=e.length;a<i;a++){const l=e[a];E[l]?t--:C[l]!==void 0&&r++}if(r===0)return B("not");if(r===t)return B("all");if(r<t)return B("half")}},[C,x,E]),o.useEffect(()=>{Pe()},[ke,x,N]),o.useEffect(()=>{Oe({target:h.current})});const vt=()=>{if(!h.current)return O;let e=h.current.clientHeight-48;s.loadMore&&(e-=J);const t=Math.floor(e/J);return t<1?O:t},me=e=>{n.current.size=e,Ut(e),M(Math.random()),X.onPageChange?.(n.current.page??1,e)},T=e=>{n.current.page=e,pt(e),M(Math.random()),X.onPageChange?.(e,n.current.size??F??X.size??10)},Et=()=>{let e=[];return n.current.data instanceof Array?e=n.current.data:e=n.current.data?.list,e},dr=e=>{const t=Object.keys(n.current.selectFilterCom||{}),r=[];for(let a=0,i=e.length;a<i;a++){const l=e[a];let u=!0;if(n.current.filterSearchCallback)u=n.current.filterSearchCallback(l,{search:n.current.search,filter:n.current.selectFilterCom});else{for(let c=0,f=t.length;c<f;c++){const d=t[c],p=n.current.selectFilterCom[d]||[],R=l[d];if(p.length>0&&p.indexOf(R)===-1){u=!1;continue}}u&&(u=hr(l))}u&&r.push(l)}return r},hr=e=>{let t;const r=n.current.search;if(r&&typeof r!="string"&&r.searchKey&&(t=r.searchKey),typeof t=="string"&&n.current.searchKeyName&&n.current.searchKeyName.length>0)for(let a=0,i=n.current.searchKeyName.length;a<i;a++){const l=n.current.searchKeyName[a],u=e[l];if(u&&u.indexOf&&u.indexOf(t)!==-1)return!0}else return!0;return!1},jt=()=>s.tableKey?s.tableKey:s.data?window.location.origin+window.location.pathname+window.location.hash:s.url?`${s.url}_${s.method||"Get"}`:"",Mt=()=>s.rememberColumns===!1?{}:S.getLocalStorageSelectHead(jt(),gt),$t=e=>{if(s.rememberColumns===!1)return;const t=Mt(),r={headName:t.headName||{},headDataConfig:t.headDataConfig||{},storageTime:new Date().getTime(),validity:gt*(3600*24)};if(e.setFixed){const a=Ce.ArrayToObject("name",e.headArr||[]);for(let i=0,l=K.length;i<l;i++){const c=K[i].name||"";r.headName[c]=!1,a[c]&&(r.headName[c]=!0)}}e.setDrag&&(r.headDataConfig=e.headDataConfig||{}),S.setLocalStorageSelectHead(jt(),r)},mr=(e,t,r)=>{if(q===!1){t.push(e);return}if(s.rememberColumns===!1)e.selected&&t.push(e);else{const a=r.headName||{},i=e.name||"",l=a[i];l!==void 0?l&&t.push(e):e.selected&&t.push(e)}},qt=e=>{const t={label:Kt({id:"serial"}),selected:!0,width:s.radio||s.check||s.expandable?45:55,fixed:"left",align:"center",className:"table-serial-number",name:"table-serial-number",sort:!1,filter:!1,render:(r,a,i,l,u)=>Number(u)+1};s.serialNumber&&(typeof s.serialNumber=="boolean"?e.unshift(t):e.unshift({...t,...s.serialNumber}))},At=e=>{mt&&mt(e)},Ft=(e,t)=>{const r=[],a=[],i={},l=Mt();n.current.headDataConfig=l.headDataConfig||{};for(let u=0,c=e.length;u<c;u++){const f=e[u],d=f.name||"";typeof f.width=="number"&&(f.width=`${f.width}px`),t||(f.orderNum=u),mr(f,r,l),a.push(f),i[d]=f}t&&(r.sort((u,c)=>Number(u.orderNum)-Number(c.orderNum)),a.sort((u,c)=>Number(u.orderNum)-Number(c.orderNum))),qt(r),He(r),St(r),At(r),nr(a),qe({...n.current.headDataConfig}),n.current.headDataJson=i},gr=()=>{let e=0;return s.check&&(e+=48),s.radio&&(s.check?e+=32:e+=48),s.expandable&&(s.check||s.radio?e+=32:e+=48),e},pr=()=>{let e=0;return(s.showColumns==="inside"||s.showColumns===void 0||s.dragRow)&&(e+=53),s.operate&&(s.operate.width?e+=S.getStringInNumber(s.operate.width):s.operate.operateBtnRender?s.dragRow?e+=145:e+=e===0?158:105:e+=se),e},Fe=e=>{let t=e.width||"";const r=e.name||"",a=n.current.headDataConfig[r]&&n.current.headDataConfig[r].width;return a&&(t=a),t},He=e=>{const t=[],r=[];let a=0;const i=gr();a+=i;const l=pr();a+=l;const u={leftBol:!1,rightBol:!1};for(let c=0,f=e.length;c<f;c++){const d=e[c];let p=0;const R=Fe(d);R?(p=S.getStringInNumber(R),a+=p):a+=se,d.fixed==="left"&&d.width&&t.push(d),d.fixed==="right"&&d.width&&r.push(d)}if(t.length>0){u.leftBol=!0;let c=i;for(let f=0,d=t.length;f<d;f++){const p=t[f];if(p.width){const R=Fe(p),Fr=S.getStringInNumber(R);p.paraui_left_width=c,c+=Fr,f===t.length-1?p.paraui_fixed_left_last=!0:p.paraui_fixed_left_last=!1}}}if(r.length>0){u.rightBol=!0;let c=l;for(let f=r.length-1;f>=0;f--){const d=r[f];if(d.width){const p=Fe(d),R=S.getStringInNumber(p);d.paraui_right_width=c,c+=R,f===0?d.paraui_fixed_right_first=!0:d.paraui_fixed_right_first=!1}}}ir(a),cr(u)},br=()=>{const e={},t=Object.keys(j),r=n.current.headDataJson||{};for(let a=0,i=t.length;a<i;a++){const l=t[a],u=j[l]||[];if(u.length===0)continue;const c=r[l];c&&c.filterRadio?e[l]=u[0]:e[l]=u}return e},ge=async e=>{e.onCancelId=a=>{$e.current=a},s.loading===void 0&&H(!0);let{data:t,error:r}=await S.requestFunc(e);if(!n.current.isDestroy){if(r){if(s.loading===void 0&&H(!1),!r.__CANCEL__){let a=!1;if(n.current.onError&&(a=await n.current.onError(r)),!a)return;Ee([]),ve(0),Ct({})}return!1}Ke?Ke(t,a=>{a&&(a.data&&(a=a.data),Ht(a),s.loading===void 0&&H(!1))}):(t.data&&(t=t.data),Ht(t),s.loading===void 0&&H(!1))}},Ht=e=>{if(e.columns&&s.headData===void 0&&JSON.stringify(e.columns)!==JSON.stringify(tr)){rr(e.columns);const r=Object.keys(e.columns),a=[];for(let i=0,l=r.length;i<l;i++){const u=r[i],c=e.columns[u];c.name=u,c.label=c.displayName,c.filter=c.filterFlag,c.filterRadio=c.filterRadioFlag,c.sort=c.orderFlag,c.selected=c.selectedFlag,c.width=c.width,a.push(c)}Ft(a,!0)}if($)pe(e.list||[]),ve(e.total),e.page!==void 0&&e.page!==null&&(n.current.page=Number(e.page),pt(Number(e.page)));else{let t=[];e instanceof Array?t=e:t=e.list||[],pe(t)}},pe=e=>{if(n.current.loadMoreUrl){const r=n.current.historyData||[];r.length>0&&(e=[...r,...e])}const t=Ce.ArrayToObject(k,e);n.current.historyData=e,Ct(t),Ee(e),y&&xt({...v,...t})},Cr=e=>{e!==void 0&&T(e),be()},xr=e=>{e!==void 0&&me(e),T(1),be()},Sr=e=>{const t=e||Number(I)+1;T(t)},yr=(e,t)=>{const r=b.indexOf(t);if(r!==-1){const l=g[r];l==="asc"&&(g[r]="desc"),l==="desc"&&(b.splice(r,1),g.splice(r,1)),l===void 0&&(g[r]="asc")}else b.push(t),g.push("asc");let a=[...b],i=[...g];if(Qe){const l=a.indexOf(t);l!==-1&&(a=[a[l]],i=[i[l]])}Yt(a),Xt(i),n.current.orderFieldArr=a,n.current.orderTypeArr=i,Ne&&Ne({orderField:a,orderType:i}),n.current.loadMoreUrl&&(n.current.historyData=[],T(1)),M(Math.random())},ze=e=>{s.checkDefaultValue===void 0&&je({...e});const t=Object.keys(e);if(ye){const r=[];for(let a=0,i=t.length;a<i;a++)v[t[a]]&&r.push(v[t[a]]);ye(t,r)}},zt=(e,t)=>{const r=s.checkDefaultValue!==void 0?{...C}:C;for(let a=0,i=x.length;a<i;a++){const l=x[a][k];E[l]||(t?r[l]=!0:r[l]&&delete r[l])}ze(r)},Dr=(e,t,r)=>{const a=s.checkDefaultValue!==void 0?{...C}:C;a[r]=t,a[r]===!1&&delete a[r],ze(a)},Tr=(e,t)=>{De&&De(t,v[t])},be=()=>{Wt||(je({}),ze({}))},Ot=(e,t,r)=>{He(e),St(e),At(e);const a={setFixed:!0,headArr:e};r&&(a.setDrag=!0,a.headDataConfig={}),$t(a),Re&&Re(e,t)},Rr=(e,t,r)=>{if(t){n.current.headDataConfig={},qe({});const i=[],l=[...K];qt(l);for(let u=0,c=l.length;u<c;u++){const f=l[u];f&&f.selected&&i.push(f)}Ot(i,r,!0);return}e.sort((i,l)=>Number(i.orderNum)-Number(l.orderNum));const a=[...e];Ot(a,r)},wr=e=>{n.current.selectFilterCom=Q.DeepClone(e),ar(Q.DeepClone(e)),T(1)},Nr=(e,t)=>{const r=e.name||"";n.current.headDataConfig[r]={width:t.width},qe({...n.current.headDataConfig}),He([...U]),$t({headDataConfig:n.current.headDataConfig,setDrag:!0})},kr=(e,t,r)=>{const a=e.splice(t,1)[0];return e.splice(r,0,a),e},vr=async e=>{const{oldIndex:t,newIndex:r}=e;if(t===r)return;const a=[...x||[]];kr(a,t,r),await ht?.(a,e)||Ee(a)},Er=o.useMemo(()=>w.jsxRuntimeExports.jsx(Hr.TableHead,{orderTypeArr:g,orderFieldArr:b,sortTable:te,filter:Xe,expandable:N,check:L,selectStatus:ue,radio:_,align:re,showList:K,headData:U,selectFilter:j,operate:ae,onRequestSort:yr,selectAll:zt,changeShowList:Rr,changeFilter:wr,showColumns:q,rowKey:k,fixedTable:W,fixedColumn:A,posFixed:de,beyondText:oe,lineWidth:se,dragColumn:Te,dragRow:V,headDataConfig:Dt,tipMaxWidth:le,changeColumnWidth:Nr,getPopupContainer:ut}),[v,q,k,x,C,E,g,b,te,Xe,N,L,ue,_,re,K,U,j,ae,Re,Qe,W,de,oe,A,se,Te,V,Dt,ut,Ne,le]),jr=o.useMemo(()=>w.jsxRuntimeExports.jsx(zr.TableBody,{url:y,emptyProps:_e,changePage:Sr,loadMoreUrl:yt,total:ce,page:I,currentRowsPerPage:F,loadState:fe,loadMore:D,loadMoreRender:et,onClickMore:tt,rowData:x,headData:U,expandable:N,check:L,radio:_,checkJson:C,radioValue:Me,disabledJson:E,disabledArrStatus:Ue,align:re,tableCell:Be,operate:ae,showColumns:q,formatter:Ye,orderTypeArr:g,orderFieldArr:b,sortTable:te,selectCheck:Dr,selectRadio:Tr,rowKey:k,expandMultiple:nt,expandValue:rt,disabledExpand:at,onExpand:st,defaultExpandAllRows:ot,onRefresh:()=>{ie?.("empty"),M(Math.random()),be()},posFixed:de,beyondText:oe,fixedColumn:A,fixedTable:W,onClickRow:it,rowClassMapping:ct,tipMaxWidth:le,lineHeight:J,dragRow:V,onDragRow:vr,virtualIndex:Rt,virtual:he}),[q,Ye,k,x,U,N,L,_,C,te,g,b,Me,E,re,Be,ae,De,ye,v,D,et,tt,ce,I,F,yt,rt,nt,at,st,ot,fe,_e,y,Ue,de,oe,W,A,it,ct,le,J,V,ht,Rt,ke,he,ie]),Mr=o.useMemo(()=>{if(!(n.current.page===null||n.current.size===null||D))return $&&w.jsxRuntimeExports.jsx(Or.TableHead,{paginationType:Ve,flippingArrow:Je,autoPagination:Ie,total:ce,page:I,currentRowsPerPage:F,rowsPerPage:bt,changePage:Cr,changeRowsPerPage:xr,refreshInside:ft,checkCount:dt,onRefresh:()=>{ie?.("refresh"),M(Math.random()),be()},selectStatus:ue,selectAll:zt,checkNumber:Object.keys(C).length,currentPageTotal:x.length,resizePaginationLine:kt})},[ce,I,F,bt,$,D,Ie,Ve,Je,ft,dt,ue,x,C,E,v,kt,ie]),Oe=e=>{const t=Ae.current,r=e.target;if(!(!t||!r)&&(t.classList.remove("table-scroll-left","table-scroll-right","table-scroll-middle"),!(r.scrollWidth<=r.clientWidth))){if(r.scrollLeft===0){t.classList.add("table-scroll-left");return}if(r.scrollLeft+r.clientWidth===r.scrollWidth){t.classList.add("table-scroll-right");return}t.classList.add("table-scroll-middle")}},$r=()=>{Pe(),Oe({target:h.current}),fr(Q.UUID())},Pe=()=>{const e=vt(),t=10;if(n.current.virtual&&!n.current.expandable&&Number(n.current.sizeCom)>e+2*t){if(Tt(!0),!G.current||!h.current)return;const r=G.current.clientHeight-h.current.clientHeight;h.current.scrollTop>=r&&(h.current.scrollTop=r,Nt(r)),Nt(h.current.scrollTop);const a=h.current,i=Math.floor(a.scrollTop/J),l=i+e+t;wt([i,l])}else wt([0,0]),Tt(!1)},qr=()=>!he||!G.current||!h.current?null:w.jsxRuntimeExports.jsx(Ir.default,{style:{position:"absolute",top:0,right:0,zIndex:100},scrollTotalLength:G.current.clientHeight-h.current.clientHeight,scrollLength:ur,onScroll:e=>{h.current&&(h.current.scrollTop=e)}}),Ar=()=>{let e=`${m.$prefixCls}-table`;return q==="inside"&&(e+=` ${m.$prefixCls}-table-columns-inside`),$&&(e+=` ${m.$prefixCls}-table-pagination`),D&&(e+=` ${m.$prefixCls}-table-load-more`),W&&(e+=` ${m.$prefixCls}-table-fixed-table`),A&&(e+=` ${m.$prefixCls}-table-fixed-cloumn`),Te&&(e+=` ${m.$prefixCls}-table-drag-column`),V&&(e+=` ${m.$prefixCls}-table-drag-row`),L&&(e+=` ${m.$prefixCls}-table-check`),_&&(e+=` ${m.$prefixCls}-table-radio`),N&&(e+=` ${m.$prefixCls}-table-expandable`),x.length===0&&(e+=` ${m.$prefixCls}-table-no-data`),fe&&(e+=` ${m.$prefixCls}-table-load`),he&&(e+=` ${m.$prefixCls}-virtual`),Le&&(e+=` ${Le}`),e};return w.jsxRuntimeExports.jsxs("div",{className:Ar(),style:Pt,ref:Ae,children:[w.jsxRuntimeExports.jsx(Pr.TableContainer,{className:"table-contain",cRef:h,onScroll:e=>{Pe(),Oe(e)},children:w.jsxRuntimeExports.jsxs(Lr.TableElement,{cRef:G,fixedColumn:A,style:{minWidth:`${lr}px`},children:[Er,jr]})}),qr(),fe&&w.jsxRuntimeExports.jsx(_r.Loading,{}),Mr]})},Ur=Kr;exports.default=Ur;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/Table/interface.d.ts
CHANGED
|
@@ -77,6 +77,16 @@ export interface HeadDataProps<T = unknown> {
|
|
|
77
77
|
tipMaxWidth?: number | string;
|
|
78
78
|
/** 排序,请求才有 */
|
|
79
79
|
orderNum?: number;
|
|
80
|
+
/** 自定义内联样式 */
|
|
81
|
+
style?: React.CSSProperties;
|
|
82
|
+
/** @internal Table 内部计算字段:左固定列累计宽度(运行时挂载,业务侧请勿设置) */
|
|
83
|
+
paraui_left_width?: number;
|
|
84
|
+
/** @internal Table 内部计算字段:右固定列累计宽度(运行时挂载,业务侧请勿设置) */
|
|
85
|
+
paraui_right_width?: number;
|
|
86
|
+
/** @internal Table 内部计算字段:是否为左固定列最后一列(用于阴影) */
|
|
87
|
+
paraui_fixed_left_last?: boolean;
|
|
88
|
+
/** @internal Table 内部计算字段:是否为右固定列第一列(用于阴影) */
|
|
89
|
+
paraui_fixed_right_first?: boolean;
|
|
80
90
|
}
|
|
81
91
|
/** 远程数据的表头显示列 */
|
|
82
92
|
export interface HeadDataReqProps {
|
|
@@ -92,6 +102,18 @@ export interface HeadDataReqProps {
|
|
|
92
102
|
orderFlag?: boolean;
|
|
93
103
|
/** 表头是否显示该字段 */
|
|
94
104
|
selectedFlag?: boolean;
|
|
105
|
+
/** @internal Table 内部从 displayName/filterFlag 等映射后写入的字段(与 HeadDataProps 一致),业务侧无需设置 */
|
|
106
|
+
name?: string;
|
|
107
|
+
/** @internal */
|
|
108
|
+
label?: ReactNode;
|
|
109
|
+
/** @internal */
|
|
110
|
+
filter?: boolean;
|
|
111
|
+
/** @internal */
|
|
112
|
+
filterRadio?: boolean;
|
|
113
|
+
/** @internal */
|
|
114
|
+
sort?: boolean;
|
|
115
|
+
/** @internal */
|
|
116
|
+
selected?: boolean;
|
|
95
117
|
}
|
|
96
118
|
/** 固定列/拖拽 位置信息 */
|
|
97
119
|
export interface PosFixedProps {
|
|
@@ -302,6 +324,12 @@ export interface TableProps<T = unknown> extends TableHeadBodyPublicProps<T> {
|
|
|
302
324
|
* 内部刷新事件回调
|
|
303
325
|
* */
|
|
304
326
|
onRefreshCallback?: (type: 'empty' | 'refresh') => void;
|
|
327
|
+
/**
|
|
328
|
+
* 分页变化回调(DEFECT-003 修复)。本地 data 模式 + 远程 url 模式都触发;
|
|
329
|
+
* 用户切换页码或每页条数时调用——参数为新的 (page, size)。
|
|
330
|
+
* 未传时不影响任何现有行为;与远程模式 requestCallback 互不干扰,可同时使用。
|
|
331
|
+
* */
|
|
332
|
+
onPageChange?: (page: number, size: number) => void;
|
|
305
333
|
}
|
|
306
334
|
export interface ExpandableRowItem {
|
|
307
335
|
/** 当前嵌套行id */
|
|
@@ -323,6 +351,8 @@ export interface ReqProps {
|
|
|
323
351
|
ctx?: string;
|
|
324
352
|
/** 请求参数 */
|
|
325
353
|
data?: Record<string, unknown> | Anyjson;
|
|
354
|
+
/** 接收 cancel id 的回调(来自 @snack-kit/lib HTTP API;Table 内部赋值,业务侧无需设置) */
|
|
355
|
+
onCancelId?: (id: string) => void;
|
|
326
356
|
}
|
|
327
357
|
/** 显示列LocalStorage item */
|
|
328
358
|
export interface HeadLocalStorageItem {
|
package/lib/Table/tableHead.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("../_virtual/jsx-runtime.js"),a=require("react"),qe=require("./tableHeadElement/index.js"),Me=require("./trElement/index.js"),j=require("./thElement/index.js"),se=require("../Popover/index.js"),V=require("../Checkbox/index.js"),J=require("../Button/index.js"),F=require("../AutoTips/index.js"),z=require("@paraview/lib"),Fe=require("../node_modules/@para-ui/icons/ScreenF/index.js"),De=require("../node_modules/@para-ui/icons/UpTriangleF/index.js"),_e=require("../node_modules/@para-ui/icons/DownTriangleF/index.js"),Be=require("../node_modules/@para-ui/icons/Panel/index.js"),He=require("./lang/index.js"),Pe=require("../GlobalContext/useFormatMessage.js"),k=require("../GlobalContext/constant.js"),We=require("../Empty/index.js"),ne=re=>{const{headData:f=[],sortTable:S,filter:D,expandable:h,check:_,radio:N,onRequestSort:I,orderFieldArr:U=[],orderTypeArr:B=[],selectAll:H,selectStatus:y,align:$,showList:G=[],changeShowList:g,selectFilter:E,changeFilter:R,operate:c,showColumns:m,fixedTable:ie,fixedColumn:o,posFixed:d,beyondText:q,lineWidth:K,dragColumn:Q,dragRow:M,changeColumnWidth:P,headDataConfig:W,getPopupContainer:v,tipMaxWidth:p}=re,[X,O]=a.useState(!1),[Y,A]=a.useState(!1),[Z,ee]=a.useState(null),[w,le]=a.useState({}),[x,T]=a.useState({}),[u,C]=a.useState({}),L=Pe.default("Table",He.default);a.useEffect(()=>{y==="all"&&(A(!0),O(!1)),y==="half"&&(A(!1),O(!0)),y==="not"&&(A(!1),O(!1))},[y]),a.useEffect(()=>{if(f){const e={};for(let s=0,r=f.length;s<r;s++){const l=f[s];e[l.name]=l}le(e)}},[f]),a.useEffect(()=>{E&&C(z.DeepClone(E))},[E]);const ae=(e,s)=>r=>{S&&s.name&&s.sort!==!1&&I&&I(r,e)},oe=(e,s)=>{H&&H(e,s)},ce=e=>{ee(e.currentTarget)},de=e=>{e||ee(null)},xe=e=>()=>{if(e.disabledSelection)return;const s=e.name;if(w[s]){delete w[s];const l=Object.keys(w),t=[];for(let i=0,b=l.length;i<b;i++){const $e=l[i];t.push(w[$e])}g&&g(t,!1,e)}else f.push(e),g&&g(f,!1,e)},ue=()=>{g&&g(f,!0)},fe=e=>s=>{T(e),C({...E})},me=e=>{e||(T({}),C({...E}))},he=e=>()=>{const s=x.name;let r=z.DeepClone(u[s]||[]);const l=r.indexOf(e.value);if(l!==-1?r.splice(l,1):r.push(e.value),x.filterRadio){const i=r.indexOf(e.value);i!==-1&&(r=[r[i]])}u[s]=r,C({...u})},te=e=>()=>{if(e==="confirm")R&&R({...u}),T({});else{const s=z.DeepClone(u);delete s[x.name],C(s),R&&R({...s}),T({})}},pe=(e={})=>{R&&R({...e}),T({})},be=e=>{let s="table-header-box";if(S&&e.name&&e.sort!==!1){s+=" table-header-box-sort";const r=U.indexOf(e.name);r!==-1&&(B[r]==="asc"&&(s+=" table-header-box-sort-asc"),B[r]==="desc"&&(s+=" table-header-box-sort-desc"))}return D&&e.name&&e.filter&&(s+=" table-header-box-filter"),s},je=a.useMemo(()=>{if(_){const e=()=>{let s="table-checkbox table-head-btn";return o&&(s+=" table-fixed-dom-left",!d?.leftBol&&!N&&!h&&(s+=" table-fixed-dom-left-last")),s};return n.jsxRuntimeExports.jsx(j.ThElement,{align:"center",className:e(),draggable:!1,children:n.jsxRuntimeExports.jsx("div",{className:"table-header-box",children:n.jsxRuntimeExports.jsx(V.Checkbox,{indeterminate:X,checked:Y,onChange:oe})})})}},[_,X,Y,H,d,N,h,o]),ge=a.useMemo(()=>{if(N){const e=()=>{let s="table-radio table-head-btn";return o&&(s+=" table-fixed-dom-left",!d?.leftBol&&!h&&(s+=" table-fixed-dom-left-last")),s};return n.jsxRuntimeExports.jsx(j.ThElement,{align:"center",className:e(),draggable:!1,children:n.jsxRuntimeExports.jsx("div",{className:"table-header-box"})})}},[N,d,h,o]),Ee=a.useMemo(()=>{if(h){const e=()=>{let s="table-expandable table-head-btn";return o&&(s+=" table-fixed-dom-left",d?.leftBol||(s+=" table-fixed-dom-left-last")),s};return n.jsxRuntimeExports.jsx(j.ThElement,{align:"center",className:e(),draggable:!1,children:n.jsxRuntimeExports.jsx("div",{className:"table-header-box"})})}},[h,d,o]),Re=()=>{const e=x.name;if(!e)return;const s=u[e]||[];if(x.filterRender)return x.filterRender({filterValue:s,selectFilter:u,headData:x,setFilter:pe});const r=x.enums||[];let l="filter-select";return r.length===0&&(l+=" filter-select-none"),n.jsxRuntimeExports.jsx("div",{className:l,children:r.length===0?n.jsxRuntimeExports.jsx(We.default,{size:"small",imageStyle:{width:"80px",height:"80px"}}):n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx("div",{className:"filter-select-box",children:r.map((t,i)=>{const b=s.indexOf(t.value)!==-1;return n.jsxRuntimeExports.jsxs("div",{onClick:he(t),className:b?"filter-select-item filter-select-item-select":"filter-select-item",children:[n.jsxRuntimeExports.jsx(V.Checkbox,{checked:b}),n.jsxRuntimeExports.jsx("span",{children:n.jsxRuntimeExports.jsx(F.default,{tipMaxWidth:p,children:t.displayName})})]},i)})}),n.jsxRuntimeExports.jsxs("div",{className:"filter-select-footer",children:[n.jsxRuntimeExports.jsx(J.Button,{onClick:te("reset"),variant:"text",children:L({id:"empty"})}),n.jsxRuntimeExports.jsx(J.Button,{onClick:te("confirm"),variant:"text",children:L({id:"determine"})})]})]})})},ve=e=>s=>{P&&P(e,s)},we=e=>{let s=e.width||"";const r=e.name||"",l=W[r]&&W[r].width;return l&&(s=`${l}px`),s},Ne=a.useMemo(()=>{const e=t=>{let i="table-header-filter";return x.name===t.name&&(i+=" table-header-filter-show"),t.name&&u[t.name]&&u[t.name].length>0&&(i+=" table-header-filter-select"),i},s=t=>{let i="";return t.className&&(i+=t.className),o&&t.fixed&&(i+=` table-fixed-dom-${t.fixed}`,t.fixed==="left"&&t.paraui_fixed_left_last&&(i+=" table-fixed-dom-left-last"),t.fixed==="right"&&t.paraui_fixed_right_first&&(i+=" table-fixed-dom-right-first")),i},r=t=>{const i={width:we(t)};return o&&t.fixed&&t.width&&(t.fixed==="left"&&(i.left=`${t.paraui_left_width}px`),t.fixed==="right"&&(i.right=`${t.paraui_right_width}px`)),{...i,...t.style}},l=t=>t.name==="table-serial-number"?!1:!!(Q&&t.drag!==!1);return f.map((t,i)=>{let b=`${k.$prefixCls}-filter-popover ${k.$prefixCls}-scrollbar-small`;return t.filterRender||(b+=` ${k.$prefixCls}-filter-popover-default`),n.jsxRuntimeExports.jsx(j.ThElement,{className:s(t),align:t.align||$,style:r(t),draggable:l(t),headCell:t,onDragDown:ve(t),lineWidth:K,children:n.jsxRuntimeExports.jsx(se.Popover,{placement:"bottom-start",visible:t.name!==void 0&&x.name===t.name,content:t.name!==void 0&&x.name===t.name&&Re(),onVisibleChange:me,overlayClassName:b,getPopupContainer:v||(()=>document.body),maxWidth:t.filterMaxWidth,children:n.jsxRuntimeExports.jsxs("div",{className:be(t),children:[n.jsxRuntimeExports.jsx("div",{className:"table-header-title",children:n.jsxRuntimeExports.jsx("span",{className:"table-header-title-label",children:n.jsxRuntimeExports.jsx(F.default,{beyondText:t.beyondText===void 0?q:t.beyondText,tipMaxWidth:t.tipMaxWidth!==void 0?t.tipMaxWidth:p,children:t.label})})}),D&&t.name&&t.filter&&n.jsxRuntimeExports.jsx("div",{className:e(t),onClick:fe(t),children:n.jsxRuntimeExports.jsx("span",{children:n.jsxRuntimeExports.jsx(Fe.ScreenF,{})})}),S&&t.name&&t.sort!==!1&&n.jsxRuntimeExports.jsx("div",{className:"table-sort-svg",children:n.jsxRuntimeExports.jsxs("span",{onClick:ae(t.name,t),children:[n.jsxRuntimeExports.jsx(De.UpTriangleF,{className:"up-svg"}),n.jsxRuntimeExports.jsx(_e.DownTriangleF,{className:"down-svg"})]})})]})})},t.name||i)})},[f,S,D,U,B,$,x,u,q,E,o,K,Q,P,W,v,p]),Te=a.useMemo(()=>{if(c){const e=()=>{let r="table-operate";return c.operateBtnRender&&(r+=" table-operate-small"),m===!1&&(r+=" table-operate-not-columns"),M&&(r+=" table-operate-drag-row"),o&&(r+=" table-fixed-dom-right",d?.rightBol||(r+=" table-fixed-dom-right-first")),r},s=()=>{const r={width:c.width};return o&&(r.right=m==="inside"?"53px":"0px"),{...r,...c.style}};return n.jsxRuntimeExports.jsx(j.ThElement,{align:c.align||$,style:s(),className:e(),draggable:!1,children:n.jsxRuntimeExports.jsx("div",{className:"table-header-box",children:n.jsxRuntimeExports.jsx("div",{className:"table-header-title",children:n.jsxRuntimeExports.jsx("span",{className:"table-header-title-label",children:n.jsxRuntimeExports.jsx(F.default,{beyondText:c.beyondText===void 0?q:c.beyondText,tipMaxWidth:p,children:c.label})})})})})}},[c,$,d,m,d,q,o,p,M]),Ce=()=>n.jsxRuntimeExports.jsxs("div",{className:"show-colums-select",children:[n.jsxRuntimeExports.jsx("div",{className:"show-colums-select-box",children:G.map((e,s)=>{const r=!!w[e.name];let l="show-colums-select-item";return r&&(l+=" show-colums-select-item-select"),e.disabledSelection&&(l+=" show-colums-select-item-disabled"),n.jsxRuntimeExports.jsxs("div",{onClick:xe(e),className:l,children:[n.jsxRuntimeExports.jsx(V.Checkbox,{checked:r,disabled:e.disabledSelection}),n.jsxRuntimeExports.jsx("span",{children:n.jsxRuntimeExports.jsx(F.default,{tipMaxWidth:p,children:e.label})})]},s)})}),n.jsxRuntimeExports.jsx("div",{className:"show-colums-select-footer",children:n.jsxRuntimeExports.jsx(J.Button,{variant:"text",onClick:ue,children:L({id:"restoreDefault"})})})]}),ke=a.useMemo(()=>{const e=()=>{let s="show-colums table-fixed-dom-right";return(!o||!c&&!d?.rightBol)&&(s+=" table-fixed-dom-right-first"),s};return m==="inside"&&n.jsxRuntimeExports.jsx(se.Popover,{placement:"bottom-end",visible:!!Z,content:Ce(),onVisibleChange:de,overlayClassName:`${k.$prefixCls}-table-show-colums-popover ${k.$prefixCls}-scrollbar-small`,getPopupContainer:v||(()=>document.body),children:n.jsxRuntimeExports.jsx(j.ThElement,{align:"center",className:e(),onClick:ce,draggable:!1,children:n.jsxRuntimeExports.jsx("div",{className:"table-header-box",children:n.jsxRuntimeExports.jsx(Be.Panel,{})})})})},[m,d,c,Z,G,w,v,p]),Se=a.useMemo(()=>{if(!M||c||m==="inside")return null;const e=()=>{let s="drag-row table-fixed-dom-right";return(!o||!c&&!d?.rightBol)&&(s+=" table-fixed-dom-right-first"),s};return n.jsxRuntimeExports.jsx(j.ThElement,{align:"center",className:e(),draggable:!1})},[c,m,o,d,M]),ye=()=>{let e="table-head";return m==="inside"&&(e+=" table-head-inside"),ie||(e+=" table-head-scroll"),!_&&!N&&!h&&(e+=" table-head-no-btn"),e};return n.jsxRuntimeExports.jsx(qe.TableHeadElement,{className:ye(),children:n.jsxRuntimeExports.jsxs(Me.TrElement,{children:[je,ge,Ee,Ne,Te,ke,Se]})})};exports.TableHead=ne;exports.default=ne;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("../_virtual/jsx-runtime.js"),a=require("react"),Me=require("./tableHeadElement/index.js"),qe=require("./trElement/index.js"),j=require("./thElement/index.js"),se=require("../Popover/index.js"),V=require("../Checkbox/index.js"),J=require("../Button/index.js"),F=require("../AutoTips/index.js"),z=require("@snack-kit/lib"),Fe=require("../node_modules/@para-ui/icons/ScreenF/index.js"),De=require("../node_modules/@para-ui/icons/UpTriangleF/index.js"),_e=require("../node_modules/@para-ui/icons/DownTriangleF/index.js"),Be=require("../node_modules/@para-ui/icons/Panel/index.js"),He=require("./lang/index.js"),Pe=require("../GlobalContext/useFormatMessage.js"),k=require("../GlobalContext/constant.js"),We=require("../Empty/index.js"),ne=re=>{const{headData:f=[],sortTable:S,filter:D,expandable:h,check:_,radio:N,onRequestSort:I,orderFieldArr:U=[],orderTypeArr:B=[],selectAll:H,selectStatus:y,align:$,showList:G=[],changeShowList:g,selectFilter:E,changeFilter:R,operate:c,showColumns:m,fixedTable:ie,fixedColumn:o,posFixed:d,beyondText:M,lineWidth:K,dragColumn:Q,dragRow:q,changeColumnWidth:P,headDataConfig:W,getPopupContainer:v,tipMaxWidth:b}=re,[X,O]=a.useState(!1),[Y,A]=a.useState(!1),[Z,ee]=a.useState(null),[w,le]=a.useState({}),[x,T]=a.useState({}),[u,C]=a.useState({}),L=Pe.default("Table",He.default);a.useEffect(()=>{y==="all"&&(A(!0),O(!1)),y==="half"&&(A(!1),O(!0)),y==="not"&&(A(!1),O(!1))},[y]),a.useEffect(()=>{if(f){const e={};for(let s=0,r=f.length;s<r;s++){const l=f[s];e[l.name]=l}le(e)}},[f]),a.useEffect(()=>{E&&C(z.DeepClone(E))},[E]);const ae=(e,s)=>r=>{S&&s.name&&s.sort!==!1&&I&&I(r,e)},oe=(e,s)=>{H&&H(e,s)},ce=e=>{ee(e.currentTarget)},de=e=>{e||ee(null)},xe=e=>()=>{if(e.disabledSelection)return;const s=e.name;if(w[s]){delete w[s];const l=Object.keys(w),t=[];for(let i=0,p=l.length;i<p;i++){const $e=l[i];t.push(w[$e])}g&&g(t,!1,e)}else f.push(e),g&&g(f,!1,e)},ue=()=>{g&&g(f,!0)},fe=e=>s=>{T(e),C({...E})},me=e=>{e||(T({}),C({...E}))},he=e=>()=>{const s=x.name;let r=z.DeepClone(u[s]||[]);const l=r.indexOf(e.value);if(l!==-1?r.splice(l,1):r.push(e.value),x.filterRadio){const i=r.indexOf(e.value);i!==-1&&(r=[r[i]])}u[s]=r,C({...u})},te=e=>()=>{if(e==="confirm")R&&R({...u}),T({});else{const s=z.DeepClone(u);delete s[x.name],C(s),R&&R({...s}),T({})}},be=(e={})=>{R&&R({...e}),T({})},pe=e=>{let s="table-header-box";if(S&&e.name&&e.sort!==!1){s+=" table-header-box-sort";const r=U.indexOf(e.name);r!==-1&&(B[r]==="asc"&&(s+=" table-header-box-sort-asc"),B[r]==="desc"&&(s+=" table-header-box-sort-desc"))}return D&&e.name&&e.filter&&(s+=" table-header-box-filter"),s},je=a.useMemo(()=>{if(_){const e=()=>{let s="table-checkbox table-head-btn";return o&&(s+=" table-fixed-dom-left",!d?.leftBol&&!N&&!h&&(s+=" table-fixed-dom-left-last")),s};return n.jsxRuntimeExports.jsx(j.ThElement,{align:"center",className:e(),draggable:!1,children:n.jsxRuntimeExports.jsx("div",{className:"table-header-box",children:n.jsxRuntimeExports.jsx(V.Checkbox,{indeterminate:X,checked:Y,onChange:oe})})})}},[_,X,Y,H,d,N,h,o]),ge=a.useMemo(()=>{if(N){const e=()=>{let s="table-radio table-head-btn";return o&&(s+=" table-fixed-dom-left",!d?.leftBol&&!h&&(s+=" table-fixed-dom-left-last")),s};return n.jsxRuntimeExports.jsx(j.ThElement,{align:"center",className:e(),draggable:!1,children:n.jsxRuntimeExports.jsx("div",{className:"table-header-box"})})}},[N,d,h,o]),Ee=a.useMemo(()=>{if(h){const e=()=>{let s="table-expandable table-head-btn";return o&&(s+=" table-fixed-dom-left",d?.leftBol||(s+=" table-fixed-dom-left-last")),s};return n.jsxRuntimeExports.jsx(j.ThElement,{align:"center",className:e(),draggable:!1,children:n.jsxRuntimeExports.jsx("div",{className:"table-header-box"})})}},[h,d,o]),Re=()=>{const e=x.name;if(!e)return;const s=u[e]||[];if(x.filterRender)return x.filterRender({filterValue:s,selectFilter:u,headData:x,setFilter:be});const r=x.enums||[];let l="filter-select";return r.length===0&&(l+=" filter-select-none"),n.jsxRuntimeExports.jsx("div",{className:l,children:r.length===0?n.jsxRuntimeExports.jsx(We.default,{size:"small",imageStyle:{width:"80px",height:"80px"}}):n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx("div",{className:"filter-select-box",children:r.map((t,i)=>{const p=s.indexOf(t.value)!==-1;return n.jsxRuntimeExports.jsxs("div",{onClick:he(t),className:p?"filter-select-item filter-select-item-select":"filter-select-item",children:[n.jsxRuntimeExports.jsx(V.Checkbox,{checked:p}),n.jsxRuntimeExports.jsx("span",{children:n.jsxRuntimeExports.jsx(F.default,{tipMaxWidth:b,children:t.displayName})})]},i)})}),n.jsxRuntimeExports.jsxs("div",{className:"filter-select-footer",children:[n.jsxRuntimeExports.jsx(J.Button,{onClick:te("reset"),variant:"text",children:L({id:"empty"})}),n.jsxRuntimeExports.jsx(J.Button,{onClick:te("confirm"),variant:"text",children:L({id:"determine"})})]})]})})},ve=e=>s=>{P&&P(e,s)},we=e=>{let s=e.width||"";const r=e.name||"",l=W[r]&&W[r].width;return l&&(s=`${l}px`),s},Ne=a.useMemo(()=>{const e=t=>{let i="table-header-filter";return x.name===t.name&&(i+=" table-header-filter-show"),t.name&&u[t.name]&&u[t.name].length>0&&(i+=" table-header-filter-select"),i},s=t=>{let i="";return t.className&&(i+=t.className),o&&t.fixed&&(i+=` table-fixed-dom-${t.fixed}`,t.fixed==="left"&&t.paraui_fixed_left_last&&(i+=" table-fixed-dom-left-last"),t.fixed==="right"&&t.paraui_fixed_right_first&&(i+=" table-fixed-dom-right-first")),i},r=t=>{const i={width:we(t)};return o&&t.fixed&&t.width&&(t.fixed==="left"&&(i.left=`${t.paraui_left_width}px`),t.fixed==="right"&&(i.right=`${t.paraui_right_width}px`)),{...i,...t.style}},l=t=>t.name==="table-serial-number"?!1:!!(Q&&t.drag!==!1);return f.map((t,i)=>{let p=`${k.$prefixCls}-filter-popover ${k.$prefixCls}-scrollbar-small`;return t.filterRender||(p+=` ${k.$prefixCls}-filter-popover-default`),n.jsxRuntimeExports.jsx(j.ThElement,{className:s(t),align:t.align||$,style:r(t),draggable:l(t),headCell:t,onDragDown:ve(t),lineWidth:K,children:n.jsxRuntimeExports.jsx(se.Popover,{placement:"bottom-start",visible:t.name!==void 0&&x.name===t.name,content:t.name!==void 0&&x.name===t.name&&Re(),onVisibleChange:me,overlayClassName:p,getPopupContainer:v||(()=>document.body),maxWidth:t.filterMaxWidth,children:n.jsxRuntimeExports.jsxs("div",{className:pe(t),children:[n.jsxRuntimeExports.jsx("div",{className:"table-header-title",children:n.jsxRuntimeExports.jsx("span",{className:"table-header-title-label",children:n.jsxRuntimeExports.jsx(F.default,{beyondText:t.beyondText===void 0?M:t.beyondText,tipMaxWidth:t.tipMaxWidth!==void 0?t.tipMaxWidth:b,children:t.label})})}),D&&t.name&&t.filter&&n.jsxRuntimeExports.jsx("div",{className:e(t),onClick:fe(t),children:n.jsxRuntimeExports.jsx("span",{children:n.jsxRuntimeExports.jsx(Fe.ScreenF,{})})}),S&&t.name&&t.sort!==!1&&n.jsxRuntimeExports.jsx("div",{className:"table-sort-svg",children:n.jsxRuntimeExports.jsxs("span",{onClick:ae(t.name,t),children:[n.jsxRuntimeExports.jsx(De.UpTriangleF,{className:"up-svg"}),n.jsxRuntimeExports.jsx(_e.DownTriangleF,{className:"down-svg"})]})})]})})},t.name||i)})},[f,S,D,U,B,$,x,u,M,E,o,K,Q,P,W,v,b]),Te=a.useMemo(()=>{if(c){const e=()=>{let r="table-operate";return c.operateBtnRender&&(r+=" table-operate-small"),m===!1&&(r+=" table-operate-not-columns"),q&&(r+=" table-operate-drag-row"),o&&(r+=" table-fixed-dom-right",d?.rightBol||(r+=" table-fixed-dom-right-first")),r},s=()=>{const r={width:c.width};return o&&(r.right=m==="inside"?"53px":"0px"),{...r,...c.style}};return n.jsxRuntimeExports.jsx(j.ThElement,{align:c.align||$,style:s(),className:e(),draggable:!1,children:n.jsxRuntimeExports.jsx("div",{className:"table-header-box",children:n.jsxRuntimeExports.jsx("div",{className:"table-header-title",children:n.jsxRuntimeExports.jsx("span",{className:"table-header-title-label",children:n.jsxRuntimeExports.jsx(F.default,{beyondText:c.beyondText===void 0?M:c.beyondText,tipMaxWidth:b,children:c.label})})})})})}},[c,$,d,m,d,M,o,b,q]),Ce=()=>n.jsxRuntimeExports.jsxs("div",{className:"show-colums-select",children:[n.jsxRuntimeExports.jsx("div",{className:"show-colums-select-box",children:G.map((e,s)=>{const r=!!w[e.name];let l="show-colums-select-item";return r&&(l+=" show-colums-select-item-select"),e.disabledSelection&&(l+=" show-colums-select-item-disabled"),n.jsxRuntimeExports.jsxs("div",{onClick:xe(e),className:l,children:[n.jsxRuntimeExports.jsx(V.Checkbox,{checked:r,disabled:e.disabledSelection}),n.jsxRuntimeExports.jsx("span",{children:n.jsxRuntimeExports.jsx(F.default,{tipMaxWidth:b,children:e.label})})]},s)})}),n.jsxRuntimeExports.jsx("div",{className:"show-colums-select-footer",children:n.jsxRuntimeExports.jsx(J.Button,{variant:"text",onClick:ue,children:L({id:"restoreDefault"})})})]}),ke=a.useMemo(()=>{const e=()=>{let s="show-colums table-fixed-dom-right";return(!o||!c&&!d?.rightBol)&&(s+=" table-fixed-dom-right-first"),s};return m==="inside"&&n.jsxRuntimeExports.jsx(se.Popover,{placement:"bottom-end",visible:!!Z,content:Ce(),onVisibleChange:de,overlayClassName:`${k.$prefixCls}-table-show-colums-popover ${k.$prefixCls}-scrollbar-small`,getPopupContainer:v||(()=>document.body),children:n.jsxRuntimeExports.jsx(j.ThElement,{align:"center",className:e(),onClick:ce,draggable:!1,children:n.jsxRuntimeExports.jsx("div",{className:"table-header-box",children:n.jsxRuntimeExports.jsx(Be.Panel,{})})})})},[m,d,c,Z,G,w,v,b]),Se=a.useMemo(()=>{if(!q||c||m==="inside")return null;const e=()=>{let s="drag-row table-fixed-dom-right";return(!o||!c&&!d?.rightBol)&&(s+=" table-fixed-dom-right-first"),s};return n.jsxRuntimeExports.jsx(j.ThElement,{align:"center",className:e(),draggable:!1})},[c,m,o,d,q]),ye=()=>{let e="table-head";return m==="inside"&&(e+=" table-head-inside"),ie||(e+=" table-head-scroll"),!_&&!N&&!h&&(e+=" table-head-no-btn"),e};return n.jsxRuntimeExports.jsx(Me.TableHeadElement,{className:ye(),children:n.jsxRuntimeExports.jsxs(qe.TrElement,{children:[je,ge,Ee,Ne,Te,ke,Se]})})};exports.TableHead=ne;exports.default=ne;
|
|
2
2
|
//# sourceMappingURL=tableHead.js.map
|
package/lib/Table/util.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { HeadLocalStorageItem, ReqProps } from './interface';
|
|
|
3
3
|
* 发送请求
|
|
4
4
|
* @param obj {ReqProps} 请求信息
|
|
5
5
|
*/
|
|
6
|
-
export declare const requestFunc: (obj: ReqProps) => Promise<import('@
|
|
6
|
+
export declare const requestFunc: (obj: ReqProps) => Promise<import('@snack-kit/lib').HttpResult<unknown>> | undefined;
|
|
7
7
|
/**
|
|
8
8
|
* 处理get请求地址
|
|
9
9
|
* @param obj {ReqProps} 请求信息
|
package/lib/Table/util.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("@
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("@snack-kit/lib"),g=n=>{const{method:t,url:e,ctx:o,data:s,...a}=n;if(t==="Get")return m.Get(e,{ctx:o,...a});if(t==="Post")return m.Post(e,s,{ctx:o,...a})},S=n=>{let t=n.url;const e=n.data||{},o=Object.keys(e),s=[];for(let i=0,d=o.length;i<d;i++){const l=o[i];let r=e[l];typeof r=="object"?r=encodeURIComponent(JSON.stringify(r)):r=encodeURIComponent(r),s.push(`${l}=${r}`)}const a=s.join("&"),c=t.indexOf("?");return c!==-1?t+=(c===t.length-1?"":"&")+a:t+=`?${a}`,t},u=n=>{if(typeof n=="number")return n;const t=n.replace(/[^0-9$]/gi,"");return Number(t)},h=(n,t)=>{const e=window.localStorage.getItem("_paraui_table_head")||"{}",o=JSON.parse(e),s=Object.keys(o);for(let c=0,i=s.length;c<i;c++){const d=s[c],l=o[c];if(!l)continue;const r=new Date().getTime();l.storageTime+l.validity<r&&delete o[d]}const a=o[n];return a&&(a.storageTime=new Date().getTime(),a.validity=t*(3600*24)),a||{}},p=(n,t)=>{const e=window.localStorage.getItem("_paraui_table_head")||"{}",o=JSON.parse(e);o[n]=t,window.localStorage.setItem("_paraui_table_head",JSON.stringify(o))},f=(n,t)=>{let e=n;const o=e.matches||e.webkitMatchesSelector||e.mozMatchesSelector||e.msMatchesSelector;for(;e&&!o.call(e,t);)e=e.parentElement;return e};exports.closest=f;exports.getLocalStorageSelectHead=h;exports.getStringInNumber=u;exports.handGetReqParams=S;exports.requestFunc=g;exports.setLocalStorageSelectHead=p;
|
|
2
2
|
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Tabs",
|
|
3
|
+
"category": "Navigation",
|
|
4
|
+
"description": "选项卡切换组件。**所有 mode 都渲染 data[].content**(src/Tabs/index.tsx:220 把 content 渲染到 TabPane 内部)——不存在『line/track 只渲染 tab 头』的差异,请放心把面板体放进 data[].content。",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"内容切换",
|
|
8
|
+
"视图分组",
|
|
9
|
+
"平级导航"
|
|
10
|
+
],
|
|
11
|
+
"useCases": [
|
|
12
|
+
"详情页多维度展示",
|
|
13
|
+
"配置面板",
|
|
14
|
+
"同级功能切换"
|
|
15
|
+
],
|
|
16
|
+
"riskLevel": "normal"
|
|
17
|
+
},
|
|
18
|
+
"variants": {
|
|
19
|
+
"line": {
|
|
20
|
+
"meaning": "线条型 (默认) — 底部下划线指示当前激活"
|
|
21
|
+
},
|
|
22
|
+
"card": {
|
|
23
|
+
"meaning": "卡片型 — tab 头本身像独立卡片"
|
|
24
|
+
},
|
|
25
|
+
"editable-card": {
|
|
26
|
+
"meaning": "可编辑卡片型 — 自带新增 + 关闭按钮,与 editable=true 配套"
|
|
27
|
+
},
|
|
28
|
+
"track": {
|
|
29
|
+
"meaning": "轨道滑块型 — segmented control 风格"
|
|
30
|
+
},
|
|
31
|
+
"card-container": {
|
|
32
|
+
"meaning": "页签容器 — 整个面板被卡片包裹"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"states": [
|
|
36
|
+
"active",
|
|
37
|
+
"disabled"
|
|
38
|
+
],
|
|
39
|
+
"idealProps": {
|
|
40
|
+
"data": {
|
|
41
|
+
"type": "TabProps<K>[]",
|
|
42
|
+
"itemSchema": {
|
|
43
|
+
"label": { "type": "ReactNode", "required": true, "description": "tab 头文案" },
|
|
44
|
+
"content": { "type": "ReactNode", "description": "面板内容,所有 mode 都渲染" },
|
|
45
|
+
"value": { "type": "K extends React.Key", "required": true, "description": "唯一标识,与 Tabs value/onChange 对应" },
|
|
46
|
+
"disabled": { "type": "boolean", "description": "是否禁用该 tab" },
|
|
47
|
+
"closable": { "type": "boolean", "description": "是否显示关闭按钮(editable 模式)" },
|
|
48
|
+
"disabledTooltip": { "type": "TooltipProps", "description": "hover 禁用 tab 时显示的 tooltip 配置" },
|
|
49
|
+
"showHelp": { "type": "boolean", "description": "是否显示帮助图标" },
|
|
50
|
+
"helpProps": { "type": "HelpProps", "description": "帮助图标配置" }
|
|
51
|
+
},
|
|
52
|
+
"description": "标签页配置数组。**每项 TabProps 完整字段**:label(tab 头文案)/ content(**面板内容,所有 mode 都渲染**)/ value(唯一 key,类型 K)/ disabled / closable / disabledTooltip(TooltipProps,hover 禁用 tab 时显示)/ showHelp / helpProps。content 不要外部用 `{activeKey === 'x' && <Body />}` 二次条件渲染——直接放在 data[].content 里"
|
|
53
|
+
},
|
|
54
|
+
"value": {
|
|
55
|
+
"type": "K extends React.Key",
|
|
56
|
+
"description": "当前激活的 tab value(受控)。Tabs 是泛型组件 `Tabs<K>`:默认 K = string,需传 string value 时业务端可写 `<Tabs<string>>`;data[].value 与 value 同类型"
|
|
57
|
+
},
|
|
58
|
+
"mode": {
|
|
59
|
+
"type": "enum",
|
|
60
|
+
"values": [
|
|
61
|
+
"line",
|
|
62
|
+
"card",
|
|
63
|
+
"editable-card",
|
|
64
|
+
"track",
|
|
65
|
+
"card-container"
|
|
66
|
+
],
|
|
67
|
+
"default": "line",
|
|
68
|
+
"description": "外观模式 5 种取值(src/Tabs/index.tsx:19 TabsType);`type` prop 是 mode 的别名(src 优先 type ?? mode),二选一传"
|
|
69
|
+
},
|
|
70
|
+
"type": {
|
|
71
|
+
"type": "enum",
|
|
72
|
+
"values": [
|
|
73
|
+
"line",
|
|
74
|
+
"card",
|
|
75
|
+
"editable-card",
|
|
76
|
+
"track",
|
|
77
|
+
"card-container"
|
|
78
|
+
],
|
|
79
|
+
"description": "mode 的别名;与 mode 二选一即可"
|
|
80
|
+
},
|
|
81
|
+
"size": {
|
|
82
|
+
"type": "'small' | 'medium' | 'large'",
|
|
83
|
+
"values": ["small", "medium", "large"],
|
|
84
|
+
"description": "尺寸"
|
|
85
|
+
},
|
|
86
|
+
"onChange": {
|
|
87
|
+
"type": "function",
|
|
88
|
+
"signature": "(activeKey: K, item?: TabProps<K>) => void",
|
|
89
|
+
"description": "切换面板的回调。**真实 2 参(activeKey + item)**——首参名 activeKey 不是 value;不带 event 第三参(区别于 antd)。K 默认 string;通过 Tabs<K> 收紧"
|
|
90
|
+
},
|
|
91
|
+
"onEdit": {
|
|
92
|
+
"type": "function",
|
|
93
|
+
"signature": "(item: TabProps<K>, event?: React.MouseEvent | React.KeyboardEvent | string | React.Key, action?: 'add' | 'remove') => void",
|
|
94
|
+
"description": "新增/删除面板的回调(3 参:item / event / action)。配合 editable / showAdd / closable"
|
|
95
|
+
},
|
|
96
|
+
"onAdd": {
|
|
97
|
+
"type": "function",
|
|
98
|
+
"signature": "(event?: React.MouseEvent) => void",
|
|
99
|
+
"description": "新增按钮回调;showAdd 为 true 或 editable 模式下生效"
|
|
100
|
+
},
|
|
101
|
+
"centered": {
|
|
102
|
+
"type": "boolean",
|
|
103
|
+
"default": false,
|
|
104
|
+
"description": "标签居中展示"
|
|
105
|
+
},
|
|
106
|
+
"tabPosition": {
|
|
107
|
+
"type": "'top' | 'right' | 'bottom' | 'left'",
|
|
108
|
+
"values": ["top", "right", "bottom", "left"],
|
|
109
|
+
"default": "'top'",
|
|
110
|
+
"description": "页签位置"
|
|
111
|
+
},
|
|
112
|
+
"editable": {
|
|
113
|
+
"type": "boolean",
|
|
114
|
+
"default": false,
|
|
115
|
+
"description": "可编辑标签(关闭 + 新增);通常与 mode='editable-card' 搭配"
|
|
116
|
+
},
|
|
117
|
+
"showAdd": {
|
|
118
|
+
"type": "boolean",
|
|
119
|
+
"default": false,
|
|
120
|
+
"description": "显示新增按钮"
|
|
121
|
+
},
|
|
122
|
+
"hideAdd": {
|
|
123
|
+
"type": "boolean",
|
|
124
|
+
"default": false,
|
|
125
|
+
"description": "在 editable 模式下隐藏新增按钮"
|
|
126
|
+
},
|
|
127
|
+
"addIcon": {
|
|
128
|
+
"type": "ReactNode",
|
|
129
|
+
"description": "自定义新增按钮图标(替换默认 + 图标);showAdd 或 editable 时生效"
|
|
130
|
+
},
|
|
131
|
+
"radio": {
|
|
132
|
+
"type": "boolean",
|
|
133
|
+
"default": false,
|
|
134
|
+
"description": "在每个 tab 头前加 radio 单选框(与 onRadioChange 配套)"
|
|
135
|
+
},
|
|
136
|
+
"showPopConfirm": {
|
|
137
|
+
"type": "boolean",
|
|
138
|
+
"default": false,
|
|
139
|
+
"description": "切换/删除 tab 前弹出确认框(src/Tabs/index.tsx:56 实证)。⚠️ **`editable=true` 或 `mode='editable-card'` 时有效**(两者满足其一即可触发可编辑态,src:133 `inType === 'editable-card' || editable` 实证)。配合 `popConfirmProps` 自定义确认框内容"
|
|
140
|
+
},
|
|
141
|
+
"popConfirmProps": {
|
|
142
|
+
"type": "PopConfirmProps",
|
|
143
|
+
"description": "控制切换确认弹窗的内容(src/Tabs/index.tsx:58 实证,类型 PopConfirmProps)。在 `showPopConfirm=true` 时生效,可配置 title / description / okText / cancelText 等 PopConfirm 支持的所有属性"
|
|
144
|
+
},
|
|
145
|
+
"onRadioChange": {
|
|
146
|
+
"type": "function",
|
|
147
|
+
"signature": "(radioValue: K) => void",
|
|
148
|
+
"description": "radio 单选框模式下切换选中项的回调(src/Tabs/index.tsx:72 实证签名)。⚠️ **需配合 `mode='card-container'` + `radio=true`**——Radio 组件仅在 card-container 模式下渲染(src:178 实证),其他 mode 下设置 radio=true 无效。K 类型与 Tabs<K> 泛型一致(默认 string)。**与 `onChange` 区分**:onChange 是 tab 切换回调,onRadioChange 是独立的 radio 选中回调"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"do": [
|
|
152
|
+
"把面板内容放在 data[].content——所有 mode 都会渲染 content,不要外部条件渲染",
|
|
153
|
+
"卡片型外观请直接传 mode='card'(不要退而求其次选 mode='card-container'——后者是『整个面板卡片包裹』,不是『tab 头卡片』)",
|
|
154
|
+
"可编辑标签使用 mode='editable-card' + editable={true};自定义新增图标用 addIcon prop",
|
|
155
|
+
"禁用 tab 的 hover 提示用 TabProps.disabledTooltip(不要给 label 包 <span title>)",
|
|
156
|
+
"受控用 value + onChange;onChange 第一参数是 activeKey,第二参数是 item,无 event 参数"
|
|
157
|
+
],
|
|
158
|
+
"dont": [
|
|
159
|
+
"在 TabPane 中渲染过重的非首屏内容(应利用懒加载机制)",
|
|
160
|
+
"频繁切换 Tabs mode 导致布局抖动",
|
|
161
|
+
"不要假设『mode='line' 不渲染 content』——所有 mode 都渲染(src 实证)",
|
|
162
|
+
"不要按 antd 习惯传 onChange={(value, tabData, event) => ...}——本组件 2 参 (activeKey, item)",
|
|
163
|
+
"不要按 antd 习惯传 columns/items prop——本组件用 data;不要传 children TabPane——本组件用 data[].content"
|
|
164
|
+
],
|
|
165
|
+
"events": {
|
|
166
|
+
"onChange": {
|
|
167
|
+
"signature": "(activeKey: K, item?: TabProps<K>) => void",
|
|
168
|
+
"asyncSupported": false,
|
|
169
|
+
"examples": [
|
|
170
|
+
"切换 tab:onChange={(key) => setActiveTab(key)}",
|
|
171
|
+
"利用第二参取 tab 数据:onChange={(key, item) => setTitle(item?.label)}",
|
|
172
|
+
"K 泛型约束:<Tabs<'home'|'profile'> onChange={(key) => ...} />,key 类型被收紧"
|
|
173
|
+
],
|
|
174
|
+
"commonMistakes": [
|
|
175
|
+
"按 antd 习惯传 onChange={(value, tabData, event) => ...}——本组件仅 2 参 (activeKey, item),无 event 第三参",
|
|
176
|
+
"误以为首参名是 value——首参名是 activeKey(来自 rc-tabs 层),不是 value",
|
|
177
|
+
"忘记第二参 item 是可选的(data 为空或切换到非 data 渲染的 key 时 item 可能 undefined)"
|
|
178
|
+
]
|
|
179
|
+
},
|
|
180
|
+
"onEdit": {
|
|
181
|
+
"signature": "(item: TabProps<K>, event?: React.MouseEvent | React.KeyboardEvent | string | React.Key, action?: 'add' | 'remove') => void",
|
|
182
|
+
"asyncSupported": false,
|
|
183
|
+
"examples": [
|
|
184
|
+
"新增:action='add', item 是空对象 {}",
|
|
185
|
+
"删除:action='remove', item 是被关闭的 TabProps<K> 项(包含 value/label 等字段)",
|
|
186
|
+
"删除实现:onEdit={(item, _, action) => action === 'remove' && setTabs(tabs.filter(t => t.value !== item.value))}"
|
|
187
|
+
],
|
|
188
|
+
"commonMistakes": [
|
|
189
|
+
"新增分支期望 item.value 有值——add 时 item 是空对象 {},新 key 需业务侧生成",
|
|
190
|
+
"onEdit 在 editable=false + mode!='editable-card' 时传了但不触发——需满足 editable=true 或 mode='editable-card'"
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
"onRadioChange": {
|
|
194
|
+
"signature": "(radioValue: K) => void",
|
|
195
|
+
"asyncSupported": false,
|
|
196
|
+
"examples": [
|
|
197
|
+
"card-container 模式 + radio=true 时,每个 tab 头前有 Radio,点击 radio 触发此回调",
|
|
198
|
+
"onRadioChange={(val) => setSelected(val)}"
|
|
199
|
+
],
|
|
200
|
+
"commonMistakes": [
|
|
201
|
+
"不是 card-container + radio=true 模式时传了 onRadioChange——Radio 不渲染,回调永不触发",
|
|
202
|
+
"与 onChange 混淆——onChange 是 tab 激活切换,onRadioChange 是独立的 radio 选中"
|
|
203
|
+
]
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"typescriptPitfalls": [
|
|
207
|
+
{
|
|
208
|
+
"issue": "onChange 首参名是 activeKey 不是 value,直接解构 value 时 TS 不报错但语义不清",
|
|
209
|
+
"wrong": "onChange={(value) => setTab(value)} // 运行正确但命名误导",
|
|
210
|
+
"right": "onChange={(activeKey) => setTab(activeKey)} // 参数名与签名一致"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"issue": "data 是 TabProps<K>[] 而不是 RcTabsProps.items,两者不可直接互用",
|
|
214
|
+
"wrong": "// 从 antd 迁移时直接传 items={tabs}——para-ui Tabs 用 data prop 不是 items",
|
|
215
|
+
"right": "data={tabs} // TabProps 数组:[{ value: 'home', label: '首页', content: <Home /> }]"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"issue": "tabPosition prop 在 Omit<RcTabsProps, 'onChange'> 中保留,但 SCSS 可能不支持所有方向",
|
|
219
|
+
"wrong": "// 传 tabPosition='left' 期望左侧竖排 tab——需确认当前主题 SCSS 是否实现了 left 方向",
|
|
220
|
+
"right": "// 水平 top 位置已完整实现;非 top 方向使用前需自测 SCSS 效果"
|
|
221
|
+
}
|
|
222
|
+
],
|
|
223
|
+
"mapping": {
|
|
224
|
+
"realComponent": "Tabs",
|
|
225
|
+
"adapter": null
|
|
226
|
+
}
|
|
227
|
+
}
|