@next-shared/form 0.6.11 → 0.7.1

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.
@@ -153,7 +153,7 @@ class FormStore extends _PubSub.PubSub {
153
153
  validator
154
154
  } = validate;
155
155
  const label = getName();
156
- if (required && (typeof value === "object" ? (0, _lodash.isEmpty)(value) : value === undefined || value === null)) {
156
+ if (required && (typeof value === "object" ? (0, _lodash.isEmpty)(value) : value === undefined || value === null || value === "")) {
157
157
  return messageBody((message === null || message === void 0 ? void 0 : message.required) || `${label}为必填项`);
158
158
  }
159
159
  if (pattern && value) {
@@ -186,7 +186,10 @@ class FormStore extends _PubSub.PubSub {
186
186
  }
187
187
  return messageBody("", "normal");
188
188
  };
189
- const result = valid(validate, validateValue);
189
+ const result = {
190
+ name,
191
+ ...valid(validate, validateValue)
192
+ };
190
193
  this.publish(`${name}.validate`, result);
191
194
  return result;
192
195
  }
@@ -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","reg","RegExp","test","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 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":";;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAsCA,IAAIE,GAAG,GAAG,CAAC;AAEX,MAAMC,KAAK,CAAC;EACVC,KAAK;EACLC,MAAM;EACNC,WAAWA,CAACC,IAAY,EAAEF,MAAmB,EAAE;IAC7C,IAAI,CAACD,KAAK,GAAGG,IAAI;IACjB,IAAI,CAACF,MAAM,GAAGA,MAAM;EACtB;AACF;AAAC,IAAAG,OAAA,oBAAAC,OAAA;AAAA,IAAAC,QAAA,oBAAAD,OAAA;AAAA,IAAAE,SAAA,oBAAAF,OAAA;AAAA,IAAAG,SAAA,oBAAAH,OAAA;AAAA,IAAAI,gBAAA,oBAAAC,OAAA;AAEM,MAAMC,SAAS,SAASC,cAAM,CAAC;EAGpC,OAAOC,WAAWA,CAACC,OAA0B,EAAa;IACxD,IAAI,CAAC,IAAI,CAACC,QAAQ,CAACC,GAAG,CAAClB,GAAG,CAAC,EAAE;MAC3B,IAAI,CAACA,GAAG,GAAGA,GAAG;MACd,IAAI,CAACiB,QAAQ,CAACE,GAAG,CAAC,IAAI,CAACnB,GAAG,EAAE,IAAIa,SAAS,CAACG,OAAO,CAAC,CAAC;MACnDhB,GAAG,IAAI,CAAC;IACV;IACA,OAAO,IAAI,CAACiB,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAClB,GAAG,CAAC;EACpC;EAOAI,WAAWA,CAACY,OAA0B,EAAE;IACtC,KAAK,CAAC,CAAC;IAAC,IAAAI,4BAAA,CAAAC,OAAA,QAAAV,gBAAA;IANV,IAAAW,2BAAA,CAAAD,OAAA,QAAAf,OAAO,EAAuB,IAAIiB,GAAG,CAAC,CAAC;IACvC,IAAAD,2BAAA,CAAAD,OAAA,QAAAb,QAAQ;IACR,IAAAc,2BAAA,CAAAD,OAAA,QAAAZ,SAAS;IACT,IAAAa,2BAAA,CAAAD,OAAA,QAAAX,SAAS;IAIP,IAAAc,sBAAA,CAAAH,OAAA,EAAKZ,SAAS,EAAd,IAAI,EAAa,CAAC,CAAL,CAAC;IACd,IAAAe,sBAAA,CAAAH,OAAA,EAAKb,QAAQ,EAAb,IAAI,EAAYQ,OAAJ,CAAC;EACf;EAEAS,QAAQA,CAACpB,IAAY,EAAEF,MAAmB,EAAE;IAC1C,IAAAuB,sBAAA,CAAAL,OAAA,EAAKf,OAAO,EAAZ,IAAW,CAAC,CAACa,GAAG,CAACd,IAAI,EAAE,IAAIJ,KAAK,CAACI,IAAI,EAAEF,MAAM,CAAC,CAAC;EACjD;EAOAwB,YAAYA,CAAA,EAAG;IACb,MAAMC,SAAS,GAAG,IAAAC,kBAAA,CAAAR,OAAA,EAAAV,gBAAA,MAAI,EAACmB,aAAY,CAAC,CAAAC,IAAA,CAAlB,IAAI,CAAgB;IACtC,MAAMC,QAAQ,GAAGC,MAAM,CAACC,WAAW,CACjCD,MAAM,CAACE,OAAO,CAAC,IAAAT,sBAAA,CAAAL,OAAA,EAAKZ,SAAS,EAAd,IAAa,CAAC,CAAC,CAC3B2B,GAAG,CAAC,CAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,KAAK;MACf,IAAIV,SAAS,CAACW,QAAQ,CAACF,CAAC,CAAC,EAAE;QACzB,OAAO,CAACA,CAAC,EAAEC,CAAC,CAAC;MACf;MACA,OAAO,EAAE;IACX,CAAC,CAAC,CACDE,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAACC,MAAM,CACjC,CAAC;IACD,OAAOV,QAAQ;EACjB;EAEAW,YAAYA,CAACC,MAA+B,EAAEC,kBAAkB,GAAG,IAAI,EAAE;IACvE,IAAArB,sBAAA,CAAAH,OAAA,EAAKX,SAAS,EAAd,IAAI,EAAakC,MAAJ,CAAC;IACd,IAAI,CAACE,cAAc,CAACF,MAAM,EAAEC,kBAAkB,CAAC;EACjD;EAEAE,wBAAwBA,CAAC1C,IAAY,EAAE;IAAA,IAAA2C,sBAAA;IACrC,MAAMC,KAAK,IAAAD,sBAAA,GAAG,IAAAtB,sBAAA,CAAAL,OAAA,EAAKX,SAAS,EAAd,IAAa,CAAC,cAAAsC,sBAAA,uBAAdA,sBAAA,CAAiB3C,IAAI,CAAC;IACpC,IAAI,CAAC,IAAA6C,aAAK,EAACD,KAAK,CAAC,EAAE;MACjB,IAAAvB,sBAAA,CAAAL,OAAA,EAAKZ,SAAS,EAAd,IAAa,CAAC,CAACJ,IAAI,CAAC,GAAG4C,KAAK;MAC5B,IAAI,CAACE,OAAO,CAAC,GAAG9C,IAAI,aAAa,EAAE4C,KAAK,CAAC;IAC3C;EACF;EAEAH,cAAcA,CAACF,MAA+B,EAAEC,kBAAkB,GAAG,IAAI,EAAE;IACzE,MAAMO,WAAoC,GAAG;MAC3C,GAAG,IAAA1B,sBAAA,CAAAL,OAAA,EAAKZ,SAAS,EAAd,IAAa;IAClB,CAAC;IACDwB,MAAM,CAACE,OAAO,CAACS,MAAM,CAAC,CAACS,OAAO,CAAC,CAAC,CAAChB,CAAC,EAAEC,CAAC,CAAC,KAAK;MACzCc,WAAW,CAACf,CAAC,CAAC,GAAGC,CAAC;MAClB,IAAAZ,sBAAA,CAAAL,OAAA,EAAKX,SAAS,EAAd,IAAa,CAAC,KAAK,IAAAgB,sBAAA,CAAAL,OAAA,EAAKX,SAAS,EAAd,IAAa,CAAC,CAAC2B,CAAC,CAAC,GAAGC,CAAC,CAAC;MACzC,IAAI,CAACa,OAAO,CAAC,GAAGd,CAAC,aAAa,EAAEC,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,IAAAd,sBAAA,CAAAH,OAAA,EAAKZ,SAAS,EAAd,IAAI,EAAa2C,WAAJ,CAAC;IAEd,IAAIP,kBAAkB,EAAE;MAAA,IAAAS,sBAAA,EAAAC,sBAAA;MACtB,CAAAD,sBAAA,OAAA5B,sBAAA,CAAAL,OAAA,EAAKb,QAAQ,EAAb,IAAY,CAAC,cAAA8C,sBAAA,gBAAAC,sBAAA,GAAbD,sBAAA,CAAeE,eAAe,cAAAD,sBAAA,eAA9BA,sBAAA,CAAAxB,IAAA,CAAAuB,sBAAA,EAAiC;QAC/BG,aAAa,EAAEb,MAAM;QACrBc,SAAS,EAAE,IAAI,CAAC/B,YAAY,CAAC;MAC/B,CAAC,CAAC;IACJ;EACF;EAEAgC,WAAWA,CAACtD,IAAa,EAAE;IACzB,IAAIA,IAAI,EAAE;MACR,OAAO,IAAAqB,sBAAA,CAAAL,OAAA,EAAKZ,SAAS,EAAd,IAAa,CAAC,CAACJ,IAAI,CAAC;MAC3B,IAAI,CAAC8C,OAAO,CAAC,GAAG9C,IAAI,eAAe,EAAE,IAAI,CAAC;IAC5C,CAAC,MAAM;MACL,IAAAmB,sBAAA,CAAAH,OAAA,EAAKZ,SAAS,EAAd,IAAI,EAAa,CAAC,CAAL,CAAC;MACd,IAAI,CAAC0C,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;IACpC;IACA,IAAI,CAACS,kBAAkB,CAAC,CAAC;EAC3B;EAEAC,cAAcA,CAACxD,IAAa,EAAE;IAC5B,IAAIA,IAAI,EAAE;MACR,OAAO,IAAAqB,sBAAA,CAAAL,OAAA,EAAKZ,SAAS,EAAd,IAAa,CAAC,CAACJ,IAAI,CAAC;IAC7B;IACA,OAAO,IAAI,CAACsB,YAAY,CAAC,CAAC;EAC5B;EAEAmC,WAAWA,CAACzD,IAAY,EAAE;IACxB,IAAAqB,sBAAA,CAAAL,OAAA,EAAKf,OAAO,EAAZ,IAAW,CAAC,CAACyD,MAAM,CAAC1D,IAAI,CAAC;EAC3B;EAEA2D,cAAcA,CACZC,QAA4C,EACT;IACnC,MAAMrC,SAAS,GAAG,IAAAC,kBAAA,CAAAR,OAAA,EAAAV,gBAAA,MAAI,EAACmB,aAAY,CAAC,CAAAC,IAAA,CAAlB,IAAI,CAAgB;IACtC,MAAMmC,OAAuC,GAAG,EAAE;IAClDtC,SAAS,CAACyB,OAAO,CAAEhD,IAAI,IAAK;MAC1B,MAAMH,KAAK,GAAG,IAAAwB,sBAAA,CAAAL,OAAA,EAAKf,OAAO,EAAZ,IAAW,CAAC,CAACY,GAAG,CAACb,IAAI,CAAC;MACpC,IAAIH,KAAK,EAAE;QACTgE,OAAO,CAACC,IAAI,CAAC,IAAI,CAACC,aAAa,CAAClE,KAAK,CAACC,MAAM,CAAC,CAAC;MAChD;IACF,CAAC,CAAC;IAEF,IAAI+D,OAAO,CAACG,IAAI,CAAEC,MAAM,IAAK,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,IAAI,MAAK,QAAQ,CAAC,EAAE;MACvDN,QAAQ,CACN,IAAI,EACJC,OAAO,CAAC1B,MAAM,CAAE8B,MAAM,IAAK,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,IAAI,MAAK,QAAQ,CACtD,CAAC;MACD,OAAO,KAAK;IACd,CAAC,MAAM;MACL,MAAMvC,QAAQ,GAAG,IAAI,CAACL,YAAY,CAAC,CAAC;MACpCsC,QAAQ,CAAC,KAAK,EAAEjC,QAAQ,CAAC;MACzB,OAAOA,QAAQ;IACjB;EACF;EAEAoC,aAAaA,CAAClE,KAA2B,EAAE;IAAA,IAAAsE,sBAAA;IACzC,MAAMC,WAAW,GACf,OAAOvE,KAAK,KAAK,QAAQ,IAAAsE,sBAAA,GAAG,IAAA9C,sBAAA,CAAAL,OAAA,EAAKf,OAAO,EAAZ,IAAW,CAAC,CAACY,GAAG,CAAChB,KAAK,CAAC,cAAAsE,sBAAA,uBAAvBA,sBAAA,CAAyBrE,MAAM,GAAGD,KAAK;IACrE,IAAI,CAACuE,WAAW,EAAE;IAClB,MAAM;MAAEpE,IAAI;MAAEqE,KAAK;MAAEC;IAAS,CAAC,GAAGF,WAAW;IAC7C,MAAMG,aAAa,GAAG,IAAAlD,sBAAA,CAAAL,OAAA,EAAKZ,SAAS,EAAd,IAAa,CAAC,CAACJ,IAAI,CAAC;IAE1C,MAAMwE,WAAW,GAAGA,CAACC,OAAe,EAAEP,IAAI,GAAG,OAAO,KAAK;MACvD,OAAO;QACLA,IAAI;QACJO;MACF,CAAC;IACH,CAAC;IAED,MAAMC,OAAO,GAAGA,CAAA,KAAML,KAAK,IAAIrE,IAAI;IAEnC,MAAM2E,KAAK,GAAGA,CAACL,QAAkB,EAAE1B,KAAa,KAAkB;MAChE,MAAM;QAAEgC,QAAQ;QAAEC,OAAO;QAAEJ,OAAO;QAAEK,GAAG;QAAEC,GAAG;QAAEC;MAAU,CAAC,GAAGV,QAAQ;MACpE,MAAMD,KAAK,GAAGK,OAAO,CAAC,CAAC;MAEvB,IACEE,QAAQ,KACP,OAAOhC,KAAK,KAAK,QAAQ,GACtB,IAAAqC,eAAO,EAACrC,KAAK,CAAC,GACdA,KAAK,KAAKsC,SAAS,IAAItC,KAAK,KAAK,IAAI,CAAC,EAC1C;QACA,OAAO4B,WAAW,CAAC,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG,QAAQ,KAAI,GAAGP,KAAK,MAAM,CAAC;MACzD;MAEA,IAAIQ,OAAO,IAAIjC,KAAK,EAAE;QACpB,MAAMuC,GAAG,GAAG,IAAIC,MAAM,CAACP,OAAO,CAAC;QAC/B,IAAI,CAACM,GAAG,CAACE,IAAI,CAACzC,KAAK,CAAC,EAAE;UACpB,OAAO4B,WAAW,CAChB,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,OAAO,KAAI,GAAGR,KAAK,UAAUQ,OAAO,EAC/C,CAAC;QACH;MACF;MAEA,IAAIC,GAAG,KAAK,CAAClC,KAAK,IAAIA,KAAK,CAACP,MAAM,GAAGyC,GAAG,CAAC,EAAE;QACzC,OAAON,WAAW,CAAC,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEK,GAAG,KAAI,GAAGT,KAAK,QAAQS,GAAG,MAAM,CAAC;MAC/D;MAEA,IAAIC,GAAG,IAAInC,KAAK,IAAIA,KAAK,CAACP,MAAM,GAAG0C,GAAG,EAAE;QACtC,OAAOP,WAAW,CAAC,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,GAAG,KAAI,GAAGV,KAAK,QAAQU,GAAG,MAAM,CAAC;MAC/D;MAEA,IAAIC,SAAS,EAAE;QACb,IAAIf,MAAM,GAAG,EAAE;QACf,IAAIqB,eAAe,GAAG,EAAE;QACxB,IAAIC,KAAK,CAACC,OAAO,CAACR,SAAS,CAAC,EAAE;UAC5BM,eAAe,GAAGN,SAAS;QAC7B,CAAC,MAAM;UACLM,eAAe,CAACxB,IAAI,CAACkB,SAAS,CAAC;QACjC;QAEA,KAAK,MAAM/C,CAAC,IAAIqD,eAAe,EAAE;UAC/BrB,MAAM,GAAGhC,CAAC,CAACW,KAAK,CAAC;UAEjB,IAAIqB,MAAM,EAAE;YACV;UACF;QACF;QACA,OAAO,OAAOA,MAAM,KAAK,QAAQ,GAC7BO,WAAW,CAACP,MAAM,EAAEA,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC,GAC/CA,MAAsB;MAC7B;MAEA,OAAOO,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC;IAClC,CAAC;IAED,MAAMP,MAAM,GAAGU,KAAK,CAACL,QAAQ,EAAEC,aAAuB,CAAC;IACvD,IAAI,CAACzB,OAAO,CAAC,GAAG9C,IAAI,WAAW,EAAEiE,MAAM,CAAC;IACxC,OAAOA,MAAM;EACf;EAEAwB,iBAAiBA,CAACC,CAAoB,EAAO;IAC3C,IAAI,CAACA,CAAC,IAAI,CAACA,CAAC,CAACC,MAAM,EAAE;MACnB,OAAOD,CAAC;IACV;IACA,MAAMC,MAAM,GAAGD,CAAC,CAACC,MAA0B;IAC3C,OAAOA,MAAM,CAACzB,IAAI,KAAK,UAAU,GAAGyB,MAAM,CAACC,OAAO,GAAGD,MAAM,CAAC/C,KAAK;EACnE;EAEAW,kBAAkBA,CAAA,EAAG;IACnB,IAAI,CAACT,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;EACtC;EAEA+C,OAAOA,CACL7F,IAAY,EACZ8F,KAAU,EACVlC,QAA8B,EAC9BjD,OAAsB,EACtB;IACA,MAAMd,KAAK,GAAG,IAAAwB,sBAAA,CAAAL,OAAA,EAAKf,OAAO,EAAZ,IAAW,CAAC,CAACY,GAAG,CAACb,IAAI,CAAC;IAEpC,IAAIH,KAAK,EAAE;MACT,MAAM+C,KAAK,GAAG,IAAI,CAAC6C,iBAAiB,CAACK,KAAK,CAAC;MAC3C;MACA,MAAMC,SAAS,GAAGR,KAAK,CAACC,OAAO,CAAC5C,KAAK,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK;MAEzD,IAAI,CAACH,cAAc,CAAC;QAClB,CAACzC,IAAI,GAAG+F;MACV,CAAC,CAAC;MAEF,IAAI,CAAApF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEqF,YAAY,KAAI,IAAI,EAAE;QACjC,IAAI,CAACjC,aAAa,CAAClE,KAAK,CAACC,MAAM,CAAC;MAClC;MACA8D,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEqC,KAAK,CAAC,IAAI,EAAErD,KAAK,CAAC;IAC9B;EACF;EAEAsD,QAAQA,CACNlG,IAAY,EACZ4C,KAAU,EACVgB,QAA8B,EAC9BjD,OAAsB,EACtB;IACA,MAAMd,KAAK,GAAG,IAAAwB,sBAAA,CAAAL,OAAA,EAAKf,OAAO,EAAZ,IAAW,CAAC,CAACY,GAAG,CAACb,IAAI,CAAC;IAEpC,IAAIH,KAAK,EAAE;MACT,IAAI,CAAC4C,cAAc,CAAC;QAClB,CAACzC,IAAI,GAAG4C;MACV,CAAC,CAAC;MAEF,IAAI,CAAAjC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEqF,YAAY,KAAI,IAAI,EAAE;QACjC,IAAI,CAACjC,aAAa,CAAClE,KAAK,CAACC,MAAM,CAAC;MAClC;MACA8D,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAGhB,KAAK,CAAC;IACnB;EACF;AACF;AAACuD,OAAA,CAAA3F,SAAA,GAAAA,SAAA;AAAA,SAAAiB,cAAA,EAtOiB;EACd,OAAO,CAAC,GAAG,IAAAJ,sBAAA,CAAAL,OAAA,EAAKf,OAAO,EAAZ,IAAW,CAAC,CAACmG,IAAI,CAAC,CAAC,CAAC,CAACjE,MAAM,CAAEkE,GAAG,IAAK;IAAA,IAAAC,OAAA;IAC9C,OAAO,GAAAA,OAAA,GAAC,IAAAjF,sBAAA,CAAAL,OAAA,EAAKf,OAAO,EAAZ,IAAW,CAAC,CAACY,GAAG,CAACwF,GAAG,CAAC,CAAEvG,MAAM,cAAAwG,OAAA,eAA7BA,OAAA,CAA+BC,SAAS;EAClD,CAAC,CAAC;AACJ;AAAC,IAAAC,gBAAA,CAAAxF,OAAA,EA9BUR,SAAS;AAAA,IAAAgG,gBAAA,CAAAxF,OAAA,EAATR,SAAS,cAEsB,IAAIU,GAAG,CAAC,CAAC","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","reg","RegExp","test","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 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 || 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 = { 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":[]}
@@ -151,7 +151,7 @@ export class FormStore extends PubSub {
151
151
  validator
152
152
  } = validate;
153
153
  const label = getName();
154
- if (required && (typeof value === "object" ? isEmpty(value) : value === undefined || value === null)) {
154
+ if (required && (typeof value === "object" ? isEmpty(value) : value === undefined || value === null || value === "")) {
155
155
  return messageBody((message === null || message === void 0 ? void 0 : message.required) || `${label}为必填项`);
156
156
  }
157
157
  if (pattern && value) {
@@ -184,7 +184,10 @@ export class FormStore extends PubSub {
184
184
  }
185
185
  return messageBody("", "normal");
186
186
  };
187
- const result = valid(validate, validateValue);
187
+ const result = {
188
+ name,
189
+ ...valid(validate, validateValue)
190
+ };
188
191
  this.publish(`${name}.validate`, result);
189
192
  return result;
190
193
  }
@@ -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","reg","RegExp","test","parsedValidator","Array","isArray","getValueFromEvent","e","target","checked","onWatch","event","realValue","needValidate","apply","onChange","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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","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","reg","RegExp","test","parsedValidator","Array","isArray","getValueFromEvent","e","target","checked","onWatch","event","realValue","needValidate","apply","onChange","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 || 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 = { 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":[]}
@@ -45,7 +45,11 @@ export declare class FormStore extends PubSub {
45
45
  getFieldsValue(name?: string): any;
46
46
  removeField(name: string): void;
47
47
  validateFields(callback: (err: boolean, value: any) => void): boolean | Record<string, unknown>;
48
- validateField(field: string | FieldDetail): MessageBody | undefined;
48
+ validateField(field: string | FieldDetail): {
49
+ message: string;
50
+ type: string;
51
+ name: string;
52
+ } | undefined;
49
53
  getValueFromEvent(e: React.ChangeEvent): any;
50
54
  resetValidateState(): void;
51
55
  onWatch(name: string, event: any, callback?: (v: string) => void, options?: WatchOptions): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-shared/form",
3
- "version": "0.6.11",
3
+ "version": "0.7.1",
4
4
  "homepage": "https://github.com/easyops-cn/next-bricks/tree/master/shared/form",
5
5
  "repository": {
6
6
  "type": "git",
@@ -35,14 +35,14 @@
35
35
  "test:ci": "cross-env NODE_ENV='test' CI=true test-next"
36
36
  },
37
37
  "dependencies": {
38
- "@next-core/element": "^1.2.11",
39
- "@next-core/react-element": "^1.0.30",
38
+ "@next-core/element": "^1.2.12",
39
+ "@next-core/react-element": "^1.0.31",
40
40
  "lodash": "^4.17.21"
41
41
  },
42
42
  "devDependencies": {
43
- "@next-core/build-next-libs": "^1.0.18",
44
- "@next-core/test-next": "^1.1.5",
43
+ "@next-core/build-next-libs": "^1.0.19",
44
+ "@next-core/test-next": "^1.1.6",
45
45
  "concurrently": "^8.2.2"
46
46
  },
47
- "gitHead": "e3be95e796904a042ccb908850fe3af223451a04"
47
+ "gitHead": "0642c59fb82dea2ec52c5d8e42e1e0a116aab961"
48
48
  }