@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.
- package/dist/cjs/FormStore.js +70 -46
- package/dist/cjs/FormStore.js.map +1 -1
- package/dist/esm/FormStore.js +63 -41
- package/dist/esm/FormStore.js.map +1 -1
- package/dist/types/FormStore.d.ts +2 -2
- package/package.json +3 -3
package/dist/cjs/FormStore.js
CHANGED
|
@@ -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
|
|
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,
|
|
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 =
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
|
68
|
-
const
|
|
69
|
-
if (!(0, _lodash.
|
|
70
|
-
(0,
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
|
86
|
-
(
|
|
87
|
-
changedValues
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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
|
|
131
|
-
|
|
132
|
-
|
|
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,
|
|
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
|
-
|
|
164
|
-
if (pattern) {
|
|
185
|
+
if (typeof value === "string" && pattern) {
|
|
165
186
|
const reg = new RegExp(pattern);
|
|
166
|
-
if (!reg.test(
|
|
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 (
|
|
173
|
-
if (
|
|
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
|
-
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
282
|
+
return [...(0, _classPrivateFieldGet4.default)(_fields, this).keys()].filter(key => {
|
|
259
283
|
var _detail;
|
|
260
|
-
return !((_detail = (0,
|
|
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":[]}
|
package/dist/esm/FormStore.js
CHANGED
|
@@ -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,
|
|
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 =
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
|
63
|
-
const
|
|
64
|
-
if (!
|
|
65
|
-
_classPrivateFieldGet(
|
|
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
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
|
83
|
-
(
|
|
84
|
-
changedValues
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
128
|
-
|
|
129
|
-
|
|
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)
|
|
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
|
-
|
|
162
|
-
if (pattern) {
|
|
181
|
+
if (typeof value === "string" && pattern) {
|
|
163
182
|
const reg = new RegExp(pattern);
|
|
164
|
-
if (!reg.test(
|
|
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 (
|
|
171
|
-
if (
|
|
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
|
-
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
|
|
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":"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","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():
|
|
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):
|
|
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.
|
|
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.
|
|
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": "
|
|
51
|
+
"gitHead": "99fb56e841ae7c2b091f51396286bd524e24b916"
|
|
52
52
|
}
|