@cloudtower/eagle 0.0.0-config-rc-7 → 0.0.0-data-testid
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/dist/__test__/mockLineChart.d.ts +4 -0
- package/dist/cjs/UIKitProvider/index.js +15 -40
- package/dist/cjs/antd.js +14 -14
- package/dist/cjs/core/AccordionCard/index.js +4 -1
- package/dist/cjs/core/Alert/index.js +12 -4
- package/dist/cjs/core/Arch/index.js +5 -3
- package/dist/cjs/core/AutoComplete/AutoComplete.js +42 -0
- package/dist/cjs/core/Avatar/index.js +3 -1
- package/dist/cjs/core/Banner/banner.style.js +11 -0
- package/dist/cjs/core/Banner/index.js +45 -0
- package/dist/cjs/core/BasicCTError/BasicCTError.style.js +5 -0
- package/dist/cjs/core/BasicCTError/index.js +53 -0
- package/dist/cjs/core/Bit/index.js +5 -3
- package/dist/cjs/core/BitPerSecond/index.js +8 -6
- package/dist/cjs/core/BlankState/index.js +91 -0
- package/dist/cjs/core/BlankState/style.js +5 -0
- package/dist/cjs/core/Bps/index.js +5 -3
- package/dist/cjs/core/Breadcrumb/index.js +4 -1
- package/dist/cjs/core/Button/index.js +1 -2
- package/dist/cjs/core/ButtonGroup/index.js +3 -1
- package/dist/cjs/core/Byte/index.js +7 -5
- package/dist/cjs/core/BytePerSecond/index.js +46 -0
- package/dist/cjs/core/Card/index.js +7 -3
- package/dist/cjs/core/Cascader/cascader.widget.js +12 -11
- package/dist/cjs/core/Cascader/index.js +1 -1
- package/dist/cjs/core/Checkbox/index.js +1 -1
- package/dist/cjs/core/ConfigProvider/index.js +45 -1
- package/dist/cjs/core/DetailCard/index.js +7 -3
- package/dist/cjs/core/DonutChart/index.js +3 -1
- package/dist/cjs/core/DropdownMenu/index.js +9 -4
- package/dist/cjs/core/Duration/index.js +79 -0
- package/dist/cjs/core/Empty/index.js +6 -3
- package/dist/cjs/core/Error/index.js +4 -1
- package/dist/cjs/core/FailedLoad/index.js +4 -1
- package/dist/cjs/core/Fields/FieldsBoolean/index.js +11 -2
- package/dist/cjs/core/Fields/FieldsDateTime/index.js +5 -1
- package/dist/cjs/core/Fields/FieldsDateTimeRange/index.js +25 -5
- package/dist/cjs/core/Fields/FieldsEnum/index.js +6 -4
- package/dist/cjs/core/Fields/FieldsFloat/index.js +6 -3
- package/dist/cjs/core/Fields/FieldsInt/index.js +6 -3
- package/dist/cjs/core/Fields/FieldsInteger/index.js +6 -3
- package/dist/cjs/core/Fields/FieldsString/index.js +14 -4
- package/dist/cjs/core/Fields/FieldsTextArea/index.js +6 -3
- package/dist/cjs/core/Fields/FieldsTimePicker/index.js +10 -6
- package/dist/cjs/core/FormItem/index.js +15 -1
- package/dist/cjs/core/Frequency/index.js +5 -3
- package/dist/cjs/core/ImmersiveDialog/index.js +230 -0
- package/dist/cjs/core/ImmersiveDialog/styles.js +31 -0
- package/dist/cjs/core/Input/index.js +15 -3
- package/dist/cjs/core/InputInteger/index.js +15 -3
- package/dist/cjs/core/InputNumber/index.js +15 -3
- package/dist/cjs/core/InputPassword/index.js +15 -3
- package/dist/cjs/core/KitStoreProvider/index.js +10 -0
- package/dist/cjs/core/{Modal → LegacyModal}/index.js +60 -45
- package/dist/cjs/core/LegacySelect/index.js +203 -0
- package/dist/cjs/core/LegacySelect/select.style.js +5 -0
- package/dist/cjs/core/Legend/index.js +128 -0
- package/dist/cjs/core/LineChart/LineChartActions.js +52 -0
- package/dist/cjs/core/LineChart/LineChartLegend.js +120 -0
- package/dist/cjs/core/LineChart/LineChartToolBar.js +56 -0
- package/dist/cjs/core/LineChart/Pointer.js +45 -0
- package/dist/cjs/core/LineChart/RenderChart.js +317 -0
- package/dist/cjs/core/LineChart/TooltipFormatter.js +71 -0
- package/dist/cjs/core/LineChart/index.js +68 -0
- package/dist/cjs/core/LineChart/styled.js +35 -0
- package/dist/cjs/core/LineChart/type.js +30 -0
- package/dist/cjs/core/LineChart/utils.js +394 -0
- package/dist/cjs/core/Loading/index.js +23 -2
- package/dist/cjs/core/LocalUpload/LocalUpload.hooks.js +66 -0
- package/dist/cjs/core/LocalUpload/LocalUpload.js +116 -0
- package/dist/cjs/core/LocalUpload/LocalUpload.style.js +13 -0
- package/dist/cjs/core/LocalUpload/LocalUpload.widget.js +379 -0
- package/dist/cjs/core/MediumDialog/MediumDialog.js +57 -0
- package/dist/cjs/core/Metric/index.js +3 -1
- package/dist/cjs/core/ModalStack/index.js +6 -0
- package/dist/cjs/core/Nav/index.js +5 -2
- package/dist/cjs/core/Pagination/index.js +7 -1
- package/dist/cjs/core/Percent/index.js +4 -3
- package/dist/cjs/core/Progress/index.js +6 -4
- package/dist/cjs/core/Progress/progress.widgets.js +6 -7
- package/dist/cjs/core/Radio/index.js +15 -7
- package/dist/cjs/core/SearchInput/SearchInput.hook.js +124 -0
- package/dist/cjs/core/SearchInput/SearchInput.js +253 -0
- package/dist/cjs/core/SearchInput/SearchInput.style.js +13 -0
- package/dist/cjs/core/SearchInput/index.js +137 -28
- package/dist/cjs/core/Second/index.js +16 -5
- package/dist/cjs/core/SegmentControl/index.js +1 -1
- package/dist/cjs/core/Select/index.js +106 -117
- package/dist/cjs/core/Select/select.style.js +11 -0
- package/dist/cjs/core/Select/select.widgets.js +63 -0
- package/dist/cjs/core/SidebarMenu/SidebarMenu.js +1 -7
- package/dist/cjs/core/SimplePagination/index.js +8 -2
- package/dist/cjs/core/Skeleton/Content.js +30 -0
- package/dist/cjs/core/Skeleton/index.js +13 -0
- package/dist/cjs/core/SmallDialog/SmallDialog.js +172 -0
- package/dist/cjs/core/SmallDialog/SmallDialog.style.js +17 -0
- package/dist/cjs/core/SmallDialog/SmallDialog.widget.js +28 -0
- package/dist/cjs/core/Speed/index.js +5 -3
- package/dist/cjs/core/StepProgress/index.js +3 -1
- package/dist/cjs/core/Styled/index.js +2 -0
- package/dist/cjs/core/Switch/index.js +5 -3
- package/dist/cjs/core/Tab/Tab.js +118 -0
- package/dist/cjs/core/Tab/Tab.style.js +17 -0
- package/dist/cjs/core/Tab/Tab.type.js +9 -0
- package/dist/cjs/core/Tab/useTabAdaptiveLayout.js +73 -0
- package/dist/cjs/core/Table/index.js +7 -3
- package/dist/cjs/core/TableForm/AddRowButton.js +13 -5
- package/dist/cjs/core/TableForm/Columns/AffixColumn.js +1 -1
- package/dist/cjs/core/TableForm/Columns/CheckboxColumn.js +1 -1
- package/dist/cjs/core/TableForm/Columns/InputColumn.js +1 -0
- package/dist/cjs/core/TableForm/TableFormBodyCell.js +13 -17
- package/dist/cjs/core/TableForm/TableFormBodyRows.js +8 -3
- package/dist/cjs/core/TableForm/TableFormHeaderCell.js +42 -20
- package/dist/cjs/core/TableForm/index.js +41 -21
- package/dist/cjs/core/TextArea/index.js +21 -3
- package/dist/cjs/core/Time/index.js +9 -8
- package/dist/cjs/core/TimePicker/index.js +1 -9
- package/dist/cjs/core/TimeZoneSelect/index.js +4 -2
- package/dist/cjs/core/Timeline/Timeline.style.js +13 -0
- package/dist/cjs/core/Timeline/Timeline.widget.js +114 -0
- package/dist/cjs/core/Timeline/index.js +143 -0
- package/dist/cjs/core/Tooltip/EllipsisTooltipContent.js +55 -0
- package/dist/cjs/core/Tooltip/index.js +4 -1
- package/dist/cjs/core/Truncate/index.js +3 -1
- package/dist/cjs/core/WizardDialog/index.js +175 -0
- package/dist/cjs/core/WizardDialog/styles.js +11 -0
- package/dist/cjs/core/index.js +24 -18
- package/dist/cjs/core/message/index.js +5 -210
- package/dist/cjs/core/message/message.js +245 -0
- package/dist/cjs/core/message/useMessage.js +12 -0
- package/dist/cjs/core/message-group/index.js +3 -1
- package/dist/cjs/coreX/BarChart/index.js +77 -18
- package/dist/cjs/coreX/BatchOperation/index.js +4 -1
- package/dist/cjs/coreX/ChartWithTooltip/index.js +14 -12
- package/dist/cjs/coreX/CheckPointList/checkpointlist.style.js +9 -0
- package/dist/cjs/coreX/CheckPointList/index.js +118 -0
- package/dist/cjs/coreX/CircleLoading/index.js +66 -0
- package/dist/cjs/coreX/Copy/CopyButton.js +40 -0
- package/dist/cjs/coreX/Copy/CopyTooltip.js +66 -0
- package/dist/cjs/coreX/DateRangePicker/AbsoluteDate.js +2 -1
- package/dist/cjs/coreX/DateRangePicker/Calendar.js +82 -61
- package/dist/cjs/coreX/DateRangePicker/common.js +7 -5
- package/dist/cjs/coreX/DateRangePicker/index.js +25 -8
- package/dist/cjs/coreX/DateRangePicker/utils.js +5 -0
- package/dist/cjs/coreX/Dialogs/DeleteDialog/DeleteDialog.js +53 -0
- package/dist/cjs/coreX/Dialogs/RejectDialog/RejectDialog.js +137 -0
- package/dist/cjs/coreX/Dialogs/RejectDialog/RejectDialog.type.js +11 -0
- package/dist/cjs/coreX/InfoRowList/InfoRow.js +31 -0
- package/dist/cjs/coreX/InfoRowList/InfoRowList.js +60 -0
- package/dist/cjs/coreX/KubeConfigModal/KubeConfigModal.style.js +29 -0
- package/dist/cjs/coreX/KubeConfigModal/index.js +102 -0
- package/dist/cjs/coreX/KubeConfigModal/utils.js +25 -0
- package/dist/cjs/coreX/OverflowTooltip/index.js +21 -8
- package/dist/cjs/coreX/Show/index.js +20 -0
- package/dist/cjs/coreX/Sider/index.js +109 -0
- package/dist/cjs/coreX/SummaryTable/index.js +6 -3
- package/dist/cjs/coreX/UnderlineTootip/index.js +70 -0
- package/dist/cjs/coreX/UnitWithChart/index.js +14 -12
- package/dist/cjs/hooks/useAntdPatchEnLocales.js +35 -0
- package/dist/cjs/hooks/useCTErrorMsg.js +25 -0
- package/dist/cjs/hooks/useFormatDuration.js +35 -0
- package/dist/cjs/hooks/useLegacyComponentWarning.js +16 -0
- package/dist/cjs/index.js +376 -260
- package/dist/cjs/legacy-antd.js +58 -54
- package/dist/cjs/stats1.html +1 -1
- package/dist/cjs/store/modal.js +3 -0
- package/dist/cjs/styles/token/animation.js +22 -1
- package/dist/cjs/styles/token/color.js +24 -0
- package/dist/cjs/utils/constants.js +10 -6
- package/dist/cjs/utils/cterror.js +64 -0
- package/dist/cjs/utils/formatDuration.js +67 -0
- package/dist/cjs/utils/tower.js +98 -0
- package/dist/cjs/utils/unit.js +19 -0
- package/dist/components.css +6496 -61862
- package/dist/esm/UIKitProvider/index.js +9 -28
- package/dist/esm/antd.js +3 -3
- package/dist/esm/core/AccordionCard/index.js +4 -1
- package/dist/esm/core/Alert/index.js +12 -4
- package/dist/esm/core/Arch/index.js +5 -3
- package/dist/esm/core/AutoComplete/AutoComplete.js +35 -0
- package/dist/esm/core/Avatar/index.js +3 -1
- package/dist/esm/core/Banner/banner.style.js +6 -0
- package/dist/esm/core/Banner/index.js +38 -0
- package/dist/esm/core/BasicCTError/BasicCTError.style.js +3 -0
- package/dist/esm/core/BasicCTError/index.js +47 -0
- package/dist/esm/core/Bit/index.js +5 -3
- package/dist/esm/core/BitPerSecond/index.js +8 -6
- package/dist/esm/core/BlankState/index.js +85 -0
- package/dist/esm/core/BlankState/style.js +3 -0
- package/dist/esm/core/Bps/index.js +5 -3
- package/dist/esm/core/Breadcrumb/index.js +4 -1
- package/dist/esm/core/Button/index.js +1 -2
- package/dist/esm/core/ButtonGroup/index.js +3 -1
- package/dist/esm/core/Byte/index.js +7 -5
- package/dist/esm/core/BytePerSecond/index.js +40 -0
- package/dist/esm/core/Card/index.js +7 -3
- package/dist/esm/core/Cascader/cascader.widget.js +3 -2
- package/dist/esm/core/Cascader/index.js +2 -2
- package/dist/esm/core/Checkbox/index.js +1 -1
- package/dist/esm/core/ConfigProvider/index.js +40 -3
- package/dist/esm/core/DetailCard/index.js +7 -3
- package/dist/esm/core/DonutChart/index.js +3 -1
- package/dist/esm/core/DropdownMenu/index.js +9 -4
- package/dist/esm/core/Duration/index.js +73 -0
- package/dist/esm/core/Empty/index.js +6 -3
- package/dist/esm/core/Error/index.js +4 -1
- package/dist/esm/core/FailedLoad/index.js +4 -1
- package/dist/esm/core/Fields/FieldsBoolean/index.js +11 -2
- package/dist/esm/core/Fields/FieldsDateTime/index.js +5 -1
- package/dist/esm/core/Fields/FieldsDateTimeRange/index.js +25 -5
- package/dist/esm/core/Fields/FieldsEnum/index.js +8 -6
- package/dist/esm/core/Fields/FieldsFloat/index.js +6 -3
- package/dist/esm/core/Fields/FieldsInt/index.js +6 -3
- package/dist/esm/core/Fields/FieldsInteger/index.js +6 -3
- package/dist/esm/core/Fields/FieldsString/index.js +14 -4
- package/dist/esm/core/Fields/FieldsTextArea/index.js +6 -3
- package/dist/esm/core/Fields/FieldsTimePicker/index.js +8 -4
- package/dist/esm/core/FormItem/index.js +15 -1
- package/dist/esm/core/Frequency/index.js +5 -3
- package/dist/esm/core/ImmersiveDialog/index.js +223 -0
- package/dist/esm/core/ImmersiveDialog/styles.js +16 -0
- package/dist/esm/core/Input/index.js +15 -3
- package/dist/esm/core/InputInteger/index.js +15 -3
- package/dist/esm/core/InputNumber/index.js +15 -3
- package/dist/esm/core/InputPassword/index.js +15 -3
- package/dist/esm/core/KitStoreProvider/index.js +10 -1
- package/dist/esm/core/{Modal → LegacyModal}/index.js +62 -47
- package/dist/esm/core/LegacySelect/index.js +195 -0
- package/dist/esm/core/LegacySelect/select.style.js +3 -0
- package/dist/esm/core/Legend/index.js +117 -0
- package/dist/esm/core/LineChart/LineChartActions.js +46 -0
- package/dist/esm/core/LineChart/LineChartLegend.js +110 -0
- package/dist/esm/core/LineChart/LineChartToolBar.js +50 -0
- package/dist/esm/core/LineChart/Pointer.js +38 -0
- package/dist/esm/core/LineChart/RenderChart.js +309 -0
- package/dist/esm/core/LineChart/TooltipFormatter.js +64 -0
- package/dist/esm/core/LineChart/index.js +59 -0
- package/dist/esm/core/LineChart/styled.js +25 -0
- package/dist/esm/core/LineChart/type.js +26 -0
- package/dist/esm/core/LineChart/utils.js +369 -0
- package/dist/esm/core/Loading/index.js +22 -2
- package/dist/esm/core/LocalUpload/LocalUpload.hooks.js +63 -0
- package/dist/esm/core/LocalUpload/LocalUpload.js +110 -0
- package/dist/esm/core/LocalUpload/LocalUpload.style.js +10 -0
- package/dist/esm/core/LocalUpload/LocalUpload.widget.js +365 -0
- package/dist/esm/core/MediumDialog/MediumDialog.js +51 -0
- package/dist/esm/core/Metric/index.js +3 -1
- package/dist/esm/core/ModalStack/index.js +7 -1
- package/dist/esm/core/Nav/index.js +5 -2
- package/dist/esm/core/Pagination/index.js +7 -1
- package/dist/esm/core/Percent/index.js +4 -3
- package/dist/esm/core/Progress/index.js +7 -5
- package/dist/esm/core/Progress/progress.widgets.js +5 -6
- package/dist/esm/core/Radio/index.js +15 -7
- package/dist/esm/core/SearchInput/SearchInput.hook.js +117 -0
- package/dist/esm/core/SearchInput/SearchInput.js +247 -0
- package/dist/esm/core/SearchInput/SearchInput.style.js +7 -0
- package/dist/esm/core/SearchInput/index.js +137 -28
- package/dist/esm/core/Second/index.js +16 -5
- package/dist/esm/core/SegmentControl/index.js +2 -2
- package/dist/esm/core/Select/index.js +104 -116
- package/dist/esm/core/Select/select.style.js +6 -0
- package/dist/esm/core/Select/select.widgets.js +57 -0
- package/dist/esm/core/SidebarMenu/SidebarMenu.js +2 -8
- package/dist/esm/core/SimplePagination/index.js +8 -2
- package/dist/esm/core/Skeleton/Content.js +23 -0
- package/dist/esm/core/Skeleton/index.js +7 -0
- package/dist/esm/core/SmallDialog/SmallDialog.js +165 -0
- package/dist/esm/core/SmallDialog/SmallDialog.style.js +9 -0
- package/dist/esm/core/SmallDialog/SmallDialog.widget.js +20 -0
- package/dist/esm/core/Speed/index.js +5 -3
- package/dist/esm/core/StepProgress/index.js +3 -1
- package/dist/esm/core/Styled/index.js +2 -1
- package/dist/esm/core/Switch/index.js +5 -3
- package/dist/esm/core/Tab/Tab.js +112 -0
- package/dist/esm/core/Tab/Tab.style.js +12 -0
- package/dist/esm/core/Tab/Tab.type.js +7 -0
- package/dist/esm/core/Tab/useTabAdaptiveLayout.js +71 -0
- package/dist/esm/core/Table/index.js +7 -3
- package/dist/esm/core/TableForm/AddRowButton.js +13 -5
- package/dist/esm/core/TableForm/Columns/AffixColumn.js +1 -1
- package/dist/esm/core/TableForm/Columns/CheckboxColumn.js +1 -1
- package/dist/esm/core/TableForm/Columns/InputColumn.js +1 -0
- package/dist/esm/core/TableForm/TableFormBodyCell.js +14 -18
- package/dist/esm/core/TableForm/TableFormBodyRows.js +8 -3
- package/dist/esm/core/TableForm/TableFormHeaderCell.js +39 -17
- package/dist/esm/core/TableForm/index.js +42 -22
- package/dist/esm/core/TextArea/index.js +21 -3
- package/dist/esm/core/Time/index.js +9 -8
- package/dist/esm/core/TimePicker/index.js +1 -9
- package/dist/esm/core/TimeZoneSelect/index.js +5 -3
- package/dist/esm/core/Timeline/Timeline.style.js +7 -0
- package/dist/esm/core/Timeline/Timeline.widget.js +107 -0
- package/dist/esm/core/Timeline/index.js +136 -0
- package/dist/esm/core/Tooltip/EllipsisTooltipContent.js +49 -0
- package/dist/esm/core/Tooltip/index.js +4 -1
- package/dist/esm/core/Truncate/index.js +3 -1
- package/dist/esm/core/WizardDialog/index.js +169 -0
- package/dist/esm/core/WizardDialog/styles.js +6 -0
- package/dist/esm/core/index.js +6 -2
- package/dist/esm/core/message/index.js +4 -180
- package/dist/esm/core/message/message.js +209 -0
- package/dist/esm/core/message/useMessage.js +9 -0
- package/dist/esm/core/message-group/index.js +3 -1
- package/dist/esm/coreX/BarChart/index.js +77 -19
- package/dist/esm/coreX/BatchOperation/index.js +4 -1
- package/dist/esm/coreX/ChartWithTooltip/index.js +2 -0
- package/dist/esm/coreX/CheckPointList/checkpointlist.style.js +5 -0
- package/dist/esm/coreX/CheckPointList/index.js +110 -0
- package/dist/esm/coreX/CircleLoading/index.js +59 -0
- package/dist/esm/coreX/Copy/CopyButton.js +34 -0
- package/dist/esm/coreX/Copy/CopyTooltip.js +59 -0
- package/dist/esm/coreX/DateRangePicker/AbsoluteDate.js +2 -1
- package/dist/esm/coreX/DateRangePicker/Calendar.js +83 -62
- package/dist/esm/coreX/DateRangePicker/common.js +7 -5
- package/dist/esm/coreX/DateRangePicker/index.js +26 -9
- package/dist/esm/coreX/DateRangePicker/utils.js +3 -0
- package/dist/esm/coreX/Dialogs/DeleteDialog/DeleteDialog.js +47 -0
- package/dist/esm/coreX/Dialogs/RejectDialog/RejectDialog.js +131 -0
- package/dist/esm/coreX/Dialogs/RejectDialog/RejectDialog.type.js +9 -0
- package/dist/esm/coreX/InfoRowList/InfoRow.js +25 -0
- package/dist/esm/coreX/InfoRowList/InfoRowList.js +54 -0
- package/dist/esm/coreX/KubeConfigModal/KubeConfigModal.style.js +20 -0
- package/dist/esm/coreX/KubeConfigModal/index.js +96 -0
- package/dist/esm/coreX/KubeConfigModal/utils.js +22 -0
- package/dist/esm/coreX/OverflowTooltip/index.js +21 -8
- package/dist/esm/coreX/Show/index.js +14 -0
- package/dist/esm/coreX/Sider/index.js +102 -0
- package/dist/esm/coreX/SummaryTable/index.js +6 -3
- package/dist/esm/coreX/UnderlineTootip/index.js +61 -0
- package/dist/esm/coreX/UnitWithChart/index.js +2 -0
- package/dist/esm/hooks/useAntdPatchEnLocales.js +29 -0
- package/dist/esm/hooks/useCTErrorMsg.js +23 -0
- package/dist/esm/hooks/useFormatDuration.js +33 -0
- package/dist/esm/hooks/useLegacyComponentWarning.js +14 -0
- package/dist/esm/index.js +47 -10
- package/dist/esm/legacy-antd.js +10 -6
- package/dist/esm/stats1.html +1 -1
- package/dist/esm/store/modal.js +3 -0
- package/dist/esm/styles/token/animation.js +22 -2
- package/dist/esm/styles/token/color.js +24 -0
- package/dist/esm/utils/constants.js +6 -6
- package/dist/esm/utils/cterror.js +58 -0
- package/dist/esm/utils/formatDuration.js +65 -0
- package/dist/esm/utils/tower.js +93 -1
- package/dist/esm/utils/unit.js +17 -0
- package/dist/linaria.merged.scss +8642 -0
- package/dist/src/UIKitProvider/UIKitProvider.stories.d.ts +1 -2
- package/dist/src/UIKitProvider/index.d.ts +4 -6
- package/dist/src/antd.d.ts +3 -2
- package/dist/src/core/AccordionCard/accordionCard.type.d.ts +1 -0
- package/dist/src/core/Alert/alert.type.d.ts +6 -4
- package/dist/src/core/Antd5Flex/index.d.ts +2 -0
- package/dist/src/core/Antd5Tree/Antd5Tree.d.ts +1 -0
- package/dist/src/core/Antd5Tree/Antd5Tree.type.d.ts +4 -0
- package/dist/src/core/Antd5Tree/index.d.ts +2 -0
- package/dist/src/core/Arch/arch.type.d.ts +1 -0
- package/dist/src/core/AutoComplete/AutoComplete.d.ts +6 -0
- package/dist/src/core/AutoComplete/index.d.ts +1 -0
- package/dist/src/core/Avatar/avatar.type.d.ts +1 -0
- package/dist/src/core/Banner/banner.style.d.ts +4 -0
- package/dist/src/core/Banner/banner.types.d.ts +29 -0
- package/dist/src/core/Banner/index.d.ts +3 -0
- package/dist/src/core/BasicCTError/BasicCTError.style.d.ts +1 -0
- package/dist/src/core/BasicCTError/BasicCTError.type.d.ts +62 -0
- package/dist/src/core/BasicCTError/index.d.ts +3 -0
- package/dist/src/core/BitPerSecond/index.d.ts +2 -2
- package/dist/src/core/BlankState/index.d.ts +4 -0
- package/dist/src/core/BlankState/style.d.ts +1 -0
- package/dist/src/core/BlankState/type.d.ts +50 -0
- package/dist/src/core/Breadcrumb/breadcrumb.type.d.ts +2 -0
- package/dist/src/core/Button/button.type.d.ts +1 -0
- package/dist/src/core/BytePerSecond/index.d.ts +3 -0
- package/dist/src/core/Card/index.d.ts +8 -0
- package/dist/src/core/Cascader/cascader.type.d.ts +3 -1
- package/dist/src/core/Checkbox/index.d.ts +1 -1
- package/dist/src/core/ConfigProvider/index.d.ts +8 -1
- package/dist/src/core/DetailCard/detailCard.type.d.ts +1 -0
- package/dist/src/core/DonutChart/index.d.ts +1 -0
- package/dist/src/core/DropdownMenu/dropdownMenu.type.d.ts +2 -0
- package/dist/src/core/DropdownMenu/index.d.ts +1 -0
- package/dist/src/core/Duration/duration.type.d.ts +50 -0
- package/dist/src/core/Duration/index.d.ts +4 -0
- package/dist/src/core/Empty/index.d.ts +2 -1
- package/dist/src/core/Error/index.d.ts +2 -1
- package/dist/src/core/FailedLoad/index.d.ts +1 -0
- package/dist/src/core/Fields/FieldsBoolean/index.d.ts +1 -1
- package/dist/src/core/Fields/FieldsDateTime/index.d.ts +1 -1
- package/dist/src/core/Fields/FieldsEnum/fieldsEnum.type.d.ts +1 -0
- package/dist/src/core/Fields/FieldsEnum/index.d.ts +1 -1
- package/dist/src/core/Fields/FieldsFloat/index.d.ts +1 -1
- package/dist/src/core/Fields/FieldsInt/index.d.ts +1 -1
- package/dist/src/core/Fields/FieldsInteger/index.d.ts +1 -1
- package/dist/src/core/Fields/FieldsString/index.d.ts +1 -1
- package/dist/src/core/Fields/FieldsTextArea/index.d.ts +1 -1
- package/dist/src/core/Fields/FieldsTimePicker/index.d.ts +1 -1
- package/dist/src/core/Fields/__test__/data-testid.test.d.ts +1 -0
- package/dist/src/core/Fields/fields.type.d.ts +2 -1
- package/dist/src/core/Fields/index.d.ts +13 -9
- package/dist/src/core/FormItem/index.d.ts +3 -1
- package/dist/src/core/ImmersiveDialog/index.d.ts +3 -0
- package/dist/src/core/ImmersiveDialog/styles.d.ts +14 -0
- package/dist/src/core/ImmersiveDialog/type.d.ts +156 -0
- package/dist/src/core/Input/index.d.ts +2 -4
- package/dist/src/core/Input/input.type.d.ts +9 -0
- package/dist/src/core/InputPassword/index.d.ts +7 -2
- package/dist/src/core/KitStoreProvider/index.d.ts +1 -0
- package/dist/src/core/LegacyModal/LegacyModal.type.d.ts +71 -0
- package/dist/src/core/LegacyModal/index.d.ts +16 -0
- package/dist/src/core/LegacySelect/index.d.ts +4 -0
- package/dist/src/core/LegacySelect/select.style.d.ts +1 -0
- package/dist/src/core/LegacySelect/select.type.d.ts +32 -0
- package/dist/src/core/Legend/__test__/h5_css.test.d.ts +1 -0
- package/dist/src/core/Legend/index.d.ts +9 -0
- package/dist/src/core/Legend/legend.type.d.ts +27 -0
- package/dist/src/core/LineChart/LineChartActions.d.ts +7 -0
- package/dist/src/core/LineChart/LineChartLegend.d.ts +18 -0
- package/dist/src/core/LineChart/LineChartToolBar.d.ts +20 -0
- package/dist/src/core/LineChart/Pointer.d.ts +6 -0
- package/dist/src/core/LineChart/RenderChart.d.ts +45 -0
- package/dist/src/core/LineChart/TooltipFormatter.d.ts +10 -0
- package/dist/src/core/LineChart/__test__/h5_css.test.d.ts +1 -0
- package/dist/src/core/LineChart/index.d.ts +8 -0
- package/dist/src/core/LineChart/styled.d.ts +12 -0
- package/dist/src/core/LineChart/type.d.ts +196 -0
- package/dist/src/core/LineChart/utils.d.ts +56 -0
- package/dist/src/core/Loading/loading.type.d.ts +2 -2
- package/dist/src/core/LocalUpload/LocalUpload.d.ts +15 -0
- package/dist/src/core/LocalUpload/LocalUpload.hooks.d.ts +32 -0
- package/dist/src/core/LocalUpload/LocalUpload.style.d.ts +3 -0
- package/dist/src/core/LocalUpload/LocalUpload.type.d.ts +179 -0
- package/dist/src/core/LocalUpload/LocalUpload.widget.d.ts +23 -0
- package/dist/src/core/LocalUpload/index.d.ts +2 -0
- package/dist/src/core/MediumDialog/MediumDialog.d.ts +3 -0
- package/dist/src/core/MediumDialog/MediumDialog.type.d.ts +53 -0
- package/dist/src/core/MediumDialog/index.d.ts +1 -0
- package/dist/src/core/Metric/index.d.ts +1 -0
- package/dist/src/core/Metric/metric.d.ts +1 -1
- package/dist/src/core/Nav/nav.type.d.ts +2 -0
- package/dist/src/core/Pagination/pagination.type.d.ts +1 -0
- package/dist/src/core/Progress/progress.type.d.ts +4 -0
- package/dist/src/core/Radio/index.d.ts +3 -1
- package/dist/src/core/Radio/radio.type.d.ts +2 -0
- package/dist/src/core/SearchInput/SearchInput.d.ts +2 -0
- package/dist/src/core/SearchInput/SearchInput.hook.d.ts +9 -0
- package/dist/src/core/SearchInput/SearchInput.style.d.ts +5 -0
- package/dist/src/core/SearchInput/__test__/SearchInput.hook.test.d.ts +1 -0
- package/dist/src/core/SearchInput/index.d.ts +2 -4
- package/dist/src/core/SearchInput/searchInput.type.d.ts +149 -2
- package/dist/src/core/SegmentControl/__test__/data-testid.test.d.ts +1 -0
- package/dist/src/core/SegmentControl/segmentControl.type.d.ts +2 -0
- package/dist/src/core/Select/index.d.ts +1 -0
- package/dist/src/core/Select/select.style.d.ts +4 -0
- package/dist/src/core/Select/select.type.d.ts +6 -31
- package/dist/src/core/Select/select.widgets.d.ts +7 -0
- package/dist/src/core/SimplePagination/simplePagination.type.d.ts +1 -0
- package/dist/src/core/Skeleton/Content.d.ts +8 -0
- package/dist/src/core/Skeleton/index.d.ts +8 -0
- package/dist/src/core/SmallDialog/SmallDialog.d.ts +3 -0
- package/dist/src/core/SmallDialog/SmallDialog.style.d.ts +7 -0
- package/dist/src/core/SmallDialog/SmallDialog.type.d.ts +183 -0
- package/dist/src/core/SmallDialog/SmallDialog.widget.d.ts +8 -0
- package/dist/src/core/SmallDialog/index.d.ts +3 -0
- package/dist/src/core/StepProgress/stepProgress.type.d.ts +1 -0
- package/dist/src/core/Steps/steps.type.d.ts +1 -0
- package/dist/src/core/Styled/index.d.ts +7 -0
- package/dist/src/core/Switch/switch.type.d.ts +1 -0
- package/dist/src/core/Tab/Tab.d.ts +3 -0
- package/dist/src/core/Tab/Tab.style.d.ts +5 -0
- package/dist/src/core/Tab/Tab.type.d.ts +46 -0
- package/dist/src/core/Tab/index.d.ts +1 -0
- package/dist/src/core/Tab/useTabAdaptiveLayout.d.ts +23 -0
- package/dist/src/core/Table/table.type.d.ts +166 -7
- package/dist/src/core/TableForm/types.d.ts +260 -10
- package/dist/src/core/TextArea/textArea.type.d.ts +1 -0
- package/dist/src/core/Time/index.d.ts +1 -1
- package/dist/src/core/Time/time.type.d.ts +5 -0
- package/dist/src/core/TimePicker/index.d.ts +2 -0
- package/dist/src/core/TimeZoneSelect/timeZoneSelect.type.d.ts +1 -0
- package/dist/src/core/Timeline/Timeline.style.d.ts +5 -0
- package/dist/src/core/Timeline/Timeline.type.d.ts +231 -0
- package/dist/src/core/Timeline/Timeline.widget.d.ts +5 -0
- package/dist/src/core/Timeline/index.d.ts +14 -0
- package/dist/src/core/Tooltip/EllipsisTooltipContent.d.ts +4 -0
- package/dist/src/core/Tooltip/index.d.ts +7 -1
- package/dist/src/core/Tooltip/tooltip.type.d.ts +22 -0
- package/dist/src/core/Truncate/index.d.ts +1 -0
- package/dist/src/core/Units/units.type.d.ts +76 -0
- package/dist/src/core/WizardDialog/index.d.ts +3 -0
- package/dist/src/core/WizardDialog/styles.d.ts +4 -0
- package/dist/src/core/WizardDialog/type.d.ts +167 -0
- package/dist/src/core/__test__/data-testid.test.d.ts +1 -0
- package/dist/src/core/index.d.ts +31 -15
- package/dist/src/core/message/index.d.ts +4 -52
- package/dist/src/core/message/message.d.ts +58 -0
- package/dist/src/core/message/useMessage.d.ts +4 -0
- package/dist/src/coreX/BarChart/index.d.ts +2 -0
- package/dist/src/coreX/CheckPointList/checkpointlist.style.d.ts +3 -0
- package/dist/src/coreX/CheckPointList/checkpointlist.type.d.ts +113 -0
- package/dist/src/coreX/CheckPointList/index.d.ts +8 -0
- package/dist/src/coreX/CircleLoading/index.d.ts +3 -0
- package/dist/src/coreX/Copy/CopyButton.d.ts +5 -0
- package/dist/src/coreX/Copy/CopyButton.type.d.ts +8 -0
- package/dist/src/coreX/Copy/CopyTooltip.d.ts +5 -0
- package/dist/src/coreX/Copy/CopyTooltip.typs.d.ts +16 -0
- package/dist/src/coreX/Copy/index.d.ts +2 -0
- package/dist/src/coreX/DateRangePicker/__tests__/utils.test.d.ts +1 -0
- package/dist/src/coreX/DateRangePicker/dateRangePicker.type.d.ts +14 -1
- package/dist/src/coreX/DateRangePicker/utils.d.ts +7 -0
- package/dist/src/coreX/Dialogs/DeleteDialog/DeleteDialog.d.ts +3 -0
- package/dist/src/coreX/Dialogs/DeleteDialog/DeleteDialog.type.d.ts +116 -0
- package/dist/src/coreX/Dialogs/DeleteDialog/index.d.ts +2 -0
- package/dist/src/coreX/Dialogs/RejectDialog/RejectDialog.d.ts +3 -0
- package/dist/src/coreX/Dialogs/RejectDialog/RejectDialog.type.d.ts +181 -0
- package/dist/src/coreX/Dialogs/RejectDialog/index.d.ts +2 -0
- package/dist/src/coreX/Dialogs/index.d.ts +2 -0
- package/dist/src/coreX/InfoRowList/InfoRow.d.ts +7 -0
- package/dist/src/coreX/InfoRowList/InfoRowList.d.ts +3 -0
- package/dist/src/coreX/InfoRowList/InfoRowList.type.d.ts +63 -0
- package/dist/src/coreX/InfoRowList/index.d.ts +1 -0
- package/dist/src/coreX/KubeConfigModal/KubeConfigModal.style.d.ts +9 -0
- package/dist/src/coreX/KubeConfigModal/KubeConfigModal.type.d.ts +21 -0
- package/dist/src/coreX/KubeConfigModal/index.d.ts +4 -0
- package/dist/src/coreX/KubeConfigModal/utils.d.ts +2 -0
- package/dist/src/coreX/OverflowTooltip/overflowTooltip.type.d.ts +2 -1
- package/dist/src/coreX/Show/index.d.ts +3 -0
- package/dist/src/coreX/Show/show.type.d.ts +13 -0
- package/dist/src/coreX/Sider/Sider.type.d.ts +42 -0
- package/dist/src/coreX/Sider/index.d.ts +5 -0
- package/dist/src/coreX/SummaryTable/index.d.ts +1 -0
- package/dist/src/coreX/UnderlineTootip/index.d.ts +43 -0
- package/dist/src/coreX/UnitWithChart/index.d.ts +1 -0
- package/dist/src/coreX/index.d.ts +15 -0
- package/dist/src/hooks/__tests__/useCTErrorMsg.test.d.ts +1 -0
- package/dist/src/hooks/__tests__/useFormatDuration.test.d.ts +1 -0
- package/dist/src/hooks/index.d.ts +2 -0
- package/dist/src/hooks/useAntdPatchEnLocales.d.ts +431 -0
- package/dist/src/hooks/useCTErrorMsg.d.ts +7 -0
- package/dist/src/hooks/useFormatDuration.d.ts +31 -0
- package/dist/src/hooks/useLegacyComponentWarning.d.ts +2 -0
- package/dist/src/spec/base.d.ts +4 -2
- package/dist/src/store/modal.d.ts +8 -2
- package/dist/src/styles/token/animation.d.ts +6 -0
- package/dist/src/styles/token/color.d.ts +24 -0
- package/dist/src/utils/__test__/cterror.test.d.ts +1 -0
- package/dist/src/utils/__test__/formatDuration.spec.d.ts +1 -0
- package/dist/src/utils/__test__/unit.spec.d.ts +1 -0
- package/dist/src/utils/constants.d.ts +2 -6
- package/dist/src/utils/cterror.d.ts +29 -0
- package/dist/src/utils/formatDuration.d.ts +28 -0
- package/dist/src/utils/index.d.ts +2 -0
- package/dist/src/utils/tower.d.ts +13 -0
- package/dist/src/utils/type.d.ts +32 -0
- package/dist/src/utils/unit.d.ts +14 -0
- package/dist/stories/docs/core/Alert.stories.d.ts +1 -0
- package/dist/stories/docs/core/Antd5Tree.stories.d.ts +44 -0
- package/dist/stories/docs/core/Arch.stories.d.ts +3 -0
- package/dist/stories/docs/core/AutoComplete.stories.d.ts +43 -0
- package/dist/stories/docs/core/Banner.stories.d.ts +53 -0
- package/dist/stories/docs/core/BasicCTError.stories.d.ts +47 -0
- package/dist/stories/docs/core/Bit.stories.d.ts +3 -0
- package/dist/stories/docs/core/BitPerSecond.stories.d.ts +3 -0
- package/dist/stories/docs/core/BlankState.stories.d.ts +43 -0
- package/dist/stories/docs/core/Bps.stories.d.ts +3 -0
- package/dist/stories/docs/core/Button.stories.d.ts +11 -0
- package/dist/stories/docs/core/Byte.stories.d.ts +3 -0
- package/dist/stories/docs/core/BytePerSecond.stories.d.ts +20 -0
- package/dist/stories/docs/core/Card.stories.d.ts +1 -0
- package/dist/stories/docs/core/Duration.stories.d.ts +88 -0
- package/dist/stories/docs/core/EllipsisTooltipContent.stories.d.ts +24 -0
- package/dist/stories/docs/core/FieldsBoolean.stories.d.ts +2 -0
- package/dist/stories/docs/core/FieldsDateTimeRange.stories.d.ts +1 -0
- package/dist/stories/docs/core/FieldsString.stories.d.ts +4 -0
- package/dist/stories/docs/core/FieldsTimePicker.stories.d.ts +2 -0
- package/dist/stories/docs/core/Frequency.stories.d.ts +3 -0
- package/dist/stories/docs/core/ImmersiveDialog.stories.d.ts +180 -0
- package/dist/stories/docs/core/Input.simple.stories.d.ts +1 -3
- package/dist/stories/docs/core/InputPassword.stories.d.ts +1 -3
- package/dist/stories/docs/core/KitStoreProvider.stories.d.ts +1 -1
- package/dist/stories/docs/core/LegacyModal.stories.d.ts +23 -0
- package/dist/stories/docs/core/{Select.Simple.stories.d.ts → LegacySelect.Simple.stories.d.ts} +3 -3
- package/dist/stories/docs/core/LegacySelect.stories.d.ts +16 -0
- package/dist/stories/docs/core/Legend.stories.d.ts +19 -0
- package/dist/stories/docs/core/LineChart.stories.d.ts +17 -0
- package/dist/stories/docs/core/Loading.stories.d.ts +2 -2
- package/dist/stories/docs/core/LocalUpload.stories.d.ts +74 -0
- package/dist/stories/docs/core/MediumDialog.stories.d.ts +85 -0
- package/dist/stories/docs/core/Percent.stories.d.ts +5 -0
- package/dist/stories/docs/core/SearchInput.stories.d.ts +52 -14
- package/dist/stories/docs/core/Second.stories.d.ts +57 -22
- package/dist/stories/docs/core/Select.stories.d.ts +94 -13
- package/dist/stories/docs/core/Sider.stories.d.ts +21 -0
- package/dist/stories/docs/core/SmallDialog.stories.d.ts +124 -0
- package/dist/stories/docs/core/Speed.stories.d.ts +3 -0
- package/dist/stories/docs/core/StatusCapsule.stories.d.ts +8 -0
- package/dist/stories/docs/core/Tab.stories.d.ts +65 -0
- package/dist/stories/docs/core/Table.stories.d.ts +35 -34
- package/dist/stories/docs/core/TableForm.stories.d.ts +61 -12
- package/dist/stories/docs/core/Timeline.stories.d.ts +41 -0
- package/dist/stories/docs/core/Tooltip.stories.d.ts +3 -1
- package/dist/stories/docs/core/WizardDialog.stories.d.ts +175 -0
- package/dist/stories/docs/core/message-group.stories.d.ts +5 -0
- package/dist/stories/docs/core/skeleton.stories.d.ts +13 -0
- package/dist/stories/docs/coreX/BarChart.stories.d.ts +1 -0
- package/dist/stories/docs/coreX/Calendar.stories.d.ts +11 -0
- package/dist/stories/docs/coreX/CheckPointList.stories.d.ts +82 -0
- package/dist/stories/docs/coreX/CircleLoading.stories.d.ts +20 -0
- package/dist/stories/docs/coreX/Copy/CopyButton.stories.d.ts +66 -0
- package/dist/stories/docs/coreX/Copy/CopyTooltip.stories.d.ts +66 -0
- package/dist/stories/docs/coreX/DateRangePicker.stories.d.ts +2 -0
- package/dist/stories/docs/coreX/Dialogs/DeleteDialog.stories.d.ts +49 -0
- package/dist/stories/docs/coreX/Dialogs/RejectDialog.stories.d.ts +103 -0
- package/dist/stories/docs/coreX/I18nNameTag.stories.d.ts +8 -0
- package/dist/stories/docs/coreX/InfoRowList.stories.d.ts +36 -0
- package/dist/stories/docs/coreX/KubeConfigModal.stories.d.ts +83 -0
- package/dist/stories/docs/coreX/OverflowTooltip.stories.d.ts +5 -0
- package/dist/stories/docs/coreX/Show.stories.d.ts +31 -0
- package/dist/stories/docs/coreX/UnserlineTooltip.stories.d.ts +11 -0
- package/dist/stories/utils.d.ts +12 -0
- package/dist/style.css +6829 -32785
- package/dist/token.css +20 -26
- package/dist/variables.scss +26 -0
- package/docs/core/ImmersiveDialog/guide.md +298 -0
- package/docs/core/LegacyModal/migrate-guide.md +422 -0
- package/docs/core/MediumDialog/guide.md +263 -0
- package/docs/core/SearchInput/guide.md +125 -0
- package/docs/core/SmallDialog/guide.md +224 -0
- package/docs/core/Table/guide.md +199 -0
- package/docs/core/TableForm/guide.md +195 -0
- package/docs/core/WizardDialog/guide.md +322 -0
- package/docs/coreX/DeleteDialog/guide.md +161 -0
- package/docs/coreX/RejectDialog/guide.md +185 -0
- package/docs/llms.txt +169 -0
- package/package.json +17 -14
- package/README.md +0 -64
- package/dist/src/core/Modal/index.d.ts +0 -5
- package/dist/src/core/Modal/modal.type.d.ts +0 -37
- package/dist/stories/docs/core/Modal.stories.d.ts +0 -16
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# TableForm
|
|
2
|
+
|
|
3
|
+
## 简介
|
|
4
|
+
|
|
5
|
+
TableForm 是行内编辑的表格表单组件,适用于批量数据录入场景。支持多种内置列类型(text/input/password/checkbox/affix)和自定义列渲染,表头批量填充、行的增删和拖拽排序、三种校验触发模式(Normal/Aggressive/Lazy),以及通过 `errors` 属性注入外部错误信息。通过 `useRef<TableFormHandle>` 可命令式操作数据和校验。
|
|
6
|
+
|
|
7
|
+
## 何时使用
|
|
8
|
+
|
|
9
|
+
- 需要批量录入结构化数据(如添加多台主机、配置多个网络接口)
|
|
10
|
+
- 每行数据结构相同,需要行内直接编辑
|
|
11
|
+
- 需要表头批量填充功能(一次输入应用到所有行)
|
|
12
|
+
- 需要行级别的增删和拖拽排序
|
|
13
|
+
|
|
14
|
+
不要使用:
|
|
15
|
+
|
|
16
|
+
- 只有单行数据录入 --> 请用 `Form`
|
|
17
|
+
- 纯展示型表格(不需要编辑) --> 请用 `Table`
|
|
18
|
+
- 仅需拖拽排序(不需要编辑) --> 请用 `SortableList`
|
|
19
|
+
|
|
20
|
+
## 基础用法
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import React, { useRef } from "react";
|
|
24
|
+
import { TableForm } from "@cloudtower/eagle";
|
|
25
|
+
import type { TableFormColumn, TableFormHandle } from "@cloudtower/eagle";
|
|
26
|
+
|
|
27
|
+
const columns: TableFormColumn[] = [
|
|
28
|
+
{ key: "name", title: "主机名", type: "input", autoIncrease: true },
|
|
29
|
+
{
|
|
30
|
+
key: "ip",
|
|
31
|
+
title: "管理 IP",
|
|
32
|
+
type: "input",
|
|
33
|
+
validator: ({ value }) => (!value ? "IP 不能为空" : undefined),
|
|
34
|
+
},
|
|
35
|
+
{ key: "password", title: "密码", type: "password" },
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
const App = () => {
|
|
39
|
+
const ref = useRef<TableFormHandle>(null);
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<TableForm
|
|
43
|
+
ref={ref}
|
|
44
|
+
columns={columns}
|
|
45
|
+
defaultData={[
|
|
46
|
+
{ name: "host0", ip: "", password: "" },
|
|
47
|
+
{ name: "host1", ip: "", password: "" },
|
|
48
|
+
]}
|
|
49
|
+
rowAddConfig={{ addible: true, maximum: 10 }}
|
|
50
|
+
row={{ deletable: true }}
|
|
51
|
+
onBodyChange={(data) => console.log("数据变更:", data)}
|
|
52
|
+
/>
|
|
53
|
+
);
|
|
54
|
+
};
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## 常见模式
|
|
58
|
+
|
|
59
|
+
### 模式一:批量填充 + 自动递增
|
|
60
|
+
|
|
61
|
+
适用于需要快速填入相似数据的场景。表头输入框的值会批量应用到所有行,配合 `autoIncrease` 可以自动递增末尾数字。
|
|
62
|
+
|
|
63
|
+
```tsx
|
|
64
|
+
import React from "react";
|
|
65
|
+
import { TableForm } from "@cloudtower/eagle";
|
|
66
|
+
import type { TableFormColumn } from "@cloudtower/eagle";
|
|
67
|
+
|
|
68
|
+
const columns: TableFormColumn[] = [
|
|
69
|
+
{
|
|
70
|
+
key: "hostname",
|
|
71
|
+
title: "主机名",
|
|
72
|
+
type: "input",
|
|
73
|
+
autoIncrease: true,
|
|
74
|
+
defaultValue: "host0",
|
|
75
|
+
},
|
|
76
|
+
{ key: "ip", title: "管理 IP", type: "input" },
|
|
77
|
+
{ key: "enabled", title: "启用", type: "checkbox", align: "center" },
|
|
78
|
+
];
|
|
79
|
+
|
|
80
|
+
const App = () => (
|
|
81
|
+
<TableForm
|
|
82
|
+
columns={columns}
|
|
83
|
+
defaultData={[
|
|
84
|
+
{ hostname: "host0", ip: "10.0.0.1", enabled: true },
|
|
85
|
+
{ hostname: "host1", ip: "10.0.0.2", enabled: true },
|
|
86
|
+
{ hostname: "host2", ip: "10.0.0.3", enabled: false },
|
|
87
|
+
]}
|
|
88
|
+
onHeaderChange={(data, columnKey) =>
|
|
89
|
+
console.log("批量填充:", columnKey, data)
|
|
90
|
+
}
|
|
91
|
+
/>
|
|
92
|
+
);
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 模式二:自定义列渲染
|
|
96
|
+
|
|
97
|
+
适用于内置列类型无法满足需求的场景。通过 `render` 函数可以渲染任意组件(如 Select、DatePicker 等)。
|
|
98
|
+
|
|
99
|
+
```tsx
|
|
100
|
+
import React from "react";
|
|
101
|
+
import { TableForm, Select } from "@cloudtower/eagle";
|
|
102
|
+
import type { TableFormColumn } from "@cloudtower/eagle";
|
|
103
|
+
|
|
104
|
+
const columns: TableFormColumn[] = [
|
|
105
|
+
{ key: "name", title: "名称", type: "input" },
|
|
106
|
+
{
|
|
107
|
+
key: "role",
|
|
108
|
+
title: "角色",
|
|
109
|
+
defaultValue: "worker",
|
|
110
|
+
render({ isHeader, value, onChange, placeholder }) {
|
|
111
|
+
return (
|
|
112
|
+
<Select
|
|
113
|
+
size="small"
|
|
114
|
+
value={value as string}
|
|
115
|
+
onChange={onChange}
|
|
116
|
+
placeholder={isHeader ? "批量选择" : "请选择"}
|
|
117
|
+
options={[
|
|
118
|
+
{ label: "Master", value: "master" },
|
|
119
|
+
{ label: "Worker", value: "worker" },
|
|
120
|
+
]}
|
|
121
|
+
/>
|
|
122
|
+
);
|
|
123
|
+
},
|
|
124
|
+
validator({ value }) {
|
|
125
|
+
if (!value) return "请选择角色";
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
];
|
|
129
|
+
|
|
130
|
+
const App = () => (
|
|
131
|
+
<TableForm
|
|
132
|
+
columns={columns}
|
|
133
|
+
defaultData={[{ name: "", role: "worker" }]}
|
|
134
|
+
rowAddConfig={{ addible: true }}
|
|
135
|
+
row={{ deletable: true }}
|
|
136
|
+
/>
|
|
137
|
+
);
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 模式三:行配置 + 外部错误注入
|
|
141
|
+
|
|
142
|
+
适用于校验逻辑在外部(如服务端返回错误)的场景。通过 `row` 统一配置行行为,通过 `errors` 注入外部错误信息。
|
|
143
|
+
|
|
144
|
+
```tsx
|
|
145
|
+
import React, { useState } from "react";
|
|
146
|
+
import { TableForm } from "@cloudtower/eagle";
|
|
147
|
+
import type { TableFormColumn, TableFormErrorsType } from "@cloudtower/eagle";
|
|
148
|
+
|
|
149
|
+
const columns: TableFormColumn[] = [
|
|
150
|
+
{ key: "name", title: "名称", type: "input" },
|
|
151
|
+
{ key: "value", title: "值", type: "input" },
|
|
152
|
+
];
|
|
153
|
+
|
|
154
|
+
const App = () => {
|
|
155
|
+
const [errors, setErrors] = useState<TableFormErrorsType>([null]);
|
|
156
|
+
|
|
157
|
+
return (
|
|
158
|
+
<TableForm
|
|
159
|
+
columns={columns}
|
|
160
|
+
defaultData={[{ name: "key1", value: "" }]}
|
|
161
|
+
row={{
|
|
162
|
+
deletable: true,
|
|
163
|
+
draggable: true,
|
|
164
|
+
splitType: "zebraMarking",
|
|
165
|
+
validator: (rowIndex, rowData) =>
|
|
166
|
+
!rowData.name ? "名称不能为空" : undefined,
|
|
167
|
+
}}
|
|
168
|
+
errors={errors}
|
|
169
|
+
onBodyChange={(data) => {
|
|
170
|
+
// 模拟服务端校验
|
|
171
|
+
const newErrors = data.map((row) =>
|
|
172
|
+
row.value === "error" ? { value: "该值不合法" } : null,
|
|
173
|
+
);
|
|
174
|
+
setErrors(newErrors);
|
|
175
|
+
}}
|
|
176
|
+
/>
|
|
177
|
+
);
|
|
178
|
+
};
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## 废弃说明
|
|
182
|
+
|
|
183
|
+
以下属性已废弃,请迁移至 `row` 配置:
|
|
184
|
+
|
|
185
|
+
- `draggable` --> `row.draggable`
|
|
186
|
+
- `deleteConfig` --> `row.deletable` + `row.disableActions`
|
|
187
|
+
- `rowSplitType` --> `row.splitType`
|
|
188
|
+
- `renderRowDescription` --> `row.customizedDescription`
|
|
189
|
+
- `rowValidator` --> `row.validator`
|
|
190
|
+
|
|
191
|
+
## 相关组件
|
|
192
|
+
|
|
193
|
+
- `Form`: 标准表单容器,适用于非表格化的表单场景
|
|
194
|
+
- `Table`: 数据展示表格,适用于只读场景
|
|
195
|
+
- `SortableList`: 可拖拽排序列表,适用于纯排序(无编辑)场景
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
# WizardDialog
|
|
2
|
+
|
|
3
|
+
## 简介
|
|
4
|
+
|
|
5
|
+
WizardDialog 是基于 ImmersiveDialog 的多步骤向导对话框组件,自动管理步骤导航、步骤指示器和按钮文案切换。非最后一步时确定按钮显示"下一步"并触发 `onNextStep`;最后一步显示"确定"并触发 `onOk`。左侧内置垂直步骤条(Steps),底部自动展示"上一步"按钮(第一步时隐藏)。
|
|
6
|
+
|
|
7
|
+
## 何时使用
|
|
8
|
+
|
|
9
|
+
- 多步骤表单(如"创建虚拟机"需要依次填写基本信息、网络配置、存储配置)
|
|
10
|
+
- 分步操作流程(需要引导用户按顺序完成一系列操作)
|
|
11
|
+
- 需要在步骤之间做校验、阻止用户跳到下一步的场景
|
|
12
|
+
|
|
13
|
+
不要使用:
|
|
14
|
+
|
|
15
|
+
- 简单确认操作 --> 请用 `SmallDialog`
|
|
16
|
+
- 不需要步骤的全屏操作 --> 请用 `ImmersiveDialog`
|
|
17
|
+
- 包含表单但无需分步 --> 请用 `MediumDialog`
|
|
18
|
+
|
|
19
|
+
## 基础用法
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import React from "react";
|
|
23
|
+
import { WizardDialog, Button } from "@cloudtower/eagle";
|
|
24
|
+
import { usePushModal, usePopModal } from "@cloudtower/eagle";
|
|
25
|
+
|
|
26
|
+
const CreateVmDialog: React.FC = () => {
|
|
27
|
+
const popModal = usePopModal();
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<WizardDialog
|
|
31
|
+
title="创建虚拟机"
|
|
32
|
+
steps={[
|
|
33
|
+
{
|
|
34
|
+
title: "基本信息",
|
|
35
|
+
children: <div>填写虚拟机名称、描述等基本信息</div>,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
title: "网络配置",
|
|
39
|
+
children: <div>选择网络、配置 IP 地址</div>,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
title: "存储配置",
|
|
43
|
+
children: <div>选择存储策略、配置磁盘</div>,
|
|
44
|
+
},
|
|
45
|
+
]}
|
|
46
|
+
onOk={(e) => {
|
|
47
|
+
console.log("提交创建");
|
|
48
|
+
popModal();
|
|
49
|
+
}}
|
|
50
|
+
>
|
|
51
|
+
</WizardDialog>
|
|
52
|
+
);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
// 使用方式
|
|
56
|
+
const App = () => {
|
|
57
|
+
const pushModal = usePushModal();
|
|
58
|
+
|
|
59
|
+
return (
|
|
60
|
+
<Button
|
|
61
|
+
type="primary"
|
|
62
|
+
onClick={() =>
|
|
63
|
+
pushModal({
|
|
64
|
+
component: () => <CreateVmDialog />,
|
|
65
|
+
props: { name: "CreateVmDialog" },
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
>
|
|
69
|
+
创建虚拟机
|
|
70
|
+
</Button>
|
|
71
|
+
);
|
|
72
|
+
};
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## 常见模式
|
|
76
|
+
|
|
77
|
+
### 模式一:基础向导
|
|
78
|
+
|
|
79
|
+
最简单的多步骤向导,步骤之间自由导航,最后一步提交。
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
import React from "react";
|
|
83
|
+
import { WizardDialog, Button } from "@cloudtower/eagle";
|
|
84
|
+
import { usePushModal, usePopModal } from "@cloudtower/eagle";
|
|
85
|
+
|
|
86
|
+
const BasicWizardDialog: React.FC = () => {
|
|
87
|
+
const popModal = usePopModal();
|
|
88
|
+
|
|
89
|
+
return (
|
|
90
|
+
<WizardDialog
|
|
91
|
+
title="初始化集群"
|
|
92
|
+
steps={[
|
|
93
|
+
{
|
|
94
|
+
title: "选择节点",
|
|
95
|
+
children: <div>从列表中选择要加入集群的节点</div>,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
title: "网络设置",
|
|
99
|
+
children: <div>配置集群网络参数</div>,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
title: "确认信息",
|
|
103
|
+
children: <div>确认集群配置信息无误后提交</div>,
|
|
104
|
+
},
|
|
105
|
+
]}
|
|
106
|
+
onOk={(e) => {
|
|
107
|
+
console.log("提交集群初始化");
|
|
108
|
+
popModal();
|
|
109
|
+
}}
|
|
110
|
+
>
|
|
111
|
+
</WizardDialog>
|
|
112
|
+
);
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
const App = () => {
|
|
116
|
+
const pushModal = usePushModal();
|
|
117
|
+
|
|
118
|
+
return (
|
|
119
|
+
<Button
|
|
120
|
+
type="primary"
|
|
121
|
+
onClick={() =>
|
|
122
|
+
pushModal({
|
|
123
|
+
component: () => <BasicWizardDialog />,
|
|
124
|
+
props: { name: "BasicWizardDialog" },
|
|
125
|
+
})
|
|
126
|
+
}
|
|
127
|
+
>
|
|
128
|
+
初始化集群
|
|
129
|
+
</Button>
|
|
130
|
+
);
|
|
131
|
+
};
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### 模式二:带校验的向导(onNextStep 阻止导航)
|
|
135
|
+
|
|
136
|
+
这是 WizardDialog 最核心的模式。通过 `onNextStep` 回调返回 `false` 来阻止用户在校验未通过时跳到下一步。注意:组件内部使用严格等于 `=== false` 判断,因此只有显式返回 `false` 才会阻止导航,返回 `undefined`(即不返回值)不会阻止。
|
|
137
|
+
|
|
138
|
+
```tsx
|
|
139
|
+
import React, { useState } from "react";
|
|
140
|
+
import { WizardDialog, Button } from "@cloudtower/eagle";
|
|
141
|
+
import { usePushModal, usePopModal } from "@cloudtower/eagle";
|
|
142
|
+
|
|
143
|
+
const ValidatedWizardDialog: React.FC = () => {
|
|
144
|
+
const popModal = usePopModal();
|
|
145
|
+
const [vmName, setVmName] = useState("");
|
|
146
|
+
const [network, setNetwork] = useState("");
|
|
147
|
+
const [error, setError] = useState<string>();
|
|
148
|
+
|
|
149
|
+
return (
|
|
150
|
+
<WizardDialog
|
|
151
|
+
title="创建虚拟机"
|
|
152
|
+
error={error}
|
|
153
|
+
steps={[
|
|
154
|
+
{
|
|
155
|
+
title: "基本信息",
|
|
156
|
+
children: (
|
|
157
|
+
<div>
|
|
158
|
+
<label>虚拟机名称</label>
|
|
159
|
+
<input
|
|
160
|
+
value={vmName}
|
|
161
|
+
onChange={(e) => {
|
|
162
|
+
setVmName(e.target.value);
|
|
163
|
+
setError(undefined);
|
|
164
|
+
}}
|
|
165
|
+
placeholder="请输入虚拟机名称"
|
|
166
|
+
/>
|
|
167
|
+
</div>
|
|
168
|
+
),
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
title: "网络配置",
|
|
172
|
+
children: (
|
|
173
|
+
<div>
|
|
174
|
+
<label>网络</label>
|
|
175
|
+
<input
|
|
176
|
+
value={network}
|
|
177
|
+
onChange={(e) => {
|
|
178
|
+
setNetwork(e.target.value);
|
|
179
|
+
setError(undefined);
|
|
180
|
+
}}
|
|
181
|
+
placeholder="请选择网络"
|
|
182
|
+
/>
|
|
183
|
+
</div>
|
|
184
|
+
),
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
title: "确认",
|
|
188
|
+
children: (
|
|
189
|
+
<div>
|
|
190
|
+
<p>虚拟机名称:{vmName}</p>
|
|
191
|
+
<p>网络:{network}</p>
|
|
192
|
+
</div>
|
|
193
|
+
),
|
|
194
|
+
},
|
|
195
|
+
]}
|
|
196
|
+
onNextStep={(nextStep) => {
|
|
197
|
+
// nextStep 是即将跳转到的步骤索引
|
|
198
|
+
if (nextStep === 1 && !vmName.trim()) {
|
|
199
|
+
setError("请输入虚拟机名称");
|
|
200
|
+
return false; // 阻止导航
|
|
201
|
+
}
|
|
202
|
+
if (nextStep === 2 && !network.trim()) {
|
|
203
|
+
setError("请选择网络");
|
|
204
|
+
return false; // 阻止导航
|
|
205
|
+
}
|
|
206
|
+
setError(undefined);
|
|
207
|
+
// 不返回值(即返回 undefined),允许导航
|
|
208
|
+
}}
|
|
209
|
+
onOk={(e) => {
|
|
210
|
+
console.log("提交创建", { vmName, network });
|
|
211
|
+
popModal();
|
|
212
|
+
}}
|
|
213
|
+
>
|
|
214
|
+
</WizardDialog>
|
|
215
|
+
);
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
const App = () => {
|
|
219
|
+
const pushModal = usePushModal();
|
|
220
|
+
|
|
221
|
+
return (
|
|
222
|
+
<Button
|
|
223
|
+
type="primary"
|
|
224
|
+
onClick={() =>
|
|
225
|
+
pushModal({
|
|
226
|
+
component: () => <ValidatedWizardDialog />,
|
|
227
|
+
props: { name: "ValidatedWizardDialog" },
|
|
228
|
+
})
|
|
229
|
+
}
|
|
230
|
+
>
|
|
231
|
+
创建虚拟机
|
|
232
|
+
</Button>
|
|
233
|
+
);
|
|
234
|
+
};
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### 模式三:受控模式向导
|
|
238
|
+
|
|
239
|
+
通过外部 state 控制当前步骤,配合 `onStepChange` 同步状态。适用于需要在父组件中根据步骤变化执行额外逻辑的场景。
|
|
240
|
+
|
|
241
|
+
```tsx
|
|
242
|
+
import React, { useState } from "react";
|
|
243
|
+
import { WizardDialog, Button } from "@cloudtower/eagle";
|
|
244
|
+
import { usePushModal, usePopModal } from "@cloudtower/eagle";
|
|
245
|
+
|
|
246
|
+
const ControlledWizardDialog: React.FC = () => {
|
|
247
|
+
const popModal = usePopModal();
|
|
248
|
+
const [currentStep, setCurrentStep] = useState(0);
|
|
249
|
+
|
|
250
|
+
return (
|
|
251
|
+
<WizardDialog
|
|
252
|
+
title="部署应用"
|
|
253
|
+
step={currentStep}
|
|
254
|
+
onStepChange={(step) => {
|
|
255
|
+
console.log("步骤变化:", step);
|
|
256
|
+
setCurrentStep(step);
|
|
257
|
+
}}
|
|
258
|
+
onPrevStep={(step) => {
|
|
259
|
+
console.log("返回上一步:", step);
|
|
260
|
+
}}
|
|
261
|
+
onNextStep={(step) => {
|
|
262
|
+
console.log("进入下一步:", step);
|
|
263
|
+
}}
|
|
264
|
+
steps={[
|
|
265
|
+
{
|
|
266
|
+
title: "选择镜像",
|
|
267
|
+
children: <div>当前步骤:{currentStep + 1} / 3</div>,
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
title: "配置资源",
|
|
271
|
+
children: <div>当前步骤:{currentStep + 1} / 3</div>,
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
title: "确认部署",
|
|
275
|
+
children: <div>当前步骤:{currentStep + 1} / 3</div>,
|
|
276
|
+
},
|
|
277
|
+
]}
|
|
278
|
+
onOk={(e) => {
|
|
279
|
+
console.log("确认部署");
|
|
280
|
+
popModal();
|
|
281
|
+
}}
|
|
282
|
+
>
|
|
283
|
+
</WizardDialog>
|
|
284
|
+
);
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
const App = () => {
|
|
288
|
+
const pushModal = usePushModal();
|
|
289
|
+
|
|
290
|
+
return (
|
|
291
|
+
<Button
|
|
292
|
+
type="primary"
|
|
293
|
+
onClick={() =>
|
|
294
|
+
pushModal({
|
|
295
|
+
component: () => <ControlledWizardDialog />,
|
|
296
|
+
props: { name: "ControlledWizardDialog" },
|
|
297
|
+
})
|
|
298
|
+
}
|
|
299
|
+
>
|
|
300
|
+
部署应用
|
|
301
|
+
</Button>
|
|
302
|
+
);
|
|
303
|
+
};
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
## 关键说明
|
|
307
|
+
|
|
308
|
+
- **按钮文案自动切换**:非最后一步时,确认按钮文案自动显示为 `nextText`(默认"下一步");最后一步时显示为 `okText`(默认"确认")。
|
|
309
|
+
- **onNextStep 校验机制**:`onNextStep` 返回值严格等于 `false`(`=== false`)时阻止导航到下一步。返回 `undefined`、`null`、`true` 或其他值均不会阻止。这是该组件最核心的交互模式。
|
|
310
|
+
- **onOk 仅在最后一步触发**:非最后一步点击确认按钮时触发的是 `onNextStep`,不会触发 `onOk`。
|
|
311
|
+
- **onOk 签名**:`onOk` 的签名为 `(e: React.MouseEvent) => void`,与 ImmersiveDialog 一致。需要使用 `usePopModal()` 获取 `popModal` 函数手动关闭弹窗。
|
|
312
|
+
- **步骤内容保留**:默认情况下所有步骤内容均保留在 DOM 中(通过 `display: none` 隐藏),表单状态不会丢失。如需销毁非当前步骤的内容,可设置 `destroyOtherStep={true}`。
|
|
313
|
+
- **"上一步"按钮**:当步骤索引大于 0 时,底部左侧自动展示"上一步"按钮(带左箭头图标)。第一步时不显示。
|
|
314
|
+
- **footerLeftAction 被占用**:WizardDialog 内部使用 `footerLeftAction` 渲染"上一步"按钮,因此外部传入的 `footerLeftAction` 会被覆盖。
|
|
315
|
+
|
|
316
|
+
## 相关组件
|
|
317
|
+
|
|
318
|
+
- `ImmersiveDialog` -- 全屏沉浸式对话框,WizardDialog 的基础组件,适用于不需要步骤的全屏操作
|
|
319
|
+
- `SmallDialog` -- 轻量级对话框(492px),适用于简单确认和信息提示
|
|
320
|
+
- `MediumDialog` -- 中等尺寸对话框(720px),适用于包含表单输入的场景
|
|
321
|
+
- `DeleteDialog` -- 删除确认对话框,封装了删除场景的标准样式和交互(位于 `@cloudtower/eagle` 的 coreX 模块)
|
|
322
|
+
- `Steps` -- 步骤条组件,WizardDialog 内部使用的步骤指示器
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# DeleteDialog
|
|
2
|
+
|
|
3
|
+
## 简介
|
|
4
|
+
|
|
5
|
+
DeleteDialog 是一个预设了删除确认样式的对话框组件,基于 SmallDialog 封装。确认按钮默认使用危险(红色)样式以突出操作风险,支持异步删除(confirmLoading)和 footer 错误信息展示。固定宽度 492px。
|
|
6
|
+
|
|
7
|
+
## 何时使用
|
|
8
|
+
|
|
9
|
+
- 删除单个或多个资源前需要用户二次确认
|
|
10
|
+
- 需要展示删除操作的风险提示(主描述 + 辅助说明)
|
|
11
|
+
- 异步删除操作需要 loading 状态和错误反馈
|
|
12
|
+
|
|
13
|
+
不要使用:
|
|
14
|
+
|
|
15
|
+
- 操作被拒绝/不可执行的反馈 --> 请用 `RejectDialog`
|
|
16
|
+
- 包含表单输入的删除确认 --> 请用 `MediumDialog`
|
|
17
|
+
- 非删除类的简单确认 --> 请用 `SmallDialog`
|
|
18
|
+
|
|
19
|
+
## 基础用法
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import React from "react";
|
|
23
|
+
import {
|
|
24
|
+
DeleteDialog,
|
|
25
|
+
Button,
|
|
26
|
+
KitStoreProvider,
|
|
27
|
+
ModalStack,
|
|
28
|
+
} from "@cloudtower/eagle";
|
|
29
|
+
import { usePushModal } from "@cloudtower/eagle";
|
|
30
|
+
|
|
31
|
+
const App = () => {
|
|
32
|
+
const pushModal = usePushModal();
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<Button
|
|
36
|
+
type="primary"
|
|
37
|
+
danger
|
|
38
|
+
onClick={() =>
|
|
39
|
+
pushModal({
|
|
40
|
+
component: () => (
|
|
41
|
+
<DeleteDialog
|
|
42
|
+
title="删除虚拟机"
|
|
43
|
+
description="确定要删除虚拟机 vm-prod-01 吗?"
|
|
44
|
+
secondaryDesc="删除后数据将无法恢复。"
|
|
45
|
+
onOk={(popModal) => {
|
|
46
|
+
console.log("confirmed delete");
|
|
47
|
+
popModal();
|
|
48
|
+
}}
|
|
49
|
+
/>
|
|
50
|
+
),
|
|
51
|
+
props: {},
|
|
52
|
+
})
|
|
53
|
+
}
|
|
54
|
+
>
|
|
55
|
+
删除虚拟机
|
|
56
|
+
</Button>
|
|
57
|
+
);
|
|
58
|
+
};
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 常见模式
|
|
62
|
+
|
|
63
|
+
### 模式一:异步删除 + 错误处理
|
|
64
|
+
|
|
65
|
+
适用于删除操作需要调用 API 的场景。通过 `confirmLoading` 控制按钮加载状态,`error` 展示操作失败信息。
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
import React, { useState } from "react";
|
|
69
|
+
import { DeleteDialog, Button } from "@cloudtower/eagle";
|
|
70
|
+
import { usePushModal } from "@cloudtower/eagle";
|
|
71
|
+
|
|
72
|
+
const AsyncDeleteDialog = () => {
|
|
73
|
+
const [loading, setLoading] = useState(false);
|
|
74
|
+
const [error, setError] = useState<string>();
|
|
75
|
+
|
|
76
|
+
return (
|
|
77
|
+
<DeleteDialog
|
|
78
|
+
title="删除集群"
|
|
79
|
+
description="确定要删除集群 cluster-01 吗?"
|
|
80
|
+
secondaryDesc="删除过程中请耐心等待。"
|
|
81
|
+
confirmLoading={loading}
|
|
82
|
+
error={error}
|
|
83
|
+
onOk={async (popModal) => {
|
|
84
|
+
setLoading(true);
|
|
85
|
+
setError(undefined);
|
|
86
|
+
try {
|
|
87
|
+
await deleteCluster("cluster-01");
|
|
88
|
+
popModal();
|
|
89
|
+
} catch {
|
|
90
|
+
setError("删除失败,请重试");
|
|
91
|
+
} finally {
|
|
92
|
+
setLoading(false);
|
|
93
|
+
}
|
|
94
|
+
}}
|
|
95
|
+
/>
|
|
96
|
+
);
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
// 使用方式
|
|
100
|
+
const App = () => {
|
|
101
|
+
const pushModal = usePushModal();
|
|
102
|
+
|
|
103
|
+
return (
|
|
104
|
+
<Button
|
|
105
|
+
type="primary"
|
|
106
|
+
danger
|
|
107
|
+
onClick={() =>
|
|
108
|
+
pushModal({ component: () => <AsyncDeleteDialog />, props: {} })
|
|
109
|
+
}
|
|
110
|
+
>
|
|
111
|
+
删除集群
|
|
112
|
+
</Button>
|
|
113
|
+
);
|
|
114
|
+
};
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### 模式二:自定义按钮文案
|
|
118
|
+
|
|
119
|
+
适用于需要更明确的按钮文案来引导用户决策的场景。
|
|
120
|
+
|
|
121
|
+
```tsx
|
|
122
|
+
import React from "react";
|
|
123
|
+
import { DeleteDialog, Button } from "@cloudtower/eagle";
|
|
124
|
+
import { usePushModal } from "@cloudtower/eagle";
|
|
125
|
+
|
|
126
|
+
const App = () => {
|
|
127
|
+
const pushModal = usePushModal();
|
|
128
|
+
|
|
129
|
+
return (
|
|
130
|
+
<Button
|
|
131
|
+
type="primary"
|
|
132
|
+
danger
|
|
133
|
+
onClick={() =>
|
|
134
|
+
pushModal({
|
|
135
|
+
component: () => (
|
|
136
|
+
<DeleteDialog
|
|
137
|
+
title="删除数据盘"
|
|
138
|
+
description="该数据盘中可能包含重要数据,删除后将无法恢复。"
|
|
139
|
+
cancelText="暂不删除"
|
|
140
|
+
okText="确认删除"
|
|
141
|
+
onOk={(popModal) => {
|
|
142
|
+
console.log("confirmed delete disk");
|
|
143
|
+
popModal();
|
|
144
|
+
}}
|
|
145
|
+
/>
|
|
146
|
+
),
|
|
147
|
+
props: {},
|
|
148
|
+
})
|
|
149
|
+
}
|
|
150
|
+
>
|
|
151
|
+
删除数据盘
|
|
152
|
+
</Button>
|
|
153
|
+
);
|
|
154
|
+
};
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## 相关组件
|
|
158
|
+
|
|
159
|
+
- `SmallDialog`: 底层对话框组件(492px),DeleteDialog 基于其封装
|
|
160
|
+
- `RejectDialog`: 操作拒绝反馈对话框,用于告知用户操作无法执行的原因
|
|
161
|
+
- `MediumDialog`: 中型对话框(720px),适用于包含表单的删除确认
|