@zat-design/sisyphus-react 3.9.4-beta.1 → 3.9.4-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.
@@ -0,0 +1,5 @@
1
+ {
2
+ "recommendations": [
3
+ "kisstkondoros.vscode-codemetrics"
4
+ ]
5
+ }
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { FormInstance } from 'antd';
3
3
  import { NamePath } from 'antd/lib/form/interface';
4
- import { DiffOriginalParams } from '../../../ProForm/utils/diffOriginal';
4
+ import { DiffOriginalParams } from '../../utils/diffOriginal';
5
5
  interface Props {
6
6
  name?: NamePath;
7
7
  names?: NamePath[];
@@ -10,7 +10,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  import React, { useMemo, useRef } from 'react';
11
11
  import classnames from 'classnames';
12
12
  import { get } from 'lodash';
13
- import { diffOriginal } from '../../../ProForm/utils/diffOriginal';
13
+ import { diffOriginal } from '../../utils/diffOriginal';
14
14
  import { useProConfig } from '../../../ProConfigProvider';
15
15
  import { isEmpty } from '../../../utils';
16
16
  var toNamePath = function toNamePath(name) {
@@ -34,7 +34,7 @@ var getOriginalValue = function getOriginalValue(_ref) {
34
34
  if (!originalValues) {
35
35
  return undefined;
36
36
  }
37
- var originalValueRow;
37
+ var originRecord;
38
38
  if (rowKeyPath) {
39
39
  var rowValueNamePath = namePath.slice(0, rowKeyPath.length - 1); // 表单中变动值所在行
40
40
  var rowKeyName = rowKeyPath[rowKeyPath.length - 1]; // rowKey在行内的name
@@ -43,13 +43,13 @@ var getOriginalValue = function getOriginalValue(_ref) {
43
43
  var keyValue = rowValue[rowKeyName]; // 获取表单中rowKey值
44
44
  if (!keyValue) return undefined;
45
45
  var originalValueList = get(originalValues, originalName.slice(0, rowKeyPath.length - 2));
46
- originalValueRow = originalValueList === null || originalValueList === void 0 ? void 0 : originalValueList.find(function (item) {
46
+ originRecord = originalValueList === null || originalValueList === void 0 ? void 0 : originalValueList.find(function (item) {
47
47
  return item[rowKeyPath[rowKeyPath.length - 1]] === keyValue;
48
48
  });
49
49
  var originalValue;
50
50
  if (originalNames === null || originalNames === void 0 ? void 0 : originalNames.length) {
51
51
  var originalNamesValue = originalNames.map(function (originalName) {
52
- return get(originalValueRow, originalName.slice(rowKeyPath.length - 1));
52
+ return get(originRecord, originalName.slice(rowKeyPath.length - 1));
53
53
  });
54
54
  // 有可能出现数组中全是undefined的情况 视为没有值
55
55
  var fillUndefined = originalNamesValue.every(function (valItem) {
@@ -57,11 +57,12 @@ var getOriginalValue = function getOriginalValue(_ref) {
57
57
  });
58
58
  originalValue = fillUndefined ? undefined : originalNamesValue;
59
59
  } else {
60
- originalValue = get(originalValueRow, originalName.slice(rowKeyPath.length - 1));
60
+ originalValue = get(originRecord, originalName.slice(rowKeyPath.length - 1));
61
61
  }
62
62
  return {
63
63
  originalValue: originalValue,
64
- originalValueRow: originalValueRow
64
+ originRecord: originRecord,
65
+ record: rowValue
65
66
  };
66
67
  }
67
68
  // 这个方法是给editTable专用的 暂时不存在不传rowKey的情况
@@ -69,7 +70,7 @@ var getOriginalValue = function getOriginalValue(_ref) {
69
70
  originalValue: (originalNames === null || originalNames === void 0 ? void 0 : originalNames.length) ? originalNames.map(function (originalName) {
70
71
  return get(originalValues, originalName);
71
72
  }) : get(originalValues, originalName),
72
- originalValueRow: originalValueRow
73
+ originRecord: originRecord
73
74
  };
74
75
  };
75
76
  var ListChangedWrapper = function ListChangedWrapper(props) {
@@ -130,8 +131,10 @@ var ListChangedWrapper = function ListChangedWrapper(props) {
130
131
  value: _value,
131
132
  originalValue: _originalValue,
132
133
  form: form,
133
- equalWith: equalWith
134
- // name: isString(namesStr) ? namesStr : originalName || name,
134
+ equalWith: equalWith,
135
+ originRecord: originalDTO === null || originalDTO === void 0 ? void 0 : originalDTO.originRecord,
136
+ record: originalDTO === null || originalDTO === void 0 ? void 0 : originalDTO.record,
137
+ index: index
135
138
  });
136
139
  }, [props[valuePropName], originalValue]);
137
140
  var isAdd = diffType === 'add';
@@ -144,7 +147,7 @@ var ListChangedWrapper = function ListChangedWrapper(props) {
144
147
  var _children = children;
145
148
  if (viewRender) {
146
149
  if (! /*#__PURE__*/React.isValidElement(viewRender)) {
147
- return viewRender(orgValue, (originalDTO === null || originalDTO === void 0 ? void 0 : originalDTO.originalValueRow) || {}, {
150
+ return viewRender(orgValue, (originalDTO === null || originalDTO === void 0 ? void 0 : originalDTO.originRecord) || {}, {
148
151
  form: form,
149
152
  name: name,
150
153
  index: index
@@ -6,7 +6,7 @@ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
6
6
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
7
7
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
8
8
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
9
- var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "onDiff", "className", "trim", "confirm", "dependencies"];
9
+ var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "onDiff", "className", "trim", "confirm", "dependencies"];
10
10
  import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
11
11
  /* eslint-disable prefer-destructuring */
12
12
  /* eslint-disable prefer-const */
@@ -52,7 +52,6 @@ var RenderField = function RenderField(_ref) {
52
52
  required = _column$required === void 0 ? false : _column$required,
53
53
  _column$rules = column.rules,
54
54
  rules = _column$rules === void 0 ? [] : _column$rules,
55
- equalWith = column.equalWith,
56
55
  onDiff = column.onDiff,
57
56
  className = column.className,
58
57
  trim = column.trim,
@@ -568,7 +567,7 @@ var RenderField = function RenderField(_ref) {
568
567
  originalNames: originalNames,
569
568
  originalValues: originalValues,
570
569
  form: form,
571
- equalWith: onDiff || equalWith,
570
+ equalWith: onDiff,
572
571
  type: type,
573
572
  onChange: _onChange,
574
573
  valuePropName: _formItemProps.valuePropName,
@@ -0,0 +1,21 @@
1
+ import { FormInstance } from 'antd';
2
+ export type DiffType = 'same' | 'add' | 'changed';
3
+ export interface DiffOriginalParams {
4
+ originalValue: any;
5
+ value: any;
6
+ form: FormInstance;
7
+ equalWith?: ({ originValue, originRecord, value, record, index }: {
8
+ originValue: any;
9
+ originRecord: any;
10
+ value: any;
11
+ record: any;
12
+ index: number;
13
+ }) => DiffType | undefined;
14
+ /** 原始行数据 */
15
+ originRecord: any;
16
+ /** 当前行数据 */
17
+ record: any;
18
+ /** 当前行索引 */
19
+ index: number;
20
+ }
21
+ export declare const diffOriginal: (params: DiffOriginalParams) => DiffType;
@@ -0,0 +1,62 @@
1
+ import { isEqual, isFunction, isObject } from 'lodash';
2
+ import { validate } from '@zat-design/utils';
3
+ var isEmpty = validate.isEmpty;
4
+ // 过滤对象中undefined字段
5
+ // 防止{a: '1'} {a: '1', b: undefined | null}被认为不相等
6
+ var filterObject = function filterObject(data) {
7
+ if (!isObject(data) || Array.isArray(data) || data === null) return data;
8
+ var resData = {};
9
+ Object.keys(data).forEach(function (key) {
10
+ if (!isEmpty(data[key])) {
11
+ resData[key] = data[key];
12
+ }
13
+ });
14
+ // 空对象视为null 比较时 null undefined {} [] '' 视为相等
15
+ if (!Object.keys(resData).length) return null;
16
+ return resData;
17
+ };
18
+ export var diffOriginal = function diffOriginal(params) {
19
+ var originalValue = params.originalValue,
20
+ value = params.value,
21
+ equalWith = params.equalWith,
22
+ originRecord = params.originRecord,
23
+ record = params.record,
24
+ index = params.index;
25
+ // 支持传入自定义比较事件
26
+ if (isFunction(equalWith)) {
27
+ var diffRes = equalWith({
28
+ originValue: originalValue,
29
+ originRecord: originRecord,
30
+ value: value,
31
+ record: record,
32
+ index: index
33
+ });
34
+ // 如果返回undefined走内置比较逻辑
35
+ if (diffRes !== undefined) {
36
+ if (typeof diffRes === 'boolean') {
37
+ return diffRes ? 'same' : 'changed';
38
+ }
39
+ return diffRes;
40
+ }
41
+ }
42
+ var _value = filterObject(value);
43
+ var _originalValue = filterObject(originalValue);
44
+ // 如果原始值为空 且当前有值的话 认为变更类型是新增
45
+ if (isEmpty(_originalValue) && !isEmpty(_value)) {
46
+ return 'add';
47
+ }
48
+ if (Array.isArray(_originalValue)) {
49
+ var isSame = _originalValue.every(function (valueItem, index) {
50
+ // 如果两个值有一个不是空值, 则进行深比较
51
+ if (!isEmpty(value === null || value === void 0 ? void 0 : value[index]) || !isEmpty(valueItem)) {
52
+ return isEqual(value === null || value === void 0 ? void 0 : value[index], valueItem);
53
+ }
54
+ return true;
55
+ });
56
+ return isSame ? 'same' : 'changed';
57
+ }
58
+ if (!isEmpty(_originalValue) || !isEmpty(_value)) {
59
+ return isEqual(_value, _originalValue) ? 'same' : 'changed';
60
+ }
61
+ return 'same';
62
+ };
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { FormInstance } from 'antd';
3
3
  import { NamePath } from 'antd/lib/form/interface';
4
- import { DiffOriginalParams } from '../../../ProForm/utils/diffOriginal';
4
+ import { DiffOriginalParams } from '../../utils/diffOriginal';
5
5
  interface Props {
6
6
  name?: NamePath;
7
7
  names?: NamePath[];
@@ -14,7 +14,7 @@ var _react = _interopRequireWildcard(require("react"));
14
14
  var _antd = require("antd");
15
15
  var _classnames = _interopRequireDefault(require("classnames"));
16
16
  var _lodash = require("lodash");
17
- var _diffOriginal = require("../../../ProForm/utils/diffOriginal");
17
+ var _diffOriginal = require("../../utils/diffOriginal");
18
18
  var _ProConfigProvider = require("../../../ProConfigProvider");
19
19
  var _utils = require("../../../utils");
20
20
  var _excluded = ["name", "names", "namesStr", "originalName", "originalNames", "originalValues", "form", "equalWith", "rowKeyPath", "children", "type", "normalize", "getValueProps", "valuePropName", "viewRender", "diffConfig", "index"];
@@ -39,7 +39,7 @@ var getOriginalValue = function getOriginalValue(_ref) {
39
39
  if (!originalValues) {
40
40
  return undefined;
41
41
  }
42
- var originalValueRow;
42
+ var originRecord;
43
43
  if (rowKeyPath) {
44
44
  var rowValueNamePath = namePath.slice(0, rowKeyPath.length - 1); // 表单中变动值所在行
45
45
  var rowKeyName = rowKeyPath[rowKeyPath.length - 1]; // rowKey在行内的name
@@ -48,13 +48,13 @@ var getOriginalValue = function getOriginalValue(_ref) {
48
48
  var keyValue = rowValue[rowKeyName]; // 获取表单中rowKey值
49
49
  if (!keyValue) return undefined;
50
50
  var originalValueList = (0, _lodash.get)(originalValues, originalName.slice(0, rowKeyPath.length - 2));
51
- originalValueRow = originalValueList === null || originalValueList === void 0 ? void 0 : originalValueList.find(function (item) {
51
+ originRecord = originalValueList === null || originalValueList === void 0 ? void 0 : originalValueList.find(function (item) {
52
52
  return item[rowKeyPath[rowKeyPath.length - 1]] === keyValue;
53
53
  });
54
54
  var originalValue;
55
55
  if (originalNames === null || originalNames === void 0 ? void 0 : originalNames.length) {
56
56
  var originalNamesValue = originalNames.map(function (originalName) {
57
- return (0, _lodash.get)(originalValueRow, originalName.slice(rowKeyPath.length - 1));
57
+ return (0, _lodash.get)(originRecord, originalName.slice(rowKeyPath.length - 1));
58
58
  });
59
59
  // 有可能出现数组中全是undefined的情况 视为没有值
60
60
  var fillUndefined = originalNamesValue.every(function (valItem) {
@@ -62,11 +62,12 @@ var getOriginalValue = function getOriginalValue(_ref) {
62
62
  });
63
63
  originalValue = fillUndefined ? undefined : originalNamesValue;
64
64
  } else {
65
- originalValue = (0, _lodash.get)(originalValueRow, originalName.slice(rowKeyPath.length - 1));
65
+ originalValue = (0, _lodash.get)(originRecord, originalName.slice(rowKeyPath.length - 1));
66
66
  }
67
67
  return {
68
68
  originalValue: originalValue,
69
- originalValueRow: originalValueRow
69
+ originRecord: originRecord,
70
+ record: rowValue
70
71
  };
71
72
  }
72
73
  // 这个方法是给editTable专用的 暂时不存在不传rowKey的情况
@@ -74,7 +75,7 @@ var getOriginalValue = function getOriginalValue(_ref) {
74
75
  originalValue: (originalNames === null || originalNames === void 0 ? void 0 : originalNames.length) ? originalNames.map(function (originalName) {
75
76
  return (0, _lodash.get)(originalValues, originalName);
76
77
  }) : (0, _lodash.get)(originalValues, originalName),
77
- originalValueRow: originalValueRow
78
+ originRecord: originRecord
78
79
  };
79
80
  };
80
81
  var ListChangedWrapper = function ListChangedWrapper(props) {
@@ -135,8 +136,10 @@ var ListChangedWrapper = function ListChangedWrapper(props) {
135
136
  value: _value,
136
137
  originalValue: _originalValue,
137
138
  form: form,
138
- equalWith: equalWith
139
- // name: isString(namesStr) ? namesStr : originalName || name,
139
+ equalWith: equalWith,
140
+ originRecord: originalDTO === null || originalDTO === void 0 ? void 0 : originalDTO.originRecord,
141
+ record: originalDTO === null || originalDTO === void 0 ? void 0 : originalDTO.record,
142
+ index: index
140
143
  });
141
144
  }, [props[valuePropName], originalValue]);
142
145
  var isAdd = diffType === 'add';
@@ -149,7 +152,7 @@ var ListChangedWrapper = function ListChangedWrapper(props) {
149
152
  var _children = children;
150
153
  if (viewRender) {
151
154
  if (! /*#__PURE__*/_react.default.isValidElement(viewRender)) {
152
- return viewRender(orgValue, (originalDTO === null || originalDTO === void 0 ? void 0 : originalDTO.originalValueRow) || {}, {
155
+ return viewRender(orgValue, (originalDTO === null || originalDTO === void 0 ? void 0 : originalDTO.originRecord) || {}, {
153
156
  form: form,
154
157
  name: name,
155
158
  index: index
@@ -30,7 +30,7 @@ var _utils = require("../../../ProForm/utils");
30
30
  var _ConfirmWrapper = _interopRequireDefault(require("../../../ProForm/components/render/ConfirmWrapper"));
31
31
  var _getDefaultProps = require("../../utils/getDefaultProps");
32
32
  var _ListChangedWrapper = _interopRequireDefault(require("./ListChangedWrapper"));
33
- var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "onDiff", "className", "trim", "confirm", "dependencies"];
33
+ var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "onDiff", "className", "trim", "confirm", "dependencies"];
34
34
  /* eslint-disable prefer-destructuring */
35
35
  /* eslint-disable prefer-const */
36
36
  var RenderField = function RenderField(_ref) {
@@ -59,7 +59,6 @@ var RenderField = function RenderField(_ref) {
59
59
  required = _column$required === void 0 ? false : _column$required,
60
60
  _column$rules = column.rules,
61
61
  rules = _column$rules === void 0 ? [] : _column$rules,
62
- equalWith = column.equalWith,
63
62
  onDiff = column.onDiff,
64
63
  className = column.className,
65
64
  trim = column.trim,
@@ -575,7 +574,7 @@ var RenderField = function RenderField(_ref) {
575
574
  originalNames: originalNames,
576
575
  originalValues: originalValues,
577
576
  form: form,
578
- equalWith: onDiff || equalWith,
577
+ equalWith: onDiff,
579
578
  type: type,
580
579
  onChange: _onChange,
581
580
  valuePropName: _formItemProps.valuePropName,
@@ -0,0 +1,21 @@
1
+ import { FormInstance } from 'antd';
2
+ export type DiffType = 'same' | 'add' | 'changed';
3
+ export interface DiffOriginalParams {
4
+ originalValue: any;
5
+ value: any;
6
+ form: FormInstance;
7
+ equalWith?: ({ originValue, originRecord, value, record, index }: {
8
+ originValue: any;
9
+ originRecord: any;
10
+ value: any;
11
+ record: any;
12
+ index: number;
13
+ }) => DiffType | undefined;
14
+ /** 原始行数据 */
15
+ originRecord: any;
16
+ /** 当前行数据 */
17
+ record: any;
18
+ /** 当前行索引 */
19
+ index: number;
20
+ }
21
+ export declare const diffOriginal: (params: DiffOriginalParams) => DiffType;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.diffOriginal = void 0;
7
+ var _lodash = require("lodash");
8
+ var _utils = require("@zat-design/utils");
9
+ var isEmpty = _utils.validate.isEmpty;
10
+ // 过滤对象中undefined字段
11
+ // 防止{a: '1'} {a: '1', b: undefined | null}被认为不相等
12
+ var filterObject = function filterObject(data) {
13
+ if (!(0, _lodash.isObject)(data) || Array.isArray(data) || data === null) return data;
14
+ var resData = {};
15
+ Object.keys(data).forEach(function (key) {
16
+ if (!isEmpty(data[key])) {
17
+ resData[key] = data[key];
18
+ }
19
+ });
20
+ // 空对象视为null 比较时 null undefined {} [] '' 视为相等
21
+ if (!Object.keys(resData).length) return null;
22
+ return resData;
23
+ };
24
+ var diffOriginal = exports.diffOriginal = function diffOriginal(params) {
25
+ var originalValue = params.originalValue,
26
+ value = params.value,
27
+ equalWith = params.equalWith,
28
+ originRecord = params.originRecord,
29
+ record = params.record,
30
+ index = params.index;
31
+ // 支持传入自定义比较事件
32
+ if ((0, _lodash.isFunction)(equalWith)) {
33
+ var diffRes = equalWith({
34
+ originValue: originalValue,
35
+ originRecord: originRecord,
36
+ value: value,
37
+ record: record,
38
+ index: index
39
+ });
40
+ // 如果返回undefined走内置比较逻辑
41
+ if (diffRes !== undefined) {
42
+ if (typeof diffRes === 'boolean') {
43
+ return diffRes ? 'same' : 'changed';
44
+ }
45
+ return diffRes;
46
+ }
47
+ }
48
+ var _value = filterObject(value);
49
+ var _originalValue = filterObject(originalValue);
50
+ // 如果原始值为空 且当前有值的话 认为变更类型是新增
51
+ if (isEmpty(_originalValue) && !isEmpty(_value)) {
52
+ return 'add';
53
+ }
54
+ if (Array.isArray(_originalValue)) {
55
+ var isSame = _originalValue.every(function (valueItem, index) {
56
+ // 如果两个值有一个不是空值, 则进行深比较
57
+ if (!isEmpty(value === null || value === void 0 ? void 0 : value[index]) || !isEmpty(valueItem)) {
58
+ return (0, _lodash.isEqual)(value === null || value === void 0 ? void 0 : value[index], valueItem);
59
+ }
60
+ return true;
61
+ });
62
+ return isSame ? 'same' : 'changed';
63
+ }
64
+ if (!isEmpty(_originalValue) || !isEmpty(_value)) {
65
+ return (0, _lodash.isEqual)(_value, _originalValue) ? 'same' : 'changed';
66
+ }
67
+ return 'same';
68
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zat-design/sisyphus-react",
3
- "version": "3.9.4-beta.1",
3
+ "version": "3.9.4-beta.2",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",