From 69677e1ddc34a6914166e61fd4929bdd5dc0aed2 Mon Sep 17 00:00:00 2001 From: janrywang Date: Sun, 31 Jan 2021 23:00:51 +0800 Subject: [PATCH] feat(schema-field): move transformer to json-schema package --- packages/antd/src/array-table/index.tsx | 9 +- packages/json-schema/package.json | 3 +- .../__snapshots__/schema.spec.ts.snap | 784 ------------------ packages/json-schema/src/schema.ts | 25 +- .../src/transformer.ts} | 69 +- packages/json-schema/src/types.ts | 19 + packages/next/src/array-table/index.tsx | 9 +- .../src/__tests__/json.spec.tsx | 1 + .../src/__tests__/markup.spec.tsx | 1 + .../src/components/RecursionField.tsx | 39 +- .../react-schema-field/src/hooks/index.ts | 2 - .../src/hooks/useCompliedSchema.ts | 15 - packages/react-schema-field/src/index.ts | 2 +- .../react-schema-field/src/shared/context.ts | 1 - packages/react/src/types.ts | 8 +- 15 files changed, 98 insertions(+), 889 deletions(-) rename packages/{react-schema-field/src/hooks/useCompliedProps.ts => json-schema/src/transformer.ts} (85%) create mode 100644 packages/react-schema-field/src/__tests__/json.spec.tsx create mode 100644 packages/react-schema-field/src/__tests__/markup.spec.tsx delete mode 100644 packages/react-schema-field/src/hooks/useCompliedSchema.ts diff --git a/packages/antd/src/array-table/index.tsx b/packages/antd/src/array-table/index.tsx index e53ba69f0aa..e591757c750 100644 --- a/packages/antd/src/array-table/index.tsx +++ b/packages/antd/src/array-table/index.tsx @@ -6,11 +6,7 @@ import { SelectProps } from 'antd/lib/select' import cls from 'classnames' import { SortableContainer, SortableElement } from 'react-sortable-hoc' import { useForm, useField, observer } from '@formily/react' -import { - useSchema, - RecursionField, - transformSchemaToFieldProps, -} from '@formily/react-schema-field' +import { useSchema, RecursionField } from '@formily/react-schema-field' import { FormPath, isArr, isBool } from '@formily/shared' import { Schema } from '@formily/json-schema' import { usePrefixCls } from '../__builtins__' @@ -69,8 +65,7 @@ const useArrayTableSources = () => { return [] const name = schema['x-component-props']?.['dataIndex'] || schema['name'] const field = arrayField.query(arrayField.address.concat(name)).take() - const fieldProps = - field?.props || transformSchemaToFieldProps(name, schema, {}) + const fieldProps = field?.props || schema.toFieldProps() const columnProps = field?.component?.[1] || schema['x-component-props'] || {} const display = field?.display || schema['x-display'] diff --git a/packages/json-schema/package.json b/packages/json-schema/package.json index 4e6e077a88a..e86486423a5 100644 --- a/packages/json-schema/package.json +++ b/packages/json-schema/package.json @@ -30,7 +30,8 @@ "mobx": "^6.0.3" }, "dependencies": { - "@formily/shared":"^2.0.0-beta.3" + "@formily/core": "^2.0.0-beta.3", + "@formily/shared": "^2.0.0-beta.3" }, "publishConfig": { "access": "public" diff --git a/packages/json-schema/src/__tests__/__snapshots__/schema.spec.ts.snap b/packages/json-schema/src/__tests__/__snapshots__/schema.spec.ts.snap index a4eac7eee7c..75275f9ff94 100644 --- a/packages/json-schema/src/__tests__/__snapshots__/schema.spec.ts.snap +++ b/packages/json-schema/src/__tests__/__snapshots__/schema.spec.ts.snap @@ -3,63 +3,19 @@ exports[`all methods 1`] = ` Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], "additionalProperties": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "patternProperties": Object { "^[a-zA-Z0-9]*$": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "properties": Object { "made": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "made", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", @@ -67,23 +23,7 @@ Object { }, "model": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "model", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", @@ -91,39 +31,13 @@ Object { }, "year": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "year", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", "x-index": 0, }, }, - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "version": "2.0", "x-decorator": "FormItem", }, @@ -131,117 +45,37 @@ Object { "properties": Object { "array": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], "additionalItems": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, - "complie": [Function], - "fromJSON": [Function], "items": Array [ Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "integer", "version": "2.0", "x-decorator": "FormItem", }, Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "integer", "version": "2.0", "x-decorator": "FormItem", }, ], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "array", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], "title": "string", - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, "string": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], "description": null, - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "string", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], "title": "string", - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", @@ -256,16 +90,6 @@ Object { ], }, }, - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "object", "version": "2.0", "x-reactions": null, @@ -275,63 +99,19 @@ Object { exports[`all methods 2`] = ` Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], "additionalProperties": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "patternProperties": Object { "^[a-zA-Z0-9]*$": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "properties": Object { "made": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "made", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", @@ -339,23 +119,7 @@ Object { }, "model": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "model", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", @@ -363,39 +127,13 @@ Object { }, "year": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "year", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", "x-index": 0, }, }, - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "version": "2.0", "x-decorator": "FormItem", }, @@ -403,117 +141,37 @@ Object { "properties": Object { "array": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], "additionalItems": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, - "complie": [Function], - "fromJSON": [Function], "items": Array [ Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "integer", "version": "2.0", "x-decorator": "FormItem", }, Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "integer", "version": "2.0", "x-decorator": "FormItem", }, ], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "array", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], "title": "string", - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, "string": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], "description": null, - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "string", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], "title": "string", - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", @@ -528,16 +186,6 @@ Object { ], }, }, - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "object", "version": "2.0", "x-reactions": null, @@ -547,139 +195,43 @@ Object { exports[`all methods 3`] = ` Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], "additionalProperties": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "patternProperties": Object {}, "properties": Object { "array": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], "additionalItems": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, - "complie": [Function], - "fromJSON": [Function], "items": Array [ Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "integer", "version": "2.0", "x-decorator": "FormItem", }, Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "integer", "version": "2.0", "x-decorator": "FormItem", }, ], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "array", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], "title": "string", - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, }, - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "object", "version": "2.0", "x-reactions": null, @@ -689,25 +241,9 @@ Object { exports[`all methods 4`] = ` Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], "description": null, - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "string", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], "title": "string", - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", @@ -726,30 +262,14 @@ Object { exports[`all methods 5`] = ` Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], "additionalItems": undefined, "additionalProperties": undefined, - "complie": [Function], - "fromJSON": [Function], "items": Array [ undefined, ], - "mapPatternProperties": [Function], - "mapProperties": [Function], "properties": Object { "xxx": undefined, }, - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "object", "version": "2.0", } @@ -758,30 +278,14 @@ Object { exports[`all methods 6`] = ` Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], "additionalItems": undefined, "additionalProperties": undefined, - "complie": [Function], - "fromJSON": [Function], "items": Array [ undefined, ], - "mapPatternProperties": [Function], - "mapProperties": [Function], "properties": Object { "xxx": undefined, }, - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "object", "version": "2.0", } @@ -790,125 +294,39 @@ Object { exports[`all props 1`] = ` Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], "additionalProperties": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, - "complie": [Function], "description": "description", - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "patternProperties": Object { "^[a-zA-Z0-9]*$": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "properties": Object { "made": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "made", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, "model": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "model", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, "year": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "year", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, }, - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "version": "2.0", "x-decorator": "FormItem", }, @@ -916,256 +334,80 @@ Object { "properties": Object { "array": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], "additionalItems": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "number", "version": "2.0", "x-decorator": "FormItem", }, - "complie": [Function], - "fromJSON": [Function], "items": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "array", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "array", "version": "2.0", "x-decorator": "FormItem", }, "array2": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], "items": Array [ Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-decorator": "FormItem", }, Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "object", "version": "2.0", }, ], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "array2", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "array", "version": "2.0", "x-decorator": "FormItem", }, "boolean": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], "default": false, - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "boolean", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "boolean", "version": "2.0", "x-decorator": "FormItem", }, "date": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], "default": "2020-12-23", - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "date", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "date", "version": "2.0", "x-decorator": "FormItem", }, "datetime": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], "default": "2020-12-23 23:00:00", - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "datetime", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "datetime", "version": "2.0", "x-decorator": "FormItem", }, "number": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], "default": 100, - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "number", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "number", "version": "2.0", "x-decorator": "FormItem", }, "string": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], "default": "default", - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "string", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], "required": true, - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "string", "version": "2.0", "x-component": "Input", @@ -1194,38 +436,12 @@ Object { }, "void": Object { "_isJSONSchemaObject": true, - "addPatternProperty": [Function], - "addProperty": [Function], - "complie": [Function], - "fromJSON": [Function], - "mapPatternProperties": [Function], - "mapProperties": [Function], "name": "void", - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], - "toJSON": [Function], "type": "void", "version": "2.0", }, }, - "reducePatternProperties": [Function], - "reduceProperties": [Function], - "removePatternProperty": [Function], - "removeProperty": [Function], - "setAdditionalItems": [Function], - "setAdditionalProperties": [Function], - "setItems": [Function], - "setPatternProperties": [Function], - "setProperties": [Function], "title": "title", - "toJSON": [Function], "type": "object", "version": "2.0", } diff --git a/packages/json-schema/src/schema.ts b/packages/json-schema/src/schema.ts index 78907f710f7..8f9a0d341dd 100644 --- a/packages/json-schema/src/schema.ts +++ b/packages/json-schema/src/schema.ts @@ -6,9 +6,11 @@ import { SchemaTypes, SchemaKey, SchemaPatch, + ISchemaTransformerOptions, } from './types' import { map, each, isFn, instOf } from '@formily/shared' import { complie, shallowComplie, registerComplier } from './complier' +import { transformSchemaToFieldProps } from './transformer' const patches: SchemaPatch[] = [] @@ -23,6 +25,7 @@ export class Schema< Message = any, ReactionField = any > implements ISchema { + parent?: Schema name?: SchemaKey title?: Message description?: Message @@ -163,8 +166,12 @@ export class Schema< Display, Validator, Message - > + >, + parent?: Schema ) { + if (parent) { + this.parent = parent + } return this.fromJSON(json) } @@ -182,7 +189,7 @@ export class Schema< > ) => { this.properties = this.properties || {} - this.properties[key] = new Schema(schema) + this.properties[key] = new Schema(schema, this) this.properties[key].name = key return this.properties[key] } @@ -225,7 +232,8 @@ export class Schema< ) => { if (!schema) return this.patternProperties = this.patternProperties || {} - this.patternProperties[key] = new Schema(schema) + this.patternProperties[key] = new Schema(schema, this) + this.patternProperties[key].name = key return this.patternProperties[key] } @@ -295,9 +303,9 @@ export class Schema< ) => { if (!schema) return if (Array.isArray(schema)) { - this.items = schema.map((item) => new Schema(item)) + this.items = schema.map((item) => new Schema(item, this)) } else { - this.items = new Schema(schema) + this.items = new Schema(schema, this) } return this.items } @@ -315,7 +323,7 @@ export class Schema< > ) => { if (!items) return - this.additionalItems = new Schema(items) + this.additionalItems = new Schema(items, this) return this.additionalItems } @@ -491,6 +499,7 @@ export class Schema< > => { const results = {} each(this, (value: any, key) => { + if (isFn(value) || key === 'parent') return if (key === 'properties' || key === 'patternProperties') { results[key] = map(value, (item) => item?.toJSON?.()) } else if (key === 'additionalProperties' || key === 'additionalItems') { @@ -508,6 +517,10 @@ export class Schema< return results } + toFieldProps = (options?: ISchemaTransformerOptions) => { + return transformSchemaToFieldProps(this, options) + } + static getOrderProperties = ( schema: ISchema = {}, propertiesName: keyof ISchema = 'properties' diff --git a/packages/react-schema-field/src/hooks/useCompliedProps.ts b/packages/json-schema/src/transformer.ts similarity index 85% rename from packages/react-schema-field/src/hooks/useCompliedProps.ts rename to packages/json-schema/src/transformer.ts index c47df939a74..ab96d802694 100644 --- a/packages/react-schema-field/src/hooks/useCompliedProps.ts +++ b/packages/json-schema/src/transformer.ts @@ -1,6 +1,4 @@ -import { useContext } from 'react' import { runInAction } from 'mobx' -import { ISchema, SchemaKey, Schema } from '@formily/json-schema' import { isBool, isArr, @@ -13,15 +11,16 @@ import { isFn, } from '@formily/shared' import { getValidateLocale } from '@formily/validator' -import { SchemaExpressionScopeContext, SchemaRequiredContext } from '../shared' +import { Schema } from './schema' import { + ISchema, ISchemaFieldFactoryOptions, ISchemaFieldUpdateRequest, - ISchemaTransformerOptions, -} from '../types' +} from './types' +import '@formily/core' const getValidatorBySchema = ( - schema: ISchema + schema: Schema ): Formily.Core.Types.FieldValidator => { let rules = [] if (schema.format) { @@ -111,7 +110,7 @@ const getValidatorBySchema = ( if (rules.length) return rules } -const getFieldDataSourceBySchema = (schema: ISchema) => { +const getFieldDataSourceBySchema = (schema: Schema) => { if (isArr(schema['enum'])) { return schema['enum'].map((item) => { if (typeof item === 'object') { @@ -127,7 +126,7 @@ const getFieldDataSourceBySchema = (schema: ISchema) => { } const getFieldInternalPropsBySchema = ( - schema: ISchema, + schema: Schema, options: ISchemaFieldFactoryOptions ) => { return { @@ -184,24 +183,26 @@ const patchState = (state: any, target: any) => { }) } -const getSchemaFieldRequired = ( - schema: ISchema, - name: SchemaKey, - required: ISchema['required'] -) => { +const getSchemaFieldRequired = (schema: Schema) => { if (isBool(schema.required)) { return schema.required } - if (isStr(required)) { - if (FormPath.parse(required).match(name)) { - return true - } - } - if (isArr(required)) { - if (required.some((parent) => FormPath.parse(parent).match(name))) { - return true + let parent: Schema = schema.parent + while (parent) { + if (isStr(parent.required)) { + if (FormPath.parse(parent.required).match(schema.name)) return true + } else if (isArr(parent.required)) { + if ( + parent.required.some((parent) => + FormPath.parse(parent).match(schema.name) + ) + ) { + return true + } } + parent = parent.parent } + return false } const getSchemaFieldReactions = ( @@ -293,34 +294,16 @@ const getSchemaFieldReactions = ( } export const transformSchemaToFieldProps = ( - name: SchemaKey, - schema: ISchema, - options: ISchemaTransformerOptions + schema: Schema, + options: ISchemaFieldFactoryOptions ) => { - const required = getSchemaFieldRequired(schema, name, options.required) + const required = getSchemaFieldRequired(schema) const reactions = getSchemaFieldReactions(schema, options) const props = getFieldInternalPropsBySchema(schema, options) return { ...props, required, - name, + name: schema.name, reactions: [reactions], } } - -export const useCompliedProps = ( - name: SchemaKey, - schema: ISchema, - options: ISchemaFieldFactoryOptions -) => { - const required = useContext(SchemaRequiredContext) - const contextScope = useContext(SchemaExpressionScopeContext) - return transformSchemaToFieldProps(name, schema, { - ...options, - required, - scope: { - ...options.scope, - ...contextScope, - }, - }) as Formily.React.Types.IFieldProps -} diff --git a/packages/json-schema/src/types.ts b/packages/json-schema/src/types.ts index 6cb2f3208e3..b6bb2151fe6 100644 --- a/packages/json-schema/src/types.ts +++ b/packages/json-schema/src/types.ts @@ -92,6 +92,25 @@ export type SchemaItems< Message >[] +export type SchemaComponents = Record any> + +export interface ISchemaFieldFactoryOptions< + Components extends SchemaComponents = any +> { + components?: Components + scope?: any +} + +export interface ISchemaFieldUpdateRequest { + state?: Formily.Core.Types.IFieldState + schema?: ISchema + run?: string +} + +export interface ISchemaTransformerOptions extends ISchemaFieldFactoryOptions { + required?: ISchema['required'] +} + export interface ISchema< Decorator = any, Component = any, diff --git a/packages/next/src/array-table/index.tsx b/packages/next/src/array-table/index.tsx index ffcaa5c7137..c4287a61f7b 100644 --- a/packages/next/src/array-table/index.tsx +++ b/packages/next/src/array-table/index.tsx @@ -5,11 +5,7 @@ import { TableProps, ColumnProps } from '@alifd/next/lib/table' import { SelectProps } from '@alifd/next/lib/select' import cls from 'classnames' import { useForm, useField, observer } from '@formily/react' -import { - useSchema, - RecursionField, - transformSchemaToFieldProps, -} from '@formily/react-schema-field' +import { useSchema, RecursionField } from '@formily/react-schema-field' import { FormPath, isArr, isBool } from '@formily/shared' import { Schema } from '@formily/json-schema' import { usePrefixCls } from '../__builtins__' @@ -70,8 +66,7 @@ const useArrayTableSources = () => { return [] const name = schema['x-component-props']?.['dataIndex'] || schema['name'] const field = arrayField.query(arrayField.address.concat(name)).take() - const fieldProps = - field?.props || transformSchemaToFieldProps(name, schema, {}) + const fieldProps = field?.props || schema.toFieldProps() const columnProps = field?.component?.[1] || schema['x-component-props'] || {} const display = field?.display || schema['x-display'] diff --git a/packages/react-schema-field/src/__tests__/json.spec.tsx b/packages/react-schema-field/src/__tests__/json.spec.tsx new file mode 100644 index 00000000000..1e580578844 --- /dev/null +++ b/packages/react-schema-field/src/__tests__/json.spec.tsx @@ -0,0 +1 @@ +test('json-schema', () => {}) diff --git a/packages/react-schema-field/src/__tests__/markup.spec.tsx b/packages/react-schema-field/src/__tests__/markup.spec.tsx new file mode 100644 index 00000000000..86430975c86 --- /dev/null +++ b/packages/react-schema-field/src/__tests__/markup.spec.tsx @@ -0,0 +1 @@ +test('markup-schema', () => {}) diff --git a/packages/react-schema-field/src/components/RecursionField.tsx b/packages/react-schema-field/src/components/RecursionField.tsx index efa3b884cf7..276277c23f3 100644 --- a/packages/react-schema-field/src/components/RecursionField.tsx +++ b/packages/react-schema-field/src/components/RecursionField.tsx @@ -8,10 +8,9 @@ import { } from '@formily/react' import { SchemaContext, - SchemaRequiredContext, SchemaOptionsContext, + SchemaExpressionScopeContext, } from '../shared' -import { useCompliedProps, useCompliedSchema } from '../hooks' import { IRecursionFieldProps } from '../types' import { isBool, isFn, isValid } from '@formily/shared' import { Schema } from '@formily/json-schema' @@ -19,8 +18,12 @@ import { Schema } from '@formily/json-schema' export const RecursionField: React.FC = (props) => { const parent = useField() const options = useContext(SchemaOptionsContext) - const schema_ = useCompliedSchema(props.schema, options) - const props_ = useCompliedProps(props.name, schema_, options) + const scope = useContext(SchemaExpressionScopeContext) + const fieldSchema = props?.schema?.complie({ + ...options.scope, + ...scope, + }) + const fieldProps = props?.schema?.toFieldProps(options) const getBasePath = () => { if (props.onlyRenderProperties) { return props.basePath || parent?.address?.concat(props.name) @@ -32,7 +35,7 @@ export const RecursionField: React.FC = (props) => { if (props.onlyRenderSelf) return return ( - {schema_.mapProperties((item, name, index) => { + {fieldSchema.mapProperties((item, name, index) => { const base = field?.address || basePath let schema: Schema = item if (isFn(props.mapProperties)) { @@ -52,42 +55,42 @@ export const RecursionField: React.FC = (props) => { /> ) })} - {schema_['x-content']} + {fieldSchema['x-content']} ) } const render = () => { if (!isValid(props.name)) return renderProperties() - if (schema_.type === 'object') { + if (fieldSchema.type === 'object') { if (props.onlyRenderProperties) return renderProperties() return ( - + {renderProperties} ) - } else if (schema_.type === 'array') { - return - } else if (schema_.type === 'void') { + } else if (fieldSchema.type === 'array') { + return ( + + ) + } else if (fieldSchema.type === 'void') { if (props.onlyRenderProperties) return renderProperties() return ( - + {renderProperties} ) } return ( - - {schema_['x-content']} + + {fieldSchema['x-content']} ) } return ( - - - {render()} - + + {render()} ) } diff --git a/packages/react-schema-field/src/hooks/index.ts b/packages/react-schema-field/src/hooks/index.ts index c4aeca7756b..6ba35b13724 100644 --- a/packages/react-schema-field/src/hooks/index.ts +++ b/packages/react-schema-field/src/hooks/index.ts @@ -1,3 +1 @@ -export * from './useCompliedSchema' -export * from './useCompliedProps' export * from './useSchema' \ No newline at end of file diff --git a/packages/react-schema-field/src/hooks/useCompliedSchema.ts b/packages/react-schema-field/src/hooks/useCompliedSchema.ts deleted file mode 100644 index 428766369db..00000000000 --- a/packages/react-schema-field/src/hooks/useCompliedSchema.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { useContext } from 'react' -import { Schema } from '@formily/json-schema' -import { SchemaExpressionScopeContext } from '../shared' -import { ISchemaFieldFactoryOptions } from '../types' - -export const useCompliedSchema = ( - schema: Schema, - options: ISchemaFieldFactoryOptions -): Schema => { - const scope = useContext(SchemaExpressionScopeContext) - return schema.complie({ - ...options.scope, - ...scope - }) -} diff --git a/packages/react-schema-field/src/index.ts b/packages/react-schema-field/src/index.ts index 47250ad96b2..505e695ee68 100644 --- a/packages/react-schema-field/src/index.ts +++ b/packages/react-schema-field/src/index.ts @@ -1,5 +1,5 @@ export * from '@formily/json-schema' -export * from './factory' export * from './hooks' +export * from './factory' export * from './components' export * from './global' diff --git a/packages/react-schema-field/src/shared/context.ts b/packages/react-schema-field/src/shared/context.ts index 9108fb0b38f..b8bf4716606 100644 --- a/packages/react-schema-field/src/shared/context.ts +++ b/packages/react-schema-field/src/shared/context.ts @@ -4,7 +4,6 @@ import { ISchemaFieldFactoryOptions } from '../types' export const SchemaMarkupContext = createContext(null) export const SchemaContext = createContext(null) -export const SchemaRequiredContext = createContext(null) export const SchemaExpressionScopeContext = createContext(null) export const SchemaOptionsContext = createContext( null diff --git a/packages/react/src/types.ts b/packages/react/src/types.ts index 1474ceb1e55..41b19839977 100644 --- a/packages/react/src/types.ts +++ b/packages/react/src/types.ts @@ -18,8 +18,8 @@ export interface IFieldProps< children?: | ((field: Field, form: Formily.Core.Models.Form) => React.ReactChild) | React.ReactNode - decorator?: [] | [D] | [D, React.ComponentProps] - component?: [] | [C] | [C, React.ComponentProps] + decorator?: [] | [D] | [D, React.ComponentProps] | any[] + component?: [] | [C] | [C, React.ComponentProps] | any[] } export interface IVoidFieldProps< @@ -30,8 +30,8 @@ export interface IVoidFieldProps< children?: | ((field: Field, form: Formily.Core.Models.Form) => React.ReactChild) | React.ReactNode - decorator?: [] | [D] | [D, React.ComponentProps] - component?: [] | [C] | [C, React.ComponentProps] + decorator?: [] | [D] | [D, React.ComponentProps] | any[] + component?: [] | [C] | [C, React.ComponentProps] | any[] } export interface IComponentMapper {