@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,98 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CycleSelector",
|
|
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": "CycleSelectorValueProps",
|
|
30
|
+
"description": "周期配置对象 · cron-like 调度(不是简单 cycle 切换器 · 不要传 string 如 'month')。**完整 9 字段**:`startTime`(开始时间 · string | number)· `cycleType`(周期类型 number · 0=不重复 / 1=每天 / 2=每周 / 3=每月 / 4=每年 / 5=自定义)· `frequency`(周期频率 number)· `frequencyUnit`(频率单位 string · 'day' / 'week' / 'month' / 'year')· `monthCycleType`(月维度 string · 'day' / 'week' · 仅 cycleType=3 时)· `executionDay`(执行周几列表 string · '0,1,2,3,4,5,6' 逗号分隔 · 0=周日)· `endType`(结束方式 number · 0=无限重复 / 1=截至时间 / 2=限定次数)· `limitNum`(限定次数 number · endType=2 时)· `endTime`(结束日期 string | number · endType=1 时)。**示例** 每周三五重复:`{ startTime: '2026-05-15 09:00', cycleType: 2, frequency: 1, frequencyUnit: 'week', executionDay: '3,5', endType: 0 }`。完整 interface 见 `dist/es/CycleSelector/index.d.ts`(发布产物)"
|
|
31
|
+
},
|
|
32
|
+
"onChange": {
|
|
33
|
+
"type": "function",
|
|
34
|
+
"signature": "(val: CycleSelectorValueProps) => void",
|
|
35
|
+
"description": "值变化回调 · 接收完整 CycleSelectorValueProps 对象"
|
|
36
|
+
},
|
|
37
|
+
"timeType": {
|
|
38
|
+
"type": "enum",
|
|
39
|
+
"values": [
|
|
40
|
+
"undefined",
|
|
41
|
+
"zone",
|
|
42
|
+
"stamp"
|
|
43
|
+
],
|
|
44
|
+
"default": "undefined",
|
|
45
|
+
"description": "时间格式:undefined=YYYY-MM-DD HH:mm:ss · zone=YYYY-MM-DD[T]HH:mm:ss[Z] · stamp=时间戳"
|
|
46
|
+
},
|
|
47
|
+
"disabled": {
|
|
48
|
+
"type": "boolean",
|
|
49
|
+
"description": "是否禁用"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"do": [
|
|
53
|
+
"用于 Cron 表达式或周期性任务配置场景——startTime 是触发时间,cycleType 决定重复方式",
|
|
54
|
+
"提供直观的周期选择界面(日/周/月/年/自定义),onChange 返回完整 CycleSelectorValueProps 对象",
|
|
55
|
+
"通过 cRef.current.getTipText() 获取周期摘要文本(用于展示当前配置的自然语言描述)"
|
|
56
|
+
],
|
|
57
|
+
"dont": [
|
|
58
|
+
"在简单日期选择中使用——单纯时间选择用 DatePicker,CycleSelector 专用于周期性重复场景",
|
|
59
|
+
"忽略时区处理——默认出参格式为 'YYYY-MM-DD HH:mm:ss';需要 ISO 时区格式传 timeType='zone',需要时间戳传 timeType='stamp'"
|
|
60
|
+
],
|
|
61
|
+
"events": {
|
|
62
|
+
"onChange": {
|
|
63
|
+
"signature": "(val: CycleSelectorValueProps) => void",
|
|
64
|
+
"asyncSupported": false,
|
|
65
|
+
"examples": [
|
|
66
|
+
"基本用法:<CycleSelector value={cycleValue} onChange={(val) => setCycleValue(val)} />",
|
|
67
|
+
"onChange 返回完整 CycleSelectorValueProps 对象,字段按 cycleType 不同动态增减(非自定义时删除 frequency/frequencyUnit 等字段)",
|
|
68
|
+
"cycleType=0(不重复)时 val 只含 startTime + cycleType,其余字段被删除"
|
|
69
|
+
],
|
|
70
|
+
"commonMistakes": [
|
|
71
|
+
"假设 onChange 每次都返回完整的 9 个字段——实际按 cycleType 动态清除无关字段(如 cycleType=0 时删除 frequency 等)",
|
|
72
|
+
"在 onChange 外部直接修改 val 对象后回传——CycleSelectorValueProps 是内部 state 引用,应拷贝后修改:{ ...val, extraField: value }",
|
|
73
|
+
"value 传 null/undefined——value 是必填 prop(src/CycleSelector/index.tsx:60 无问号),传空会导致运行时错误"
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"typescriptPitfalls": [
|
|
78
|
+
{
|
|
79
|
+
"issue": "value prop 是必填(无问号),不能传 null/undefined",
|
|
80
|
+
"wrong": "const [cycle, setCycle] = useState<CycleSelectorValueProps | null>(null);\n<CycleSelector value={cycle} /> // null 导致运行时错误",
|
|
81
|
+
"right": "const [cycle, setCycle] = useState<CycleSelectorValueProps>({});\n<CycleSelector value={cycle} onChange={setCycle} />"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"issue": "onChange 是必填(无问号),不传会导致 TS 类型错误",
|
|
85
|
+
"wrong": "<CycleSelector value={cycleValue} /> // 缺少 onChange,TS 报错",
|
|
86
|
+
"right": "<CycleSelector value={cycleValue} onChange={(val) => setCycleValue(val)} />"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"issue": "cRef 需要 useRef<CycleSelectorRefProps> 类型,直接 useRef() 推断为 unknown",
|
|
90
|
+
"wrong": "const cRef = useRef(null); cRef.current.getTipText(); // current 可能为 null",
|
|
91
|
+
"right": "import { CycleSelectorRefProps } from '@para-ui/core';\nconst cRef = useRef<CycleSelectorRefProps>({} as CycleSelectorRefProps);\n<CycleSelector cRef={cRef} ... />"
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"mapping": {
|
|
95
|
+
"realComponent": "CycleSelector",
|
|
96
|
+
"adapter": null
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -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"),u=require("react"),De=require("clsx"),g=require("dayjs"),Ne=require("../node_modules/@para-ui/icons/Close/index.js"),be=require("../node_modules/@para-ui/icons/WarningCircleF/index.js"),B=require("../GlobalContext/constant.js"),F=require("../DatePicker/index.js"),f=require("../Select/index.js"),qe=require("../TextField/index.js"),ge=require("../Popover/index.js"),k=require("../Button/index.js"),ke=require("../GlobalContext/index.js"),$e=require("../GlobalContext/useFormatMessage.js"),we=require("./lang/index.js"),Se=require("../HelperText/index.js"),Ye=require("../Utils/index.js");;/* empty css */const Me=O=>{const{className:V,style:W,value:p,disabled:E=!1,error:R,hideErrorDom:I,helperText:z,disabledDate:$,disabledTime:w,timeType:S,tipRender:Y,showPopover:y,cRef:A,onChange:G,disabledCustom:M=!1}=O,{language:U,locale:Ue}=u.useContext(ke.default),n=$e.default("CycleSelector",we.default),[i,m]=u.useState({}),[J,L]=u.useState([]),[K,h]=u.useState(!1),[Q,X]=u.useState([]),[Z,ee]=u.useState([]),[te,ne]=u.useState([]),[re,se]=u.useState([]),[ie,H]=u.useState(!1),t=u.useRef({valueCom:i,value:p});t.current.valueCom=i,t.current.value=p,u.useEffect(()=>{const e=[];for(let s=1;s<32;s++)e.push({label:n("every")+s,value:s});return X(e),ee([{label:n("day"),value:"day"},{label:n("week"),value:"week"},{label:n("month"),value:"month"},{label:n("year"),value:"year"}]),ne([{label:n("infiniteRepetition"),value:0},{label:n("deadline"),value:1},{label:n("limitNum"),value:2}]),t.current.endTypeMap={0:n("infiniteRepetition"),1:n("deadline"),2:n("limitNum")},()=>{clearTimeout(t.current.timerTip)}},[U]),u.useEffect(()=>{const e=p?{...p}:{};e.startTime||(e.cycleType=0),e.startTime&&(e.startTime=D(e.startTime,"YYYY-MM-DD HH:mm")),e.endTime&&(e.endTime=D(e.endTime,"YYYY-MM-DD")),m(e),t.current.valueCom=e,le()},[p,U,M]),u.useEffect(()=>{y!==void 0&&y&&N()},[y]),u.useImperativeHandle(A,()=>({getTipText:e=>P(e,!0)}));const _=e=>e?S==="zone"?new Date(e).toISOString():S==="stamp"?new Date(e).getTime():e:"",D=(e,s)=>e?g(e).format(s):"",le=()=>{if(!t.current.valueCom?.startTime){L([{label:n("noRepetition"),value:0}]);return}t.current.timeDetail=Ye.getDateYYYYMMddHHMM(t.current.valueCom?.startTime);const{month:e,day:s,weekDay:l,hm:a,week:c,date:d}=t.current.timeDetail;let o=[{label:n("noRepetition"),value:0},{label:`${n("repeatEveryDay")} ${a}`,value:1},{label:`${n("repeatEveryWeek")} ${n(`week${l}`)} ${a}`,value:2},{label:`${n("repeatEveryMonth")} ${s}${n("th")} ${a}`,value:3},{label:`${n("repeatEveryYear")} ${e}${n("month")}${s}${n("th")} ${a}`,value:4},{label:n("customRepetition"),value:5}];M&&(o=o.filter(v=>v.value!==5)),L(o),se([{label:n(`day${s}`),value:"day"},{label:n(`the${c}`)+n(`week${l}`),value:"week"}]),t.current.monthCycleTypeListMap={day:n(`day${s}`),week:n(`the${c}`)+n(`week${l}`)}},ae=(e,s)=>{t.current.valueCom.startTime=s,ue(),T()},x=e=>{const s=t.current.valueCom[e];return s===void 0||s===""||s===null},N=()=>{if(x("frequency")&&(t.current.valueCom.frequency=1),x("frequencyUnit")&&(t.current.valueCom.frequencyUnit="day"),x("endType")&&(t.current.valueCom.endType=0),x("monthCycleType")&&(t.current.valueCom.monthCycleType="day"),x("endTime")&&(t.current.valueCom.endTime=t.current.timeDetail?.date),x("limitNum")&&(t.current.valueCom.limitNum=1),x("executionDay")){const e=b(Number(t.current.timeDetail?.weekDay));t.current.valueCom.executionDay=`${e}`}m({...t.current.valueCom})},ue=()=>{t.current.valueCom={startTime:t.current.valueCom.startTime,cycleType:0}},ce=e=>{t.current.valueCom.cycleType=e,m({...t.current.valueCom}),e===5?(h(!0),N()):T()},T=e=>{t.current.valueCom.cycleType===5?(t.current.valueCom.frequencyUnit==="week"?delete t.current.valueCom.monthCycleType:(t.current.valueCom.frequencyUnit==="month"||delete t.current.valueCom.monthCycleType,delete t.current.valueCom.executionDay),t.current.valueCom.endType===0?(delete t.current.valueCom.endTime,delete t.current.valueCom.limitNum):t.current.valueCom.endType===1?delete t.current.valueCom.limitNum:delete t.current.valueCom.endTime):(delete t.current.valueCom.frequency,delete t.current.valueCom.frequencyUnit,delete t.current.valueCom.endType,delete t.current.valueCom.monthCycleType,delete t.current.valueCom.endTime,delete t.current.valueCom.limitNum,delete t.current.valueCom.executionDay);const s=e?{...t.current.value}:{...t.current.valueCom};s.startTime&&(s.startTime=_(s.startTime)),s.endTime&&(s.endTime=_(s.endTime)),G(s)},oe=e=>{e||q()},me=()=>{h(!0),N()},P=(e,s)=>{const l=e||p;if(l?.cycleType!==5||R)return;const a=[],c=n("every")+l.frequency+n(l.frequencyUnit),d=t.current.timeDetail?.hm;if(Y)return Y();if(l.frequencyUnit==="week"){const o=[];let v;l.executionDay?.split(",").forEach(Re=>{let C=Number(Re)-1;C===0?(C=7,v=n(`week${C}`)):o.push(n(`week${C}`))}),v&&o.push(v),a.push(n("text1",{every:c+o.join("、"),time:d}))}else if(l.frequencyUnit==="month")a.push(n("text1",{every:c,time:(t.current.monthCycleTypeListMap?.[l.monthCycleType]||"")+(d||"")}));else if(l.frequencyUnit==="day")a.push(n("text1",{every:c,time:d}));else{const o=n("monthDay",{month:t.current.timeDetail?.month,day:t.current.timeDetail?.day});a.push(n("text1",{every:c,time:`${o.join("")} ${d}`}))}return l.endType===2&&a.push(n("text2",{limitNum:l.limitNum})),l.endType===1&&a.push(n("text3",{date:D(l.endTime,"YYYY-MM-DD")})),s?a:r.jsxRuntimeExports.jsxs("p",{className:"text-tip",children:[a,!E&&r.jsxRuntimeExports.jsx(k.Button,{variant:"text",onClick:me,children:n("update")})]})},de=(e,s)=>{i.endTime=s,m({...i})},xe=e=>{e.target.value!==""&&parseInt(e.target.value.toString()),i.limitNum=e.target.value,m({...i})},pe=e=>{(e.target.value!==""?parseInt(e.target.value.toString()):0)<=0&&(i.limitNum=1,m({...i}))},j=e=>s=>{i[e]=s,m({...i})},b=e=>(e+=1,e===8&&(e=1),e),ye=e=>()=>{if(t.current.timeDetail?.weekDay===e){H(!0),clearTimeout(t.current.timerTip),t.current.timerTip=setTimeout(()=>{H(!1)},1300);return}ve(e)},ve=e=>{e=b(e);const s=i.executionDay?.split(",")||[],l={};s.forEach(a=>{l[a]=!0}),l[e.toString()]?delete l[e.toString()]:l[e.toString()]=!0,i.executionDay=Object.keys(l).join(","),t.current.valueCom={...i},m({...i})},fe=()=>r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsxs("div",{className:"item frequency",children:[r.jsxRuntimeExports.jsx("div",{className:"label",children:n("repetitionFrequency")}),r.jsxRuntimeExports.jsxs("div",{className:"form-content",children:[r.jsxRuntimeExports.jsx(f.default,{value:i.frequency,list:Q,className:"frequency-select",onChange:j("frequency")}),r.jsxRuntimeExports.jsx(f.default,{value:i.frequencyUnit,list:Z,onChange:j("frequencyUnit")})]})]}),i.frequencyUnit==="week"&&r.jsxRuntimeExports.jsxs("div",{className:"item execution-day",children:[r.jsxRuntimeExports.jsx("div",{className:"label"}),r.jsxRuntimeExports.jsxs("div",{className:"form-content",children:[r.jsxRuntimeExports.jsx("div",{className:"execution-day-select",children:new Array(7).fill(1).map((e,s)=>{const l={1:"one",2:"two",3:"three",4:"four",5:"five",6:"six",7:"seven"},a=b(s+1),c=i.executionDay?.indexOf(a.toString());let d=c!==void 0&&c!==-1;return t.current.timeDetail?.weekDay===s+1&&(d=!0),r.jsxRuntimeExports.jsx("div",{className:d?"select-item":"",onClick:ye(s+1),children:n(l[s+1])},s)})}),r.jsxRuntimeExports.jsxs("p",{className:ie?"tip show-tip":"tip",children:[r.jsxRuntimeExports.jsx(be.WarningCircleF,{}),r.jsxRuntimeExports.jsx("span",{children:n("weekTip",{week:n(`week${t.current.timeDetail?.weekDay}`)})})]})]})]}),i.frequencyUnit==="month"&&r.jsxRuntimeExports.jsxs("div",{className:"item month-cycle-type-list",children:[r.jsxRuntimeExports.jsx("div",{className:"label"}),r.jsxRuntimeExports.jsxs("div",{className:"form-content",children:[r.jsxRuntimeExports.jsx("div",{}),r.jsxRuntimeExports.jsx(f.default,{value:i.monthCycleType,list:re,onChange:j("monthCycleType")})]})]}),r.jsxRuntimeExports.jsxs("div",{className:"item end-type",children:[r.jsxRuntimeExports.jsx("div",{className:"label",children:n("endRepetition")}),r.jsxRuntimeExports.jsxs("div",{className:"form-content",children:[r.jsxRuntimeExports.jsx(f.default,{value:i.endType,list:te,className:"end-type-select",onChange:j("endType")}),r.jsxRuntimeExports.jsxs("div",{className:"right-box",children:[i.endType===1&&r.jsxRuntimeExports.jsx(F.default,{disabledDate:e=>e&&e<g(new Date(i.startTime).getTime()-1440*60*1e3),value:i.endTime,format:"YYYY-MM-DD",allowClear:!1,onChange:de}),i.endType===2&&r.jsxRuntimeExports.jsx(qe.TextField,{min:1,type:"number",placeholder:n("placeholder"),value:i.limitNum,onChange:xe,onBlur:pe,rightIcon:n("next")})]})]})]})]}),q=()=>{h(!1),T(!0)},he=()=>{h(!1),T()},Te=()=>r.jsxRuntimeExports.jsxs("div",{className:"cycle-selector-popover-content",children:[r.jsxRuntimeExports.jsxs("div",{className:"title",children:[r.jsxRuntimeExports.jsx("span",{className:"label",children:n("customCycle")}),r.jsxRuntimeExports.jsx(Ne.Close,{onClick:q})]}),r.jsxRuntimeExports.jsx("div",{className:"content",children:fe()}),r.jsxRuntimeExports.jsxs("div",{className:"footer",children:[r.jsxRuntimeExports.jsx(k.Button,{variant:"outlined",onClick:q,children:n("cancel")}),r.jsxRuntimeExports.jsx(k.Button,{onClick:he,children:n("confirm")})]})]}),je=()=>$||(e=>e&&e<g(new Date().getTime()-1440*60*1e3)),Ce=()=>{if(w)return w},Ee=()=>y!==void 0?y:K;return r.jsxRuntimeExports.jsxs("div",{className:De(`${B.$prefixCls}-cycle-selector`,V),style:W,children:[r.jsxRuntimeExports.jsx(ge.Popover,{content:Te(),open:Ee(),placement:"bottomRight",overlayClassName:`${B.$prefixCls}-cycle-selector-popover`,onVisibleChange:oe,children:r.jsxRuntimeExports.jsxs("div",{className:"cycle-selector-content",children:[r.jsxRuntimeExports.jsx(F.default,{disabled:E,value:i.startTime,className:"time-select",showTime:!0,format:"YYYY-MM-DD HH:mm",disabledDate:je(),disabledTime:Ce(),placeholder:n("pleaseSelect"),onChange:ae,error:R}),r.jsxRuntimeExports.jsx(f.default,{disabled:!i.startTime||E,list:J,className:"select-type",placeholder:n("pleaseSelect"),value:i.cycleType,onChange:e=>ce(Number(e))})]})}),P(),r.jsxRuntimeExports.jsx(Se.default,{error:R,hideErrorDom:I,helperText:z})]})};exports.default=Me;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const r=require("../_virtual/jsx-runtime.js"),u=require("react"),De=require("clsx"),g=require("dayjs"),Ne=require("../node_modules/@para-ui/icons/Close/index.js"),be=require("../node_modules/@para-ui/icons/WarningCircleF/index.js"),B=require("../GlobalContext/constant.js"),F=require("../DatePicker/index.js"),f=require("../Select/index.js"),qe=require("../TextField/index.js"),ge=require("../Popover/index.js"),k=require("../Button/index.js"),ke=require("../GlobalContext/index.js"),$e=require("../GlobalContext/useFormatMessage.js"),we=require("./lang/index.js"),Se=require("../HelperText/index.js"),Ye=require("../Utils/index.js");;/* empty css */const Me=O=>{const{className:V,style:W,value:p,disabled:E=!1,error:R,hideErrorDom:I,helperText:z,disabledDate:$,disabledTime:w,timeType:S,tipRender:Y,showPopover:y,cRef:A,onChange:G,disabledCustom:M=!1}=O,{language:U,locale:Ue}=u.useContext(ke.default),n=$e.default("CycleSelector",we.default),[i,m]=u.useState({}),[J,L]=u.useState([]),[K,h]=u.useState(!1),[Q,X]=u.useState([]),[Z,ee]=u.useState([]),[te,ne]=u.useState([]),[re,se]=u.useState([]),[ie,H]=u.useState(!1),t=u.useRef({valueCom:i,value:p});t.current.valueCom=i,t.current.value=p,u.useEffect(()=>{const e=[];for(let s=1;s<32;s++)e.push({label:n("every")+s,value:s});return X(e),ee([{label:n("day"),value:"day"},{label:n("week"),value:"week"},{label:n("month"),value:"month"},{label:n("year"),value:"year"}]),ne([{label:n("infiniteRepetition"),value:0},{label:n("deadline"),value:1},{label:n("limitNum"),value:2}]),t.current.endTypeMap={0:n("infiniteRepetition"),1:n("deadline"),2:n("limitNum")},()=>{clearTimeout(t.current.timerTip)}},[U]),u.useEffect(()=>{const e=p?{...p}:{};e.startTime||(e.cycleType=0),e.startTime&&(e.startTime=D(e.startTime,"YYYY-MM-DD HH:mm")),e.endTime&&(e.endTime=D(e.endTime,"YYYY-MM-DD")),m(e),t.current.valueCom=e,le()},[p,U,M]),u.useEffect(()=>{y!==void 0&&y&&N()},[y]),u.useImperativeHandle(A,()=>({getTipText:e=>P(e,!0)}));const _=e=>e?S==="zone"?new Date(e).toISOString():S==="stamp"?new Date(e).getTime():e:"",D=(e,s)=>e?g(e).format(s):"",le=()=>{if(!t.current.valueCom?.startTime){L([{label:n("noRepetition"),value:0}]);return}t.current.timeDetail=Ye.getDateYYYYMMddHHMM(t.current.valueCom?.startTime);const{month:e,day:s,weekDay:l,hm:a,week:c,date:d}=t.current.timeDetail;let o=[{label:n("noRepetition"),value:0},{label:`${n("repeatEveryDay")} ${a}`,value:1},{label:`${n("repeatEveryWeek")} ${n(`week${l}`)} ${a}`,value:2},{label:`${n("repeatEveryMonth")} ${s}${n("th")} ${a}`,value:3},{label:`${n("repeatEveryYear")} ${e}${n("month")}${s}${n("th")} ${a}`,value:4},{label:n("customRepetition"),value:5}];M&&(o=o.filter(v=>v.value!==5)),L(o),se([{label:n(`day${s}`),value:"day"},{label:n(`the${c}`)+n(`week${l}`),value:"week"}]),t.current.monthCycleTypeListMap={day:n(`day${s}`),week:n(`the${c}`)+n(`week${l}`)}},ae=(e,s)=>{t.current.valueCom.startTime=s,ue(),T()},x=e=>{const s=t.current.valueCom[e];return s===void 0||s===""||s===null},N=()=>{if(x("frequency")&&(t.current.valueCom.frequency=1),x("frequencyUnit")&&(t.current.valueCom.frequencyUnit="day"),x("endType")&&(t.current.valueCom.endType=0),x("monthCycleType")&&(t.current.valueCom.monthCycleType="day"),x("endTime")&&(t.current.valueCom.endTime=t.current.timeDetail?.date),x("limitNum")&&(t.current.valueCom.limitNum=1),x("executionDay")){const e=b(Number(t.current.timeDetail?.weekDay));t.current.valueCom.executionDay=`${e}`}m({...t.current.valueCom})},ue=()=>{t.current.valueCom={startTime:t.current.valueCom.startTime,cycleType:0}},ce=e=>{t.current.valueCom.cycleType=e,m({...t.current.valueCom}),e===5?(h(!0),N()):T()},T=e=>{t.current.valueCom.cycleType===5?(t.current.valueCom.frequencyUnit==="week"?delete t.current.valueCom.monthCycleType:(t.current.valueCom.frequencyUnit==="month"||delete t.current.valueCom.monthCycleType,delete t.current.valueCom.executionDay),t.current.valueCom.endType===0?(delete t.current.valueCom.endTime,delete t.current.valueCom.limitNum):t.current.valueCom.endType===1?delete t.current.valueCom.limitNum:delete t.current.valueCom.endTime):(delete t.current.valueCom.frequency,delete t.current.valueCom.frequencyUnit,delete t.current.valueCom.endType,delete t.current.valueCom.monthCycleType,delete t.current.valueCom.endTime,delete t.current.valueCom.limitNum,delete t.current.valueCom.executionDay);const s=e?{...t.current.value}:{...t.current.valueCom};s.startTime&&(s.startTime=_(s.startTime)),s.endTime&&(s.endTime=_(s.endTime)),G(s)},oe=e=>{e||q()},me=()=>{h(!0),N()},P=(e,s)=>{const l=e||p;if(l?.cycleType!==5||R)return;const a=[],c=n("every")+l.frequency+n(l.frequencyUnit),d=t.current.timeDetail?.hm;if(Y)return Y();if(l.frequencyUnit==="week"){const o=[];let v;l.executionDay?.split(",").forEach(Re=>{let C=Number(Re)-1;C===0?(C=7,v=n(`week${C}`)):o.push(n(`week${C}`))}),v&&o.push(v),a.push(n("text1",{every:c+o.join("、"),time:d}))}else if(l.frequencyUnit==="month")a.push(n("text1",{every:c,time:(t.current.monthCycleTypeListMap?.[l.monthCycleType]||"")+(d||"")}));else if(l.frequencyUnit==="day")a.push(n("text1",{every:c,time:d}));else{const o=n("monthDay",{month:t.current.timeDetail?.month,day:t.current.timeDetail?.day});a.push(n("text1",{every:c,time:`${o.join("")} ${d}`}))}return l.endType===2&&a.push(n("text2",{limitNum:l.limitNum})),l.endType===1&&a.push(n("text3",{date:D(l.endTime,"YYYY-MM-DD")})),s?a:r.jsxRuntimeExports.jsxs("p",{className:"text-tip",children:[a,!E&&r.jsxRuntimeExports.jsx(k.Button,{variant:"text",onClick:me,children:n("update")})]})},de=(e,s)=>{i.endTime=s,m({...i})},xe=e=>{const s=e.target.value!==""?parseInt(e.target.value.toString()):0;i.limitNum=s,m({...i})},pe=e=>{(e.target.value!==""?parseInt(e.target.value.toString()):0)<=0&&(i.limitNum=1,m({...i}))},j=e=>s=>{i[e]=s,m({...i})},b=e=>(e+=1,e===8&&(e=1),e),ye=e=>()=>{if(t.current.timeDetail?.weekDay===e){H(!0),clearTimeout(t.current.timerTip),t.current.timerTip=setTimeout(()=>{H(!1)},1300);return}ve(e)},ve=e=>{e=b(e);const s=i.executionDay?.split(",")||[],l={};s.forEach(a=>{l[a]=!0}),l[e.toString()]?delete l[e.toString()]:l[e.toString()]=!0,i.executionDay=Object.keys(l).join(","),t.current.valueCom={...i},m({...i})},fe=()=>r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsxs("div",{className:"item frequency",children:[r.jsxRuntimeExports.jsx("div",{className:"label",children:n("repetitionFrequency")}),r.jsxRuntimeExports.jsxs("div",{className:"form-content",children:[r.jsxRuntimeExports.jsx(f.default,{value:i.frequency,list:Q,className:"frequency-select",onChange:j("frequency")}),r.jsxRuntimeExports.jsx(f.default,{value:i.frequencyUnit,list:Z,onChange:j("frequencyUnit")})]})]}),i.frequencyUnit==="week"&&r.jsxRuntimeExports.jsxs("div",{className:"item execution-day",children:[r.jsxRuntimeExports.jsx("div",{className:"label"}),r.jsxRuntimeExports.jsxs("div",{className:"form-content",children:[r.jsxRuntimeExports.jsx("div",{className:"execution-day-select",children:new Array(7).fill(1).map((e,s)=>{const l={1:"one",2:"two",3:"three",4:"four",5:"five",6:"six",7:"seven"},a=b(s+1),c=i.executionDay?.indexOf(a.toString());let d=c!==void 0&&c!==-1;return t.current.timeDetail?.weekDay===s+1&&(d=!0),r.jsxRuntimeExports.jsx("div",{className:d?"select-item":"",onClick:ye(s+1),children:n(l[s+1])},s)})}),r.jsxRuntimeExports.jsxs("p",{className:ie?"tip show-tip":"tip",children:[r.jsxRuntimeExports.jsx(be.WarningCircleF,{}),r.jsxRuntimeExports.jsx("span",{children:n("weekTip",{week:n(`week${t.current.timeDetail?.weekDay}`)})})]})]})]}),i.frequencyUnit==="month"&&r.jsxRuntimeExports.jsxs("div",{className:"item month-cycle-type-list",children:[r.jsxRuntimeExports.jsx("div",{className:"label"}),r.jsxRuntimeExports.jsxs("div",{className:"form-content",children:[r.jsxRuntimeExports.jsx("div",{}),r.jsxRuntimeExports.jsx(f.default,{value:i.monthCycleType,list:re,onChange:j("monthCycleType")})]})]}),r.jsxRuntimeExports.jsxs("div",{className:"item end-type",children:[r.jsxRuntimeExports.jsx("div",{className:"label",children:n("endRepetition")}),r.jsxRuntimeExports.jsxs("div",{className:"form-content",children:[r.jsxRuntimeExports.jsx(f.default,{value:i.endType,list:te,className:"end-type-select",onChange:j("endType")}),r.jsxRuntimeExports.jsxs("div",{className:"right-box",children:[i.endType===1&&r.jsxRuntimeExports.jsx(F.default,{disabledDate:e=>e&&e<g(new Date(i.startTime).getTime()-1440*60*1e3),value:i.endTime,format:"YYYY-MM-DD",allowClear:!1,onChange:de}),i.endType===2&&r.jsxRuntimeExports.jsx(qe.TextField,{min:1,type:"number",placeholder:n("placeholder"),value:i.limitNum,onChange:xe,onBlur:pe,rightIcon:n("next")})]})]})]})]}),q=()=>{h(!1),T(!0)},he=()=>{h(!1),T()},Te=()=>r.jsxRuntimeExports.jsxs("div",{className:"cycle-selector-popover-content",children:[r.jsxRuntimeExports.jsxs("div",{className:"title",children:[r.jsxRuntimeExports.jsx("span",{className:"label",children:n("customCycle")}),r.jsxRuntimeExports.jsx(Ne.Close,{onClick:q})]}),r.jsxRuntimeExports.jsx("div",{className:"content",children:fe()}),r.jsxRuntimeExports.jsxs("div",{className:"footer",children:[r.jsxRuntimeExports.jsx(k.Button,{variant:"outlined",onClick:q,children:n("cancel")}),r.jsxRuntimeExports.jsx(k.Button,{onClick:he,children:n("confirm")})]})]}),je=()=>$||(e=>e&&e<g(new Date().getTime()-1440*60*1e3)),Ce=()=>{if(w)return w},Ee=()=>y!==void 0?y:K;return r.jsxRuntimeExports.jsxs("div",{className:De(`${B.$prefixCls}-cycle-selector`,V),style:W,children:[r.jsxRuntimeExports.jsx(ge.Popover,{content:Te(),open:Ee(),placement:"bottomRight",overlayClassName:`${B.$prefixCls}-cycle-selector-popover`,onVisibleChange:oe,children:r.jsxRuntimeExports.jsxs("div",{className:"cycle-selector-content",children:[r.jsxRuntimeExports.jsx(F.default,{disabled:E,value:i.startTime,className:"time-select",showTime:!0,format:"YYYY-MM-DD HH:mm",disabledDate:je(),disabledTime:Ce(),placeholder:n("pleaseSelect"),onChange:ae,error:R}),r.jsxRuntimeExports.jsx(f.default,{disabled:!i.startTime||E,list:J,className:"select-type",placeholder:n("pleaseSelect"),value:i.cycleType,onChange:e=>ce(Number(e))})]})}),P(),r.jsxRuntimeExports.jsx(Se.default,{error:R,hideErrorDom:I,helperText:z})]})};exports.default=Me;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "DatePicker",
|
|
3
|
+
"category": "Data Entry",
|
|
4
|
+
"description": "输入或选择日期的控件",
|
|
5
|
+
"semantic": {
|
|
6
|
+
"intent": [
|
|
7
|
+
"选择日期",
|
|
8
|
+
"选择时间",
|
|
9
|
+
"选择日期范围"
|
|
10
|
+
],
|
|
11
|
+
"useCases": [
|
|
12
|
+
"表单日期录入",
|
|
13
|
+
"日程安排",
|
|
14
|
+
"数据报表时间筛选"
|
|
15
|
+
],
|
|
16
|
+
"riskLevel": "normal"
|
|
17
|
+
},
|
|
18
|
+
"variants": {
|
|
19
|
+
"date": {
|
|
20
|
+
"meaning": "日期选择"
|
|
21
|
+
},
|
|
22
|
+
"range": {
|
|
23
|
+
"meaning": "日期范围选择"
|
|
24
|
+
},
|
|
25
|
+
"time": {
|
|
26
|
+
"meaning": "时间选择"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"states": [
|
|
30
|
+
"default",
|
|
31
|
+
"disabled",
|
|
32
|
+
"error",
|
|
33
|
+
"open"
|
|
34
|
+
],
|
|
35
|
+
"idealProps": {
|
|
36
|
+
"value": {
|
|
37
|
+
"type": "Dayjs | null(DatePicker)/ [Dayjs, Dayjs] | null(RangePicker)",
|
|
38
|
+
"description": "当前选中的日期。**受控模式必传**——传入 null 表示未选中(清空状态);与 onChange 配套使用。注意:RangePicker 的 value 才是 dayjs[],DatePicker 不要传数组",
|
|
39
|
+
"_typeNote": "原'dayjs | dayjs[]'写法误导——分别属于 DatePicker / RangePicker,不是同一组件的联合类型"
|
|
40
|
+
},
|
|
41
|
+
"onChange": {
|
|
42
|
+
"type": "function",
|
|
43
|
+
"signature": "(date: Dayjs | null, dateString: string) => void",
|
|
44
|
+
"description": "日期变化回调。date=null 时表示清空(当 allowClear=true 用户点叉触发);dateString 是按 format 格式化后的字符串,清空时为空串"
|
|
45
|
+
},
|
|
46
|
+
"picker": {
|
|
47
|
+
"type": "enum",
|
|
48
|
+
"values": [
|
|
49
|
+
"date",
|
|
50
|
+
"week",
|
|
51
|
+
"month",
|
|
52
|
+
"quarter",
|
|
53
|
+
"year"
|
|
54
|
+
],
|
|
55
|
+
"default": "date",
|
|
56
|
+
"description": "选择器类型"
|
|
57
|
+
},
|
|
58
|
+
"showTime": {
|
|
59
|
+
"type": "boolean | object",
|
|
60
|
+
"objectShape": {
|
|
61
|
+
"format": { "type": "string", "description": "时间格式,例:'HH:mm:ss'" },
|
|
62
|
+
"defaultValue": { "type": "Dayjs", "description": "时间默认值" },
|
|
63
|
+
"disabledTime": { "type": "function", "description": "禁用时间回调" }
|
|
64
|
+
},
|
|
65
|
+
"default": false,
|
|
66
|
+
"description": "是否增加时间选择功能。传 true 使用默认时间选项;传对象可配置时间选择器参数(format/defaultValue/disabledTime 等)"
|
|
67
|
+
},
|
|
68
|
+
"format": {
|
|
69
|
+
"type": "string | string[]",
|
|
70
|
+
"default": "YYYY-MM-DD",
|
|
71
|
+
"description": "展示的日期格式"
|
|
72
|
+
},
|
|
73
|
+
"disabled": {
|
|
74
|
+
"type": "boolean",
|
|
75
|
+
"default": false,
|
|
76
|
+
"description": "是否禁用"
|
|
77
|
+
},
|
|
78
|
+
"allowClear": {
|
|
79
|
+
"type": "boolean",
|
|
80
|
+
"default": true,
|
|
81
|
+
"description": "是否显示清除按钮"
|
|
82
|
+
},
|
|
83
|
+
"bordered": {
|
|
84
|
+
"type": "boolean",
|
|
85
|
+
"default": true,
|
|
86
|
+
"description": "是否有边框"
|
|
87
|
+
},
|
|
88
|
+
"placeholder": {
|
|
89
|
+
"type": "string(DatePicker) | [string, string](RangePicker,开始日期 + 结束日期 placeholder)",
|
|
90
|
+
"description": "输入框提示文字。DatePicker 接受 string;RangePicker 接受 [string, string] 元组(首/末 placeholder 分别)"
|
|
91
|
+
},
|
|
92
|
+
"disabledDate": {
|
|
93
|
+
"type": "function",
|
|
94
|
+
"signature": "(currentDate: Dayjs) => boolean",
|
|
95
|
+
"description": "不可选择的日期。返回 true 表示该日期不可选。currentDate 在 picker='date' 时为当天 00:00:00(无时分秒),可直接 `current < dayjs().endOf('day')` 比较;在 showTime 模式下含完整时分秒,此时若做日维度比较应用 `dayjs().startOf('day')` / `endOf('day')` 兜底"
|
|
96
|
+
},
|
|
97
|
+
"defaultValue": {
|
|
98
|
+
"type": "Dayjs",
|
|
99
|
+
"required": false,
|
|
100
|
+
"description": "默认日期(非受控)。初始渲染时的默认选中日期;⚠️ 不要同时传 value + defaultValue,受控模式只传 value + onChange,非受控模式只传 defaultValue"
|
|
101
|
+
},
|
|
102
|
+
"onOpenChange": {
|
|
103
|
+
"type": "function",
|
|
104
|
+
"signature": "(open: boolean) => void",
|
|
105
|
+
"required": false,
|
|
106
|
+
"description": "弹出日历/关闭日历时的回调,open=true 表示打开,open=false 表示关闭"
|
|
107
|
+
},
|
|
108
|
+
"open": {
|
|
109
|
+
"type": "boolean",
|
|
110
|
+
"required": false,
|
|
111
|
+
"description": "控制弹层是否展开(受控),配合 onOpenChange 使用"
|
|
112
|
+
},
|
|
113
|
+
"showToday": {
|
|
114
|
+
"type": "boolean",
|
|
115
|
+
"default": "true",
|
|
116
|
+
"required": false,
|
|
117
|
+
"description": "是否展示「今天」快捷按钮,picker='date' 时有效"
|
|
118
|
+
},
|
|
119
|
+
"showNow": {
|
|
120
|
+
"type": "boolean",
|
|
121
|
+
"required": false,
|
|
122
|
+
"description": "showTime=true 时是否展示「此刻」按钮"
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"do": [
|
|
126
|
+
"使用 format 属性统一日期显示格式",
|
|
127
|
+
"对于需要选择范围的场景,使用 DatePicker.RangePicker(从同一导入中解构:`const { RangePicker } = DatePicker`)",
|
|
128
|
+
"受控模式只传 value + onChange,非受控模式只传 defaultValue——不要同时传两者",
|
|
129
|
+
"showTime=true 时,value 必须是含时分秒的 Dayjs 对象;onChange 接收的 date 参数也会含完整时间信息",
|
|
130
|
+
"禁用日期用 disabledDate 回调(返回 true 表示不可选);禁止今天之前:`disabledDate={(cur) => cur && cur < dayjs().startOf('day')}`"
|
|
131
|
+
],
|
|
132
|
+
"dont": [
|
|
133
|
+
"混用 moment 和 dayjs 对象(本项目统一使用 dayjs,value/defaultValue/disabledDate 参数都是 Dayjs 类型)",
|
|
134
|
+
"在移动端过度依赖复杂的弹出面板",
|
|
135
|
+
"不要对 DatePicker 传 value 数组——RangePicker.value 才是 [Dayjs, Dayjs],DatePicker.value 是单个 Dayjs | null"
|
|
136
|
+
],
|
|
137
|
+
"events": {
|
|
138
|
+
"onChange": {
|
|
139
|
+
"signature": "(date: Dayjs | null, dateString: string) => void",
|
|
140
|
+
"asyncSupported": false,
|
|
141
|
+
"examples": [
|
|
142
|
+
"日期选中时触发:date 为 Dayjs 对象,dateString 为 format 格式化后的字符串",
|
|
143
|
+
"用户点清空按钮时触发:date=null,dateString=''——需判断 null 再处理",
|
|
144
|
+
"showTime=true 模式下,date 包含完整时分秒(Dayjs),dateString 按 format 含时间部分"
|
|
145
|
+
],
|
|
146
|
+
"commonMistakes": [
|
|
147
|
+
"只用 dateString 而忽略 date 参数——dateString 是 format 格式化结果,跨时区场景需用 date(Dayjs 对象)再转换",
|
|
148
|
+
"不处理 date=null 的清空场景——allowClear=true 时 user 点叉会触发 onChange(null, ''),此时直接存 date 会把 null 存入 state",
|
|
149
|
+
"RangePicker 的 onChange 签名不同——`(dates: [Dayjs, Dayjs] | null, dateStrings: [string, string]) => void`,不要用 DatePicker 的签名",
|
|
150
|
+
"假设 onChange 仅在确认时触发——date picker 模式(无 showTime)选日期即触发;showTime 模式需点「确定」按钮才触发"
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
"onOpenChange": {
|
|
154
|
+
"signature": "(open: boolean) => void",
|
|
155
|
+
"asyncSupported": false,
|
|
156
|
+
"examples": [
|
|
157
|
+
"弹层打开时触发 onOpenChange(true),关闭时触发 onOpenChange(false)",
|
|
158
|
+
"搭配 open 受控 prop 实现自定义开关逻辑(如点击外部关闭)"
|
|
159
|
+
],
|
|
160
|
+
"commonMistakes": [
|
|
161
|
+
"在 onOpenChange 中直接做表单提交——open=false 仅表示面板关闭,value 不一定已更新",
|
|
162
|
+
"忘记 RangePicker 关闭时 src 代码会主动调 blur(generateRangePicker.tsx 实证)——不需要手动调"
|
|
163
|
+
]
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"typescriptPitfalls": [
|
|
167
|
+
{
|
|
168
|
+
"issue": "DatePicker value 类型应为 Dayjs | null,传字符串会导致显示异常",
|
|
169
|
+
"wrong": "value={'2024-01-01'} // 字符串不是 Dayjs 对象,组件内部格式化会失败",
|
|
170
|
+
"right": "value={dayjs('2024-01-01')} // 必须用 dayjs() 转换;清空用 null"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"issue": "RangePicker 和 DatePicker 的 onChange 签名不同,混用会导致类型错误",
|
|
174
|
+
"wrong": "// RangePicker 中用 DatePicker 的 onChange 签名\nonChange={(date: Dayjs, str: string) => ...} // 应为数组",
|
|
175
|
+
"right": "// RangePicker\nonChange={(dates: [Dayjs, Dayjs] | null, strs: [string, string]) => ...}"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"issue": "RangePicker value 是 RangeValue<Dayjs> 类型(可 null 的二元元组),不能传普通数组",
|
|
179
|
+
"wrong": "value={[dayjs(), dayjs().add(7, 'day')]} // 推断为 Dayjs[],不匹配 RangeValue<Dayjs>",
|
|
180
|
+
"right": "import type { RangeValue } from '@para-ui/core'; const val: RangeValue<Dayjs> = [dayjs(), dayjs().add(7,'day')]; <DatePicker.RangePicker value={val} />"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"issue": "disabledDate 参数是 Dayjs 对象不是 Date,直接用 Date 方法会报类型错误",
|
|
184
|
+
"wrong": "disabledDate={(cur) => cur.getTime() < Date.now()} // Dayjs 没有 getTime() 方法",
|
|
185
|
+
"right": "disabledDate={(cur) => cur && cur.isBefore(dayjs().startOf('day'))} // 使用 Dayjs 的 isBefore / isAfter"
|
|
186
|
+
}
|
|
187
|
+
],
|
|
188
|
+
"mapping": {
|
|
189
|
+
"realComponent": "DatePicker",
|
|
190
|
+
"adapter": null
|
|
191
|
+
}
|
|
192
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("../../_virtual/jsx-runtime.js"),o=require("react"),x=require("clsx"),ee=require("../../node_modules/@para-ui/icons/CloseCircleF/index.js"),re=require("../../node_modules/@para-ui/icons/SortRight/index.js"),te=require("../../node_modules/@para-ui/icons/Calendar/index.js"),se=require("../../node_modules/@para-ui/icons/Time/index.js"),ne=require("rc-picker"),s=require("../util.js"),T=require("./index.js"),w=require("../lang/index.js"),oe=require("../../GlobalContext/index.js"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("../../_virtual/jsx-runtime.js"),o=require("react"),x=require("clsx"),ee=require("../../node_modules/@para-ui/icons/CloseCircleF/index.js"),re=require("../../node_modules/@para-ui/icons/SortRight/index.js"),te=require("../../node_modules/@para-ui/icons/Calendar/index.js"),se=require("../../node_modules/@para-ui/icons/Time/index.js"),ne=require("rc-picker"),s=require("../util.js"),T=require("./index.js"),w=require("../lang/index.js"),oe=require("../../GlobalContext/index.js"),le=require("../../Label/index.js"),ae=require("../../HelperText/index.js"),y=require("../../GlobalContext/constant.js"),ie=require("@snack-kit/lib"),I=require("../PickerTag.js"),ue=require("../../Tooltip/index.js");function ce(z){return o.forwardRef((i,L)=>{const{className:O,size:xe,bordered:_=!0,placeholder:H,error:u=!1,helperText:M,style:S,value:V,defaultValue:F,label:d="",labelTooltip:A,required:f=!1,shortcuts:m,presets:j,ranges:de,shortcutsPlacement:R="left",getPopupContainer:D,isolationPopupOnHide:U=!1,disabled:g,disabledTooltip:P,...c}=i,{format:p,showTime:h,picker:n,use12Hours:B}=i,a=o.useRef(null),b=o.useRef(null),C=o.useMemo(()=>ie.UUID(),[]),t=`${y.$prefixCls}-picker`,{language:$,locale:q}=o.useContext(oe.default);let E={};if(q){const e=q[$||"zh"];e&&(E=e.DatePicker)}const G=w.default[$||"zh"]||w.default.zh,v=s.mergedLocale(E,G);let l={};l={...l,...h?s.getTimeProps({format:p,picker:n,...h}):{},...n==="time"?s.getTimeProps({format:p,...i,picker:n}):{}},l.style&&delete l.style;const k=e=>{if(!Array.isArray(e))return e;const Y=p??T.pickerFormatMap[n];return e.map(Z=>s.formatPickerValue(Z,Y))},J=()=>d||f?r.jsxRuntimeExports.jsx(le.default,{label:d,required:f,...A}):null;o.useImperativeHandle(L,()=>({focus:()=>a.current?.focus(),blur:()=>a.current?.blur()}));const N=j?j.map(e=>({label:typeof e.label=="string"?r.jsxRuntimeExports.jsx(I.default,{children:e.label}):e.label,value:e.value})):m?m.map(e=>({label:typeof e.text=="string"?r.jsxRuntimeExports.jsx(I.default,{children:e.text}):e.text,value:typeof e.value=="function"?e.value():e.value})):[],K=!!N?.length,Q=x(C,c.dropdownClassName,`${y.$prefixCls}-scrollbar-small`,{[`${t}-use12Hours`]:B,[`${t}-presets-${R}`]:K}),W=e=>s.getPopupContainer(e,D,b),X=e=>{c.onOpenChange?.(e),U&&s.isolationPopupPollution(e,C),e||a.current?.blur()};return(()=>{const e=r.jsxRuntimeExports.jsxs("div",{ref:b,className:x(`${t}-wrapper`,O),style:S,children:[J(),r.jsxRuntimeExports.jsx(ne.RangePicker,{separator:r.jsxRuntimeExports.jsx("span",{"aria-label":"to",className:`${t}-separator`,children:r.jsxRuntimeExports.jsx(re.SortRight,{})}),ref:a,placeholder:s.getRangePlaceholder(n,v,H),suffixIcon:n==="time"?r.jsxRuntimeExports.jsx(se.Time,{}):r.jsxRuntimeExports.jsx(te.Calendar,{className:"picker-icon"}),clearIcon:r.jsxRuntimeExports.jsx(ee.CloseCircleF,{}),allowClear:!0,disabled:g,...c,...l,defaultValue:k(F),value:k(V),presets:N,className:x({[`${t}-borderless`]:!_,[`${t}-error`]:u,[`${t}-shortcuts-${R}`]:u}),locale:v.lang,prefixCls:t,generateConfig:z,prevIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-prev-icon`}),nextIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-next-icon`}),superPrevIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-super-prev-icon`}),superNextIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-super-next-icon`}),components:T.Components,direction:"ltr",dropdownClassName:Q,getPopupContainer:W,onOpenChange:X}),r.jsxRuntimeExports.jsx(ae.default,{error:u,helperText:M})]});return g&&P?r.jsxRuntimeExports.jsx(ue.Tooltip,{disabled:!0,...P,children:e}):e})()})}exports.default=ce;
|
|
2
2
|
//# sourceMappingURL=generateRangePicker.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("../../_virtual/jsx-runtime.js"),l=require("react"),x=require("clsx"),se=require("rc-picker"),ne=require("../../node_modules/@para-ui/icons/CloseCircleF/index.js"),oe=require("../../node_modules/@para-ui/icons/Calendar/index.js"),ie=require("../../node_modules/@para-ui/icons/Time/index.js"),s=require("../util.js"),E=require("./index.js"),N=require("../lang/index.js"),le=require("../../GlobalContext/index.js"),ae=require("../../Label/index.js"),ce=require("../../HelperText/index.js"),w=require("../../GlobalContext/constant.js"),ue=require("@snack-kit/lib"),pe=require("../PickerTag.js"),de=require("../../Tooltip/index.js");function xe(y){function n(c,me){return l.forwardRef((a,M)=>{const{className:V,size:Pe,bordered:D=!0,placeholder:F,error:m=!1,helperText:S,style:U,value:G,defaultValue:Q,label:f="",labelTooltip:W,required:P=!1,presets:j,getPopupContainer:Y,isolationPopupOnHide:A=!1,disabled:g,disabledTooltip:k,...u}=a,p=l.useRef(null),R=l.useRef(),{format:d,showTime:C,use12Hours:B}=a,t=`${w.$prefixCls}-picker`,b=l.useMemo(()=>ue.UUID(),[]),{language:h,locale:q}=l.useContext(le.default);let $={};if(q){const e=q[h||"zh"];e&&($=e.DatePicker)}const J=N.default[h||"zh"]||N.default.zh,T=s.mergedLocale($,J),K={showToday:!0};let o={};c&&(o.picker=c);const i=c||a.picker;o={...o,...C?s.getTimeProps({format:d,picker:i,...C}):{},...i==="time"?s.getTimeProps({format:d,...a,picker:i}):{}},o.style&&delete o.style;const v=e=>{const te=d??E.pickerFormatMap[i];return s.formatPickerValue(e,te)},X=()=>f||P?r.jsxRuntimeExports.jsx(ae.default,{label:f,required:P,...W}):null;l.useImperativeHandle(M,()=>({focus:()=>p.current?.focus(),blur:()=>p.current?.blur()}));const Z=j?j.map(e=>({label:typeof e.label=="string"?r.jsxRuntimeExports.jsx(pe.default,{children:e.label}):e.label,value:e.value})):[],ee=e=>s.getPopupContainer(e,Y,R),re=e=>{u.onOpenChange?.(e),A&&s.isolationPopupPollution(e,b)};return(()=>{const e=r.jsxRuntimeExports.jsxs("div",{ref:R,className:x(`${t}-wrapper`,V),style:U,children:[X(),r.jsxRuntimeExports.jsx(se,{ref:p,placeholder:s.getPlaceholder(i,T,F),suffixIcon:i==="time"?r.jsxRuntimeExports.jsx(ie.Time,{}):r.jsxRuntimeExports.jsx(oe.Calendar,{}),clearIcon:r.jsxRuntimeExports.jsx(ne.CloseCircleF,{}),allowClear:!0,disabled:g,...K,...u,...o,defaultValue:v(Q),value:v(G),locale:T.lang,className:x({[`${t}-borderless`]:!D,[`${t}-error`]:m}),prefixCls:t,presets:Z,generateConfig:y,prevIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-prev-icon`}),nextIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-next-icon`}),superPrevIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-super-prev-icon`}),superNextIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-super-next-icon`}),components:E.Components,direction:"ltr",dropdownClassName:x(b,u.dropdownClassName,B&&`${t}-use12Hours`,`${w.$prefixCls}-scrollbar-small`),getPopupContainer:ee,onOpenChange:re}),r.jsxRuntimeExports.jsx(ce.default,{error:m,helperText:S})]});return g&&k?r.jsxRuntimeExports.jsx(de.Tooltip,{disabled:!0,...k,children:e}):e})()})}const I=n(),z=n("week"),L=n("month"),O=n("year"),_=n("time"),H=n("quarter");return{DatePicker:I,WeekPicker:z,MonthPicker:L,YearPicker:O,TimePicker:_,QuarterPicker:H}}exports.default=xe;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("../../_virtual/jsx-runtime.js"),l=require("react"),x=require("clsx"),se=require("rc-picker"),ne=require("../../node_modules/@para-ui/icons/CloseCircleF/index.js"),oe=require("../../node_modules/@para-ui/icons/Calendar/index.js"),ie=require("../../node_modules/@para-ui/icons/Time/index.js"),s=require("../util.js"),E=require("./index.js"),N=require("../lang/index.js"),le=require("../../GlobalContext/index.js"),ae=require("../../Label/index.js"),ce=require("../../HelperText/index.js"),w=require("../../GlobalContext/constant.js"),ue=require("@snack-kit/lib"),pe=require("../PickerTag.js"),de=require("../../Tooltip/index.js");function xe(y){function n(c,me){return l.forwardRef((a,M)=>{const{className:V,size:Pe,bordered:D=!0,placeholder:F,error:m=!1,helperText:S,style:U,value:G,defaultValue:Q,label:f="",labelTooltip:W,required:P=!1,presets:j,getPopupContainer:Y,isolationPopupOnHide:A=!1,disabled:g,disabledTooltip:k,...u}=a,p=l.useRef(null),R=l.useRef(null),{format:d,showTime:C,use12Hours:B}=a,t=`${w.$prefixCls}-picker`,b=l.useMemo(()=>ue.UUID(),[]),{language:h,locale:q}=l.useContext(le.default);let $={};if(q){const e=q[h||"zh"];e&&($=e.DatePicker)}const J=N.default[h||"zh"]||N.default.zh,T=s.mergedLocale($,J),K={showToday:!0};let o={};c&&(o.picker=c);const i=c||a.picker;o={...o,...C?s.getTimeProps({format:d,picker:i,...C}):{},...i==="time"?s.getTimeProps({format:d,...a,picker:i}):{}},o.style&&delete o.style;const v=e=>{const te=d??E.pickerFormatMap[i];return s.formatPickerValue(e,te)},X=()=>f||P?r.jsxRuntimeExports.jsx(ae.default,{label:f,required:P,...W}):null;l.useImperativeHandle(M,()=>({focus:()=>p.current?.focus(),blur:()=>p.current?.blur()}));const Z=j?j.map(e=>({label:typeof e.label=="string"?r.jsxRuntimeExports.jsx(pe.default,{children:e.label}):e.label,value:e.value})):[],ee=e=>s.getPopupContainer(e,Y,R),re=e=>{u.onOpenChange?.(e),A&&s.isolationPopupPollution(e,b)};return(()=>{const e=r.jsxRuntimeExports.jsxs("div",{ref:R,className:x(`${t}-wrapper`,V),style:U,children:[X(),r.jsxRuntimeExports.jsx(se,{ref:p,placeholder:s.getPlaceholder(i,T,F),suffixIcon:i==="time"?r.jsxRuntimeExports.jsx(ie.Time,{}):r.jsxRuntimeExports.jsx(oe.Calendar,{}),clearIcon:r.jsxRuntimeExports.jsx(ne.CloseCircleF,{}),allowClear:!0,disabled:g,...K,...u,...o,defaultValue:v(Q),value:v(G),locale:T.lang,className:x({[`${t}-borderless`]:!D,[`${t}-error`]:m}),prefixCls:t,presets:Z,generateConfig:y,prevIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-prev-icon`}),nextIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-next-icon`}),superPrevIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-super-prev-icon`}),superNextIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-super-next-icon`}),components:E.Components,direction:"ltr",dropdownClassName:x(b,u.dropdownClassName,B&&`${t}-use12Hours`,`${w.$prefixCls}-scrollbar-small`),getPopupContainer:ee,onOpenChange:re}),r.jsxRuntimeExports.jsx(ce.default,{error:m,helperText:S})]});return g&&k?r.jsxRuntimeExports.jsx(de.Tooltip,{disabled:!0,...k,children:e}):e})()})}const I=n(),z=n("week"),L=n("month"),O=n("year"),_=n("time"),H=n("quarter");return{DatePicker:I,WeekPicker:z,MonthPicker:L,YearPicker:O,TimePicker:_,QuarterPicker:H}}exports.default=xe;
|
|
2
2
|
//# sourceMappingURL=generateSinglePicker.js.map
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Descriptions",
|
|
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": "标准描述列表(无边框,horizontal 布局)"
|
|
21
|
+
},
|
|
22
|
+
"bordered": {
|
|
23
|
+
"meaning": "带边框描述列表(border=true)"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"states": [
|
|
27
|
+
"default",
|
|
28
|
+
"collapsed",
|
|
29
|
+
"expanded"
|
|
30
|
+
],
|
|
31
|
+
"idealProps": {
|
|
32
|
+
"list": {
|
|
33
|
+
"type": "DescriptionsListProps[]",
|
|
34
|
+
"description": "列表配置数组;DescriptionsListProps 字段:label(ReactNode 标题)、content(ReactNode 内容)、column(number 占比列数,默认 1)。**不是 antd 风格的 items 字段——para-ui 用 list**"
|
|
35
|
+
},
|
|
36
|
+
"layout": {
|
|
37
|
+
"type": "enum",
|
|
38
|
+
"values": [
|
|
39
|
+
"horizontal",
|
|
40
|
+
"vertical"
|
|
41
|
+
],
|
|
42
|
+
"default": "horizontal",
|
|
43
|
+
"description": "布局方向;horizontal=标题+内容在同一行,vertical=标题在上内容在下(各占一行)"
|
|
44
|
+
},
|
|
45
|
+
"column": {
|
|
46
|
+
"type": "number",
|
|
47
|
+
"description": "每行显示的列数;horizontal 无 border 默认 4,horizontal 有 border 默认 3,vertical 默认 4;也可通过 list 每项的 column 字段单独设置跨列数"
|
|
48
|
+
},
|
|
49
|
+
"border": {
|
|
50
|
+
"type": "boolean",
|
|
51
|
+
"default": false,
|
|
52
|
+
"description": "是否显示边框(table 形式);border=true 时 collapse 功能不可用(src/Descriptions/index.tsx:235 实证:collapse && !border 才启用折叠)"
|
|
53
|
+
},
|
|
54
|
+
"title": {
|
|
55
|
+
"type": "string | TitleProps",
|
|
56
|
+
"description": "标题;传 string 时自动包装为 TitleProps;传 TitleProps 对象可自定义 title/subtitle/action 等"
|
|
57
|
+
},
|
|
58
|
+
"collapse": {
|
|
59
|
+
"type": "boolean",
|
|
60
|
+
"default": false,
|
|
61
|
+
"description": "是否启用折叠(仅 horizontal 无 border 时有效);启用后显示展开/收起按钮,配合 collapsedHeight 控制收起最小高度"
|
|
62
|
+
},
|
|
63
|
+
"collapsedHeight": {
|
|
64
|
+
"type": "string | number",
|
|
65
|
+
"default": 60,
|
|
66
|
+
"description": "收起状态最小高度(default 60);仅 collapse=true 且 border=false 时生效"
|
|
67
|
+
},
|
|
68
|
+
"defaultOpen": {
|
|
69
|
+
"type": "boolean",
|
|
70
|
+
"default": false,
|
|
71
|
+
"description": "初始是否展开(非受控,仅首次渲染生效)"
|
|
72
|
+
},
|
|
73
|
+
"open": {
|
|
74
|
+
"type": "boolean",
|
|
75
|
+
"description": "受控展开状态;传入后外部可控制展开/收起;不传时组件内部维护状态"
|
|
76
|
+
},
|
|
77
|
+
"onCollapse": {
|
|
78
|
+
"type": "(bol: boolean) => void",
|
|
79
|
+
"description": "折叠状态变化回调;bol=true 表示展开"
|
|
80
|
+
},
|
|
81
|
+
"paddingRight": {
|
|
82
|
+
"type": "number | string",
|
|
83
|
+
"default": 40,
|
|
84
|
+
"description": "横向模式每个字段的右内边距(控制标题与内容间距)"
|
|
85
|
+
},
|
|
86
|
+
"className": {
|
|
87
|
+
"type": "string",
|
|
88
|
+
"description": "根容器自定义类名"
|
|
89
|
+
},
|
|
90
|
+
"style": {
|
|
91
|
+
"type": "React.CSSProperties",
|
|
92
|
+
"description": "根容器自定义样式"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"do": [
|
|
96
|
+
"用于展示键值对形式的详情数据——list 每项传 { label, content } 即可",
|
|
97
|
+
"根据内容量决定 column:内容较少用 column=2,内容较多用 column=3/4",
|
|
98
|
+
"需要折叠功能:传 collapse=true(仅 horizontal + 无 border 时有效),配合 collapsedHeight 设置预览高度"
|
|
99
|
+
],
|
|
100
|
+
"dont": [
|
|
101
|
+
"在 Descriptions 中放入可编辑表单——应使用 Form 组件",
|
|
102
|
+
"Label 过长导致排版错乱——label 超过 6 个字时建议配合 AutoTips 或缩短文案",
|
|
103
|
+
"border=true 时传 collapse=true 期望折叠生效——两者互斥(src 实证:border=true 时 collapse 被忽略)",
|
|
104
|
+
"用 items 字段传数据(antd 风格)——para-ui Descriptions 用 list 字段"
|
|
105
|
+
],
|
|
106
|
+
"events": {
|
|
107
|
+
"onCollapse": {
|
|
108
|
+
"signature": "(bol: boolean) => void",
|
|
109
|
+
"asyncSupported": false,
|
|
110
|
+
"examples": [
|
|
111
|
+
"受控折叠:<Descriptions collapse open={isOpen} onCollapse={(bol) => setIsOpen(bol)} />",
|
|
112
|
+
"仅监听不受控:<Descriptions collapse onCollapse={(bol) => trackEvent(bol ? 'expand' : 'collapse')} />",
|
|
113
|
+
"bol=true 表示用户点击展开,bol=false 表示用户点击收起"
|
|
114
|
+
],
|
|
115
|
+
"commonMistakes": [
|
|
116
|
+
"期望 border=true 时 onCollapse 触发——collapse 功能在 border=true 时不可用,onCollapse 永不触发",
|
|
117
|
+
"传 open 不传 onCollapse,以为可以完全受控——open prop 变化会同步状态,但不传 onCollapse 用户点击无法反向通知父端"
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"typescriptPitfalls": [
|
|
122
|
+
{
|
|
123
|
+
"issue": "list 字段名是 list,不是 antd 风格的 items",
|
|
124
|
+
"wrong": "<Descriptions items={[{ label: '姓名', children: '张三' }]} /> // items/children 是 antd 风格,para-ui 不支持",
|
|
125
|
+
"right": "<Descriptions list={[{ label: '姓名', content: '张三' }]} /> // 用 list + content"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"issue": "border=true 时 collapse 不生效,两者在 TS 层面不互斥但运行时 border 优先级更高",
|
|
129
|
+
"wrong": "<Descriptions border collapse /> // border=true 时 collapse 被忽略,无折叠按钮",
|
|
130
|
+
"right": "<Descriptions collapse /> // 折叠功能只在 border=false(默认)时可用"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"issue": "title 同时接受 string 和 TitleProps 对象,混用导致 TS 联合类型错误",
|
|
134
|
+
"wrong": "title={{ text: '标题' }} // TitleProps 字段是 title,不是 text",
|
|
135
|
+
"right": "title='标题' // 字符串即可;或 title={{ title: '标题', subtitle: '副标题' }}"
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
"mapping": {
|
|
139
|
+
"realComponent": "Descriptions",
|
|
140
|
+
"adapter": null
|
|
141
|
+
}
|
|
142
|
+
}
|