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.
@@ -15,6 +15,7 @@ var React = require('react');
15
15
  var merge = require('../_chunks/dep-7d662d87.js');
16
16
  var get = require('../_chunks/dep-05754736.js');
17
17
  var form_FormContext = require('./FormContext.js');
18
+ var form_hooks_useForm = require('./hooks/useForm.js');
18
19
  var form_utils_index = require('./utils/index.js');
19
20
  var _common_js_log_log = require('../_common/js/log/log.js');
20
21
  require('../_chunks/dep-8437df7f.js');
@@ -43,6 +44,7 @@ require('../_chunks/dep-7cb6e269.js');
43
44
  require('../_chunks/dep-12f00fe6.js');
44
45
  require('../_chunks/dep-41a8412b.js');
45
46
  require('../_chunks/dep-d39353aa.js');
47
+ require('../_chunks/dep-3fcaea20.js');
46
48
 
47
49
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
48
50
 
@@ -53,7 +55,8 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
53
55
  var key = 0;
54
56
  var FormList = function FormList(props) {
55
57
  var _useFormContext = form_FormContext.useFormContext(),
56
- formMapRef = _useFormContext.formMapRef;
58
+ formMapRef = _useFormContext.formMapRef,
59
+ form = _useFormContext.form;
57
60
  var name = props.name,
58
61
  _props$initialData = props.initialData,
59
62
  initialData = _props$initialData === void 0 ? [] : _props$initialData,
@@ -101,6 +104,10 @@ var FormList = function FormList(props) {
101
104
  var nextFields = fields.filter(function (item) {
102
105
  if (Array.isArray(index)) return !index.includes(item.name);
103
106
  return item.name !== index;
107
+ }).map(function (field, i) {
108
+ return _objectSpread(_objectSpread({}, field), {}, {
109
+ name: i
110
+ });
104
111
  });
105
112
  setInitialValue(initialValue.filter(function (_, idx) {
106
113
  return idx !== index;
@@ -144,6 +151,8 @@ var FormList = function FormList(props) {
144
151
  });
145
152
  }, [initialValue]);
146
153
  React.useEffect(function () {
154
+ var _form$getInternalHook, _form$getInternalHook2, _form$getInternalHook3;
155
+ form === null || form === void 0 ? void 0 : (_form$getInternalHook = form.getInternalHooks) === null || _form$getInternalHook === void 0 ? void 0 : (_form$getInternalHook2 = _form$getInternalHook.call(form, form_hooks_useForm.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);
147
156
  var currentQueue = fieldsTaskQueueRef.current.pop();
148
157
  if (!currentQueue) return;
149
158
  toConsumableArray._toConsumableArray(formListMapRef.current.values()).forEach(function (formItemRef) {
@@ -154,7 +163,7 @@ var FormList = function FormList(props) {
154
163
  var data = get.get_1(fieldData, name2);
155
164
  callback(formItemRef, data);
156
165
  });
157
- }, [fields]);
166
+ }, [form, fields]);
158
167
  React.useEffect(function () {
159
168
  if (!name || !formMapRef) return;
160
169
  formMapRef.current.set(name, formListRef);
@@ -175,9 +184,7 @@ var FormList = function FormList(props) {
175
184
  var fieldValue = form_utils_index.calcFieldValue(name2, getValue());
176
185
  merge.merge_1(formListValue, fieldValue);
177
186
  });
178
- return formListValue.filter(function (item) {
179
- return !!item;
180
- });
187
+ return formListValue;
181
188
  },
182
189
  validate: function validate() {
183
190
  var trigger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "all";
@@ -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","_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","item","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","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","_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","item","Array","isArray","includes","i","_","idx","move","from","to","fromItem","toItem","setListFields","fieldData","callback","current","push","useEffect","_toConsumableArray","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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"}