@arco-design/mobile-react 2.36.1 → 2.36.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.
Files changed (76) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.en-US.md +2 -2
  3. package/README.md +2 -2
  4. package/cjs/carousel/index.js +8 -7
  5. package/cjs/form/form-item.d.ts +33 -2
  6. package/cjs/form/form-item.js +142 -121
  7. package/cjs/form/index.js +3 -1
  8. package/cjs/form/linked-container.d.ts +1 -1
  9. package/cjs/form/linked-container.js +4 -0
  10. package/cjs/form/style/css/index.css +4 -1
  11. package/cjs/form/style/index.less +6 -1
  12. package/cjs/form/type.d.ts +24 -1
  13. package/cjs/form/type.js +10 -2
  14. package/cjs/form/useForm.d.ts +2 -17
  15. package/cjs/form/useForm.js +98 -17
  16. package/cjs/form/utils.d.ts +2 -0
  17. package/cjs/form/utils.js +42 -2
  18. package/cjs/input/index.js +1 -1
  19. package/cjs/radio/group.js +1 -1
  20. package/cjs/radio/type.d.ts +2 -2
  21. package/dist/index.js +2993 -362
  22. package/dist/index.min.js +4 -4
  23. package/dist/style.css +4 -1
  24. package/dist/style.min.css +1 -1
  25. package/esm/carousel/index.js +8 -7
  26. package/esm/form/form-item.d.ts +33 -2
  27. package/esm/form/form-item.js +143 -122
  28. package/esm/form/index.js +3 -1
  29. package/esm/form/linked-container.d.ts +1 -1
  30. package/esm/form/linked-container.js +4 -0
  31. package/esm/form/style/css/index.css +4 -1
  32. package/esm/form/style/index.less +6 -1
  33. package/esm/form/type.d.ts +24 -1
  34. package/esm/form/type.js +8 -1
  35. package/esm/form/useForm.d.ts +2 -17
  36. package/esm/form/useForm.js +97 -17
  37. package/esm/form/utils.d.ts +2 -0
  38. package/esm/form/utils.js +31 -1
  39. package/esm/input/index.js +1 -1
  40. package/esm/radio/group.js +1 -1
  41. package/esm/radio/type.d.ts +2 -2
  42. package/esnext/carousel/index.js +7 -5
  43. package/esnext/form/form-item.d.ts +33 -2
  44. package/esnext/form/form-item.js +85 -71
  45. package/esnext/form/index.js +2 -1
  46. package/esnext/form/linked-container.d.ts +1 -1
  47. package/esnext/form/linked-container.js +3 -0
  48. package/esnext/form/style/css/index.css +4 -1
  49. package/esnext/form/style/index.less +6 -1
  50. package/esnext/form/type.d.ts +24 -1
  51. package/esnext/form/type.js +7 -0
  52. package/esnext/form/useForm.d.ts +2 -17
  53. package/esnext/form/useForm.js +72 -13
  54. package/esnext/form/utils.d.ts +2 -0
  55. package/esnext/form/utils.js +26 -0
  56. package/esnext/input/index.js +1 -1
  57. package/esnext/radio/group.js +3 -1
  58. package/esnext/radio/type.d.ts +2 -2
  59. package/package.json +3 -3
  60. package/umd/carousel/index.js +8 -7
  61. package/umd/form/form-item.d.ts +33 -2
  62. package/umd/form/form-item.js +142 -121
  63. package/umd/form/index.js +3 -1
  64. package/umd/form/linked-container.d.ts +1 -1
  65. package/umd/form/linked-container.js +4 -0
  66. package/umd/form/style/css/index.css +4 -1
  67. package/umd/form/style/index.less +6 -1
  68. package/umd/form/type.d.ts +24 -1
  69. package/umd/form/type.js +9 -1
  70. package/umd/form/useForm.d.ts +2 -17
  71. package/umd/form/useForm.js +98 -21
  72. package/umd/form/utils.d.ts +2 -0
  73. package/umd/form/utils.js +40 -5
  74. package/umd/input/index.js +1 -1
  75. package/umd/radio/group.js +1 -1
  76. package/umd/radio/type.d.ts +2 -2
@@ -1,16 +1,16 @@
1
1
  (function (global, factory) {
2
2
  if (typeof define === "function" && define.amd) {
3
- define(["exports", "@babel/runtime/helpers/extends", "react", "es6-promise"], factory);
3
+ define(["exports", "@babel/runtime/helpers/extends", "react", "es6-promise", "./type", "./utils"], factory);
4
4
  } else if (typeof exports !== "undefined") {
5
- factory(exports, require("@babel/runtime/helpers/extends"), require("react"), require("es6-promise"));
5
+ factory(exports, require("@babel/runtime/helpers/extends"), require("react"), require("es6-promise"), require("./type"), require("./utils"));
6
6
  } else {
7
7
  var mod = {
8
8
  exports: {}
9
9
  };
10
- factory(mod.exports, global._extends, global.react, global.es6Promise);
10
+ factory(mod.exports, global._extends, global.react, global.es6Promise, global.type, global.utils);
11
11
  global.useForm = mod.exports;
12
12
  }
13
- })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _extends6, _react, _es6Promise) {
13
+ })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _extends6, _react, _es6Promise, _type, _utils) {
14
14
  "use strict";
15
15
 
16
16
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -49,7 +49,11 @@
49
49
  return {
50
50
  registerField: defaultFunc,
51
51
  setInitialValues: defaultFunc,
52
- setCallbacks: defaultFunc
52
+ setCallbacks: defaultFunc,
53
+ getInitialValue: defaultFunc,
54
+ setInitialValue: defaultFunc,
55
+ innerSetFieldsValue: defaultFunc,
56
+ innerSetFieldValue: defaultFunc
53
57
  };
54
58
  }
55
59
  }; // 在field的静态的状态下设置
@@ -64,42 +68,82 @@
64
68
  this._initialValues = {};
65
69
  this._callbacks = {};
66
70
 
67
- this.setFieldsValue = function (values) {
71
+ this.commonSetFieldsValue = function (values, changeType) {
68
72
  var oldValues = Object.keys(values).reduce(function (acc, key) {
69
73
  var _extends2;
70
74
 
71
75
  return (0, _extends6.default)({}, acc, (_extends2 = {}, _extends2[key] = _this.getFieldValue(key), _extends2));
72
76
  }, {});
73
77
  _this._formData = (0, _extends6.default)({}, _this._formData, values);
78
+
79
+ _this.notifyField(values, oldValues, changeType);
80
+ };
81
+
82
+ this.setFieldsValue = function (values) {
83
+ _this.commonSetFieldsValue(values);
84
+
74
85
  var onValuesChange = _this._callbacks.onValuesChange;
75
- onValuesChange && onValuesChange(values, _this._formData);
86
+ onValuesChange == null ? void 0 : onValuesChange(values, _this._formData);
87
+ return true;
88
+ };
76
89
 
77
- _this.notifyField(values, oldValues);
90
+ this.innerSetFieldsValue = function (values, changeType) {
91
+ _this.commonSetFieldsValue(values, changeType);
78
92
 
93
+ var _this$_callbacks = _this._callbacks,
94
+ onValuesChange = _this$_callbacks.onValuesChange,
95
+ onChange = _this$_callbacks.onChange;
96
+ onValuesChange == null ? void 0 : onValuesChange(values, _this._formData);
97
+ onChange == null ? void 0 : onChange(values, _this._formData);
79
98
  return true;
80
99
  };
81
100
 
82
- this.setFieldValue = function (name, value) {
83
- var _oldValues, _extends3, _onValuesChange, _this$notifyField;
101
+ this.commonSetFieldValue = function (name, value, changeType) {
102
+ var _oldValues, _extends3, _this$notifyField;
84
103
 
85
104
  var oldValues = (_oldValues = {}, _oldValues[name] = _this.getFieldValue(name), _oldValues);
86
105
  _this._formData = (0, _extends6.default)({}, _this._formData, (_extends3 = {}, _extends3[name] = value, _extends3));
106
+
107
+ _this.notifyField((_this$notifyField = {}, _this$notifyField[name] = value, _this$notifyField), oldValues, changeType);
108
+ };
109
+
110
+ this.setFieldValue = function (name, value) {
111
+ var _onValuesChange;
112
+
113
+ _this.commonSetFieldValue(name, value);
114
+
87
115
  var onValuesChange = _this._callbacks.onValuesChange;
88
- onValuesChange && onValuesChange((_onValuesChange = {}, _onValuesChange[name] = value, _onValuesChange), _this._formData);
116
+ onValuesChange && onValuesChange((_onValuesChange = {}, _onValuesChange[name] = value, _onValuesChange), _this.getFieldsValue());
117
+ return true;
118
+ };
119
+
120
+ this.innerSetFieldValue = function (name, value, changeType) {
121
+ var _onValuesChange2, _onChange;
89
122
 
90
- _this.notifyField((_this$notifyField = {}, _this$notifyField[name] = value, _this$notifyField), oldValues);
123
+ _this.commonSetFieldValue(name, value, changeType);
91
124
 
125
+ var _this$_callbacks2 = _this._callbacks,
126
+ onValuesChange = _this$_callbacks2.onValuesChange,
127
+ onChange = _this$_callbacks2.onChange;
128
+ onValuesChange && onValuesChange((_onValuesChange2 = {}, _onValuesChange2[name] = value, _onValuesChange2), _this._formData);
129
+ onChange && onChange((_onChange = {}, _onChange[name] = value, _onChange), _this._formData);
92
130
  return true;
93
131
  };
94
132
 
95
- this.notifyField = function (values, oldValues) {
133
+ this.notifyField = function (values, oldValues, changeType) {
134
+ if (changeType === void 0) {
135
+ changeType = _type.ValueChangeType.Update;
136
+ }
137
+
96
138
  Object.keys(values).map(function (fieldName) {
97
139
  var _this$_fieldsList;
98
140
 
99
141
  var fieldObj = ((_this$_fieldsList = _this._fieldsList) == null ? void 0 : _this$_fieldsList[fieldName]) || null;
100
142
 
101
143
  if (fieldObj) {
102
- fieldObj.onValueChange(values[fieldName], oldValues[fieldName]);
144
+ fieldObj.onValueChange(values[fieldName], oldValues[fieldName], {
145
+ changeType: changeType
146
+ });
103
147
  }
104
148
  });
105
149
  };
@@ -111,13 +155,13 @@
111
155
  });
112
156
  }
113
157
 
114
- return _this._formData;
158
+ return (0, _utils.deepClone)(_this._formData);
115
159
  };
116
160
 
117
161
  this.getFieldValue = function (name) {
118
162
  var _this$_formData;
119
163
 
120
- return (_this$_formData = _this._formData) == null ? void 0 : _this$_formData[name];
164
+ return (0, _utils.deepClone)((_this$_formData = _this._formData) == null ? void 0 : _this$_formData[name]);
121
165
  };
122
166
 
123
167
  this.getFieldError = function (name) {
@@ -180,13 +224,42 @@
180
224
  };
181
225
 
182
226
  this.setInitialValues = function (initVal) {
183
- _this._initialValues = (0, _extends6.default)({}, initVal || {});
227
+ _this._initialValues = (0, _utils.deepClone)(initVal || {});
184
228
 
185
229
  _this.setFieldsValue(initVal);
186
230
  };
187
231
 
232
+ this.setInitialValue = function (fieldName, value) {
233
+ if (!fieldName) {
234
+ return;
235
+ }
236
+
237
+ _this._initialValues[fieldName] = value;
238
+
239
+ _this.setFieldValue(fieldName, value);
240
+ };
241
+
242
+ this.getInitialValue = function (fieldName) {
243
+ return _this._initialValues[fieldName];
244
+ };
245
+
188
246
  this.resetFields = function () {
189
- _this.setFieldsValue(_this._initialValues);
247
+ var oldValues = (0, _extends6.default)({}, _this._formData);
248
+ var initialValues = {};
249
+ Object.keys(_this._formData).forEach(function (fieldName) {
250
+ var _this$_fieldsList5;
251
+
252
+ var fieldObj = ((_this$_fieldsList5 = _this._fieldsList) == null ? void 0 : _this$_fieldsList5[fieldName]) || null;
253
+
254
+ if (fieldObj) {
255
+ initialValues[fieldName] = fieldObj.getInitialValue();
256
+ }
257
+ });
258
+ var onValuesChange = _this._callbacks.onValuesChange;
259
+ onValuesChange && onValuesChange(initialValues, _this._formData);
260
+ _this._formData = initialValues;
261
+
262
+ _this.notifyField(initialValues, oldValues, _type.ValueChangeType.Reset);
190
263
  };
191
264
 
192
265
  this.validateFields = function () {
@@ -218,7 +291,7 @@
218
291
  this.submit = function () {
219
292
  _this.validateFields().then(function (result) {
220
293
  var onSubmit = _this._callbacks.onSubmit;
221
- onSubmit == null ? void 0 : onSubmit(_this._formData, result);
294
+ onSubmit == null ? void 0 : onSubmit(_this.getFieldsValue(), result);
222
295
  }).catch(function (e) {
223
296
  var onSubmitFailed = _this._callbacks.onSubmitFailed;
224
297
 
@@ -226,7 +299,7 @@
226
299
  return;
227
300
  }
228
301
 
229
- onSubmitFailed(_this._formData, e);
302
+ onSubmitFailed(_this.getFieldsValue(), e);
230
303
  });
231
304
  };
232
305
 
@@ -255,7 +328,11 @@
255
328
  return {
256
329
  registerField: _this.registerField,
257
330
  setInitialValues: _this.setInitialValues,
258
- setCallbacks: _this.setCallbacks
331
+ setCallbacks: _this.setCallbacks,
332
+ getInitialValue: _this.getInitialValue,
333
+ setInitialValue: _this.setInitialValue,
334
+ innerSetFieldsValue: _this.innerSetFieldsValue,
335
+ innerSetFieldValue: _this.innerSetFieldValue
259
336
  };
260
337
  };
261
338
  };
@@ -5,3 +5,5 @@ export declare const getErrorAndWarnings: (result: ValidatorError[]) => {
5
5
  errors: string[];
6
6
  errorTypes: string[];
7
7
  };
8
+ export declare const getDefaultValueForInterComponent: (componentType: string) => 0 | never[] | null | undefined;
9
+ export declare function deepClone(value: any): any;
package/umd/form/utils.js CHANGED
@@ -1,20 +1,24 @@
1
1
  (function (global, factory) {
2
2
  if (typeof define === "function" && define.amd) {
3
- define(["exports"], factory);
3
+ define(["exports", "@arco-design/mobile-utils", "lodash/cloneDeepWith", "./type"], factory);
4
4
  } else if (typeof exports !== "undefined") {
5
- factory(exports);
5
+ factory(exports, require("@arco-design/mobile-utils"), require("lodash/cloneDeepWith"), require("./type"));
6
6
  } else {
7
7
  var mod = {
8
8
  exports: {}
9
9
  };
10
- factory(mod.exports);
10
+ factory(mod.exports, global.mobileUtils, global.cloneDeepWith, global.type);
11
11
  global.utils = mod.exports;
12
12
  }
13
- })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports) {
13
+ })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _mobileUtils, _cloneDeepWith, _type) {
14
14
  "use strict";
15
15
 
16
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
17
+
16
18
  _exports.__esModule = true;
17
- _exports.isFieldRequired = _exports.getErrorAndWarnings = void 0;
19
+ _exports.deepClone = deepClone;
20
+ _exports.isFieldRequired = _exports.getErrorAndWarnings = _exports.getDefaultValueForInterComponent = void 0;
21
+ _cloneDeepWith = _interopRequireDefault(_cloneDeepWith);
18
22
 
19
23
  var isFieldRequired = function isFieldRequired(rules) {
20
24
  if (rules === void 0) {
@@ -58,4 +62,35 @@
58
62
  };
59
63
 
60
64
  _exports.getErrorAndWarnings = getErrorAndWarnings;
65
+
66
+ var getDefaultValueForInterComponent = function getDefaultValueForInterComponent(componentType) {
67
+ switch (componentType) {
68
+ case _type.FormInternalComponentType.Input:
69
+ case _type.FormInternalComponentType.Textarea:
70
+ return undefined;
71
+
72
+ case _type.FormInternalComponentType.CheckboxGroup:
73
+ return [];
74
+
75
+ case _type.FormInternalComponentType.RadioGroup:
76
+ return null;
77
+
78
+ case _type.FormInternalComponentType.Slider:
79
+ case _type.FormInternalComponentType.Rate:
80
+ return 0;
81
+
82
+ default:
83
+ return undefined;
84
+ }
85
+ };
86
+
87
+ _exports.getDefaultValueForInterComponent = getDefaultValueForInterComponent;
88
+
89
+ function deepClone(value) {
90
+ return (0, _cloneDeepWith.default)(value, function (val) {
91
+ if (!(0, _mobileUtils.isObject)(val) && !(0, _mobileUtils.isArray)(val)) {
92
+ return val;
93
+ }
94
+ });
95
+ }
61
96
  });
@@ -65,7 +65,7 @@
65
65
  function renderInput(_ref) {
66
66
  var prefixCls = _ref.prefixCls;
67
67
  var prefix = prefixCls + "-input";
68
- return renderWrapper(prefix, type, /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, nativeProps, {
68
+ return renderWrapper(prefix, type + " single-line", /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, nativeProps, {
69
69
  id: id,
70
70
  name: name,
71
71
  maxLength: maxLength,
@@ -97,7 +97,7 @@
97
97
  layout: layout,
98
98
  disabled: disabled,
99
99
  icons: icons,
100
- value: groupValue === void 0 ? [] : [groupValue],
100
+ value: groupValue === void 0 || groupValue === null ? [] : [groupValue],
101
101
  onChange: handleChange
102
102
  }
103
103
  }, children, !children && options && options.map(function (option) {
@@ -8,10 +8,10 @@ export interface RadioGroupProps<T extends ValueType = ValueType, P extends Radi
8
8
  */
9
9
  options?: P[];
10
10
  /**
11
- * 受控模式,选中的选项
11
+ * 受控模式,选中的选项,传null表示取消选中
12
12
  * @en Checked option, controlled mode
13
13
  */
14
- value?: T;
14
+ value?: T | null;
15
15
  /**
16
16
  * 默认选中项
17
17
  * @en Default checked value