@para-ui/core 5.0.0-beta.12 → 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 +50 -47
- package/es/Anchor/type.d.ts +8 -4
- package/es/Argv/component.json +216 -0
- package/es/Argv/index.d.ts +5 -6
- 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 +32 -29
- 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/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/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/CodeEditor/component.json +189 -0
- package/es/CodeEditor/index.d.ts +10 -9
- 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 +73 -68
- 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 +10 -10
- package/es/DatePicker/generatePicker/generateSinglePicker.js +1 -1
- package/es/Descriptions/component.json +142 -0
- package/es/Descriptions/index.d.ts +1 -1
- package/es/Desktop/component.json +171 -0
- 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/DynamicMultiBox/component.json +278 -0
- package/es/DynamicMultiBox/formItem.d.ts +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/MemoInput.d.ts +2 -2
- package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
- package/es/FieldForm/Form.d.ts +2 -2
- 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/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/Help/component.json +118 -0
- package/es/HelperText/component.json +126 -0
- package/es/Image/component.json +165 -0
- 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 +1 -1
- 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/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/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/Pagination/component.json +181 -0
- package/es/Pagination/index.js +15 -15
- 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/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 +1 -1
- 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 +113 -113
- package/es/SelectInput/component.json +184 -0
- package/es/Selector/component.json +203 -0
- package/es/Selector/index.js +28 -27
- package/es/Selector/interface.d.ts +1 -1
- package/es/Selector/selectorMain/index.js +2 -2
- package/es/Selector/selectorNode/index.js +1 -1
- package/es/Selector/util.d.ts +2 -2
- 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 +414 -414
- package/es/Table/interface.d.ts +6 -0
- 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/TextField/component.json +290 -0
- package/es/TextField/index.d.ts +2 -2
- 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/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/component.json +512 -0
- package/es/Upload/component.json +450 -0
- package/es/Utils/type.d.ts +0 -2
- 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/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/index.d.ts +5 -6
- 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/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/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/CodeEditor/component.json +189 -0
- package/lib/CodeEditor/index.d.ts +10 -9
- 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/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/DynamicMultiBox/component.json +278 -0
- package/lib/DynamicMultiBox/formItem.d.ts +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/MemoInput.d.ts +2 -2
- package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
- package/lib/FieldForm/Form.d.ts +2 -2
- 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/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/Help/component.json +118 -0
- package/lib/HelperText/component.json +126 -0
- package/lib/Image/component.json +165 -0
- 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/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/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/Pagination/component.json +181 -0
- package/lib/Pagination/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/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 +1 -1
- package/lib/Selector/selectorMain/index.js +1 -1
- package/lib/Selector/selectorNode/index.js +1 -1
- package/lib/Selector/util.d.ts +2 -2
- 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 +6 -0
- 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/TextField/component.json +290 -0
- package/lib/TextField/index.d.ts +2 -2
- 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/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/component.json +512 -0
- package/lib/Upload/component.json +450 -0
- package/lib/Utils/type.d.ts +0 -2
- 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/package.json +9 -3
- /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
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Tooltip",
|
|
3
|
+
"category": "Data Display",
|
|
4
|
+
"description": "简单的文字提示气泡框",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"辅助说明",
|
|
8
|
+
"信息补充",
|
|
9
|
+
"操作提示"
|
|
10
|
+
],
|
|
11
|
+
"useCases": [
|
|
12
|
+
"按钮解释",
|
|
13
|
+
"被截断文本显示",
|
|
14
|
+
"图标含义说明"
|
|
15
|
+
],
|
|
16
|
+
"riskLevel": "low"
|
|
17
|
+
},
|
|
18
|
+
"variants": {
|
|
19
|
+
"default": {
|
|
20
|
+
"meaning": "默认样式"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"states": [
|
|
24
|
+
"visible",
|
|
25
|
+
"hidden"
|
|
26
|
+
],
|
|
27
|
+
"idealProps": {
|
|
28
|
+
"title": {
|
|
29
|
+
"type": "string | ReactNode",
|
|
30
|
+
"description": "提示文字"
|
|
31
|
+
},
|
|
32
|
+
"placement": {
|
|
33
|
+
"type": "enum",
|
|
34
|
+
"values": [
|
|
35
|
+
"top",
|
|
36
|
+
"left",
|
|
37
|
+
"right",
|
|
38
|
+
"bottom",
|
|
39
|
+
"topLeft",
|
|
40
|
+
"topRight",
|
|
41
|
+
"bottomLeft",
|
|
42
|
+
"bottomRight",
|
|
43
|
+
"leftTop",
|
|
44
|
+
"leftBottom",
|
|
45
|
+
"rightTop",
|
|
46
|
+
"rightBottom"
|
|
47
|
+
],
|
|
48
|
+
"default": "topLeft",
|
|
49
|
+
"description": "气泡框位置。配合 `autoAdjustOverflow=true` 可被遮挡时自动翻转。**长 content + maxWidth 较大时优先 top/bottom 减少水平空间冲突**"
|
|
50
|
+
},
|
|
51
|
+
"maxWidth": {
|
|
52
|
+
"type": "string | number",
|
|
53
|
+
"default": 500,
|
|
54
|
+
"description": "气泡最大宽度。`number` = px;`string` = 任意合法 CSS 长度(`'200px'` / `'20rem'`)。默认 500px 适合大多数长 title 场景。R23 TT3 docs 协同补强"
|
|
55
|
+
},
|
|
56
|
+
"trigger": {
|
|
57
|
+
"type": "enum",
|
|
58
|
+
"values": [
|
|
59
|
+
"hover",
|
|
60
|
+
"focus",
|
|
61
|
+
"click",
|
|
62
|
+
"contextMenu"
|
|
63
|
+
],
|
|
64
|
+
"default": "hover",
|
|
65
|
+
"description": "触发行为。**`trigger=[]` 受控屏蔽写法已 deprecated(R23 TT2)**——请改用 `visible={false}`。老写法仍可用但 dev 环境 console.warn 一次提示迁移;v6 可能收紧类型不接受空数组,提前迁移"
|
|
66
|
+
},
|
|
67
|
+
"visible": {
|
|
68
|
+
"type": "boolean",
|
|
69
|
+
"default": "undefined",
|
|
70
|
+
"description": "**控制浮层显示(受控,src 真实主名)**。**三路语义**(R24 W-2 文档化):`true`=强制显示气泡;`false`=强制隐藏(推荐替代 deprecated `trigger=[]`);`undefined` 或不传=fallback 到 `open`,再 fallback 到 trigger 默认触发逻辑(`visible ?? open ?? trigger 自动`,src/Tooltip/index.tsx:27)。条件受控:`visible={isDisabled ? false : undefined}`"
|
|
71
|
+
},
|
|
72
|
+
"open": {
|
|
73
|
+
"type": "boolean",
|
|
74
|
+
"default": "undefined",
|
|
75
|
+
"description": "`visible` 的别名(来自 antd 风格);与 visible 二选一,不要同时传"
|
|
76
|
+
},
|
|
77
|
+
"onVisibleChange": {
|
|
78
|
+
"type": "function",
|
|
79
|
+
"signature": "(visible: boolean) => void",
|
|
80
|
+
"description": "**显示隐藏回调(src 真实事件名,非 onOpenChange)**。受控用法配合 visible/open 使用;受控 visible 时 hover/click 仍触发本回调但 Tooltip 不会自更新——必须父组件 setState。**受控 trigger 选择建议**(R24 W-2 R23 TT2 round 标注):新手引导等场景若不希望 hover 持续触发本回调改变 step,建议 `trigger='click'`;**不要用 deprecated `trigger=[]`**(R23 TT2)"
|
|
81
|
+
},
|
|
82
|
+
"defaultVisible": {
|
|
83
|
+
"type": "boolean",
|
|
84
|
+
"default": false,
|
|
85
|
+
"description": "初始是否显示气泡(非受控初始值,src/Tooltip/index.tsx:18,193 实证:`useState(props.defaultVisible!)` 作为初始 visible 状态;默认 false。传了 visible/open 受控 prop 后 defaultVisible 被覆盖)"
|
|
86
|
+
},
|
|
87
|
+
"mouseEnterDelay": {
|
|
88
|
+
"type": "number",
|
|
89
|
+
"default": 0.1,
|
|
90
|
+
"description": "鼠标移入后延迟显示的时间(单位:秒,src/Tooltip/index.tsx:190 defaultProps 实证:默认 0.1s)。⚠️ **单位是秒不是毫秒**(0.1 = 100ms)"
|
|
91
|
+
},
|
|
92
|
+
"mouseLeaveDelay": {
|
|
93
|
+
"type": "number",
|
|
94
|
+
"default": 0.1,
|
|
95
|
+
"description": "鼠标移出后延迟隐藏的时间(单位:秒,src/Tooltip/index.tsx:191 defaultProps 实证:默认 0.1s)。⚠️ **单位是秒不是毫秒**"
|
|
96
|
+
},
|
|
97
|
+
"autoAdjustOverflow": {
|
|
98
|
+
"type": "boolean",
|
|
99
|
+
"default": true,
|
|
100
|
+
"description": "气泡被遮挡时是否自动翻转位置(src/Tooltip/index.tsx:64-65,192 实证:默认 true,传入 getPlacements 生成弹出方向配置)"
|
|
101
|
+
},
|
|
102
|
+
"followCursor": {
|
|
103
|
+
"type": "boolean",
|
|
104
|
+
"default": false,
|
|
105
|
+
"description": "气泡是否跟随鼠标光标移动(src/Tooltip/index.tsx:122,171-178,194 实证:true 时强制 placement='top' 并在外层 div 监听 mousemove 动态更新 targetOffset;与精确 placement 互斥)"
|
|
106
|
+
},
|
|
107
|
+
"overlayClassName": {
|
|
108
|
+
"type": "string",
|
|
109
|
+
"description": "气泡浮层的自定义类名(src/Tooltip/index.tsx:115,135 实证:与内置 paraui-tooltip 类合并透传到 RcTooltip overlayClassName)"
|
|
110
|
+
},
|
|
111
|
+
"overlayInnerStyle": {
|
|
112
|
+
"type": "React.CSSProperties",
|
|
113
|
+
"description": "气泡内容区内联样式(src/Tooltip/index.tsx:116,164 实证:透传到 RcTooltip overlayInnerStyle,作用于内容容器而非浮层外壳)"
|
|
114
|
+
},
|
|
115
|
+
"overlayStyle": {
|
|
116
|
+
"type": "React.CSSProperties",
|
|
117
|
+
"description": "气泡浮层外壳内联样式(src/Tooltip/index.tsx:117,138-140 实证:与 maxWidth 合并后透传到 RcTooltip overlayStyle)"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"do": [
|
|
121
|
+
"提示内容应当精简,避免超过两行文字",
|
|
122
|
+
"用于解释图标或被截断的文本(配合 AutoTips 使用效果更佳)",
|
|
123
|
+
"受控场景用 `visible={false}` 替代已废弃的 `trigger=[]` 写法——v6 可能移除空数组支持(src/Tooltip/index.tsx:29-40 dev warn 实证)",
|
|
124
|
+
"Modal/Dialog 内的 Tooltip 建议传 getPopupContainer 指向 modal 容器,避免 overflow:hidden 截断浮层",
|
|
125
|
+
"需要叠加禁用视觉图标时用 showForbidIcon={true}(新名)而非 disabled(deprecated),两者源码同路径:`(disabled || showForbidIcon) && <Forbid />`"
|
|
126
|
+
],
|
|
127
|
+
"dont": [
|
|
128
|
+
"在 Tooltip 中放入复杂交互内容(应使用 Popover)",
|
|
129
|
+
"提示内容为空——title 为空时 Tooltip 强制不显示(src/Tooltip/index.tsx:42-45 isUntitled 判断)",
|
|
130
|
+
"不要把 `disabled` 理解为『禁用气泡显示』——src 实现是叠加红色 Forbid 图标,与 antd/mui 同名 prop 含义相反;用 `visible={false}` 来强制隐藏气泡",
|
|
131
|
+
"不要同时传 visible 和 open——两者是同义别名,优先取 visible,同时传会造成语义混淆(src:27 `props.visible ?? props.open` 实证)",
|
|
132
|
+
"不要给 mouseEnterDelay / mouseLeaveDelay 传毫秒值(如 100)——单位是秒,传 100 = 100秒延迟"
|
|
133
|
+
],
|
|
134
|
+
"events": {
|
|
135
|
+
"onVisibleChange": {
|
|
136
|
+
"signature": "(visible: boolean) => void",
|
|
137
|
+
"asyncSupported": false,
|
|
138
|
+
"examples": [
|
|
139
|
+
"非受控模式下跟踪气泡显示状态:onVisibleChange={(v) => setIsHovered(v)}",
|
|
140
|
+
"受控模式配合 useState:onVisibleChange={(v) => setVisible(v)}",
|
|
141
|
+
"新手引导场景:`trigger='click'` + onVisibleChange 控制引导步骤切换(避免 hover 持续触发)"
|
|
142
|
+
],
|
|
143
|
+
"commonMistakes": [
|
|
144
|
+
"回调名写成 onOpenChange → src 真实回调名是 onVisibleChange,写错无效(RcTooltip 接口名),不会有 TS 报错但回调不触发",
|
|
145
|
+
"受控模式(visible=xxx)下期望 onVisibleChange 触发后气泡自动更新 → 受控时内部 state 不更新,必须父组件在 onVisibleChange 里 setState",
|
|
146
|
+
"假设 onVisibleChange 在 title 为空时也会触发 → src:46-50 isUntitled()=true 时 onVisibleChange 不被调用"
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"typescriptPitfalls": [
|
|
151
|
+
{
|
|
152
|
+
"issue": "disabled 的语义与 antd/mui 相反——不是禁用气泡而是叠加禁用图标",
|
|
153
|
+
"wrong": "<Tooltip disabled={isLoading} title='提示'> // 期望 isLoading 时不显示气泡 → 实际只是叠加红色图标,气泡照常显示",
|
|
154
|
+
"right": "<Tooltip visible={isLoading ? false : undefined} title='提示'> // 正确:visible=false 才能强制隐藏气泡"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"issue": "mouseEnterDelay / mouseLeaveDelay 单位是秒不是毫秒",
|
|
158
|
+
"wrong": "<Tooltip mouseEnterDelay={500} /> // 500 秒 = 8 分钟才显示",
|
|
159
|
+
"right": "<Tooltip mouseEnterDelay={0.5} /> // 0.5 秒 = 500ms"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"issue": "followCursor={true} 时 placement 被强制覆盖为 'top',设置其他 placement 无效",
|
|
163
|
+
"wrong": "<Tooltip followCursor={true} placement='bottomRight' /> // placement 被 src:128 强制改为 'top'",
|
|
164
|
+
"right": "<Tooltip followCursor={true} /> // followCursor 场景只支持 top,无需传 placement"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"issue": "TooltipProps 继承自 rc-tooltip,overlayStyle 和 overlayInnerStyle 作用 DOM 层级不同",
|
|
168
|
+
"wrong": "overlayStyle={{ color: 'red' }} // overlayStyle 作用于浮层外壳,文字颜色无效",
|
|
169
|
+
"right": "overlayInnerStyle={{ color: 'red' }} // overlayInnerStyle 作用于内容容器,文字颜色生效"
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"mapping": {
|
|
173
|
+
"realComponent": "Tooltip",
|
|
174
|
+
"adapter": null
|
|
175
|
+
}
|
|
176
|
+
}
|
package/lib/Tooltip/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const r=require("../_virtual/jsx-runtime.js"),s=require("react"),Y=require("rc-tooltip"),c=require("./utils.js"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const r=require("../_virtual/jsx-runtime.js"),s=require("react"),Y=require("rc-tooltip"),c=require("./utils.js"),k=require("clsx"),g=require("../GlobalContext/constant.js"),z=require("../node_modules/@para-ui/icons/Forbid/index.js");;/* empty css */const u=s.forwardRef((e,w)=>{const[E,x]=s.useState(e.defaultVisible),d=s.useRef(null),p=s.useRef(null),[P,$]=s.useState([0,0]),b=s.useRef(!1);s.useEffect(()=>{("visible"in e||"open"in e)&&x(!!(e.visible??e.open))},[e.visible??e.open]),s.useEffect(()=>{process.env.NODE_ENV!=="production"&&!b.current&&Array.isArray(e.trigger)&&e.trigger.length===0&&(b.current=!0,console.warn("[Tooltip] `trigger=[]` 受控屏蔽写法已 deprecated,请改用 `visible={false}`(语义更清晰);v6 可能收紧 trigger 类型,提前迁移。"))},[e.trigger]);const m=()=>{const{title:t}=e;return!t&&t!==0},T=t=>{"visible"in e||"open"in e||x(m()?!1:t),m()||e.onVisibleChange?.(t)},v=()=>{const{builtinPlacements:t,autoAdjustOverflow:i}=e;return t||c.default({autoAdjustOverflow:i})},S=(t,i)=>{const l=v(),n=Object.keys(l).find(a=>l[a].points[0]===i.points[0]&&l[a].points[1]===i.points[1]);if(!n)return;const f=t.getBoundingClientRect(),o={top:"50%",left:"50%"};n.indexOf("top")>=0||n.indexOf("Bottom")>=0?o.top=`${f.height-(i.offset?.[1]||0)}px`:(n.indexOf("Top")>=0||n.indexOf("bottom")>=0)&&(o.top=`${-(i.offset?.[1]||0)}px`),n.indexOf("left")>=0||n.indexOf("Right")>=0?o.left=`${f.width-(i.offset?.[0]||0)}px`:(n.indexOf("right")>=0||n.indexOf("Left")>=0)&&(o.left=`${-(i.offset?.[0]||0)}px`),t.style.transformOrigin=`${o.left} ${o.top}`},q=t=>{if(d.current){const i=p.current?.popupRef?.current?.getElement()?.offsetHeight||0,l=i===0?60:30,{x:n,y:f,width:o}=d.current.getBoundingClientRect(),a=t.clientX-(n+o/2),X=t.clientY-f+i+l;setTimeout(()=>{$([-a,-X])})}},{prefixCls:V=`${g.$rcPrefixCls}-tooltip`,getPopupContainer:D,overlayClassName:M,overlayInnerStyle:N,overlayStyle:A,children:y,title:L,placement:W,isPopover:B,followCursor:h,maxWidth:C,disabled:F,showForbidIcon:_,...H}=e;let R=E;!("visible"in e||"open"in e)&&m()&&(R=!1);const I=k(!B&&`${g.$prefixCls}-tooltip`,M),O={...A};C&&(O.maxWidth=C);const j={targetOffset:P};return e.offset&&(j.offset=e.offset),r.jsxRuntimeExports.jsx(Y,{...H,prefixCls:V,placement:h?"top":c.mapLegacyPlacement(W),overlayClassName:I,getTooltipContainer:D,ref:w||p,builtinPlacements:v(),overlay:r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[(F||_)&&r.jsxRuntimeExports.jsx(z.Forbid,{className:"disabled-svg"}),L]}),visible:R,align:j,onVisibleChange:T,onPopupAlign:S,overlayStyle:O,overlayInnerStyle:N,arrowContent:null,motion:{motionName:`${g.$rcPrefixCls}-tooltip-zoom-big-fast`,motionDeadline:1e3},children:h?r.jsxRuntimeExports.jsx("div",{style:{display:"inline-block"},ref:d,onMouseMove:q,children:c.getDisabledCompatibleChildren(y)}):c.getDisabledCompatibleChildren(y)})});u.displayName="Tooltip";u.defaultProps={placement:"topLeft",mouseEnterDelay:.1,mouseLeaveDelay:.1,autoAdjustOverflow:!0,defaultVisible:!1,followCursor:!1,maxWidth:500};exports.Tooltip=u;exports.default=u;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -14,12 +14,25 @@ export interface TooltipProps extends Partial<Omit<RcTooltipProps, 'children'>>
|
|
|
14
14
|
children?: React.ReactNode;
|
|
15
15
|
/** 控制浮层是否显示 */
|
|
16
16
|
open?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* 受控屏蔽气泡显示(推荐替代 `trigger=[]` 受控隐藏写法)。
|
|
19
|
+
* - `visible !== undefined` → 完全受控,显隐由 visible 控制(覆盖 trigger hover/click 默认行为)
|
|
20
|
+
* - `visible === undefined`(默认)→ 走 trigger 触发(原行为不变)
|
|
21
|
+
* 与 `open` 同义,优先级:`visible ?? open`(src/Tooltip/index.tsx)。@since v5.x.next
|
|
22
|
+
*/
|
|
23
|
+
visible?: boolean;
|
|
17
24
|
/** 跟随光标移动 */
|
|
18
25
|
followCursor?: boolean;
|
|
19
26
|
/** 容器最大宽度 */
|
|
20
27
|
maxWidth?: number | string;
|
|
21
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* @deprecated v5.x.next 改用 `showForbidIcon`(自描述命名,业界对齐);v6 移除。
|
|
30
|
+
* 语义不变:在 trigger 旁叠加红色 Forbid SVG 图标(不影响气泡显示)。
|
|
31
|
+
* 详见 BREAKING-CHANGES §B5。
|
|
32
|
+
*/
|
|
22
33
|
disabled?: boolean;
|
|
34
|
+
/** 在 trigger 节点旁叠加红色 Forbid 禁用 SVG 图标(原 `disabled` 重命名,自描述命名)。不影响气泡显示行为(气泡仍走 title/visible/trigger 控制)。@since v5.x.next */
|
|
35
|
+
showForbidIcon?: boolean;
|
|
23
36
|
/** 偏移 */
|
|
24
37
|
offset?: [number, number];
|
|
25
38
|
[name: string]: unknown;
|
package/lib/Tooltip/utils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("../_virtual/jsx-runtime.js"),a=require("rc-tooltip/lib/placements"),r=require("react"),m=require("clsx"),u=require("../GlobalContext/constant.js"),d={adjustX:1,adjustY:1},l={adjustX:0,adjustY:0};function b(t){return typeof t=="boolean"?t?d:l:{...l,...t}}function g(t){const{horizontalArrowShift:o=16,verticalArrowShift:s=8,autoAdjustOverflow:n}=t,e={left:{points:["cr","cl"],offset:[-8,0]},right:{points:["cl","cr"],offset:[8,0]},top:{points:["bc","tc"],offset:[0,-8]},bottom:{points:["tc","bc"],offset:[0,8]},topLeft:{points:["bl","tc"],offset:[-o,-8]},leftTop:{points:["tr","cl"],offset:[-8,-s]},topRight:{points:["br","tc"],offset:[o,-8]},rightTop:{points:["tl","cr"],offset:[8,-s]},bottomRight:{points:["tr","bc"],offset:[o,8]},rightBottom:{points:["bl","cr"],offset:[8,s]},bottomLeft:{points:["tl","bc"],offset:[-o,8]},leftBottom:{points:["br","cl"],offset:[-8,s]}};return Object.keys(e).forEach(f=>{e[f]={...a.placements[f],offset:x(f).offset,overflow:b(n)},e[f].ignoreShake=!0}),e}const h=(t,o)=>{const s={},n={...t};return o.forEach(e=>{t&&e in t&&(s[e]=t[e],delete n[e])}),{picked:s,omitted:n}};function j(t){const o=r.isValidElement(t)?t:i.jsxRuntimeExports.jsx("span",{children:t});if(o.
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("../_virtual/jsx-runtime.js"),a=require("rc-tooltip/lib/placements"),r=require("react"),m=require("clsx"),u=require("../GlobalContext/constant.js"),d={adjustX:1,adjustY:1},l={adjustX:0,adjustY:0};function b(t){return typeof t=="boolean"?t?d:l:{...l,...t}}function g(t){const{horizontalArrowShift:o=16,verticalArrowShift:s=8,autoAdjustOverflow:n}=t,e={left:{points:["cr","cl"],offset:[-8,0]},right:{points:["cl","cr"],offset:[8,0]},top:{points:["bc","tc"],offset:[0,-8]},bottom:{points:["tc","bc"],offset:[0,8]},topLeft:{points:["bl","tc"],offset:[-o,-8]},leftTop:{points:["tr","cl"],offset:[-8,-s]},topRight:{points:["br","tc"],offset:[o,-8]},rightTop:{points:["tl","cr"],offset:[8,-s]},bottomRight:{points:["tr","bc"],offset:[o,8]},rightBottom:{points:["bl","cr"],offset:[8,s]},bottomLeft:{points:["tl","bc"],offset:[-o,8]},leftBottom:{points:["br","cl"],offset:[-8,s]}};return Object.keys(e).forEach(f=>{e[f]={...a.placements[f],offset:x(f).offset,overflow:b(n)},e[f].ignoreShake=!0}),e}const h=(t,o)=>{const s={},n={...t};return o.forEach(e=>{t&&e in t&&(s[e]=t[e],delete n[e])}),{picked:s,omitted:n}};function j(t){const o=r.isValidElement(t)?t:i.jsxRuntimeExports.jsx("span",{children:t});if(o.props&&o.props.disabled===!0){const{picked:s,omitted:n}=h(o.props.style||{},["position","left","right","top","bottom","float","display","zIndex"]),e={display:"inline-block",...s,cursor:"not-allowed",width:o.props.block?"100%":void 0},f={...n,pointerEvents:"none"},p=r.cloneElement(o,{style:f,className:null});return i.jsxRuntimeExports.jsx("span",{style:e,className:m(o.props.className,`${u.$rcPrefixCls}-tooltip-disabled-compatible-wrapper`),children:p})}return o}function c(t){return{"bottom-end":"bottomRight","bottom-start":"bottomLeft","left-end":"leftBottom","left-start":"leftTop","right-end":"rightBottom","right-start":"rightTop","top-end":"topRight","top-start":"topLeft"}[t]||t}function x(t){const o=c(t);return{left:{offset:[-8,0]},right:{offset:[8,0]},top:{offset:[0,-8]},bottom:{offset:[0,8]},topLeft:{offset:[0,-8]},leftTop:{offset:[-8,0]},topRight:{offset:[0,-8]},rightTop:{offset:[8,0]},bottomRight:{offset:[0,8]},rightBottom:{offset:[8,0]},bottomLeft:{offset:[0,8]},leftBottom:{offset:[-8,0]}}[o]}exports.default=g;exports.getDisabledCompatibleChildren=j;exports.mapLegacyPlacement=c;
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Transfer",
|
|
3
|
+
"category": "Data Entry",
|
|
4
|
+
"description": "穿梭框,双栏穿梭选择框",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"多项选择",
|
|
8
|
+
"数据移动",
|
|
9
|
+
"分类归纳"
|
|
10
|
+
],
|
|
11
|
+
"useCases": [
|
|
12
|
+
"权限配置",
|
|
13
|
+
"角色分配",
|
|
14
|
+
"字段筛选"
|
|
15
|
+
],
|
|
16
|
+
"riskLevel": "low"
|
|
17
|
+
},
|
|
18
|
+
"variants": {
|
|
19
|
+
"default": {
|
|
20
|
+
"meaning": "标准穿梭框(多选 + 内置搜索)"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"states": [
|
|
24
|
+
"default",
|
|
25
|
+
"disabled"
|
|
26
|
+
],
|
|
27
|
+
"idealProps": {
|
|
28
|
+
"data": {
|
|
29
|
+
"type": "Array<ItemDataProps>",
|
|
30
|
+
"default": "[]",
|
|
31
|
+
"itemSchema": {
|
|
32
|
+
"key": { "type": "string", "description": "唯一标识(与 value[] 对比;改字段名时用 customKey)" },
|
|
33
|
+
"name": { "type": "string", "description": "显示名" },
|
|
34
|
+
"description": { "type": "string", "description": "描述文字" },
|
|
35
|
+
"checked": { "type": "boolean", "description": "是否已勾选" },
|
|
36
|
+
"disabled": { "type": "boolean", "description": "是否禁用" },
|
|
37
|
+
"hide": { "type": "boolean", "description": "是否隐藏" },
|
|
38
|
+
"tagColor": { "type": "string", "description": "tag 色" }
|
|
39
|
+
},
|
|
40
|
+
"description": "数据源(**真实 prop 名是 data 不是 dataSource**);**对外导出类型名是 IItemDataProps**(有 I 前缀,src/index.ts 重命名导出),业务侧 import 用 `import { IItemDataProps } from '@para-ui/core/Transfer'`;ItemDataProps = { key?: string; name?: string; description?: string; checked?: boolean; disabled?: boolean; hide?: boolean; tagColor?: string; [k: string]: unknown };src/Transfer/box.tsx:49。**业务 any[] 数据**:若字段名不是 key/name(例如 id/label),建议父层 map 适配成 IItemDataProps 形状,或用 customKey 让 value 比对换字段"
|
|
41
|
+
},
|
|
42
|
+
"value": {
|
|
43
|
+
"type": "Array<string>",
|
|
44
|
+
"default": "[]",
|
|
45
|
+
"description": "右侧框已选中的 key 集合(**真实 prop 名是 value 不是 targetKeys**);受控数组,组件内部按 customKey 比对 data 分流到左右两侧;src/Transfer/index.tsx:236 useEffect 监听 value/data 同步"
|
|
46
|
+
},
|
|
47
|
+
"onChange": {
|
|
48
|
+
"type": "(keys: Array<string>) => void",
|
|
49
|
+
"description": "右侧 key 集合变化回调(穿梭 / 排序 / 上下移动都会触发);**回参是 key 数组不是 item 对象数组**;src/Transfer/index.tsx:150"
|
|
50
|
+
},
|
|
51
|
+
"onSort": {
|
|
52
|
+
"type": "(keys: Array<string>) => void",
|
|
53
|
+
"description": "右侧拖拽排序 / 上下移动后回调;触发时机:rightData splice 之后;src/Transfer/index.tsx:170 / 190 / 230;onChange 在 onSort 之前也会触发一次(同步右侧 key 序列)"
|
|
54
|
+
},
|
|
55
|
+
"customKey": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"default": "key",
|
|
58
|
+
"description": "自定义唯一键字段名;改这个会让 value 比对 data[customKey] 而非 data.key — 适用于业务数据自带 id/code 不想 rename 为 key 的场景"
|
|
59
|
+
},
|
|
60
|
+
"titles": {
|
|
61
|
+
"type": "Array<string>",
|
|
62
|
+
"default": "['左侧', '右侧']",
|
|
63
|
+
"description": "[左侧标题, 右侧标题];默认值来自 i18n localeJson(zh: '左侧'/'右侧',en: 'Left'/'Right');传两元数组覆盖"
|
|
64
|
+
},
|
|
65
|
+
"multiple": {
|
|
66
|
+
"type": "boolean",
|
|
67
|
+
"default": "true",
|
|
68
|
+
"description": "是否多选;false 时每侧 checkbox 单选语义,选中新项自动清空旧选"
|
|
69
|
+
},
|
|
70
|
+
"trim": {
|
|
71
|
+
"type": "boolean",
|
|
72
|
+
"default": "false",
|
|
73
|
+
"description": "搜索时是否去除首尾空格(toUpperCase 大小写不敏感是固定行为,trim 只控空格)"
|
|
74
|
+
},
|
|
75
|
+
"disabled": {
|
|
76
|
+
"type": "boolean",
|
|
77
|
+
"default": "false",
|
|
78
|
+
"description": "整体禁用(组件层);若只想禁某条 item,用 ItemDataProps.disabled — 二者独立可叠加"
|
|
79
|
+
},
|
|
80
|
+
"render": {
|
|
81
|
+
"type": "(item: ItemDataProps) => void",
|
|
82
|
+
"description": "对每条 item 的预处理 hook(在 useEffect 分流前调用,可改 item 字段);**注意是副作用函数(返回 void),不是返回 ReactNode 的 render prop** — 与 rightIcon 易混(rightIcon 才是返回 ReactNode);src/Transfer/index.tsx:242"
|
|
83
|
+
},
|
|
84
|
+
"rightIcon": {
|
|
85
|
+
"type": "(item: ItemDataProps) => ReactNode",
|
|
86
|
+
"description": "每行右侧自定义渲染(放 Help 图标 / Popover 等);返回 ReactNode,与 render 副作用 hook 不同"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"do": [
|
|
90
|
+
"在源数据量大且需要多选时使用 Transfer",
|
|
91
|
+
"提供清晰的 List Title",
|
|
92
|
+
"value 始终保持 string[] 类型(组件内部按 customKey 比对)"
|
|
93
|
+
],
|
|
94
|
+
"dont": [
|
|
95
|
+
"在移动端使用 Transfer(交互困难)",
|
|
96
|
+
"数据量极小(<5)时使用 Transfer(推荐 Checkbox Group)",
|
|
97
|
+
"把 dataSource / targetKeys 当 prop 名(那是 Ant Design 命名,本组件实际是 data / value)",
|
|
98
|
+
"期待 onSelectChange / onCheck 回调(本组件无 checkbox 勾选未穿梭的回调 — onChange 仅在穿梭/排序/移动完成后触发;若需追踪'选中变化'只能在 onChange 后由 left/right key 集合推导)",
|
|
99
|
+
"期待 size / compact / dense prop(本组件不支持紧凑模式;紧凑视觉只能由外层 div 套 fontSize/padding 模拟,无法影响内部间距)",
|
|
100
|
+
"期待 showSearch prop(搜索是内置默认开启 — 仅 trim 控制空格策略)"
|
|
101
|
+
],
|
|
102
|
+
"events": {
|
|
103
|
+
"onChange": {
|
|
104
|
+
"signature": "(keys: Array<string>) => void",
|
|
105
|
+
"asyncSupported": false,
|
|
106
|
+
"examples": [
|
|
107
|
+
"穿梭(右→左或左→右)完成时触发:keys 是右侧框所有 key 的当前顺序数组",
|
|
108
|
+
"上下移动排序后触发:keys 反映排序后的顺序(onSort 也会在此之前触发)",
|
|
109
|
+
"拖拽排序完成后触发:onEndSort → onChange 顺序触发,keys 是最新右侧顺序"
|
|
110
|
+
],
|
|
111
|
+
"commonMistakes": [
|
|
112
|
+
"把 onChange 的回参当做 ItemDataProps[] 对象数组——实际是 key 字符串数组",
|
|
113
|
+
"期望 onChange 在勾选(checkbox)时触发——onChange 只在穿梭/排序完成后触发,不追踪 checkbox 中间状态",
|
|
114
|
+
"期望 onChange 只在穿梭时触发——排序(onSort)也会同时触发 onChange"
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
"onSort": {
|
|
118
|
+
"signature": "(keys: Array<string>) => void",
|
|
119
|
+
"asyncSupported": false,
|
|
120
|
+
"examples": [
|
|
121
|
+
"右侧列表拖拽排序结束时触发:keys 是排序后右侧的 key 顺序数组",
|
|
122
|
+
"点击上/下移动按钮后触发:先触发 onSort 再触发 onChange",
|
|
123
|
+
"用于服务端保存排序:onSort={(keys) => saveOrder(keys)}"
|
|
124
|
+
],
|
|
125
|
+
"commonMistakes": [
|
|
126
|
+
"只监听 onSort 不监听 onChange——右侧 key 顺序同时写入了 onChange,两者都会触发",
|
|
127
|
+
"期望 onSort 在左侧操作时触发——onSort 只针对右侧列表排序,左侧没有排序功能"
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"typescriptPitfalls": [
|
|
132
|
+
{
|
|
133
|
+
"issue": "data 的 TypeScript 导出类型名是 IItemDataProps(有 I 前缀),不是 ItemDataProps",
|
|
134
|
+
"wrong": "import { ItemDataProps } from '@para-ui/core/Transfer' // 不存在此导出",
|
|
135
|
+
"right": "import { IItemDataProps } from '@para-ui/core/Transfer' // src/Transfer/index.tsx 重命名导出"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"issue": "value 是 string[] 不是 ItemDataProps[],传对象数组导致右侧显示为空",
|
|
139
|
+
"wrong": "value={[{ key: 'a', name: '选项A' }]} // 传对象数组,内部 indexOf 比对会失败",
|
|
140
|
+
"right": "value={['a']} // 传 key 字符串数组,对应 data 中每项的 customKey 字段值"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"issue": "自定义 key 字段时需同步传 customKey,否则 value 比对不到 data",
|
|
144
|
+
"wrong": "// 数据字段是 id 但没传 customKey\ndata={[{ id: '001', name: '项目A' }]} value={['001']} // 比对用 data.key,找不到",
|
|
145
|
+
"right": "data={[{ id: '001', name: '项目A' }]} value={['001']} customKey='id' // 告知组件用 id 做 key"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"issue": "render 是副作用 hook 不是 render prop,返回 void 不是 ReactNode",
|
|
149
|
+
"wrong": "render={(item) => <span>{item.name}</span>} // 假设 render 返回 ReactNode 渲染到列表项",
|
|
150
|
+
"right": "// render 用于预处理 item 字段(副作用),自定义列表项显示用 rightIcon\nrender={(item) => { item.name = item.label; }} // 修改 item 字段"
|
|
151
|
+
}
|
|
152
|
+
],
|
|
153
|
+
"mapping": {
|
|
154
|
+
"realComponent": "Transfer",
|
|
155
|
+
"adapter": null
|
|
156
|
+
}
|
|
157
|
+
}
|