@next-shared/form 0.9.3 → 0.10.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
CHANGED
|
@@ -222,6 +222,9 @@ class FormStore extends _PubSub.PubSub {
|
|
|
222
222
|
resetValidateState() {
|
|
223
223
|
this.publish(`reset.validate`, null);
|
|
224
224
|
}
|
|
225
|
+
scrollToField(name) {
|
|
226
|
+
this.publish(`${name}.scroll.to`, null);
|
|
227
|
+
}
|
|
225
228
|
onWatch(name, event, callback, options) {
|
|
226
229
|
const field = (0, _classPrivateFieldGet6.default)(_fields, this).get(name);
|
|
227
230
|
if (field) {
|
|
@@ -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","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 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","_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":[]}
|
package/dist/esm/FormStore.js
CHANGED
|
@@ -220,6 +220,9 @@ export class FormStore extends PubSub {
|
|
|
220
220
|
resetValidateState() {
|
|
221
221
|
this.publish(`reset.validate`, null);
|
|
222
222
|
}
|
|
223
|
+
scrollToField(name) {
|
|
224
|
+
this.publish(`${name}.scroll.to`, null);
|
|
225
|
+
}
|
|
223
226
|
onWatch(name, event, callback, options) {
|
|
224
227
|
const field = _classPrivateFieldGet(_fields, this).get(name);
|
|
225
228
|
if (field) {
|
|
@@ -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","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 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","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":[]}
|
|
@@ -53,6 +53,7 @@ export declare class FormStore extends PubSub {
|
|
|
53
53
|
} | undefined;
|
|
54
54
|
getValueFromEvent(e: React.ChangeEvent): any;
|
|
55
55
|
resetValidateState(): void;
|
|
56
|
+
scrollToField(name: string): void;
|
|
56
57
|
onWatch(name: string, event: any, callback?: (v: string) => void, options?: WatchOptions): void;
|
|
57
58
|
onChange(name: string, value: any, callback?: (v: string) => void, options?: WatchOptions): void;
|
|
58
59
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-shared/form",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-advanced-bricks/tree/master/shared/form",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -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": "64d652c91d75223495dc940639ad773f727e7266"
|
|
52
52
|
}
|