@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,184 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SelectInput",
|
|
3
|
+
"category": "Data Entry",
|
|
4
|
+
"description": "下拉输入框,结合下拉选择和文本输入",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"组合输入",
|
|
8
|
+
"带搜索的选择"
|
|
9
|
+
],
|
|
10
|
+
"useCases": [
|
|
11
|
+
"分类选择",
|
|
12
|
+
"带输入的下拉",
|
|
13
|
+
"联想输入"
|
|
14
|
+
],
|
|
15
|
+
"riskLevel": "normal"
|
|
16
|
+
},
|
|
17
|
+
"variants": {
|
|
18
|
+
"default": {
|
|
19
|
+
"meaning": "默认样式"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"states": [
|
|
23
|
+
"default",
|
|
24
|
+
"disabled",
|
|
25
|
+
"error"
|
|
26
|
+
],
|
|
27
|
+
"idealProps": {
|
|
28
|
+
"value": {
|
|
29
|
+
"type": "any",
|
|
30
|
+
"description": "受控值;multiple=true 时为数组,multiple=false(默认)时为单值;必须配合 onChange。**单值类型**:list 项 value 字段值(string / number 取决于 SelectOptionBase.value 实际类型)"
|
|
31
|
+
},
|
|
32
|
+
"defaultValue": {
|
|
33
|
+
"type": "any",
|
|
34
|
+
"description": "非受控默认值;类型规则同 value"
|
|
35
|
+
},
|
|
36
|
+
"onChange": {
|
|
37
|
+
"type": "(val, e) => void",
|
|
38
|
+
"description": "值变化回调。**实际签名**(协议 SI1):multiple=false → `(val: string | undefined, e: SyntheticEvent) => void`(清空时 val 为 undefined);multiple=true → `(val: string[], e) => void`。**val 是 list 项 value 字段值**(不是整个对象);业务 `(next: string) => void` 透传桥接:`onChange={(val) => onChange((val ?? '') as string)}` 显式过 undefined"
|
|
39
|
+
},
|
|
40
|
+
"list": {
|
|
41
|
+
"type": "SelectOptionBase[]",
|
|
42
|
+
"itemSchema": {
|
|
43
|
+
"label": { "type": "ReactNode", "required": true, "description": "选项显示文案" },
|
|
44
|
+
"value": { "type": "any", "required": true, "description": "选项值(onChange 回调的 val 是此字段值)" },
|
|
45
|
+
"children": { "type": "any[]", "description": "子选项" },
|
|
46
|
+
"disabled": { "type": "boolean", "description": "是否禁用" }
|
|
47
|
+
},
|
|
48
|
+
"description": "下拉选项数组;项 = `{ label: ReactNode, value: any, children?: any[], disabled?: boolean }`。空数组或不传时 showSelect 自动 false。**string[] 转换**(协议 SI5):`options.map(opt => ({label: opt, value: opt}))`"
|
|
49
|
+
},
|
|
50
|
+
"multiple": {
|
|
51
|
+
"type": "boolean",
|
|
52
|
+
"default": false,
|
|
53
|
+
"description": "多选模式;true 时 value 必须为数组"
|
|
54
|
+
},
|
|
55
|
+
"showSelect": {
|
|
56
|
+
"type": "boolean",
|
|
57
|
+
"description": "是否显示下拉浮层;未显式传时,有 list 自动 true,无 list 自动 false。显式 false 退化为纯输入框"
|
|
58
|
+
},
|
|
59
|
+
"showName": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"default": "label",
|
|
62
|
+
"description": "list 项中显示名字段名"
|
|
63
|
+
},
|
|
64
|
+
"showValue": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"default": "value",
|
|
67
|
+
"description": "list 项中选中值字段名"
|
|
68
|
+
},
|
|
69
|
+
"searchModel": {
|
|
70
|
+
"type": "'outside' | 'inside'",
|
|
71
|
+
"values": ["outside", "inside"],
|
|
72
|
+
"default": "inside",
|
|
73
|
+
"description": "搜索框位置(协议 SI3);outside=输入框永远显示在触发按钮位置(联想标签 / 主搜);inside=输入框在浮层展开后才显示(二级筛选)。**fetchSuggestions / 联想推荐 outside**"
|
|
74
|
+
},
|
|
75
|
+
"fetchSuggestions": {
|
|
76
|
+
"type": "(val: string, cb: (data: SelectOptionBase[]) => void) => void",
|
|
77
|
+
"description": "异步联想搜索;与 list 互斥。**搭配 searchModel='outside'**(协议 SI3 / SI4)"
|
|
78
|
+
},
|
|
79
|
+
"onEnterInput": {
|
|
80
|
+
"type": "(val: string) => void",
|
|
81
|
+
"description": "回车事件;val=当前输入框原始文本(非 list 项 value)。**输入新分类必传**(协议 SI4):用户输入下拉外文本时 onChange 不触发,只有 onEnterInput 能捕获"
|
|
82
|
+
},
|
|
83
|
+
"blurChangeValueBol": {
|
|
84
|
+
"type": "boolean",
|
|
85
|
+
"default": false,
|
|
86
|
+
"description": "失焦时是否将输入框文本写回 value;适合搜索式输入立即生效场景"
|
|
87
|
+
},
|
|
88
|
+
"labelMode": {
|
|
89
|
+
"type": "'outside' | 'inside'",
|
|
90
|
+
"values": ["outside", "inside"],
|
|
91
|
+
"default": "outside",
|
|
92
|
+
"description": "标题位置(注:此 prop 命名与 searchModel 不同语义)"
|
|
93
|
+
},
|
|
94
|
+
"overLine": {
|
|
95
|
+
"type": "boolean",
|
|
96
|
+
"default": false,
|
|
97
|
+
"description": "已选项是否换行;true=超出 chip 换行,false=单行 + 折叠 '+N'"
|
|
98
|
+
},
|
|
99
|
+
"disabled": {
|
|
100
|
+
"type": "boolean | any[]",
|
|
101
|
+
"description": "禁用;布尔禁全部,数组按 value 禁用部分选项"
|
|
102
|
+
},
|
|
103
|
+
"size": {
|
|
104
|
+
"type": "'small' | 'medium' | 'large'",
|
|
105
|
+
"values": ["small", "medium", "large"],
|
|
106
|
+
"default": "large",
|
|
107
|
+
"description": "尺寸"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"crossPropInteractions": [
|
|
111
|
+
"multiple + onChange 签名 = 两套 union(false 时 val 可 undefined / true 时 val: string[])",
|
|
112
|
+
"fetchSuggestions + searchModel = 推荐配 outside(协议 SI3)",
|
|
113
|
+
"showSelect=false → 强制 searchModel='outside'(纯输入框模式)",
|
|
114
|
+
"onEnterInput + outside = 输入新分类的标准组合(协议 SI4)",
|
|
115
|
+
"list 项 value + showValue = 决定 onChange val 实际类型"
|
|
116
|
+
],
|
|
117
|
+
"commonMisconceptions": [
|
|
118
|
+
"❌ onChange 单参直接透传 `onChange={onChange}` — 实际是双参 + val 可 undefined,TS 不符",
|
|
119
|
+
"❌ onChange val 是整个 SelectOptionBase 对象 — 实际是 value 字段值",
|
|
120
|
+
"❌ outside 模式下纯输入回车自动 onChange — 实际需要 onEnterInput 捕获",
|
|
121
|
+
"❌ fetchSuggestions 默认走 outside — 默认 inside,需显式 searchModel='outside'",
|
|
122
|
+
"❌ string[] 直接传 list — 必须 map 成 SelectOptionBase[] {label, value}"
|
|
123
|
+
],
|
|
124
|
+
"do": [
|
|
125
|
+
"在需要选择并输入的场景使用(比 Select 更自由,比 TextField 带下拉)",
|
|
126
|
+
"支持联想搜索:配合 fetchSuggestions + searchModel='outside' 实现外部输入即触发联想",
|
|
127
|
+
"输入新值回车捕获:配合 onEnterInput 处理用户输入了下拉列表外的文本场景",
|
|
128
|
+
"list 必须传 SelectOptionBase[]:string[] 数组先 map 成 `{label: opt, value: opt}` 形式"
|
|
129
|
+
],
|
|
130
|
+
"dont": [
|
|
131
|
+
"选项过多时不分页(应配合 fetchSuggestions 做异步分页)",
|
|
132
|
+
"忽略键盘操作(onEnterInput 是捕获回车新建条目的关键入口)",
|
|
133
|
+
"直接把 string[] 传给 list——必须 map 成 `[{label, value}]` 形式(协议 SI5)"
|
|
134
|
+
],
|
|
135
|
+
"events": {
|
|
136
|
+
"onChange": {
|
|
137
|
+
"signature": "(val: T | T[] | undefined, e: React.SyntheticEvent) => void",
|
|
138
|
+
"asyncSupported": false,
|
|
139
|
+
"examples": [
|
|
140
|
+
"单选时 val 为选中项 value 字段值(清空时 val 为 undefined,不是 '')",
|
|
141
|
+
"多选时 val 为已选项 value 字段值数组",
|
|
142
|
+
"受控桥接:onChange={(val) => setVal((val ?? '') as string)}"
|
|
143
|
+
],
|
|
144
|
+
"commonMistakes": [
|
|
145
|
+
"直接传 onChange={setValue} 时 TS 报签名不匹配——需要 (val, _e) => setValue(val ?? '')",
|
|
146
|
+
"期望输入框回车触发 onChange——outside 模式下用户输入未选中选项时不触发 onChange,只触发 onEnterInput",
|
|
147
|
+
"误以为 val 是整个 SelectOptionBase 对象——val 是 value 字段值(由 showValue 决定)"
|
|
148
|
+
]
|
|
149
|
+
},
|
|
150
|
+
"onEnterInput": {
|
|
151
|
+
"signature": "(val: string) => void",
|
|
152
|
+
"asyncSupported": false,
|
|
153
|
+
"examples": [
|
|
154
|
+
"用户在输入框回车时触发,val 为输入框的原始字符串",
|
|
155
|
+
"新建标签场景:onEnterInput={(newTag) => setTags([...tags, newTag])}"
|
|
156
|
+
],
|
|
157
|
+
"commonMistakes": [
|
|
158
|
+
"与 onChange 混淆——onEnterInput 是捕获「选项外文本回车」,onChange 是选项选中",
|
|
159
|
+
"忘记传 onEnterInput 导致用户输入新值回车无任何响应"
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
"typescriptPitfalls": [
|
|
164
|
+
{
|
|
165
|
+
"issue": "onChange 签名有第二参 e: SyntheticEvent,单参函数直接传报 TS 错误",
|
|
166
|
+
"wrong": "onChange={setVal} // setVal: (v: string) => void,缺少 e 参数",
|
|
167
|
+
"right": "onChange={(val, _e) => setVal(val ?? '')} // 显式声明两参,_e 忽略"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"issue": "list 传 string[] 直接报 TS 不兼容 SelectOptionBase[]",
|
|
171
|
+
"wrong": "list={['option1', 'option2']} // string 不满足 SelectOptionBase 接口",
|
|
172
|
+
"right": "list={['option1', 'option2'].map(s => ({ label: s, value: s }))} // 转换为 SelectOptionBase[]"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"issue": "SelectInput extends SelectProps(Single | Multiple 联合),在泛型 T 未能被推断时 onChange 的 val 参数可能隐式 any(TS7006),需要显式标注参数类型",
|
|
176
|
+
"wrong": "onChange={(val, _e) => setValue(val as string)} // TS7006: val 隐式 any(泛型推断失败时)",
|
|
177
|
+
"right": "// 单选模式:\nonChange={(val: string | undefined, _e: React.SyntheticEvent) => setValue(val)}\n// 多选模式:\nonChange={(val: string[], _e: React.SyntheticEvent) => setValues(val ?? [])}"
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
"mapping": {
|
|
181
|
+
"realComponent": "SelectInput",
|
|
182
|
+
"adapter": null
|
|
183
|
+
}
|
|
184
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Selector",
|
|
3
|
+
"category": "Data Entry",
|
|
4
|
+
"description": "选择器组件,支持分页、搜索、多选等功能",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"复杂选择",
|
|
8
|
+
"数据筛选"
|
|
9
|
+
],
|
|
10
|
+
"useCases": [
|
|
11
|
+
"人员选择",
|
|
12
|
+
"组织选择",
|
|
13
|
+
"资源分配"
|
|
14
|
+
],
|
|
15
|
+
"riskLevel": "normal"
|
|
16
|
+
},
|
|
17
|
+
"variants": {
|
|
18
|
+
"lr": {
|
|
19
|
+
"meaning": "左右布局"
|
|
20
|
+
},
|
|
21
|
+
"tb": {
|
|
22
|
+
"meaning": "上下布局"
|
|
23
|
+
},
|
|
24
|
+
"list": {
|
|
25
|
+
"meaning": "列表布局"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"states": [
|
|
29
|
+
"default",
|
|
30
|
+
"disabled",
|
|
31
|
+
"error"
|
|
32
|
+
],
|
|
33
|
+
"idealProps": {
|
|
34
|
+
"value": {
|
|
35
|
+
"type": "Record<string, any>[] | Record<string, any>",
|
|
36
|
+
"description": "受控值;radio 模式为单对象(初始无选可传 null),check 模式为对象数组;无 selectMode 时无效。**最小回显格式**(协议 S1):value 对象只需含 rowKey 字段即可匹配回显;外部 string[] keys 反查 = `items.filter(it => keys.includes(it[rowKey]))`"
|
|
37
|
+
},
|
|
38
|
+
"defaultValue": {
|
|
39
|
+
"type": "Record<string, any>[] | Record<string, any>",
|
|
40
|
+
"description": "非受控默认值;类型规则同 value"
|
|
41
|
+
},
|
|
42
|
+
"onChange": {
|
|
43
|
+
"type": "(val, node, rowData) => void",
|
|
44
|
+
"description": "值变化回调;**radio 模式 val 为 Record<string,any>**(单对象 / null),**check 模式 val 为 Record<string,any>[]**(数组 / null);node=出站处理后数据(若传 backDataFieldConfig 则字段映射)、rowData=原始;**出站 keys 提取**:`val.map(it => it[rowKey])`(协议 S1);onSelect 返回 true 时不触发"
|
|
45
|
+
},
|
|
46
|
+
"onSelect": {
|
|
47
|
+
"type": "(item, bol, isAllCheck) => boolean | Promise<boolean>",
|
|
48
|
+
"description": "勾选事件;返回 true 阻断 onChange(二次确认场景);先于 onChange 触发"
|
|
49
|
+
},
|
|
50
|
+
"layout": {
|
|
51
|
+
"type": "'lr' | 'tb' | 'list'",
|
|
52
|
+
"values": ["lr", "tb", "list"],
|
|
53
|
+
"default": "lr",
|
|
54
|
+
"description": "布局;lr=左右、tb=上下、list=纯列表(无已选区,适合内嵌)。**三种 layout 的 value/onChange 受控行为完全一致**(协议 S4),只有视觉差异"
|
|
55
|
+
},
|
|
56
|
+
"selectMode": {
|
|
57
|
+
"type": "'radio' | 'check'",
|
|
58
|
+
"values": ["radio", "check"],
|
|
59
|
+
"description": "选择模式;radio=单选;check=多选+全选;undefined=只读浏览"
|
|
60
|
+
},
|
|
61
|
+
"nodeMode": {
|
|
62
|
+
"type": "'leaf' | 'branch'",
|
|
63
|
+
"values": ["leaf", "branch"],
|
|
64
|
+
"default": "branch",
|
|
65
|
+
"description": "节点选择粒度;leaf=只选叶子;branch=分支/叶子皆可"
|
|
66
|
+
},
|
|
67
|
+
"rowKey": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"default": "'key'",
|
|
70
|
+
"description": "唯一标识字段(协议 S2);**影响 disabled/disabledChild 数组匹配 + value 对象匹配 + 缓存 + 出站 val.key**;data 用 id 时必须传 `rowKey='id'`"
|
|
71
|
+
},
|
|
72
|
+
"data": {
|
|
73
|
+
"type": "SelectorAnyJson[]",
|
|
74
|
+
"description": "本地数据源;与 url 互斥"
|
|
75
|
+
},
|
|
76
|
+
"url": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"description": "远程数据请求地址;搭配 method/params/paramsCallback 使用"
|
|
79
|
+
},
|
|
80
|
+
"pagination": {
|
|
81
|
+
"type": "boolean",
|
|
82
|
+
"default": false,
|
|
83
|
+
"description": "是否远程分页;仅 url 模式生效"
|
|
84
|
+
},
|
|
85
|
+
"search": {
|
|
86
|
+
"type": "boolean",
|
|
87
|
+
"default": false,
|
|
88
|
+
"description": "是否显示搜索框。**本地 data 模式内置关键词过滤无需 onSearch**(协议 S5);url 远程自动重发请求;自定义场景传 onSearch"
|
|
89
|
+
},
|
|
90
|
+
"searchTrigger": {
|
|
91
|
+
"type": "'onChange' | 'onEnter'",
|
|
92
|
+
"values": ["onChange", "onEnter"],
|
|
93
|
+
"default": "onChange",
|
|
94
|
+
"description": "搜索触发时机;onEnter 适合远程节流"
|
|
95
|
+
},
|
|
96
|
+
"fieldConfig": {
|
|
97
|
+
"type": "SelectorFieldConfigProps",
|
|
98
|
+
"description": "入站字段映射(mainTitle/subTitle/img/tag/info/children/parentId/key/type · 省略时自动应用默认值,详见 api.ts default 列)"
|
|
99
|
+
},
|
|
100
|
+
"backDataFieldConfig": {
|
|
101
|
+
"type": "SelectorFieldConfigProps",
|
|
102
|
+
"description": "出站字段映射;onChange 数据字段名转换;默认同 fieldConfig(出站字段名与入站一致)"
|
|
103
|
+
},
|
|
104
|
+
"disabled": {
|
|
105
|
+
"type": "string[] | boolean",
|
|
106
|
+
"default": false,
|
|
107
|
+
"description": "禁用;布尔禁全部,数组按 rowKey 禁用部分"
|
|
108
|
+
},
|
|
109
|
+
"isAllCheck": {
|
|
110
|
+
"type": "boolean",
|
|
111
|
+
"default": true,
|
|
112
|
+
"description": "复选模式下是否显示全选;仅 selectMode=check 生效"
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"crossPropInteractions": [
|
|
116
|
+
"value + rowKey = 最小回显对象只需含 rowKey 字段(默认 'key')",
|
|
117
|
+
"selectMode + value 类型:radio→单对象/null,check→对象数组/null",
|
|
118
|
+
"layout='list' + value/onChange = 受控行为与 lr/tb 完全一致(协议 S4)",
|
|
119
|
+
"search + 本地 data = 内置过滤,无需 onSearch;+ url = 自动重发请求",
|
|
120
|
+
"rowKey + data + disabled[] = 三者用同一字段名匹配,改 rowKey 须全链路对齐"
|
|
121
|
+
],
|
|
122
|
+
"commonMisconceptions": [
|
|
123
|
+
"❌ value 必须传完整对象(label/subTitle 等)— 仅需 rowKey 字段即可回显",
|
|
124
|
+
"❌ 本地 data + search 必须传 onSearch — 组件内置过滤,本地场景省略 onSearch",
|
|
125
|
+
"❌ layout='list' 不支持受控 value/onChange — 三种 layout 行为一致",
|
|
126
|
+
"❌ radio 模式初始无选不能传 null — 可传 null 或省略 value prop",
|
|
127
|
+
"❌ data 用 id 字段不改 rowKey — 必须传 rowKey='id' 否则静默 fail"
|
|
128
|
+
],
|
|
129
|
+
"do": [
|
|
130
|
+
"支持服务端分页和搜索",
|
|
131
|
+
"提供面包屑导航",
|
|
132
|
+
"selectMode=check 多选场景显式传 value 数组 + onChange 接数组",
|
|
133
|
+
"data 本地数据源场景与 url 远程数据源场景二选一,不要同时传"
|
|
134
|
+
],
|
|
135
|
+
"dont": [
|
|
136
|
+
"数据量大时不分页",
|
|
137
|
+
"忽略禁用状态",
|
|
138
|
+
"selectMode 切换为 radio 时仍把 value 设为数组(类型不匹配)",
|
|
139
|
+
"onSelect 返回 true 阻断 onChange 后忘记自行更新 value(导致 UI 与 state 不同步)"
|
|
140
|
+
],
|
|
141
|
+
"events": {
|
|
142
|
+
"onChange": {
|
|
143
|
+
"signature": "(val: SelectorAnyJson[] | SelectorAnyJson | null, node: SelectorAnyJson, rowData: SelectorAnyJson) => void",
|
|
144
|
+
"asyncSupported": false,
|
|
145
|
+
"examples": [
|
|
146
|
+
"radio 模式:val 是单个 Record<string,any>,出站取 key 用 val[rowKey]",
|
|
147
|
+
"check 模式:val 是 Record<string,any>[],出站取 key 列表用 val.map(it => it[rowKey])",
|
|
148
|
+
"清空时 val 为 null——受控外部 string[] 兜底:setSelected(val ? val.map(it => it[rowKey]) : [])"
|
|
149
|
+
],
|
|
150
|
+
"commonMistakes": [
|
|
151
|
+
"误把 val 当 rowKey string[] 使用——onChange 返回对象/数组,取 key 需 val[rowKey] 或 map",
|
|
152
|
+
"忘记 rowKey 对齐——data 用 id 字段时传了 rowKey='id' 但 onChange 还用 val.key 取值(实际是 val.id)",
|
|
153
|
+
"radio 模式期望 val 是数组——radio 模式 val 始终是单对象(或 null),不是 [item]"
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
"onSelect": {
|
|
157
|
+
"signature": "(item: SelectorAnyJson | SelectorAnyJson[], bol: boolean, isAllCheck: boolean) => Promise<boolean | void> | (boolean | void)",
|
|
158
|
+
"asyncSupported": true,
|
|
159
|
+
"examples": [
|
|
160
|
+
"返回 true 阻断 onChange:二次确认场景在 onSelect 里弹 Dialog,确认后手动调用 onChange 逻辑",
|
|
161
|
+
"返回 void/false 不阻断,onChange 正常触发",
|
|
162
|
+
"全选时 item 是 SelectorAnyJson[](当前页所有项),isAllCheck=true"
|
|
163
|
+
],
|
|
164
|
+
"commonMistakes": [
|
|
165
|
+
"返回 true 阻断 onChange 后忘记自行更新 value——UI 与 state 不同步",
|
|
166
|
+
"误以为 onSelect 和 onChange 是同一回调——onSelect 先触发且返回值控制是否触发 onChange"
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
"onSearch": {
|
|
170
|
+
"signature": "(val: string, reqParams: SearchFuncProps) => Promise<SearchReqDataProps> | SearchReqDataProps",
|
|
171
|
+
"asyncSupported": true,
|
|
172
|
+
"examples": [
|
|
173
|
+
"自定义搜索:return { data: { data: filteredList } }(不分页)",
|
|
174
|
+
"分页搜索:return { data: { data: { list: arr, total: 100 } } }(pagination=true)"
|
|
175
|
+
],
|
|
176
|
+
"commonMistakes": [
|
|
177
|
+
"本地 data 场景传了 onSearch——本地模式内置过滤无需 onSearch,传了会覆盖内置逻辑",
|
|
178
|
+
"返回格式错误:不分页应返回 data.data = SelectorAnyJson[],分页应返回 data.data = { list, total }"
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
"typescriptPitfalls": [
|
|
183
|
+
{
|
|
184
|
+
"issue": "data 用非 key 字段作唯一 ID 时忘记传 rowKey,导致选中值匹配静默失败",
|
|
185
|
+
"wrong": "data={[{ id: '1', label: 'A' }]} value={[{ id: '1' }]} // 内部用 .key 匹配,id 字段被忽略",
|
|
186
|
+
"right": "data={[{ id: '1', label: 'A' }]} rowKey='id' value={[{ id: '1' }]} // rowKey 告知用 id 字段"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"issue": "radio 模式 value 传对象数组,check 模式 value 传单对象——类型反了",
|
|
190
|
+
"wrong": "selectMode='radio' value={[{ key: '1' }]} // radio 应为单对象",
|
|
191
|
+
"right": "selectMode='radio' value={{ key: '1' }} // 单对象;check 模式才用数组"
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"issue": "disabled 数组传整个对象而非 rowKey 值列表,禁用匹配不生效",
|
|
195
|
+
"wrong": "disabled={[{ key: '1', label: 'A' }]} // src 内部 disabled.indexOf(item.key) 查 string/number",
|
|
196
|
+
"right": "disabled={['1', '2']} // 传 rowKey 值的 string[] 列表"
|
|
197
|
+
}
|
|
198
|
+
],
|
|
199
|
+
"mapping": {
|
|
200
|
+
"realComponent": "Selector",
|
|
201
|
+
"adapter": null
|
|
202
|
+
}
|
|
203
|
+
}
|
package/lib/Selector/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const z=require("../_virtual/jsx-runtime.js"),d=require("react"),ur=require("./selectorMain/index.js"),ir=require("./selectorData/index.js"),Le=require("./util.js"),lr=require("@snack-kit/lib"),fr=require("../Utils/snack-kit-shims.js"),dr=require("../Hooks/useGlobalProps.js"),hr=require("../GlobalContext/useFormatMessage.js"),R=require("../GlobalContext/constant.js"),mr=require("./lang/index.js"),gr=require("../HelperText/index.js");;/* empty css */const ke=(c,V)=>({mainTitle:"label",children:"children",parentId:"parentId",key:V,type:"type",...c}),br=c=>{const{className:V,style:W,rowKey:L="key",layout:k="lr",nodeMode:w="branch",selectMode:b,refresh:X,ctx:Y,url:M,method:Z="Get",value:B,defaultValue:ee,data:A,pagination:je=!1,size:E=10,isLazy:re=!1,isAllCheck:ve=!0,disabled:S,disabledChild:xe,detail:F,detailRender:te,backDataFieldConfig:Ie,search:Pe,searchPlaceholder:Te,searchTrigger:ze="onChange",breadcrumbs:Re=!0,breadcrumbsSeparator:Ve,breadcrumbsHead:N,showbreadcrumbsHead:ae=!0,groupType:ne,groupRange:Be="search",emptyProps:ce,selectRenderItem:Ee,selectRender:$e,onChange:se,onSelect:$,onSearch:oe,onRefresh:J,error:ue=!1,hideErrorDom:He=!0,helperText:_e="",mainHeader:we}=dr.default(c,"Selector"),ie=hr.default("Selector",mr.default),C=ke(c.fieldConfig,L),y={...C,...Ie},[le,H]=d.useState([]),[Me,_]=d.useState(!1),[j,Ae]=d.useState([]),[fe,Fe]=d.useState({}),[v,D]=d.useState([]),[Ne,x]=d.useState(!1),[Je,de]=d.useState({val:""}),[Oe,O]=d.useState([]),[Ke,he]=d.useState(!1),[Ge,I]=d.useState(!0),[Qe,me]=d.useState(),e=d.useRef({jsonData:{},jsonDataCopy:{},oneDataList:[],currentSourceData:[],selectValueJson:{},breadcrumbsList:[],reqId:"",reqParams:{size:E,pagination:!1,isLazy:!1},noLazyReq:!1,reqTimer:null,page:1,searchVal:"",beforeSearchBreadcrumbs:null,searchConfig:{page:1,size:E,reqId:"",currentSourceData:[]}});e.current.searchConfig.size=E,e.current.reqParams.size=E,e.current.reqParams.pagination=je,e.current.reqParams.isLazy=re;const P=c.data||!e.current.reqParams.isLazy&&e.current.noLazyReq;d.useEffect(()=>(ee!==void 0&&G(ee),()=>{e.current.reqTimer&&clearTimeout(e.current.reqTimer)}),[]),d.useEffect(()=>{B!==void 0&&G(B)},[B]),d.useEffect(()=>{if(A){const r=p(A,!1);e.current.oneDataList=r,e.current.currentSourceData=r,D([]),q()}},[A]),d.useEffect(()=>{M&&(D([]),q())},[M]),d.useEffect(()=>{e.current.reqTimer&&clearTimeout(e.current.reqTimer),c.url&&lr.Cancel(e.current.reqId),e.current.reqTimer=setTimeout(()=>{if(P){const r=e.current.currentSourceData;if(e.current.reqParams.pagination){const a=r.slice(0,e.current.page*e.current.reqParams.size);H(a),e.current.page*e.current.reqParams.size>=r.length?_(!1):_(!0)}else H(r);I(!1)}if(c.url){const r={method:Z,url:c.url,ctx:Y,onCancelId:a=>{e.current.reqId=a},data:{parentId:ge(),...c.params}};e.current.reqParams.isLazy?(e.current.reqParams.pagination&&(r.data.size=e.current.reqParams.size,r.data.page=e.current.page),be(c.paramsCallback?c.paramsCallback(r):r)):e.current.noLazyReq||be(c.paramsCallback?c.paramsCallback(r):r)}},50)},[Qe]),d.useEffect(()=>{X&&K()},[X]);const K=()=>{P||(e.current.currentSourceData=[]),q()},Ue=(r,a)=>{let t={key:r[L],parentId:r[C.parentId],type:r[C.type],img:r[C.img],mainTitle:r[C.mainTitle],subTitle:r[C.subTitle],tag:r[C.tag],children:[],disabled:!1,disabledChild:!1,choice:b!==void 0,detail:F,leaf:w==="leaf",data:r};return c.handNodeInfo&&(t=c.handNodeInfo(t,a)),t},p=(r,a,t)=>{const n=[],s={},o=h=>{for(let l=0,i=h.length;l<i;l++){const g=h[l],f=g[L]||"",m=Ue(g,!!t);s[f]=m;const U=C.children;e.current.jsonDataCopy[f]=g,e.current.jsonData[f]=m,g[U]&&o(g[U])}};o(r);const u=Object.keys(s);for(let h=0,l=u.length;h<l;h++){const i=u[h],g=s[i],f=g.parentId||"";if(a){n.push(g);continue}f&&s[f]?(s[f].children||(s[f].children=[]),s[f].children.push(g)):n.push(g)}return n},ge=()=>{let r;return e.current.breadcrumbsList.length>0?r=e.current.breadcrumbsList[e.current.breadcrumbsList.length-1].value:c.breadcrumbsHead&&(r=c.breadcrumbsHead.value),ae&&e.current.breadcrumbsList.length===1&&(r=void 0,c.breadcrumbsHead&&(r=c.breadcrumbsHead.value)),r},be=async r=>{I(!0);const{data:a,error:t}=await Le.reqFunc(r);if(t){I(!1),e.current.reqParams.isLazy&&e.current.reqParams.pagination&&e.current.page!==1&&(e.current.page=e.current.page-1);return}if(c.requestCallback){c.requestCallback(a,n=>{I(!1),Ce(n)});return}I(!1),Ce(a)},Ce=r=>{if(e.current.reqParams.isLazy)if(e.current.reqParams.pagination){const a=r.data||{},t=a.list||[],n=a.total,s=p(t,!0),o=[...e.current.currentSourceData,...s];e.current.currentSourceData=o,H(o),e.current.page*e.current.reqParams.size>=n?_(!1):_(!0)}else{const a=r.data||[],t=p(a,!0);e.current.currentSourceData=t,H(t)}else{e.current.noLazyReq=!0;const a=r.data||[],t=p(a,!1);e.current.oneDataList=t,e.current.currentSourceData=t,q()}},q=()=>{e.current.page=1,me(Math.random())},G=r=>{let a=r?[r]:[];r instanceof Array&&(a=[...r]);const t=fr.ArrayToObject(y.key,a);e.current.selectValueJson=t,Fe(t),Ae([...a])},We=(r,a)=>{let t=[...v];a&&(t=[],e.current.beforeSearchBreadcrumbs===null&&(e.current.beforeSearchBreadcrumbs=[...v])),t.push({label:r.mainTitle,value:r.key||""}),D(t)},Xe=(r,a)=>{We(r,a),P?(e.current.currentSourceData=r.children||[],q()):e.current.reqParams.isLazy&&(e.current.reqParams.pagination&&(e.current.currentSourceData=[]),q())},Q=r=>{const a=["key","img","mainTitle","subTitle","tag"];c.groupType&&c.groupType.length>0&&a.push("type");const t={};for(let n=0,s=a.length;n<s;n++){const o=a[n],u=y[o];u&&(t[u]=r[o])}return t},T=(r,a,t,n)=>{se&&se(r,t,n),B==null&&G(r||[])},Ye=async r=>{const a=r.key||"";if(b==="radio"&&fe[a])return;const t=e.current.selectValueJson[a];if(!($&&await $(r,b==="radio"?!0:!t,!1))){if(b==="radio"){const n=Q(r);T(n,[n],e.current.jsonData[a],e.current.jsonDataCopy[a])}if(b==="check"){const n=[],s={},o={};for(let u=0,h=j.length;u<h;u++){const l=j[u];if(!t||r.key!==l[y.key]){const i=l[y.key]||"";s[i]=e.current.jsonData[i],o[i]=e.current.jsonDataCopy[i],n.push(l)}}if(!t){const u=Q(r);s[a]=e.current.jsonData[a],o[a]=e.current.jsonDataCopy[a],n.push(u)}T(n,n,s,o)}}},Ze=r=>!!(S&&(S===!0||S instanceof Array&&r.key&&S.indexOf(r.key)!==-1)||r.disabled),er=async r=>{const a=[...le],t=[...j],n=[],s={},o={},u=[],h=[];for(let i=0,g=a.length;i<g;i++){const f=a[i],m=f.key||"";Ze(f)||(r?e.current.selectValueJson[m]||(t.push(Q(f)),h.push(f)):e.current.selectValueJson[m]&&(u.push(m),h.push(f)))}for(let i=0,g=t.length;i<g;i++){const f=t[i],m=f[y.key]||"";r?(s[m]=e.current.jsonData[m],o[m]=e.current.jsonDataCopy[m]):u.indexOf(m)===-1&&(s[m]=e.current.jsonData[m],o[m]=e.current.jsonDataCopy[m],n.push(f))}const l=r?t:n;$&&await $(h,!!r,!1)||T(l,l,s,o)},rr=r=>{if(r){e.current.searchConfig.page=e.current.searchConfig.page+1,qe();return}e.current.page=e.current.page+1,me(Math.random())},Se=()=>{const r=[...v],a=N||{label:ie({id:"root"}),value:"_paraui_first_floor"};return e.current.searchVal&&r.unshift({label:c.searchBreadcrumbs?c.searchBreadcrumbs:ie({id:"searchResult"}),value:"_paraui_search"}),ae&&r.unshift(a),e.current.breadcrumbsList=r,r},tr=r=>{const a=[];for(let t=0,n=v.length;t<n;t++){const s=v[t];if(a.push(s),s.value===r.value)break}return a},ar=r=>{const a=e.current.breadcrumbsList;if(a.length===0||r.value===a[a.length-1].value)return;const t=r.value||"",n=N?N.value:"_paraui_first_floor";if(r.value==="_paraui_search"){de({val:e.current.searchVal}),D([...e.current.beforeSearchBreadcrumbs||[]]);return}if(e.current.beforeSearchBreadcrumbs&&r.value===n&&(e.current.searchVal="",e.current.beforeSearchBreadcrumbs=null,de({val:""}),Se()),D(t===n?[]:tr(r)),P)if(t===n)e.current.currentSourceData=[...e.current.oneDataList];else{const s=e.current.jsonData[t];e.current.currentSourceData=s[C.children]||[]}else e.current.reqParams.isLazy&&e.current.reqParams.pagination&&(e.current.currentSourceData=[]);q()},ye=r=>{const a=r.isTree;if(e.current.reqParams.pagination){const t=r.data||{},n=t.list||[],s=t.total,o=p(n,!a,!0),u=[...e.current.searchConfig.currentSourceData,...o];e.current.searchConfig.currentSourceData=u,O(u),e.current.searchConfig.page*e.current.searchConfig.size>=s?he(!1):he(!0)}else{const t=r.data||[],n=p(t,!a,!0);e.current.searchConfig.currentSourceData=n,O(n)}},De=r=>{const{data:a,error:t}=r;if(t){x(!1),e.current.reqParams.pagination&&e.current.searchConfig.page!==1&&(e.current.searchConfig.page=e.current.searchConfig.page-1);return}if(c.requestCallback){c.requestCallback(a,n=>{x(!1),ye(n)},!0);return}x(!1),ye(a)},qe=async()=>{if(oe){const t={};e.current.reqParams.pagination&&(t.size=e.current.searchConfig.size,t.page=e.current.searchConfig.page);const n=await oe(e.current.searchVal,t);De(n);return}let r={method:Z,url:c.url||"",ctx:Y,onCancelId:t=>{e.current.reqId=t},data:{searchKey:e.current.searchVal?.trim(),...c.params}};e.current.reqParams.pagination&&(r.data.size=e.current.searchConfig.size,r.data.page=e.current.searchConfig.page),r=c.paramsCallback?c.paramsCallback(r,!0):r;const a=await Le.reqFunc(r);De(a)},nr=(r,a)=>{let t=a;const n=s=>{for(let o=0,u=s.length;o<u;o++){const h=s[o],l=h[L],i=h.children||[];if(l===r){t=i;return}n(i)}};return n(a),t},cr=async(r,a)=>{if(x(!0),e.current.searchVal=r,r===""){if(O([]),x(!1),e.current.beforeSearchBreadcrumbs){if(e.current.breadcrumbsList=[...e.current.beforeSearchBreadcrumbs],D([...e.current.beforeSearchBreadcrumbs]),e.current.beforeSearchBreadcrumbs=null,P){const t=ge(),n=nr(t,e.current.oneDataList);e.current.currentSourceData=n}K()}a&&(K(),J&&J());return}e.current.searchConfig.page=1,e.current.searchConfig.currentSourceData=[],qe()},sr=(r,a)=>{if(b==="radio"&&T(null,[],{},{}),b==="check"){const t=[...j];t.splice(a,1);const n={},s={};for(let o=0,u=t.length;o<u;o++){const l=t[o][y.key]||"";n[l]=e.current.jsonData[l],s[l]=e.current.jsonDataCopy[l]}T(t,t,n,s)}},pe=()=>z.jsxRuntimeExports.jsx(ir.default,{layout:k==="tb"?"tag":"node",backDataFieldConfig:y,groupType:ne,handSelectorNodeInfo:c.handSelectorNodeInfo,list:j,nodeMode:w,detail:F,detailRender:te,emptyProps:ce,onClose:sr,selectDataTitleRender:c.selectDataTitleRender,selectRenderItem:Ee,selectRender:$e,disabled:S}),or=()=>{let r=`${R.$prefixCls}-selector`;return V&&(r+=` ${V}`),k&&(r+=` ${R.$prefixCls}-selector-${k}`),b&&(r+=` ${R.$prefixCls}-selector-${b}`),S===!0&&(r+=` ${R.$prefixCls}-selector-disabled`),ue&&(r+=` ${R.$prefixCls}-selector-error`),r};return z.jsxRuntimeExports.jsxs("div",{className:or(),style:W,children:[z.jsxRuntimeExports.jsxs("div",{className:"selector-content",children:[k==="tb"&&pe(),z.jsxRuntimeExports.jsx(ur.default,{url:M,rowKey:L,value:fe,loadMore:Me,isAllCheck:ve,list:le,groupType:ne,groupRange:Be,fieldConfig:C,nodeMode:w,selectMode:b,isLazy:re,detail:F,detailRender:te,search:Pe,searchTrigger:ze,searchPlaceholder:Te,searchLoading:Ne,searchVal:Je,disabled:S,disabledChild:xe,loading:Ge,searchLoadMore:Ke,searchList:Oe,breadcrumbs:Re,breadcrumbsSeparator:Ve,breadcrumbsList:Se(),emptyProps:ce,mainHeader:we,onLevel:Xe,onSelect:Ye,onLoad:rr,onAllCheck:er,onClickBreadcrumbs:ar,onSearch:cr,onRefresh:J}),k==="lr"&&pe()]}),z.jsxRuntimeExports.jsx(gr.default,{error:ue,helperText:_e,hideErrorDom:He})]})};exports.default=br;exports.handFieldConfig=ke;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const z=require("../_virtual/jsx-runtime.js"),d=require("react"),ur=require("./selectorMain/index.js"),ir=require("./selectorData/index.js"),Le=require("./util.js"),lr=require("@snack-kit/lib"),fr=require("../Utils/snack-kit-shims.js"),dr=require("../Hooks/useGlobalProps.js"),hr=require("../GlobalContext/useFormatMessage.js"),R=require("../GlobalContext/constant.js"),mr=require("./lang/index.js"),gr=require("../HelperText/index.js");;/* empty css */const ke=(c,V)=>({mainTitle:"label",children:"children",parentId:"parentId",key:V,type:"type",...c}),br=c=>{const{className:V,style:W,rowKey:L="key",layout:k="lr",nodeMode:A="branch",selectMode:b,refresh:X,ctx:Y,url:w,method:Z="Get",value:B,defaultValue:ee,data:M,pagination:je=!1,size:E=10,isLazy:re=!1,isAllCheck:ve=!0,disabled:S,disabledChild:xe,detail:F,detailRender:te,backDataFieldConfig:Ie,search:Pe,searchPlaceholder:Te,searchTrigger:ze="onChange",breadcrumbs:Re=!0,breadcrumbsSeparator:Ve,breadcrumbsHead:N,showbreadcrumbsHead:ae=!0,groupType:ne,groupRange:Be="search",emptyProps:ce,selectRenderItem:Ee,selectRender:$e,onChange:se,onSelect:$,onSearch:oe,onRefresh:J,error:ue=!1,hideErrorDom:He=!0,helperText:_e="",mainHeader:Ae}=dr.default(c,"Selector"),ie=hr.default("Selector",mr.default),C=ke(c.fieldConfig,L),y={...C,...Ie},[le,H]=d.useState([]),[we,_]=d.useState(!1),[j,Me]=d.useState([]),[fe,Fe]=d.useState({}),[v,D]=d.useState([]),[Ne,x]=d.useState(!1),[Je,de]=d.useState({val:""}),[Oe,O]=d.useState([]),[Ke,he]=d.useState(!1),[Ge,I]=d.useState(!0),[Qe,me]=d.useState(),e=d.useRef({jsonData:{},jsonDataCopy:{},oneDataList:[],currentSourceData:[],selectValueJson:{},breadcrumbsList:[],reqId:"",reqParams:{size:E,pagination:!1,isLazy:!1},noLazyReq:!1,reqTimer:null,page:1,searchVal:"",beforeSearchBreadcrumbs:null,searchConfig:{page:1,size:E,reqId:"",currentSourceData:[]}});e.current.searchConfig.size=E,e.current.reqParams.size=E,e.current.reqParams.pagination=je,e.current.reqParams.isLazy=re;const P=c.data||!e.current.reqParams.isLazy&&e.current.noLazyReq;d.useEffect(()=>(ee!==void 0&&G(ee),()=>{e.current.reqTimer&&clearTimeout(e.current.reqTimer)}),[]),d.useEffect(()=>{B!==void 0&&G(B)},[B]),d.useEffect(()=>{if(M){const r=p(M,!1);e.current.oneDataList=r,e.current.currentSourceData=r,D([]),q()}},[M]),d.useEffect(()=>{w&&(D([]),q())},[w]),d.useEffect(()=>{e.current.reqTimer&&clearTimeout(e.current.reqTimer),c.url&&lr.Cancel(e.current.reqId),e.current.reqTimer=setTimeout(()=>{if(P){const r=e.current.currentSourceData;if(e.current.reqParams.pagination){const a=r.slice(0,e.current.page*e.current.reqParams.size);H(a),e.current.page*e.current.reqParams.size>=r.length?_(!1):_(!0)}else H(r);I(!1)}if(c.url){const r={method:Z,url:c.url,ctx:Y,onCancelId:a=>{e.current.reqId=a},data:{parentId:ge(),...c.params}};e.current.reqParams.isLazy?(e.current.reqParams.pagination&&(r.data.size=e.current.reqParams.size,r.data.page=e.current.page),be(c.paramsCallback?c.paramsCallback(r):r)):e.current.noLazyReq||be(c.paramsCallback?c.paramsCallback(r):r)}},50)},[Qe]),d.useEffect(()=>{X&&K()},[X]);const K=()=>{P||(e.current.currentSourceData=[]),q()},Ue=(r,a)=>{let t={key:r[L],parentId:r[C.parentId],type:r[C.type],img:r[C.img],mainTitle:r[C.mainTitle],subTitle:r[C.subTitle],tag:r[C.tag],children:[],disabled:!1,disabledChild:!1,choice:b!==void 0,detail:F,leaf:A==="leaf",data:r};return c.handNodeInfo&&(t=c.handNodeInfo(t,a)),t},p=(r,a,t)=>{const n=[],s={},o=h=>{for(let l=0,i=h.length;l<i;l++){const g=h[l],f=g[L]||"",m=Ue(g,!!t);s[f]=m;const U=C.children;e.current.jsonDataCopy[f]=g,e.current.jsonData[f]=m,g[U]&&o(g[U])}};o(r);const u=Object.keys(s);for(let h=0,l=u.length;h<l;h++){const i=u[h],g=s[i],f=g.parentId||"";if(a){n.push(g);continue}f&&s[f]?(s[f].children||(s[f].children=[]),s[f].children.push(g)):n.push(g)}return n},ge=()=>{let r;return e.current.breadcrumbsList.length>0?r=e.current.breadcrumbsList[e.current.breadcrumbsList.length-1].value:c.breadcrumbsHead&&(r=c.breadcrumbsHead.value),ae&&e.current.breadcrumbsList.length===1&&(r=void 0,c.breadcrumbsHead&&(r=c.breadcrumbsHead.value)),r},be=async r=>{I(!0);const{data:a,error:t}=await Le.reqFunc(r);if(t){I(!1),e.current.reqParams.isLazy&&e.current.reqParams.pagination&&e.current.page!==1&&(e.current.page=e.current.page-1);return}if(c.requestCallback){c.requestCallback(a,n=>{I(!1),Ce(n)});return}I(!1),Ce(a)},Ce=r=>{if(e.current.reqParams.isLazy)if(e.current.reqParams.pagination){const a=r.data||{},t=a.list||[],n=a.total,s=p(t,!0),o=[...e.current.currentSourceData,...s];e.current.currentSourceData=o,H(o),e.current.page*e.current.reqParams.size>=n?_(!1):_(!0)}else{const a=r.data||[],t=p(a,!0);e.current.currentSourceData=t,H(t)}else{e.current.noLazyReq=!0;const a=r.data||[],t=p(a,!1);e.current.oneDataList=t,e.current.currentSourceData=t,q()}},q=()=>{e.current.page=1,me(Math.random())},G=r=>{let a=r?Array.isArray(r)?r:[r]:[];r instanceof Array&&(a=[...r]);const t=fr.ArrayToObject(y.key,a);e.current.selectValueJson=t,Fe(t),Me([...a])},We=(r,a)=>{let t=[...v];a&&(t=[],e.current.beforeSearchBreadcrumbs===null&&(e.current.beforeSearchBreadcrumbs=[...v])),t.push({label:r.mainTitle,value:r.key||""}),D(t)},Xe=(r,a)=>{We(r,a),P?(e.current.currentSourceData=r.children||[],q()):e.current.reqParams.isLazy&&(e.current.reqParams.pagination&&(e.current.currentSourceData=[]),q())},Q=r=>{const a=["key","img","mainTitle","subTitle","tag"];c.groupType&&c.groupType.length>0&&a.push("type");const t={};for(let n=0,s=a.length;n<s;n++){const o=a[n],u=y[o];u&&(t[u]=r[o])}return t},T=(r,a,t,n)=>{se&&se(r,t,n),B==null&&G(r||[])},Ye=async r=>{const a=r.key||"";if(b==="radio"&&fe[a])return;const t=e.current.selectValueJson[a];if(!($&&await $(r,b==="radio"?!0:!t,!1))){if(b==="radio"){const n=Q(r);T(n,[n],e.current.jsonData[a],e.current.jsonDataCopy[a])}if(b==="check"){const n=[],s={},o={};for(let u=0,h=j.length;u<h;u++){const l=j[u];if(!t||r.key!==l[y.key]){const i=l[y.key]||"";s[i]=e.current.jsonData[i],o[i]=e.current.jsonDataCopy[i],n.push(l)}}if(!t){const u=Q(r);s[a]=e.current.jsonData[a],o[a]=e.current.jsonDataCopy[a],n.push(u)}T(n,n,s,o)}}},Ze=r=>!!(S&&(S===!0||S instanceof Array&&r.key&&S.indexOf(r.key)!==-1)||r.disabled),er=async r=>{const a=[...le],t=[...j],n=[],s={},o={},u=[],h=[];for(let i=0,g=a.length;i<g;i++){const f=a[i],m=f.key||"";Ze(f)||(r?e.current.selectValueJson[m]||(t.push(Q(f)),h.push(f)):e.current.selectValueJson[m]&&(u.push(m),h.push(f)))}for(let i=0,g=t.length;i<g;i++){const f=t[i],m=f[y.key]||"";r?(s[m]=e.current.jsonData[m],o[m]=e.current.jsonDataCopy[m]):u.indexOf(m)===-1&&(s[m]=e.current.jsonData[m],o[m]=e.current.jsonDataCopy[m],n.push(f))}const l=r?t:n;$&&await $(h,!!r,!1)||T(l,l,s,o)},rr=r=>{if(r){e.current.searchConfig.page=e.current.searchConfig.page+1,qe();return}e.current.page=e.current.page+1,me(Math.random())},Se=()=>{const r=[...v],a=N||{label:ie({id:"root"}),value:"_paraui_first_floor"};return e.current.searchVal&&r.unshift({label:c.searchBreadcrumbs?c.searchBreadcrumbs:ie({id:"searchResult"}),value:"_paraui_search"}),ae&&r.unshift(a),e.current.breadcrumbsList=r,r},tr=r=>{const a=[];for(let t=0,n=v.length;t<n;t++){const s=v[t];if(a.push(s),s.value===r.value)break}return a},ar=r=>{const a=e.current.breadcrumbsList;if(a.length===0||r.value===a[a.length-1].value)return;const t=r.value||"",n=N?N.value:"_paraui_first_floor";if(r.value==="_paraui_search"){de({val:e.current.searchVal}),D([...e.current.beforeSearchBreadcrumbs||[]]);return}if(e.current.beforeSearchBreadcrumbs&&r.value===n&&(e.current.searchVal="",e.current.beforeSearchBreadcrumbs=null,de({val:""}),Se()),D(t===n?[]:tr(r)),P)if(t===n)e.current.currentSourceData=[...e.current.oneDataList];else{const s=e.current.jsonData[t];e.current.currentSourceData=s[C.children]||[]}else e.current.reqParams.isLazy&&e.current.reqParams.pagination&&(e.current.currentSourceData=[]);q()},ye=r=>{const a=r.isTree;if(e.current.reqParams.pagination){const t=r.data||{},n=t.list||[],s=t.total,o=p(n,!a,!0),u=[...e.current.searchConfig.currentSourceData,...o];e.current.searchConfig.currentSourceData=u,O(u),e.current.searchConfig.page*e.current.searchConfig.size>=s?he(!1):he(!0)}else{const t=r.data||[],n=p(t,!a,!0);e.current.searchConfig.currentSourceData=n,O(n)}},De=r=>{const{data:a,error:t}=r;if(t){x(!1),e.current.reqParams.pagination&&e.current.searchConfig.page!==1&&(e.current.searchConfig.page=e.current.searchConfig.page-1);return}if(c.requestCallback){c.requestCallback(a,n=>{x(!1),ye(n)},!0);return}x(!1),ye(a)},qe=async()=>{if(oe){const t={};e.current.reqParams.pagination&&(t.size=e.current.searchConfig.size,t.page=e.current.searchConfig.page);const n=await oe(e.current.searchVal,t);De(n);return}let r={method:Z,url:c.url||"",ctx:Y,onCancelId:t=>{e.current.reqId=t},data:{searchKey:e.current.searchVal?.trim(),...c.params}};e.current.reqParams.pagination&&(r.data.size=e.current.searchConfig.size,r.data.page=e.current.searchConfig.page),r=c.paramsCallback?c.paramsCallback(r,!0):r;const a=await Le.reqFunc(r);De(a)},nr=(r,a)=>{let t=a;const n=s=>{for(let o=0,u=s.length;o<u;o++){const h=s[o],l=h[L],i=h.children||[];if(l===r){t=i;return}n(i)}};return n(a),t},cr=async(r,a)=>{if(x(!0),e.current.searchVal=r,r===""){if(O([]),x(!1),e.current.beforeSearchBreadcrumbs){if(e.current.breadcrumbsList=[...e.current.beforeSearchBreadcrumbs],D([...e.current.beforeSearchBreadcrumbs]),e.current.beforeSearchBreadcrumbs=null,P){const t=ge(),n=nr(t,e.current.oneDataList);e.current.currentSourceData=n}K()}a&&(K(),J&&J());return}e.current.searchConfig.page=1,e.current.searchConfig.currentSourceData=[],qe()},sr=(r,a)=>{if(b==="radio"&&T(null,[],{},{}),b==="check"){const t=[...j];t.splice(a,1);const n={},s={};for(let o=0,u=t.length;o<u;o++){const l=t[o][y.key]||"";n[l]=e.current.jsonData[l],s[l]=e.current.jsonDataCopy[l]}T(t,t,n,s)}},pe=()=>z.jsxRuntimeExports.jsx(ir.default,{layout:k==="tb"?"tag":"node",backDataFieldConfig:y,groupType:ne,handSelectorNodeInfo:c.handSelectorNodeInfo,list:j,nodeMode:A,detail:F,detailRender:te,emptyProps:ce,onClose:sr,selectDataTitleRender:c.selectDataTitleRender,selectRenderItem:Ee,selectRender:$e,disabled:S}),or=()=>{let r=`${R.$prefixCls}-selector`;return V&&(r+=` ${V}`),k&&(r+=` ${R.$prefixCls}-selector-${k}`),b&&(r+=` ${R.$prefixCls}-selector-${b}`),S===!0&&(r+=` ${R.$prefixCls}-selector-disabled`),ue&&(r+=` ${R.$prefixCls}-selector-error`),r};return z.jsxRuntimeExports.jsxs("div",{className:or(),style:W,children:[z.jsxRuntimeExports.jsxs("div",{className:"selector-content",children:[k==="tb"&&pe(),z.jsxRuntimeExports.jsx(ur.default,{url:w,rowKey:L,value:fe,loadMore:we,isAllCheck:ve,list:le,groupType:ne,groupRange:Be,fieldConfig:C,nodeMode:A,selectMode:b,isLazy:re,detail:F,detailRender:te,search:Pe,searchTrigger:ze,searchPlaceholder:Te,searchLoading:Ne,searchVal:Je,disabled:S,disabledChild:xe,loading:Ge,searchLoadMore:Ke,searchList:Oe,breadcrumbs:Re,breadcrumbsSeparator:Ve,breadcrumbsList:Se(),emptyProps:ce,mainHeader:Ae,onLevel:Xe,onSelect:Ye,onLoad:rr,onAllCheck:er,onClickBreadcrumbs:ar,onSearch:cr,onRefresh:J}),k==="lr"&&pe()]}),z.jsxRuntimeExports.jsx(gr.default,{error:ue,helperText:_e,hideErrorDom:He})]})};exports.default=br;exports.handFieldConfig=ke;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -409,7 +409,7 @@ export interface SelectorProps extends HelperTextDetailProps {
|
|
|
409
409
|
/** 处理请求参数 */
|
|
410
410
|
paramsCallback?: (data: ReqFuncProps, isSearch?: boolean) => ReqFuncProps;
|
|
411
411
|
/** 请求回调参数 requestCallback(data, cb) cb(data) 需要回调数据回来 */
|
|
412
|
-
requestCallback?: (data:
|
|
412
|
+
requestCallback?: (data: Record<string, unknown>, cb: (data: SelectorAnyJson[]) => void, isSearch?: boolean) => void;
|
|
413
413
|
/** 选中数据标题render */
|
|
414
414
|
selectDataTitleRender?: (list?: SelectorAnyJson[]) => ReactNode;
|
|
415
415
|
/** 选中每一项自定义 */
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const s=require("../../_virtual/jsx-runtime.js"),o=require("react"),ne=require("../selectorNode/index.js"),ue=require("../../Search/index.js"),he=require("../../Breadcrumbs/index.js"),fe=require("../../Loading/index.js"),me=require("../../Empty/index.js"),xe=require("../../node_modules/@para-ui/icons/Search/index.js"),pe=require("../../node_modules/@para-ui/icons/Refresh/index.js"),je=require("../../Utils/snack-kit-shims.js"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const s=require("../../_virtual/jsx-runtime.js"),o=require("react"),ne=require("../selectorNode/index.js"),ue=require("../../Search/index.js"),he=require("../../Breadcrumbs/index.js"),fe=require("../../Loading/index.js"),me=require("../../Empty/index.js"),xe=require("../../node_modules/@para-ui/icons/Search/index.js"),pe=require("../../node_modules/@para-ui/icons/Refresh/index.js"),je=require("../../Utils/snack-kit-shims.js"),ie=require("../../GlobalContext/useFormatMessage.js"),le=require("../lang/index.js"),q=require("../../GlobalContext/constant.js");;/* empty css */const ce=P=>{const{className:C,value:f,rowKey:re="key",nodeMode:A="branch",selectMode:m,loadMore:k=!1,isAllCheck:j=!1,detail:V,detailRender:B,isLazy:G,list:i,groupType:a,breadcrumbs:z,breadcrumbsSeparator:D="-",breadcrumbsList:R=[],fieldConfig:Q,disabled:d,disabledChild:u,emptyProps:S,loading:x,onClickBreadcrumbs:w,onLevel:I,onSelect:v,onLoad:_,onAllCheck:E}=P,y=ie.default("Selector",le.default),[U,W]=o.useState({}),p=o.useRef({listTypeJson:{},fieldConfig:{},resizeTimer:void 0}),b=o.useRef(null),L=o.useRef(null);p.current.listTypeJson=je.ArrayToObject("value",a),p.current.fieldConfig=Q||{},o.useEffect(()=>(T(),()=>{clearTimeout(p.current.resizeTimer)}),[]),o.useEffect(()=>{if(i&&a&&a.length>0){const e={};for(let t=0,c=i.length;t<c;t++){const r=i[t],l=r.type;e[l]||(e[l]=[]),e[l].push(r)}W(e)}},[i]);const T=()=>{clearTimeout(p.current.resizeTimer),p.current.resizeTimer=setTimeout(()=>{N()},100)},N=()=>{if(!L.current||!b.current)return;const e=b.current,t=L.current;if(t.classList.remove("selector-main-list-scroll-top","selector-main-list-scroll-bottom","selector-main-list-scroll-middle"),!(e.scrollHeight<=e.clientHeight)){if(e.scrollTop===0){t.classList.add("selector-main-list-scroll-top");return}if(e.clientHeight+e.scrollTop===e.scrollHeight){t.classList.add("selector-main-list-scroll-bottom");return}t.classList.add("selector-main-list-scroll-middle")}},F=()=>{const e={checked:!1,indeterminate:!1};if(!f||!i||i.length===0)return e;for(let t=0,c=i.length;t<c;t++){const r=i[t],l=r.key;if(H(r)){f[l]&&(e.checked=!0);continue}f[l]?e.checked=!0:e.indeterminate=!0}return e.checked&&e.indeterminate?(e.checked=!1,e):(!e.checked&&e.indeterminate&&(e.indeterminate=!1),e)},H=e=>!!(d&&(d===!0||d instanceof Array&&e.key&&d.indexOf(e.key)!==-1)||e.disabled),O=e=>!!(u&&(u===!0||u instanceof Array&&e.key&&u.indexOf(e.key)!==-1)||e.disabledChild),X=()=>{if(!j||m!=="check")return null;const e=F(),t=()=>{let c=!0;e.checked&&(c=!1),E&&E(c)};return s.jsxRuntimeExports.jsx(ne.default,{disabled:d===!0,nodeMode:"branch",mainTitle:y({id:"selectAll"}),selectMode:"check",...e,onSelect:t,className:"selector-all-check"})},Y=()=>{_&&_()},J=()=>k?s.jsxRuntimeExports.jsx("div",{className:"selector-main-list-more",onClick:Y,children:s.jsxRuntimeExports.jsx("span",{className:"more-btn",children:y({id:"seeMore"})})}):null,M=e=>{let t=!1;return f&&f[e.key]&&(t=!0),t},K=e=>{const t={useCase:"view",detail:V,nodeMode:A,disabled:H(e),disabledChild:O(e),onLevel:()=>I&&I(e),onSelect:()=>v&&v(e),checked:M(e)};e.leaf!==void 0&&(t.nodeMode=e.leaf?"leaf":"branch");const c=["img","mainTitle","subTitle","tag","tagStyle"];for(let r=0,l=c.length;r<l;r++){const $=c[r];t[$]=e[$]}if(e.choice!==!1&&m&&(t.selectMode=m),G)t.child=e.child;else{const r=e.children||[];r&&r.length>0&&(t.child=!0),e.child!==void 0&&(t.child=e.child)}return B&&(t.detailRender=async()=>await B(e,!0)),e.detail!==void 0&&(t.detail=e.detail),t},g=e=>e?.map((t,c)=>s.jsxRuntimeExports.jsx(ne.default,{...K(t)},c)),h=()=>a&&a.length>0?s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:a.map((e,t)=>{const c=e.value,r=U[c]||[];let l="selector-group-title";return t===0&&(l+=" selector-group-title-first"),s.jsxRuntimeExports.jsxs(o.Fragment,{children:[r.length>0&&s.jsxRuntimeExports.jsx("div",{className:l,children:e.label||c}),g(r)]},t)})}):g(i||[]),Z=e=>{w&&w(e)},ee=()=>!z||R.length===0?null:s.jsxRuntimeExports.jsx("div",{className:"nav-box",children:s.jsxRuntimeExports.jsx(he.Breadcrumbs,{minNum:1,list:R,separator:D,onClickItem:Z})}),te=()=>i?.length===0&&!x?s.jsxRuntimeExports.jsx("div",{className:"selector-main-list-no-data",children:s.jsxRuntimeExports.jsx(me.default,{...S,size:S?.size||"small"})}):s.jsxRuntimeExports.jsxs("div",{className:"selector-main-list",children:[X(),s.jsxRuntimeExports.jsx("div",{className:"selector-main-list-content",ref:L,children:s.jsxRuntimeExports.jsx("div",{className:"selector-main-list-content-box",ref:b,onScroll:N,children:h()})}),J()]}),se=()=>{let e="selector-main-content";return C&&(e+=` ${C}`),d&&(e+=" selector-main-content-disabled"),j&&m==="check"&&(e+=" selector-main-content-all-check"),k&&(e+=" selector-main-content-load-more"),e};return T(),s.jsxRuntimeExports.jsxs("div",{className:se(),children:[ee(),te()]})},be=P=>{const{className:C,style:f,url:re,value:A,rowKey:m="key",nodeMode:k="branch",selectMode:j,loadMore:V=!1,searchLoadMore:B=!1,isAllCheck:G=!1,disabled:i,disabledChild:a,detail:z,detailRender:D,isLazy:R,list:Q,groupType:d,groupRange:u,search:S,searchVal:x="",searchPlaceholder:w,searchTrigger:I,searchLoading:v,searchList:_,loading:E,mainHeader:y,breadcrumbs:U,breadcrumbsSeparator:W="-",breadcrumbsList:p=[],fieldConfig:b,onClickBreadcrumbs:L,onLevel:T,onSelect:N,onLoad:F,onAllCheck:H,onSearch:O,onRefresh:X}=P,Y=ie.default("Selector",le.default),[J,M]=o.useState(!1),[K,g]=o.useState(""),h=o.useRef({searchTimer:void 0,searchStr:""});o.useEffect(()=>{x&&(h.current.searchStr=x.val,g(x.val),x.val!==""&&M(!0))},[x]);const Z=n=>{g(n),h.current.searchStr=n,I!=="onEnter"&&e()},ee=()=>{e(!0)},te=()=>{e(!0)},se=()=>{e()},e=n=>{clearTimeout(h.current.searchTimer),h.current.searchTimer=setTimeout(()=>{M(!!h.current.searchStr),O&&O(h.current.searchStr,!!n)},300)},t=()=>{const n=()=>K?s.jsxRuntimeExports.jsx(xe.Search,{}):!re&&!X?null:s.jsxRuntimeExports.jsx(pe.Refresh,{});return s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:S&&s.jsxRuntimeExports.jsx(ue.Search,{className:"selectot-main-search",value:K,rightIconExist:!0,showBtn:!1,rightIcon:n(),btnType:"inside",onChange:Z,onEnter:ee,onClear:se,placeholder:w||Y({id:"pleaseEnter"}),onClickBtn:te})})},c=n=>de=>{n&&(h.current.searchStr="",g(""),M(!1)),T&&T(de,n)},r=n=>()=>{F&&F(n)},l=()=>s.jsxRuntimeExports.jsx(ce,{className:"selector-main-list-box",value:A,rowKey:m,nodeMode:k,selectMode:j,loadMore:V,isAllCheck:G,disabled:i,disabledChild:a,detail:z,detailRender:D,isLazy:R,list:Q,loading:E,groupType:u==="list"||u==="searchList"?d:void 0,breadcrumbs:U,breadcrumbsSeparator:W,breadcrumbsList:p,fieldConfig:b,onClickBreadcrumbs:L,onLevel:c(!1),onSelect:N,onLoad:r(!1),onAllCheck:H},"list"),$=()=>{if(J)return s.jsxRuntimeExports.jsx(ce,{className:"selector-main-search-content",value:A,rowKey:m,nodeMode:k,selectMode:j,loadMore:B,isAllCheck:!1,disabled:i,disabledChild:a,detail:z,detailRender:D,isLazy:R,list:_,groupType:u==="search"||u==="searchList"?d:void 0,fieldConfig:b,loading:v,onSelect:N,onLevel:c(!0),onLoad:r(!0)},"search")},oe=()=>{if(v||E)return s.jsxRuntimeExports.jsx(fe.Loading,{})},ae=()=>{let n=`${q.$prefixCls}-selector-main`;return C&&(n+=` ${C}`),j==="check"&&(n+=` ${q.$prefixCls}-selector-main-select`),J&&(n+=` ${q.$prefixCls}-selector-main-show-search`),S&&(n+=` ${q.$prefixCls}-selector-main-search`),i===!0&&(n+=` ${q.$prefixCls}-selector-main-disabled`),n};return s.jsxRuntimeExports.jsxs("div",{className:ae(),style:f,children:[t(),y&&s.jsxRuntimeExports.jsx("div",{className:"selector-main-header",children:y}),s.jsxRuntimeExports.jsxs("div",{className:"selector-main-box",children:[l(),$(),oe()]})]})};exports.default=be;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const e=require("../../_virtual/jsx-runtime.js"),m=require("react"),K=require("../../Radio/index.js"),Q=require("../../Checkbox/index.js"),U=require("../../Popover/index.js"),c=require("../../AutoTips/index.js"),W=require("../../Loading/index.js"),X=require("../../node_modules/@para-ui/icons/Close/index.js"),t=require("../../GlobalContext/constant.js"),Y=require("../../GlobalContext/useFormatMessage.js"),Z=require("../lang/index.js");;/* empty css */const ee=k=>{const{className:p,style:L,nodeMode:d="branch",useCase:S="view",img:n,selectMode:j,mainTitle:r,subTitle:o,tag:l,tagStyle:h,detail:x,detailRender:f,leftRender:R,child:E,close:g,checked:C,indeterminate:y,disabled:a,disabledChild:N,onLevel:v,onSelect:$,onClose:b}=k,D=Y.default("Selector",Z.default),[_,q]=m.useState(),[P,u]=m.useState(!1),i=m.useRef(),M=()=>{a||$&&$()},T=s=>{s.stopPropagation(),!N&&v&&v()},w=s=>{s.stopPropagation()},F=s=>{s.stopPropagation(),b&&b()},z=async s=>{if(!f)return;if(u(!1),!s)return q(null);u(!0),i.current&&i.current.classList.add("selector-detail-popover-content-loading");const J=await f();i.current&&i.current.classList.remove("selector-detail-popover-content-loading"),u(!1),q(J)},A=()=>{if(!n)return null;let s=n;return typeof n=="string"&&(s=e.jsxRuntimeExports.jsx("img",{src:n})),e.jsxRuntimeExports.jsx("span",{className:"node-img",children:s})},B=()=>j==="radio"?e.jsxRuntimeExports.jsx(K.Radio,{size:"small",className:"selector-node-radio",checked:C,disabled:a}):j==="check"?e.jsxRuntimeExports.jsx(Q.Checkbox,{size:"small",className:"selector-node-check",checked:C,disabled:a,indeterminate:y}):null,I=()=>e.jsxRuntimeExports.jsxs("div",{className:"selector-detail-popover-content",ref:i,children:[_,P&&e.jsxRuntimeExports.jsx(W.Loading,{})]}),O=()=>x?e.jsxRuntimeExports.jsx(U.Popover,{content:I(),trigger:"hover",placement:"bottomRight",overlayClassName:`${t.$prefixCls}-selector-detail`,onVisibleChange:z,children:e.jsxRuntimeExports.jsx("span",{className:"detail",onClick:w,children:D({id:"detail"})})}):null,V=()=>{if(d==="branch")return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[r&&e.jsxRuntimeExports.jsx("span",{className:"main-title",children:e.jsxRuntimeExports.jsx(c.default,{children:r})}),o&&e.jsxRuntimeExports.jsx("span",{className:"sub-title",children:e.jsxRuntimeExports.jsx(c.default,{children:o})}),l&&e.jsxRuntimeExports.jsx("span",{className:"tag",style:h,children:l})]});if(d==="leaf")return e.jsxRuntimeExports.jsxs("div",{className:"title-box",children:[e.jsxRuntimeExports.jsxs("div",{className:"main-title-box",children:[r&&e.jsxRuntimeExports.jsx("span",{className:"main-title",children:e.jsxRuntimeExports.jsx(c.default,{children:r})}),l&&e.jsxRuntimeExports.jsx("span",{className:"tag",style:h,children:l})]}),o&&e.jsxRuntimeExports.jsx("div",{className:"sub-title",children:e.jsxRuntimeExports.jsx(c.default,{children:o})})]})},G=()=>R?R():e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[B(),A(),V()]}),H=()=>{let s=`${t.$prefixCls}-selector-node`;return s+=` ${t.$prefixCls}-selector-node-${S}`,s+=` ${t.$prefixCls}-selector-node-${d}`,a&&(s+=` ${t.$prefixCls}-selector-node-disabled`),N&&(s+=` ${t.$prefixCls}-selector-node-disabled-child`),n&&(s+=` ${t.$prefixCls}-selector-node-img`),p&&(s+=` ${p}`),s};return e.jsxRuntimeExports.jsxs("div",{className:H(),style:L,onClick:M,children:[e.jsxRuntimeExports.jsx("div",{className:"selector-node-left",children:G()}),e.jsxRuntimeExports.jsxs("div",{className:"selector-node-right",children:[O(),x&&E&&e.jsxRuntimeExports.jsx("span",{className:"line"}),E&&e.jsxRuntimeExports.jsx("span",{className:"lower-child",onClick:T,children:D({id:"child"})}),x&&g&&e.jsxRuntimeExports.jsx("span",{className:"line"}),g&&e.jsxRuntimeExports.jsx("span",{className:"close",onClick:F,children:e.jsxRuntimeExports.jsx(X.Close,{})})]})]})};exports.default=ee;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const e=require("../../_virtual/jsx-runtime.js"),m=require("react"),K=require("../../Radio/index.js"),Q=require("../../Checkbox/index.js"),U=require("../../Popover/index.js"),c=require("../../AutoTips/index.js"),W=require("../../Loading/index.js"),X=require("../../node_modules/@para-ui/icons/Close/index.js"),t=require("../../GlobalContext/constant.js"),Y=require("../../GlobalContext/useFormatMessage.js"),Z=require("../lang/index.js");;/* empty css */const ee=k=>{const{className:p,style:L,nodeMode:d="branch",useCase:S="view",img:n,selectMode:j,mainTitle:r,subTitle:o,tag:l,tagStyle:h,detail:x,detailRender:f,leftRender:R,child:E,close:g,checked:C,indeterminate:y,disabled:a,disabledChild:N,onLevel:v,onSelect:$,onClose:b}=k,D=Y.default("Selector",Z.default),[_,q]=m.useState(),[P,u]=m.useState(!1),i=m.useRef(null),M=()=>{a||$&&$()},T=s=>{s.stopPropagation(),!N&&v&&v()},w=s=>{s.stopPropagation()},F=s=>{s.stopPropagation(),b&&b()},z=async s=>{if(!f)return;if(u(!1),!s)return q(null);u(!0),i.current&&i.current.classList.add("selector-detail-popover-content-loading");const J=await f();i.current&&i.current.classList.remove("selector-detail-popover-content-loading"),u(!1),q(J)},A=()=>{if(!n)return null;let s=n;return typeof n=="string"&&(s=e.jsxRuntimeExports.jsx("img",{src:n})),e.jsxRuntimeExports.jsx("span",{className:"node-img",children:s})},B=()=>j==="radio"?e.jsxRuntimeExports.jsx(K.Radio,{size:"small",className:"selector-node-radio",checked:C,disabled:a}):j==="check"?e.jsxRuntimeExports.jsx(Q.Checkbox,{size:"small",className:"selector-node-check",checked:C,disabled:a,indeterminate:y}):null,I=()=>e.jsxRuntimeExports.jsxs("div",{className:"selector-detail-popover-content",ref:i,children:[_,P&&e.jsxRuntimeExports.jsx(W.Loading,{})]}),O=()=>x?e.jsxRuntimeExports.jsx(U.Popover,{content:I(),trigger:"hover",placement:"bottomRight",overlayClassName:`${t.$prefixCls}-selector-detail`,onVisibleChange:z,children:e.jsxRuntimeExports.jsx("span",{className:"detail",onClick:w,children:D({id:"detail"})})}):null,V=()=>{if(d==="branch")return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[r&&e.jsxRuntimeExports.jsx("span",{className:"main-title",children:e.jsxRuntimeExports.jsx(c.default,{children:r})}),o&&e.jsxRuntimeExports.jsx("span",{className:"sub-title",children:e.jsxRuntimeExports.jsx(c.default,{children:o})}),l&&e.jsxRuntimeExports.jsx("span",{className:"tag",style:h,children:l})]});if(d==="leaf")return e.jsxRuntimeExports.jsxs("div",{className:"title-box",children:[e.jsxRuntimeExports.jsxs("div",{className:"main-title-box",children:[r&&e.jsxRuntimeExports.jsx("span",{className:"main-title",children:e.jsxRuntimeExports.jsx(c.default,{children:r})}),l&&e.jsxRuntimeExports.jsx("span",{className:"tag",style:h,children:l})]}),o&&e.jsxRuntimeExports.jsx("div",{className:"sub-title",children:e.jsxRuntimeExports.jsx(c.default,{children:o})})]})},G=()=>R?R():e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[B(),A(),V()]}),H=()=>{let s=`${t.$prefixCls}-selector-node`;return s+=` ${t.$prefixCls}-selector-node-${S}`,s+=` ${t.$prefixCls}-selector-node-${d}`,a&&(s+=` ${t.$prefixCls}-selector-node-disabled`),N&&(s+=` ${t.$prefixCls}-selector-node-disabled-child`),n&&(s+=` ${t.$prefixCls}-selector-node-img`),p&&(s+=` ${p}`),s};return e.jsxRuntimeExports.jsxs("div",{className:H(),style:L,onClick:M,children:[e.jsxRuntimeExports.jsx("div",{className:"selector-node-left",children:G()}),e.jsxRuntimeExports.jsxs("div",{className:"selector-node-right",children:[O(),x&&E&&e.jsxRuntimeExports.jsx("span",{className:"line"}),E&&e.jsxRuntimeExports.jsx("span",{className:"lower-child",onClick:T,children:D({id:"child"})}),x&&g&&e.jsxRuntimeExports.jsx("span",{className:"line"}),g&&e.jsxRuntimeExports.jsx("span",{className:"close",onClick:F,children:e.jsxRuntimeExports.jsx(X.Close,{})})]})]})};exports.default=ee;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|