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.
- package/cjs/form/Form.js.map +1 -1
- package/cjs/form/FormList.js +35 -15
- package/cjs/form/FormList.js.map +1 -1
- package/cjs/form/hooks/interface.d.ts +1 -1
- package/cjs/form/hooks/useForm.d.ts +1 -1
- package/cjs/form/hooks/useForm.js +1 -1
- package/cjs/form/hooks/useForm.js.map +1 -1
- package/dist/tdesign.css.map +1 -1
- package/dist/tdesign.js +36 -16
- package/dist/tdesign.js.map +1 -1
- package/dist/tdesign.min.css.map +1 -1
- package/dist/tdesign.min.js +1 -1
- package/dist/tdesign.min.js.map +1 -1
- package/es/form/Form.js.map +1 -1
- package/es/form/FormList.js +35 -15
- package/es/form/FormList.js.map +1 -1
- package/es/form/hooks/interface.d.ts +1 -1
- package/es/form/hooks/useForm.d.ts +1 -1
- package/es/form/hooks/useForm.js +1 -1
- package/es/form/hooks/useForm.js.map +1 -1
- package/esm/form/Form.js.map +1 -1
- package/esm/form/FormList.js +35 -15
- package/esm/form/FormList.js.map +1 -1
- package/esm/form/hooks/interface.d.ts +1 -1
- package/esm/form/hooks/useForm.d.ts +1 -1
- package/esm/form/hooks/useForm.js +1 -1
- package/esm/form/hooks/useForm.js.map +1 -1
- package/lib/form/Form.js.map +1 -1
- package/lib/form/FormList.js +35 -15
- package/lib/form/FormList.js.map +1 -1
- package/lib/form/hooks/interface.d.ts +1 -1
- package/lib/form/hooks/useForm.d.ts +1 -1
- package/lib/form/hooks/useForm.js +1 -1
- package/lib/form/hooks/useForm.js.map +1 -1
- package/package.json +1 -1
package/cjs/form/Form.js.map
CHANGED
|
@@ -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
|
|
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","_defineProperty","useForm","_slicedToArray","formRef","useRef","formMapRef","Map","formInstance","useInstance","useImperativeHandle","Object","assign","onResetHandler","e","_toConsumableArray","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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"}
|
package/cjs/form/FormList.js
CHANGED
|
@@ -81,6 +81,7 @@ var FormList = function FormList(props) {
|
|
|
81
81
|
|
|
82
82
|
var formListMapRef = React.useRef( /* @__PURE__ */new Map());
|
|
83
83
|
var formListRef = React.useRef();
|
|
84
|
+
var fieldsTaskQueueRef = React.useRef([]);
|
|
84
85
|
var operation = {
|
|
85
86
|
add: function add(defaultValue, insertIndex) {
|
|
86
87
|
var cloneFields = toConsumableArray._toConsumableArray(fields);
|
|
@@ -140,17 +141,15 @@ var FormList = function FormList(props) {
|
|
|
140
141
|
isListField: true
|
|
141
142
|
};
|
|
142
143
|
}));
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
var data = get.get_1(fieldData, name2);
|
|
147
|
-
callback(formItemRef, data);
|
|
148
|
-
});
|
|
144
|
+
fieldsTaskQueueRef.current.push({
|
|
145
|
+
callback: callback,
|
|
146
|
+
fieldData: fieldData
|
|
149
147
|
});
|
|
150
148
|
}
|
|
151
149
|
|
|
152
150
|
React.useEffect(function () {
|
|
153
151
|
toConsumableArray._toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
|
|
152
|
+
if (!formItemRef.current) return;
|
|
154
153
|
var _formItemRef$current = formItemRef.current,
|
|
155
154
|
name2 = _formItemRef$current.name,
|
|
156
155
|
value = _formItemRef$current.value;
|
|
@@ -161,7 +160,20 @@ var FormList = function FormList(props) {
|
|
|
161
160
|
status: "not"
|
|
162
161
|
});
|
|
163
162
|
});
|
|
164
|
-
}, [
|
|
163
|
+
}, [initialValue]);
|
|
164
|
+
React.useEffect(function () {
|
|
165
|
+
var currentQueue = fieldsTaskQueueRef.current.pop();
|
|
166
|
+
if (!currentQueue) return;
|
|
167
|
+
|
|
168
|
+
toConsumableArray._toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
|
|
169
|
+
if (!formItemRef.current) return;
|
|
170
|
+
var name2 = formItemRef.current.name;
|
|
171
|
+
var fieldData = currentQueue.fieldData,
|
|
172
|
+
callback = currentQueue.callback;
|
|
173
|
+
var data = get.get_1(fieldData, name2);
|
|
174
|
+
callback(formItemRef, data);
|
|
175
|
+
});
|
|
176
|
+
}, [fields]);
|
|
165
177
|
React.useEffect(function () {
|
|
166
178
|
if (!name || !formMapRef) return;
|
|
167
179
|
formMapRef.current.set(name, formListRef);
|
|
@@ -190,7 +202,9 @@ var FormList = function FormList(props) {
|
|
|
190
202
|
var resultList = [];
|
|
191
203
|
|
|
192
204
|
var validates = toConsumableArray._toConsumableArray(formListMapRef.current.values()).map(function (formItemRef) {
|
|
193
|
-
|
|
205
|
+
var _formItemRef$current3, _formItemRef$current4;
|
|
206
|
+
|
|
207
|
+
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);
|
|
194
208
|
});
|
|
195
209
|
|
|
196
210
|
return new Promise(function (resolve) {
|
|
@@ -216,18 +230,18 @@ var FormList = function FormList(props) {
|
|
|
216
230
|
},
|
|
217
231
|
setValue: function setValue(fieldData) {
|
|
218
232
|
setListFields(fieldData, function (formItemRef, data) {
|
|
219
|
-
var _formItemRef$
|
|
233
|
+
var _formItemRef$current5, _formItemRef$current6;
|
|
220
234
|
|
|
221
|
-
formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$
|
|
235
|
+
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);
|
|
222
236
|
});
|
|
223
237
|
},
|
|
224
238
|
setField: function setField(fieldData) {
|
|
225
239
|
var value = fieldData.value,
|
|
226
240
|
status = fieldData.status;
|
|
227
241
|
setListFields(value, function (formItemRef, data) {
|
|
228
|
-
var _formItemRef$
|
|
242
|
+
var _formItemRef$current7, _formItemRef$current8;
|
|
229
243
|
|
|
230
|
-
formItemRef === null || formItemRef === void 0 ? void 0 : (_formItemRef$
|
|
244
|
+
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, {
|
|
231
245
|
value: data,
|
|
232
246
|
status: status
|
|
233
247
|
});
|
|
@@ -235,21 +249,27 @@ var FormList = function FormList(props) {
|
|
|
235
249
|
},
|
|
236
250
|
resetField: function resetField() {
|
|
237
251
|
toConsumableArray._toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
|
|
238
|
-
|
|
252
|
+
var _formItemRef$current9, _formItemRef$current10;
|
|
253
|
+
|
|
254
|
+
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);
|
|
239
255
|
});
|
|
240
256
|
|
|
241
257
|
setInitialValue([]);
|
|
242
258
|
},
|
|
243
259
|
setValidateMessage: function setValidateMessage(fieldData) {
|
|
244
260
|
toConsumableArray._toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
|
|
261
|
+
var _formItemRef$current11, _formItemRef$current12;
|
|
262
|
+
|
|
245
263
|
var name2 = formItemRef.current.name;
|
|
246
264
|
var data = get.get_1(fieldData, name2);
|
|
247
|
-
formItemRef.current.setValidateMessage(data);
|
|
265
|
+
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);
|
|
248
266
|
});
|
|
249
267
|
},
|
|
250
268
|
resetValidate: function resetValidate() {
|
|
251
269
|
toConsumableArray._toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
|
|
252
|
-
|
|
270
|
+
var _formItemRef$current13, _formItemRef$current14;
|
|
271
|
+
|
|
272
|
+
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);
|
|
253
273
|
});
|
|
254
274
|
}
|
|
255
275
|
};
|
package/cjs/form/FormList.js.map
CHANGED
|
@@ -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","_slicedToArray","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","_toConsumableArray","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","_slicedToArray","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","_toConsumableArray","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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"}
|
|
@@ -15,7 +15,7 @@ var React = require('react');
|
|
|
15
15
|
var _common_js_log_log = require('../../_common/js/log/log.js');
|
|
16
16
|
require('../../_chunks/dep-789d4bfb.js');
|
|
17
17
|
|
|
18
|
-
var HOOK_MARK =
|
|
18
|
+
var HOOK_MARK = "TD_FORM_INTERNAL_HOOKS";
|
|
19
19
|
|
|
20
20
|
var FormStore = /*#__PURE__*/createClass._createClass(function FormStore(forceRootUpdate) {
|
|
21
21
|
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 =
|
|
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","_classCallCheck","_defineProperty","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","_slicedToArray","forceUpdate","current","forceReRender","formStore","getForm"],"mappings":"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"}
|