tdesign-react 0.42.5-alpha.2 → 0.42.5-alpha.3
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/FormList.js +12 -5
- package/cjs/form/FormList.js.map +1 -1
- package/dist/tdesign.css.map +1 -1
- package/dist/tdesign.js +10 -5
- 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/FormList.js +12 -5
- package/es/form/FormList.js.map +1 -1
- package/esm/form/FormList.js +12 -5
- package/esm/form/FormList.js.map +1 -1
- package/lib/form/FormList.js +12 -5
- package/lib/form/FormList.js.map +1 -1
- package/package.json +1 -1
package/es/form/FormList.js
CHANGED
|
@@ -11,6 +11,7 @@ import React, { useState, useRef, useEffect, useImperativeHandle } from 'react';
|
|
|
11
11
|
import { m as merge_1 } from '../_chunks/dep-0af422e7.js';
|
|
12
12
|
import { g as get_1 } from '../_chunks/dep-60ad6916.js';
|
|
13
13
|
import { useFormContext, FormListContext } from './FormContext.js';
|
|
14
|
+
import { HOOK_MARK } from './hooks/useForm.js';
|
|
14
15
|
import { calcFieldValue } from './utils/index.js';
|
|
15
16
|
import '../_common/js/log/index.js';
|
|
16
17
|
import log from '../_common/js/log/log.js';
|
|
@@ -43,13 +44,15 @@ import '../_chunks/dep-73a3f1c0.js';
|
|
|
43
44
|
import '../_chunks/dep-e4086d66.js';
|
|
44
45
|
import '../_chunks/dep-f9ea62b4.js';
|
|
45
46
|
import '../_chunks/dep-ccb36b1d.js';
|
|
47
|
+
import '../_chunks/dep-2d26d250.js';
|
|
46
48
|
|
|
47
49
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
48
50
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
49
51
|
var key = 0;
|
|
50
52
|
var FormList = function FormList(props) {
|
|
51
53
|
var _useFormContext = useFormContext(),
|
|
52
|
-
formMapRef = _useFormContext.formMapRef
|
|
54
|
+
formMapRef = _useFormContext.formMapRef,
|
|
55
|
+
form = _useFormContext.form;
|
|
53
56
|
var name = props.name,
|
|
54
57
|
_props$initialData = props.initialData,
|
|
55
58
|
initialData = _props$initialData === void 0 ? [] : _props$initialData,
|
|
@@ -97,6 +100,10 @@ var FormList = function FormList(props) {
|
|
|
97
100
|
var nextFields = fields.filter(function (item) {
|
|
98
101
|
if (Array.isArray(index)) return !index.includes(item.name);
|
|
99
102
|
return item.name !== index;
|
|
103
|
+
}).map(function (field, i) {
|
|
104
|
+
return _objectSpread(_objectSpread({}, field), {}, {
|
|
105
|
+
name: i
|
|
106
|
+
});
|
|
100
107
|
});
|
|
101
108
|
setInitialValue(initialValue.filter(function (_, idx) {
|
|
102
109
|
return idx !== index;
|
|
@@ -140,6 +147,8 @@ var FormList = function FormList(props) {
|
|
|
140
147
|
});
|
|
141
148
|
}, [initialValue]);
|
|
142
149
|
useEffect(function () {
|
|
150
|
+
var _form$getInternalHook, _form$getInternalHook2, _form$getInternalHook3;
|
|
151
|
+
form === null || form === void 0 ? void 0 : (_form$getInternalHook = form.getInternalHooks) === null || _form$getInternalHook === void 0 ? void 0 : (_form$getInternalHook2 = _form$getInternalHook.call(form, HOOK_MARK)) === null || _form$getInternalHook2 === void 0 ? void 0 : (_form$getInternalHook3 = _form$getInternalHook2.notifyWatch) === null || _form$getInternalHook3 === void 0 ? void 0 : _form$getInternalHook3.call(_form$getInternalHook2, name);
|
|
143
152
|
var currentQueue = fieldsTaskQueueRef.current.pop();
|
|
144
153
|
if (!currentQueue) return;
|
|
145
154
|
_toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
|
|
@@ -150,7 +159,7 @@ var FormList = function FormList(props) {
|
|
|
150
159
|
var data = get_1(fieldData, name2);
|
|
151
160
|
callback(formItemRef, data);
|
|
152
161
|
});
|
|
153
|
-
}, [fields]);
|
|
162
|
+
}, [form, fields]);
|
|
154
163
|
useEffect(function () {
|
|
155
164
|
if (!name || !formMapRef) return;
|
|
156
165
|
formMapRef.current.set(name, formListRef);
|
|
@@ -171,9 +180,7 @@ var FormList = function FormList(props) {
|
|
|
171
180
|
var fieldValue = calcFieldValue(name2, getValue());
|
|
172
181
|
merge_1(formListValue, fieldValue);
|
|
173
182
|
});
|
|
174
|
-
return formListValue
|
|
175
|
-
return !!item;
|
|
176
|
-
});
|
|
183
|
+
return formListValue;
|
|
177
184
|
},
|
|
178
185
|
validate: function validate() {
|
|
179
186
|
var trigger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "all";
|
package/es/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 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.filter((item) => {\n if (Array.isArray(index)) return !index.includes(item.name);\n return item.name !== index;\n });\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 if (!formItemRef.current) return;\n\n const { name, getValue } = formItemRef.current;\n const fieldValue = calcFieldValue(name, getValue());\n merge(formListValue, fieldValue);\n });\n return formListValue.filter((item) => !!item);\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 if (!formItemRef.current) return;\n\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","item","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","String","setValue","resetField","setValidateMessage","resetValidate","log","error","React","createElement","FormListContext","Provider","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAIA,GAAM,GAAA,CAAA,CAAA;AAEV,IAAMC,QAAA,GAAW,SAAXA,QAAA,CAAYC,KAA2B,EAAA;AACrC,EAAA,IAAA,eAAA,GAAiBC,cAAe,EAAA;AAA9BC,IAAAA,UAAW,mBAAXA,UAAW,CAAA;AACnB,EAAA,IAAQC,IAAM,GAAsCH,KAAA,CAA5CG,IAAM;IAAA,kBAAsCH,GAAAA,KAAA,CAAtCI,WAAA;AAAAA,IAAAA,WAAA,mCAAc,EAAI,GAAA,kBAAA;IAAAC,KAAA,GAAoBL,KAAA,CAApBK,KAAA;IAAOC,WAAaN,KAAA,CAAbM;EAEvC,IAAwCC,SAAAA,GAAAA,SAASH,WAAW,CAAA;AAAA,IAAA,UAAA,GAAA,cAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAArDI,YAAA,GAAA,UAAA,CAAA,CAAA,CAAA;IAAcC,eAAe,GAAA,UAAA,CAAA,CAAA,CAAA,CAAA;EAC9B,IAAsBF,UAAAA,GAAAA,QAAA,CAC1BH,WAAY,CAAAM,GAAA,CAAI,UAACC,IAAA,EAAMC,KAAW,EAAA;AAAA,MAAA,OAAA,aAAA,CAAA;QAChCd,KAAMA,GAAO,IAAA,CAAA;AACbK,QAAAA,IAAM,EAAAS,KAAA;AACNC,QAAAA,WAAa,EAAA,IAAA;AAAA,OAAA,EACVF,IAAA,CAAA,CAAA;AAAA,KACH,CAAA,CACJ;AAAA,IAAA,UAAA,GAAA,cAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAPOG,MAAQ,GAAA,UAAA,CAAA,CAAA,CAAA;IAAAC,SAAS,GAAA,UAAA,CAAA,CAAA,CAAA,CAAA;EAQxB,IAAMC,cAAiB,GAAAC,MAAA,iBAAW,IAAAC,GAAA,EAAK,CAAA,CAAA;EACvC,IAAMC,cAAcF,MAAyB,EAAA,CAAA;AACvC,EAAA,IAAAG,kBAAA,GAAqBH,MAAO,CAAA,EAAE,CAAA,CAAA;AAEpC,EAAA,IAAMI,SAAoC,GAAA;AACxCC,IAAAA,GAAA,EAAIC,SAAAA,GAAAA,CAAAA,cAAoBC,WAAsB,EAAA;MACtC,IAAAC,WAAA,GAAkBX,kBAAAA,CAAAA,MAAM,CAAA,CAAA;MACxB,IAAAF,KAAA,GAAQY,gBAAAA,IAAAA,IAAAA,yBAAAA,cAAeC,WAAY,CAAAC,MAAA,CAAA;AAC7BD,MAAAA,WAAA,CAAAE,MAAA,CAAOf,OAAO,CAAG,EAAA;QAC3Bd,KAAMA,GAAO,IAAA,CAAA;AACbK,QAAAA,IAAM,EAAAS,KAAA;AACNC,QAAAA,WAAa,EAAA,IAAA;AACf,OAAC,CAAA,CAAA;AACWY,MAAAA,WAAA,CAAAG,OAAA,CAAQ,UAACC,KAAA,EAAOjB,MAAU,EAAA;AAAA,QAAA,OAAAkB,MAAA,CAAOC,MAAO,CAAAF,KAAA,EAAO;AAAE1B,UAAAA,IAAA,EAAMS,MAAAA;AAAM,SAAC,CAAC,CAAA;OAAA,CAAA,CAAA;MAC3EG,SAAA,CAAUU,WAAW,CAAA,CAAA;AAEjB,MAAA,IAAA,OAAOF,iBAAiB,WAAa,EAAA;QACjC,IAAAS,gBAAA,GAAuBxB,kBAAAA,CAAAA,YAAY,CAAA,CAAA;AACzCwB,QAAAA,gBAAA,CAAiBpB,KAAS,CAAA,GAAAW,YAAA,CAAA;QAC1Bd,eAAA,CAAgBuB,gBAAgB,CAAA,CAAA;AAClC,OAAA;KACF;IACAC,wBAAOrB,KAA0B,EAAA;MAC/B,IAAMsB,UAAa,GAAApB,MAAA,CAAOqB,MAAO,CAAA,UAACC,IAAS,EAAA;AACrC,QAAA,IAAAC,KAAA,CAAMC,QAAQ1B,KAAK,CAAA,EAAG,OAAO,CAACA,KAAA,CAAM2B,QAAS,CAAAH,IAAA,CAAKjC,IAAI,CAAA,CAAA;AAC1D,QAAA,OAAOiC,KAAKjC,IAAS,KAAAS,KAAA,CAAA;AACvB,OAAC,CAAA,CAAA;MAEDH,eAAA,CAAgBD,aAAa2B,MAAO,CAAA,UAACK,GAAGC,GAAQ,EAAA;QAAA,OAAAA,GAAA,KAAQ7B,KAAK,CAAA;AAAA,OAAA,CAAC,CAAA,CAAA;MAC9DG,SAAA,CAAUmB,UAAU,CAAA,CAAA;KACtB;AACAQ,IAAAA,IAAA,EAAKC,SAAAA,IAAAA,CAAAA,MAAcC,EAAY,EAAA;MACvB,IAAAnB,WAAA,GAAkBX,kBAAAA,CAAAA,MAAM,CAAA,CAAA;AAC9B,MAAA,IAAM+B,QAAW,GAAKpB,aAAAA,CAAAA,EAAAA,EAAAA,WAAA,CAAYkB,IAAM,CAAA,CAAA,CAAA;AACxC,MAAA,IAAMG,MAAS,GAAKrB,aAAAA,CAAAA,EAAAA,EAAAA,WAAA,CAAYmB,EAAI,CAAA,CAAA,CAAA;AACpCnB,MAAAA,WAAA,CAAYmB,EAAM,CAAA,GAAAC,QAAA,CAAA;AAClBpB,MAAAA,WAAA,CAAYkB,IAAQ,CAAA,GAAAG,MAAA,CAAA;MACpB/B,SAAA,CAAUU,WAAW,CAAA,CAAA;AACvB,KAAA;GACF,CAAA;AAGS,EAAA,SAAAsB,aAAA,CAAcC,WAAkBC,QAAoB,EAAA;IAC3DlC,SAAA,CACEiC,SAAU,CAAAtC,GAAA,CAAI,UAAC8B,CAAA,EAAG5B,KAAW,EAAA;MAAA,OAAA;QAC3Bd,KAAMA,GAAO,IAAA,CAAA;AACbK,QAAAA,IAAM,EAAAS,KAAA;AACNC,QAAAA,WAAa,EAAA,IAAA;OACb,CAAA;AAAA,KAAA,CAAA,CACJ,CAAA;AAEAO,IAAAA,kBAAA,CAAmB8B,OAAQ,CAAAC,IAAA,CAAK;AAAEF,MAAAA,QAAA,EAAAA,QAAA;AAAUD,MAAAA,WAAAA,SAAAA;AAAU,KAAC,CAAA,CAAA;AACzD,GAAA;AAEAI,EAAAA,SAAA,CAAU,YAAM;IACb,kBAAGpC,CAAAA,eAAekC,OAAQ,CAAAG,MAAA,EAAQ,CAAA,CAAEzB,OAAA,CAAQ,UAAC0B,WAAgB,EAAA;AAC5D,MAAA,IAAI,CAACA,WAAY,CAAAJ,OAAA,EAAS,OAAA;MAE1B,IAAwBI,oBAAAA,GAAAA,WAAY,CAAAJ,OAAA;AAA5B/C,QAAAA,KAAM,wBAANA,IAAA;AAAMoD,QAAAA,KAAA,wBAAAA,KAAA,CAAA;AACV,MAAA,IAAAA,KAAA,EAAO,OAAA;AAEL,MAAA,IAAA5C,IAAA,GAAO6C,KAAI,CAAAhD,YAAA,EAAcL,KAAI,CAAA,CAAA;AACnCmD,MAAAA,WAAA,CAAYJ,QAAQO,QAAS,CAAA;AAAEF,QAAAA,OAAO5C,IAAM;AAAA+C,QAAAA,MAAA,EAAQ,KAAA;AAAM,OAAC,CAAA,CAAA;AAC7D,KAAC,CAAA,CAAA;AACH,GAAA,EAAG,CAAClD,YAAY,CAAC,CAAA,CAAA;AAEjB4C,EAAAA,SAAA,CAAU,YAAM;AACR,IAAA,IAAAO,YAAA,GAAevC,kBAAmB,CAAA8B,OAAA,CAAQU,GAAI,EAAA,CAAA;IACpD,IAAI,CAACD,YAAA,EAAc,OAAA;IAElB,kBAAG3C,CAAAA,eAAekC,OAAQ,CAAAG,MAAA,EAAQ,CAAA,CAAEzB,OAAA,CAAQ,UAAC0B,WAAgB,EAAA;AAC5D,MAAA,IAAI,CAACA,WAAY,CAAAJ,OAAA,EAAS,OAAA;AAE1B,MAAA,IAAQ/C,KAAK,GAAImD,WAAY,CAAAJ,OAAA,CAArB/C,IAAA,CAAA;AACF,MAAA,IAAE6C,SAAW,GAAaW,YAAA,CAAxBX,SAAW;QAAAC,QAAA,GAAaU,YAAA,CAAbV,QAAA,CAAA;AACb,MAAA,IAAAtC,IAAA,GAAO6C,KAAI,CAAAR,SAAA,EAAW7C,KAAI,CAAA,CAAA;AAChC8C,MAAAA,QAAA,CAASK,aAAa3C,IAAI,CAAA,CAAA;AAC5B,KAAC,CAAA,CAAA;AACH,GAAA,EAAG,CAACG,MAAM,CAAC,CAAA,CAAA;AAEXsC,EAAAA,SAAA,CAAU,YAAM;AACV,IAAA,IAAA,CAACjD,QAAQ,CAACD,UAAA,EAAY,OAAA;IACfA,UAAA,CAAAgD,OAAA,CAAQW,GAAI,CAAA1D,IAAA,EAAMgB,WAAW,CAAA,CAAA;AAExC,IAAA,OAAO,YAAM;AAEAjB,MAAAA,UAAA,CAAAgD,OAAA,WAAe/C,IAAI,CAAA,CAAA;KAChC,CAAA;AAEF,GAAA,EAAG,CAACA,IAAI,CAAC,CAAA,CAAA;EAET2D,mBAAA,CACE3C,WAAA,EACA,YAAA;IAAA,OAAyB;AACvBhB,MAAAA,IAAA,EAAAA,IAAA;AACA4D,MAAAA,QAAW,EAAA,SAAA,QAAA,GAAA;QACT,IAAMC,gBAAgB,EAAC,CAAA;QACtB,kBAAGhD,CAAAA,eAAekC,OAAQ,CAAAG,MAAA,EAAQ,CAAA,CAAEzB,OAAA,CAAQ,UAAC0B,WAAgB,EAAA;AAC5D,UAAA,IAAI,CAACA,WAAY,CAAAJ,OAAA,EAAS,OAAA;UAE1B,IAA2BI,qBAAAA,GAAAA,WAAY,CAAAJ,OAAA;AAA/B/C,YAAAA,KAAM,yBAANA,IAAA;AAAM4D,YAAAA,QAAA,yBAAAA,QAAA,CAAA;UACd,IAAME,UAAa,GAAAC,cAAA,CAAe/D,KAAM,EAAA4D,QAAA,EAAU,CAAA,CAAA;AAClDI,UAAAA,OAAA,CAAMH,eAAeC,UAAU,CAAA,CAAA;AACjC,SAAC,CAAA,CAAA;AACD,QAAA,OAAOD,cAAc7B,MAAO,CAAA,UAACC,IAAS,EAAA;UAAA,OAAA,CAAC,CAACA,IAAI,CAAA;SAAA,CAAA,CAAA;OAC9C;AACAgC,MAAAA,QAAA,EAAU,SAAqB,QAAA,GAAA;QAAA,IAApBC,OAAA,uEAAU,KAAU,CAAA;QAC7B,IAAMC,aAAa,EAAC,CAAA;AACpB,QAAA,IAAMC,YAAY,kBAAIvD,CAAAA,eAAekC,OAAQ,CAAAG,MAAA,EAAQ,CAAA,CAAE3C,GAAA,CAAI,UAAC4C,WAAA,EAAA;AAAA,UAAA,IAAA,qBAAA,EAAA,qBAAA,CAAA;AAAA,UAAA,OAC1DA,WAAa,KAAA,IAAA,IAAbA,WAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAbA,WAAa,CAAAJ,OAAA,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAb,qBAAsBkB,CAAAA,cAAtB,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAA,IAAA,CAAA,qBAAA,EAAiCC,OAAO,CAAA,CAAA;SAC1C,CAAA,CAAA;AACO,QAAA,OAAA,IAAIG,OAAQ,CAAA,UAACC,OAAY,EAAA;UAC9BD,OAAA,CAAQE,GAAI,CAAAH,SAAS,CAAE,CAAAI,IAAA,CAAK,UAACC,cAAmB,EAAA;AAC/BA,YAAAA,cAAA,CAAAhD,OAAA,CAAQ,UAACiD,MAAW,EAAA;cACjC,IAAMC,QAAW,GAAAhD,MAAA,CAAOiD,IAAK,CAAAF,MAAM,CAAE,CAAA,CAAA,CAAA,CAAA;AAC/B,cAAA,IAAAG,YAAA,GAAeF,QAAS,CAAAG,KAAA,CAAM,GAAG,CAAA,CAAA;cAEvC,IAAIC,UAAa,GAAApD,MAAA,CAAOuB,MAAO,CAAAwB,MAAM,CAAE,CAAA,CAAA,CAAA,CAAA;AAC1BK,cAAAA,UAAA,GAAAhB,cAAA,CAAec,cAAcE,UAAU,CAAA,CAAA;AAEpDf,cAAAA,OAAA,CAAMG,YAAYY,UAAU,CAAA,CAAA;AAC9B,aAAC,CAAA,CAAA;AACK,YAAA,IAAAC,UAAA,GAAaP,cAAe,CAAAzC,MAAA,CAAO,UAACC,IAAA,EAAA;cAAA,OAASN,OAAOuB,MAAO,CAAAjB,IAAI,CAAE,CAAA,CAAA,CAAA,KAAO,IAAI,CAAA;aAAA,CAAA,CAAA;YAClF,IAAI+C,WAAWzD,MAAQ,EAAA;AACrB+C,cAAAA,OAAA,qBAAWW,MAAA,CAAOjF,IAAI,CAAA,EAAImE,WAAY,CAAA,CAAA;AACxC,aAAO,MAAA;AACLG,cAAAA,OAAA,qBAAWW,MAAA,CAAOjF,IAAI,CAAA,EAAI,KAAM,CAAA,CAAA;AAClC,aAAA;AACF,WAAC,CAAA,CAAA;AACH,SAAC,CAAA,CAAA;OACH;MACAkF,QAAA,EAAU,SAACrC,QAAAA,CAAAA,SAAqB,EAAA;AAChBD,QAAAA,aAAA,CAAAC,SAAA,EAAW,UAACM,WAAA,EAAa3C,IAAS,EAAA;AAAA,UAAA,IAAA,qBAAA,EAAA,qBAAA,CAAA;AACjC2C,UAAAA,WAAA,KAAAA,IAAAA,IAAAA,WAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAAA,GAAAA,WAAA,CAAAJ,OAAA,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAA,qBAAA,CAASmC,kEAAT,qBAAoB1E,CAAAA,IAAAA,CAAAA,qBAAAA,EAAAA,IAAI,CAAA,CAAA;AACvC,SAAC,CAAA,CAAA;OACH;MACA8C,QAAA,EAAU,SAACT,QAAAA,CAAAA,SAAkD,EAAA;AACrD,QAAA,IAAEO,KAAO,GAAWP,SAAA,CAAlBO,KAAO;UAAAG,MAAA,GAAWV,SAAA,CAAXU,MAAA,CAAA;AACDX,QAAAA,aAAA,CAAAQ,KAAA,EAAO,UAACD,WAAA,EAAa3C,IAAS,EAAA;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,aAAb,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAA,qBAAA,CAAsBO,QAAW,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjC,qBAAiC,CAAA,IAAA,CAAA,qBAAA,EAAA;AAAEF,YAAAA,KAAO,EAAA5C,IAAA;AAAM+C,YAAAA,QAAAA,MAAAA;AAAO,WAAC,CAAA,CAAA;AAC1D,SAAC,CAAA,CAAA;OACH;AACA4B,MAAAA,YAAY,SAAM,UAAA,GAAA;QACf,kBAAGtE,CAAAA,eAAekC,OAAQ,CAAAG,MAAA,EAAQ,CAAA,CAAEzB,OAAA,CAAQ,UAAC0B,WAAgB,EAAA;AAAA,UAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;UAC5DA,WAAA,KAAA,IAAA,IAAAA,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAAA,WAAA,CAAaJ,aAAb,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,sBAAA,GAAA,qBAAA,CAAsBoC,UAAa,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnC,sBAAmC,CAAA,IAAA,CAAA,qBAAA,CAAA,CAAA;AACrC,SAAC,CAAA,CAAA;QACD7E,eAAA,CAAgB,EAAE,CAAA,CAAA;OACpB;MACA8E,kBAAA,EAAoB,SAACvC,kBAAAA,CAAAA,SAAc,EAAA;QAChC,kBAAGhC,CAAAA,eAAekC,OAAQ,CAAAG,MAAA,EAAQ,CAAA,CAAEzB,OAAA,CAAQ,UAAC0B,WAAgB,EAAA;AAAA,UAAA,IAAA,sBAAA,EAAA,sBAAA,CAAA;AAC5D,UAAA,IAAI,CAACA,WAAY,CAAAJ,OAAA,EAAS,OAAA;AAE1B,UAAA,IAAQ/C,KAAK,GAAImD,WAAY,CAAAJ,OAAA,CAArB/C,IAAA,CAAA;AACF,UAAA,IAAAQ,IAAA,GAAO6C,KAAI,CAAAR,SAAA,EAAW7C,KAAI,CAAA,CAAA;AAEnBmD,UAAAA,WAAA,KAAAA,IAAAA,IAAAA,WAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,WAAA,CAAAJ,OAAA,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,sBAAA,GAAA,sBAAA,CAASqC,6EAAT,sBAA8B5E,CAAAA,IAAAA,CAAAA,sBAAAA,EAAAA,IAAI,CAAA,CAAA;AACjD,SAAC,CAAA,CAAA;OACH;AACA6E,MAAAA,eAAe,SAAM,aAAA,GAAA;QAClB,kBAAGxE,CAAAA,eAAekC,OAAQ,CAAAG,MAAA,EAAQ,CAAA,CAAEzB,OAAA,CAAQ,UAAC0B,WAAgB,EAAA;AAAA,UAAA,IAAA,sBAAA,EAAA,sBAAA,CAAA;UAC5DA,WAAA,KAAA,IAAA,IAAAA,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,sBAAA,GAAAA,WAAA,CAAaJ,aAAb,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,sBAAA,GAAA,sBAAA,CAAsBsC,aAAgB,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtC,sBAAsC,CAAA,IAAA,CAAA,sBAAA,CAAA,CAAA;AACxC,SAAC,CAAA,CAAA;AACH,OAAA;KACF,CAAA;AAAA,GAAA,CACF,CAAA;AAEI,EAAA,IAAA,OAAOlF,aAAa,UAAY,EAAA;AAC9BmF,IAAAA,GAAA,CAAAC,KAAA,CAAM,QAAiD,yCAAA,CAAA,CAAA;AACpD,IAAA,OAAA,IAAA,CAAA;AACT,GAAA;EAGE,sBAAAC,KAAA,CAAAC,aAAA,CAACC,gBAAgBC,QAAhB,EAAA;AAAyBvC,IAAAA,KAAO,EAAA;AAAEpD,MAAAA,IAAM,EAANA,IAAM;AAAAE,MAAAA,KAAA,EAAAA,KAAA;AAAOW,MAAAA,cAAe,EAAfA,cAAAA;AAAe,KAAA;AAC5D,GAAA,EAAAV,QAAA,CAASQ,MAAQ,EAAAO,SAAS,CAC7B,CAAA,CAAA;AAEJ,EAAA;AAEAtB,QAAA,CAASgG,WAAc,GAAA,UAAA;;;;"}
|
|
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 { HOOK_MARK } from './hooks/useForm';\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, form } = 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.filter((item) => {\n if (Array.isArray(index)) return !index.includes(item.name);\n return item.name !== index;\n }).map((field, i) => ({ ...field, name: i }));\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 // fields 变化通知 watch 事件\n form?.getInternalHooks?.(HOOK_MARK)?.notifyWatch?.(name);\n\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 }, [form, 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 if (!formItemRef.current) return;\n\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 if (!formItemRef.current) return;\n\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","form","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","item","Array","isArray","includes","i","_","idx","move","from","to","fromItem","toItem","setListFields","fieldData","callback","current","push","useEffect","values","formItemRef","value","get","setField","status","getInternalHooks","HOOK_MARK","notifyWatch","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","String","setValue","resetField","setValidateMessage","resetValidate","log","error","React","createElement","FormListContext","Provider","displayName"],"mappings":"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"}
|
package/esm/form/FormList.js
CHANGED
|
@@ -11,6 +11,7 @@ import React, { useState, useRef, useEffect, useImperativeHandle } from 'react';
|
|
|
11
11
|
import { m as merge_1 } from '../_chunks/dep-0af422e7.js';
|
|
12
12
|
import { g as get_1 } from '../_chunks/dep-60ad6916.js';
|
|
13
13
|
import { useFormContext, FormListContext } from './FormContext.js';
|
|
14
|
+
import { HOOK_MARK } from './hooks/useForm.js';
|
|
14
15
|
import { calcFieldValue } from './utils/index.js';
|
|
15
16
|
import '../_common/js/log/index.js';
|
|
16
17
|
import log from '../_common/js/log/log.js';
|
|
@@ -43,13 +44,15 @@ import '../_chunks/dep-73a3f1c0.js';
|
|
|
43
44
|
import '../_chunks/dep-e4086d66.js';
|
|
44
45
|
import '../_chunks/dep-f9ea62b4.js';
|
|
45
46
|
import '../_chunks/dep-ccb36b1d.js';
|
|
47
|
+
import '../_chunks/dep-2d26d250.js';
|
|
46
48
|
|
|
47
49
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
48
50
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
49
51
|
var key = 0;
|
|
50
52
|
var FormList = function FormList(props) {
|
|
51
53
|
var _useFormContext = useFormContext(),
|
|
52
|
-
formMapRef = _useFormContext.formMapRef
|
|
54
|
+
formMapRef = _useFormContext.formMapRef,
|
|
55
|
+
form = _useFormContext.form;
|
|
53
56
|
var name = props.name,
|
|
54
57
|
_props$initialData = props.initialData,
|
|
55
58
|
initialData = _props$initialData === void 0 ? [] : _props$initialData,
|
|
@@ -97,6 +100,10 @@ var FormList = function FormList(props) {
|
|
|
97
100
|
var nextFields = fields.filter(function (item) {
|
|
98
101
|
if (Array.isArray(index)) return !index.includes(item.name);
|
|
99
102
|
return item.name !== index;
|
|
103
|
+
}).map(function (field, i) {
|
|
104
|
+
return _objectSpread(_objectSpread({}, field), {}, {
|
|
105
|
+
name: i
|
|
106
|
+
});
|
|
100
107
|
});
|
|
101
108
|
setInitialValue(initialValue.filter(function (_, idx) {
|
|
102
109
|
return idx !== index;
|
|
@@ -140,6 +147,8 @@ var FormList = function FormList(props) {
|
|
|
140
147
|
});
|
|
141
148
|
}, [initialValue]);
|
|
142
149
|
useEffect(function () {
|
|
150
|
+
var _form$getInternalHook, _form$getInternalHook2, _form$getInternalHook3;
|
|
151
|
+
form === null || form === void 0 ? void 0 : (_form$getInternalHook = form.getInternalHooks) === null || _form$getInternalHook === void 0 ? void 0 : (_form$getInternalHook2 = _form$getInternalHook.call(form, HOOK_MARK)) === null || _form$getInternalHook2 === void 0 ? void 0 : (_form$getInternalHook3 = _form$getInternalHook2.notifyWatch) === null || _form$getInternalHook3 === void 0 ? void 0 : _form$getInternalHook3.call(_form$getInternalHook2, name);
|
|
143
152
|
var currentQueue = fieldsTaskQueueRef.current.pop();
|
|
144
153
|
if (!currentQueue) return;
|
|
145
154
|
_toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
|
|
@@ -150,7 +159,7 @@ var FormList = function FormList(props) {
|
|
|
150
159
|
var data = get_1(fieldData, name2);
|
|
151
160
|
callback(formItemRef, data);
|
|
152
161
|
});
|
|
153
|
-
}, [fields]);
|
|
162
|
+
}, [form, fields]);
|
|
154
163
|
useEffect(function () {
|
|
155
164
|
if (!name || !formMapRef) return;
|
|
156
165
|
formMapRef.current.set(name, formListRef);
|
|
@@ -171,9 +180,7 @@ var FormList = function FormList(props) {
|
|
|
171
180
|
var fieldValue = calcFieldValue(name2, getValue());
|
|
172
181
|
merge_1(formListValue, fieldValue);
|
|
173
182
|
});
|
|
174
|
-
return formListValue
|
|
175
|
-
return !!item;
|
|
176
|
-
});
|
|
183
|
+
return formListValue;
|
|
177
184
|
},
|
|
178
185
|
validate: function validate() {
|
|
179
186
|
var trigger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "all";
|
package/esm/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 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.filter((item) => {\n if (Array.isArray(index)) return !index.includes(item.name);\n return item.name !== index;\n });\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 if (!formItemRef.current) return;\n\n const { name, getValue } = formItemRef.current;\n const fieldValue = calcFieldValue(name, getValue());\n merge(formListValue, fieldValue);\n });\n return formListValue.filter((item) => !!item);\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 if (!formItemRef.current) return;\n\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","item","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","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 { HOOK_MARK } from './hooks/useForm';\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, form } = 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.filter((item) => {\n if (Array.isArray(index)) return !index.includes(item.name);\n return item.name !== index;\n }).map((field, i) => ({ ...field, name: i }));\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 // fields 变化通知 watch 事件\n form?.getInternalHooks?.(HOOK_MARK)?.notifyWatch?.(name);\n\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 }, [form, 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 if (!formItemRef.current) return;\n\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 if (!formItemRef.current) return;\n\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","form","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","item","Array","isArray","includes","i","_","idx","move","from","to","fromItem","toItem","setListFields","fieldData","callback","current","push","useEffect","values","formItemRef","value","get","setField","status","getInternalHooks","HOOK_MARK","notifyWatch","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","String","setValue","resetField","setValidateMessage","resetValidate","log","error","React","createElement","FormListContext","Provider","displayName"],"mappings":"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"}
|
package/lib/form/FormList.js
CHANGED
|
@@ -11,6 +11,7 @@ import React, { useState, useRef, useEffect, useImperativeHandle } from 'react';
|
|
|
11
11
|
import { m as merge_1 } from '../_chunks/dep-3b165627.js';
|
|
12
12
|
import { g as get_1 } from '../_chunks/dep-8417cd07.js';
|
|
13
13
|
import { useFormContext, FormListContext } from './FormContext.js';
|
|
14
|
+
import { HOOK_MARK } from './hooks/useForm.js';
|
|
14
15
|
import { calcFieldValue } from './utils/index.js';
|
|
15
16
|
import log from '../_common/js/log/log.js';
|
|
16
17
|
import '../_chunks/dep-e5168545.js';
|
|
@@ -39,13 +40,15 @@ import '../_chunks/dep-5b444eef.js';
|
|
|
39
40
|
import '../_chunks/dep-25c79d39.js';
|
|
40
41
|
import '../_chunks/dep-bae448b6.js';
|
|
41
42
|
import '../_chunks/dep-0fc0cafd.js';
|
|
43
|
+
import '../_chunks/dep-2d26d250.js';
|
|
42
44
|
|
|
43
45
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
44
46
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
45
47
|
var key = 0;
|
|
46
48
|
var FormList = function FormList(props) {
|
|
47
49
|
var _useFormContext = useFormContext(),
|
|
48
|
-
formMapRef = _useFormContext.formMapRef
|
|
50
|
+
formMapRef = _useFormContext.formMapRef,
|
|
51
|
+
form = _useFormContext.form;
|
|
49
52
|
var name = props.name,
|
|
50
53
|
_props$initialData = props.initialData,
|
|
51
54
|
initialData = _props$initialData === void 0 ? [] : _props$initialData,
|
|
@@ -93,6 +96,10 @@ var FormList = function FormList(props) {
|
|
|
93
96
|
var nextFields = fields.filter(function (item) {
|
|
94
97
|
if (Array.isArray(index)) return !index.includes(item.name);
|
|
95
98
|
return item.name !== index;
|
|
99
|
+
}).map(function (field, i) {
|
|
100
|
+
return _objectSpread(_objectSpread({}, field), {}, {
|
|
101
|
+
name: i
|
|
102
|
+
});
|
|
96
103
|
});
|
|
97
104
|
setInitialValue(initialValue.filter(function (_, idx) {
|
|
98
105
|
return idx !== index;
|
|
@@ -136,6 +143,8 @@ var FormList = function FormList(props) {
|
|
|
136
143
|
});
|
|
137
144
|
}, [initialValue]);
|
|
138
145
|
useEffect(function () {
|
|
146
|
+
var _form$getInternalHook, _form$getInternalHook2, _form$getInternalHook3;
|
|
147
|
+
form === null || form === void 0 ? void 0 : (_form$getInternalHook = form.getInternalHooks) === null || _form$getInternalHook === void 0 ? void 0 : (_form$getInternalHook2 = _form$getInternalHook.call(form, HOOK_MARK)) === null || _form$getInternalHook2 === void 0 ? void 0 : (_form$getInternalHook3 = _form$getInternalHook2.notifyWatch) === null || _form$getInternalHook3 === void 0 ? void 0 : _form$getInternalHook3.call(_form$getInternalHook2, name);
|
|
139
148
|
var currentQueue = fieldsTaskQueueRef.current.pop();
|
|
140
149
|
if (!currentQueue) return;
|
|
141
150
|
_toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
|
|
@@ -146,7 +155,7 @@ var FormList = function FormList(props) {
|
|
|
146
155
|
var data = get_1(fieldData, name2);
|
|
147
156
|
callback(formItemRef, data);
|
|
148
157
|
});
|
|
149
|
-
}, [fields]);
|
|
158
|
+
}, [form, fields]);
|
|
150
159
|
useEffect(function () {
|
|
151
160
|
if (!name || !formMapRef) return;
|
|
152
161
|
formMapRef.current.set(name, formListRef);
|
|
@@ -167,9 +176,7 @@ var FormList = function FormList(props) {
|
|
|
167
176
|
var fieldValue = calcFieldValue(name2, getValue());
|
|
168
177
|
merge_1(formListValue, fieldValue);
|
|
169
178
|
});
|
|
170
|
-
return formListValue
|
|
171
|
-
return !!item;
|
|
172
|
-
});
|
|
179
|
+
return formListValue;
|
|
173
180
|
},
|
|
174
181
|
validate: function validate() {
|
|
175
182
|
var trigger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "all";
|
package/lib/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 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.filter((item) => {\n if (Array.isArray(index)) return !index.includes(item.name);\n return item.name !== index;\n });\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 if (!formItemRef.current) return;\n\n const { name, getValue } = formItemRef.current;\n const fieldValue = calcFieldValue(name, getValue());\n merge(formListValue, fieldValue);\n });\n return formListValue.filter((item) => !!item);\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 if (!formItemRef.current) return;\n\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","item","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","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 { HOOK_MARK } from './hooks/useForm';\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, form } = 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.filter((item) => {\n if (Array.isArray(index)) return !index.includes(item.name);\n return item.name !== index;\n }).map((field, i) => ({ ...field, name: i }));\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 // fields 变化通知 watch 事件\n form?.getInternalHooks?.(HOOK_MARK)?.notifyWatch?.(name);\n\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 }, [form, 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 if (!formItemRef.current) return;\n\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 if (!formItemRef.current) return;\n\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","form","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","item","Array","isArray","includes","i","_","idx","move","from","to","fromItem","toItem","setListFields","fieldData","callback","current","push","useEffect","values","formItemRef","value","get","setField","status","getInternalHooks","HOOK_MARK","notifyWatch","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","String","setValue","resetField","setValidateMessage","resetValidate","log","error","React","createElement","FormListContext","Provider","displayName"],"mappings":"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"}
|