@next-shared/form 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -91,12 +91,13 @@ class FormStore extends _PubSub.PubSub {
91
91
  }
92
92
  resetFields(name) {
93
93
  if (name) {
94
- this.removeField(name);
94
+ delete _classPrivateFieldGet(_formData, this)[name];
95
95
  this.publish(`${name}.reset.fields`, null);
96
96
  } else {
97
- _classPrivateFieldGet(_fields, this).clear();
97
+ _classPrivateFieldSet(_formData, this, {});
98
98
  this.publish("reset.fields", null);
99
99
  }
100
+ this.resetValidateState();
100
101
  }
101
102
  getFieldsValue(name) {
102
103
  if (name) {
@@ -152,7 +153,7 @@ class FormStore extends _PubSub.PubSub {
152
153
  validator
153
154
  } = validate;
154
155
  const label = getName();
155
- if (required && (typeof value === "object" ? (0, _lodash.isEmpty)(value) : typeof value === "number" ? false : !value)) {
156
+ if (required && (typeof value === "object" ? (0, _lodash.isEmpty)(value) : value === undefined || value === null)) {
156
157
  return messageBody((message === null || message === void 0 ? void 0 : message.required) || `${label}为必填项`);
157
158
  }
158
159
  if (pattern && value) {
@@ -1 +1 @@
1
- {"version":3,"file":"FormStore.js","names":["_lodash","require","_PubSub","_classPrivateFieldGet","s","a","get","_assertClassBrand","_classPrivateFieldSet","r","set","e","t","n","has","arguments","length","TypeError","uid","Field","field","detail","constructor","name","_fields","WeakMap","_options","_formData","_initData","_FormStore_brand","WeakSet","FormStore","PubSub","getInstance","options","instance","_classPrivateMethodInitSpec2","default","_classPrivateFieldInitSpec2","Map","setField","getAllValues","allFields","_getAllFields","call","formData","Object","fromEntries","entries","map","k","v","includes","filter","item","setInitValue","values","isEmitValuseChange","setFieldsValue","setFieldsValueByInitData","_classPrivateFieldGet2","value","isNil","publish","newFormData","forEach","_classPrivateFieldGet3","_classPrivateFieldGet4","onValuesChanged","changedValues","allValues","resetFields","removeField","clear","getFieldsValue","delete","validateFields","callback","results","push","validateField","some","result","type","_classPrivateFieldGet5","fieldDetail","label","validate","validateValue","messageBody","message","getName","valid","required","pattern","min","max","validator","isEmpty","reg","RegExp","test","parsedValidator","Array","isArray","getValueFromEvent","target","checked","resetValidateState","onWatch","event","_options$needValidate","realValue","needValidate","apply","onChange","_options$needValidate2","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 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 this.removeField(name);\n this.publish(`${name}.reset.fields`, null);\n } else {\n this.#fields.clear();\n this.publish(\"reset.fields\", null);\n }\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 = (validate: Validate, value: string): MessageBody => {\n const { required, pattern, message, min, max, validator } = validate;\n const label = getName();\n\n if (\n required &&\n (typeof value === \"object\"\n ? isEmpty(value)\n : typeof value === \"number\"\n ? false\n : !value)\n ) {\n return messageBody(message?.required || `${label}为必填项`);\n }\n\n if (pattern && value) {\n const reg = new RegExp(pattern);\n if (!reg.test(value)) {\n return messageBody(\n message?.pattern || `${label}没有匹配正则 ${pattern}`\n );\n }\n }\n\n if (min && (!value || value.length < min)) {\n return messageBody(message?.min || `${label}至少包含 ${min} 个字符`);\n }\n\n if (max && value && value.length > max) {\n return messageBody(message?.max || `${label}不能超过 ${max} 个字符`);\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 = 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 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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"}
1
+ {"version":3,"file":"FormStore.js","names":["_lodash","require","_PubSub","_classPrivateFieldGet","s","a","get","_assertClassBrand","_classPrivateFieldSet","r","set","e","t","n","has","arguments","length","TypeError","uid","Field","field","detail","constructor","name","_fields","WeakMap","_options","_formData","_initData","_FormStore_brand","WeakSet","FormStore","PubSub","getInstance","options","instance","_classPrivateMethodInitSpec2","default","_classPrivateFieldInitSpec2","Map","setField","getAllValues","allFields","_getAllFields","call","formData","Object","fromEntries","entries","map","k","v","includes","filter","item","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","reg","RegExp","test","parsedValidator","Array","isArray","getValueFromEvent","target","checked","onWatch","event","_options$needValidate","realValue","needValidate","apply","onChange","_options$needValidate2","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 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 = (validate: Validate, value: string): MessageBody => {\n const { required, pattern, message, min, max, validator } = validate;\n const label = getName();\n\n if (\n required &&\n (typeof value === \"object\"\n ? isEmpty(value)\n : value === undefined || value === null)\n ) {\n return messageBody(message?.required || `${label}为必填项`);\n }\n\n if (pattern && value) {\n const reg = new RegExp(pattern);\n if (!reg.test(value)) {\n return messageBody(\n message?.pattern || `${label}没有匹配正则 ${pattern}`\n );\n }\n }\n\n if (min && (!value || value.length < min)) {\n return messageBody(message?.min || `${label}至少包含 ${min} 个字符`);\n }\n\n if (max && value && value.length > max) {\n return messageBody(message?.max || `${label}不能超过 ${max} 个字符`);\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 = 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 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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"}
@@ -87,12 +87,13 @@ export class FormStore extends PubSub {
87
87
  }
88
88
  resetFields(name) {
89
89
  if (name) {
90
- this.removeField(name);
90
+ delete _classPrivateFieldGet(_formData, this)[name];
91
91
  this.publish("".concat(name, ".reset.fields"), null);
92
92
  } else {
93
- _classPrivateFieldGet(_fields, this).clear();
93
+ _classPrivateFieldSet(_formData, this, {});
94
94
  this.publish("reset.fields", null);
95
95
  }
96
+ this.resetValidateState();
96
97
  }
97
98
  getFieldsValue(name) {
98
99
  if (name) {
@@ -149,7 +150,7 @@ export class FormStore extends PubSub {
149
150
  validator
150
151
  } = validate;
151
152
  var label = getName();
152
- if (required && (typeof value === "object" ? isEmpty(value) : typeof value === "number" ? false : !value)) {
153
+ if (required && (typeof value === "object" ? isEmpty(value) : value === undefined || value === null)) {
153
154
  return messageBody((message === null || message === void 0 ? void 0 : message.required) || "".concat(label, "\u4E3A\u5FC5\u586B\u9879"));
154
155
  }
155
156
  if (pattern && value) {
@@ -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","concat","newFormData","_objectSpread","forEach","_ref2","_classPrivateFieldGet3","_classPrivateFieldGet4","onValuesChanged","changedValues","allValues","resetFields","removeField","clear","getFieldsValue","delete","validateFields","callback","results","push","validateField","some","result","type","_classPrivateFieldGet5","fieldDetail","label","validate","validateValue","messageBody","message","getName","valid","required","pattern","min","max","validator","reg","RegExp","test","parsedValidator","Array","isArray","getValueFromEvent","e","target","checked","resetValidateState","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 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 this.removeField(name);\n this.publish(`${name}.reset.fields`, null);\n } else {\n this.#fields.clear();\n this.publish(\"reset.fields\", null);\n }\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 = (validate: Validate, value: string): MessageBody => {\n const { required, pattern, message, min, max, validator } = validate;\n const label = getName();\n\n if (\n required &&\n (typeof value === \"object\"\n ? isEmpty(value)\n : typeof value === \"number\"\n ? false\n : !value)\n ) {\n return messageBody(message?.required || `${label}为必填项`);\n }\n\n if (pattern && value) {\n const reg = new RegExp(pattern);\n if (!reg.test(value)) {\n return messageBody(\n message?.pattern || `${label}没有匹配正则 ${pattern}`\n );\n }\n }\n\n if (min && (!value || value.length < min)) {\n return messageBody(message?.min || `${label}至少包含 ${min} 个字符`);\n }\n\n if (max && value && value.length > max) {\n return messageBody(message?.max || `${label}不能超过 ${max} 个字符`);\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 = 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 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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"}
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","concat","newFormData","_objectSpread","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","reg","RegExp","test","parsedValidator","Array","isArray","getValueFromEvent","e","target","checked","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 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 = (validate: Validate, value: string): MessageBody => {\n const { required, pattern, message, min, max, validator } = validate;\n const label = getName();\n\n if (\n required &&\n (typeof value === \"object\"\n ? isEmpty(value)\n : value === undefined || value === null)\n ) {\n return messageBody(message?.required || `${label}为必填项`);\n }\n\n if (pattern && value) {\n const reg = new RegExp(pattern);\n if (!reg.test(value)) {\n return messageBody(\n message?.pattern || `${label}没有匹配正则 ${pattern}`\n );\n }\n }\n\n if (min && (!value || value.length < min)) {\n return messageBody(message?.min || `${label}至少包含 ${min} 个字符`);\n }\n\n if (max && value && value.length > max) {\n return messageBody(message?.max || `${label}不能超过 ${max} 个字符`);\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 = 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 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-shared/form",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "homepage": "https://github.com/easyops-cn/next-bricks/tree/master/shared/form",
5
5
  "repository": {
6
6
  "type": "git",
@@ -43,5 +43,5 @@
43
43
  "@next-core/test-next": "^1.0.16",
44
44
  "concurrently": "^8.2.2"
45
45
  },
46
- "gitHead": "7343ace49c820beb63ab821c4ae92b9b84b60f31"
46
+ "gitHead": "62bc6238805787ec219a63f02abee6ea272f1de5"
47
47
  }