tdesign-react 0.42.3-alpha.1 → 0.42.3-alpha.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.
@@ -1 +1 @@
1
- {"version":3,"file":"Form.js","sources":["../../src/form/Form.tsx"],"sourcesContent":["import React, { useRef, useImperativeHandle } from 'react';\nimport classNames from 'classnames';\nimport useConfig from '../hooks/useConfig';\nimport noop from '../_util/noop';\nimport forwardRefWithStatics from '../_util/forwardRefWithStatics';\nimport type { TdFormProps } from './type';\nimport type { InternalFormInstance } from './hooks/interface';\nimport useInstance from './hooks/useInstance';\nimport useForm, { HOOK_MARK } from './hooks/useForm';\nimport useWatch from './hooks/useWatch';\nimport { StyledProps } from '../common';\nimport FormContext from './FormContext';\nimport FormItem from './FormItem';\nimport FormList from './FormList';\nimport { formDefaultProps } from './defaultProps';\n\nexport interface FormProps extends TdFormProps, StyledProps {\n children?: React.ReactNode;\n}\n\nconst Form = forwardRefWithStatics(\n (props: FormProps, ref) => {\n const { classPrefix, form: globalFormConfig } = useConfig();\n\n const {\n style,\n className,\n labelWidth,\n statusIcon,\n labelAlign,\n layout,\n colon,\n initialData,\n requiredMark = globalFormConfig.requiredMark,\n scrollToFirstError,\n showErrorMessage,\n resetType,\n rules,\n errorMessage = globalFormConfig.errorMessage,\n preventSubmitDefault,\n disabled,\n children,\n onReset,\n onValuesChange = noop,\n } = props;\n\n const formClass = classNames(`${classPrefix}-form`, className, {\n [`${classPrefix}-form-inline`]: layout === 'inline',\n });\n\n const [form] = useForm(props.form); // 内部与外部共享 form 实例,外部不传则内部创建\n const formRef: React.RefObject<HTMLFormElement> = useRef();\n const formMapRef = useRef(new Map()); // 收集所有包含 name 属性 formItem 实例\n const formInstance = useInstance(props, formRef, formMapRef);\n\n useImperativeHandle(ref, () => formInstance);\n Object.assign(form, { ...formInstance });\n\n function onResetHandler(e: React.FormEvent<HTMLFormElement>) {\n [...formMapRef.current.values()].forEach((formItemRef) => {\n formItemRef?.current.resetField();\n });\n (form as InternalFormInstance)?.getInternalHooks?.(HOOK_MARK)?.notifyWatch?.([]);\n onReset?.({ e });\n }\n\n function onFormItemValueChange(changedValue: Record<string, unknown>) {\n const allFields = formInstance.getFieldsValue(true);\n onValuesChange(changedValue, allFields);\n }\n\n function onKeyDownHandler(e: React.KeyboardEvent<HTMLFormElement>) {\n // 禁用 input 输入框回车自动提交 form\n if ((e.target as Element).tagName.toLowerCase() !== 'input') return;\n if (preventSubmitDefault && e.key === 'Enter') {\n e.preventDefault?.();\n e.stopPropagation?.();\n }\n }\n\n return (\n <FormContext.Provider\n value={{\n form,\n labelWidth,\n statusIcon,\n labelAlign,\n layout,\n colon,\n initialData,\n requiredMark,\n errorMessage,\n showErrorMessage,\n scrollToFirstError,\n resetType,\n rules,\n disabled,\n formMapRef,\n onFormItemValueChange,\n }}\n >\n <form\n ref={formRef}\n style={style}\n className={formClass}\n onSubmit={formInstance.submit}\n onReset={onResetHandler}\n onKeyDown={onKeyDownHandler}\n >\n {children}\n </form>\n </FormContext.Provider>\n );\n },\n { useForm, useWatch, FormItem, FormList },\n);\n\nForm.displayName = 'Form';\nForm.defaultProps = formDefaultProps;\n\nexport default Form;\n"],"names":["Form","forwardRefWithStatics","props","ref","useConfig","classPrefix","globalFormConfig","form","style","className","labelWidth","statusIcon","labelAlign","layout","colon","initialData","requiredMark","scrollToFirstError","showErrorMessage","resetType","rules","errorMessage","preventSubmitDefault","disabled","children","onReset","onValuesChange","noop","formClass","classNames","useForm","formRef","useRef","formMapRef","Map","formInstance","useInstance","useImperativeHandle","Object","assign","onResetHandler","e","current","values","forEach","formItemRef","resetField","getInternalHooks","HOOK_MARK","notifyWatch","onFormItemValueChange","changedValue","allFields","getFieldsValue","onKeyDownHandler","target","tagName","toLowerCase","key","preventDefault","stopPropagation","React","createElement","FormContext","Provider","value","onSubmit","submit","onKeyDown","useWatch","FormItem","FormList","displayName","defaultProps","formDefaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Form.js","sources":["../../src/form/Form.tsx"],"sourcesContent":["import React, { useRef, useImperativeHandle } from 'react';\nimport classNames from 'classnames';\nimport useConfig from '../hooks/useConfig';\nimport noop from '../_util/noop';\nimport forwardRefWithStatics from '../_util/forwardRefWithStatics';\nimport type { TdFormProps } from './type';\nimport useInstance from './hooks/useInstance';\nimport useForm, { HOOK_MARK } from './hooks/useForm';\nimport useWatch from './hooks/useWatch';\nimport { StyledProps } from '../common';\nimport FormContext from './FormContext';\nimport FormItem from './FormItem';\nimport FormList from './FormList';\nimport { formDefaultProps } from './defaultProps';\n\nexport interface FormProps extends TdFormProps, StyledProps {\n children?: React.ReactNode;\n}\n\nconst Form = forwardRefWithStatics(\n (props: FormProps, ref) => {\n const { classPrefix, form: globalFormConfig } = useConfig();\n\n const {\n style,\n className,\n labelWidth,\n statusIcon,\n labelAlign,\n layout,\n colon,\n initialData,\n requiredMark = globalFormConfig.requiredMark,\n scrollToFirstError,\n showErrorMessage,\n resetType,\n rules,\n errorMessage = globalFormConfig.errorMessage,\n preventSubmitDefault,\n disabled,\n children,\n onReset,\n onValuesChange = noop,\n } = props;\n\n const formClass = classNames(`${classPrefix}-form`, className, {\n [`${classPrefix}-form-inline`]: layout === 'inline',\n });\n\n const [form] = useForm(props.form); // 内部与外部共享 form 实例,外部不传则内部创建\n const formRef: React.RefObject<HTMLFormElement> = useRef();\n const formMapRef = useRef(new Map()); // 收集所有包含 name 属性 formItem 实例\n const formInstance = useInstance(props, formRef, formMapRef);\n\n useImperativeHandle(ref, () => formInstance);\n Object.assign(form, { ...formInstance });\n\n function onResetHandler(e: React.FormEvent<HTMLFormElement>) {\n [...formMapRef.current.values()].forEach((formItemRef) => {\n formItemRef?.current.resetField();\n });\n form?.getInternalHooks?.(HOOK_MARK)?.notifyWatch?.([]);\n onReset?.({ e });\n }\n\n function onFormItemValueChange(changedValue: Record<string, unknown>) {\n const allFields = formInstance.getFieldsValue(true);\n onValuesChange(changedValue, allFields);\n }\n\n function onKeyDownHandler(e: React.KeyboardEvent<HTMLFormElement>) {\n // 禁用 input 输入框回车自动提交 form\n if ((e.target as Element).tagName.toLowerCase() !== 'input') return;\n if (preventSubmitDefault && e.key === 'Enter') {\n e.preventDefault?.();\n e.stopPropagation?.();\n }\n }\n\n return (\n <FormContext.Provider\n value={{\n form,\n labelWidth,\n statusIcon,\n labelAlign,\n layout,\n colon,\n initialData,\n requiredMark,\n errorMessage,\n showErrorMessage,\n scrollToFirstError,\n resetType,\n rules,\n disabled,\n formMapRef,\n onFormItemValueChange,\n }}\n >\n <form\n ref={formRef}\n style={style}\n className={formClass}\n onSubmit={formInstance.submit}\n onReset={onResetHandler}\n onKeyDown={onKeyDownHandler}\n >\n {children}\n </form>\n </FormContext.Provider>\n );\n },\n { useForm, useWatch, FormItem, FormList },\n);\n\nForm.displayName = 'Form';\nForm.defaultProps = formDefaultProps;\n\nexport default Form;\n"],"names":["Form","forwardRefWithStatics","props","ref","useConfig","classPrefix","globalFormConfig","form","style","className","labelWidth","statusIcon","labelAlign","layout","colon","initialData","requiredMark","scrollToFirstError","showErrorMessage","resetType","rules","errorMessage","preventSubmitDefault","disabled","children","onReset","onValuesChange","noop","formClass","classNames","useForm","formRef","useRef","formMapRef","Map","formInstance","useInstance","useImperativeHandle","Object","assign","onResetHandler","e","current","values","forEach","formItemRef","resetField","getInternalHooks","HOOK_MARK","notifyWatch","onFormItemValueChange","changedValue","allFields","getFieldsValue","onKeyDownHandler","target","tagName","toLowerCase","key","preventDefault","stopPropagation","React","createElement","FormContext","Provider","value","onSubmit","submit","onKeyDown","useWatch","FormItem","FormList","displayName","defaultProps","formDefaultProps"],"mappings":"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"}
@@ -77,6 +77,7 @@ var FormList = function FormList(props) {
77
77
 
78
78
  var formListMapRef = useRef( /* @__PURE__ */new Map());
79
79
  var formListRef = useRef();
80
+ var fieldsTaskQueueRef = useRef([]);
80
81
  var operation = {
81
82
  add: function add(defaultValue, insertIndex) {
82
83
  var cloneFields = _toConsumableArray(fields);
@@ -136,17 +137,15 @@ var FormList = function FormList(props) {
136
137
  isListField: true
137
138
  };
138
139
  }));
139
- requestAnimationFrame(function () {
140
- _toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
141
- var name2 = formItemRef.current.name;
142
- var data = get_1(fieldData, name2);
143
- callback(formItemRef, data);
144
- });
140
+ fieldsTaskQueueRef.current.push({
141
+ callback: callback,
142
+ fieldData: fieldData
145
143
  });
146
144
  }
147
145
 
148
146
  useEffect(function () {
149
147
  _toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
148
+ if (!formItemRef.current) return;
150
149
  var _formItemRef$current = formItemRef.current,
151
150
  name2 = _formItemRef$current.name,
152
151
  value = _formItemRef$current.value;
@@ -157,7 +156,20 @@ var FormList = function FormList(props) {
157
156
  status: "not"
158
157
  });
159
158
  });
160
- }, [fields, initialValue]);
159
+ }, [initialValue]);
160
+ useEffect(function () {
161
+ var currentQueue = fieldsTaskQueueRef.current.pop();
162
+ if (!currentQueue) return;
163
+
164
+ _toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
165
+ if (!formItemRef.current) return;
166
+ var name2 = formItemRef.current.name;
167
+ var fieldData = currentQueue.fieldData,
168
+ callback = currentQueue.callback;
169
+ var data = get_1(fieldData, name2);
170
+ callback(formItemRef, data);
171
+ });
172
+ }, [fields]);
161
173
  useEffect(function () {
162
174
  if (!name || !formMapRef) return;
163
175
  formMapRef.current.set(name, formListRef);
@@ -186,7 +198,9 @@ var FormList = function FormList(props) {
186
198
  var resultList = [];
187
199
 
188
200
  var validates = _toConsumableArray(formListMapRef.current.values()).map(function (formItemRef) {
189
- return formItemRef.current.validate(trigger);
201
+ var _formItemRef$current3, _formItemRef$current4;
202
+
203
+ return formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current3 = formItemRef.current) === null || _formItemRef$current3 === void 0 ? void 0 : (_formItemRef$current4 = _formItemRef$current3.validate) === null || _formItemRef$current4 === void 0 ? void 0 : _formItemRef$current4.call(_formItemRef$current3, trigger);
190
204
  });
191
205
 
192
206
  return new Promise(function (resolve) {
@@ -212,18 +226,18 @@ var FormList = function FormList(props) {
212
226
  },
213
227
  setValue: function setValue(fieldData) {
214
228
  setListFields(fieldData, function (formItemRef, data) {
215
- var _formItemRef$current3;
229
+ var _formItemRef$current5, _formItemRef$current6;
216
230
 
217
- formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current3 = formItemRef.current) === null || _formItemRef$current3 === void 0 ? void 0 : _formItemRef$current3.setValue(data);
231
+ formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current5 = formItemRef.current) === null || _formItemRef$current5 === void 0 ? void 0 : (_formItemRef$current6 = _formItemRef$current5.setValue) === null || _formItemRef$current6 === void 0 ? void 0 : _formItemRef$current6.call(_formItemRef$current5, data);
218
232
  });
219
233
  },
220
234
  setField: function setField(fieldData) {
221
235
  var value = fieldData.value,
222
236
  status = fieldData.status;
223
237
  setListFields(value, function (formItemRef, data) {
224
- var _formItemRef$current4;
238
+ var _formItemRef$current7, _formItemRef$current8;
225
239
 
226
- formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current4 = formItemRef.current) === null || _formItemRef$current4 === void 0 ? void 0 : _formItemRef$current4.setField({
240
+ formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current7 = formItemRef.current) === null || _formItemRef$current7 === void 0 ? void 0 : (_formItemRef$current8 = _formItemRef$current7.setField) === null || _formItemRef$current8 === void 0 ? void 0 : _formItemRef$current8.call(_formItemRef$current7, {
227
241
  value: data,
228
242
  status: status
229
243
  });
@@ -231,21 +245,27 @@ var FormList = function FormList(props) {
231
245
  },
232
246
  resetField: function resetField() {
233
247
  _toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
234
- formItemRef.current.resetField();
248
+ var _formItemRef$current9, _formItemRef$current10;
249
+
250
+ formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current9 = formItemRef.current) === null || _formItemRef$current9 === void 0 ? void 0 : (_formItemRef$current10 = _formItemRef$current9.resetField) === null || _formItemRef$current10 === void 0 ? void 0 : _formItemRef$current10.call(_formItemRef$current9);
235
251
  });
236
252
 
237
253
  setInitialValue([]);
238
254
  },
239
255
  setValidateMessage: function setValidateMessage(fieldData) {
240
256
  _toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
257
+ var _formItemRef$current11, _formItemRef$current12;
258
+
241
259
  var name2 = formItemRef.current.name;
242
260
  var data = get_1(fieldData, name2);
243
- formItemRef.current.setValidateMessage(data);
261
+ formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current11 = formItemRef.current) === null || _formItemRef$current11 === void 0 ? void 0 : (_formItemRef$current12 = _formItemRef$current11.setValidateMessage) === null || _formItemRef$current12 === void 0 ? void 0 : _formItemRef$current12.call(_formItemRef$current11, data);
244
262
  });
245
263
  },
246
264
  resetValidate: function resetValidate() {
247
265
  _toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
248
- formItemRef.current.resetValidate();
266
+ var _formItemRef$current13, _formItemRef$current14;
267
+
268
+ formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current13 = formItemRef.current) === null || _formItemRef$current13 === void 0 ? void 0 : (_formItemRef$current14 = _formItemRef$current13.resetValidate) === null || _formItemRef$current14 === void 0 ? void 0 : _formItemRef$current14.call(_formItemRef$current13);
249
269
  });
250
270
  }
251
271
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FormList.js","sources":["../../src/form/FormList.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, useImperativeHandle } from 'react';\nimport merge from 'lodash/merge';\nimport get from 'lodash/get';\nimport { FormListContext, useFormContext } from './FormContext';\nimport { FormItemInstance } from './FormItem';\nimport { TdFormListProps, FormListFieldOperation, FormListField } from './type';\nimport { calcFieldValue } from './utils';\nimport log from '../_common/js/log';\n\nlet key = 0;\n\nconst FormList = (props: TdFormListProps) => {\n const { formMapRef } = useFormContext();\n const { name, initialData = [], rules, children } = props;\n\n const [initialValue, setInitialValue] = useState(initialData);\n const [fields, setFields] = useState<Array<FormListField>>(\n initialData.map((data, index) => ({\n key: (key += 1),\n name: index,\n isListField: true,\n ...data,\n })),\n );\n const formListMapRef = useRef(new Map()); // 收集 formItem 实例\n const formListRef = useRef<FormItemInstance>(); // 当前 formList 实例\n\n const operation: FormListFieldOperation = {\n add(defaultValue?: any, insertIndex?: number) {\n const cloneFields = [...fields];\n const index = insertIndex ?? cloneFields.length;\n cloneFields.splice(index, 0, {\n key: (key += 1),\n name: index,\n isListField: true,\n });\n cloneFields.forEach((field, index) => Object.assign(field, { name: index }));\n setFields(cloneFields);\n\n if (typeof defaultValue !== 'undefined') {\n const nextInitialValue = [...initialValue];\n nextInitialValue[index] = defaultValue;\n setInitialValue(nextInitialValue);\n }\n },\n remove(index: number | number[]) {\n const nextFields = fields\n .filter((_, i) => {\n if (Array.isArray(index)) return !index.includes(i);\n return i !== index;\n })\n .map((field, index) => Object.assign(field, { name: index }));\n\n setInitialValue(initialValue.filter((_, idx) => idx !== index));\n setFields(nextFields);\n },\n move(from: number, to: number) {\n const cloneFields = [...fields];\n const fromItem = { ...cloneFields[from] };\n const toItem = { ...cloneFields[to] };\n cloneFields[to] = fromItem;\n cloneFields[from] = toItem;\n setFields(cloneFields);\n },\n };\n\n // 外部设置 fields 优先级最高,可以更改渲染的节点\n function setListFields(fieldData: any[], callback: Function) {\n setFields(\n fieldData.map((_, index) => ({\n key: (key += 1),\n name: index,\n isListField: true,\n })),\n );\n // 延迟至 FormItem 渲染后再赋值\n requestAnimationFrame(() => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n const { name } = formItemRef.current;\n const data = get(fieldData, name);\n callback(formItemRef, data);\n });\n });\n }\n\n useEffect(() => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n const { name, value } = formItemRef.current;\n if (value) return;\n\n const data = get(initialValue, name);\n formItemRef.current.setField({ value: data, status: 'not' });\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fields, initialValue]);\n\n useEffect(() => {\n if (!name || !formMapRef) return;\n formMapRef.current.set(name, formListRef);\n\n return () => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n formMapRef.current.delete(name);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [name]);\n\n useImperativeHandle(\n formListRef,\n (): FormItemInstance => ({\n name,\n getValue() {\n const formListValue = [];\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n const { name, getValue } = formItemRef.current;\n const fieldValue = calcFieldValue(name, getValue());\n merge(formListValue, fieldValue);\n });\n return formListValue;\n },\n validate: (trigger = 'all') => {\n const resultList = [];\n const validates = [...formListMapRef.current.values()].map((formItemRef) =>\n formItemRef.current.validate(trigger),\n );\n return new Promise((resolve) => {\n Promise.all(validates).then((validateResult) => {\n validateResult.forEach((result) => {\n const errorKey = Object.keys(result)[0];\n const errorKeyList = errorKey.split(',');\n\n let errorValue = Object.values(result)[0];\n errorValue = calcFieldValue(errorKeyList, errorValue);\n\n merge(resultList, errorValue);\n });\n const errorItems = validateResult.filter((item) => Object.values(item)[0] !== true);\n if (errorItems.length) {\n resolve({ [String(name)]: resultList });\n } else {\n resolve({ [String(name)]: true });\n }\n });\n });\n },\n setValue: (fieldData: any[]) => {\n setListFields(fieldData, (formItemRef, data) => {\n formItemRef?.current?.setValue(data);\n });\n },\n setField: (fieldData: { value?: any[]; status?: string }) => {\n const { value, status } = fieldData;\n setListFields(value, (formItemRef, data) => {\n formItemRef?.current?.setField({ value: data, status });\n });\n },\n resetField: () => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n formItemRef.current.resetField();\n });\n setInitialValue([]);\n },\n setValidateMessage: (fieldData) => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n const { name } = formItemRef.current;\n const data = get(fieldData, name);\n\n formItemRef.current.setValidateMessage(data);\n });\n },\n resetValidate: () => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n formItemRef.current.resetValidate();\n });\n },\n }),\n );\n\n if (typeof children !== 'function') {\n log.error('Form', `FormList's children must be a function!`);\n return null;\n }\n\n return (\n <FormListContext.Provider value={{ name, rules, formListMapRef }}>\n {children(fields, operation)}\n </FormListContext.Provider>\n );\n};\n\nFormList.displayName = 'FormList';\n\nexport default FormList;\n"],"names":["key","FormList","props","useFormContext","formMapRef","name","initialData","rules","children","useState","initialValue","setInitialValue","map","data","index","isListField","fields","setFields","formListMapRef","useRef","Map","formListRef","operation","add","defaultValue","insertIndex","cloneFields","length","splice","forEach","field","Object","assign","nextInitialValue","remove","nextFields","filter","_","i","Array","isArray","includes","idx","move","from","to","fromItem","toItem","setListFields","fieldData","callback","requestAnimationFrame","current","values","formItemRef","get","useEffect","value","setField","status","set","useImperativeHandle","getValue","formListValue","fieldValue","calcFieldValue","merge","validate","trigger","resultList","validates","Promise","resolve","all","then","validateResult","result","errorKey","keys","errorKeyList","split","errorValue","errorItems","item","String","setValue","resetField","setValidateMessage","resetValidate","log","error","React","createElement","FormListContext","Provider","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"FormList.js","sources":["../../src/form/FormList.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, useImperativeHandle } from 'react';\nimport merge from 'lodash/merge';\nimport get from 'lodash/get';\nimport { FormListContext, useFormContext } from './FormContext';\nimport { FormItemInstance } from './FormItem';\nimport { TdFormListProps, FormListFieldOperation, FormListField } from './type';\nimport { calcFieldValue } from './utils';\nimport log from '../_common/js/log';\n\nlet key = 0;\n\nconst FormList = (props: TdFormListProps) => {\n const { formMapRef } = useFormContext();\n const { name, initialData = [], rules, children } = props;\n\n const [initialValue, setInitialValue] = useState(initialData);\n const [fields, setFields] = useState<Array<FormListField>>(\n initialData.map((data, index) => ({\n key: (key += 1),\n name: index,\n isListField: true,\n ...data,\n })),\n );\n const formListMapRef = useRef(new Map()); // 收集 formItem 实例\n const formListRef = useRef<FormItemInstance>(); // 当前 formList 实例\n const fieldsTaskQueueRef = useRef([]); // 记录更改 fields 数据后 callback 队列\n\n const operation: FormListFieldOperation = {\n add(defaultValue?: any, insertIndex?: number) {\n const cloneFields = [...fields];\n const index = insertIndex ?? cloneFields.length;\n cloneFields.splice(index, 0, {\n key: (key += 1),\n name: index,\n isListField: true,\n });\n cloneFields.forEach((field, index) => Object.assign(field, { name: index }));\n setFields(cloneFields);\n\n if (typeof defaultValue !== 'undefined') {\n const nextInitialValue = [...initialValue];\n nextInitialValue[index] = defaultValue;\n setInitialValue(nextInitialValue);\n }\n },\n remove(index: number | number[]) {\n const nextFields = fields\n .filter((_, i) => {\n if (Array.isArray(index)) return !index.includes(i);\n return i !== index;\n })\n .map((field, index) => Object.assign(field, { name: index }));\n\n setInitialValue(initialValue.filter((_, idx) => idx !== index));\n setFields(nextFields);\n },\n move(from: number, to: number) {\n const cloneFields = [...fields];\n const fromItem = { ...cloneFields[from] };\n const toItem = { ...cloneFields[to] };\n cloneFields[to] = fromItem;\n cloneFields[from] = toItem;\n setFields(cloneFields);\n },\n };\n\n // 外部设置 fields 优先级最高,可以更改渲染的节点\n function setListFields(fieldData: any[], callback: Function) {\n setFields(\n fieldData.map((_, index) => ({\n key: (key += 1),\n name: index,\n isListField: true,\n })),\n );\n // 添加至队列中 等待下次渲染完成执行对应逻辑\n fieldsTaskQueueRef.current.push({ callback, fieldData });\n }\n\n useEffect(() => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n if (!formItemRef.current) return;\n\n const { name, value } = formItemRef.current;\n if (value) return; // 内部有值则忽略初始化设置\n\n const data = get(initialValue, name);\n formItemRef.current.setField({ value: data, status: 'not' });\n });\n }, [initialValue]);\n\n useEffect(() => {\n const currentQueue = fieldsTaskQueueRef.current.pop();\n if (!currentQueue) return;\n\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n if (!formItemRef.current) return;\n\n const { name } = formItemRef.current;\n const { fieldData, callback } = currentQueue;\n const data = get(fieldData, name);\n callback(formItemRef, data);\n });\n }, [fields]);\n\n useEffect(() => {\n if (!name || !formMapRef) return;\n formMapRef.current.set(name, formListRef);\n\n return () => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n formMapRef.current.delete(name);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [name]);\n\n useImperativeHandle(\n formListRef,\n (): FormItemInstance => ({\n name,\n getValue() {\n const formListValue = [];\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n const { name, getValue } = formItemRef.current;\n const fieldValue = calcFieldValue(name, getValue());\n merge(formListValue, fieldValue);\n });\n return formListValue;\n },\n validate: (trigger = 'all') => {\n const resultList = [];\n const validates = [...formListMapRef.current.values()].map((formItemRef) =>\n formItemRef?.current?.validate?.(trigger),\n );\n return new Promise((resolve) => {\n Promise.all(validates).then((validateResult) => {\n validateResult.forEach((result) => {\n const errorKey = Object.keys(result)[0];\n const errorKeyList = errorKey.split(',');\n\n let errorValue = Object.values(result)[0];\n errorValue = calcFieldValue(errorKeyList, errorValue);\n\n merge(resultList, errorValue);\n });\n const errorItems = validateResult.filter((item) => Object.values(item)[0] !== true);\n if (errorItems.length) {\n resolve({ [String(name)]: resultList });\n } else {\n resolve({ [String(name)]: true });\n }\n });\n });\n },\n setValue: (fieldData: any[]) => {\n setListFields(fieldData, (formItemRef, data) => {\n formItemRef?.current?.setValue?.(data);\n });\n },\n setField: (fieldData: { value?: any[]; status?: string }) => {\n const { value, status } = fieldData;\n setListFields(value, (formItemRef, data) => {\n formItemRef?.current?.setField?.({ value: data, status });\n });\n },\n resetField: () => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n formItemRef?.current?.resetField?.();\n });\n setInitialValue([]);\n },\n setValidateMessage: (fieldData) => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n const { name } = formItemRef.current;\n const data = get(fieldData, name);\n\n formItemRef?.current?.setValidateMessage?.(data);\n });\n },\n resetValidate: () => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n formItemRef?.current?.resetValidate?.();\n });\n },\n }),\n );\n\n if (typeof children !== 'function') {\n log.error('Form', `FormList's children must be a function!`);\n return null;\n }\n\n return (\n <FormListContext.Provider value={{ name, rules, formListMapRef }}>\n {children(fields, operation)}\n </FormListContext.Provider>\n );\n};\n\nFormList.displayName = 'FormList';\n\nexport default FormList;\n"],"names":["key","FormList","props","useFormContext","formMapRef","name","initialData","rules","children","useState","initialValue","setInitialValue","map","data","index","isListField","fields","setFields","formListMapRef","useRef","Map","formListRef","fieldsTaskQueueRef","operation","add","defaultValue","insertIndex","cloneFields","length","splice","forEach","field","Object","assign","nextInitialValue","remove","nextFields","filter","_","i","Array","isArray","includes","idx","move","from","to","fromItem","toItem","setListFields","fieldData","callback","current","push","useEffect","values","formItemRef","value","get","setField","status","currentQueue","pop","set","useImperativeHandle","getValue","formListValue","fieldValue","calcFieldValue","merge","validate","trigger","resultList","validates","Promise","resolve","all","then","validateResult","result","errorKey","keys","errorKeyList","split","errorValue","errorItems","item","String","setValue","resetField","setValidateMessage","resetValidate","log","error","React","createElement","FormListContext","Provider","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAIA,GAAM,GAAA,CAAV,CAAA;;AAEA,IAAMC,QAAA,GAAW,SAAXA,QAAW,CAACC,KAAD,EAA4B;AACrC,EAAA,IAAA,eAAA,GAAiBC,cAAe,EAAhC;MAAEC,UAAF,mBAAEA,UAAF,CAAA;;AACN,EAAA,IAAQC,IAAR,GAAoDH,KAApD,CAAQG,IAAR;MAAoDH,kBAAAA,GAAAA,KAApD,CAAcI,WAAd;MAAcA,WAAd,mCAA4B,EAA5B,GAAA,kBAAA;AAAA,MAAgCC,KAAhC,GAAoDL,KAApD,CAAgCK,KAAhC;AAAA,MAAuCC,QAAvC,GAAoDN,KAApD,CAAuCM,QAAvC,CAAA;;EAEA,IAAwCC,SAAAA,GAAAA,SAASH,YAAjD;AAAA,MAAA,UAAA,GAAA,cAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAA,MAAOI,YAAP,GAAA,UAAA,CAAA,CAAA,CAAA;AAAA,MAAqBC,eAArB,GAAA,UAAA,CAAA,CAAA,CAAA,CAAA;;EACM,IAAsBF,UAAAA,GAAAA,QAAA,CAC1BH,WAAY,CAAAM,GAAZ,CAAgB,UAACC,IAAD,EAAOC,KAAP,EAAA;AAAA,IAAA,OAAA,aAAA,CAAA;MACdd,KAAMA,GAAO,IAAA,CADC;AAEdK,MAAAA,IAAM,EAAAS,KAFQ;AAGdC,MAAAA,WAAa,EAAA,IAAA;AAHC,KAAA,EAIXF,IAJW,CAAA,CAAA;AAAA,GAAhB,CAD0B,CAAtB;AAAA,MAAA,UAAA,GAAA,cAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAA,MAACG,MAAD,GAAA,UAAA,CAAA,CAAA,CAAA;AAAA,MAASC,SAAT,GAAA,UAAA,CAAA,CAAA,CAAA,CAAA;;EAQN,IAAMC,cAAiB,GAAAC,MAAA,iBAAW,IAAAC,GAAA,EAAX,CAAvB,CAAA;EACA,IAAMC,cAAcF,MAAyB,EAA7C,CAAA;AACM,EAAA,IAAAG,kBAAA,GAAqBH,MAAO,CAAA,EAAA,CAA5B,CAAA;AAEN,EAAA,IAAMI,SAAoC,GAAA;AACxCC,IAAAA,GADwC,EACpCC,SAAAA,GAAAA,CAAAA,YADoC,EAChBC,WADgB,EACM;MACtC,IAAAC,WAAA,GAAkBX,kBAAAA,CAAAA,MAAlB,CAAA,CAAA;;MACA,IAAAF,KAAA,GAAQY,WAAR,KAAQA,IAAAA,IAAAA,WAAR,cAAQA,WAAR,GAAuBC,WAAY,CAAAC,MAAnC,CAAA;AACMD,MAAAA,WAAA,CAAAE,MAAA,CAAOf,KAAP,EAAc,CAAd,EAAiB;QAC3Bd,KAAMA,GAAO,IAAA,CADc;AAE3BK,QAAAA,IAAM,EAAAS,KAFqB;AAG3BC,QAAAA,WAAa,EAAA,IAAA;OAHH,CAAA,CAAA;AAKAY,MAAAA,WAAA,CAAAG,OAAA,CAAQ,UAACC,KAAD,EAAQjB,MAAR,EAAA;AAAA,QAAA,OAAkBkB,MAAA,CAAOC,MAAP,CAAcF,KAAd,EAAqB;AAAE1B,UAAAA,IAAA,EAAMS,MAAAA;AAAR,SAArB,CAAlB,CAAA;OAAR,CAAA,CAAA;MACZG,SAAA,CAAUU,WAAV,CAAA,CAAA;;AAEI,MAAA,IAAA,OAAOF,YAAP,KAAwB,WAAxB,EAAqC;QACjC,IAAAS,gBAAA,GAAuBxB,kBAAAA,CAAAA,YAAvB,CAAA,CAAA;;AACNwB,QAAAA,gBAAA,CAAiBpB,KAAjB,CAAA,GAA0BW,YAA1B,CAAA;QACAd,eAAA,CAAgBuB,gBAAhB,CAAA,CAAA;AACF,OAAA;KAhBsC;IAkBxCC,MAlBwC,EAAA,SAAA,MAAA,CAkBjCrB,KAlBiC,EAkBP;MAC/B,IAAMsB,UAAa,GAAApB,MAAA,CAChBqB,MADgB,CACT,UAACC,CAAD,EAAIC,CAAJ,EAAU;AACZ,QAAA,IAAAC,KAAA,CAAMC,OAAN,CAAc3B,KAAd,CAAA,EAA6B,OAAA,CAACA,KAAM,CAAA4B,QAAN,CAAeH,CAAf,CAAD,CAAA;QACjC,OAAOA,CAAM,KAAAzB,KAAb,CAAA;AACD,OAJgB,EAKhBF,GALgB,CAKZ,UAACmB,KAAD,EAAQjB,MAAR,EAAA;AAAA,QAAA,OAAkBkB,MAAO,CAAAC,MAAP,CAAcF,KAAd,EAAqB;AAAE1B,UAAAA,IAAMS,EAAAA,MAAAA;AAAR,SAArB,CAAlB,CAAA;AAAA,OALY,CAAnB,CAAA;MAOAH,eAAA,CAAgBD,aAAa2B,MAAb,CAAoB,UAACC,CAAD,EAAIK,GAAJ,EAAA;QAAA,OAAYA,GAAA,KAAQ7B,KAApB,CAAA;AAAA,OAApB,CAAhB,CAAA,CAAA;MACAG,SAAA,CAAUmB,UAAV,CAAA,CAAA;KA3BsC;AA6BxCQ,IAAAA,IA7BwC,EA6BnCC,SAAAA,IAAAA,CAAAA,IA7BmC,EA6BrBC,EA7BqB,EA6BT;MACvB,IAAAnB,WAAA,GAAkBX,kBAAAA,CAAAA,MAAlB,CAAA,CAAA;;AACN,MAAA,IAAM+B,QAAW,GAAKpB,aAAAA,CAAAA,EAAAA,EAAAA,WAAA,CAAYkB,IAAZ,CAAL,CAAjB,CAAA;;AACA,MAAA,IAAMG,MAAS,GAAKrB,aAAAA,CAAAA,EAAAA,EAAAA,WAAA,CAAYmB,EAAZ,CAAL,CAAf,CAAA;;AACAnB,MAAAA,WAAA,CAAYmB,EAAZ,CAAA,GAAkBC,QAAlB,CAAA;AACApB,MAAAA,WAAA,CAAYkB,IAAZ,CAAA,GAAoBG,MAApB,CAAA;MACA/B,SAAA,CAAUU,WAAV,CAAA,CAAA;AACF,KAAA;GApCF,CAAA;;AAwCS,EAAA,SAAAsB,aAAA,CAAcC,SAAd,EAAgCC,QAAhC,EAAoD;IAC3DlC,SAAA,CACEiC,SAAU,CAAAtC,GAAV,CAAc,UAAC0B,CAAD,EAAIxB,KAAJ,EAAA;MAAA,OAAe;QAC3Bd,KAAMA,GAAO,IAAA,CADc;AAE3BK,QAAAA,IAAM,EAAAS,KAFqB;AAG3BC,QAAAA,WAAa,EAAA,IAAA;OAHD,CAAA;AAAA,KAAd,CADF,CAAA,CAAA;AAQAO,IAAAA,kBAAA,CAAmB8B,OAAnB,CAA2BC,IAA3B,CAAgC;AAAEF,MAAAA,QAAA,EAAAA,QAAF;AAAYD,MAAAA,WAAAA,SAAAA;KAA5C,CAAA,CAAA;AACF,GAAA;;AAEAI,EAAAA,SAAA,CAAU,YAAM;IACb,kBAAGpC,CAAAA,eAAekC,OAAf,CAAuBG,MAAvB,EAAH,CAAA,CAAoCzB,OAApC,CAA4C,UAAC0B,WAAD,EAAiB;AAC5D,MAAA,IAAI,CAACA,WAAY,CAAAJ,OAAjB,EAA0B,OAAA;MAE1B,IAAwBI,oBAAAA,GAAAA,WAAY,CAAAJ,OAApC;UAAQ/C,KAAR,wBAAQA,IAAR;UAAcoD,KAAd,wBAAcA,KAAd,CAAA;AACI,MAAA,IAAAA,KAAA,EAAO,OAAA;AAEL,MAAA,IAAA5C,IAAA,GAAO6C,KAAI,CAAAhD,YAAA,EAAcL,KAAd,CAAX,CAAA;AACNmD,MAAAA,WAAA,CAAYJ,OAAZ,CAAoBO,QAApB,CAA6B;AAAEF,QAAAA,OAAO5C,IAAT;AAAe+C,QAAAA,MAAA,EAAQ,KAAA;OAApD,CAAA,CAAA;KAPD,CAAA,CAAA;AASH,GAVA,EAUG,CAAClD,YAAD,CAVH,CAAA,CAAA;AAYA4C,EAAAA,SAAA,CAAU,YAAM;AACR,IAAA,IAAAO,YAAA,GAAevC,kBAAmB,CAAA8B,OAAnB,CAA2BU,GAA3B,EAAf,CAAA;IACN,IAAI,CAACD,YAAL,EAAmB,OAAA;;IAElB,kBAAG3C,CAAAA,eAAekC,OAAf,CAAuBG,MAAvB,EAAH,CAAA,CAAoCzB,OAApC,CAA4C,UAAC0B,WAAD,EAAiB;AAC5D,MAAA,IAAI,CAACA,WAAY,CAAAJ,OAAjB,EAA0B,OAAA;AAE1B,MAAA,IAAQ/C,KAAR,GAAiBmD,WAAY,CAAAJ,OAA7B,CAAQ/C,IAAR,CAAA;AACM,MAAA,IAAE6C,SAAF,GAA0BW,YAA1B,CAAEX,SAAF;AAAA,UAAaC,QAAb,GAA0BU,YAA1B,CAAaV,QAAb,CAAA;AACA,MAAA,IAAAtC,IAAA,GAAO6C,KAAI,CAAAR,SAAA,EAAW7C,KAAX,CAAX,CAAA;AACN8C,MAAAA,QAAA,CAASK,WAAT,EAAsB3C,IAAtB,CAAA,CAAA;KAND,CAAA,CAAA;AAQH,GAZA,EAYG,CAACG,MAAD,CAZH,CAAA,CAAA;AAcAsC,EAAAA,SAAA,CAAU,YAAM;AACV,IAAA,IAAA,CAACjD,IAAD,IAAS,CAACD,UAAV,EAAsB,OAAA;AACfA,IAAAA,UAAA,CAAAgD,OAAA,CAAQW,GAAR,CAAY1D,IAAZ,EAAkBgB,WAAlB,CAAA,CAAA;AAEX,IAAA,OAAO,YAAM;MAEAjB,UAAA,CAAAgD,OAAA,CAAA,QAAA,CAAA,CAAe/C,IAAf,CAAA,CAAA;KAFb,CAAA;AAKF,GATA,EASG,CAACA,IAAD,CATH,CAAA,CAAA;EAWA2D,mBAAA,CACE3C,WADF,EAEE,YAAA;IAAA,OAAyB;AACvBhB,MAAAA,IAAA,EAAAA,IADuB;AAEvB4D,MAAAA,QAFuB,EAEZ,SAAA,QAAA,GAAA;QACT,IAAMC,gBAAgB,EAAtB,CAAA;;QACC,kBAAGhD,CAAAA,eAAekC,OAAf,CAAuBG,MAAvB,EAAH,CAAA,CAAoCzB,OAApC,CAA4C,UAAC0B,WAAD,EAAiB;UAC5D,IAA2BA,qBAAAA,GAAAA,WAAY,CAAAJ,OAAvC;cAAQ/C,KAAR,yBAAQA,IAAR;cAAc4D,QAAd,yBAAcA,QAAd,CAAA;UACA,IAAME,UAAa,GAAAC,cAAA,CAAe/D,KAAf,EAAqB4D,QAAA,EAArB,CAAnB,CAAA;AACAI,UAAAA,OAAA,CAAMH,aAAN,EAAqBC,UAArB,CAAA,CAAA;SAHD,CAAA,CAAA;;AAKM,QAAA,OAAAD,aAAA,CAAA;OATc;AAWvBI,MAAAA,QAAA,EAAU,SAAqB,QAAA,GAAA;QAAA,IAApBC,OAAoB,uEAAV,KAAU,CAAA;QAC7B,IAAMC,aAAa,EAAnB,CAAA;;AACA,QAAA,IAAMC,YAAY,kBAAIvD,CAAAA,eAAekC,OAAf,CAAuBG,MAAvB,EAAJ,CAAA,CAAqC3C,GAArC,CAAyC,UAAC4C,WAAD,EAAA;AAAA,UAAA,IAAA,qBAAA,EAAA,qBAAA,CAAA;;AAAA,UAAA,OACzDA,WADyD,KAAA,IAAA,IACzDA,WADyD,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GACzDA,WAAa,CAAAJ,OAD4C,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GACzD,qBAAsBkB,CAAAA,QADmC,MACzD,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAA,IAAA,CAAA,qBAAA,EAAiCC,OAAjC,CADyD,CAAA;AAAA,SAAzC,CAAlB,CAAA;;AAGO,QAAA,OAAA,IAAIG,OAAJ,CAAY,UAACC,OAAD,EAAa;UAC9BD,OAAA,CAAQE,GAAR,CAAYH,SAAZ,EAAuBI,IAAvB,CAA4B,UAACC,cAAD,EAAoB;AAC/BA,YAAAA,cAAA,CAAAhD,OAAA,CAAQ,UAACiD,MAAD,EAAY;cACjC,IAAMC,QAAW,GAAAhD,MAAA,CAAOiD,IAAP,CAAYF,MAAZ,CAAoB,CAAA,CAApB,CAAjB,CAAA;AACM,cAAA,IAAAG,YAAA,GAAeF,QAAS,CAAAG,KAAT,CAAe,GAAf,CAAf,CAAA;cAEN,IAAIC,UAAa,GAAApD,MAAA,CAAOuB,MAAP,CAAcwB,MAAd,CAAsB,CAAA,CAAtB,CAAjB,CAAA;AACaK,cAAAA,UAAA,GAAAhB,cAAA,CAAec,YAAf,EAA6BE,UAA7B,CAAA,CAAA;AAEbf,cAAAA,OAAA,CAAMG,UAAN,EAAkBY,UAAlB,CAAA,CAAA;aAPa,CAAA,CAAA;AAST,YAAA,IAAAC,UAAA,GAAaP,cAAe,CAAAzC,MAAf,CAAsB,UAACiD,IAAD,EAAA;cAAA,OAAUtD,OAAOuB,MAAP,CAAc+B,IAAd,CAAoB,CAAA,CAApB,MAA2B,IAArC,CAAA;AAAA,aAAtB,CAAb,CAAA;;YACN,IAAID,WAAWzD,MAAf,EAAuB;AACrB+C,cAAAA,OAAA,qBAAWY,MAAA,CAAOlF,IAAP,CAAX,EAA0BmE,UAA1B,CAAA,CAAA,CAAA;AACK,aAFP,MAEO;AACLG,cAAAA,OAAA,qBAAWY,MAAA,CAAOlF,IAAP,CAAX,EAA0B,IAA1B,CAAA,CAAA,CAAA;AACF,aAAA;WAfF,CAAA,CAAA;AAiBD,SAlBM,CAAA,CAAA;OAhBc;MAoCvBmF,QAAA,EAAU,SAACtC,QAAAA,CAAAA,SAAD,EAAsB;AAChBD,QAAAA,aAAA,CAAAC,SAAA,EAAW,UAACM,WAAD,EAAc3C,IAAd,EAAuB;AAAA,UAAA,IAAA,qBAAA,EAAA,qBAAA,CAAA;;UACjC2C,WAAA,KAAA,IAAA,IAAAA,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAAA,WAAA,CAAAJ,OAAA,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAA,qBAAA,CAASoC,QAAT,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAA,IAAA,CAAA,qBAAA,EAAoB3E,IAApB,CAAA,CAAA;AACd,SAFa,CAAA,CAAA;OArCO;MAyCvB8C,QAAA,EAAU,SAACT,QAAAA,CAAAA,SAAD,EAAmD;AACrD,QAAA,IAAEO,KAAF,GAAoBP,SAApB,CAAEO,KAAF;AAAA,YAASG,MAAT,GAAoBV,SAApB,CAASU,MAAT,CAAA;AACQX,QAAAA,aAAA,CAAAQ,KAAA,EAAO,UAACD,WAAD,EAAc3C,IAAd,EAAuB;AAAA,UAAA,IAAA,qBAAA,EAAA,qBAAA,CAAA;;UAC1C2C,WAAA,KAAA,IAAA,IAAAA,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAAA,WAAA,CAAaJ,OAAb,MAAsBO,IAAAA,IAAAA,qBAAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAAA,GAAAA,qBAAAA,CAAAA,QAAtB,MAAiC,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAA,IAAA,CAAA,qBAAA,EAAA;AAAEF,YAAAA,KAAO,EAAA5C,IAAT;AAAe+C,YAAAA,QAAAA,MAAAA;WAAhD,CAAA,CAAA;AACD,SAFa,CAAA,CAAA;OA3CO;AA+CvB6B,MAAAA,YAAY,SAAM,UAAA,GAAA;QACf,kBAAGvE,CAAAA,eAAekC,OAAf,CAAuBG,MAAvB,EAAH,CAAA,CAAoCzB,OAApC,CAA4C,UAAC0B,WAAD,EAAiB;AAAA,UAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;UAC5DA,WAAA,KAAA,IAAA,IAAAA,WAAA,KAAA,KAAA,CAAA,qCAAAA,WAAA,CAAaJ,OAAb,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,sBAAA,GAAA,qBAAA,CAAsBqC,UAAtB,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAA,IAAA,CAAA,qBAAA,CAAA,CAAA;SADD,CAAA,CAAA;;QAGD9E,eAAA,CAAgB,EAAhB,CAAA,CAAA;OAnDqB;MAqDvB+E,kBAAA,EAAoB,SAACxC,kBAAAA,CAAAA,SAAD,EAAe;QAChC,kBAAGhC,CAAAA,eAAekC,OAAf,CAAuBG,MAAvB,EAAH,CAAA,CAAoCzB,OAApC,CAA4C,UAAC0B,WAAD,EAAiB;AAAA,UAAA,IAAA,sBAAA,EAAA,sBAAA,CAAA;;AAC5D,UAAA,IAAQnD,KAAR,GAAiBmD,WAAY,CAAAJ,OAA7B,CAAQ/C,IAAR,CAAA;AACM,UAAA,IAAAQ,IAAA,GAAO6C,KAAI,CAAAR,SAAA,EAAW7C,KAAX,CAAX,CAAA;UAEOmD,WAAA,KAAA,IAAA,IAAAA,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,sBAAA,GAAAA,WAAA,CAAAJ,OAAA,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,sBAAA,GAAA,sBAAA,CAASsC,kBAAT,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAA,IAAA,CAAA,sBAAA,EAA8B7E,IAA9B,CAAA,CAAA;SAJd,CAAA,CAAA;OAtDoB;AA6DvB8E,MAAAA,eAAe,SAAM,aAAA,GAAA;QAClB,kBAAGzE,CAAAA,eAAekC,OAAf,CAAuBG,MAAvB,EAAH,CAAA,CAAoCzB,OAApC,CAA4C,UAAC0B,WAAD,EAAiB;AAAA,UAAA,IAAA,sBAAA,EAAA,sBAAA,CAAA;;UAC5DA,WAAA,KAAA,IAAA,IAAAA,WAAA,KAAA,KAAA,CAAA,sCAAAA,WAAA,CAAaJ,OAAb,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,sBAAA,GAAA,sBAAA,CAAsBuC,aAAtB,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAA,IAAA,CAAA,sBAAA,CAAA,CAAA;SADD,CAAA,CAAA;AAGH,OAAA;KAjEF,CAAA;AAAA,GAFF,CAAA,CAAA;;AAuEI,EAAA,IAAA,OAAOnF,QAAP,KAAoB,UAApB,EAAgC;IAC9BoF,GAAA,CAAAC,KAAA,CAAM,MAAN,EAAA,yCAAA,CAAA,CAAA;AACG,IAAA,OAAA,IAAA,CAAA;AACT,GAAA;;EAGE,sBAAAC,KAAA,CAAAC,aAAA,CAACC,gBAAgBC,QAAjB,EAAC;AAAyBxC,IAAAA,KAAO,EAAA;AAAEpD,MAAAA,IAAM,EAANA,IAAF;AAAQE,MAAAA,KAAA,EAAAA,KAAR;AAAeW,MAAAA,cAAe,EAAfA,cAAAA;AAAf,KAAA;AAAhC,GAAD,EACGV,QAAA,CAASQ,MAAT,EAAiBO,SAAjB,CADH,CAAA,CAAA;AAIJ,EA3LA;;AA6LAtB,QAAA,CAASiG,WAAT,GAAuB,UAAvB;;;;"}
@@ -9,5 +9,5 @@ export interface InternalHooks {
9
9
  }
10
10
  export interface InternalFormInstance extends FormInstanceFunctions {
11
11
  _init?: boolean;
12
- getInternalHooks?: (secret: Symbol) => InternalHooks | null;
12
+ getInternalHooks?: (secret: string) => InternalHooks | null;
13
13
  }
@@ -1,3 +1,3 @@
1
1
  import type { InternalFormInstance } from './interface';
2
- export declare const HOOK_MARK: unique symbol;
2
+ export declare const HOOK_MARK = "TD_FORM_INTERNAL_HOOKS";
3
3
  export default function useForm(form?: InternalFormInstance): InternalFormInstance[];
@@ -12,7 +12,7 @@ import '../../_common/js/log/index.js';
12
12
  import log from '../../_common/js/log/log.js';
13
13
  import '../../_chunks/dep-24599104.js';
14
14
 
15
- var HOOK_MARK = Symbol("TD_FORM_INTERNAL_HOOKS");
15
+ var HOOK_MARK = "TD_FORM_INTERNAL_HOOKS";
16
16
 
17
17
  var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {
18
18
  var _this = this;
@@ -1 +1 @@
1
- {"version":3,"file":"useForm.js","sources":["../../../src/form/hooks/useForm.ts"],"sourcesContent":["import { useState, useRef } from 'react';\nimport type { NamePath } from '../type';\nimport type { WatchCallBack, InternalHooks, InternalFormInstance, Store } from './interface';\nimport log from '../../_common/js/log';\n\nexport const HOOK_MARK = Symbol('TD_FORM_INTERNAL_HOOKS');\n\n// TODO 后续将所有实例函数迁移到 FormStore 内统一管理\nclass FormStore {\n private prevStore: Store = {};\n\n private store: Store = {};\n\n private forceRootUpdate: () => void;\n\n constructor(forceRootUpdate: () => void) {\n this.forceRootUpdate = forceRootUpdate;\n }\n\n public getForm = (): InternalFormInstance => ({\n submit: null,\n reset: null,\n validate: null,\n validateOnly: null,\n clearValidate: null,\n setFields: null,\n setFieldsValue: null,\n setValidateMessage: null,\n getFieldValue: null,\n getFieldsValue: null,\n _init: true,\n\n getInternalHooks: this.getInternalHooks,\n });\n\n private getInternalHooks = (key: Symbol): InternalHooks | null => {\n if (key === HOOK_MARK) {\n return {\n notifyWatch: this.notifyWatch,\n registerWatch: this.registerWatch,\n getPrevStore: () => this.prevStore,\n setPrevStore: (store: object) => {\n this.prevStore = store;\n },\n };\n }\n\n log.warn('Form', '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n\n private watchList: WatchCallBack[] = [];\n\n private registerWatch: InternalHooks['registerWatch'] = (callback) => {\n this.watchList.push(callback);\n\n return () => {\n this.watchList = this.watchList.filter((fn) => fn !== callback);\n };\n };\n\n private notifyWatch = (namePath: NamePath = []) => {\n // No need to cost perf when nothing need to watch\n if (this.watchList.length) {\n const values = this.getFieldsValue?.(namePath);\n\n this.watchList.forEach((callback) => {\n callback(values, namePath);\n });\n }\n };\n\n // TODO 暂时先从组件初始化时外部 merge 覆盖相关 form 操作函数\n private getFieldsValue = null;\n}\n\nexport default function useForm(form?: InternalFormInstance) {\n const formRef = useRef<InternalFormInstance>({});\n const [, forceUpdate] = useState({});\n\n // eslint-disable-next-line\n if (!formRef.current._init) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n const forceReRender = () => {\n forceUpdate({});\n };\n\n const formStore: FormStore = new FormStore(forceReRender);\n\n formRef.current = formStore.getForm();\n }\n }\n\n return [formRef.current];\n}\n"],"names":["HOOK_MARK","Symbol","FormStore","forceRootUpdate","submit","reset","validate","validateOnly","clearValidate","setFields","setFieldsValue","setValidateMessage","getFieldValue","getFieldsValue","_init","getInternalHooks","key","notifyWatch","registerWatch","getPrevStore","prevStore","setPrevStore","store","log","warn","callback","watchList","push","filter","fn","namePath","length","values","forEach","useForm","form","formRef","useRef","useState","forceUpdate","current","forceReRender","formStore","getForm"],"mappings":"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"}
1
+ {"version":3,"file":"useForm.js","sources":["../../../src/form/hooks/useForm.ts"],"sourcesContent":["import { useState, useRef } from 'react';\nimport type { NamePath } from '../type';\nimport type { WatchCallBack, InternalHooks, InternalFormInstance, Store } from './interface';\nimport log from '../../_common/js/log';\n\nexport const HOOK_MARK = 'TD_FORM_INTERNAL_HOOKS';\n\n// TODO 后续将所有实例函数迁移到 FormStore 内统一管理\nclass FormStore {\n private prevStore: Store = {};\n\n private store: Store = {};\n\n private forceRootUpdate: () => void;\n\n constructor(forceRootUpdate: () => void) {\n this.forceRootUpdate = forceRootUpdate;\n }\n\n public getForm = (): InternalFormInstance => ({\n submit: null,\n reset: null,\n validate: null,\n validateOnly: null,\n clearValidate: null,\n setFields: null,\n setFieldsValue: null,\n setValidateMessage: null,\n getFieldValue: null,\n getFieldsValue: null,\n _init: true,\n\n getInternalHooks: this.getInternalHooks,\n });\n\n private getInternalHooks = (key: string): InternalHooks | null => {\n if (key === HOOK_MARK) {\n return {\n notifyWatch: this.notifyWatch,\n registerWatch: this.registerWatch,\n getPrevStore: () => this.prevStore,\n setPrevStore: (store: object) => {\n this.prevStore = store;\n },\n };\n }\n\n log.warn('Form', '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n\n private watchList: WatchCallBack[] = [];\n\n private registerWatch: InternalHooks['registerWatch'] = (callback) => {\n this.watchList.push(callback);\n\n return () => {\n this.watchList = this.watchList.filter((fn) => fn !== callback);\n };\n };\n\n private notifyWatch = (namePath: NamePath = []) => {\n // No need to cost perf when nothing need to watch\n if (this.watchList.length) {\n const values = this.getFieldsValue?.(namePath);\n\n this.watchList.forEach((callback) => {\n callback(values, namePath);\n });\n }\n };\n\n // TODO 暂时先从组件初始化时外部 merge 覆盖相关 form 操作函数\n private getFieldsValue = null;\n}\n\nexport default function useForm(form?: InternalFormInstance) {\n const formRef = useRef<InternalFormInstance>({});\n const [, forceUpdate] = useState({});\n\n // eslint-disable-next-line\n if (!formRef.current._init) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n const forceReRender = () => {\n forceUpdate({});\n };\n\n const formStore: FormStore = new FormStore(forceReRender);\n\n formRef.current = formStore.getForm();\n }\n }\n\n return [formRef.current];\n}\n"],"names":["HOOK_MARK","FormStore","forceRootUpdate","submit","reset","validate","validateOnly","clearValidate","setFields","setFieldsValue","setValidateMessage","getFieldValue","getFieldsValue","_init","getInternalHooks","key","notifyWatch","registerWatch","getPrevStore","prevStore","setPrevStore","store","log","warn","callback","watchList","push","filter","fn","namePath","length","values","forEach","useForm","form","formRef","useRef","useState","forceUpdate","current","forceReRender","formStore","getForm"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Form.js","sources":["../../src/form/Form.tsx"],"sourcesContent":["import React, { useRef, useImperativeHandle } from 'react';\nimport classNames from 'classnames';\nimport useConfig from '../hooks/useConfig';\nimport noop from '../_util/noop';\nimport forwardRefWithStatics from '../_util/forwardRefWithStatics';\nimport type { TdFormProps } from './type';\nimport type { InternalFormInstance } from './hooks/interface';\nimport useInstance from './hooks/useInstance';\nimport useForm, { HOOK_MARK } from './hooks/useForm';\nimport useWatch from './hooks/useWatch';\nimport { StyledProps } from '../common';\nimport FormContext from './FormContext';\nimport FormItem from './FormItem';\nimport FormList from './FormList';\nimport { formDefaultProps } from './defaultProps';\n\nexport interface FormProps extends TdFormProps, StyledProps {\n children?: React.ReactNode;\n}\n\nconst Form = forwardRefWithStatics(\n (props: FormProps, ref) => {\n const { classPrefix, form: globalFormConfig } = useConfig();\n\n const {\n style,\n className,\n labelWidth,\n statusIcon,\n labelAlign,\n layout,\n colon,\n initialData,\n requiredMark = globalFormConfig.requiredMark,\n scrollToFirstError,\n showErrorMessage,\n resetType,\n rules,\n errorMessage = globalFormConfig.errorMessage,\n preventSubmitDefault,\n disabled,\n children,\n onReset,\n onValuesChange = noop,\n } = props;\n\n const formClass = classNames(`${classPrefix}-form`, className, {\n [`${classPrefix}-form-inline`]: layout === 'inline',\n });\n\n const [form] = useForm(props.form); // 内部与外部共享 form 实例,外部不传则内部创建\n const formRef: React.RefObject<HTMLFormElement> = useRef();\n const formMapRef = useRef(new Map()); // 收集所有包含 name 属性 formItem 实例\n const formInstance = useInstance(props, formRef, formMapRef);\n\n useImperativeHandle(ref, () => formInstance);\n Object.assign(form, { ...formInstance });\n\n function onResetHandler(e: React.FormEvent<HTMLFormElement>) {\n [...formMapRef.current.values()].forEach((formItemRef) => {\n formItemRef?.current.resetField();\n });\n (form as InternalFormInstance)?.getInternalHooks?.(HOOK_MARK)?.notifyWatch?.([]);\n onReset?.({ e });\n }\n\n function onFormItemValueChange(changedValue: Record<string, unknown>) {\n const allFields = formInstance.getFieldsValue(true);\n onValuesChange(changedValue, allFields);\n }\n\n function onKeyDownHandler(e: React.KeyboardEvent<HTMLFormElement>) {\n // 禁用 input 输入框回车自动提交 form\n if ((e.target as Element).tagName.toLowerCase() !== 'input') return;\n if (preventSubmitDefault && e.key === 'Enter') {\n e.preventDefault?.();\n e.stopPropagation?.();\n }\n }\n\n return (\n <FormContext.Provider\n value={{\n form,\n labelWidth,\n statusIcon,\n labelAlign,\n layout,\n colon,\n initialData,\n requiredMark,\n errorMessage,\n showErrorMessage,\n scrollToFirstError,\n resetType,\n rules,\n disabled,\n formMapRef,\n onFormItemValueChange,\n }}\n >\n <form\n ref={formRef}\n style={style}\n className={formClass}\n onSubmit={formInstance.submit}\n onReset={onResetHandler}\n onKeyDown={onKeyDownHandler}\n >\n {children}\n </form>\n </FormContext.Provider>\n );\n },\n { useForm, useWatch, FormItem, FormList },\n);\n\nForm.displayName = 'Form';\nForm.defaultProps = formDefaultProps;\n\nexport default Form;\n"],"names":["Form","forwardRefWithStatics","props","ref","useConfig","classPrefix","globalFormConfig","form","style","className","labelWidth","statusIcon","labelAlign","layout","colon","initialData","requiredMark","scrollToFirstError","showErrorMessage","resetType","rules","errorMessage","preventSubmitDefault","disabled","children","onReset","onValuesChange","noop","formClass","classNames","useForm","formRef","useRef","formMapRef","Map","formInstance","useInstance","useImperativeHandle","Object","assign","onResetHandler","e","current","values","forEach","formItemRef","resetField","getInternalHooks","HOOK_MARK","notifyWatch","onFormItemValueChange","changedValue","allFields","getFieldsValue","onKeyDownHandler","target","tagName","toLowerCase","key","preventDefault","stopPropagation","React","createElement","FormContext","Provider","value","onSubmit","submit","onKeyDown","useWatch","FormItem","FormList","displayName","defaultProps","formDefaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBMA,IAAAA,IAAO,GAAAC,qBAAA,CACX,UAACC,KAAD,EAAmBC,GAAnB,EAA2B;AACzB,EAAA,IAAA,UAAA,GAAgDC,SAAU,EAA1D;MAAQC,WAAR,cAAQA,WAAR;MAA2BC,gBAA3B,cAAqBC,IAArB,CAAA;;AAEM,EAAA,IACJC,KADI,GAoBFN,KApBE,CACJM,KADI;AAAA,MAEJC,SAFI,GAoBFP,KApBE,CAEJO,SAFI;AAAA,MAGJC,UAHI,GAoBFR,KApBE,CAGJQ,UAHI;AAAA,MAIJC,UAJI,GAoBFT,KApBE,CAIJS,UAJI;AAAA,MAKJC,UALI,GAoBFV,KApBE,CAKJU,UALI;AAAA,MAMJC,MANI,GAoBFX,KApBE,CAMJW,MANI;AAAA,MAOJC,KAPI,GAoBFZ,KApBE,CAOJY,KAPI;AAAA,MAQJC,WARI,GAoBFb,KApBE,CAQJa,WARI;MAoBFb,mBAAAA,GAAAA,KApBE,CASJc,YATI;AAAA,MASJA,YATI,GAAA,mBAAA,KAAA,KAAA,CAAA,GASWV,gBAAiB,CAAAU,YAT5B,GAAA,mBAAA;AAAA,MAUJC,kBAVI,GAoBFf,KApBE,CAUJe,kBAVI;AAAA,MAWJC,gBAXI,GAoBFhB,KApBE,CAWJgB,gBAXI;AAAA,MAYJC,SAZI,GAoBFjB,KApBE,CAYJiB,SAZI;AAAA,MAaJC,KAbI,GAoBFlB,KApBE,CAaJkB,KAbI;MAoBFlB,mBAAAA,GAAAA,KApBE,CAcJmB,YAdI;AAAA,MAcJA,YAdI,GAAA,mBAAA,KAAA,KAAA,CAAA,GAcWf,gBAAiB,CAAAe,YAd5B,GAAA,mBAAA;AAAA,MAeJC,oBAfI,GAoBFpB,KApBE,CAeJoB,oBAfI;AAAA,MAgBJC,QAhBI,GAoBFrB,KApBE,CAgBJqB,QAhBI;AAAA,MAiBJC,QAjBI,GAoBFtB,KApBE,CAiBJsB,QAjBI;AAAA,MAkBJC,OAlBI,GAoBFvB,KApBE,CAkBJuB,OAlBI;MAoBFvB,qBAAAA,GAAAA,KApBE,CAmBJwB,cAnBI;MAmBJA,cAnBI,sCAmBaC,IAnBb,GAAA,qBAAA,CAAA;AAsBN,EAAA,IAAMC,SAAY,GAAAC,UAAA,CAAA,EAAA,CAAA,MAAA,CAAcxB,WAAd,EAAA,OAAA,CAAA,EAAkCI,SAAlC,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,CAAA,MAAA,CACZJ,WADY,EAAA,cAAA,CAAA,EACgBQ,MAAW,KAAA,QAD3B,CAAlB,CAAA,CAAA;;AAIA,EAAA,IAAA,QAAA,GAAeiB,OAAA,CAAQ5B,MAAMK,IAAd,CAAf;AAAA,MAAA,SAAA,GAAA,cAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAA,MAAOA,IAAP,GAAA,SAAA,CAAA,CAAA,CAAA,CAAA;;EACA,IAAMwB,UAA4CC,MAAO,EAAzD,CAAA;EACA,IAAMC,UAAa,GAAAD,MAAA,iBAAW,IAAAE,GAAA,EAAX,CAAnB,CAAA;EACA,IAAMC,YAAe,GAAAC,WAAA,CAAYlC,KAAZ,EAAmB6B,OAAnB,EAA4BE,UAA5B,CAArB,CAAA;EAEoBI,mBAAA,CAAAlC,GAAA,EAAK,YAAA;AAAA,IAAA,OAAMgC,YAAN,CAAA;AAAA,GAAL,CAAA,CAAA;AACpBG,EAAAA,MAAA,CAAOC,MAAP,CAAchC,IAAd,oBAAyB4B,YAAzB,CAAA,CAAA,CAAA;;EAEA,SAASK,cAAT,CAAwBC,CAAxB,EAA6D;AAAA,IAAA,IAAA,qBAAA,EAAA,sBAAA,EAAA,sBAAA,CAAA;;IAC1D,kBAAGR,CAAAA,WAAWS,OAAX,CAAmBC,MAAnB,EAAH,CAAA,CAAgCC,OAAhC,CAAwC,UAACC,WAAD,EAAiB;MACxDA,WAAA,KAAA,IAAA,IAAAA,WAAA,KAAA,KAAA,CAAA,YAAAA,WAAA,CAAaH,OAAb,CAAqBI,UAArB,EAAA,CAAA;KADD,CAAA,CAAA;;AAGAvC,IAAAA,aAAA,IAAAA,SAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAAA,KAA+BwC,gBAA/B,MAAAxC,IAAAA,IAAAA,qBAAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,qBAAAA,CAAAA,IAAAA,CAAAA,MAAkDyC,UAAlD,MAA8DC,IAAAA,IAAAA,sBAAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,sBAAAA,CAAAA,WAA9D,+GAA4E,EAA5E,CAAA,CAAA;AACSxB,IAAAA,OAAA,SAAA,IAAAA,OAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,OAAA,CAAA;AAAEgB,MAAAA,GAAAA,CAAAA;AAAF,KAAA,CAAA,CAAA;AACZ,GAAA;;EAEA,SAASS,qBAAT,CAA+BC,YAA/B,EAAsE;AAC9D,IAAA,IAAAC,SAAA,GAAYjB,YAAa,CAAAkB,cAAb,CAA4B,IAA5B,CAAZ,CAAA;AACN3B,IAAAA,cAAA,CAAeyB,YAAf,EAA6BC,SAA7B,CAAA,CAAA;AACF,GAAA;;EAEA,SAASE,gBAAT,CAA0Bb,CAA1B,EAAmE;IAEjE,IAAKA,CAAE,CAAAc,MAAF,CAAqBC,OAArB,CAA6BC,WAA7B,EAA+C,KAAA,OAApD,EAA6D,OAAA;;AACzD,IAAA,IAAAnC,oBAAA,IAAwBmB,CAAE,CAAAiB,GAAF,KAAU,OAAlC,EAA2C;AAAA,MAAA,IAAA,iBAAA,EAAA,kBAAA,CAAA;;AAC7C,MAAA,CAAA,iBAAA,GAAAjB,CAAA,CAAEkB,cAAF,MAAA,IAAA,IAAA,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,iBAAA,CAAA,IAAA,CAAAlB,CAAA,CAAA,CAAA;AACA,MAAA,CAAA,kBAAA,GAAAA,CAAA,CAAEmB,eAAF,MAAA,IAAA,IAAA,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,kBAAA,CAAA,IAAA,CAAAnB,CAAA,CAAA,CAAA;AACF,KAAA;AACF,GAAA;;EAGE,sBAAAoB,KAAA,CAAAC,aAAA,CAACC,YAAYC,QAAb,EAAC;AACCC,IAAAA,KAAO,EAAA;AACL1D,MAAAA,IAAA,EAAAA,IADK;AAELG,MAAAA,UAAA,EAAAA,UAFK;AAGLC,MAAAA,UAAA,EAAAA,UAHK;AAILC,MAAAA,UAAA,EAAAA,UAJK;AAKLC,MAAAA,MAAA,EAAAA,MALK;AAMLC,MAAAA,KAAA,EAAAA,KANK;AAOLC,MAAAA,WAAA,EAAAA,WAPK;AAQLC,MAAAA,YAAA,EAAAA,YARK;AASLK,MAAAA,YAAA,EAAAA,YATK;AAULH,MAAAA,gBAAA,EAAAA,gBAVK;AAWLD,MAAAA,kBAAA,EAAAA,kBAXK;AAYLE,MAAAA,SAAA,EAAAA,SAZK;AAaLC,MAAAA,KAAA,EAAAA,KAbK;AAcLG,MAAAA,QAAA,EAAAA,QAdK;AAeLU,MAAAA,UAAA,EAAAA,UAfK;AAgBLiB,MAAAA,qBAAA,EAAAA,qBAAAA;AAhBK,KAAA;AADR,GAAD,iBAoBGW,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACC3D,IAAAA,GAAK,EAAA4B,OADN;AAECvB,IAAAA,KAAA,EAAAA,KAFD;AAGCC,IAAAA,SAAW,EAAAmB,SAHZ;IAICsC,UAAU/B,YAAa,CAAAgC,MAJxB;AAKC1C,IAAAA,OAAS,EAAAe,cALV;AAMC4B,IAAAA,SAAW,EAAAd,gBAAAA;GANZ,EAQE9B,QARF,CApBH,CAAA,CAAA;AAgCJ,CA7FW,EA8FX;AAAEM,EAAAA,OAAA,EAAAA,OAAF;AAAWuC,EAAAA,QAAU,EAAVA,QAAX;AAAqBC,EAAAA,QAAA,EAAAA,QAArB;AAA+BC,EAAAA,QAAS,EAATA,QAAAA;AAA/B,CA9FW,EAAb;AAiGAvE,IAAA,CAAKwE,WAAL,GAAmB,MAAnB,CAAA;AACAxE,IAAA,CAAKyE,YAAL,GAAoBC,gBAApB;;;;"}
1
+ {"version":3,"file":"Form.js","sources":["../../src/form/Form.tsx"],"sourcesContent":["import React, { useRef, useImperativeHandle } from 'react';\nimport classNames from 'classnames';\nimport useConfig from '../hooks/useConfig';\nimport noop from '../_util/noop';\nimport forwardRefWithStatics from '../_util/forwardRefWithStatics';\nimport type { TdFormProps } from './type';\nimport useInstance from './hooks/useInstance';\nimport useForm, { HOOK_MARK } from './hooks/useForm';\nimport useWatch from './hooks/useWatch';\nimport { StyledProps } from '../common';\nimport FormContext from './FormContext';\nimport FormItem from './FormItem';\nimport FormList from './FormList';\nimport { formDefaultProps } from './defaultProps';\n\nexport interface FormProps extends TdFormProps, StyledProps {\n children?: React.ReactNode;\n}\n\nconst Form = forwardRefWithStatics(\n (props: FormProps, ref) => {\n const { classPrefix, form: globalFormConfig } = useConfig();\n\n const {\n style,\n className,\n labelWidth,\n statusIcon,\n labelAlign,\n layout,\n colon,\n initialData,\n requiredMark = globalFormConfig.requiredMark,\n scrollToFirstError,\n showErrorMessage,\n resetType,\n rules,\n errorMessage = globalFormConfig.errorMessage,\n preventSubmitDefault,\n disabled,\n children,\n onReset,\n onValuesChange = noop,\n } = props;\n\n const formClass = classNames(`${classPrefix}-form`, className, {\n [`${classPrefix}-form-inline`]: layout === 'inline',\n });\n\n const [form] = useForm(props.form); // 内部与外部共享 form 实例,外部不传则内部创建\n const formRef: React.RefObject<HTMLFormElement> = useRef();\n const formMapRef = useRef(new Map()); // 收集所有包含 name 属性 formItem 实例\n const formInstance = useInstance(props, formRef, formMapRef);\n\n useImperativeHandle(ref, () => formInstance);\n Object.assign(form, { ...formInstance });\n\n function onResetHandler(e: React.FormEvent<HTMLFormElement>) {\n [...formMapRef.current.values()].forEach((formItemRef) => {\n formItemRef?.current.resetField();\n });\n form?.getInternalHooks?.(HOOK_MARK)?.notifyWatch?.([]);\n onReset?.({ e });\n }\n\n function onFormItemValueChange(changedValue: Record<string, unknown>) {\n const allFields = formInstance.getFieldsValue(true);\n onValuesChange(changedValue, allFields);\n }\n\n function onKeyDownHandler(e: React.KeyboardEvent<HTMLFormElement>) {\n // 禁用 input 输入框回车自动提交 form\n if ((e.target as Element).tagName.toLowerCase() !== 'input') return;\n if (preventSubmitDefault && e.key === 'Enter') {\n e.preventDefault?.();\n e.stopPropagation?.();\n }\n }\n\n return (\n <FormContext.Provider\n value={{\n form,\n labelWidth,\n statusIcon,\n labelAlign,\n layout,\n colon,\n initialData,\n requiredMark,\n errorMessage,\n showErrorMessage,\n scrollToFirstError,\n resetType,\n rules,\n disabled,\n formMapRef,\n onFormItemValueChange,\n }}\n >\n <form\n ref={formRef}\n style={style}\n className={formClass}\n onSubmit={formInstance.submit}\n onReset={onResetHandler}\n onKeyDown={onKeyDownHandler}\n >\n {children}\n </form>\n </FormContext.Provider>\n );\n },\n { useForm, useWatch, FormItem, FormList },\n);\n\nForm.displayName = 'Form';\nForm.defaultProps = formDefaultProps;\n\nexport default Form;\n"],"names":["Form","forwardRefWithStatics","props","ref","useConfig","classPrefix","globalFormConfig","form","style","className","labelWidth","statusIcon","labelAlign","layout","colon","initialData","requiredMark","scrollToFirstError","showErrorMessage","resetType","rules","errorMessage","preventSubmitDefault","disabled","children","onReset","onValuesChange","noop","formClass","classNames","useForm","formRef","useRef","formMapRef","Map","formInstance","useInstance","useImperativeHandle","Object","assign","onResetHandler","e","current","values","forEach","formItemRef","resetField","getInternalHooks","HOOK_MARK","notifyWatch","onFormItemValueChange","changedValue","allFields","getFieldsValue","onKeyDownHandler","target","tagName","toLowerCase","key","preventDefault","stopPropagation","React","createElement","FormContext","Provider","value","onSubmit","submit","onKeyDown","useWatch","FormItem","FormList","displayName","defaultProps","formDefaultProps"],"mappings":"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"}
@@ -77,6 +77,7 @@ var FormList = function FormList(props) {
77
77
 
78
78
  var formListMapRef = useRef( /* @__PURE__ */new Map());
79
79
  var formListRef = useRef();
80
+ var fieldsTaskQueueRef = useRef([]);
80
81
  var operation = {
81
82
  add: function add(defaultValue, insertIndex) {
82
83
  var cloneFields = _toConsumableArray(fields);
@@ -136,17 +137,15 @@ var FormList = function FormList(props) {
136
137
  isListField: true
137
138
  };
138
139
  }));
139
- requestAnimationFrame(function () {
140
- _toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
141
- var name2 = formItemRef.current.name;
142
- var data = get_1(fieldData, name2);
143
- callback(formItemRef, data);
144
- });
140
+ fieldsTaskQueueRef.current.push({
141
+ callback: callback,
142
+ fieldData: fieldData
145
143
  });
146
144
  }
147
145
 
148
146
  useEffect(function () {
149
147
  _toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
148
+ if (!formItemRef.current) return;
150
149
  var _formItemRef$current = formItemRef.current,
151
150
  name2 = _formItemRef$current.name,
152
151
  value = _formItemRef$current.value;
@@ -157,7 +156,20 @@ var FormList = function FormList(props) {
157
156
  status: "not"
158
157
  });
159
158
  });
160
- }, [fields, initialValue]);
159
+ }, [initialValue]);
160
+ useEffect(function () {
161
+ var currentQueue = fieldsTaskQueueRef.current.pop();
162
+ if (!currentQueue) return;
163
+
164
+ _toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
165
+ if (!formItemRef.current) return;
166
+ var name2 = formItemRef.current.name;
167
+ var fieldData = currentQueue.fieldData,
168
+ callback = currentQueue.callback;
169
+ var data = get_1(fieldData, name2);
170
+ callback(formItemRef, data);
171
+ });
172
+ }, [fields]);
161
173
  useEffect(function () {
162
174
  if (!name || !formMapRef) return;
163
175
  formMapRef.current.set(name, formListRef);
@@ -186,7 +198,9 @@ var FormList = function FormList(props) {
186
198
  var resultList = [];
187
199
 
188
200
  var validates = _toConsumableArray(formListMapRef.current.values()).map(function (formItemRef) {
189
- return formItemRef.current.validate(trigger);
201
+ var _formItemRef$current3, _formItemRef$current4;
202
+
203
+ return formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current3 = formItemRef.current) === null || _formItemRef$current3 === void 0 ? void 0 : (_formItemRef$current4 = _formItemRef$current3.validate) === null || _formItemRef$current4 === void 0 ? void 0 : _formItemRef$current4.call(_formItemRef$current3, trigger);
190
204
  });
191
205
 
192
206
  return new Promise(function (resolve) {
@@ -212,18 +226,18 @@ var FormList = function FormList(props) {
212
226
  },
213
227
  setValue: function setValue(fieldData) {
214
228
  setListFields(fieldData, function (formItemRef, data) {
215
- var _formItemRef$current3;
229
+ var _formItemRef$current5, _formItemRef$current6;
216
230
 
217
- formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current3 = formItemRef.current) === null || _formItemRef$current3 === void 0 ? void 0 : _formItemRef$current3.setValue(data);
231
+ formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current5 = formItemRef.current) === null || _formItemRef$current5 === void 0 ? void 0 : (_formItemRef$current6 = _formItemRef$current5.setValue) === null || _formItemRef$current6 === void 0 ? void 0 : _formItemRef$current6.call(_formItemRef$current5, data);
218
232
  });
219
233
  },
220
234
  setField: function setField(fieldData) {
221
235
  var value = fieldData.value,
222
236
  status = fieldData.status;
223
237
  setListFields(value, function (formItemRef, data) {
224
- var _formItemRef$current4;
238
+ var _formItemRef$current7, _formItemRef$current8;
225
239
 
226
- formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current4 = formItemRef.current) === null || _formItemRef$current4 === void 0 ? void 0 : _formItemRef$current4.setField({
240
+ formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current7 = formItemRef.current) === null || _formItemRef$current7 === void 0 ? void 0 : (_formItemRef$current8 = _formItemRef$current7.setField) === null || _formItemRef$current8 === void 0 ? void 0 : _formItemRef$current8.call(_formItemRef$current7, {
227
241
  value: data,
228
242
  status: status
229
243
  });
@@ -231,21 +245,27 @@ var FormList = function FormList(props) {
231
245
  },
232
246
  resetField: function resetField() {
233
247
  _toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
234
- formItemRef.current.resetField();
248
+ var _formItemRef$current9, _formItemRef$current10;
249
+
250
+ formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current9 = formItemRef.current) === null || _formItemRef$current9 === void 0 ? void 0 : (_formItemRef$current10 = _formItemRef$current9.resetField) === null || _formItemRef$current10 === void 0 ? void 0 : _formItemRef$current10.call(_formItemRef$current9);
235
251
  });
236
252
 
237
253
  setInitialValue([]);
238
254
  },
239
255
  setValidateMessage: function setValidateMessage(fieldData) {
240
256
  _toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
257
+ var _formItemRef$current11, _formItemRef$current12;
258
+
241
259
  var name2 = formItemRef.current.name;
242
260
  var data = get_1(fieldData, name2);
243
- formItemRef.current.setValidateMessage(data);
261
+ formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current11 = formItemRef.current) === null || _formItemRef$current11 === void 0 ? void 0 : (_formItemRef$current12 = _formItemRef$current11.setValidateMessage) === null || _formItemRef$current12 === void 0 ? void 0 : _formItemRef$current12.call(_formItemRef$current11, data);
244
262
  });
245
263
  },
246
264
  resetValidate: function resetValidate() {
247
265
  _toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
248
- formItemRef.current.resetValidate();
266
+ var _formItemRef$current13, _formItemRef$current14;
267
+
268
+ formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$current13 = formItemRef.current) === null || _formItemRef$current13 === void 0 ? void 0 : (_formItemRef$current14 = _formItemRef$current13.resetValidate) === null || _formItemRef$current14 === void 0 ? void 0 : _formItemRef$current14.call(_formItemRef$current13);
249
269
  });
250
270
  }
251
271
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FormList.js","sources":["../../src/form/FormList.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, useImperativeHandle } from 'react';\nimport merge from 'lodash/merge';\nimport get from 'lodash/get';\nimport { FormListContext, useFormContext } from './FormContext';\nimport { FormItemInstance } from './FormItem';\nimport { TdFormListProps, FormListFieldOperation, FormListField } from './type';\nimport { calcFieldValue } from './utils';\nimport log from '../_common/js/log';\n\nlet key = 0;\n\nconst FormList = (props: TdFormListProps) => {\n const { formMapRef } = useFormContext();\n const { name, initialData = [], rules, children } = props;\n\n const [initialValue, setInitialValue] = useState(initialData);\n const [fields, setFields] = useState<Array<FormListField>>(\n initialData.map((data, index) => ({\n key: (key += 1),\n name: index,\n isListField: true,\n ...data,\n })),\n );\n const formListMapRef = useRef(new Map()); // 收集 formItem 实例\n const formListRef = useRef<FormItemInstance>(); // 当前 formList 实例\n\n const operation: FormListFieldOperation = {\n add(defaultValue?: any, insertIndex?: number) {\n const cloneFields = [...fields];\n const index = insertIndex ?? cloneFields.length;\n cloneFields.splice(index, 0, {\n key: (key += 1),\n name: index,\n isListField: true,\n });\n cloneFields.forEach((field, index) => Object.assign(field, { name: index }));\n setFields(cloneFields);\n\n if (typeof defaultValue !== 'undefined') {\n const nextInitialValue = [...initialValue];\n nextInitialValue[index] = defaultValue;\n setInitialValue(nextInitialValue);\n }\n },\n remove(index: number | number[]) {\n const nextFields = fields\n .filter((_, i) => {\n if (Array.isArray(index)) return !index.includes(i);\n return i !== index;\n })\n .map((field, index) => Object.assign(field, { name: index }));\n\n setInitialValue(initialValue.filter((_, idx) => idx !== index));\n setFields(nextFields);\n },\n move(from: number, to: number) {\n const cloneFields = [...fields];\n const fromItem = { ...cloneFields[from] };\n const toItem = { ...cloneFields[to] };\n cloneFields[to] = fromItem;\n cloneFields[from] = toItem;\n setFields(cloneFields);\n },\n };\n\n // 外部设置 fields 优先级最高,可以更改渲染的节点\n function setListFields(fieldData: any[], callback: Function) {\n setFields(\n fieldData.map((_, index) => ({\n key: (key += 1),\n name: index,\n isListField: true,\n })),\n );\n // 延迟至 FormItem 渲染后再赋值\n requestAnimationFrame(() => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n const { name } = formItemRef.current;\n const data = get(fieldData, name);\n callback(formItemRef, data);\n });\n });\n }\n\n useEffect(() => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n const { name, value } = formItemRef.current;\n if (value) return;\n\n const data = get(initialValue, name);\n formItemRef.current.setField({ value: data, status: 'not' });\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fields, initialValue]);\n\n useEffect(() => {\n if (!name || !formMapRef) return;\n formMapRef.current.set(name, formListRef);\n\n return () => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n formMapRef.current.delete(name);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [name]);\n\n useImperativeHandle(\n formListRef,\n (): FormItemInstance => ({\n name,\n getValue() {\n const formListValue = [];\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n const { name, getValue } = formItemRef.current;\n const fieldValue = calcFieldValue(name, getValue());\n merge(formListValue, fieldValue);\n });\n return formListValue;\n },\n validate: (trigger = 'all') => {\n const resultList = [];\n const validates = [...formListMapRef.current.values()].map((formItemRef) =>\n formItemRef.current.validate(trigger),\n );\n return new Promise((resolve) => {\n Promise.all(validates).then((validateResult) => {\n validateResult.forEach((result) => {\n const errorKey = Object.keys(result)[0];\n const errorKeyList = errorKey.split(',');\n\n let errorValue = Object.values(result)[0];\n errorValue = calcFieldValue(errorKeyList, errorValue);\n\n merge(resultList, errorValue);\n });\n const errorItems = validateResult.filter((item) => Object.values(item)[0] !== true);\n if (errorItems.length) {\n resolve({ [String(name)]: resultList });\n } else {\n resolve({ [String(name)]: true });\n }\n });\n });\n },\n setValue: (fieldData: any[]) => {\n setListFields(fieldData, (formItemRef, data) => {\n formItemRef?.current?.setValue(data);\n });\n },\n setField: (fieldData: { value?: any[]; status?: string }) => {\n const { value, status } = fieldData;\n setListFields(value, (formItemRef, data) => {\n formItemRef?.current?.setField({ value: data, status });\n });\n },\n resetField: () => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n formItemRef.current.resetField();\n });\n setInitialValue([]);\n },\n setValidateMessage: (fieldData) => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n const { name } = formItemRef.current;\n const data = get(fieldData, name);\n\n formItemRef.current.setValidateMessage(data);\n });\n },\n resetValidate: () => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n formItemRef.current.resetValidate();\n });\n },\n }),\n );\n\n if (typeof children !== 'function') {\n log.error('Form', `FormList's children must be a function!`);\n return null;\n }\n\n return (\n <FormListContext.Provider value={{ name, rules, formListMapRef }}>\n {children(fields, operation)}\n </FormListContext.Provider>\n );\n};\n\nFormList.displayName = 'FormList';\n\nexport default FormList;\n"],"names":["key","FormList","props","useFormContext","formMapRef","name","initialData","rules","children","useState","initialValue","setInitialValue","map","data","index","isListField","fields","setFields","formListMapRef","useRef","Map","formListRef","operation","add","defaultValue","insertIndex","cloneFields","length","splice","forEach","field","Object","assign","nextInitialValue","remove","nextFields","filter","_","i","Array","isArray","includes","idx","move","from","to","fromItem","toItem","setListFields","fieldData","callback","requestAnimationFrame","current","values","formItemRef","get","useEffect","value","setField","status","set","useImperativeHandle","getValue","formListValue","fieldValue","calcFieldValue","merge","validate","trigger","resultList","validates","Promise","resolve","all","then","validateResult","result","errorKey","keys","errorKeyList","split","errorValue","errorItems","item","String","setValue","resetField","setValidateMessage","resetValidate","log","error","React","createElement","FormListContext","Provider","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"FormList.js","sources":["../../src/form/FormList.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, useImperativeHandle } from 'react';\nimport merge from 'lodash/merge';\nimport get from 'lodash/get';\nimport { FormListContext, useFormContext } from './FormContext';\nimport { FormItemInstance } from './FormItem';\nimport { TdFormListProps, FormListFieldOperation, FormListField } from './type';\nimport { calcFieldValue } from './utils';\nimport log from '../_common/js/log';\n\nlet key = 0;\n\nconst FormList = (props: TdFormListProps) => {\n const { formMapRef } = useFormContext();\n const { name, initialData = [], rules, children } = props;\n\n const [initialValue, setInitialValue] = useState(initialData);\n const [fields, setFields] = useState<Array<FormListField>>(\n initialData.map((data, index) => ({\n key: (key += 1),\n name: index,\n isListField: true,\n ...data,\n })),\n );\n const formListMapRef = useRef(new Map()); // 收集 formItem 实例\n const formListRef = useRef<FormItemInstance>(); // 当前 formList 实例\n const fieldsTaskQueueRef = useRef([]); // 记录更改 fields 数据后 callback 队列\n\n const operation: FormListFieldOperation = {\n add(defaultValue?: any, insertIndex?: number) {\n const cloneFields = [...fields];\n const index = insertIndex ?? cloneFields.length;\n cloneFields.splice(index, 0, {\n key: (key += 1),\n name: index,\n isListField: true,\n });\n cloneFields.forEach((field, index) => Object.assign(field, { name: index }));\n setFields(cloneFields);\n\n if (typeof defaultValue !== 'undefined') {\n const nextInitialValue = [...initialValue];\n nextInitialValue[index] = defaultValue;\n setInitialValue(nextInitialValue);\n }\n },\n remove(index: number | number[]) {\n const nextFields = fields\n .filter((_, i) => {\n if (Array.isArray(index)) return !index.includes(i);\n return i !== index;\n })\n .map((field, index) => Object.assign(field, { name: index }));\n\n setInitialValue(initialValue.filter((_, idx) => idx !== index));\n setFields(nextFields);\n },\n move(from: number, to: number) {\n const cloneFields = [...fields];\n const fromItem = { ...cloneFields[from] };\n const toItem = { ...cloneFields[to] };\n cloneFields[to] = fromItem;\n cloneFields[from] = toItem;\n setFields(cloneFields);\n },\n };\n\n // 外部设置 fields 优先级最高,可以更改渲染的节点\n function setListFields(fieldData: any[], callback: Function) {\n setFields(\n fieldData.map((_, index) => ({\n key: (key += 1),\n name: index,\n isListField: true,\n })),\n );\n // 添加至队列中 等待下次渲染完成执行对应逻辑\n fieldsTaskQueueRef.current.push({ callback, fieldData });\n }\n\n useEffect(() => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n if (!formItemRef.current) return;\n\n const { name, value } = formItemRef.current;\n if (value) return; // 内部有值则忽略初始化设置\n\n const data = get(initialValue, name);\n formItemRef.current.setField({ value: data, status: 'not' });\n });\n }, [initialValue]);\n\n useEffect(() => {\n const currentQueue = fieldsTaskQueueRef.current.pop();\n if (!currentQueue) return;\n\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n if (!formItemRef.current) return;\n\n const { name } = formItemRef.current;\n const { fieldData, callback } = currentQueue;\n const data = get(fieldData, name);\n callback(formItemRef, data);\n });\n }, [fields]);\n\n useEffect(() => {\n if (!name || !formMapRef) return;\n formMapRef.current.set(name, formListRef);\n\n return () => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n formMapRef.current.delete(name);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [name]);\n\n useImperativeHandle(\n formListRef,\n (): FormItemInstance => ({\n name,\n getValue() {\n const formListValue = [];\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n const { name, getValue } = formItemRef.current;\n const fieldValue = calcFieldValue(name, getValue());\n merge(formListValue, fieldValue);\n });\n return formListValue;\n },\n validate: (trigger = 'all') => {\n const resultList = [];\n const validates = [...formListMapRef.current.values()].map((formItemRef) =>\n formItemRef?.current?.validate?.(trigger),\n );\n return new Promise((resolve) => {\n Promise.all(validates).then((validateResult) => {\n validateResult.forEach((result) => {\n const errorKey = Object.keys(result)[0];\n const errorKeyList = errorKey.split(',');\n\n let errorValue = Object.values(result)[0];\n errorValue = calcFieldValue(errorKeyList, errorValue);\n\n merge(resultList, errorValue);\n });\n const errorItems = validateResult.filter((item) => Object.values(item)[0] !== true);\n if (errorItems.length) {\n resolve({ [String(name)]: resultList });\n } else {\n resolve({ [String(name)]: true });\n }\n });\n });\n },\n setValue: (fieldData: any[]) => {\n setListFields(fieldData, (formItemRef, data) => {\n formItemRef?.current?.setValue?.(data);\n });\n },\n setField: (fieldData: { value?: any[]; status?: string }) => {\n const { value, status } = fieldData;\n setListFields(value, (formItemRef, data) => {\n formItemRef?.current?.setField?.({ value: data, status });\n });\n },\n resetField: () => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n formItemRef?.current?.resetField?.();\n });\n setInitialValue([]);\n },\n setValidateMessage: (fieldData) => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n const { name } = formItemRef.current;\n const data = get(fieldData, name);\n\n formItemRef?.current?.setValidateMessage?.(data);\n });\n },\n resetValidate: () => {\n [...formListMapRef.current.values()].forEach((formItemRef) => {\n formItemRef?.current?.resetValidate?.();\n });\n },\n }),\n );\n\n if (typeof children !== 'function') {\n log.error('Form', `FormList's children must be a function!`);\n return null;\n }\n\n return (\n <FormListContext.Provider value={{ name, rules, formListMapRef }}>\n {children(fields, operation)}\n </FormListContext.Provider>\n );\n};\n\nFormList.displayName = 'FormList';\n\nexport default FormList;\n"],"names":["key","FormList","props","useFormContext","formMapRef","name","initialData","rules","children","useState","initialValue","setInitialValue","map","data","index","isListField","fields","setFields","formListMapRef","useRef","Map","formListRef","fieldsTaskQueueRef","operation","add","defaultValue","insertIndex","cloneFields","length","splice","forEach","field","Object","assign","nextInitialValue","remove","nextFields","filter","_","i","Array","isArray","includes","idx","move","from","to","fromItem","toItem","setListFields","fieldData","callback","current","push","useEffect","values","formItemRef","value","get","setField","status","currentQueue","pop","set","useImperativeHandle","getValue","formListValue","fieldValue","calcFieldValue","merge","validate","trigger","resultList","validates","Promise","resolve","all","then","validateResult","result","errorKey","keys","errorKeyList","split","errorValue","errorItems","item","String","setValue","resetField","setValidateMessage","resetValidate","log","error","React","createElement","FormListContext","Provider","displayName"],"mappings":"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"}
@@ -9,5 +9,5 @@ export interface InternalHooks {
9
9
  }
10
10
  export interface InternalFormInstance extends FormInstanceFunctions {
11
11
  _init?: boolean;
12
- getInternalHooks?: (secret: Symbol) => InternalHooks | null;
12
+ getInternalHooks?: (secret: string) => InternalHooks | null;
13
13
  }
@@ -1,3 +1,3 @@
1
1
  import type { InternalFormInstance } from './interface';
2
- export declare const HOOK_MARK: unique symbol;
2
+ export declare const HOOK_MARK = "TD_FORM_INTERNAL_HOOKS";
3
3
  export default function useForm(form?: InternalFormInstance): InternalFormInstance[];
@@ -12,7 +12,7 @@ import '../../_common/js/log/index.js';
12
12
  import log from '../../_common/js/log/log.js';
13
13
  import '../../_chunks/dep-24599104.js';
14
14
 
15
- var HOOK_MARK = Symbol("TD_FORM_INTERNAL_HOOKS");
15
+ var HOOK_MARK = "TD_FORM_INTERNAL_HOOKS";
16
16
 
17
17
  var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {
18
18
  var _this = this;