@next-shared/form 0.10.0 → 0.11.0

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.
@@ -9,7 +9,7 @@ var _classPrivateMethodInitSpec2 = _interopRequireDefault(require("@babel/runtim
9
9
  var _classPrivateFieldInitSpec2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldInitSpec"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _assertClassBrand2 = _interopRequireDefault(require("@babel/runtime/helpers/assertClassBrand"));
12
- var _classPrivateFieldGet6 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldGet2"));
12
+ var _classPrivateFieldGet4 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldGet2"));
13
13
  var _classPrivateFieldSet2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldSet2"));
14
14
  var _lodash = require("lodash");
15
15
  var _PubSub = require("./PubSub.js");
@@ -47,16 +47,16 @@ class FormStore extends _PubSub.PubSub {
47
47
  (0, _classPrivateFieldSet2.default)(_options, this, options);
48
48
  }
49
49
  setField(name, detail) {
50
- (0, _classPrivateFieldGet6.default)(_fields, this).set(name, new Field(name, detail));
50
+ (0, _classPrivateFieldGet4.default)(_fields, this).set(name, new Field(name, detail));
51
+ this.setFieldsValueByInitData(name);
51
52
  }
52
53
  getAllValues() {
53
54
  const allFields = (0, _assertClassBrand2.default)(_FormStore_brand, this, _getAllFields).call(this);
54
- const formData = Object.fromEntries(Object.entries((0, _classPrivateFieldGet6.default)(_formData, this)).map(([k, v]) => {
55
- if (allFields.includes(k)) {
56
- return [k, v];
57
- }
58
- return [];
59
- }).filter(item => item.length));
55
+ const formData = {};
56
+ allFields.forEach(fieldName => {
57
+ const value = (0, _lodash.get)((0, _classPrivateFieldGet4.default)(_formData, this), fieldName);
58
+ (0, _lodash.set)(formData, fieldName, value);
59
+ });
60
60
  return formData;
61
61
  }
62
62
  setInitValue(values, isEmitValuseChange = true) {
@@ -64,34 +64,41 @@ class FormStore extends _PubSub.PubSub {
64
64
  this.setFieldsValue(values, isEmitValuseChange);
65
65
  }
66
66
  setFieldsValueByInitData(name) {
67
- var _classPrivateFieldGet2;
68
- const value = (_classPrivateFieldGet2 = (0, _classPrivateFieldGet6.default)(_initData, this)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2[name];
69
- if (!(0, _lodash.isNil)(value)) {
70
- (0, _classPrivateFieldGet6.default)(_formData, this)[name] = value;
67
+ var _field$detail;
68
+ const field = (0, _classPrivateFieldGet4.default)(_fields, this).get(name);
69
+ if (field && !((_field$detail = field.detail) !== null && _field$detail !== void 0 && _field$detail.notRender) && (0, _lodash.has)((0, _classPrivateFieldGet4.default)(_initData, this), name)) {
70
+ const value = (0, _lodash.get)((0, _classPrivateFieldGet4.default)(_initData, this), name);
71
+ (0, _lodash.set)((0, _classPrivateFieldGet4.default)(_formData, this), name, value);
71
72
  this.publish(`${name}.init.value`, value);
72
73
  }
73
74
  }
74
75
  setFieldsValue(values, isEmitValuseChange = true) {
75
- const newFormData = {
76
- ...(0, _classPrivateFieldGet6.default)(_formData, this)
77
- };
78
- Object.entries(values).forEach(([k, v]) => {
79
- newFormData[k] = v;
80
- (0, _classPrivateFieldGet6.default)(_initData, this) && ((0, _classPrivateFieldGet6.default)(_initData, this)[k] = v);
81
- this.publish(`${k}.init.value`, v);
76
+ const newFormData = (0, _lodash.cloneDeep)((0, _classPrivateFieldGet4.default)(_formData, this));
77
+ const changedValues = {};
78
+ (0, _classPrivateFieldGet4.default)(_fields, this).forEach((field, key) => {
79
+ var _field$detail2;
80
+ if (!((_field$detail2 = field.detail) !== null && _field$detail2 !== void 0 && _field$detail2.notRender) && (0, _lodash.has)(values, key)) {
81
+ const v = (0, _lodash.get)(values, key);
82
+ (0, _lodash.set)(newFormData, key, v);
83
+ if ((0, _classPrivateFieldGet4.default)(_initData, this)) {
84
+ (0, _lodash.set)((0, _classPrivateFieldGet4.default)(_initData, this), key, v);
85
+ }
86
+ this.publish(`${key}.init.value`, v);
87
+ (0, _lodash.set)(changedValues, key, v);
88
+ }
82
89
  });
83
90
  (0, _classPrivateFieldSet2.default)(_formData, this, newFormData);
84
91
  if (isEmitValuseChange) {
85
- var _classPrivateFieldGet3, _classPrivateFieldGet4;
86
- (_classPrivateFieldGet3 = (0, _classPrivateFieldGet6.default)(_options, this)) === null || _classPrivateFieldGet3 === void 0 || (_classPrivateFieldGet4 = _classPrivateFieldGet3.onValuesChanged) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.call(_classPrivateFieldGet3, {
87
- changedValues: values,
92
+ var _classPrivateFieldGet2, _classPrivateFieldGet3;
93
+ (_classPrivateFieldGet2 = (0, _classPrivateFieldGet4.default)(_options, this)) === null || _classPrivateFieldGet2 === void 0 || (_classPrivateFieldGet3 = _classPrivateFieldGet2.onValuesChanged) === null || _classPrivateFieldGet3 === void 0 || _classPrivateFieldGet3.call(_classPrivateFieldGet2, {
94
+ changedValues,
88
95
  allValues: this.getAllValues()
89
96
  });
90
97
  }
91
98
  }
92
99
  resetFields(name) {
93
100
  if (name) {
94
- delete (0, _classPrivateFieldGet6.default)(_formData, this)[name];
101
+ (0, _lodash.unset)((0, _classPrivateFieldGet4.default)(_formData, this), name);
95
102
  this.publish(`${name}.reset.fields`, null);
96
103
  } else {
97
104
  (0, _classPrivateFieldSet2.default)(_formData, this, {});
@@ -101,18 +108,24 @@ class FormStore extends _PubSub.PubSub {
101
108
  }
102
109
  getFieldsValue(name) {
103
110
  if (name) {
104
- return (0, _classPrivateFieldGet6.default)(_formData, this)[name];
111
+ var _field$detail3;
112
+ const field = (0, _classPrivateFieldGet4.default)(_fields, this).get(name);
113
+ if (field && !((_field$detail3 = field.detail) !== null && _field$detail3 !== void 0 && _field$detail3.notRender)) {
114
+ return (0, _lodash.get)((0, _classPrivateFieldGet4.default)(_formData, this), name);
115
+ }
116
+ return undefined;
105
117
  }
106
118
  return this.getAllValues();
107
119
  }
108
120
  removeField(name) {
109
- (0, _classPrivateFieldGet6.default)(_fields, this).delete(name);
121
+ (0, _lodash.unset)((0, _classPrivateFieldGet4.default)(_formData, this), name);
122
+ (0, _classPrivateFieldGet4.default)(_fields, this).delete(name);
110
123
  }
111
124
  validateFields(callback) {
112
125
  const allFields = (0, _assertClassBrand2.default)(_FormStore_brand, this, _getAllFields).call(this);
113
126
  const results = [];
114
127
  allFields.forEach(name => {
115
- const field = (0, _classPrivateFieldGet6.default)(_fields, this).get(name);
128
+ const field = (0, _classPrivateFieldGet4.default)(_fields, this).get(name);
116
129
  if (field) {
117
130
  results.push(this.validateField(field.detail));
118
131
  }
@@ -127,15 +140,24 @@ class FormStore extends _PubSub.PubSub {
127
140
  }
128
141
  }
129
142
  validateField(field) {
130
- var _classPrivateFieldGet5;
131
- const fieldDetail = typeof field === "string" ? (_classPrivateFieldGet5 = (0, _classPrivateFieldGet6.default)(_fields, this).get(field)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.detail : field;
132
- if (!fieldDetail) return;
143
+ var _fieldObj$detail;
144
+ let fieldDetail;
145
+ let fieldObj;
146
+ if (typeof field === "string") {
147
+ var _fieldObj;
148
+ fieldObj = (0, _classPrivateFieldGet4.default)(_fields, this).get(field);
149
+ fieldDetail = (_fieldObj = fieldObj) === null || _fieldObj === void 0 ? void 0 : _fieldObj.detail;
150
+ } else {
151
+ fieldDetail = field;
152
+ fieldObj = (0, _classPrivateFieldGet4.default)(_fields, this).get(fieldDetail.name);
153
+ }
154
+ if (!fieldDetail || fieldObj && (_fieldObj$detail = fieldObj.detail) !== null && _fieldObj$detail !== void 0 && _fieldObj$detail.notRender) return;
133
155
  const {
134
156
  name,
135
157
  label,
136
158
  validate
137
159
  } = fieldDetail;
138
- const validateValue = (0, _classPrivateFieldGet6.default)(_formData, this)[name];
160
+ const validateValue = (0, _lodash.get)((0, _classPrivateFieldGet4.default)(_formData, this), name);
139
161
  const messageBody = (message, type = "error") => {
140
162
  return {
141
163
  type,
@@ -160,31 +182,33 @@ class FormStore extends _PubSub.PubSub {
160
182
  }
161
183
  return messageBody("", "normal");
162
184
  }
163
- const stringValue = String(value);
164
- if (pattern) {
185
+ if (typeof value === "string" && pattern) {
165
186
  const reg = new RegExp(pattern);
166
- if (!reg.test(stringValue)) {
187
+ if (!reg.test(value)) {
167
188
  return messageBody((message === null || message === void 0 ? void 0 : message.pattern) || `${label}没有匹配正则 ${pattern}`);
168
189
  }
169
190
  }
170
191
  const checkMin = typeof min === "number";
171
192
  const checkMax = typeof max === "number";
172
- if (checkMin || checkMax) {
173
- if (type === "number") {
193
+ if (type === "number") {
194
+ if (typeof value === "number" || typeof value === "string") {
174
195
  const numberValue = typeof value === "number" ? value : parseFloat(value);
196
+ if (isNaN(numberValue)) {
197
+ return messageBody(`${label}必须是数字`);
198
+ }
175
199
  if (checkMin && numberValue < min) {
176
200
  return messageBody((message === null || message === void 0 ? void 0 : message.min) || `${label}不能小于 ${min}`);
177
201
  }
178
202
  if (checkMax && numberValue > max) {
179
203
  return messageBody((message === null || message === void 0 ? void 0 : message.max) || `${label}不能大于 ${max}`);
180
204
  }
181
- } else {
182
- if (checkMin && stringValue.length < min) {
183
- return messageBody((message === null || message === void 0 ? void 0 : message.min) || `${label}至少包含 ${min} 个字符`);
184
- }
185
- if (checkMax && stringValue.length > max) {
186
- return messageBody((message === null || message === void 0 ? void 0 : message.max) || `${label}不能超过 ${max} 个字符`);
187
- }
205
+ }
206
+ } else if (typeof value === "string") {
207
+ if (checkMin && value.length < min) {
208
+ return messageBody((message === null || message === void 0 ? void 0 : message.min) || `${label}至少包含 ${min} 个字符`);
209
+ }
210
+ if (checkMax && value.length > max) {
211
+ return messageBody((message === null || message === void 0 ? void 0 : message.max) || `${label}不能超过 ${max} 个字符`);
188
212
  }
189
213
  }
190
214
  if (validator) {
@@ -226,7 +250,7 @@ class FormStore extends _PubSub.PubSub {
226
250
  this.publish(`${name}.scroll.to`, null);
227
251
  }
228
252
  onWatch(name, event, callback, options) {
229
- const field = (0, _classPrivateFieldGet6.default)(_fields, this).get(name);
253
+ const field = (0, _classPrivateFieldGet4.default)(_fields, this).get(name);
230
254
  if (field) {
231
255
  const value = this.getValueFromEvent(event);
232
256
  // default first params is value
@@ -241,7 +265,7 @@ class FormStore extends _PubSub.PubSub {
241
265
  }
242
266
  }
243
267
  onChange(name, value, callback, options) {
244
- const field = (0, _classPrivateFieldGet6.default)(_fields, this).get(name);
268
+ const field = (0, _classPrivateFieldGet4.default)(_fields, this).get(name);
245
269
  if (field) {
246
270
  this.setFieldsValue({
247
271
  [name]: value
@@ -255,9 +279,9 @@ class FormStore extends _PubSub.PubSub {
255
279
  }
256
280
  exports.FormStore = FormStore;
257
281
  function _getAllFields() {
258
- return [...(0, _classPrivateFieldGet6.default)(_fields, this).keys()].filter(key => {
282
+ return [...(0, _classPrivateFieldGet4.default)(_fields, this).keys()].filter(key => {
259
283
  var _detail;
260
- return !((_detail = (0, _classPrivateFieldGet6.default)(_fields, this).get(key).detail) !== null && _detail !== void 0 && _detail.notRender);
284
+ return !((_detail = (0, _classPrivateFieldGet4.default)(_fields, this).get(key).detail) !== null && _detail !== void 0 && _detail.notRender);
261
285
  });
262
286
  }
263
287
  (0, _defineProperty2.default)(FormStore, "uid", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"FormStore.js","names":["_lodash","require","_PubSub","uid","Field","field","detail","constructor","name","_fields","WeakMap","_options","_formData","_initData","_FormStore_brand","WeakSet","FormStore","PubSub","getInstance","options","instance","get","set","_classPrivateMethodInitSpec2","default","_classPrivateFieldInitSpec2","Map","_classPrivateFieldSet2","setField","_classPrivateFieldGet6","getAllValues","allFields","_assertClassBrand2","_getAllFields","call","formData","Object","fromEntries","entries","map","k","v","includes","filter","item","length","setInitValue","values","isEmitValuseChange","setFieldsValue","setFieldsValueByInitData","_classPrivateFieldGet2","value","isNil","publish","newFormData","forEach","_classPrivateFieldGet3","_classPrivateFieldGet4","onValuesChanged","changedValues","allValues","resetFields","resetValidateState","getFieldsValue","removeField","delete","validateFields","callback","results","push","validateField","some","result","type","_classPrivateFieldGet5","fieldDetail","label","validate","validateValue","messageBody","message","getName","valid","required","pattern","min","max","validator","isEmpty","undefined","stringValue","String","reg","RegExp","test","checkMin","checkMax","numberValue","parseFloat","parsedValidator","Array","isArray","getValueFromEvent","e","target","checked","scrollToField","onWatch","event","realValue","needValidate","apply","onChange","exports","keys","key","_detail","notRender","_defineProperty2"],"sources":["../../src/FormStore.ts"],"sourcesContent":["import { isEmpty, isNil } from \"lodash\";\nimport { PubSub } from \"./PubSub.js\";\n\ninterface FormStoreOptions {\n onValuesChanged?: (data: any) => void;\n}\n\nexport interface FieldDetail {\n name: string;\n label?: string;\n notRender?: boolean;\n originProps?: Record<string, any>;\n validate: Validate;\n [k: string]: any;\n}\n\nexport interface MessageBody {\n message: string;\n type: string;\n}\n\nexport interface WatchOptions {\n needValidate?: boolean;\n}\n\ninterface Validate {\n required?: boolean;\n pattern?: string;\n type?: string;\n min?: number;\n max?: number;\n message?: {\n required?: string;\n pattern?: string;\n min?: string;\n max?: string;\n };\n validator?: (value: any) => MessageBody | string;\n}\n\nlet uid = 0;\n\nclass Field {\n field: string;\n detail: FieldDetail;\n constructor(name: string, detail: FieldDetail) {\n this.field = name;\n this.detail = detail;\n }\n}\n\nexport class FormStore extends PubSub {\n static uid: number;\n static instance: Map<number, FormStore> = new Map();\n static getInstance(options?: FormStoreOptions): FormStore {\n if (!this.instance.get(uid)) {\n this.uid = uid;\n this.instance.set(this.uid, new FormStore(options));\n uid += 1;\n }\n return this.instance.get(this.uid) as FormStore;\n }\n\n #fields: Map<string, Field> = new Map();\n #options: FormStoreOptions | undefined;\n #formData!: Record<string, unknown>;\n #initData: Record<string, unknown> | undefined;\n\n constructor(options?: FormStoreOptions) {\n super();\n this.#formData = {};\n this.#options = options;\n }\n\n setField(name: string, detail: FieldDetail) {\n this.#fields.set(name, new Field(name, detail));\n }\n #getAllFields() {\n return [...this.#fields.keys()].filter((key) => {\n return !this.#fields.get(key)!.detail?.notRender;\n });\n }\n\n getAllValues() {\n const allFields = this.#getAllFields();\n const formData = Object.fromEntries(\n Object.entries(this.#formData)\n .map(([k, v]) => {\n if (allFields.includes(k)) {\n return [k, v];\n }\n return [];\n })\n .filter((item) => item.length)\n );\n return formData;\n }\n\n setInitValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n this.#initData = values;\n this.setFieldsValue(values, isEmitValuseChange);\n }\n\n setFieldsValueByInitData(name: string) {\n const value = this.#initData?.[name];\n if (!isNil(value)) {\n this.#formData[name] = value;\n this.publish(`${name}.init.value`, value);\n }\n }\n\n setFieldsValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n const newFormData: Record<string, unknown> = {\n ...this.#formData,\n };\n Object.entries(values).forEach(([k, v]) => {\n newFormData[k] = v;\n this.#initData && (this.#initData[k] = v);\n this.publish(`${k}.init.value`, v);\n });\n this.#formData = newFormData;\n\n if (isEmitValuseChange) {\n this.#options?.onValuesChanged?.({\n changedValues: values,\n allValues: this.getAllValues(),\n });\n }\n }\n\n resetFields(name?: string) {\n if (name) {\n delete this.#formData[name];\n this.publish(`${name}.reset.fields`, null);\n } else {\n this.#formData = {};\n this.publish(\"reset.fields\", null);\n }\n this.resetValidateState();\n }\n\n getFieldsValue(name?: string) {\n if (name) {\n return this.#formData[name];\n }\n return this.getAllValues();\n }\n\n removeField(name: string) {\n this.#fields.delete(name);\n }\n\n validateFields(\n callback: (err: boolean, value: any) => void\n ): boolean | Record<string, unknown> {\n const allFields = this.#getAllFields();\n const results: Array<MessageBody | undefined> = [];\n allFields.forEach((name) => {\n const field = this.#fields.get(name);\n if (field) {\n results.push(this.validateField(field.detail));\n }\n });\n\n if (results.some((result) => result?.type !== \"normal\")) {\n callback(\n true,\n results.filter((result) => result?.type !== \"normal\")\n );\n return false;\n } else {\n const formData = this.getAllValues();\n callback(false, formData);\n return formData;\n }\n }\n\n validateField(field: string | FieldDetail) {\n const fieldDetail =\n typeof field === \"string\" ? this.#fields.get(field)?.detail : field;\n if (!fieldDetail) return;\n const { name, label, validate } = fieldDetail;\n const validateValue = this.#formData[name];\n\n const messageBody = (message: string, type = \"error\") => {\n return {\n type,\n message,\n };\n };\n\n const getName = () => label ?? name;\n\n const valid = (\n validate: Validate,\n value: string | number | null | undefined\n ): MessageBody => {\n const { required, pattern, message, type, min, max, validator } =\n validate;\n const label = getName();\n\n if (\n typeof value === \"object\"\n ? isEmpty(value)\n : value === undefined || value === \"\"\n ) {\n if (required) {\n return messageBody(message?.required || `${label}为必填项`);\n }\n return messageBody(\"\", \"normal\");\n }\n\n const stringValue = String(value);\n\n if (pattern) {\n const reg = new RegExp(pattern);\n if (!reg.test(stringValue)) {\n return messageBody(\n message?.pattern || `${label}没有匹配正则 ${pattern}`\n );\n }\n }\n\n const checkMin = typeof min === \"number\";\n const checkMax = typeof max === \"number\";\n if (checkMin || checkMax) {\n if (type === \"number\") {\n const numberValue =\n typeof value === \"number\" ? value : parseFloat(value as string);\n if (checkMin && numberValue < min) {\n return messageBody(message?.min || `${label}不能小于 ${min}`);\n }\n if (checkMax && numberValue > max) {\n return messageBody(message?.max || `${label}不能大于 ${max}`);\n }\n } else {\n if (checkMin && stringValue.length < min) {\n return messageBody(\n message?.min || `${label}至少包含 ${min} 个字符`\n );\n }\n if (checkMax && stringValue.length > max) {\n return messageBody(\n message?.max || `${label}不能超过 ${max} 个字符`\n );\n }\n }\n }\n\n if (validator) {\n let result = \"\";\n let parsedValidator = [];\n if (Array.isArray(validator)) {\n parsedValidator = validator;\n } else {\n parsedValidator.push(validator);\n }\n\n for (const v of parsedValidator) {\n result = v(value);\n\n if (result) {\n break;\n }\n }\n return typeof result === \"string\"\n ? messageBody(result, result ? \"error\" : \"normal\")\n : (result as MessageBody);\n }\n\n return messageBody(\"\", \"normal\");\n };\n\n const result = { name, ...valid(validate, validateValue as string) };\n this.publish(`${name}.validate`, result);\n return result;\n }\n\n getValueFromEvent(e: React.ChangeEvent): any {\n if (!e || !e.target) {\n return e;\n }\n const target = e.target as HTMLInputElement;\n return target.type === \"checkbox\" ? target.checked : target.value;\n }\n\n resetValidateState() {\n this.publish(`reset.validate`, null);\n }\n\n scrollToField(name: string) {\n this.publish(`${name}.scroll.to`, null);\n }\n\n onWatch(\n name: string,\n event: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n const value = this.getValueFromEvent(event);\n // default first params is value\n const realValue = Array.isArray(value) ? value[0] : value;\n\n this.setFieldsValue({\n [name]: realValue,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.apply(this, value);\n }\n }\n\n onChange(\n name: string,\n value: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n this.setFieldsValue({\n [name]: value,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.(value);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormStore.js","names":["_lodash","require","_PubSub","uid","Field","field","detail","constructor","name","_fields","WeakMap","_options","_formData","_initData","_FormStore_brand","WeakSet","FormStore","PubSub","getInstance","options","instance","get","set","_classPrivateMethodInitSpec2","default","_classPrivateFieldInitSpec2","Map","_classPrivateFieldSet2","setField","_classPrivateFieldGet4","setFieldsValueByInitData","getAllValues","allFields","_assertClassBrand2","_getAllFields","call","formData","forEach","fieldName","value","setInitValue","values","isEmitValuseChange","setFieldsValue","_field$detail","notRender","has","publish","newFormData","cloneDeep","changedValues","key","_field$detail2","v","_classPrivateFieldGet2","_classPrivateFieldGet3","onValuesChanged","allValues","resetFields","unset","resetValidateState","getFieldsValue","_field$detail3","undefined","removeField","delete","validateFields","callback","results","push","validateField","some","result","type","filter","_fieldObj$detail","fieldDetail","fieldObj","_fieldObj","label","validate","validateValue","messageBody","message","getName","valid","required","pattern","min","max","validator","isEmpty","reg","RegExp","test","checkMin","checkMax","numberValue","parseFloat","isNaN","length","parsedValidator","Array","isArray","getValueFromEvent","e","target","checked","scrollToField","onWatch","event","realValue","needValidate","apply","onChange","exports","keys","_detail","_defineProperty2"],"sources":["../../src/FormStore.ts"],"sourcesContent":["import { isEmpty, get, has, set, unset, cloneDeep } from \"lodash\";\nimport { PubSub } from \"./PubSub.js\";\n\ninterface FormStoreOptions {\n onValuesChanged?: (data: any) => void;\n}\n\nexport interface FieldDetail {\n name: string;\n label?: string;\n notRender?: boolean;\n originProps?: Record<string, any>;\n validate: Validate;\n [k: string]: any;\n}\n\nexport interface MessageBody {\n message: string;\n type: string;\n}\n\nexport interface WatchOptions {\n needValidate?: boolean;\n}\n\ninterface Validate {\n required?: boolean;\n pattern?: string;\n type?: string;\n min?: number;\n max?: number;\n message?: {\n required?: string;\n pattern?: string;\n min?: string;\n max?: string;\n };\n validator?: (value: any) => MessageBody | string;\n}\n\nlet uid = 0;\n\nclass Field {\n field: string;\n detail: FieldDetail;\n constructor(name: string, detail: FieldDetail) {\n this.field = name;\n this.detail = detail;\n }\n}\n\nexport class FormStore extends PubSub {\n static uid: number;\n static instance: Map<number, FormStore> = new Map();\n static getInstance(options?: FormStoreOptions): FormStore {\n if (!this.instance.get(uid)) {\n this.uid = uid;\n this.instance.set(this.uid, new FormStore(options));\n uid += 1;\n }\n return this.instance.get(this.uid) as FormStore;\n }\n\n #fields: Map<string, Field> = new Map();\n #options: FormStoreOptions | undefined;\n #formData!: Record<string, unknown>;\n #initData: Record<string, unknown> | undefined;\n\n constructor(options?: FormStoreOptions) {\n super();\n this.#formData = {};\n this.#options = options;\n }\n\n setField(name: string, detail: FieldDetail) {\n this.#fields.set(name, new Field(name, detail));\n this.setFieldsValueByInitData(name);\n }\n #getAllFields() {\n return [...this.#fields.keys()].filter((key) => {\n return !this.#fields.get(key)!.detail?.notRender;\n });\n }\n\n getAllValues() {\n const allFields = this.#getAllFields();\n const formData: Record<string, unknown> = {};\n\n allFields.forEach((fieldName) => {\n const value = get(this.#formData, fieldName);\n set(formData, fieldName, value);\n });\n\n return formData;\n }\n\n setInitValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n this.#initData = values;\n this.setFieldsValue(values, isEmitValuseChange);\n }\n\n setFieldsValueByInitData(name: string) {\n const field = this.#fields.get(name);\n if (field && !field.detail?.notRender && has(this.#initData, name)) {\n const value = get(this.#initData, name);\n set(this.#formData, name, value);\n this.publish(`${name}.init.value`, value);\n }\n }\n\n setFieldsValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n const newFormData = cloneDeep(this.#formData);\n const changedValues: Record<string, unknown> = {};\n\n this.#fields.forEach((field, key) => {\n if (!field.detail?.notRender && has(values, key)) {\n const v = get(values, key);\n set(newFormData, key, v);\n if (this.#initData) {\n set(this.#initData, key, v);\n }\n this.publish(`${key}.init.value`, v);\n set(changedValues, key, v);\n }\n });\n\n this.#formData = newFormData;\n\n if (isEmitValuseChange) {\n this.#options?.onValuesChanged?.({\n changedValues,\n allValues: this.getAllValues(),\n });\n }\n }\n\n resetFields(name?: string) {\n if (name) {\n unset(this.#formData, name);\n this.publish(`${name}.reset.fields`, null);\n } else {\n this.#formData = {};\n this.publish(\"reset.fields\", null);\n }\n this.resetValidateState();\n }\n\n getFieldsValue(name?: string) {\n if (name) {\n const field = this.#fields.get(name);\n if (field && !field.detail?.notRender) {\n return get(this.#formData, name);\n }\n return undefined;\n }\n return this.getAllValues();\n }\n\n removeField(name: string) {\n unset(this.#formData, name);\n this.#fields.delete(name);\n }\n\n validateFields(\n callback: (err: boolean, value: any) => void\n ): boolean | Record<string, unknown> {\n const allFields = this.#getAllFields();\n const results: Array<MessageBody | undefined> = [];\n allFields.forEach((name) => {\n const field = this.#fields.get(name);\n if (field) {\n results.push(this.validateField(field.detail));\n }\n });\n\n if (results.some((result) => result?.type !== \"normal\")) {\n callback(\n true,\n results.filter((result) => result?.type !== \"normal\")\n );\n return false;\n } else {\n const formData = this.getAllValues();\n callback(false, formData);\n return formData;\n }\n }\n\n validateField(field: string | FieldDetail) {\n let fieldDetail;\n let fieldObj;\n\n if (typeof field === \"string\") {\n fieldObj = this.#fields.get(field);\n fieldDetail = fieldObj?.detail;\n } else {\n fieldDetail = field;\n fieldObj = this.#fields.get(fieldDetail.name);\n }\n\n if (!fieldDetail || (fieldObj && fieldObj.detail?.notRender)) return;\n\n const { name, label, validate } = fieldDetail;\n const validateValue = get(this.#formData, name);\n\n const messageBody = (message: string, type = \"error\") => {\n return {\n type,\n message,\n };\n };\n\n const getName = () => label ?? name;\n\n const valid = (validate: Validate, value: unknown): MessageBody => {\n const { required, pattern, message, type, min, max, validator } =\n validate;\n const label = getName();\n\n if (\n typeof value === \"object\"\n ? isEmpty(value)\n : value === undefined || value === \"\"\n ) {\n if (required) {\n return messageBody(message?.required || `${label}为必填项`);\n }\n return messageBody(\"\", \"normal\");\n }\n\n if (typeof value === \"string\" && pattern) {\n const reg = new RegExp(pattern);\n if (!reg.test(value)) {\n return messageBody(\n message?.pattern || `${label}没有匹配正则 ${pattern}`\n );\n }\n }\n\n const checkMin = typeof min === \"number\";\n const checkMax = typeof max === \"number\";\n\n if (type === \"number\") {\n if (typeof value === \"number\" || typeof value === \"string\") {\n const numberValue =\n typeof value === \"number\" ? value : parseFloat(value);\n if (isNaN(numberValue)) {\n return messageBody(`${label}必须是数字`);\n }\n if (checkMin && numberValue < min) {\n return messageBody(message?.min || `${label}不能小于 ${min}`);\n }\n if (checkMax && numberValue > max) {\n return messageBody(message?.max || `${label}不能大于 ${max}`);\n }\n }\n } else if (typeof value === \"string\") {\n if (checkMin && value.length < min) {\n return messageBody(message?.min || `${label}至少包含 ${min} 个字符`);\n }\n if (checkMax && value.length > max) {\n return messageBody(message?.max || `${label}不能超过 ${max} 个字符`);\n }\n }\n\n if (validator) {\n let result = \"\";\n let parsedValidator = [];\n if (Array.isArray(validator)) {\n parsedValidator = validator;\n } else {\n parsedValidator.push(validator);\n }\n\n for (const v of parsedValidator) {\n result = v(value);\n\n if (result) {\n break;\n }\n }\n return typeof result === \"string\"\n ? messageBody(result, result ? \"error\" : \"normal\")\n : (result as MessageBody);\n }\n\n return messageBody(\"\", \"normal\");\n };\n\n const result = { name, ...valid(validate, validateValue) };\n this.publish(`${name}.validate`, result);\n return result;\n }\n\n getValueFromEvent(e: React.ChangeEvent): any {\n if (!e || !e.target) {\n return e;\n }\n const target = e.target as HTMLInputElement;\n return target.type === \"checkbox\" ? target.checked : target.value;\n }\n\n resetValidateState() {\n this.publish(`reset.validate`, null);\n }\n\n scrollToField(name: string) {\n this.publish(`${name}.scroll.to`, null);\n }\n\n onWatch(\n name: string,\n event: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n const value = this.getValueFromEvent(event);\n // default first params is value\n const realValue = Array.isArray(value) ? value[0] : value;\n\n this.setFieldsValue({\n [name]: realValue,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.apply(this, value);\n }\n }\n\n onChange(\n name: string,\n value: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n this.setFieldsValue({\n [name]: value,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.(value);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ import _assertClassBrand from "@babel/runtime/helpers/assertClassBrand";
4
4
  import _classPrivateFieldGet from "@babel/runtime/helpers/classPrivateFieldGet2";
5
5
  import _classPrivateFieldSet from "@babel/runtime/helpers/classPrivateFieldSet2";
6
6
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
- import { isEmpty, isNil } from "lodash";
7
+ import { isEmpty, get, has, set, unset, cloneDeep } from "lodash";
8
8
  import { PubSub } from "./PubSub.js";
9
9
  let uid = 0;
10
10
  class Field {
@@ -41,16 +41,15 @@ export class FormStore extends PubSub {
41
41
  }
42
42
  setField(name, detail) {
43
43
  _classPrivateFieldGet(_fields, this).set(name, new Field(name, detail));
44
+ this.setFieldsValueByInitData(name);
44
45
  }
45
46
  getAllValues() {
46
47
  const allFields = _assertClassBrand(_FormStore_brand, this, _getAllFields).call(this);
47
- const formData = Object.fromEntries(Object.entries(_classPrivateFieldGet(_formData, this)).map(_ref => {
48
- let [k, v] = _ref;
49
- if (allFields.includes(k)) {
50
- return [k, v];
51
- }
52
- return [];
53
- }).filter(item => item.length));
48
+ const formData = {};
49
+ allFields.forEach(fieldName => {
50
+ const value = get(_classPrivateFieldGet(_formData, this), fieldName);
51
+ set(formData, fieldName, value);
52
+ });
54
53
  return formData;
55
54
  }
56
55
  setInitValue(values) {
@@ -59,36 +58,42 @@ export class FormStore extends PubSub {
59
58
  this.setFieldsValue(values, isEmitValuseChange);
60
59
  }
61
60
  setFieldsValueByInitData(name) {
62
- var _classPrivateFieldGet2;
63
- const value = (_classPrivateFieldGet2 = _classPrivateFieldGet(_initData, this)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2[name];
64
- if (!isNil(value)) {
65
- _classPrivateFieldGet(_formData, this)[name] = value;
61
+ var _field$detail;
62
+ const field = _classPrivateFieldGet(_fields, this).get(name);
63
+ if (field && !((_field$detail = field.detail) !== null && _field$detail !== void 0 && _field$detail.notRender) && has(_classPrivateFieldGet(_initData, this), name)) {
64
+ const value = get(_classPrivateFieldGet(_initData, this), name);
65
+ set(_classPrivateFieldGet(_formData, this), name, value);
66
66
  this.publish(`${name}.init.value`, value);
67
67
  }
68
68
  }
69
69
  setFieldsValue(values) {
70
70
  let isEmitValuseChange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
71
- const newFormData = {
72
- ..._classPrivateFieldGet(_formData, this)
73
- };
74
- Object.entries(values).forEach(_ref2 => {
75
- let [k, v] = _ref2;
76
- newFormData[k] = v;
77
- _classPrivateFieldGet(_initData, this) && (_classPrivateFieldGet(_initData, this)[k] = v);
78
- this.publish(`${k}.init.value`, v);
71
+ const newFormData = cloneDeep(_classPrivateFieldGet(_formData, this));
72
+ const changedValues = {};
73
+ _classPrivateFieldGet(_fields, this).forEach((field, key) => {
74
+ var _field$detail2;
75
+ if (!((_field$detail2 = field.detail) !== null && _field$detail2 !== void 0 && _field$detail2.notRender) && has(values, key)) {
76
+ const v = get(values, key);
77
+ set(newFormData, key, v);
78
+ if (_classPrivateFieldGet(_initData, this)) {
79
+ set(_classPrivateFieldGet(_initData, this), key, v);
80
+ }
81
+ this.publish(`${key}.init.value`, v);
82
+ set(changedValues, key, v);
83
+ }
79
84
  });
80
85
  _classPrivateFieldSet(_formData, this, newFormData);
81
86
  if (isEmitValuseChange) {
82
- var _classPrivateFieldGet3, _classPrivateFieldGet4;
83
- (_classPrivateFieldGet3 = _classPrivateFieldGet(_options, this)) === null || _classPrivateFieldGet3 === void 0 || (_classPrivateFieldGet4 = _classPrivateFieldGet3.onValuesChanged) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.call(_classPrivateFieldGet3, {
84
- changedValues: values,
87
+ var _classPrivateFieldGet2, _classPrivateFieldGet3;
88
+ (_classPrivateFieldGet2 = _classPrivateFieldGet(_options, this)) === null || _classPrivateFieldGet2 === void 0 || (_classPrivateFieldGet3 = _classPrivateFieldGet2.onValuesChanged) === null || _classPrivateFieldGet3 === void 0 || _classPrivateFieldGet3.call(_classPrivateFieldGet2, {
89
+ changedValues,
85
90
  allValues: this.getAllValues()
86
91
  });
87
92
  }
88
93
  }
89
94
  resetFields(name) {
90
95
  if (name) {
91
- delete _classPrivateFieldGet(_formData, this)[name];
96
+ unset(_classPrivateFieldGet(_formData, this), name);
92
97
  this.publish(`${name}.reset.fields`, null);
93
98
  } else {
94
99
  _classPrivateFieldSet(_formData, this, {});
@@ -98,11 +103,17 @@ export class FormStore extends PubSub {
98
103
  }
99
104
  getFieldsValue(name) {
100
105
  if (name) {
101
- return _classPrivateFieldGet(_formData, this)[name];
106
+ var _field$detail3;
107
+ const field = _classPrivateFieldGet(_fields, this).get(name);
108
+ if (field && !((_field$detail3 = field.detail) !== null && _field$detail3 !== void 0 && _field$detail3.notRender)) {
109
+ return get(_classPrivateFieldGet(_formData, this), name);
110
+ }
111
+ return undefined;
102
112
  }
103
113
  return this.getAllValues();
104
114
  }
105
115
  removeField(name) {
116
+ unset(_classPrivateFieldGet(_formData, this), name);
106
117
  _classPrivateFieldGet(_fields, this).delete(name);
107
118
  }
108
119
  validateFields(callback) {
@@ -124,15 +135,24 @@ export class FormStore extends PubSub {
124
135
  }
125
136
  }
126
137
  validateField(field) {
127
- var _classPrivateFieldGet5;
128
- const fieldDetail = typeof field === "string" ? (_classPrivateFieldGet5 = _classPrivateFieldGet(_fields, this).get(field)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.detail : field;
129
- if (!fieldDetail) return;
138
+ var _fieldObj$detail;
139
+ let fieldDetail;
140
+ let fieldObj;
141
+ if (typeof field === "string") {
142
+ var _fieldObj;
143
+ fieldObj = _classPrivateFieldGet(_fields, this).get(field);
144
+ fieldDetail = (_fieldObj = fieldObj) === null || _fieldObj === void 0 ? void 0 : _fieldObj.detail;
145
+ } else {
146
+ fieldDetail = field;
147
+ fieldObj = _classPrivateFieldGet(_fields, this).get(fieldDetail.name);
148
+ }
149
+ if (!fieldDetail || fieldObj && (_fieldObj$detail = fieldObj.detail) !== null && _fieldObj$detail !== void 0 && _fieldObj$detail.notRender) return;
130
150
  const {
131
151
  name,
132
152
  label,
133
153
  validate
134
154
  } = fieldDetail;
135
- const validateValue = _classPrivateFieldGet(_formData, this)[name];
155
+ const validateValue = get(_classPrivateFieldGet(_formData, this), name);
136
156
  const messageBody = function (message) {
137
157
  let type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "error";
138
158
  return {
@@ -158,31 +178,33 @@ export class FormStore extends PubSub {
158
178
  }
159
179
  return messageBody("", "normal");
160
180
  }
161
- const stringValue = String(value);
162
- if (pattern) {
181
+ if (typeof value === "string" && pattern) {
163
182
  const reg = new RegExp(pattern);
164
- if (!reg.test(stringValue)) {
183
+ if (!reg.test(value)) {
165
184
  return messageBody((message === null || message === void 0 ? void 0 : message.pattern) || `${label}没有匹配正则 ${pattern}`);
166
185
  }
167
186
  }
168
187
  const checkMin = typeof min === "number";
169
188
  const checkMax = typeof max === "number";
170
- if (checkMin || checkMax) {
171
- if (type === "number") {
189
+ if (type === "number") {
190
+ if (typeof value === "number" || typeof value === "string") {
172
191
  const numberValue = typeof value === "number" ? value : parseFloat(value);
192
+ if (isNaN(numberValue)) {
193
+ return messageBody(`${label}必须是数字`);
194
+ }
173
195
  if (checkMin && numberValue < min) {
174
196
  return messageBody((message === null || message === void 0 ? void 0 : message.min) || `${label}不能小于 ${min}`);
175
197
  }
176
198
  if (checkMax && numberValue > max) {
177
199
  return messageBody((message === null || message === void 0 ? void 0 : message.max) || `${label}不能大于 ${max}`);
178
200
  }
179
- } else {
180
- if (checkMin && stringValue.length < min) {
181
- return messageBody((message === null || message === void 0 ? void 0 : message.min) || `${label}至少包含 ${min} 个字符`);
182
- }
183
- if (checkMax && stringValue.length > max) {
184
- return messageBody((message === null || message === void 0 ? void 0 : message.max) || `${label}不能超过 ${max} 个字符`);
185
- }
201
+ }
202
+ } else if (typeof value === "string") {
203
+ if (checkMin && value.length < min) {
204
+ return messageBody((message === null || message === void 0 ? void 0 : message.min) || `${label}至少包含 ${min} 个字符`);
205
+ }
206
+ if (checkMax && value.length > max) {
207
+ return messageBody((message === null || message === void 0 ? void 0 : message.max) || `${label}不能超过 ${max} 个字符`);
186
208
  }
187
209
  }
188
210
  if (validator) {
@@ -1 +1 @@
1
- {"version":3,"file":"FormStore.js","names":["isEmpty","isNil","PubSub","uid","Field","constructor","name","detail","_defineProperty","field","_fields","WeakMap","_options","_formData","_initData","_FormStore_brand","WeakSet","FormStore","getInstance","options","instance","get","set","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","Map","_classPrivateFieldSet","setField","_classPrivateFieldGet","getAllValues","allFields","_assertClassBrand","_getAllFields","call","formData","Object","fromEntries","entries","map","_ref","k","v","includes","filter","item","length","setInitValue","values","isEmitValuseChange","arguments","undefined","setFieldsValue","setFieldsValueByInitData","_classPrivateFieldGet2","value","publish","newFormData","forEach","_ref2","_classPrivateFieldGet3","_classPrivateFieldGet4","onValuesChanged","changedValues","allValues","resetFields","resetValidateState","getFieldsValue","removeField","delete","validateFields","callback","results","push","validateField","some","result","type","_classPrivateFieldGet5","fieldDetail","label","validate","validateValue","messageBody","message","getName","valid","required","pattern","min","max","validator","stringValue","String","reg","RegExp","test","checkMin","checkMax","numberValue","parseFloat","parsedValidator","Array","isArray","getValueFromEvent","e","target","checked","scrollToField","onWatch","event","_options$needValidate","realValue","needValidate","apply","onChange","_options$needValidate2","keys","key","_detail","notRender"],"sources":["../../src/FormStore.ts"],"sourcesContent":["import { isEmpty, isNil } from \"lodash\";\nimport { PubSub } from \"./PubSub.js\";\n\ninterface FormStoreOptions {\n onValuesChanged?: (data: any) => void;\n}\n\nexport interface FieldDetail {\n name: string;\n label?: string;\n notRender?: boolean;\n originProps?: Record<string, any>;\n validate: Validate;\n [k: string]: any;\n}\n\nexport interface MessageBody {\n message: string;\n type: string;\n}\n\nexport interface WatchOptions {\n needValidate?: boolean;\n}\n\ninterface Validate {\n required?: boolean;\n pattern?: string;\n type?: string;\n min?: number;\n max?: number;\n message?: {\n required?: string;\n pattern?: string;\n min?: string;\n max?: string;\n };\n validator?: (value: any) => MessageBody | string;\n}\n\nlet uid = 0;\n\nclass Field {\n field: string;\n detail: FieldDetail;\n constructor(name: string, detail: FieldDetail) {\n this.field = name;\n this.detail = detail;\n }\n}\n\nexport class FormStore extends PubSub {\n static uid: number;\n static instance: Map<number, FormStore> = new Map();\n static getInstance(options?: FormStoreOptions): FormStore {\n if (!this.instance.get(uid)) {\n this.uid = uid;\n this.instance.set(this.uid, new FormStore(options));\n uid += 1;\n }\n return this.instance.get(this.uid) as FormStore;\n }\n\n #fields: Map<string, Field> = new Map();\n #options: FormStoreOptions | undefined;\n #formData!: Record<string, unknown>;\n #initData: Record<string, unknown> | undefined;\n\n constructor(options?: FormStoreOptions) {\n super();\n this.#formData = {};\n this.#options = options;\n }\n\n setField(name: string, detail: FieldDetail) {\n this.#fields.set(name, new Field(name, detail));\n }\n #getAllFields() {\n return [...this.#fields.keys()].filter((key) => {\n return !this.#fields.get(key)!.detail?.notRender;\n });\n }\n\n getAllValues() {\n const allFields = this.#getAllFields();\n const formData = Object.fromEntries(\n Object.entries(this.#formData)\n .map(([k, v]) => {\n if (allFields.includes(k)) {\n return [k, v];\n }\n return [];\n })\n .filter((item) => item.length)\n );\n return formData;\n }\n\n setInitValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n this.#initData = values;\n this.setFieldsValue(values, isEmitValuseChange);\n }\n\n setFieldsValueByInitData(name: string) {\n const value = this.#initData?.[name];\n if (!isNil(value)) {\n this.#formData[name] = value;\n this.publish(`${name}.init.value`, value);\n }\n }\n\n setFieldsValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n const newFormData: Record<string, unknown> = {\n ...this.#formData,\n };\n Object.entries(values).forEach(([k, v]) => {\n newFormData[k] = v;\n this.#initData && (this.#initData[k] = v);\n this.publish(`${k}.init.value`, v);\n });\n this.#formData = newFormData;\n\n if (isEmitValuseChange) {\n this.#options?.onValuesChanged?.({\n changedValues: values,\n allValues: this.getAllValues(),\n });\n }\n }\n\n resetFields(name?: string) {\n if (name) {\n delete this.#formData[name];\n this.publish(`${name}.reset.fields`, null);\n } else {\n this.#formData = {};\n this.publish(\"reset.fields\", null);\n }\n this.resetValidateState();\n }\n\n getFieldsValue(name?: string) {\n if (name) {\n return this.#formData[name];\n }\n return this.getAllValues();\n }\n\n removeField(name: string) {\n this.#fields.delete(name);\n }\n\n validateFields(\n callback: (err: boolean, value: any) => void\n ): boolean | Record<string, unknown> {\n const allFields = this.#getAllFields();\n const results: Array<MessageBody | undefined> = [];\n allFields.forEach((name) => {\n const field = this.#fields.get(name);\n if (field) {\n results.push(this.validateField(field.detail));\n }\n });\n\n if (results.some((result) => result?.type !== \"normal\")) {\n callback(\n true,\n results.filter((result) => result?.type !== \"normal\")\n );\n return false;\n } else {\n const formData = this.getAllValues();\n callback(false, formData);\n return formData;\n }\n }\n\n validateField(field: string | FieldDetail) {\n const fieldDetail =\n typeof field === \"string\" ? this.#fields.get(field)?.detail : field;\n if (!fieldDetail) return;\n const { name, label, validate } = fieldDetail;\n const validateValue = this.#formData[name];\n\n const messageBody = (message: string, type = \"error\") => {\n return {\n type,\n message,\n };\n };\n\n const getName = () => label ?? name;\n\n const valid = (\n validate: Validate,\n value: string | number | null | undefined\n ): MessageBody => {\n const { required, pattern, message, type, min, max, validator } =\n validate;\n const label = getName();\n\n if (\n typeof value === \"object\"\n ? isEmpty(value)\n : value === undefined || value === \"\"\n ) {\n if (required) {\n return messageBody(message?.required || `${label}为必填项`);\n }\n return messageBody(\"\", \"normal\");\n }\n\n const stringValue = String(value);\n\n if (pattern) {\n const reg = new RegExp(pattern);\n if (!reg.test(stringValue)) {\n return messageBody(\n message?.pattern || `${label}没有匹配正则 ${pattern}`\n );\n }\n }\n\n const checkMin = typeof min === \"number\";\n const checkMax = typeof max === \"number\";\n if (checkMin || checkMax) {\n if (type === \"number\") {\n const numberValue =\n typeof value === \"number\" ? value : parseFloat(value as string);\n if (checkMin && numberValue < min) {\n return messageBody(message?.min || `${label}不能小于 ${min}`);\n }\n if (checkMax && numberValue > max) {\n return messageBody(message?.max || `${label}不能大于 ${max}`);\n }\n } else {\n if (checkMin && stringValue.length < min) {\n return messageBody(\n message?.min || `${label}至少包含 ${min} 个字符`\n );\n }\n if (checkMax && stringValue.length > max) {\n return messageBody(\n message?.max || `${label}不能超过 ${max} 个字符`\n );\n }\n }\n }\n\n if (validator) {\n let result = \"\";\n let parsedValidator = [];\n if (Array.isArray(validator)) {\n parsedValidator = validator;\n } else {\n parsedValidator.push(validator);\n }\n\n for (const v of parsedValidator) {\n result = v(value);\n\n if (result) {\n break;\n }\n }\n return typeof result === \"string\"\n ? messageBody(result, result ? \"error\" : \"normal\")\n : (result as MessageBody);\n }\n\n return messageBody(\"\", \"normal\");\n };\n\n const result = { name, ...valid(validate, validateValue as string) };\n this.publish(`${name}.validate`, result);\n return result;\n }\n\n getValueFromEvent(e: React.ChangeEvent): any {\n if (!e || !e.target) {\n return e;\n }\n const target = e.target as HTMLInputElement;\n return target.type === \"checkbox\" ? target.checked : target.value;\n }\n\n resetValidateState() {\n this.publish(`reset.validate`, null);\n }\n\n scrollToField(name: string) {\n this.publish(`${name}.scroll.to`, null);\n }\n\n onWatch(\n name: string,\n event: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n const value = this.getValueFromEvent(event);\n // default first params is value\n const realValue = Array.isArray(value) ? value[0] : value;\n\n this.setFieldsValue({\n [name]: realValue,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.apply(this, value);\n }\n }\n\n onChange(\n name: string,\n value: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n this.setFieldsValue({\n [name]: value,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.(value);\n }\n }\n}\n"],"mappings":";;;;;;AAAA,SAASA,OAAO,EAAEC,KAAK,QAAQ,QAAQ;AACvC,SAASC,MAAM,QAAQ,aAAa;AAuCpC,IAAIC,GAAG,GAAG,CAAC;AAEX,MAAMC,KAAK,CAAC;EAGVC,WAAWA,CAACC,IAAY,EAAEC,MAAmB,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAC7C,IAAI,CAACC,KAAK,GAAGH,IAAI;IACjB,IAAI,CAACC,MAAM,GAAGA,MAAM;EACtB;AACF;AAAC,IAAAG,OAAA,oBAAAC,OAAA;AAAA,IAAAC,QAAA,oBAAAD,OAAA;AAAA,IAAAE,SAAA,oBAAAF,OAAA;AAAA,IAAAG,SAAA,oBAAAH,OAAA;AAAA,IAAAI,gBAAA,oBAAAC,OAAA;AAED,OAAO,MAAMC,SAAS,SAASf,MAAM,CAAC;EAGpC,OAAOgB,WAAWA,CAACC,OAA0B,EAAa;IACxD,IAAI,CAAC,IAAI,CAACC,QAAQ,CAACC,GAAG,CAAClB,GAAG,CAAC,EAAE;MAC3B,IAAI,CAACA,GAAG,GAAGA,GAAG;MACd,IAAI,CAACiB,QAAQ,CAACE,GAAG,CAAC,IAAI,CAACnB,GAAG,EAAE,IAAIc,SAAS,CAACE,OAAO,CAAC,CAAC;MACnDhB,GAAG,IAAI,CAAC;IACV;IACA,OAAO,IAAI,CAACiB,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAClB,GAAG,CAAC;EACpC;EAOAE,WAAWA,CAACc,OAA0B,EAAE;IACtC,KAAK,CAAC,CAAC;IAACI,2BAAA,OAAAR,gBAAA;IANVS,0BAAA,OAAAd,OAAO,EAAuB,IAAIe,GAAG,CAAC,CAAC;IACvCD,0BAAA,OAAAZ,QAAQ;IACRY,0BAAA,OAAAX,SAAS;IACTW,0BAAA,OAAAV,SAAS;IAIPY,qBAAA,CAAKb,SAAS,EAAd,IAAI,EAAa,CAAC,CAAL,CAAC;IACda,qBAAA,CAAKd,QAAQ,EAAb,IAAI,EAAYO,OAAJ,CAAC;EACf;EAEAQ,QAAQA,CAACrB,IAAY,EAAEC,MAAmB,EAAE;IAC1CqB,qBAAA,CAAKlB,OAAO,EAAZ,IAAW,CAAC,CAACY,GAAG,CAAChB,IAAI,EAAE,IAAIF,KAAK,CAACE,IAAI,EAAEC,MAAM,CAAC,CAAC;EACjD;EAOAsB,YAAYA,CAAA,EAAG;IACb,MAAMC,SAAS,GAAGC,iBAAA,CAAAhB,gBAAA,MAAI,EAACiB,aAAY,CAAC,CAAAC,IAAA,CAAlB,IAAI,CAAgB;IACtC,MAAMC,QAAQ,GAAGC,MAAM,CAACC,WAAW,CACjCD,MAAM,CAACE,OAAO,CAACT,qBAAA,CAAKf,SAAS,EAAd,IAAa,CAAC,CAAC,CAC3ByB,GAAG,CAACC,IAAA,IAAY;MAAA,IAAX,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAAF,IAAA;MACV,IAAIT,SAAS,CAACY,QAAQ,CAACF,CAAC,CAAC,EAAE;QACzB,OAAO,CAACA,CAAC,EAAEC,CAAC,CAAC;MACf;MACA,OAAO,EAAE;IACX,CAAC,CAAC,CACDE,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAACC,MAAM,CACjC,CAAC;IACD,OAAOX,QAAQ;EACjB;EAEAY,YAAYA,CAACC,MAA+B,EAA6B;IAAA,IAA3BC,kBAAkB,GAAAC,SAAA,CAAAJ,MAAA,QAAAI,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,IAAI;IACrEvB,qBAAA,CAAKZ,SAAS,EAAd,IAAI,EAAaiC,MAAJ,CAAC;IACd,IAAI,CAACI,cAAc,CAACJ,MAAM,EAAEC,kBAAkB,CAAC;EACjD;EAEAI,wBAAwBA,CAAC9C,IAAY,EAAE;IAAA,IAAA+C,sBAAA;IACrC,MAAMC,KAAK,IAAAD,sBAAA,GAAGzB,qBAAA,CAAKd,SAAS,EAAd,IAAa,CAAC,cAAAuC,sBAAA,uBAAdA,sBAAA,CAAiB/C,IAAI,CAAC;IACpC,IAAI,CAACL,KAAK,CAACqD,KAAK,CAAC,EAAE;MACjB1B,qBAAA,CAAKf,SAAS,EAAd,IAAa,CAAC,CAACP,IAAI,CAAC,GAAGgD,KAAK;MAC5B,IAAI,CAACC,OAAO,CAAC,GAAGjD,IAAI,aAAa,EAAEgD,KAAK,CAAC;IAC3C;EACF;EAEAH,cAAcA,CAACJ,MAA+B,EAA6B;IAAA,IAA3BC,kBAAkB,GAAAC,SAAA,CAAAJ,MAAA,QAAAI,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,IAAI;IACvE,MAAMO,WAAoC,GAAG;MAC3C,GAAG5B,qBAAA,CAAKf,SAAS,EAAd,IAAa;IAClB,CAAC;IACDsB,MAAM,CAACE,OAAO,CAACU,MAAM,CAAC,CAACU,OAAO,CAACC,KAAA,IAAY;MAAA,IAAX,CAAClB,CAAC,EAAEC,CAAC,CAAC,GAAAiB,KAAA;MACpCF,WAAW,CAAChB,CAAC,CAAC,GAAGC,CAAC;MAClBb,qBAAA,CAAKd,SAAS,EAAd,IAAa,CAAC,KAAKc,qBAAA,CAAKd,SAAS,EAAd,IAAa,CAAC,CAAC0B,CAAC,CAAC,GAAGC,CAAC,CAAC;MACzC,IAAI,CAACc,OAAO,CAAC,GAAGf,CAAC,aAAa,EAAEC,CAAC,CAAC;IACpC,CAAC,CAAC;IACFf,qBAAA,CAAKb,SAAS,EAAd,IAAI,EAAa2C,WAAJ,CAAC;IAEd,IAAIR,kBAAkB,EAAE;MAAA,IAAAW,sBAAA,EAAAC,sBAAA;MACtB,CAAAD,sBAAA,GAAA/B,qBAAA,CAAKhB,QAAQ,EAAb,IAAY,CAAC,cAAA+C,sBAAA,gBAAAC,sBAAA,GAAbD,sBAAA,CAAeE,eAAe,cAAAD,sBAAA,eAA9BA,sBAAA,CAAA3B,IAAA,CAAA0B,sBAAA,EAAiC;QAC/BG,aAAa,EAAEf,MAAM;QACrBgB,SAAS,EAAE,IAAI,CAAClC,YAAY,CAAC;MAC/B,CAAC,CAAC;IACJ;EACF;EAEAmC,WAAWA,CAAC1D,IAAa,EAAE;IACzB,IAAIA,IAAI,EAAE;MACR,OAAOsB,qBAAA,CAAKf,SAAS,EAAd,IAAa,CAAC,CAACP,IAAI,CAAC;MAC3B,IAAI,CAACiD,OAAO,CAAC,GAAGjD,IAAI,eAAe,EAAE,IAAI,CAAC;IAC5C,CAAC,MAAM;MACLoB,qBAAA,CAAKb,SAAS,EAAd,IAAI,EAAa,CAAC,CAAL,CAAC;MACd,IAAI,CAAC0C,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;IACpC;IACA,IAAI,CAACU,kBAAkB,CAAC,CAAC;EAC3B;EAEAC,cAAcA,CAAC5D,IAAa,EAAE;IAC5B,IAAIA,IAAI,EAAE;MACR,OAAOsB,qBAAA,CAAKf,SAAS,EAAd,IAAa,CAAC,CAACP,IAAI,CAAC;IAC7B;IACA,OAAO,IAAI,CAACuB,YAAY,CAAC,CAAC;EAC5B;EAEAsC,WAAWA,CAAC7D,IAAY,EAAE;IACxBsB,qBAAA,CAAKlB,OAAO,EAAZ,IAAW,CAAC,CAAC0D,MAAM,CAAC9D,IAAI,CAAC;EAC3B;EAEA+D,cAAcA,CACZC,QAA4C,EACT;IACnC,MAAMxC,SAAS,GAAGC,iBAAA,CAAAhB,gBAAA,MAAI,EAACiB,aAAY,CAAC,CAAAC,IAAA,CAAlB,IAAI,CAAgB;IACtC,MAAMsC,OAAuC,GAAG,EAAE;IAClDzC,SAAS,CAAC2B,OAAO,CAAEnD,IAAI,IAAK;MAC1B,MAAMG,KAAK,GAAGmB,qBAAA,CAAKlB,OAAO,EAAZ,IAAW,CAAC,CAACW,GAAG,CAACf,IAAI,CAAC;MACpC,IAAIG,KAAK,EAAE;QACT8D,OAAO,CAACC,IAAI,CAAC,IAAI,CAACC,aAAa,CAAChE,KAAK,CAACF,MAAM,CAAC,CAAC;MAChD;IACF,CAAC,CAAC;IAEF,IAAIgE,OAAO,CAACG,IAAI,CAAEC,MAAM,IAAK,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,IAAI,MAAK,QAAQ,CAAC,EAAE;MACvDN,QAAQ,CACN,IAAI,EACJC,OAAO,CAAC5B,MAAM,CAAEgC,MAAM,IAAK,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,IAAI,MAAK,QAAQ,CACtD,CAAC;MACD,OAAO,KAAK;IACd,CAAC,MAAM;MACL,MAAM1C,QAAQ,GAAG,IAAI,CAACL,YAAY,CAAC,CAAC;MACpCyC,QAAQ,CAAC,KAAK,EAAEpC,QAAQ,CAAC;MACzB,OAAOA,QAAQ;IACjB;EACF;EAEAuC,aAAaA,CAAChE,KAA2B,EAAE;IAAA,IAAAoE,sBAAA;IACzC,MAAMC,WAAW,GACf,OAAOrE,KAAK,KAAK,QAAQ,IAAAoE,sBAAA,GAAGjD,qBAAA,CAAKlB,OAAO,EAAZ,IAAW,CAAC,CAACW,GAAG,CAACZ,KAAK,CAAC,cAAAoE,sBAAA,uBAAvBA,sBAAA,CAAyBtE,MAAM,GAAGE,KAAK;IACrE,IAAI,CAACqE,WAAW,EAAE;IAClB,MAAM;MAAExE,IAAI;MAAEyE,KAAK;MAAEC;IAAS,CAAC,GAAGF,WAAW;IAC7C,MAAMG,aAAa,GAAGrD,qBAAA,CAAKf,SAAS,EAAd,IAAa,CAAC,CAACP,IAAI,CAAC;IAE1C,MAAM4E,WAAW,GAAG,SAAAA,CAACC,OAAe,EAAqB;MAAA,IAAnBP,IAAI,GAAA3B,SAAA,CAAAJ,MAAA,QAAAI,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,OAAO;MAClD,OAAO;QACL2B,IAAI;QACJO;MACF,CAAC;IACH,CAAC;IAED,MAAMC,OAAO,GAAGA,CAAA,KAAML,KAAK,aAALA,KAAK,cAALA,KAAK,GAAIzE,IAAI;IAEnC,MAAM+E,KAAK,GAAGA,CACZL,QAAkB,EAClB1B,KAAyC,KACzB;MAChB,MAAM;QAAEgC,QAAQ;QAAEC,OAAO;QAAEJ,OAAO;QAAEP,IAAI;QAAEY,GAAG;QAAEC,GAAG;QAAEC;MAAU,CAAC,GAC7DV,QAAQ;MACV,MAAMD,KAAK,GAAGK,OAAO,CAAC,CAAC;MAEvB,IACE,OAAO9B,KAAK,KAAK,QAAQ,GACrBtD,OAAO,CAACsD,KAAK,CAAC,GACdA,KAAK,KAAKJ,SAAS,IAAII,KAAK,KAAK,EAAE,EACvC;QACA,IAAIgC,QAAQ,EAAE;UACZ,OAAOJ,WAAW,CAAC,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG,QAAQ,KAAI,GAAGP,KAAK,MAAM,CAAC;QACzD;QACA,OAAOG,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC;MAClC;MAEA,MAAMS,WAAW,GAAGC,MAAM,CAACtC,KAAK,CAAC;MAEjC,IAAIiC,OAAO,EAAE;QACX,MAAMM,GAAG,GAAG,IAAIC,MAAM,CAACP,OAAO,CAAC;QAC/B,IAAI,CAACM,GAAG,CAACE,IAAI,CAACJ,WAAW,CAAC,EAAE;UAC1B,OAAOT,WAAW,CAChB,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,OAAO,KAAI,GAAGR,KAAK,UAAUQ,OAAO,EAC/C,CAAC;QACH;MACF;MAEA,MAAMS,QAAQ,GAAG,OAAOR,GAAG,KAAK,QAAQ;MACxC,MAAMS,QAAQ,GAAG,OAAOR,GAAG,KAAK,QAAQ;MACxC,IAAIO,QAAQ,IAAIC,QAAQ,EAAE;QACxB,IAAIrB,IAAI,KAAK,QAAQ,EAAE;UACrB,MAAMsB,WAAW,GACf,OAAO5C,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG6C,UAAU,CAAC7C,KAAe,CAAC;UACjE,IAAI0C,QAAQ,IAAIE,WAAW,GAAGV,GAAG,EAAE;YACjC,OAAON,WAAW,CAAC,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEK,GAAG,KAAI,GAAGT,KAAK,QAAQS,GAAG,EAAE,CAAC;UAC3D;UACA,IAAIS,QAAQ,IAAIC,WAAW,GAAGT,GAAG,EAAE;YACjC,OAAOP,WAAW,CAAC,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,GAAG,KAAI,GAAGV,KAAK,QAAQU,GAAG,EAAE,CAAC;UAC3D;QACF,CAAC,MAAM;UACL,IAAIO,QAAQ,IAAIL,WAAW,CAAC9C,MAAM,GAAG2C,GAAG,EAAE;YACxC,OAAON,WAAW,CAChB,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEK,GAAG,KAAI,GAAGT,KAAK,QAAQS,GAAG,MACrC,CAAC;UACH;UACA,IAAIS,QAAQ,IAAIN,WAAW,CAAC9C,MAAM,GAAG4C,GAAG,EAAE;YACxC,OAAOP,WAAW,CAChB,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,GAAG,KAAI,GAAGV,KAAK,QAAQU,GAAG,MACrC,CAAC;UACH;QACF;MACF;MAEA,IAAIC,SAAS,EAAE;QACb,IAAIf,MAAM,GAAG,EAAE;QACf,IAAIyB,eAAe,GAAG,EAAE;QACxB,IAAIC,KAAK,CAACC,OAAO,CAACZ,SAAS,CAAC,EAAE;UAC5BU,eAAe,GAAGV,SAAS;QAC7B,CAAC,MAAM;UACLU,eAAe,CAAC5B,IAAI,CAACkB,SAAS,CAAC;QACjC;QAEA,KAAK,MAAMjD,CAAC,IAAI2D,eAAe,EAAE;UAC/BzB,MAAM,GAAGlC,CAAC,CAACa,KAAK,CAAC;UAEjB,IAAIqB,MAAM,EAAE;YACV;UACF;QACF;QACA,OAAO,OAAOA,MAAM,KAAK,QAAQ,GAC7BO,WAAW,CAACP,MAAM,EAAEA,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC,GAC/CA,MAAsB;MAC7B;MAEA,OAAOO,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC;IAClC,CAAC;IAED,MAAMP,MAAM,GAAG;MAAErE,IAAI;MAAE,GAAG+E,KAAK,CAACL,QAAQ,EAAEC,aAAuB;IAAE,CAAC;IACpE,IAAI,CAAC1B,OAAO,CAAC,GAAGjD,IAAI,WAAW,EAAEqE,MAAM,CAAC;IACxC,OAAOA,MAAM;EACf;EAEA4B,iBAAiBA,CAACC,CAAoB,EAAO;IAC3C,IAAI,CAACA,CAAC,IAAI,CAACA,CAAC,CAACC,MAAM,EAAE;MACnB,OAAOD,CAAC;IACV;IACA,MAAMC,MAAM,GAAGD,CAAC,CAACC,MAA0B;IAC3C,OAAOA,MAAM,CAAC7B,IAAI,KAAK,UAAU,GAAG6B,MAAM,CAACC,OAAO,GAAGD,MAAM,CAACnD,KAAK;EACnE;EAEAW,kBAAkBA,CAAA,EAAG;IACnB,IAAI,CAACV,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;EACtC;EAEAoD,aAAaA,CAACrG,IAAY,EAAE;IAC1B,IAAI,CAACiD,OAAO,CAAC,GAAGjD,IAAI,YAAY,EAAE,IAAI,CAAC;EACzC;EAEAsG,OAAOA,CACLtG,IAAY,EACZuG,KAAU,EACVvC,QAA8B,EAC9BnD,OAAsB,EACtB;IACA,MAAMV,KAAK,GAAGmB,qBAAA,CAAKlB,OAAO,EAAZ,IAAW,CAAC,CAACW,GAAG,CAACf,IAAI,CAAC;IAEpC,IAAIG,KAAK,EAAE;MAAA,IAAAqG,qBAAA;MACT,MAAMxD,KAAK,GAAG,IAAI,CAACiD,iBAAiB,CAACM,KAAK,CAAC;MAC3C;MACA,MAAME,SAAS,GAAGV,KAAK,CAACC,OAAO,CAAChD,KAAK,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK;MAEzD,IAAI,CAACH,cAAc,CAAC;QAClB,CAAC7C,IAAI,GAAGyG;MACV,CAAC,CAAC;MAEF,KAAAD,qBAAA,GAAI3F,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE6F,YAAY,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,IAAI,EAAE;QACjC,IAAI,CAACrC,aAAa,CAAChE,KAAK,CAACF,MAAM,CAAC;MAClC;MACA+D,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAE2C,KAAK,CAAC,IAAI,EAAE3D,KAAK,CAAC;IAC9B;EACF;EAEA4D,QAAQA,CACN5G,IAAY,EACZgD,KAAU,EACVgB,QAA8B,EAC9BnD,OAAsB,EACtB;IACA,MAAMV,KAAK,GAAGmB,qBAAA,CAAKlB,OAAO,EAAZ,IAAW,CAAC,CAACW,GAAG,CAACf,IAAI,CAAC;IAEpC,IAAIG,KAAK,EAAE;MAAA,IAAA0G,sBAAA;MACT,IAAI,CAAChE,cAAc,CAAC;QAClB,CAAC7C,IAAI,GAAGgD;MACV,CAAC,CAAC;MAEF,KAAA6D,sBAAA,GAAIhG,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE6F,YAAY,cAAAG,sBAAA,cAAAA,sBAAA,GAAI,IAAI,EAAE;QACjC,IAAI,CAAC1C,aAAa,CAAChE,KAAK,CAACF,MAAM,CAAC;MAClC;MACA+D,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAGhB,KAAK,CAAC;IACnB;EACF;AACF;AAAC,SAAAtB,cAAA,EApQiB;EACd,OAAO,CAAC,GAAGJ,qBAAA,CAAKlB,OAAO,EAAZ,IAAW,CAAC,CAAC0G,IAAI,CAAC,CAAC,CAAC,CAACzE,MAAM,CAAE0E,GAAG,IAAK;IAAA,IAAAC,OAAA;IAC9C,OAAO,GAAAA,OAAA,GAAC1F,qBAAA,CAAKlB,OAAO,EAAZ,IAAW,CAAC,CAACW,GAAG,CAACgG,GAAG,CAAC,CAAE9G,MAAM,cAAA+G,OAAA,eAA7BA,OAAA,CAA+BC,SAAS;EAClD,CAAC,CAAC;AACJ;AAAC/G,eAAA,CA9BUS,SAAS;AAAAT,eAAA,CAATS,SAAS,cAEsB,IAAIQ,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"FormStore.js","names":["isEmpty","get","has","set","unset","cloneDeep","PubSub","uid","Field","constructor","name","detail","_defineProperty","field","_fields","WeakMap","_options","_formData","_initData","_FormStore_brand","WeakSet","FormStore","getInstance","options","instance","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","Map","_classPrivateFieldSet","setField","_classPrivateFieldGet","setFieldsValueByInitData","getAllValues","allFields","_assertClassBrand","_getAllFields","call","formData","forEach","fieldName","value","setInitValue","values","isEmitValuseChange","arguments","length","undefined","setFieldsValue","_field$detail","notRender","publish","newFormData","changedValues","key","_field$detail2","v","_classPrivateFieldGet2","_classPrivateFieldGet3","onValuesChanged","allValues","resetFields","resetValidateState","getFieldsValue","_field$detail3","removeField","delete","validateFields","callback","results","push","validateField","some","result","type","filter","_fieldObj$detail","fieldDetail","fieldObj","_fieldObj","label","validate","validateValue","messageBody","message","getName","valid","required","pattern","min","max","validator","reg","RegExp","test","checkMin","checkMax","numberValue","parseFloat","isNaN","parsedValidator","Array","isArray","getValueFromEvent","e","target","checked","scrollToField","onWatch","event","_options$needValidate","realValue","needValidate","apply","onChange","_options$needValidate2","keys","_detail"],"sources":["../../src/FormStore.ts"],"sourcesContent":["import { isEmpty, get, has, set, unset, cloneDeep } from \"lodash\";\nimport { PubSub } from \"./PubSub.js\";\n\ninterface FormStoreOptions {\n onValuesChanged?: (data: any) => void;\n}\n\nexport interface FieldDetail {\n name: string;\n label?: string;\n notRender?: boolean;\n originProps?: Record<string, any>;\n validate: Validate;\n [k: string]: any;\n}\n\nexport interface MessageBody {\n message: string;\n type: string;\n}\n\nexport interface WatchOptions {\n needValidate?: boolean;\n}\n\ninterface Validate {\n required?: boolean;\n pattern?: string;\n type?: string;\n min?: number;\n max?: number;\n message?: {\n required?: string;\n pattern?: string;\n min?: string;\n max?: string;\n };\n validator?: (value: any) => MessageBody | string;\n}\n\nlet uid = 0;\n\nclass Field {\n field: string;\n detail: FieldDetail;\n constructor(name: string, detail: FieldDetail) {\n this.field = name;\n this.detail = detail;\n }\n}\n\nexport class FormStore extends PubSub {\n static uid: number;\n static instance: Map<number, FormStore> = new Map();\n static getInstance(options?: FormStoreOptions): FormStore {\n if (!this.instance.get(uid)) {\n this.uid = uid;\n this.instance.set(this.uid, new FormStore(options));\n uid += 1;\n }\n return this.instance.get(this.uid) as FormStore;\n }\n\n #fields: Map<string, Field> = new Map();\n #options: FormStoreOptions | undefined;\n #formData!: Record<string, unknown>;\n #initData: Record<string, unknown> | undefined;\n\n constructor(options?: FormStoreOptions) {\n super();\n this.#formData = {};\n this.#options = options;\n }\n\n setField(name: string, detail: FieldDetail) {\n this.#fields.set(name, new Field(name, detail));\n this.setFieldsValueByInitData(name);\n }\n #getAllFields() {\n return [...this.#fields.keys()].filter((key) => {\n return !this.#fields.get(key)!.detail?.notRender;\n });\n }\n\n getAllValues() {\n const allFields = this.#getAllFields();\n const formData: Record<string, unknown> = {};\n\n allFields.forEach((fieldName) => {\n const value = get(this.#formData, fieldName);\n set(formData, fieldName, value);\n });\n\n return formData;\n }\n\n setInitValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n this.#initData = values;\n this.setFieldsValue(values, isEmitValuseChange);\n }\n\n setFieldsValueByInitData(name: string) {\n const field = this.#fields.get(name);\n if (field && !field.detail?.notRender && has(this.#initData, name)) {\n const value = get(this.#initData, name);\n set(this.#formData, name, value);\n this.publish(`${name}.init.value`, value);\n }\n }\n\n setFieldsValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n const newFormData = cloneDeep(this.#formData);\n const changedValues: Record<string, unknown> = {};\n\n this.#fields.forEach((field, key) => {\n if (!field.detail?.notRender && has(values, key)) {\n const v = get(values, key);\n set(newFormData, key, v);\n if (this.#initData) {\n set(this.#initData, key, v);\n }\n this.publish(`${key}.init.value`, v);\n set(changedValues, key, v);\n }\n });\n\n this.#formData = newFormData;\n\n if (isEmitValuseChange) {\n this.#options?.onValuesChanged?.({\n changedValues,\n allValues: this.getAllValues(),\n });\n }\n }\n\n resetFields(name?: string) {\n if (name) {\n unset(this.#formData, name);\n this.publish(`${name}.reset.fields`, null);\n } else {\n this.#formData = {};\n this.publish(\"reset.fields\", null);\n }\n this.resetValidateState();\n }\n\n getFieldsValue(name?: string) {\n if (name) {\n const field = this.#fields.get(name);\n if (field && !field.detail?.notRender) {\n return get(this.#formData, name);\n }\n return undefined;\n }\n return this.getAllValues();\n }\n\n removeField(name: string) {\n unset(this.#formData, name);\n this.#fields.delete(name);\n }\n\n validateFields(\n callback: (err: boolean, value: any) => void\n ): boolean | Record<string, unknown> {\n const allFields = this.#getAllFields();\n const results: Array<MessageBody | undefined> = [];\n allFields.forEach((name) => {\n const field = this.#fields.get(name);\n if (field) {\n results.push(this.validateField(field.detail));\n }\n });\n\n if (results.some((result) => result?.type !== \"normal\")) {\n callback(\n true,\n results.filter((result) => result?.type !== \"normal\")\n );\n return false;\n } else {\n const formData = this.getAllValues();\n callback(false, formData);\n return formData;\n }\n }\n\n validateField(field: string | FieldDetail) {\n let fieldDetail;\n let fieldObj;\n\n if (typeof field === \"string\") {\n fieldObj = this.#fields.get(field);\n fieldDetail = fieldObj?.detail;\n } else {\n fieldDetail = field;\n fieldObj = this.#fields.get(fieldDetail.name);\n }\n\n if (!fieldDetail || (fieldObj && fieldObj.detail?.notRender)) return;\n\n const { name, label, validate } = fieldDetail;\n const validateValue = get(this.#formData, name);\n\n const messageBody = (message: string, type = \"error\") => {\n return {\n type,\n message,\n };\n };\n\n const getName = () => label ?? name;\n\n const valid = (validate: Validate, value: unknown): MessageBody => {\n const { required, pattern, message, type, min, max, validator } =\n validate;\n const label = getName();\n\n if (\n typeof value === \"object\"\n ? isEmpty(value)\n : value === undefined || value === \"\"\n ) {\n if (required) {\n return messageBody(message?.required || `${label}为必填项`);\n }\n return messageBody(\"\", \"normal\");\n }\n\n if (typeof value === \"string\" && pattern) {\n const reg = new RegExp(pattern);\n if (!reg.test(value)) {\n return messageBody(\n message?.pattern || `${label}没有匹配正则 ${pattern}`\n );\n }\n }\n\n const checkMin = typeof min === \"number\";\n const checkMax = typeof max === \"number\";\n\n if (type === \"number\") {\n if (typeof value === \"number\" || typeof value === \"string\") {\n const numberValue =\n typeof value === \"number\" ? value : parseFloat(value);\n if (isNaN(numberValue)) {\n return messageBody(`${label}必须是数字`);\n }\n if (checkMin && numberValue < min) {\n return messageBody(message?.min || `${label}不能小于 ${min}`);\n }\n if (checkMax && numberValue > max) {\n return messageBody(message?.max || `${label}不能大于 ${max}`);\n }\n }\n } else if (typeof value === \"string\") {\n if (checkMin && value.length < min) {\n return messageBody(message?.min || `${label}至少包含 ${min} 个字符`);\n }\n if (checkMax && value.length > max) {\n return messageBody(message?.max || `${label}不能超过 ${max} 个字符`);\n }\n }\n\n if (validator) {\n let result = \"\";\n let parsedValidator = [];\n if (Array.isArray(validator)) {\n parsedValidator = validator;\n } else {\n parsedValidator.push(validator);\n }\n\n for (const v of parsedValidator) {\n result = v(value);\n\n if (result) {\n break;\n }\n }\n return typeof result === \"string\"\n ? messageBody(result, result ? \"error\" : \"normal\")\n : (result as MessageBody);\n }\n\n return messageBody(\"\", \"normal\");\n };\n\n const result = { name, ...valid(validate, validateValue) };\n this.publish(`${name}.validate`, result);\n return result;\n }\n\n getValueFromEvent(e: React.ChangeEvent): any {\n if (!e || !e.target) {\n return e;\n }\n const target = e.target as HTMLInputElement;\n return target.type === \"checkbox\" ? target.checked : target.value;\n }\n\n resetValidateState() {\n this.publish(`reset.validate`, null);\n }\n\n scrollToField(name: string) {\n this.publish(`${name}.scroll.to`, null);\n }\n\n onWatch(\n name: string,\n event: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n const value = this.getValueFromEvent(event);\n // default first params is value\n const realValue = Array.isArray(value) ? value[0] : value;\n\n this.setFieldsValue({\n [name]: realValue,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.apply(this, value);\n }\n }\n\n onChange(\n name: string,\n value: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n this.setFieldsValue({\n [name]: value,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.(value);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -38,12 +38,12 @@ export declare class FormStore extends PubSub {
38
38
  static getInstance(options?: FormStoreOptions): FormStore;
39
39
  constructor(options?: FormStoreOptions);
40
40
  setField(name: string, detail: FieldDetail): void;
41
- getAllValues(): any;
41
+ getAllValues(): Record<string, unknown>;
42
42
  setInitValue(values: Record<string, unknown>, isEmitValuseChange?: boolean): void;
43
43
  setFieldsValueByInitData(name: string): void;
44
44
  setFieldsValue(values: Record<string, unknown>, isEmitValuseChange?: boolean): void;
45
45
  resetFields(name?: string): void;
46
- getFieldsValue(name?: string): any;
46
+ getFieldsValue(name?: string): unknown;
47
47
  removeField(name: string): void;
48
48
  validateFields(callback: (err: boolean, value: any) => void): boolean | Record<string, unknown>;
49
49
  validateField(field: string | FieldDetail): {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-shared/form",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "homepage": "https://github.com/easyops-cn/next-advanced-bricks/tree/master/shared/form",
5
5
  "repository": {
6
6
  "type": "git",
@@ -37,7 +37,7 @@
37
37
  "dependencies": {
38
38
  "@next-core/element": "^1.2.19",
39
39
  "@next-core/react-element": "^1.0.38",
40
- "@next-core/types": "^1.18.0",
40
+ "@next-core/types": "^1.18.1",
41
41
  "lodash": "^4.17.21",
42
42
  "react": "0.0.0-experimental-ee8509801-20230117",
43
43
  "react-dom": "0.0.0-experimental-ee8509801-20230117",
@@ -48,5 +48,5 @@
48
48
  "@next-core/test-next": "^2.0.1",
49
49
  "concurrently": "^9.1.0"
50
50
  },
51
- "gitHead": "64d652c91d75223495dc940639ad773f727e7266"
51
+ "gitHead": "99fb56e841ae7c2b091f51396286bd524e24b916"
52
52
  }