@zat-design/sisyphus-react 4.5.9 → 4.5.10-beta.2
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/index.esm.css +1 -1
- package/dist/less.esm.css +1 -1
- package/es/FormsProvider/index.js +14 -21
- package/es/ProAction/components/CheckModalContent/index.js +12 -26
- package/es/ProAction/index.js +79 -83
- package/es/ProAction/propsType.js +0 -1
- package/es/ProConfigProvider/index.js +63 -110
- package/es/ProConfigProvider/propsType.js +0 -1
- package/es/ProDownload/index.d.ts +2 -1
- package/es/ProDownload/index.js +74 -69
- package/es/ProDownload/propsType.js +0 -1
- package/es/ProDownload/utils.d.ts +10 -5
- package/es/ProDownload/utils.js +63 -95
- package/es/ProDrawerForm/components/ProDrawer/index.js +83 -113
- package/es/ProDrawerForm/components/ProModal/index.js +77 -108
- package/es/ProDrawerForm/components/index.js +6 -2
- package/es/ProDrawerForm/hooks/useConfirmClose.js +20 -39
- package/es/ProDrawerForm/index.js +29 -38
- package/es/ProDrawerForm/propsType.js +0 -1
- package/es/ProDrawerForm/utils/index.js +18 -36
- package/es/ProEditLabel/components/RenderProForm.js +45 -49
- package/es/ProEditLabel/index.js +126 -163
- package/es/ProEditLabel/propsType.js +0 -1
- package/es/ProEditLabel/utils/index.js +5 -8
- package/es/ProEditTable/components/ActionButton/index.js +111 -119
- package/es/ProEditTable/components/RcTable/BaseTable.js +38 -51
- package/es/ProEditTable/components/RcTable/DraggableTable.js +97 -129
- package/es/ProEditTable/components/RcTable/index.js +6 -4
- package/es/ProEditTable/components/RenderField/ListChangedWrapper.js +77 -95
- package/es/ProEditTable/components/RenderField/index.js +490 -587
- package/es/ProEditTable/components/RenderField/propsType.js +0 -1
- package/es/ProEditTable/components/RenderField/tools.js +115 -112
- package/es/ProEditTable/components/RenderToolbar/index.js +47 -73
- package/es/ProEditTable/components/Summary/index.js +38 -64
- package/es/ProEditTable/components/Validator/index.js +46 -46
- package/es/ProEditTable/components/index.js +12 -5
- package/es/ProEditTable/index.js +456 -378
- package/es/ProEditTable/propsType.js +0 -1
- package/es/ProEditTable/utils/config.js +60 -122
- package/es/ProEditTable/utils/diffOriginal.js +45 -82
- package/es/ProEditTable/utils/getDefaultProps.js +19 -24
- package/es/ProEditTable/utils/index.js +154 -235
- package/es/ProEditTable/utils/tools.js +149 -286
- package/es/ProEditTable/utils/transform.js +25 -30
- package/es/ProEditTable/utils/useEditTableError.js +30 -43
- package/es/ProEditTable/utils/useShouldUpdateForTable.js +42 -72
- package/es/ProEditTable/utils/validateAll.js +87 -154
- package/es/ProEnum/components/Group.js +38 -30
- package/es/ProEnum/components/Tag.js +22 -26
- package/es/ProEnum/hooks/useEnum.js +48 -116
- package/es/ProEnum/hooks/useEnumRequest.js +182 -212
- package/es/ProEnum/hooks/useFrequentEnumRequest.js +40 -48
- package/es/ProEnum/index.js +162 -172
- package/es/ProEnum/propsType.js +0 -1
- package/es/ProEnum/utils/eventCenter.js +10 -12
- package/es/ProEnum/utils/frequentEnum.js +35 -92
- package/es/ProEnum/utils/getEnum.js +32 -90
- package/es/ProEnum/utils/getEnumLabel.js +44 -49
- package/es/ProEnum/utils/index.js +93 -207
- package/es/ProForm/components/Container.js +13 -28
- package/es/ProForm/components/FormFooter/index.js +36 -44
- package/es/ProForm/components/FormFooter/propsType.js +0 -1
- package/es/ProForm/components/base/Checkbox/index.js +32 -59
- package/es/ProForm/components/base/DatePicker/index.js +49 -71
- package/es/ProForm/components/base/Input/index.js +63 -97
- package/es/ProForm/components/base/Input/propsType.js +0 -1
- package/es/ProForm/components/base/InputNumber/index.js +118 -172
- package/es/ProForm/components/base/Radio/index.js +39 -52
- package/es/ProForm/components/base/RangePicker/index.js +109 -127
- package/es/ProForm/components/base/RangePicker/useDateRange.js +20 -17
- package/es/ProForm/components/base/Select/index.js +63 -89
- package/es/ProForm/components/base/Switch/index.js +27 -35
- package/es/ProForm/components/base/SwitchCheckbox/index.js +36 -54
- package/es/ProForm/components/base/TextArea/index.js +30 -41
- package/es/ProForm/components/base/TimePicker/index.js +27 -37
- package/es/ProForm/components/combination/Container/index.js +37 -47
- package/es/ProForm/components/combination/Container/propsType.js +0 -1
- package/es/ProForm/components/combination/FormList/components/ActionButton.js +165 -237
- package/es/ProForm/components/combination/FormList/components/BlockFields.js +98 -102
- package/es/ProForm/components/combination/FormList/components/Empty.js +28 -55
- package/es/ProForm/components/combination/FormList/components/LineFields.js +57 -54
- package/es/ProForm/components/combination/FormList/components/ToolbarButton.js +61 -109
- package/es/ProForm/components/combination/FormList/index.js +151 -161
- package/es/ProForm/components/combination/FormList/propsType.js +0 -1
- package/es/ProForm/components/combination/FormList/style/index.less +6 -0
- package/es/ProForm/components/combination/FormList/utils.js +22 -38
- package/es/ProForm/components/combination/Group/component/AddonWrapper/index.js +12 -28
- package/es/ProForm/components/combination/Group/component/ComRender.js +50 -111
- package/es/ProForm/components/combination/Group/component/FlexibleGroup.js +106 -213
- package/es/ProForm/components/combination/Group/hooks/index.js +69 -129
- package/es/ProForm/components/combination/Group/index.js +87 -126
- package/es/ProForm/components/combination/Group/propsType.js +0 -1
- package/es/ProForm/components/combination/Group/utils/index.js +124 -239
- package/es/ProForm/components/combination/ProCascader/index.js +156 -199
- package/es/ProForm/components/combination/ProCascader/propsType.js +0 -1
- package/es/ProForm/components/combination/ProCascader/utils/index.js +12 -21
- package/es/ProForm/components/combination/ProModalSelect/hooks/useRequestList.js +72 -70
- package/es/ProForm/components/combination/ProModalSelect/index.js +309 -347
- package/es/ProForm/components/combination/ProModalSelect/propsType.js +0 -1
- package/es/ProForm/components/combination/ProModalSelect/utils/index.js +32 -39
- package/es/ProForm/components/combination/ProNumberRange/index.js +100 -156
- package/es/ProForm/components/combination/ProNumberRange/propsType.js +0 -1
- package/es/ProForm/components/combination/ProRangeLimit/index.js +104 -115
- package/es/ProForm/components/combination/ProRangeLimit/propsType.js +0 -1
- package/es/ProForm/components/combination/ProTimeLimit/hooks/useControlled.js +16 -16
- package/es/ProForm/components/combination/ProTimeLimit/index.js +75 -109
- package/es/ProForm/components/index.js +56 -34
- package/es/ProForm/components/render/ChangedWrapper.js +85 -94
- package/es/ProForm/components/render/ConfirmWrapper.js +27 -39
- package/es/ProForm/components/render/CustomComponentViewWrapper.js +65 -82
- package/es/ProForm/components/render/Render.js +223 -329
- package/es/ProForm/components/render/RenderFields.js +76 -113
- package/es/ProForm/components/render/propsType.js +0 -1
- package/es/ProForm/hooks/useControlled.js +8 -10
- package/es/ProForm/hooks/useDeepCompareMemo.js +11 -11
- package/es/ProForm/hooks/useFieldProps.js +8 -4
- package/es/ProForm/hooks/useForm.js +50 -110
- package/es/ProForm/hooks/useRules.js +17 -33
- package/es/ProForm/hooks/useShouldUpdate.js +77 -152
- package/es/ProForm/hooks/useWatch.js +62 -134
- package/es/ProForm/index.js +157 -194
- package/es/ProForm/propsType.js +15 -7
- package/es/ProForm/utils/buildFormItemProps.js +51 -58
- package/es/ProForm/utils/diffOriginal.js +43 -73
- package/es/ProForm/utils/getDefaultProps.js +18 -24
- package/es/ProForm/utils/index.js +160 -235
- package/es/ProForm/utils/processDependencies.js +21 -60
- package/es/ProForm/utils/reactiveValues.js +20 -34
- package/es/ProForm/utils/rulesCreator.js +42 -40
- package/es/ProForm/utils/transformNames.js +10 -13
- package/es/ProForm/utils/transformValue.js +16 -29
- package/es/ProForm/utils/valueType.js +96 -178
- package/es/ProIcon/config/index.js +340 -274
- package/es/ProIcon/index.js +135 -209
- package/es/ProIcon/propsTypes.js +0 -1
- package/es/ProIcon/utils/index.js +24 -39
- package/es/ProLayout/components/Layout/Header/index.js +108 -141
- package/es/ProLayout/components/Layout/Menu/FoldMenu/index.js +134 -190
- package/es/ProLayout/components/Layout/Menu/OpenMenu/index.js +113 -139
- package/es/ProLayout/components/Layout/Menu/OpenMenu/propsType.js +0 -1
- package/es/ProLayout/components/Layout/Menu/SideMenu/index.js +23 -31
- package/es/ProLayout/components/Layout/Menu/index.js +92 -89
- package/es/ProLayout/components/Layout/Notice/index.js +13 -27
- package/es/ProLayout/components/Layout/index.js +8 -3
- package/es/ProLayout/components/ProCollapse/PropTypes.js +0 -1
- package/es/ProLayout/components/ProCollapse/index.js +89 -111
- package/es/ProLayout/components/ProFooter/PropTypes.js +0 -1
- package/es/ProLayout/components/ProFooter/index.js +27 -24
- package/es/ProLayout/components/ProHeader/PropTypes.js +0 -1
- package/es/ProLayout/components/ProHeader/components/Copy/index.js +23 -21
- package/es/ProLayout/components/ProHeader/components/Describe/index.js +67 -84
- package/es/ProLayout/components/ProHeader/components/ProBackBtn/index.js +18 -21
- package/es/ProLayout/components/ProHeader/components/ProBackBtn/propsType.js +0 -1
- package/es/ProLayout/components/ProHeader/components/index.js +6 -2
- package/es/ProLayout/components/ProHeader/index.js +216 -356
- package/es/ProLayout/components/ProHeader/utils/index.js +19 -26
- package/es/ProLayout/components/TabsManager/components/TabContextMenu.js +92 -85
- package/es/ProLayout/components/TabsManager/components/TabItem.js +53 -63
- package/es/ProLayout/components/TabsManager/components/TabsContext.js +5 -5
- package/es/ProLayout/components/TabsManager/components/TabsHeader.js +42 -52
- package/es/ProLayout/components/TabsManager/hooks/useActiveTab.js +8 -9
- package/es/ProLayout/components/TabsManager/hooks/useIframeRoute.js +19 -32
- package/es/ProLayout/components/TabsManager/hooks/useProLayoutTabs.js +6 -20
- package/es/ProLayout/components/TabsManager/hooks/useTabsCache.js +25 -42
- package/es/ProLayout/components/TabsManager/hooks/useTabsState.js +320 -350
- package/es/ProLayout/components/TabsManager/hooks/useTabsUrlSync.d.ts +19 -0
- package/es/ProLayout/components/TabsManager/hooks/useTabsUrlSync.js +332 -0
- package/es/ProLayout/components/TabsManager/index.js +407 -351
- package/es/ProLayout/components/TabsManager/propTypes.d.ts +4 -0
- package/es/ProLayout/components/TabsManager/propTypes.js +7 -15
- package/es/ProLayout/components/TabsManager/style/index.less +1 -1
- package/es/ProLayout/components/TabsManager/utils/historyObserver.d.ts +7 -0
- package/es/ProLayout/components/TabsManager/utils/historyObserver.js +65 -0
- package/es/ProLayout/components/TabsManager/utils/index.d.ts +15 -2
- package/es/ProLayout/components/TabsManager/utils/index.js +156 -159
- package/es/ProLayout/components/index.js +8 -3
- package/es/ProLayout/index.js +173 -228
- package/es/ProLayout/propTypes.d.ts +28 -1
- package/es/ProLayout/propTypes.js +12 -52
- package/es/ProLayout/utils/index.js +48 -128
- package/es/ProSelect/components/AdaptiveTooltip.js +26 -25
- package/es/ProSelect/index.js +187 -223
- package/es/ProSelect/propsType.js +0 -1
- package/es/ProSelect/style/index.less +13 -0
- package/es/ProSelect/utils/index.js +100 -146
- package/es/ProStep/components/Anchor/index.js +71 -82
- package/es/ProStep/components/Item/index.js +49 -56
- package/es/ProStep/components/LazyLoad/index.js +23 -29
- package/es/ProStep/components/Listener/index.js +20 -33
- package/es/ProStep/components/Step/index.js +31 -38
- package/es/ProStep/constants.js +4 -1
- package/es/ProStep/index.js +166 -153
- package/es/ProStep/propsType.js +0 -1
- package/es/ProStep/style/index.less +1 -1
- package/es/ProStep/utils/index.js +29 -55
- package/es/ProStepTab/index.js +83 -138
- package/es/ProStepTab/propsType.js +0 -1
- package/es/ProTable/components/EditableCell/EditIcon.js +10 -14
- package/es/ProTable/components/EditableCell/index.js +37 -71
- package/es/ProTable/components/EditableCell/propsType.js +0 -1
- package/es/ProTable/components/FormatColumn/index.js +209 -340
- package/es/ProTable/components/FormatColumn/propsType.js +0 -1
- package/es/ProTable/components/RcTable/components/BaseTable/index.js +35 -39
- package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +80 -107
- package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/index.js +54 -48
- package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/propsType.js +0 -1
- package/es/ProTable/components/RcTable/components/DraggableTable/index.js +47 -54
- package/es/ProTable/components/RcTable/index.js +6 -4
- package/es/ProTable/components/RenderColumn/index.js +158 -186
- package/es/ProTable/components/RenderEmptyText/index.js +12 -21
- package/es/ProTable/components/RenderFooter/index.js +15 -15
- package/es/ProTable/components/RenderSummary/index.js +33 -50
- package/es/ProTable/components/RenderTableHeader/index.js +44 -46
- package/es/ProTable/components/RenderTabs/index.js +47 -51
- package/es/ProTable/components/TableResizable/index.js +56 -72
- package/es/ProTable/components/TooltipTitle/index.js +13 -21
- package/es/ProTable/components/index.js +16 -36
- package/es/ProTable/hooks/useAntdTable.js +191 -224
- package/es/ProTable/index.js +232 -249
- package/es/ProTable/propsType.js +0 -1
- package/es/ProTable/utils/columnStorage.js +63 -88
- package/es/ProTable/utils/index.js +57 -90
- package/es/ProTabs/components/Card/index.js +20 -48
- package/es/ProTabs/components/index.js +4 -1
- package/es/ProTabs/index.js +41 -58
- package/es/ProTabs/propType.js +0 -1
- package/es/ProThemeTools/component/ProTools/index.js +106 -158
- package/es/ProThemeTools/component/index.js +4 -1
- package/es/ProThemeTools/context/ThemeContext.js +67 -146
- package/es/ProThemeTools/index.js +103 -156
- package/es/ProThemeTools/propsType.js +0 -1
- package/es/ProThemeTools/utils/index.js +60 -109
- package/es/ProTooltip/index.js +132 -168
- package/es/ProTooltip/propsType.js +0 -1
- package/es/ProTree/components/AdaptiveTooltip.js +15 -17
- package/es/ProTree/components/CloseIcon.js +18 -26
- package/es/ProTree/components/List.js +28 -47
- package/es/ProTree/components/ProTree.js +152 -211
- package/es/ProTree/components/ProTreeSelect/index.js +255 -459
- package/es/ProTree/components/ProTreeSelect/propsType.js +0 -1
- package/es/ProTree/components/SearchTitle.js +23 -42
- package/es/ProTree/components/Tree.js +147 -195
- package/es/ProTree/components/index.js +10 -5
- package/es/ProTree/index.js +12 -16
- package/es/ProTree/propsType.js +0 -1
- package/es/ProTree/utils.js +46 -118
- package/es/ProTreeModal/components/Cascader.js +56 -64
- package/es/ProTreeModal/components/CloseIcon.js +18 -26
- package/es/ProTreeModal/components/List.js +114 -180
- package/es/ProTreeModal/components/SearchTitle.js +15 -18
- package/es/ProTreeModal/components/SortableItem.js +29 -58
- package/es/ProTreeModal/components/Tree.js +99 -113
- package/es/ProTreeModal/components/Trigger.js +87 -121
- package/es/ProTreeModal/components/index.js +14 -6
- package/es/ProTreeModal/index.js +397 -438
- package/es/ProTreeModal/propsType.js +0 -1
- package/es/ProTreeModal/utils.js +52 -95
- package/es/ProUpload/components/ButtonRender.js +44 -54
- package/es/ProUpload/components/DragRender.js +94 -148
- package/es/ProUpload/components/DraggableUploadListItem.js +12 -25
- package/es/ProUpload/components/Example.js +27 -31
- package/es/ProUpload/components/FileItem.js +69 -163
- package/es/ProUpload/components/ImageRender.js +134 -170
- package/es/ProUpload/index.js +68 -100
- package/es/ProUpload/propsType.js +0 -1
- package/es/ProUpload/uitls.js +8 -4
- package/es/ProUtils/utils/index.js +17 -13
- package/es/ProViewer/index.js +154 -175
- package/es/ProViewer/propsType.js +0 -5
- package/es/ProWaterMark/index.js +9 -16
- package/es/ProWaterMark/propsType.js +0 -1
- package/es/hooks/useDraggableRow.js +25 -53
- package/es/index.js +57 -77
- package/es/locale/en_US.js +153 -142
- package/es/locale/index.js +23 -36
- package/es/locale/zh_CN.js +145 -142
- package/es/tokens.js +84 -83
- package/es/utils/index.js +24 -51
- package/package.json +4 -2
- package/es/ProConfigProvider/demo/locale.js +0 -58
|
@@ -1,29 +1,34 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import cloneDeepWith from "lodash/cloneDeepWith";
|
|
4
|
+
import isArray from "lodash/isArray";
|
|
5
|
+
import isBoolean from "lodash/isBoolean";
|
|
6
|
+
import isFunction from "lodash/isFunction";
|
|
7
|
+
import { Tooltip, Space } from "antd";
|
|
8
|
+
import classnames from "classnames";
|
|
9
|
+
import { tools } from "@zat-design/utils";
|
|
10
|
+
import { QuestionCircleOutlined } from "@ant-design/icons";
|
|
11
|
+
import {
|
|
12
|
+
actions,
|
|
13
|
+
defaultBtnNameMap,
|
|
14
|
+
defaultSingleActionKeys,
|
|
15
|
+
defaultMultipleActionKeys,
|
|
16
|
+
defaultEditingActionKeys
|
|
17
|
+
} from "./config";
|
|
18
|
+
import {
|
|
19
|
+
customValidate,
|
|
20
|
+
getNamePath,
|
|
21
|
+
splitNames,
|
|
22
|
+
handleScrollToError,
|
|
23
|
+
cloneDeepFilterNode,
|
|
24
|
+
isRecordShallowEqual
|
|
25
|
+
} from "./tools";
|
|
12
26
|
import { filterInternalFields } from "../../ProForm/utils";
|
|
13
27
|
import ProTooltip from "../../ProTooltip";
|
|
14
28
|
import { RenderField, ActionButton } from "../components";
|
|
15
29
|
import { hasRowFunctionDependency } from "../components/RenderField/tools";
|
|
16
30
|
import locale from "../../locale";
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* shouldCellUpdate 缓存容器:跟踪 dataSource/component 引用与 filterInList 列表长度。
|
|
20
|
-
* 调用方(ProEditTable 顶层)通过 useRef 持有按实例隔离的容器,避免 module-level Map
|
|
21
|
-
* 在多实例场景下交叉污染;实例卸载后缓存随宿主一起释放。
|
|
22
|
-
* 未传 caches 时退化为单次内联 Map(不缓存历史,shouldCellUpdate 始终首次比较)。
|
|
23
|
-
*/
|
|
24
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
|
-
// 渲染操作栏
|
|
26
|
-
const getActionColumn = config => {
|
|
31
|
+
const getActionColumn = (config) => {
|
|
27
32
|
const {
|
|
28
33
|
disabled,
|
|
29
34
|
name,
|
|
@@ -36,103 +41,77 @@ const getActionColumn = config => {
|
|
|
36
41
|
rowDisabled,
|
|
37
42
|
actionDirection,
|
|
38
43
|
editingKeys
|
|
39
|
-
} =
|
|
40
|
-
if (
|
|
44
|
+
} = cloneDeepWith(config, (value) => {
|
|
45
|
+
if (React.isValidElement(value)) {
|
|
41
46
|
return value;
|
|
42
47
|
}
|
|
43
48
|
});
|
|
44
|
-
const pageNum = tools.calc(page.pageNum,
|
|
45
|
-
const firstIndex = tools.calc(pageNum,
|
|
46
|
-
// actionProps配置为false 默认不插入
|
|
49
|
+
const pageNum = tools.calc(page.pageNum, "-", 1);
|
|
50
|
+
const firstIndex = tools.calc(pageNum, "*", page.pageSize);
|
|
47
51
|
if (actionProps === false || disabled) {
|
|
48
52
|
return false;
|
|
49
53
|
}
|
|
50
54
|
const virtualRowName = getNamePath(name, virtualKey);
|
|
51
|
-
|
|
52
|
-
// 设置默认操作栏按钮(区分单行与多行编辑场景)
|
|
53
55
|
const defaultActionKeys = virtualKey ? defaultSingleActionKeys : defaultMultipleActionKeys;
|
|
54
56
|
let nextActionsProps = [...actionProps];
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
nextActionsProps = defaultActionKeys.map(key => {
|
|
59
|
-
return {
|
|
60
|
-
type: key
|
|
61
|
-
};
|
|
57
|
+
if (isArray(actionProps) && !(actionProps == null ? void 0 : actionProps.length)) {
|
|
58
|
+
nextActionsProps = defaultActionKeys.map((key) => {
|
|
59
|
+
return { type: key };
|
|
62
60
|
});
|
|
63
61
|
} else {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (_isArray(actionProps) && !actionProps.find(action => action.type === key)) {
|
|
62
|
+
defaultActionKeys.forEach((key) => {
|
|
63
|
+
if (isArray(actionProps) && !actionProps.find((action) => action.type === key)) {
|
|
67
64
|
nextActionsProps.push({
|
|
68
65
|
type: key
|
|
69
66
|
});
|
|
70
67
|
}
|
|
71
68
|
});
|
|
72
69
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const actionBtns = nextActionsProps.map(action => {
|
|
76
|
-
const {
|
|
77
|
-
type,
|
|
78
|
-
label,
|
|
79
|
-
show,
|
|
80
|
-
needConfirm,
|
|
81
|
-
onHandle,
|
|
82
|
-
onClick,
|
|
83
|
-
isSelectModal,
|
|
84
|
-
...buttonProps
|
|
85
|
-
} = action;
|
|
70
|
+
const actionBtns = nextActionsProps.map((action) => {
|
|
71
|
+
const { type, label, show, needConfirm, onHandle, onClick, isSelectModal, ...buttonProps } = action;
|
|
86
72
|
action.isEditable = defaultEditingActionKeys.includes(type);
|
|
87
73
|
action.label = label ?? defaultBtnNameMap[type];
|
|
88
74
|
action.show = show ?? true;
|
|
89
75
|
action.needConfirm = needConfirm ?? true;
|
|
90
|
-
action.onEvent = async (record, {
|
|
91
|
-
index,
|
|
92
|
-
form,
|
|
93
|
-
name,
|
|
94
|
-
namePath,
|
|
95
|
-
tableLength,
|
|
96
|
-
selectedRows
|
|
97
|
-
}) => {
|
|
98
|
-
index = tools.calc(firstIndex, '+', index);
|
|
76
|
+
action.onEvent = async (record, { index, form: form2, name: name2, namePath, tableLength, selectedRows }) => {
|
|
77
|
+
index = tools.calc(firstIndex, "+", index);
|
|
99
78
|
const rowName = [...virtualRowName, index];
|
|
100
|
-
if (type ===
|
|
101
|
-
// 判断该行是否处于编辑状态
|
|
79
|
+
if (type === "save") {
|
|
102
80
|
const _isEditing = !virtualKey || editingKeys.includes(record.rowKey) || record._addFlag;
|
|
103
|
-
|
|
104
|
-
// 只有编辑中的行才需要校验
|
|
105
81
|
if (_isEditing) {
|
|
106
82
|
try {
|
|
107
|
-
await customValidate(validateKeys,
|
|
83
|
+
await customValidate(validateKeys, form2, rowName);
|
|
108
84
|
} catch (error) {
|
|
109
85
|
handleScrollToError();
|
|
110
86
|
return Promise.reject(error);
|
|
111
87
|
}
|
|
112
88
|
}
|
|
113
89
|
}
|
|
114
|
-
|
|
115
|
-
const lastRecord =
|
|
116
|
-
|
|
90
|
+
const fieldRecord = filterInternalFields(form2.getFieldValue(rowName));
|
|
91
|
+
const lastRecord = {
|
|
92
|
+
...record,
|
|
93
|
+
...fieldRecord && typeof fieldRecord === "object" ? fieldRecord : {},
|
|
94
|
+
rowKey: record.rowKey
|
|
95
|
+
};
|
|
117
96
|
const onEvent = onClick || onHandle;
|
|
118
97
|
let result;
|
|
119
98
|
if (!onEvent) {
|
|
120
99
|
result = true;
|
|
121
100
|
} else {
|
|
122
|
-
result = await onEvent
|
|
123
|
-
form,
|
|
101
|
+
result = await (onEvent == null ? void 0 : onEvent(lastRecord, {
|
|
102
|
+
form: form2,
|
|
124
103
|
index,
|
|
125
104
|
tableLength,
|
|
126
|
-
name,
|
|
105
|
+
name: name2,
|
|
127
106
|
namePath,
|
|
128
107
|
selectedRows
|
|
129
|
-
});
|
|
108
|
+
}));
|
|
130
109
|
}
|
|
131
|
-
if (result !== false && type !==
|
|
110
|
+
if (result !== false && type !== "custom") {
|
|
132
111
|
const actionHandler = actions[type];
|
|
133
112
|
actionHandler({
|
|
134
113
|
...config,
|
|
135
|
-
rowName: [...
|
|
114
|
+
rowName: [...name2, index],
|
|
136
115
|
virtualRowName: rowName,
|
|
137
116
|
record: lastRecord,
|
|
138
117
|
result,
|
|
@@ -145,43 +124,32 @@ const getActionColumn = config => {
|
|
|
145
124
|
});
|
|
146
125
|
return {
|
|
147
126
|
title: locale.ProEditTable.operation,
|
|
148
|
-
key:
|
|
149
|
-
fixed:
|
|
150
|
-
className:
|
|
151
|
-
width: actionWidth || (actionDirection ===
|
|
127
|
+
key: "action",
|
|
128
|
+
fixed: "right",
|
|
129
|
+
className: "pro-edit-table-action-column",
|
|
130
|
+
width: actionWidth || (actionDirection === "vertical" ? 60 : virtualKey ? 120 : 60),
|
|
152
131
|
render: (text, record, index) => {
|
|
153
|
-
const _disabled = rowDisabled
|
|
132
|
+
const _disabled = (rowDisabled == null ? void 0 : rowDisabled(record)) ?? false;
|
|
154
133
|
if (_disabled) {
|
|
155
|
-
return
|
|
134
|
+
return "";
|
|
156
135
|
}
|
|
157
|
-
return
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
children: /*#__PURE__*/_jsx(ActionButton, {
|
|
136
|
+
return /* @__PURE__ */ jsx(Space, { size: "small", orientation: actionDirection, children: actionBtns.map((btnConfig) => {
|
|
137
|
+
return /* @__PURE__ */ jsx(React.Fragment, { children: /* @__PURE__ */ jsx(
|
|
138
|
+
ActionButton,
|
|
139
|
+
{
|
|
140
|
+
...{
|
|
163
141
|
record,
|
|
164
142
|
index,
|
|
165
143
|
config,
|
|
166
144
|
btnConfig
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
})
|
|
170
|
-
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
) }, `${record.rowKey}-${btnConfig == null ? void 0 : btnConfig.type}`);
|
|
148
|
+
}) });
|
|
171
149
|
}
|
|
172
150
|
};
|
|
173
151
|
};
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* 编辑模式分为 多行和单行两种
|
|
177
|
-
* 单行模式下,render 分为component和viewRender两种,对应编辑和非编辑状态下,edit状态不对外
|
|
178
|
-
* 多行模式下component设置即可
|
|
179
|
-
* render不对外暴露formItem,能自定渲染的尽是输入组件或者显示组件本身
|
|
180
|
-
* @param columns 表格配置数据
|
|
181
|
-
* @param config
|
|
182
|
-
*/
|
|
183
|
-
|
|
184
|
-
export const transformColumns = (columns = [], config, caches) => {
|
|
152
|
+
const transformColumns = (columns = [], config, caches) => {
|
|
185
153
|
const {
|
|
186
154
|
mode,
|
|
187
155
|
form,
|
|
@@ -194,17 +162,16 @@ export const transformColumns = (columns = [], config, caches) => {
|
|
|
194
162
|
setState,
|
|
195
163
|
page
|
|
196
164
|
} = config;
|
|
197
|
-
|
|
198
|
-
// 未传 caches 时退化为单次内联 Map(每次 transform 新建,不持久化)
|
|
199
165
|
const cellCaches = caches ?? {
|
|
200
|
-
dataSourceRef: new Map(),
|
|
201
|
-
componentRef: new Map(),
|
|
202
|
-
listLength: new Map()
|
|
166
|
+
dataSourceRef: /* @__PURE__ */ new Map(),
|
|
167
|
+
componentRef: /* @__PURE__ */ new Map(),
|
|
168
|
+
listLength: /* @__PURE__ */ new Map()
|
|
203
169
|
};
|
|
204
|
-
let nextColumns = columns.map(item => cloneDeepFilterNode(item));
|
|
205
|
-
const pageNum = tools.calc(page.pageNum,
|
|
206
|
-
const firstIndex = tools.calc(pageNum,
|
|
170
|
+
let nextColumns = columns.map((item) => cloneDeepFilterNode(item));
|
|
171
|
+
const pageNum = tools.calc(page.pageNum, "-", 1);
|
|
172
|
+
const firstIndex = tools.calc(pageNum, "*", page.pageSize);
|
|
207
173
|
nextColumns.forEach((item, index) => {
|
|
174
|
+
var _a, _b;
|
|
208
175
|
const {
|
|
209
176
|
label,
|
|
210
177
|
names,
|
|
@@ -220,147 +187,104 @@ export const transformColumns = (columns = [], config, caches) => {
|
|
|
220
187
|
before,
|
|
221
188
|
after
|
|
222
189
|
} = item;
|
|
223
|
-
|
|
224
|
-
// column设置label时,权重最高
|
|
225
190
|
const columnTitle = label || title;
|
|
226
191
|
item.title = columnTitle;
|
|
227
|
-
if (typeof columnTitle ===
|
|
192
|
+
if (typeof columnTitle === "string") {
|
|
228
193
|
item.originTitle = columnTitle;
|
|
229
194
|
if (tooltip) {
|
|
230
|
-
const {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
className: "
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
...resetProps,
|
|
240
|
-
children: icon ? ( /*#__PURE__*/React.cloneElement(icon, {
|
|
241
|
-
className: 'icon-tip'
|
|
242
|
-
})) : /*#__PURE__*/_jsx(QuestionCircleOutlined, {
|
|
243
|
-
className: "icon-tip"
|
|
244
|
-
})
|
|
245
|
-
}), suffix || after]
|
|
246
|
-
});
|
|
195
|
+
const { title: tooltipTitle, icon, ...resetProps } = tooltip || {};
|
|
196
|
+
item.title = /* @__PURE__ */ jsxs("span", { className: "pro-edit-table-title pro-edit-table-tooltip", children: [
|
|
197
|
+
before,
|
|
198
|
+
columnTitle,
|
|
199
|
+
/* @__PURE__ */ jsx(Tooltip, { title: tooltipTitle ?? tooltip, ...resetProps, children: icon ? React.cloneElement(icon, {
|
|
200
|
+
className: "icon-tip"
|
|
201
|
+
}) : /* @__PURE__ */ jsx(QuestionCircleOutlined, { className: "icon-tip" }) }),
|
|
202
|
+
suffix || after
|
|
203
|
+
] });
|
|
247
204
|
} else {
|
|
248
|
-
item.title =
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
205
|
+
item.title = /* @__PURE__ */ jsxs("span", { className: "pro-edit-table-title", children: [
|
|
206
|
+
before,
|
|
207
|
+
columnTitle,
|
|
208
|
+
suffix || after
|
|
209
|
+
] });
|
|
252
210
|
}
|
|
253
211
|
}
|
|
254
|
-
|
|
255
|
-
// width转为数字,兼容虚拟滚动场景
|
|
256
|
-
if (typeof item.width === 'string' && item.width.includes('px')) {
|
|
212
|
+
if (typeof item.width === "string" && item.width.includes("px")) {
|
|
257
213
|
item.width = parseInt(item.width, 10);
|
|
258
214
|
}
|
|
259
|
-
|
|
260
|
-
// column设置name时,权重最高
|
|
261
|
-
const columnName = item?.name || dataIndex || key;
|
|
215
|
+
const columnName = (item == null ? void 0 : item.name) || dataIndex || key;
|
|
262
216
|
item.dataIndex = columnName;
|
|
263
217
|
item.key = columnName;
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
let required = _isBoolean(item.required) ? item.required : false;
|
|
267
|
-
if (_isFunction(item.required)) {
|
|
268
|
-
// 列配置预处理阶段没有稳定行上下文,required 函数交给 RenderField 内按行计算
|
|
218
|
+
let required = isBoolean(item.required) ? item.required : false;
|
|
219
|
+
if (isFunction(item.required)) {
|
|
269
220
|
required = false;
|
|
270
221
|
}
|
|
271
|
-
|
|
272
|
-
// 列隐藏使用 antd 原生 column.hidden(antd 5.13+ 支持),不再依赖 is-hidden 错位定位 hack
|
|
273
222
|
if (hidden) {
|
|
274
223
|
item.hidden = true;
|
|
275
224
|
}
|
|
276
|
-
|
|
277
|
-
// 样式处理(不再写 is-hidden className)
|
|
278
225
|
item.className = classnames({
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
226
|
+
"is-required": required || labelRequired,
|
|
227
|
+
"is-required-left": requiredAlign === "left",
|
|
228
|
+
"is-required-right": requiredAlign === "right",
|
|
282
229
|
[className]: className
|
|
283
230
|
});
|
|
284
|
-
|
|
285
|
-
// 防止重复渲染导致className重复添加
|
|
286
231
|
if (item.className) {
|
|
287
|
-
item.className = [...new Set(item.className.split(
|
|
232
|
+
item.className = [...new Set(item.className.split(" "))].join(" ");
|
|
288
233
|
}
|
|
289
|
-
const _render = (text, record,
|
|
234
|
+
const _render = (text, record, index2) => {
|
|
290
235
|
const _isEditing = !virtualKey || editingKeys.includes(record.rowKey) || record._addFlag;
|
|
291
|
-
let namePath =
|
|
236
|
+
let namePath = isArray(name) ? name : [name];
|
|
292
237
|
if (virtualKey && editingKeys.includes(record.rowKey)) {
|
|
293
238
|
namePath = getNamePath(name, virtualKey);
|
|
294
239
|
}
|
|
295
240
|
const namePathArray = Array.isArray(namePath) ? namePath : [namePath];
|
|
296
|
-
const columnNamePath =
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
let cellName = columnName ? [...namePathArray, index, ...columnNamePath] : [...namePathArray, index];
|
|
241
|
+
const columnNamePath = isArray(columnName) ? columnName : [columnName];
|
|
242
|
+
index2 = tools.calc(firstIndex, "+", index2);
|
|
243
|
+
let cellName = columnName ? [...namePathArray, index2, ...columnNamePath] : [...namePathArray, index2];
|
|
300
244
|
let _text = text;
|
|
301
|
-
|
|
302
|
-
// 当传入组合组件时,name需要重新组合一下,以防names中key与dataIndex重叠
|
|
303
|
-
if (names?.length) {
|
|
245
|
+
if (names == null ? void 0 : names.length) {
|
|
304
246
|
const nextDataIndex = splitNames(names);
|
|
305
247
|
item.dataIndex = nextDataIndex;
|
|
306
248
|
item.key = nextDataIndex;
|
|
307
|
-
cellName = [...namePathArray,
|
|
308
|
-
|
|
309
|
-
_text = names.map(item => record?.[item]);
|
|
249
|
+
cellName = [...namePathArray, index2, nextDataIndex];
|
|
250
|
+
_text = names.map((item2) => record == null ? void 0 : record[item2]);
|
|
310
251
|
}
|
|
311
252
|
if (!_isEditing && ellipsis) {
|
|
312
|
-
return
|
|
313
|
-
text: _text,
|
|
314
|
-
line: 1,
|
|
315
|
-
isResponsiveWidth: true
|
|
316
|
-
});
|
|
253
|
+
return /* @__PURE__ */ jsx(ProTooltip, { text: _text, line: 1, isResponsiveWidth: true });
|
|
317
254
|
}
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
...config,
|
|
335
|
-
cellName,
|
|
336
|
-
// 单元格formItem的namePath
|
|
337
|
-
_isEditing // 是否正在编辑
|
|
255
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
256
|
+
index2 === 0 && !item.width ? /* @__PURE__ */ jsx("div", { style: { visibility: "hidden", height: 0, paddingLeft: (item == null ? void 0 : item.required) ? 16 : 0 }, children: columnTitle }) : null,
|
|
257
|
+
/* @__PURE__ */ jsx(
|
|
258
|
+
RenderField,
|
|
259
|
+
{
|
|
260
|
+
text: _text,
|
|
261
|
+
record,
|
|
262
|
+
index: index2,
|
|
263
|
+
column: item,
|
|
264
|
+
config: {
|
|
265
|
+
...config,
|
|
266
|
+
cellName,
|
|
267
|
+
// 单元格formItem的namePath
|
|
268
|
+
_isEditing
|
|
269
|
+
// 是否正在编辑
|
|
270
|
+
}
|
|
338
271
|
}
|
|
339
|
-
|
|
340
|
-
});
|
|
272
|
+
)
|
|
273
|
+
] });
|
|
341
274
|
};
|
|
342
275
|
item.render = _render;
|
|
343
|
-
|
|
344
|
-
// 精准控制单元格更新,减少不必要的渲染
|
|
345
276
|
if (!item.shouldCellUpdate) {
|
|
346
|
-
const hasComponent =
|
|
347
|
-
// 函数型动态属性会依赖整行数据(可能是当前列之外的兄弟字段),
|
|
348
|
-
// 这类列在行内任意字段变化时都需重渲染,不能只比对本列 dataIndex
|
|
277
|
+
const hasComponent = isFunction(item.component);
|
|
349
278
|
const hasFunctionDependency = hasRowFunctionDependency(item);
|
|
350
|
-
const columnCacheKey = `${Array.isArray(name) ? name.join(
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
// cloneDeepFilterNode 每次产生新引用,在 shouldCellUpdate 内更新 cache 只会让第一行触发更新,其余行跳过
|
|
354
|
-
const originalFieldProps = columns[index]?.fieldProps;
|
|
355
|
-
const originalDataSourceRef = !_isFunction(originalFieldProps) ? originalFieldProps?.dataSource : undefined;
|
|
279
|
+
const columnCacheKey = `${Array.isArray(name) ? name.join(".") : String(name)}::${String(columnName)}`;
|
|
280
|
+
const originalFieldProps = (_a = columns[index]) == null ? void 0 : _a.fieldProps;
|
|
281
|
+
const originalDataSourceRef = !isFunction(originalFieldProps) ? originalFieldProps == null ? void 0 : originalFieldProps.dataSource : void 0;
|
|
356
282
|
const prevDataSourceRef = cellCaches.dataSourceRef.get(columnCacheKey);
|
|
357
|
-
const dataSourceChanged = originalDataSourceRef !==
|
|
283
|
+
const dataSourceChanged = originalDataSourceRef !== void 0 && prevDataSourceRef !== originalDataSourceRef;
|
|
358
284
|
if (dataSourceChanged) {
|
|
359
285
|
cellCaches.dataSourceRef.set(columnCacheKey, originalDataSourceRef);
|
|
360
286
|
}
|
|
361
|
-
|
|
362
|
-
// Fix 问题2:检测 filterInList 列的行增删,避免行索引移位时 shouldUpdate 闭包中 index 失效
|
|
363
|
-
const filterInListEnabled = !_isFunction(item?.fieldProps) && item?.fieldProps?.filterInList;
|
|
287
|
+
const filterInListEnabled = !isFunction(item == null ? void 0 : item.fieldProps) && ((_b = item == null ? void 0 : item.fieldProps) == null ? void 0 : _b.filterInList);
|
|
364
288
|
let filterListChanged = false;
|
|
365
289
|
if (filterInListEnabled) {
|
|
366
290
|
const currentListLen = config.tableLength ?? 0;
|
|
@@ -371,27 +295,22 @@ export const transformColumns = (columns = [], config, caches) => {
|
|
|
371
295
|
}
|
|
372
296
|
}
|
|
373
297
|
item.shouldCellUpdate = (record, prevRecord) => {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
if (record
|
|
298
|
+
if (dataSourceChanged)
|
|
299
|
+
return true;
|
|
300
|
+
if (filterListChanged)
|
|
301
|
+
return true;
|
|
302
|
+
if ((record == null ? void 0 : record.rowKey) !== (prevRecord == null ? void 0 : prevRecord.rowKey)) {
|
|
379
303
|
return true;
|
|
380
304
|
}
|
|
381
|
-
|
|
382
|
-
if (record?._rowIndex !== prevRecord?._rowIndex) {
|
|
305
|
+
if ((record == null ? void 0 : record._rowIndex) !== (prevRecord == null ? void 0 : prevRecord._rowIndex)) {
|
|
383
306
|
return true;
|
|
384
307
|
}
|
|
385
|
-
|
|
386
|
-
if (record?._dragIndex !== prevRecord?._dragIndex) {
|
|
308
|
+
if ((record == null ? void 0 : record._dragIndex) !== (prevRecord == null ? void 0 : prevRecord._dragIndex)) {
|
|
387
309
|
return true;
|
|
388
310
|
}
|
|
389
|
-
|
|
390
|
-
if (virtualKey && record?._isEditing !== prevRecord?._isEditing) {
|
|
311
|
+
if (virtualKey && (record == null ? void 0 : record._isEditing) !== (prevRecord == null ? void 0 : prevRecord._isEditing)) {
|
|
391
312
|
return true;
|
|
392
313
|
}
|
|
393
|
-
// 动态 component 函数引用变化说明外部依赖(如异步 list)已更新,必须重渲染
|
|
394
|
-
// 即使行数据未变,旧闭包仍持有过时的外部状态
|
|
395
314
|
if (hasComponent) {
|
|
396
315
|
const prevComponentRef = cellCaches.componentRef.get(columnCacheKey);
|
|
397
316
|
const currentComponentRef = item.component;
|
|
@@ -400,28 +319,26 @@ export const transformColumns = (columns = [], config, caches) => {
|
|
|
400
319
|
return true;
|
|
401
320
|
}
|
|
402
321
|
}
|
|
403
|
-
// 函数型动态属性(component/fieldProps/rules/required/disabled/isEditable/valueType/viewRender)
|
|
404
|
-
// 可能依赖行内其他字段(兄弟字段),需比较整行;
|
|
405
|
-
// 同引用原地修改时 isEqual 恒为 true,无法感知,必须强制重渲染
|
|
406
322
|
if (hasFunctionDependency) {
|
|
407
323
|
if (record === prevRecord) {
|
|
408
324
|
return true;
|
|
409
325
|
}
|
|
410
326
|
return !isRecordShallowEqual(record, prevRecord);
|
|
411
327
|
}
|
|
412
|
-
const
|
|
413
|
-
if (!
|
|
414
|
-
|
|
328
|
+
const key2 = item.dataIndex || item.key;
|
|
329
|
+
if (!key2)
|
|
330
|
+
return true;
|
|
331
|
+
const keyChanged = (record == null ? void 0 : record[key2]) !== (prevRecord == null ? void 0 : prevRecord[key2]);
|
|
415
332
|
return keyChanged;
|
|
416
333
|
};
|
|
417
334
|
}
|
|
418
335
|
});
|
|
419
336
|
if (disabled || isView) {
|
|
420
|
-
|
|
421
|
-
nextColumns = nextColumns.filter(item => item.title !== locale.ProEditTable.operation);
|
|
337
|
+
nextColumns = nextColumns.filter((item) => item.title !== locale.ProEditTable.operation);
|
|
422
338
|
} else {
|
|
423
|
-
const validateKeys = nextColumns.filter(i => i.rules || i.required).map(item => {
|
|
424
|
-
|
|
339
|
+
const validateKeys = nextColumns.filter((i) => i.rules || i.required).map((item) => {
|
|
340
|
+
var _a;
|
|
341
|
+
if ((_a = item.names) == null ? void 0 : _a.length) {
|
|
425
342
|
const nextDataIndex = splitNames(item.names);
|
|
426
343
|
item.dataIndex = nextDataIndex;
|
|
427
344
|
item.key = nextDataIndex;
|
|
@@ -430,11 +347,13 @@ export const transformColumns = (columns = [], config, caches) => {
|
|
|
430
347
|
});
|
|
431
348
|
const actionColumn = getActionColumn({
|
|
432
349
|
...config,
|
|
433
|
-
validateKeys
|
|
350
|
+
validateKeys
|
|
351
|
+
// 需要校验的单元格的formItem的name
|
|
434
352
|
});
|
|
435
353
|
actionColumn && nextColumns.push(actionColumn);
|
|
436
354
|
}
|
|
437
|
-
|
|
438
|
-
// 渲染操作列
|
|
439
355
|
return nextColumns;
|
|
440
|
-
};
|
|
356
|
+
};
|
|
357
|
+
export {
|
|
358
|
+
transformColumns
|
|
359
|
+
};
|