feat: add select component into schema component (#168)

* feat: select migrate

* feat: select migrate

* feat: add Select component into schema components

* refactor

Co-authored-by: chenos <chenlinxh@gmail.com>
This commit is contained in:
SemmyWong 2022-01-26 10:43:29 +08:00 committed by GitHub
parent 6e95278ce4
commit c5220ce09b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 452 additions and 73 deletions

View File

@ -30,7 +30,7 @@
"@types/react-dom": "^17.0.0",
"@typescript-eslint/eslint-plugin": "^4.9.1",
"@typescript-eslint/parser": "^4.8.2",
"antd": "^4.16.11",
"antd": "^4.18.5",
"cross-env": "^5.2.0",
"dotenv": "^10.0.0",
"dumi": "^1.1.33",

View File

@ -35,7 +35,7 @@
"peerDependencies": {
"@types/react": ">=16.8.0 || >=17.0.0",
"@types/react-dom": ">=16.8.0 || >=17.0.0",
"antd": "^4.0.0",
"antd": "^4.18.5",
"react": ">=16.8.0 || >=17.0.0",
"react-dom": ">=16.8.0",
"react-is": ">=16.8.0 || >=17.0.0",

View File

@ -15,6 +15,7 @@ export * from './menu';
export * from './page';
export * from './password';
export * from './radio';
export * from './select';
export * from './time-picker';
export * from './tree-select';
export * from './upload';

View File

@ -0,0 +1,33 @@
import { isArrayField } from '@formily/core';
import { observer, useField } from '@formily/react';
import { isValid } from '@formily/shared';
import { Tag } from 'antd';
import React from 'react';
import { defaultFieldNames, getCurrentOptions } from './shared';
type Composed = {
Select?: React.FC<any>;
Object?: React.FC<any>;
};
export const ReadPretty = observer((props: any) => {
const fieldNames = { ...defaultFieldNames, ...props.fieldNames };
const field = useField<any>();
if (!isValid(props.value)) {
return <div />;
}
if (isArrayField(field) && field?.value?.length === 0) {
return <div />;
}
const dataSource = field.dataSource || props.options || [];
const options = getCurrentOptions(field.value, dataSource, fieldNames);
return (
<div>
{options.map((option, key) => (
<Tag key={key} color={option[fieldNames.color]}>
{option[fieldNames.label]}
</Tag>
))}
</div>
);
});

View File

@ -0,0 +1,81 @@
import { LoadingOutlined } from '@ant-design/icons';
import { connect, mapProps, mapReadPretty } from '@formily/react';
import { isValid, toArr } from '@formily/shared';
import type { SelectProps } from 'antd';
import { Select as AntdSelect } from 'antd';
import React from 'react';
import { ReadPretty } from './ReadPretty';
import { defaultFieldNames, getCurrentOptions } from './shared';
type Props = SelectProps<any, any> & { objectValue?: boolean; onChange?: (v: any) => void };
const ObjectSelect = (props: Props) => {
const { value, options, onChange, fieldNames, mode, ...others } = props;
const toValue = (v: any) => {
if (!isValid(v)) {
return;
}
const values = toArr(v).map((val) => {
return typeof val === 'object' ? val[fieldNames.value] : val;
});
const current = getCurrentOptions(values, options, fieldNames).map((val) => {
return {
label: val[fieldNames.label],
value: val[fieldNames.value],
};
});
if (['tags', 'multiple'].includes(mode)) {
return current;
}
return current.shift();
};
return (
<AntdSelect
value={toValue(value)}
allowClear
labelInValue
options={options}
fieldNames={fieldNames}
onChange={(changed) => {
const current = getCurrentOptions(
toArr(changed).map((v) => v.value),
options,
fieldNames,
);
if (['tags', 'multiple'].includes(mode)) {
onChange(current);
} else {
onChange(current.shift());
}
}}
mode={mode}
{...others}
/>
);
};
export const Select = connect(
(props: Props) => {
const { objectValue, ...others } = props;
if (objectValue) {
return <ObjectSelect {...others} />;
}
return <AntdSelect {...others} />;
},
mapProps(
{
dataSource: 'options',
loading: true,
},
(props, field) => {
return {
...props,
fieldNames: { ...defaultFieldNames, ...props.fieldNames },
suffixIcon: field?.['loading'] || field?.['validating'] ? <LoadingOutlined /> : props.suffixIcon,
};
},
),
mapReadPretty(ReadPretty),
);
export default Select;

View File

@ -0,0 +1,60 @@
/**
* title: Select
*/
import { FormItem } from '@formily/antd';
import { SchemaComponent, SchemaComponentProvider, Select } from '@nocobase/client';
import React from 'react';
const dataSource = [
{
label: '福建',
value: 'FuJian',
children: [
{ label: '{{t("福州")}}', value: 'FZ' },
{ label: '莆田', value: 'PT' },
],
},
{ label: '江苏', value: 'XZ' },
{ label: '浙江', value: 'ZX' },
];
const schema = {
type: 'object',
properties: {
editable: {
type: 'string',
title: `Editable`,
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {},
enum: dataSource,
'x-reactions': {
target: 'read',
fulfill: {
state: {
value: '{{$self.value}}',
},
},
},
},
read: {
type: 'string',
title: `Read pretty`,
'x-read-pretty': true,
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {},
enum: dataSource,
},
},
};
const t = (text?: any) => text;
export default () => {
return (
<SchemaComponentProvider scope={{ t }} components={{ Select, FormItem }}>
<SchemaComponent schema={schema} />
</SchemaComponentProvider>
);
};

View File

@ -0,0 +1,64 @@
/**
* title: Select
*/
import { FormItem } from '@formily/antd';
import { SchemaComponent, SchemaComponentProvider, Select } from '@nocobase/client';
import React from 'react';
const dataSource = [
{
label: '福建',
value: 'FuJian',
children: [
{ label: '{{t("福州")}}', value: 'FZ' },
{ label: '莆田', value: 'PT' },
],
},
{ label: '江苏', value: 'XZ' },
{ label: '浙江', value: 'ZX' },
];
const schema = {
type: 'object',
properties: {
editable: {
type: 'string',
title: `Editable`,
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
mode: 'tags',
},
enum: dataSource,
'x-reactions': {
target: 'read',
fulfill: {
state: {
value: '{{$self.value}}',
},
},
},
},
read: {
type: 'string',
title: `Read pretty`,
'x-read-pretty': true,
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
mode: 'tags',
},
enum: dataSource,
},
},
};
const t = (text?: any) => text;
export default () => {
return (
<SchemaComponentProvider scope={{ t }} components={{ Select, FormItem }}>
<SchemaComponent schema={schema} />
</SchemaComponentProvider>
);
};

View File

@ -0,0 +1,77 @@
/**
* title: Select
*/
import { FormItem } from '@formily/antd';
import { ISchema } from '@formily/react';
import { SchemaComponent, SchemaComponentProvider, Select } from '@nocobase/client';
import React from 'react';
const schema: ISchema = {
type: 'object',
properties: {
editable: {
type: 'object',
title: `Editable`,
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
// mode: 'tags',
objectValue: true,
fieldNames: { label: 'title', value: 'id' },
options: [
{
title: '福建',
id: 'FuJian',
children: [
{ title: '福州', id: 'FZ' },
{ title: '莆田', id: 'PT' },
],
},
{ title: '江苏', id: 'XZ' },
{ title: '浙江', id: 'ZX' },
],
},
default: { title: '福州', id: 'FZ' },
'x-reactions': {
target: 'read',
fulfill: {
state: {
value: '{{$self.value}}',
},
},
},
},
read: {
type: 'object',
title: `Read pretty`,
'x-read-pretty': true,
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
// mode: 'tags',
objectValue: true,
fieldNames: { label: 'title', value: 'id' },
options: [
{
title: '福建',
id: 'FuJian',
children: [
{ title: '福州', id: 'FZ' },
{ title: '莆田', id: 'PT' },
],
},
{ title: '江苏', id: 'XZ' },
{ title: '浙江', id: 'ZX' },
],
},
},
},
};
export default () => {
return (
<SchemaComponentProvider components={{ Select, FormItem }}>
<SchemaComponent schema={schema} />
</SchemaComponentProvider>
);
};

View File

@ -5,4 +5,34 @@ group:
path: /schema-components
---
# Select <Badge>待定</Badge>
# Select
## Examples
### 单选
<code src="./demos/demo1.tsx" />
### 多选
<code src="./demos/demo2.tsx" />
### 值为 Object 类型的 Select
<code src="./demos/demo3.tsx" />
## API
基于 Ant Design 的 [Select](https://ant.design/components/select/#API),相关扩展属性有:
- `objectValue` 值为 object 类型
- `fieldNames` 默认值有区别
```ts
export const defaultFieldNames = {
label: 'label',
value: 'value',
color: 'color',
options: 'children',
};
```

View File

@ -0,0 +1 @@
export * from './Select';

View File

@ -0,0 +1,26 @@
import { toArr } from '@formily/shared';
export const defaultFieldNames = {
label: 'label',
value: 'value',
color: 'color',
options: 'children',
};
export const getCurrentOptions = (values, dataSource, fieldNames) => {
values = toArr(values).map((val) => (typeof val === 'object' ? val[fieldNames.value] : val));
const findOptions = (options: any[]) => {
let current = [];
for (const option of options) {
if (values.includes(option[fieldNames.value])) {
current.push(option);
}
const children = option[fieldNames.options];
if (Array.isArray(children)) {
current.push(...findOptions(children));
}
}
return current;
};
return findOptions(dataSource);
};

146
yarn.lock
View File

@ -2844,14 +2844,7 @@
resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
"@types/react-dom@^16.9.8":
version "16.9.14"
resolved "https://registry.npmmirror.com/@types/react-dom/download/@types/react-dom-16.9.14.tgz#674b8f116645fe5266b40b525777fc6bb8eb3bcd"
integrity sha512-FIX2AVmPTGP30OUJ+0vadeIFJJ07Mh1m+U0rxfgyW34p3rTlXI+nlenvAxNn4BP36YyI9IJ/+UJ7Wu22N1pI7A==
dependencies:
"@types/react" "^16"
"@types/react-dom@^17.0.0":
"@types/react-dom@^16.9.8", "@types/react-dom@^17.0.0":
version "17.0.11"
resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz#e1eadc3c5e86bdb5f7684e00274ae228e7bcc466"
integrity sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==
@ -2901,7 +2894,7 @@
"@types/history" "*"
"@types/react" "*"
"@types/react@*", "@types/react@^17.0.0":
"@types/react@*", "@types/react@^16.9.43", "@types/react@^17.0.0":
version "17.0.34"
resolved "https://registry.npmjs.org/@types/react/-/react-17.0.34.tgz#797b66d359b692e3f19991b6b07e4b0c706c0102"
integrity sha512-46FEGrMjc2+8XhHXILr+3+/sTe3OfzSPU9YGKILLrUYbQ1CLQC9Daqo1KzENGXAWwrFwiY0l4ZbF20gRvgpWTg==
@ -2910,15 +2903,6 @@
"@types/scheduler" "*"
csstype "^3.0.2"
"@types/react@^16", "@types/react@^16.9.43":
version "16.14.21"
resolved "https://registry.npmmirror.com/@types/react/download/@types/react-16.14.21.tgz#35199b21a278355ec7a3c40003bd6a334bd4ae4a"
integrity sha512-rY4DzPKK/4aohyWiDRHS2fotN5rhBSK6/rz1X37KzNna9HJyqtaGAbq9fVttrEPWF5ywpfIP1ITL8Xi2QZn6Eg==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
csstype "^3.0.2"
"@types/sax@^1.2.1":
version "1.2.3"
resolved "https://registry.npmjs.org/@types/sax/-/sax-1.2.3.tgz#b630ac1403ebd7812e0bf9a10de9bf5077afb348"
@ -3549,50 +3533,49 @@ ansi-styles@^5.0.0:
resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
antd@^4.16.11:
version "4.17.3"
resolved "https://registry.npmjs.org/antd/-/antd-4.17.3.tgz#48e2cfaec75cb414782a16918c0f322af1f2d509"
integrity sha512-enA6rsOAGtw0uN+khzvPoCui9j6m1ZvtAHY2IWC/mOUIwfycC8iuToND9ptAqeNF5yX8RZhFubmcc7Xeqk6wWg==
antd@^4.18.5:
version "4.18.5"
resolved "https://registry.npmjs.org/antd/-/antd-4.18.5.tgz#e5ffbe238fd6fdfcd1ed39ba96e4b1bd5f589757"
integrity sha512-5fN3C2lWAzonhOYYlNpzIw2OHl7vxFZ+4cJ7DK/XZrV+75OY61Y+OkanqMJwrFtDDamIez35OM7cAezGko9tew==
dependencies:
"@ant-design/colors" "^6.0.0"
"@ant-design/icons" "^4.7.0"
"@ant-design/react-slick" "~0.28.1"
"@babel/runtime" "^7.12.5"
"@ctrl/tinycolor" "^3.4.0"
array-tree-filter "^2.1.0"
classnames "^2.2.6"
copy-to-clipboard "^3.2.0"
lodash "^4.17.21"
memoize-one "^6.0.0"
moment "^2.25.3"
rc-cascader "~2.3.0"
rc-cascader "~3.2.1"
rc-checkbox "~2.3.0"
rc-collapse "~3.1.0"
rc-dialog "~8.6.0"
rc-drawer "~4.4.2"
rc-dropdown "~3.2.0"
rc-field-form "~1.21.0"
rc-field-form "~1.22.0-2"
rc-image "~5.2.5"
rc-input-number "~7.3.0"
rc-mentions "~1.6.1"
rc-menu "~9.0.12"
rc-menu "~9.2.1"
rc-motion "^2.4.4"
rc-notification "~4.5.7"
rc-pagination "~3.1.9"
rc-picker "~2.5.17"
rc-progress "~3.1.0"
rc-progress "~3.2.1"
rc-rate "~2.9.0"
rc-resize-observer "^1.1.0"
rc-select "~13.2.1"
rc-resize-observer "^1.2.0"
rc-select "~14.0.0-alpha.15"
rc-slider "~9.7.4"
rc-steps "~4.1.0"
rc-switch "~3.2.0"
rc-table "~7.19.0"
rc-table "~7.22.2"
rc-tabs "~11.10.0"
rc-textarea "~0.3.0"
rc-tooltip "~5.1.1"
rc-tree "~5.3.0"
rc-tree-select "~4.8.0"
rc-tree "~5.4.3"
rc-tree-select "~5.1.1"
rc-trigger "^5.2.10"
rc-upload "~4.3.0"
rc-util "^5.14.0"
@ -11948,18 +11931,17 @@ rc-align@^4.0.0:
rc-util "^5.3.0"
resize-observer-polyfill "^1.5.1"
rc-cascader@~2.3.0:
version "2.3.3"
resolved "https://registry.npmjs.org/rc-cascader/-/rc-cascader-2.3.3.tgz#605d04ef469cdd5d892e38cce291157d5a8af941"
integrity sha512-ckD8rKJjS8mdXxylWh1PtIHSFhbj/yf1NimyooqeJlvtLhzRZXIHCj4IuOjwYZ6J1DqoOCCdJfVtc7UeZia38w==
rc-cascader@~3.2.1:
version "3.2.1"
resolved "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.2.1.tgz#fc928d67d96c3d9f358263e4a9127bcf4257cc6b"
integrity sha512-Raxam9tFzBL4TCgHoyVcf7+Q2KSFneUk3FZXi9w1tfxEihLlezSH0oCNMjHJN8hxWwwx9ZbI9UzWTfFImjXc0Q==
dependencies:
"@babel/runtime" "^7.12.5"
array-tree-filter "^2.1.0"
classnames "^2.3.1"
rc-tree-select "~4.8.0"
rc-trigger "^5.0.4"
rc-select "~14.0.0-alpha.23"
rc-tree "~5.4.3"
rc-util "^5.6.1"
warning "^4.0.1"
rc-checkbox@~2.3.0:
version "2.3.2"
@ -12008,10 +11990,10 @@ rc-dropdown@^3.2.0, rc-dropdown@~3.2.0:
classnames "^2.2.6"
rc-trigger "^5.0.4"
rc-field-form@~1.21.0:
version "1.21.2"
resolved "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.21.2.tgz#85bda1ee006ae9f1d146e1000337c69b4bb6d101"
integrity sha512-LR/bURt/Tf5g39mb0wtMtQuWn42d/7kEzpzlC5fNC7yaRVmLTtlPP4sBBlaViETM9uZQKLoaB0Pt9Mubhm9gow==
rc-field-form@~1.22.0-2:
version "1.22.1"
resolved "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.22.1.tgz#0bd2f4e730ff2f071529d00bef28e062362890f5"
integrity sha512-LweU7nBeqmC5r3HDUjRprcOXXobHXp/TGIxD7ppBq5FX6Iptt3ibdpRVg4RSyNulBNGHOuknHlRcguuIpvVMVg==
dependencies:
"@babel/runtime" "^7.8.4"
async-validator "^4.0.2"
@ -12048,7 +12030,7 @@ rc-mentions@~1.6.1:
rc-trigger "^5.0.4"
rc-util "^5.0.1"
rc-menu@^9.0.0, rc-menu@~9.0.12:
rc-menu@^9.0.0:
version "9.0.14"
resolved "https://registry.npmjs.org/rc-menu/-/rc-menu-9.0.14.tgz#289bda4a2f6c5ebb3248e2e305d52cf0c73cb9d5"
integrity sha512-CIox5mZeLDAi32SlHrV7UeSjv7tmJJhwRyxQtZCKt351w3q59XlL4WMFOmtT9gwIfP9h0XoxdBZUMe/xzkp78A==
@ -12061,6 +12043,19 @@ rc-menu@^9.0.0, rc-menu@~9.0.12:
rc-util "^5.12.0"
shallowequal "^1.1.0"
rc-menu@~9.2.1:
version "9.2.1"
resolved "https://registry.npmjs.org/rc-menu/-/rc-menu-9.2.1.tgz#6fbe47f4846363bb81a5a21f0960026c3ada497a"
integrity sha512-UbEtn3rflJ8zS+etYGTVQuzy7Fm+yWXR5c0Rl6ecNTS/dPknRyWAyhJcbeR0Hu1+RdQT+0VCqrUPrgKnm4iY+w==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "2.x"
rc-motion "^2.4.3"
rc-overflow "^1.2.0"
rc-trigger "^5.1.2"
rc-util "^5.12.0"
shallowequal "^1.1.0"
rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.2.0, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motion@^2.4.1, rc-motion@^2.4.3, rc-motion@^2.4.4:
version "2.4.4"
resolved "https://registry.npmjs.org/rc-motion/-/rc-motion-2.4.4.tgz#e995d5fa24fc93065c24f714857cf2677d655bb0"
@ -12112,13 +12107,14 @@ rc-picker@~2.5.17:
rc-util "^5.4.0"
shallowequal "^1.1.0"
rc-progress@~3.1.0:
version "3.1.4"
resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-3.1.4.tgz#66040d0fae7d8ced2b38588378eccb2864bad615"
integrity sha512-XBAif08eunHssGeIdxMXOmRQRULdHaDdIFENQ578CMb4dyewahmmfJRyab+hw4KH4XssEzzYOkAInTLS7JJG+Q==
rc-progress@~3.2.1:
version "3.2.4"
resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-3.2.4.tgz#4036acdae2566438545bc4df2203248babaf7549"
integrity sha512-M9WWutRaoVkPUPIrTpRIDpX0SPSrVHzxHdCRCbeoBFrd9UFWTYNWRlHsruJM5FH1AZI+BwB4wOJUNNylg/uFSw==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.6"
rc-util "^5.16.1"
rc-rate@~2.9.0:
version "2.9.1"
@ -12149,17 +12145,27 @@ rc-resize-observer@^1.1.0:
rc-util "^5.15.0"
resize-observer-polyfill "^1.5.1"
rc-select@~13.2.1:
version "13.2.1"
resolved "https://registry.npmjs.org/rc-select/-/rc-select-13.2.1.tgz#d69675f8bc72622a8f3bc024fa21bfee8d56257d"
integrity sha512-L2cJFAjVEeDiNVa/dlOVKE79OUb0J7sUBvWN3Viav3XHcjvv9Ovn4D8J9QhBSlDXeGuczZ81CZI3BbdHD25+Gg==
rc-resize-observer@^1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.2.0.tgz#9f46052f81cdf03498be35144cb7c53fd282c4c7"
integrity sha512-6W+UzT3PyDM0wVCEHfoW3qTHPTvbdSgiA43buiy8PzmeMnfgnDeb9NjdimMXMl3/TcrvvWl5RRVdp+NqcR47pQ==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.1"
rc-util "^5.15.0"
resize-observer-polyfill "^1.5.1"
rc-select@~14.0.0-alpha.15, rc-select@~14.0.0-alpha.23, rc-select@~14.0.0-alpha.8:
version "14.0.0-alpha.25"
resolved "https://registry.npmjs.org/rc-select/-/rc-select-14.0.0-alpha.25.tgz#9e6ca83b090e020a730fdfdab07c1050549426e4"
integrity sha512-U9AMzXsOCCdtn96YIZdUrYbxk+5u6uWUCaYH2129X3FTjQITqAjEPYHfPcxU/G7+lwiD0pIaU95W0NMkg+26qw==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "2.x"
rc-motion "^2.0.1"
rc-overflow "^1.0.0"
rc-trigger "^5.0.4"
rc-util "^5.9.8"
rc-util "^5.16.1"
rc-virtual-list "^3.2.0"
rc-slider@~9.7.4:
@ -12191,14 +12197,14 @@ rc-switch@~3.2.0:
classnames "^2.2.1"
rc-util "^5.0.1"
rc-table@~7.19.0:
version "7.19.2"
resolved "https://registry.npmjs.org/rc-table/-/rc-table-7.19.2.tgz#976337a5dace3b8e04bea9554d72bc83aa5ab301"
integrity sha512-NdpnoM50MK02H5/hGOsObfxCvGFUG5cHB9turE5BKJ81T5Ycbq193w5tLhnpILXe//Oanzr47MdMxkUnVGP+qg==
rc-table@~7.22.2:
version "7.22.2"
resolved "https://registry.npmjs.org/rc-table/-/rc-table-7.22.2.tgz#218f3f53bc91660560a344c8290a91a841a60b0a"
integrity sha512-Ng2gNkGi6ybl6dzneRn2H4Gp8XhIbRa5rXQ7ZhZcgWVmfVMok70UHGPXcf68tXW6O0/qckTf/eOVsoviSvK4sw==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.5"
rc-resize-observer "^1.0.0"
rc-resize-observer "^1.1.0"
rc-util "^5.14.0"
shallowequal "^1.1.0"
@ -12244,16 +12250,16 @@ rc-tooltip@^5.0.1, rc-tooltip@~5.1.1:
"@babel/runtime" "^7.11.2"
rc-trigger "^5.0.0"
rc-tree-select@~4.8.0:
version "4.8.0"
resolved "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-4.8.0.tgz#bcbcfb45553f84a878e4ff037ff00b526a4afa62"
integrity sha512-evuVIF7GHCGDdvISdBWl4ZYmG/8foof/RDtzCu/WFLA1tFKZD77RRC3khEsjh4WgsB0vllLe7j+ODJ7jHRcDRQ==
rc-tree-select@~5.1.1:
version "5.1.1"
resolved "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.1.1.tgz#09940459cc57f072916ff3e2ddb6a6f62bbc4eb5"
integrity sha512-jchIaOTBvJjr3WJXPJc4wCeROIktkq8Ykf888GmL94nItJmqS9H6nCjSchEtkUbtDbZwx52tIJjzc81GWQbm/w==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "2.x"
rc-select "~13.2.1"
rc-tree "~5.3.0"
rc-util "^5.7.0"
rc-select "~14.0.0-alpha.8"
rc-tree "~5.4.3"
rc-util "^5.16.1"
rc-tree@^5.2.0:
version "5.3.0"
@ -12266,10 +12272,10 @@ rc-tree@^5.2.0:
rc-util "^5.0.0"
rc-virtual-list "^3.4.1"
rc-tree@~5.3.0:
version "5.3.3"
resolved "https://registry.npmjs.org/rc-tree/-/rc-tree-5.3.3.tgz#9a0c7ce2f171829f5aee788b2c644fc307b97794"
integrity sha512-WKblt5P0Co+eWhqG/xcKexZ7ir3UU5PlH4Y0hFd7zBopJMc0p6ysp2hgLK+EgjaJz7FHVJY9k5kpIKuBWHHDNA==
rc-tree@~5.4.3:
version "5.4.3"
resolved "https://registry.npmjs.org/rc-tree/-/rc-tree-5.4.3.tgz#8674644964e17e5ab9b111c5aa18676f673e7bd0"
integrity sha512-WAHV8FkBerulj9J/+61+Qn0TD/Zo37PrDG8/45WomzGTYavxFMur9YguKjQj/J+NxjVJzrJL3lvdSZsumfdbiA==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "2.x"
@ -15001,7 +15007,7 @@ walker@^1.0.7, walker@~1.0.5:
dependencies:
makeerror "1.0.12"
warning@^4.0.1, warning@^4.0.3:
warning@^4.0.3:
version "4.0.3"
resolved "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==