diff --git a/web/src/components/WebFastForm/__tests__/utils.spec.ts b/packages/design/components/WebMetaForm/__tests__/utils.spec.ts similarity index 100% rename from web/src/components/WebFastForm/__tests__/utils.spec.ts rename to packages/design/components/WebMetaForm/__tests__/utils.spec.ts diff --git a/web/src/components/WebFastForm/index.tsx b/packages/design/components/WebMetaForm/index.tsx similarity index 57% rename from web/src/components/WebFastForm/index.tsx rename to packages/design/components/WebMetaForm/index.tsx index 25f36922..14efda88 100644 --- a/web/src/components/WebFastForm/index.tsx +++ b/packages/design/components/WebMetaForm/index.tsx @@ -1,27 +1,27 @@ import React, { useMemo } from 'react'; import { - FastForm, + MetaForm, regField, - FastFormContainerComponent, + MetaFormContainerComponent, regFormContainer, -} from 'tailchat-shared'; +} from 'meta-form'; import { Form, Button } from 'antd'; -import { FastFormText } from './types/Text'; -import { FastFormTextArea } from './types/TextArea'; -import { FastFormPassword } from './types/Password'; -import { FastFormSelect } from './types/Select'; -import { FastFormCheckbox } from './types/Checkbox'; -import { FastFormCustom } from './types/Custom'; +import { MetaFormText } from './types/Text'; +import { MetaFormTextArea } from './types/TextArea'; +import { MetaFormPassword } from './types/Password'; +import { MetaFormSelect } from './types/Select'; +import { MetaFormCheckbox } from './types/Checkbox'; +import { MetaFormCustom } from './types/Custom'; -regField('text', FastFormText); -regField('textarea', FastFormTextArea); -regField('password', FastFormPassword); -regField('select', FastFormSelect); -regField('checkbox', FastFormCheckbox); -regField('custom', FastFormCustom); +regField('text', MetaFormText); +regField('textarea', MetaFormTextArea); +regField('password', MetaFormPassword); +regField('select', MetaFormSelect); +regField('checkbox', MetaFormCheckbox); +regField('custom', MetaFormCustom); -const WebFastFormContainer: FastFormContainerComponent = React.memo((props) => { +const WebMetaFormContainer: MetaFormContainerComponent = React.memo((props) => { const layout = props.layout; const submitButtonRender = useMemo(() => { return ( @@ -64,8 +64,8 @@ const WebFastFormContainer: FastFormContainerComponent = React.memo((props) => { ); }); -WebFastFormContainer.displayName = 'WebFastFormContainer'; -regFormContainer(WebFastFormContainer); +WebMetaFormContainer.displayName = 'WebMetaFormContainer'; +regFormContainer(WebMetaFormContainer); -export const WebFastForm = FastForm; -WebFastForm.displayName = 'WebFastForm'; +export const WebMetaForm = MetaForm; +WebMetaForm.displayName = 'WebMetaForm'; diff --git a/web/src/components/WebFastForm/types/Checkbox.tsx b/packages/design/components/WebMetaForm/types/Checkbox.tsx similarity index 73% rename from web/src/components/WebFastForm/types/Checkbox.tsx rename to packages/design/components/WebMetaForm/types/Checkbox.tsx index 6b8425c9..f3b7fa90 100644 --- a/web/src/components/WebFastForm/types/Checkbox.tsx +++ b/packages/design/components/WebMetaForm/types/Checkbox.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { Form, Checkbox } from 'antd'; -import type { FastFormFieldComponent } from 'tailchat-shared'; +import type { MetaFormFieldComponent } from 'meta-form'; import { getValidateStatus } from '../utils'; -export const FastFormCheckbox: FastFormFieldComponent = React.memo((props) => { +export const MetaFormCheckbox: MetaFormFieldComponent = React.memo((props) => { const { name, label, value, onChange, error } = props; return ( @@ -22,4 +22,4 @@ export const FastFormCheckbox: FastFormFieldComponent = React.memo((props) => { ); }); -FastFormCheckbox.displayName = 'FastFormCheckbox'; +MetaFormCheckbox.displayName = 'MetaFormCheckbox'; diff --git a/packages/design/components/WebMetaForm/types/Custom.tsx b/packages/design/components/WebMetaForm/types/Custom.tsx new file mode 100644 index 00000000..799061d8 --- /dev/null +++ b/packages/design/components/WebMetaForm/types/Custom.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import { Form } from 'antd'; +import type { MetaFormFieldComponent, MetaFormFieldProps } from 'meta-form'; +import { CustomField } from 'meta-form'; + +export const MetaFormCustom: MetaFormFieldComponent<{ + render: (props: MetaFormFieldProps) => React.ReactNode; +}> = React.memo((props) => { + const { label } = props; + + return ( + + + + ); +}); +MetaFormCustom.displayName = 'MetaFormCustom'; diff --git a/web/src/components/WebFastForm/types/Password.tsx b/packages/design/components/WebMetaForm/types/Password.tsx similarity index 76% rename from web/src/components/WebFastForm/types/Password.tsx rename to packages/design/components/WebMetaForm/types/Password.tsx index 56256a4e..940c4c5d 100644 --- a/web/src/components/WebFastForm/types/Password.tsx +++ b/packages/design/components/WebMetaForm/types/Password.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { Input, Form } from 'antd'; -import type { FastFormFieldComponent } from 'tailchat-shared'; +import type { MetaFormFieldComponent } from 'meta-form'; import { getValidateStatus } from '../utils'; -export const FastFormPassword: FastFormFieldComponent = React.memo((props) => { +export const MetaFormPassword: MetaFormFieldComponent = React.memo((props) => { const { name, label, value, onChange, error, maxLength, placeholder } = props; return ( @@ -24,4 +24,4 @@ export const FastFormPassword: FastFormFieldComponent = React.memo((props) => { ); }); -FastFormPassword.displayName = 'FastFormPassword'; +MetaFormPassword.displayName = 'MetaFormPassword'; diff --git a/web/src/components/WebFastForm/types/Select.tsx b/packages/design/components/WebMetaForm/types/Select.tsx similarity index 76% rename from web/src/components/WebFastForm/types/Select.tsx rename to packages/design/components/WebMetaForm/types/Select.tsx index 36024707..b33dee2e 100644 --- a/web/src/components/WebFastForm/types/Select.tsx +++ b/packages/design/components/WebMetaForm/types/Select.tsx @@ -2,17 +2,17 @@ import React, { useEffect } from 'react'; import { Select, Form } from 'antd'; import _get from 'lodash/get'; import _isNil from 'lodash/isNil'; -import type { FastFormFieldComponent } from 'tailchat-shared'; +import type { MetaFormFieldComponent } from 'meta-form'; const Option = Select.Option; -interface FastFormSelectOptionsItem { +interface MetaFormSelectOptionsItem { label: string; value: string; } -export const FastFormSelect: FastFormFieldComponent<{ - options: FastFormSelectOptionsItem[]; +export const MetaFormSelect: MetaFormFieldComponent<{ + options: MetaFormSelectOptionsItem[]; }> = React.memo((props) => { const { name, label, value, onChange, options } = props; @@ -35,4 +35,4 @@ export const FastFormSelect: FastFormFieldComponent<{ ); }); -FastFormSelect.displayName = 'FastFormSelect'; +MetaFormSelect.displayName = 'MetaFormSelect'; diff --git a/web/src/components/WebFastForm/types/Text.tsx b/packages/design/components/WebMetaForm/types/Text.tsx similarity index 76% rename from web/src/components/WebFastForm/types/Text.tsx rename to packages/design/components/WebMetaForm/types/Text.tsx index 3994e3e2..e56e4b7b 100644 --- a/web/src/components/WebFastForm/types/Text.tsx +++ b/packages/design/components/WebMetaForm/types/Text.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { Input, Form } from 'antd'; -import type { FastFormFieldComponent } from 'tailchat-shared'; +import type { MetaFormFieldComponent } from 'meta-form'; import { getValidateStatus } from '../utils'; -export const FastFormText: FastFormFieldComponent = React.memo((props) => { +export const MetaFormText: MetaFormFieldComponent = React.memo((props) => { const { name, label, value, onChange, error, maxLength, placeholder } = props; return ( @@ -23,4 +23,4 @@ export const FastFormText: FastFormFieldComponent = React.memo((props) => { ); }); -FastFormText.displayName = 'FastFormText'; +MetaFormText.displayName = 'MetaFormText'; diff --git a/web/src/components/WebFastForm/types/TextArea.tsx b/packages/design/components/WebMetaForm/types/TextArea.tsx similarity index 75% rename from web/src/components/WebFastForm/types/TextArea.tsx rename to packages/design/components/WebMetaForm/types/TextArea.tsx index 28cc7174..e35eb1ff 100644 --- a/web/src/components/WebFastForm/types/TextArea.tsx +++ b/packages/design/components/WebMetaForm/types/TextArea.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { Input, Form } from 'antd'; -import type { FastFormFieldComponent } from 'tailchat-shared'; +import type { MetaFormFieldComponent } from 'meta-form'; import { getValidateStatus } from '../utils'; -export const FastFormTextArea: FastFormFieldComponent = React.memo((props) => { +export const MetaFormTextArea: MetaFormFieldComponent = React.memo((props) => { const { name, label, value, onChange, error, maxLength, placeholder } = props; return ( @@ -23,4 +23,4 @@ export const FastFormTextArea: FastFormFieldComponent = React.memo((props) => { ); }); -FastFormTextArea.displayName = 'FastFormTextArea'; +MetaFormTextArea.displayName = 'MetaFormTextArea'; diff --git a/web/src/components/WebFastForm/utils.ts b/packages/design/components/WebMetaForm/utils.ts similarity index 100% rename from web/src/components/WebFastForm/utils.ts rename to packages/design/components/WebMetaForm/utils.ts diff --git a/packages/design/components/index.ts b/packages/design/components/index.ts index de9d18f2..35487fd5 100644 --- a/packages/design/components/index.ts +++ b/packages/design/components/index.ts @@ -1,2 +1,10 @@ export { Icon } from './Icon'; export { Image } from './Image'; + +export { WebMetaForm } from './WebMetaForm'; +export { + createMetaFormSchema, + fieldSchema as metaFormFieldSchema, + useMetaFormContext, +} from 'meta-form'; +export type { MetaFormFieldMeta } from 'meta-form'; diff --git a/packages/design/package.json b/packages/design/package.json index 78d96d39..7386129e 100644 --- a/packages/design/package.json +++ b/packages/design/package.json @@ -21,6 +21,15 @@ "homepage": "https://github.com/msgbyte/tailchat#readme", "dependencies": { "@iconify/react": "^3.2.1", - "antd": "^4.19.5" + "antd": "^4.19.5", + "meta-form": "workspace:^1.0.0" + }, + "devDependencies": { + "react": "17.0.2", + "react-dom": "17.0.2" + }, + "peerDependencies": { + "react": "17.0.2", + "react-dom": "17.0.2" } } diff --git a/packages/meta-form/.gitignore b/packages/meta-form/.gitignore new file mode 100644 index 00000000..a65b4177 --- /dev/null +++ b/packages/meta-form/.gitignore @@ -0,0 +1 @@ +lib diff --git a/packages/meta-form/.npmrc b/packages/meta-form/.npmrc new file mode 100644 index 00000000..059ab334 --- /dev/null +++ b/packages/meta-form/.npmrc @@ -0,0 +1,2 @@ +# https://npmmirror.com/ +registry = https://registry.npmmirror.com diff --git a/packages/meta-form/README.md b/packages/meta-form/README.md new file mode 100644 index 00000000..77056639 --- /dev/null +++ b/packages/meta-form/README.md @@ -0,0 +1,8 @@ +基于Meta信息快速构建Form表单 + + +## Install + +```bash +npm install react meta-form +``` diff --git a/packages/meta-form/package.json b/packages/meta-form/package.json new file mode 100644 index 00000000..c393d5b8 --- /dev/null +++ b/packages/meta-form/package.json @@ -0,0 +1,39 @@ +{ + "name": "meta-form", + "version": "1.0.0", + "description": "基于Meta信息快速构建Form表单", + "main": "lib/index.js", + "scripts": { + "build": "tsc", + "prepare": "tsc", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "files": ["lib"], + "repository": { + "type": "git", + "url": "git+https://github.com/msgbyte/tailchat.git" + }, + "keywords": [ + "meta", + "form", + "react", + "formik" + ], + "author": "moonrailgun ", + "license": "MIT", + "bugs": { + "url": "https://github.com/msgbyte/tailchat/issues" + }, + "homepage": "https://github.com/msgbyte/tailchat#readme", + "devDependencies": { + "react": "17.0.2", + "typescript": "^4.5.2" + }, + "dependencies": { + "formik": "^2.2.9", + "yup": "^0.32.9" + }, + "peerDependencies": { + "react": "17.0.2" + } +} diff --git a/shared/components/FastForm/CustomField.tsx b/packages/meta-form/src/CustomField.tsx similarity index 51% rename from shared/components/FastForm/CustomField.tsx rename to packages/meta-form/src/CustomField.tsx index 45995cde..adc7ae97 100644 --- a/shared/components/FastForm/CustomField.tsx +++ b/packages/meta-form/src/CustomField.tsx @@ -1,8 +1,8 @@ import React from 'react'; -import type { FastFormFieldComponent, FastFormFieldProps } from './field'; +import type { MetaFormFieldComponent, MetaFormFieldProps } from './field'; -export const CustomField: FastFormFieldComponent<{ - render: (props: FastFormFieldProps) => React.ReactNode; +export const CustomField: MetaFormFieldComponent<{ + render: (props: MetaFormFieldProps) => React.ReactNode; }> = React.memo((props) => { const { render, ...others } = props; diff --git a/packages/meta-form/src/container.tsx b/packages/meta-form/src/container.tsx new file mode 100644 index 00000000..44e8ac9c --- /dev/null +++ b/packages/meta-form/src/container.tsx @@ -0,0 +1,29 @@ +import type { ComponentType } from 'react'; + +/** + * 容器配置 + */ +export interface MetaFormContainerProps { + loading: boolean; + submitLabel?: string; + + layout?: 'horizontal' | 'vertical'; + + /** + * 是否允许提交 + */ + canSubmit?: boolean; + handleSubmit: () => void; +} +export type MetaFormContainerComponent = + React.ComponentType; +let MetaFormContainer: MetaFormContainerComponent; +export function regFormContainer(component: MetaFormContainerComponent) { + MetaFormContainer = component; +} + +export function getFormContainer(): + | ComponentType + | undefined { + return MetaFormContainer; +} diff --git a/packages/meta-form/src/context.tsx b/packages/meta-form/src/context.tsx new file mode 100644 index 00000000..d75fd9d4 --- /dev/null +++ b/packages/meta-form/src/context.tsx @@ -0,0 +1,13 @@ +import React, { useContext } from 'react'; +import type { useFormik } from 'formik'; + +type MetaFormContextType = ReturnType; + +export const MetaFormContext = React.createContext( + null +); +MetaFormContext.displayName = 'MetaFormContext'; + +export function useMetaFormContext(): MetaFormContextType | null { + return useContext(MetaFormContext); +} diff --git a/shared/components/FastForm/field.tsx b/packages/meta-form/src/field.tsx similarity index 59% rename from shared/components/FastForm/field.tsx rename to packages/meta-form/src/field.tsx index ec569ec0..3b1a6f6f 100644 --- a/shared/components/FastForm/field.tsx +++ b/packages/meta-form/src/field.tsx @@ -3,14 +3,14 @@ import { CustomField } from './CustomField'; /** * 字段通用信息 */ -interface FastFormFieldCommon { +interface MetaFormFieldCommon { name: string; // 字段名 label?: string; // 字段标签 defaultValue?: any; // 默认值 [other: string]: any; // 其他字段 } -export interface FastFormFieldProps extends FastFormFieldCommon { +export interface MetaFormFieldProps extends MetaFormFieldCommon { value: any; error: string | undefined; onChange: (val: any) => void; // 修改数据的回调函数 @@ -19,15 +19,15 @@ export interface FastFormFieldProps extends FastFormFieldCommon { /** * 字段组件 */ -export type FastFormFieldComponent> = - React.ComponentType; +export type MetaFormFieldComponent> = + React.ComponentType; -const fieldMap = new Map(); +const fieldMap = new Map(); /** * 注册组件 */ -export function regField(type: string, component: FastFormFieldComponent) { +export function regField(type: string, component: MetaFormFieldComponent) { fieldMap.set(type, component); } @@ -36,14 +36,14 @@ export function regField(type: string, component: FastFormFieldComponent) { */ export function getField( type: string -): FastFormFieldComponent | undefined { +): MetaFormFieldComponent | undefined { return fieldMap.get(type); } /** * 字段配置 */ -export interface FastFormFieldMeta extends FastFormFieldCommon { +export interface MetaFormFieldMeta extends MetaFormFieldCommon { type: string; // 字段类型 } diff --git a/shared/components/FastForm/index.tsx b/packages/meta-form/src/index.tsx similarity index 77% rename from shared/components/FastForm/index.tsx rename to packages/meta-form/src/index.tsx index 2a273caa..2b1335f5 100644 --- a/shared/components/FastForm/index.tsx +++ b/packages/meta-form/src/index.tsx @@ -5,20 +5,20 @@ import _fromPairs from 'lodash/fromPairs'; import _isFunction from 'lodash/isFunction'; import _isEmpty from 'lodash/isEmpty'; import type { ObjectSchema } from 'yup'; -import { FastFormContext } from './context'; +import { MetaFormContext } from './context'; import { getField, regField } from './field'; import type { - FastFormFieldComponent, - FastFormFieldProps, - FastFormFieldMeta, + MetaFormFieldComponent, + MetaFormFieldProps, + MetaFormFieldMeta, } from './field'; import { getFormContainer } from './container'; /** * 表单配置 */ -export interface FastFormProps { - fields: FastFormFieldMeta[]; // 字段详情 +export interface MetaFormProps { + fields: MetaFormFieldMeta[]; // 字段详情 schema?: ObjectSchema; // yup schame object 用于表单校验 layout?: 'horizontal' | 'vertical'; // 布局方式(默认水平) submitLabel?: string; // 提交按钮的标签名 @@ -31,7 +31,7 @@ export interface FastFormProps { * 一个快速生成表单的组件 * 用于通过配置来生成表单,简化通用代码 */ -export const FastForm: React.FC = React.memo((props) => { +export const MetaForm: React.FC = React.memo((props) => { const initialValues = useMemo(() => { return { ..._fromPairs( @@ -65,10 +65,10 @@ export const FastForm: React.FC = React.memo((props) => { }); const { handleSubmit, setFieldValue, values, errors } = formik; - const FastFormContainer = getFormContainer(); + const MetaFormContainer = getFormContainer(); - if (_isNil(FastFormContainer)) { - console.warn('FastFormContainer 没有被注册'); + if (_isNil(MetaFormContainer)) { + console.warn('MetaFormContainer 没有被注册'); return null; } @@ -96,8 +96,8 @@ export const FastForm: React.FC = React.memo((props) => { }, [props.fields, values, errors, setFieldValue]); return ( - - + = React.memo((props) => { canSubmit={_isEmpty(errors)} > {fieldsRender} - - + + ); }); -FastForm.displayName = 'FastForm'; -FastForm.defaultProps = { +MetaForm.displayName = 'MetaForm'; +MetaForm.defaultProps = { submitLabel: '提交', }; export { CustomField } from './CustomField'; -export type { FastFormFieldComponent, FastFormFieldProps, FastFormFieldMeta }; +export type { MetaFormFieldComponent, MetaFormFieldProps, MetaFormFieldMeta }; export { regField }; export { regFormContainer } from './container'; -export type { FastFormContainerComponent } from './container'; +export type { MetaFormContainerComponent } from './container'; +export { createMetaFormSchema, fieldSchema } from './schema'; +export { useMetaFormContext } from './context'; diff --git a/shared/components/FastForm/schema.ts b/packages/meta-form/src/schema.ts similarity index 72% rename from shared/components/FastForm/schema.ts rename to packages/meta-form/src/schema.ts index 95edd8e9..9cd74dc2 100644 --- a/shared/components/FastForm/schema.ts +++ b/packages/meta-form/src/schema.ts @@ -3,11 +3,11 @@ import { string, object, ref } from 'yup'; import type { ObjectShape } from 'yup/lib/object'; /** - * 创建FastForm的Schema + * 创建MetaForm的Schema * * */ -export function createFastFormSchema(fieldMap: ObjectShape) { +export function createMetaFormSchema(fieldMap: ObjectShape) { return object().shape(fieldMap); } diff --git a/packages/meta-form/tsconfig.json b/packages/meta-form/tsconfig.json new file mode 100644 index 00000000..93ffce2c --- /dev/null +++ b/packages/meta-form/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "ES5", + "lib": ["DOM"], + "jsx": "react", + "outDir": "./lib", + "declaration": true, + "esModuleInterop": true, + "isolatedModules": true, + "module": "ESNext", + "moduleResolution": "node", + "strict": true, + "importsNotUsedAsValues": "error", + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0fb0a5e5..83d685cb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,9 +57,29 @@ importers: specifiers: '@iconify/react': ^3.2.1 antd: ^4.19.5 + meta-form: workspace:^1.0.0 + react: 17.0.2 + react-dom: 17.0.2 dependencies: '@iconify/react': 3.2.1 - antd: 4.19.5 + antd: 4.19.5_react-dom@17.0.2+react@17.0.2 + meta-form: link:../meta-form + devDependencies: + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 + + packages/meta-form: + specifiers: + formik: ^2.2.9 + react: 17.0.2 + typescript: ^4.5.2 + yup: ^0.32.9 + dependencies: + formik: 2.2.9_react@17.0.2 + yup: 0.32.11 + devDependencies: + react: 17.0.2 + typescript: 4.5.4 packages/plugin-declaration-generator: specifiers: @@ -112,20 +132,20 @@ importers: url-regex: ^5.0.0 yup: ^0.32.9 dependencies: - '@reduxjs/toolkit': 1.7.1_react-redux@7.2.6+react@17.0.2 + '@reduxjs/toolkit': 1.7.1_react-redux@7.2.6 axios: 0.21.4 crc: 3.8.0 dayjs: 1.10.7 events: 3.3.0 flatted: 3.2.4 - formik: 2.2.9_react@17.0.2 + formik: 2.2.9 i18next: 20.6.1 i18next-http-backend: 1.3.1 lodash: 4.17.21 - react-i18next: 11.15.1_i18next@20.6.1+react@17.0.2 + react-i18next: 11.15.1_i18next@20.6.1 react-native-storage: /@trpgengine/react-native-storage/1.0.1 - react-query: 3.34.6_react@17.0.2 - react-redux: 7.2.6_react@17.0.2 + react-query: 3.34.6 + react-redux: 7.2.6 regenerator-runtime: registry.nlark.com/regenerator-runtime/0.13.9 socket.io-client: 4.4.0 str2int: 1.1.0 @@ -398,20 +418,6 @@ packages: resolution: {integrity: sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==} dev: false - /@ant-design/icons/4.7.0: - resolution: {integrity: sha512-aoB4Z7JA431rt6d4u+8xcNPPCrdufSRMUOpxa1ab6mz1JCQZOEVolj2WVs/tDFmN62zzK30mNelEsprLYsSF3g==} - engines: {node: '>=8'} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@ant-design/colors': 6.0.0 - '@ant-design/icons-svg': 4.2.1 - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-util: 5.19.3 - dev: false - /@ant-design/icons/4.7.0_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-aoB4Z7JA431rt6d4u+8xcNPPCrdufSRMUOpxa1ab6mz1JCQZOEVolj2WVs/tDFmN62zzK30mNelEsprLYsSF3g==} engines: {node: '>=8'} @@ -428,7 +434,7 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /@ant-design/react-slick/0.28.4: + /@ant-design/react-slick/0.28.4_react@17.0.2: resolution: {integrity: sha512-j9eAHTn7GxbXUFNknJoHS2ceAsqrQi2j8XykjZE1IXCD8kJF+t28EvhBLniDpbOsBk/3kjalnhriTfZcjBHNqg==} peerDependencies: react: '>=16.9.0' @@ -437,6 +443,7 @@ packages: classnames: 2.3.1 json2mq: 0.2.0 lodash: 4.17.21 + react: 17.0.2 resize-observer-polyfill: 1.5.1 dev: false @@ -2175,7 +2182,7 @@ packages: resolution: {integrity: sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ==, registry: https://registry.npm.taobao.org/, tarball: '@popperjs/core/download/@popperjs/core-2.11.0.tgz'} dev: false - /@reduxjs/toolkit/1.7.1_react-redux@7.2.6+react@17.0.2: + /@reduxjs/toolkit/1.7.1_react-redux@7.2.6: resolution: {integrity: sha512-wXwXYjBVz/ItxB7SMzEAMmEE/FBiY1ze18N+VVVX7NtVbRUrdOGKhpQMHivIJfkbJvSdLUU923a/yAagJQzY0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@reduxjs/toolkit/download/@reduxjs/toolkit-1.7.1.tgz} peerDependencies: react: ^16.9.0 || ^17.0.0 || 18.0.0-beta @@ -2187,8 +2194,7 @@ packages: optional: true dependencies: immer: 9.0.7 - react: 17.0.2 - react-redux: 7.2.6_react@17.0.2 + react-redux: 7.2.6 redux: 4.1.2 redux-thunk: 2.4.1_redux@4.1.2 reselect: 4.1.5 @@ -2641,7 +2647,7 @@ packages: dev: true /@types/lodash/4.14.178: - resolution: {integrity: sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/lodash/download/@types/lodash-4.14.178.tgz} + resolution: {integrity: sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==} /@types/mdast/3.0.10: resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} @@ -3294,15 +3300,15 @@ packages: scroll-into-view-if-needed: 2.2.28 dev: false - /antd/4.19.5: + /antd/4.19.5_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-C4H/VJqlVO5iMvHZyiV27R8SbPs4jsOKCGPhDXIHUry/RnUCbMmVeQaPRfUIxSI1NbqDflsuQfevPtz1svyIlg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: '@ant-design/colors': 6.0.0 - '@ant-design/icons': 4.7.0 - '@ant-design/react-slick': 0.28.4 + '@ant-design/icons': 4.7.0_react-dom@17.0.2+react@17.0.2 + '@ant-design/react-slick': 0.28.4_react@17.0.2 '@babel/runtime': 7.16.5 '@ctrl/tinycolor': 3.4.0 classnames: 2.3.1 @@ -3310,38 +3316,40 @@ packages: lodash: 4.17.21 memoize-one: 6.0.0 moment: 2.29.1 - rc-cascader: 3.2.9 - rc-checkbox: 2.3.2 - rc-collapse: 3.1.2 - rc-dialog: 8.6.0 - rc-drawer: 4.4.3 - rc-dropdown: 3.3.3 - rc-field-form: 1.25.0 - rc-image: 5.2.5 - rc-input: 0.0.1-alpha.6 - rc-input-number: 7.3.4 - rc-mentions: 1.6.1 - rc-menu: 9.3.2 - rc-motion: 2.4.4 - rc-notification: 4.5.7 - rc-pagination: 3.1.14 - rc-picker: 2.6.5 - rc-progress: 3.2.2 - rc-rate: 2.9.1 - rc-resize-observer: 1.2.0 - rc-select: 14.0.6 - rc-slider: 10.0.0-alpha.6 - rc-steps: 4.1.4 - rc-switch: 3.2.2 - rc-table: 7.23.2 - rc-tabs: 11.10.5 - rc-textarea: 0.3.6 - rc-tooltip: 5.1.1 - rc-tree: 5.4.4 - rc-tree-select: 5.1.5 - rc-trigger: 5.2.10 - rc-upload: 4.3.3 - rc-util: 5.19.3 + rc-cascader: 3.2.9_react-dom@17.0.2+react@17.0.2 + rc-checkbox: 2.3.2_react-dom@17.0.2+react@17.0.2 + rc-collapse: 3.1.2_react-dom@17.0.2+react@17.0.2 + rc-dialog: 8.6.0_react-dom@17.0.2+react@17.0.2 + rc-drawer: 4.4.3_react-dom@17.0.2+react@17.0.2 + rc-dropdown: 3.3.3_react-dom@17.0.2+react@17.0.2 + rc-field-form: 1.25.0_react-dom@17.0.2+react@17.0.2 + rc-image: 5.2.5_react-dom@17.0.2+react@17.0.2 + rc-input: 0.0.1-alpha.6_react-dom@17.0.2+react@17.0.2 + rc-input-number: 7.3.4_react-dom@17.0.2+react@17.0.2 + rc-mentions: 1.6.1_react-dom@17.0.2+react@17.0.2 + rc-menu: 9.3.2_react-dom@17.0.2+react@17.0.2 + rc-motion: 2.4.4_react-dom@17.0.2+react@17.0.2 + rc-notification: 4.5.7_react-dom@17.0.2+react@17.0.2 + rc-pagination: 3.1.14_react-dom@17.0.2+react@17.0.2 + rc-picker: 2.6.5_react-dom@17.0.2+react@17.0.2 + rc-progress: 3.2.2_react-dom@17.0.2+react@17.0.2 + rc-rate: 2.9.1_react-dom@17.0.2+react@17.0.2 + rc-resize-observer: 1.2.0_react-dom@17.0.2+react@17.0.2 + rc-select: 14.0.6_react-dom@17.0.2+react@17.0.2 + rc-slider: 10.0.0-alpha.6_react-dom@17.0.2+react@17.0.2 + rc-steps: 4.1.4_react-dom@17.0.2+react@17.0.2 + rc-switch: 3.2.2_react-dom@17.0.2+react@17.0.2 + rc-table: 7.23.2_react-dom@17.0.2+react@17.0.2 + rc-tabs: 11.10.5_react-dom@17.0.2+react@17.0.2 + rc-textarea: 0.3.6_react-dom@17.0.2+react@17.0.2 + rc-tooltip: 5.1.1_react-dom@17.0.2+react@17.0.2 + rc-tree: 5.4.4_react-dom@17.0.2+react@17.0.2 + rc-tree-select: 5.1.5_react-dom@17.0.2+react@17.0.2 + rc-trigger: 5.2.10_react-dom@17.0.2+react@17.0.2 + rc-upload: 4.3.3_react-dom@17.0.2+react@17.0.2 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 scroll-into-view-if-needed: 2.2.28 dev: false @@ -4262,6 +4270,11 @@ packages: resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==} engines: {node: '>=0.10'} + /deepmerge/2.2.1: + resolution: {integrity: sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==} + engines: {node: '>=0.10.0'} + dev: false + /deepmerge/4.2.2: resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} engines: {node: '>=0.10.0'} @@ -4939,19 +4952,33 @@ packages: debug: optional: true + /formik/2.2.9: + resolution: {integrity: sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==} + peerDependencies: + react: '>=16.8.0' + dependencies: + deepmerge: 2.2.1 + hoist-non-react-statics: 3.3.2 + lodash: 4.17.21 + lodash-es: 4.17.21 + react-fast-compare: 2.0.4 + tiny-warning: 1.0.3 + tslib: 1.14.1 + dev: false + /formik/2.2.9_react@17.0.2: - resolution: {integrity: sha1-hZS6nF4uXPH0LFcEEo4Rn8RiMtA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/formik/download/formik-2.2.9.tgz} + resolution: {integrity: sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==} peerDependencies: react: '>=16.8.0' dependencies: - deepmerge: registry.nlark.com/deepmerge/2.2.1 - hoist-non-react-statics: registry.nlark.com/hoist-non-react-statics/3.3.2 + deepmerge: 2.2.1 + hoist-non-react-statics: 3.3.2 lodash: 4.17.21 - lodash-es: registry.nlark.com/lodash-es/4.17.21 + lodash-es: 4.17.21 react: 17.0.2 react-fast-compare: 2.0.4 - tiny-warning: registry.nlark.com/tiny-warning/1.0.3 - tslib: registry.nlark.com/tslib/1.14.1 + tiny-warning: 1.0.3 + tslib: 1.14.1 dev: false /fraction.js/4.1.2: @@ -5149,6 +5176,12 @@ packages: value-equal: registry.nlark.com/value-equal/1.0.1 dev: false + /hoist-non-react-statics/3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + dev: false + /hosted-git-info/2.8.9: resolution: {integrity: sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.9.tgz} dev: true @@ -6361,6 +6394,10 @@ packages: p-locate: 4.1.0 dev: true + /lodash-es/4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false + /lodash.debounce/4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} dev: true @@ -6374,7 +6411,7 @@ packages: dev: false /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz} + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} /log-symbols/4.1.0: resolution: {integrity: sha1-P727lbRoOsn8eFER55LlWNSr1QM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/log-symbols/download/log-symbols-4.1.0.tgz} @@ -6673,7 +6710,7 @@ packages: dev: false /nanoclone/0.2.1: - resolution: {integrity: sha1-3UCQ+PGhENJrsyxJ7S9bkjUgntQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/nanoclone/download/nanoclone-0.2.1.tgz} + resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==} dev: false /nanoid/3.1.30: @@ -7235,7 +7272,7 @@ packages: react-is: 16.13.1 /property-expr/2.0.4: - resolution: {integrity: sha1-N7klR45YllAxu2EuxbMmD4JB6RA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/property-expr/download/property-expr-2.0.4.tgz} + resolution: {integrity: sha512-sFPkHQjVKheDNnPvotjQmm3KD3uk1fWKUN7CrpdbwmUx3CrG3QiM8QpTSimvig5vTXmTvjz7+TDvXOI9+4rkcg==} dev: false /property-information/5.6.0: @@ -7323,20 +7360,6 @@ packages: unpipe: registry.nlark.com/unpipe/1.0.0 dev: true - /rc-align/4.0.11: - resolution: {integrity: sha512-n9mQfIYQbbNTbefyQnRHZPWuTEwG1rY4a9yKlIWHSTbgwI+XUMGRYd0uJ5pE2UbrNX0WvnMBA1zJ3Lrecpra/A==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - dom-align: 1.12.2 - lodash: 4.17.21 - rc-util: 5.19.3 - resize-observer-polyfill: 1.5.1 - dev: false - /rc-align/4.0.11_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-n9mQfIYQbbNTbefyQnRHZPWuTEwG1rY4a9yKlIWHSTbgwI+XUMGRYd0uJ5pE2UbrNX0WvnMBA1zJ3Lrecpra/A==} peerDependencies: @@ -7369,7 +7392,7 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-cascader/3.2.9: + /rc-cascader/3.2.9_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-Mvkegzf506PD7qc38kg2tGllIBXs5dio3DPg+NER7SiOfCXBCATWYEs0CbUp8JDQgYHoHF0vPvFMYtxFTJuWaw==} peerDependencies: react: '>=16.9.0' @@ -7378,12 +7401,14 @@ packages: '@babel/runtime': 7.16.5 array-tree-filter: 2.1.0 classnames: 2.3.1 - rc-select: 14.0.6 - rc-tree: 5.4.4 - rc-util: 5.19.3 + rc-select: 14.0.6_react-dom@17.0.2+react@17.0.2 + rc-tree: 5.4.4_react-dom@17.0.2+react@17.0.2 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false - /rc-checkbox/2.3.2: + /rc-checkbox/2.3.2_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-afVi1FYiGv1U0JlpNH/UaEXdh6WUJjcWokj/nUN2TgG80bfG+MDdbfHKlLcNNba94mbjy2/SXJ1HDgrOkXGAjg==} peerDependencies: react: '>=16.9.0' @@ -7391,9 +7416,11 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false - /rc-collapse/3.1.2: + /rc-collapse/3.1.2_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-HujcKq7mghk/gVKeI6EjzTbb8e19XUZpakrYazu1MblEZ3Hu3WBMSN4A3QmvbF6n1g7x6lUlZvsHZ5shABWYOQ==} peerDependencies: react: '>=16.9.0' @@ -7401,12 +7428,14 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 - rc-motion: 2.4.4 - rc-util: 5.19.3 + rc-motion: 2.4.4_react-dom@17.0.2+react@17.0.2 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 shallowequal: 1.1.0 dev: false - /rc-dialog/8.6.0: + /rc-dialog/8.6.0_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-GSbkfqjqxpZC5/zc+8H332+q5l/DKUhpQr0vdX2uDsxo5K0PhvaMEVjyoJUTkZ3+JstEADQji1PVLVb/2bJeOQ==} peerDependencies: react: '>=16.9.0' @@ -7414,19 +7443,10 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 - rc-motion: 2.4.4 - rc-util: 5.19.3 - dev: false - - /rc-drawer/4.4.3: - resolution: {integrity: sha512-FYztwRs3uXnFOIf1hLvFxIQP9MiZJA+0w+Os8dfDh/90X7z/HqP/Yg+noLCIeHEbKln1Tqelv8ymCAN24zPcfQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-util: 5.19.3 + rc-motion: 2.4.4_react-dom@17.0.2+react@17.0.2 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false /rc-drawer/4.4.3_react-dom@17.0.2+react@17.0.2: @@ -7442,18 +7462,6 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-dropdown/3.3.3: - resolution: {integrity: sha512-UNe68VpvtrpU0CS4jh5hD4iGqzi4Pdp7uOya6+H3QIEZxe7K+Xs11BNjZm6W4MaL0jTmzUj+bxvnq5bP3rRoVQ==} - peerDependencies: - react: '>=16.11.0' - react-dom: '>=16.11.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-trigger: 5.2.10 - rc-util: 5.19.3 - dev: false - /rc-dropdown/3.3.3_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-UNe68VpvtrpU0CS4jh5hD4iGqzi4Pdp7uOya6+H3QIEZxe7K+Xs11BNjZm6W4MaL0jTmzUj+bxvnq5bP3rRoVQ==} peerDependencies: @@ -7482,7 +7490,7 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-field-form/1.25.0: + /rc-field-form/1.25.0_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-mOl0YTgIw7d9EyNySgqw6HlchOt5AGliIRWEIaTt8kP+LHjXBYqOQ+tzVUH2ALren6G568UJicQ2SeMFpfCWHQ==} engines: {node: '>=8.x'} peerDependencies: @@ -7491,10 +7499,12 @@ packages: dependencies: '@babel/runtime': 7.16.5 async-validator: 4.0.7 - rc-util: 5.19.3 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false - /rc-image/5.2.5: + /rc-image/5.2.5_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-qUfZjYIODxO0c8a8P5GeuclYXZjzW4hV/5hyo27XqSFo1DmTCs2HkVeQObkcIk5kNsJtgsj1KoPThVsSc/PXOw==} peerDependencies: react: '>=16.9.0' @@ -7502,19 +7512,10 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 - rc-dialog: 8.6.0 - rc-util: 5.19.3 - dev: false - - /rc-input-number/7.3.4: - resolution: {integrity: sha512-W9uqSzuvJUnz8H8vsVY4kx+yK51SsAxNTwr8SNH4G3XqQNocLVmKIibKFRjocnYX1RDHMND9FFbgj2h7E7nvGA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-util: 5.19.3 + rc-dialog: 8.6.0_react-dom@17.0.2+react@17.0.2 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false /rc-input-number/7.3.4_react-dom@17.0.2+react@17.0.2: @@ -7530,7 +7531,7 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-input/0.0.1-alpha.6: + /rc-input/0.0.1-alpha.6_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-kgpmbxa9vp6kPLW7IP5/Lf6wuaMq+pUq+dPz98vIM58h4wkEKgBQlkMIg9OCEVQIiR8rEPEoe4dO2fc9R0aypQ==} peerDependencies: react: '>=16.0.0' @@ -7538,10 +7539,12 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 - rc-util: 5.19.3 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false - /rc-mentions/1.6.1: + /rc-mentions/1.6.1_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-LDzGI8jJVGnkhpTZxZuYBhMz3avcZZqPGejikchh97xPni/g4ht714Flh7DVvuzHQ+BoKHhIjobHnw1rcP8erg==} peerDependencies: react: '>=16.9.0' @@ -7549,10 +7552,12 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 - rc-menu: 9.3.2 - rc-textarea: 0.3.6 - rc-trigger: 5.2.10 - rc-util: 5.19.3 + rc-menu: 9.3.2_react-dom@17.0.2+react@17.0.2 + rc-textarea: 0.3.6_react-dom@17.0.2+react@17.0.2 + rc-trigger: 5.2.10_react-dom@17.0.2+react@17.0.2 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false /rc-menu/9.1.1_react-dom@17.0.2+react@17.0.2: @@ -7572,21 +7577,6 @@ packages: shallowequal: registry.nlark.com/shallowequal/1.1.0 dev: false - /rc-menu/9.3.2: - resolution: {integrity: sha512-h3m45oY1INZyqphGELkdT0uiPnFzxkML8m0VMhJnk2fowtqfiT7F5tJLT3znEVaPIY80vMy1bClCkgq8U91CzQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-motion: 2.4.4 - rc-overflow: 1.2.2 - rc-trigger: 5.2.10 - rc-util: 5.19.3 - shallowequal: 1.1.0 - dev: false - /rc-menu/9.3.2_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-h3m45oY1INZyqphGELkdT0uiPnFzxkML8m0VMhJnk2fowtqfiT7F5tJLT3znEVaPIY80vMy1bClCkgq8U91CzQ==} peerDependencies: @@ -7604,17 +7594,6 @@ packages: shallowequal: 1.1.0 dev: false - /rc-motion/2.4.4: - resolution: {integrity: sha512-ms7n1+/TZQBS0Ydd2Q5P4+wJTSOrhIrwNxLXCZpR7Fa3/oac7Yi803HDALc2hLAKaCTQtw9LmQeB58zcwOsqlQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-util: 5.19.3 - dev: false - /rc-motion/2.4.4_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-ms7n1+/TZQBS0Ydd2Q5P4+wJTSOrhIrwNxLXCZpR7Fa3/oac7Yi803HDALc2hLAKaCTQtw9LmQeB58zcwOsqlQ==} peerDependencies: @@ -7628,7 +7607,7 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-notification/4.5.7: + /rc-notification/4.5.7_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-zhTGUjBIItbx96SiRu3KVURcLOydLUHZCPpYEn1zvh+re//Tnq/wSxN4FKgp38n4HOgHSVxcLEeSxBMTeBBDdw==} engines: {node: '>=8.x'} peerDependencies: @@ -7637,20 +7616,10 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 - rc-motion: 2.4.4 - rc-util: 5.19.3 - dev: false - - /rc-overflow/1.2.2: - resolution: {integrity: sha512-X5kj9LDU1ue5wHkqvCprJWLKC+ZLs3p4He/oxjZ1Q4NKaqKBaYf5OdSzRSgh3WH8kSdrfU8LjvlbWnHgJOEkNQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-resize-observer: 1.2.0 - rc-util: 5.19.3 + rc-motion: 2.4.4_react-dom@17.0.2+react@17.0.2 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false /rc-overflow/1.2.2_react-dom@17.0.2+react@17.0.2: @@ -7667,16 +7636,6 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-pagination/3.1.14: - resolution: {integrity: sha512-tcugvxrtPiVU00Uh0IwC8NIUlxa4KtA9pXcaMNJdSHeO2uQqVkHEwllsULTAWRF3zRV2ozo2weP/DRKIUrX+Zg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - dev: false - /rc-pagination/3.1.14_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-tcugvxrtPiVU00Uh0IwC8NIUlxa4KtA9pXcaMNJdSHeO2uQqVkHEwllsULTAWRF3zRV2ozo2weP/DRKIUrX+Zg==} peerDependencies: @@ -7708,7 +7667,7 @@ packages: shallowequal: registry.nlark.com/shallowequal/1.1.0 dev: false - /rc-picker/2.6.5: + /rc-picker/2.6.5_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-4pcg0PgEz4YXBfdwMuHIKaRWaADm3k3g0NtoPIgeGM+VVeOBdUowTx0YSXnT8mQEXcE9lWXX+ZX3biAzQwDM1w==} engines: {node: '>=8.x'} peerDependencies: @@ -7720,22 +7679,13 @@ packages: date-fns: 2.27.0 dayjs: 1.10.7 moment: 2.29.1 - rc-trigger: 5.2.10 - rc-util: 5.19.3 + rc-trigger: 5.2.10_react-dom@17.0.2+react@17.0.2 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 shallowequal: 1.1.0 dev: false - /rc-progress/3.2.2: - resolution: {integrity: sha512-hvYqiFxFQeDGzY8AuARqp4vEGSD54W0KMg8cCcLFyT2tRJnxQyND/9vyUzVMYuaHexou06QsvLoqyBc3BPDVbg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-util: 5.19.3 - dev: false - /rc-progress/3.2.2_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-hvYqiFxFQeDGzY8AuARqp4vEGSD54W0KMg8cCcLFyT2tRJnxQyND/9vyUzVMYuaHexou06QsvLoqyBc3BPDVbg==} peerDependencies: @@ -7749,7 +7699,7 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-rate/2.9.1: + /rc-rate/2.9.1_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-MmIU7FT8W4LYRRHJD1sgG366qKtSaKb67D0/vVvJYR0lrCuRrCiVQ5qhfT5ghVO4wuVIORGpZs7ZKaYu+KMUzA==} engines: {node: '>=8.x'} peerDependencies: @@ -7758,7 +7708,9 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 - rc-util: 5.19.3 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false /rc-resize-observer/1.1.2_react-dom@17.0.2+react@17.0.2: @@ -7775,18 +7727,6 @@ packages: resize-observer-polyfill: registry.nlark.com/resize-observer-polyfill/1.5.1 dev: false - /rc-resize-observer/1.2.0: - resolution: {integrity: sha512-6W+UzT3PyDM0wVCEHfoW3qTHPTvbdSgiA43buiy8PzmeMnfgnDeb9NjdimMXMl3/TcrvvWl5RRVdp+NqcR47pQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-util: 5.19.3 - resize-observer-polyfill: 1.5.1 - dev: false - /rc-resize-observer/1.2.0_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-6W+UzT3PyDM0wVCEHfoW3qTHPTvbdSgiA43buiy8PzmeMnfgnDeb9NjdimMXMl3/TcrvvWl5RRVdp+NqcR47pQ==} peerDependencies: @@ -7819,7 +7759,7 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-select/14.0.6: + /rc-select/14.0.6_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-HMb2BwfTvBxMmIWTR/afP4bcRJLbVKFSBW/VFfL5Z+kdV2XlrYdlliK2uHY7pRRvW16PPGwmOwGfV+eoulPINw==} engines: {node: '>=8.x'} peerDependencies: @@ -7828,14 +7768,16 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 - rc-motion: 2.4.4 - rc-overflow: 1.2.2 - rc-trigger: 5.2.10 - rc-util: 5.19.3 - rc-virtual-list: 3.4.2 + rc-motion: 2.4.4_react-dom@17.0.2+react@17.0.2 + rc-overflow: 1.2.2_react-dom@17.0.2+react@17.0.2 + rc-trigger: 5.2.10_react-dom@17.0.2+react@17.0.2 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + rc-virtual-list: 3.4.2_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false - /rc-slider/10.0.0-alpha.6: + /rc-slider/10.0.0-alpha.6_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-4tMChJ3lzX0qlttcXqJ2xecQ+CmZYPXJGDOvPnIS5YWsiSl452vt377/l8A1ZnwjwKAAy2V6nrOXNdqPP2Tq7w==} engines: {node: '>=8.x'} peerDependencies: @@ -7844,8 +7786,10 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 - rc-tooltip: 5.1.1 - rc-util: 5.19.3 + rc-tooltip: 5.1.1_react-dom@17.0.2+react@17.0.2 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 shallowequal: 1.1.0 dev: false @@ -7865,18 +7809,6 @@ packages: shallowequal: registry.nlark.com/shallowequal/1.1.0 dev: false - /rc-steps/4.1.4: - resolution: {integrity: sha512-qoCqKZWSpkh/b03ASGx1WhpKnuZcRWmvuW+ZUu4mvMdfvFzVxblTwUM+9aBd0mlEUFmt6GW8FXhMpHkK3Uzp3w==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-util: 5.19.3 - dev: false - /rc-steps/4.1.4_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-qoCqKZWSpkh/b03ASGx1WhpKnuZcRWmvuW+ZUu4mvMdfvFzVxblTwUM+9aBd0mlEUFmt6GW8FXhMpHkK3Uzp3w==} engines: {node: '>=8.x'} @@ -7891,7 +7823,7 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-switch/3.2.2: + /rc-switch/3.2.2_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-+gUJClsZZzvAHGy1vZfnwySxj+MjLlGRyXKXScrtCTcmiYNPzxDFOxdQ/3pK1Kt/0POvwJ/6ALOR8gwdXGhs+A==} peerDependencies: react: '>=16.9.0' @@ -7899,7 +7831,9 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 - rc-util: 5.19.3 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false /rc-table/7.21.0_react-dom@17.0.2+react@17.0.2: @@ -7918,7 +7852,7 @@ packages: shallowequal: registry.nlark.com/shallowequal/1.1.0 dev: false - /rc-table/7.23.2: + /rc-table/7.23.2_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-opc2IBJOetsPSdNI+u1Lh9yY4Ks+EMgo1oJzZN+yIV4fRcgP81tHtxdPOVvXPFI4rUMO8CKnmHbGPU7jxMRAeg==} engines: {node: '>=8.x'} peerDependencies: @@ -7927,26 +7861,13 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 - rc-resize-observer: 1.2.0 - rc-util: 5.19.3 + rc-resize-observer: 1.2.0_react-dom@17.0.2+react@17.0.2 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 shallowequal: 1.1.0 dev: false - /rc-tabs/11.10.5: - resolution: {integrity: sha512-DDuUdV6b9zGRYLtjI5hyejWLKoz1QiLWNgMeBzc3aMeQylZFhTYnFGdDc6HRqj5IYearNTsFPVSA+6VIT8g5cg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-dropdown: 3.3.3 - rc-menu: 9.3.2 - rc-resize-observer: 1.2.0 - rc-util: 5.19.3 - dev: false - /rc-tabs/11.10.5_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-DDuUdV6b9zGRYLtjI5hyejWLKoz1QiLWNgMeBzc3aMeQylZFhTYnFGdDc6HRqj5IYearNTsFPVSA+6VIT8g5cg==} engines: {node: '>=8.x'} @@ -7964,18 +7885,6 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-textarea/0.3.6: - resolution: {integrity: sha512-6esiDE4AG3lqnmCdgAp/nutrZAqZEfRT3K749H8vMzNtxy9JScuMJ9MMtWN2DDQh+LCDvX4dgflaRjDCqtDHWw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-resize-observer: 1.2.0 - rc-util: 5.19.3 - dev: false - /rc-textarea/0.3.6_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-6esiDE4AG3lqnmCdgAp/nutrZAqZEfRT3K749H8vMzNtxy9JScuMJ9MMtWN2DDQh+LCDvX4dgflaRjDCqtDHWw==} peerDependencies: @@ -7990,14 +7899,16 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-tooltip/5.1.1: + /rc-tooltip/5.1.1_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-alt8eGMJulio6+4/uDm7nvV+rJq9bsfxFDCI0ljPdbuoygUscbsMYb6EQgwib/uqsXQUvzk+S7A59uYHmEgmDA==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.16.5 - rc-trigger: 5.2.10 + rc-trigger: 5.2.10_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false /rc-tree-select/5.0.0-alpha.3_react-dom@17.0.2+react@17.0.2: @@ -8015,7 +7926,7 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-tree-select/5.1.5: + /rc-tree-select/5.1.5_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-OXAwCFO0pQmb48NcjUJtiX6rp4FroCXMfzqPmuVVoBGBV/uwO1TPyb+uBZ2/972zkCA8u4je5M5Qx51sL8y7jg==} peerDependencies: react: '*' @@ -8023,9 +7934,11 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 - rc-select: 14.0.6 - rc-tree: 5.4.4 - rc-util: 5.19.3 + rc-select: 14.0.6_react-dom@17.0.2+react@17.0.2 + rc-tree: 5.4.4_react-dom@17.0.2+react@17.0.2 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false /rc-tree/5.3.6_react-dom@17.0.2+react@17.0.2: @@ -8044,7 +7957,7 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-tree/5.4.4: + /rc-tree/5.4.4_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-2qoObRgp31DBXmVzMJmo4qmwP20XEa4hR3imWQtRPcgN3pmljW3WKFmZRrYdOFHz7CyTnRsFZR065bBkIoUpiA==} engines: {node: '>=10.x'} peerDependencies: @@ -8053,23 +7966,11 @@ packages: dependencies: '@babel/runtime': 7.16.5 classnames: 2.3.1 - rc-motion: 2.4.4 - rc-util: 5.19.3 - rc-virtual-list: 3.4.2 - dev: false - - /rc-trigger/5.2.10: - resolution: {integrity: sha512-FkUf4H9BOFDaIwu42fvRycXMAvkttph9AlbCZXssZDVzz2L+QZ0ERvfB/4nX3ZFPh1Zd+uVGr1DEDeXxq4J1TA==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-align: 4.0.11 - rc-motion: 2.4.4 - rc-util: 5.19.3 + rc-motion: 2.4.4_react-dom@17.0.2+react@17.0.2 + rc-util: 5.19.3_react-dom@17.0.2+react@17.0.2 + rc-virtual-list: 3.4.2_react-dom@17.0.2+react@17.0.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 dev: false /rc-trigger/5.2.10_react-dom@17.0.2+react@17.0.2: @@ -8088,17 +7989,6 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /rc-upload/4.3.3: - resolution: {integrity: sha512-YoJ0phCRenMj1nzwalXzciKZ9/FAaCrFu84dS5pphwucTC8GUWClcDID/WWNGsLFcM97NqIboDqrV82rVRhW/w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - classnames: 2.3.1 - rc-util: 5.19.3 - dev: false - /rc-upload/4.3.3_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-YoJ0phCRenMj1nzwalXzciKZ9/FAaCrFu84dS5pphwucTC8GUWClcDID/WWNGsLFcM97NqIboDqrV82rVRhW/w==} peerDependencies: @@ -8125,17 +8015,6 @@ packages: shallowequal: registry.nlark.com/shallowequal/1.1.0 dev: false - /rc-util/5.19.3: - resolution: {integrity: sha512-S28epi9E2s7Nir05q8Ffl3hzDLwkavTGi0PGH1cTqCmkpG1AeBEuZgQDpksYeU6IgHcds5hWIPE5PUcdFiZl8w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.16.5 - react-is: 16.13.1 - shallowequal: 1.1.0 - dev: false - /rc-util/5.19.3_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-S28epi9E2s7Nir05q8Ffl3hzDLwkavTGi0PGH1cTqCmkpG1AeBEuZgQDpksYeU6IgHcds5hWIPE5PUcdFiZl8w==} peerDependencies: @@ -8149,18 +8028,6 @@ packages: shallowequal: 1.1.0 dev: false - /rc-virtual-list/3.4.2: - resolution: {integrity: sha512-OyVrrPvvFcHvV0ssz5EDZ+7Rf5qLat/+mmujjchNw5FfbJWNDwkpQ99EcVE6+FtNRmX9wFa1LGNpZLUTvp/4GQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - classnames: 2.3.1 - rc-resize-observer: 1.2.0 - rc-util: 5.19.3 - dev: false - /rc-virtual-list/3.4.2_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-OyVrrPvvFcHvV0ssz5EDZ+7Rf5qLat/+mmujjchNw5FfbJWNDwkpQ99EcVE6+FtNRmX9wFa1LGNpZLUTvp/4GQ==} engines: {node: '>=8.x'} @@ -8188,15 +8055,14 @@ packages: dev: false /react-dom/17.0.2_react@17.0.2: - resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/react-dom/download/react-dom-17.0.2.tgz} + resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} peerDependencies: react: 17.0.2 dependencies: - loose-envify: registry.nlark.com/loose-envify/1.4.0 - object-assign: registry.nlark.com/object-assign/4.1.1 + loose-envify: 1.4.0 + object-assign: 4.1.1 react: 17.0.2 scheduler: 0.20.2 - dev: false /react-easy-crop/3.5.3_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha1-dIG25ISotqwwg3PwsXOq1PHRAjk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/react-easy-crop/download/react-easy-crop-3.5.3.tgz} @@ -8221,7 +8087,7 @@ packages: dev: true /react-fast-compare/2.0.4: - resolution: {integrity: sha1-6EtNRVsP7BE+BALDKTUnFRlvgfk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/react-fast-compare/download/react-fast-compare-2.0.4.tgz} + resolution: {integrity: sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==} dev: false /react-fast-compare/3.2.0: @@ -8250,7 +8116,7 @@ packages: react: 17.0.2 dev: false - /react-i18next/11.15.1_i18next@20.6.1+react@17.0.2: + /react-i18next/11.15.1_i18next@20.6.1: resolution: {integrity: sha512-lnje1uKu5XeM5MLvfbt1oygF+nEIZnpOM4Iu8bkx5ECD4XRYgi3SJDmolrp0EDxDHeK2GgFb+vEEK0hsZ9sjeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/react-i18next/download/react-i18next-11.15.1.tgz} peerDependencies: i18next: '>= 19.0.0' @@ -8260,7 +8126,6 @@ packages: html-escaper: registry.nlark.com/html-escaper/2.0.2 html-parse-stringify: 3.0.1 i18next: 20.6.1 - react: 17.0.2 dev: false /react-is/16.13.1: @@ -8311,7 +8176,7 @@ packages: resolution: {integrity: sha1-IVa6nYX6R0H68ZGLOO/B6uPGoTY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/react-property/download/react-property-2.0.0.tgz} dev: false - /react-query/3.34.6_react@17.0.2: + /react-query/3.34.6: resolution: {integrity: sha512-2UKldH8T2PjmLxaOzANok7yITQn9FF1pBbrZFF1hvukBjYefHtCjUur+GOVAWMhrsskcCoKRviei4hcpvj9wLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/react-query/download/react-query-3.34.6.tgz} peerDependencies: react: ^16.8.0 || ^17.0.0 @@ -8326,10 +8191,9 @@ packages: '@babel/runtime': 7.16.5 broadcast-channel: 3.7.0 match-sorter: 6.3.1 - react: 17.0.2 dev: false - /react-redux/7.2.6_react@17.0.2: + /react-redux/7.2.6: resolution: {integrity: sha1-SWM6JP5VK1+cr1j+uKE4k23f6ao=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/react-redux/download/react-redux-7.2.6.tgz} peerDependencies: react: ^16.8.3 || ^17 @@ -8346,7 +8210,6 @@ packages: hoist-non-react-statics: registry.nlark.com/hoist-non-react-statics/3.3.2 loose-envify: registry.nlark.com/loose-envify/1.4.0 prop-types: 15.8.0 - react: 17.0.2 react-is: 17.0.2 dev: false @@ -8433,12 +8296,11 @@ packages: dev: false /react/17.0.2: - resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/react/download/react-17.0.2.tgz} + resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} engines: {node: '>=0.10.0'} dependencies: - loose-envify: registry.nlark.com/loose-envify/1.4.0 - object-assign: registry.nlark.com/object-assign/4.1.1 - dev: false + loose-envify: 1.4.0 + object-assign: 4.1.1 /read-pkg-up/7.0.1: resolution: {integrity: sha1-86YTV1hFlzOuK5VjgFbhhU5+9Qc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-7.0.1.tgz} @@ -8743,11 +8605,10 @@ packages: dev: true /scheduler/0.20.2: - resolution: {integrity: sha1-S67jlDbjSqk7SHS93L8P6Li1DpE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/scheduler/download/scheduler-0.20.2.tgz} + resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 - dev: false /schema-utils/3.1.1: resolution: {integrity: sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.1.1.tgz} @@ -9314,6 +9175,10 @@ packages: /tiny-invariant/1.2.0: resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==} + /tiny-warning/1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + dev: false + /tlds/1.227.0: resolution: {integrity: sha512-H6KXre7PSkfZyPiGzHvdG/p42LCfPmmyH3MhmZnULiVGEGXKBe8vzyLrw6q0UAtXOL0eNScA9vC4DcfhrcaPlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/tlds/download/tlds-1.227.0.tgz} hasBin: true @@ -9354,6 +9219,10 @@ packages: engines: {node: '>=0.6'} dev: true + /toposort/2.0.2: + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + dev: false + /tr46/1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} dependencies: @@ -9482,6 +9351,10 @@ packages: strip-bom: registry.nlark.com/strip-bom/3.0.0 dev: true + /tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false + /tslib/2.3.1: resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/tslib/download/tslib-2.3.1.tgz} @@ -10215,16 +10088,16 @@ packages: dev: false /yup/0.32.11: - resolution: {integrity: sha1-1n+4Pu+kaYYHmC5j98pMXtPPGMU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/yup/download/yup-0.32.11.tgz} + resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==} engines: {node: '>=10'} dependencies: '@babel/runtime': 7.16.5 '@types/lodash': 4.14.178 lodash: 4.17.21 - lodash-es: registry.nlark.com/lodash-es/4.17.21 + lodash-es: 4.17.21 nanoclone: 0.2.1 property-expr: 2.0.4 - toposort: registry.nlark.com/toposort/2.0.2 + toposort: 2.0.2 dev: false registry.nlark.com/@ant-design/colors/6.0.0: @@ -11226,13 +11099,6 @@ packages: version: 0.1.4 dev: true - registry.nlark.com/deepmerge/2.2.1: - resolution: {integrity: sha1-XT/yKgHAD2RUBaL7wX0HeKGAEXA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/deepmerge/download/deepmerge-2.2.1.tgz} - name: deepmerge - version: 2.2.1 - engines: {node: '>=0.10.0'} - dev: false - registry.nlark.com/deepmerge/4.2.2: resolution: {integrity: sha1-RNLqNnm49NT/ujPwPYZfwee/SVU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/deepmerge/download/deepmerge-4.2.2.tgz} name: deepmerge @@ -12768,12 +12634,6 @@ packages: p-locate: registry.nlark.com/p-locate/5.0.0 dev: true - registry.nlark.com/lodash-es/4.17.21: - resolution: {integrity: sha1-Q+YmxG5lkbd1C+srUBFzkMYJ4+4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/lodash-es/download/lodash-es-4.17.21.tgz} - name: lodash-es - version: 4.17.21 - dev: false - registry.nlark.com/lodash.memoize/4.1.2: resolution: {integrity: sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/lodash.memoize/download/lodash.memoize-4.1.2.tgz} name: lodash.memoize @@ -14669,12 +14529,6 @@ packages: dependencies: is-number: registry.nlark.com/is-number/7.0.0 - registry.nlark.com/toposort/2.0.2: - resolution: {integrity: sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/toposort/download/toposort-2.0.2.tgz} - name: toposort - version: 2.0.2 - dev: false - registry.nlark.com/totalist/1.1.0: resolution: {integrity: sha1-pNZaPlRlF3AePlw3pHpwrJf+Vt8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/totalist/download/totalist-1.1.0.tgz} name: totalist @@ -14704,6 +14558,7 @@ packages: resolution: {integrity: sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz} name: tslib version: 1.14.1 + dev: true registry.nlark.com/tslib/2.0.1: resolution: {integrity: sha1-QQ6w0RPltjVkkO7HSWA3JbAhtD4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tslib/download/tslib-2.0.1.tgz} diff --git a/shared/components/FastForm/container.tsx b/shared/components/FastForm/container.tsx deleted file mode 100644 index aad07837..00000000 --- a/shared/components/FastForm/container.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import type { ComponentType } from 'react'; - -/** - * 容器配置 - */ -export interface FastFormContainerProps { - loading: boolean; - submitLabel?: string; - - layout?: 'horizontal' | 'vertical'; - - /** - * 是否允许提交 - */ - canSubmit?: boolean; - handleSubmit: () => void; -} -export type FastFormContainerComponent = - React.ComponentType; -let FastFormContainer: FastFormContainerComponent; -export function regFormContainer(component: FastFormContainerComponent) { - FastFormContainer = component; -} - -export function getFormContainer(): - | ComponentType - | undefined { - return FastFormContainer; -} diff --git a/shared/components/FastForm/context.tsx b/shared/components/FastForm/context.tsx deleted file mode 100644 index 75c5cc49..00000000 --- a/shared/components/FastForm/context.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React, { useContext } from 'react'; -import type { useFormik } from 'formik'; - -type FastFormContextType = ReturnType; - -export const FastFormContext = React.createContext( - null -); -FastFormContext.displayName = 'FastFormContext'; - -export function useFastFormContext(): FastFormContextType | null { - return useContext(FastFormContext); -} diff --git a/shared/index.tsx b/shared/index.tsx index 19efff47..8a26eaa1 100644 --- a/shared/index.tsx +++ b/shared/index.tsx @@ -15,23 +15,6 @@ export { export { useCachedUserInfo, useCachedOnlineStatus } from './cache/useCache'; // components -export { - FastForm, - CustomField, - regField, - regFormContainer, -} from './components/FastForm/index'; -export type { - FastFormFieldComponent, - FastFormFieldProps, - FastFormFieldMeta, - FastFormContainerComponent, -} from './components/FastForm/index'; -export { - createFastFormSchema, - fieldSchema, -} from './components/FastForm/schema'; -export { useFastFormContext } from './components/FastForm/context'; export { buildPortal, DefaultEventEmitter } from './components/Portal'; export { TcProvider } from './components/Provider'; diff --git a/web/src/components/WebFastForm/types/Custom.tsx b/web/src/components/WebFastForm/types/Custom.tsx deleted file mode 100644 index 6381c080..00000000 --- a/web/src/components/WebFastForm/types/Custom.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from 'react'; -import { Form } from 'antd'; -import _get from 'lodash/get'; -import _isNil from 'lodash/isNil'; -import type { - FastFormFieldComponent, - FastFormFieldProps, -} from 'tailchat-shared'; -import { CustomField } from 'tailchat-shared'; - -export const FastFormCustom: FastFormFieldComponent<{ - render: (props: FastFormFieldProps) => React.ReactNode; -}> = React.memo((props) => { - const { label } = props; - - return ( - - - - ); -}); -FastFormCustom.displayName = 'FastFormCustom'; diff --git a/web/src/components/modals/ClaimTemporaryUser.tsx b/web/src/components/modals/ClaimTemporaryUser.tsx index e561db7f..9ae5d201 100644 --- a/web/src/components/modals/ClaimTemporaryUser.tsx +++ b/web/src/components/modals/ClaimTemporaryUser.tsx @@ -3,16 +3,18 @@ import { setGlobalUserLoginInfo } from '@/utils/user-helper'; import React from 'react'; import { claimTemporaryUser, - createFastFormSchema, - FastFormFieldMeta, - fieldSchema, t, useAppDispatch, useAsyncRequest, userActions, } from 'tailchat-shared'; +import { + createMetaFormSchema, + MetaFormFieldMeta, + metaFormFieldSchema, + WebMetaForm, +} from 'tailchat-design'; import { ModalWrapper } from '../Modal'; -import { WebFastForm } from '../WebFastForm'; interface Values { email: string; @@ -20,7 +22,7 @@ interface Values { [key: string]: unknown; } -const fields: FastFormFieldMeta[] = [ +const fields: MetaFormFieldMeta[] = [ { type: 'text', name: 'email', label: t('邮箱') }, { type: 'password', @@ -29,12 +31,12 @@ const fields: FastFormFieldMeta[] = [ }, ]; -const schema = createFastFormSchema({ - email: fieldSchema +const schema = createMetaFormSchema({ + email: metaFormFieldSchema .string() .required(t('邮箱不能为空')) .email(t('邮箱格式不正确')), - password: fieldSchema + password: metaFormFieldSchema .string() .min(6, t('密码不能低于6位')) .required(t('密码不能为空')), @@ -68,7 +70,7 @@ export const ClaimTemporaryUser: React.FC = React.memo( return ( - + ); } diff --git a/web/src/components/modals/GroupPanel/CreateGroupPanel.tsx b/web/src/components/modals/GroupPanel/CreateGroupPanel.tsx index b7659db4..c90b8737 100644 --- a/web/src/components/modals/GroupPanel/CreateGroupPanel.tsx +++ b/web/src/components/modals/GroupPanel/CreateGroupPanel.tsx @@ -1,26 +1,26 @@ -import { findPluginPanelInfoByName } from '@/utils/plugin-helper'; import React, { useState } from 'react'; import { - GroupPanelType, t, useAsyncRequest, createGroupPanel, - createFastFormSchema, - fieldSchema, showToasts, } from 'tailchat-shared'; +import { + createMetaFormSchema, + metaFormFieldSchema, + WebMetaForm, +} from 'tailchat-design'; import { ModalWrapper } from '../../Modal'; -import { WebFastForm } from '../../WebFastForm'; import { buildDataFromValues } from './helper'; import type { GroupPanelValues } from './types'; import { useGroupPanelFields } from './useGroupPanelFields'; -const schema = createFastFormSchema({ - name: fieldSchema +const schema = createMetaFormSchema({ + name: metaFormFieldSchema .string() .required(t('面板名不能为空')) .max(20, t('面板名过长')), - type: fieldSchema.string().required(t('面板类型不能为空')), + type: metaFormFieldSchema.string().required(t('面板类型不能为空')), }); /** @@ -45,7 +45,7 @@ export const ModalCreateGroupPanel: React.FC<{ return ( - - f.type !== 'type')} // 变更时不显示类型 initialValues={pickValuesFromGroupPanelInfo(groupPanelInfo)} diff --git a/web/src/components/modals/GroupPanel/useGroupPanelFields.tsx b/web/src/components/modals/GroupPanel/useGroupPanelFields.tsx index 36d1d120..aed6e1e5 100644 --- a/web/src/components/modals/GroupPanel/useGroupPanelFields.tsx +++ b/web/src/components/modals/GroupPanel/useGroupPanelFields.tsx @@ -2,19 +2,18 @@ import { UserSelector } from '@/components/UserSelector'; import React from 'react'; import { useMemo } from 'react'; import { - FastFormFieldMeta, GroupPanelType, isDevelopment, t, - useFastFormContext, useGroupMemberIds, } from 'tailchat-shared'; +import { MetaFormFieldMeta, useMetaFormContext } from 'tailchat-design'; import type { GroupPanelValues } from './types'; import _compact from 'lodash/compact'; import { pluginGroupPanel } from '@/plugin/common'; import { findPluginPanelInfoByName } from '@/utils/plugin-helper'; -const baseFields: FastFormFieldMeta[] = [ +const baseFields: MetaFormFieldMeta[] = [ { type: 'text', name: 'name', label: t('面板名') }, { type: 'select', @@ -44,7 +43,7 @@ export function useGroupPanelFields( const disableSendMessageWithoutRender = useMemo(() => { const DisableSendMessageWithoutComponent: React.FC = () => { const groupMemberUUIDs = useGroupMemberIds(groupId); - const context = useFastFormContext(); + const context = useMetaFormContext(); return ( = React.memo( return ( -