From eabce59678dc4d6f0521488c527036c539f9aa7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B6=85=E6=9D=B0?= <1098626505@qq.com> Date: Sat, 12 Jun 2021 18:26:37 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E5=92=8C=E6=8F=90=E9=AB=98=E6=80=A7=E8=83=BD=20(#3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 完善文档 - 修复 options bug --- .github/workflows/ci.yml | 11 + .gitignore | 1 - .vscode/settings.json | 4 + README.md | 16 +- cspell.json | 26 + docs/components/common/__demos__/provider.tsx | 49 ++ docs/components/common/__demos__/render.tsx | 11 + docs/components/common/provider.md | 16 + docs/components/common/render.md | 16 + .../__demos__/form-components/all.tsx | 0 .../form-components/axios-instance.ts | 0 .../form-components/search-select.tsx | 0 .../{ => form}/__demos__/form-item/basic.tsx | 0 .../{ => form}/__demos__/form-item/col.tsx | 0 .../__demos__/form-item/hideLabel.tsx | 0 .../{ => form}/__demos__/form-item/name.tsx | 0 .../{ => form}/__demos__/form-item/types.tsx | 0 .../__demos__/form/action_redirect.tsx | 0 .../__demos__/form/action_reset.tsx | 0 .../{ => form}/__demos__/form/align.tsx | 0 .../__demos__/form/axios-instance.ts | 0 .../{ => form}/__demos__/form/btn_align.tsx | 0 .../{ => form}/__demos__/form/btn_extra.tsx | 0 .../{ => form}/__demos__/form/btn_object.tsx | 0 .../{ => form}/__demos__/form/btn_render.tsx | 0 .../{ => form}/__demos__/form/btn_style.tsx | 0 .../{ => form}/__demos__/form/btn_visible.tsx | 0 .../{ => form}/__demos__/form/col_align.tsx | 0 .../{ => form}/__demos__/form/col_num.tsx | 0 .../__demos__/form/col_response.tsx | 0 .../__demos__/form/communication.tsx | 0 .../__demos__/form/data_request.tsx | 0 .../__demos__/form/data_request_mapping.tsx | 0 .../__demos__/form/data_response_mapping.tsx | 0 .../{ => form}/__demos__/form/data_submit.tsx | 0 .../{ => form}/__demos__/form/debug.tsx | 0 .../{ => form}/__demos__/form/disabled.tsx | 0 .../{ => form}/__demos__/form/hideLabel.tsx | 0 .../{ => form}/__demos__/form/persistData.tsx | 0 .../{ => form}/__demos__/form/placeholder.tsx | 0 .../__demos__/form/preserveRemoteData.tsx | 0 .../{ => form}/__demos__/form/readonly.tsx | 0 .../{ => form}/__demos__/form/schema.tsx | 2 +- .../__demos__/form/throttleTimeout.tsx | 0 .../{ => form}/__demos__/form/types.tsx | 0 .../{ => form}/__demos__/options/api.tsx | 0 .../__demos__/options/axios-instance.ts | 0 .../__demos__/options/clear_value.tsx | 0 .../__demos__/options/common_arr.tsx | 0 .../{ => form}/__demos__/options/linkage.tsx | 0 .../{ => form}/__demos__/options/obj_arr.tsx | 0 .../__demos__/options/optionsProp.tsx | 0 .../{ => form}/__demos__/options/types.tsx | 0 .../__demos__/select/axios-instance.ts | 0 .../{ => form}/__demos__/select/basic.tsx | 0 docs/components/{ => form}/form-components.md | 2 +- docs/components/{ => form}/form-item.md | 2 +- docs/components/{ => form}/form.md | 2 +- docs/components/{ => form}/options.md | 2 +- docs/guide/concept/__demos__/schema/attrs.tsx | 2 +- .../{filters_muti.tsx => filters_multi.tsx} | 0 docs/guide/concept/api.md | 2 +- docs/guide/concept/schema.md | 2 +- docs/guide/concept/template.md | 8 +- docs/guide/index.md | 2 +- package.json | 15 +- src/form-item/src/components/Color.tsx | 12 +- src/form-item/src/components/Number.tsx | 8 +- src/form-item/src/components/Text.tsx | 2 +- src/form-item/src/hoc/withDependency.tsx | 6 +- src/form-item/src/hoc/withOptions.tsx | 16 +- src/shared/src/hooks/useOptions/types.ts | 2 + src/shared/src/hooks/useOptions/useOptions.ts | 55 +- src/shared/src/hooks/useOptions/util.ts | 3 +- style-guide.md | 8 +- tests/form-item/components/all.test.tsx | 21 +- tests/form-item/createSuperFormItem.test.tsx | 9 +- tests/form-item/hoc/withDependency.test.tsx | 14 +- tests/form-item/hoc/withOptions.test.tsx | 24 +- tests/form/Form.test.tsx | 4 +- tests/provider/provider.test.tsx | 8 +- tests/render/schemaApiParser.test.tsx | 14 +- tests/shared/hooks/useAxios/useAxios.test.tsx | 13 +- .../hooks/useOptions/useOptions.test.tsx | 4 +- tests/shared/utils/dataMapping.test.ts | 4 +- yarn.lock | 662 +++++++++++++++++- 86 files changed, 910 insertions(+), 170 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .vscode/settings.json create mode 100644 cspell.json create mode 100644 docs/components/common/__demos__/provider.tsx create mode 100644 docs/components/common/__demos__/render.tsx create mode 100644 docs/components/common/provider.md create mode 100644 docs/components/common/render.md rename docs/components/{ => form}/__demos__/form-components/all.tsx (100%) rename docs/components/{ => form}/__demos__/form-components/axios-instance.ts (100%) rename docs/components/{ => form}/__demos__/form-components/search-select.tsx (100%) rename docs/components/{ => form}/__demos__/form-item/basic.tsx (100%) rename docs/components/{ => form}/__demos__/form-item/col.tsx (100%) rename docs/components/{ => form}/__demos__/form-item/hideLabel.tsx (100%) rename docs/components/{ => form}/__demos__/form-item/name.tsx (100%) rename docs/components/{ => form}/__demos__/form-item/types.tsx (100%) rename docs/components/{ => form}/__demos__/form/action_redirect.tsx (100%) rename docs/components/{ => form}/__demos__/form/action_reset.tsx (100%) rename docs/components/{ => form}/__demos__/form/align.tsx (100%) rename docs/components/{ => form}/__demos__/form/axios-instance.ts (100%) rename docs/components/{ => form}/__demos__/form/btn_align.tsx (100%) rename docs/components/{ => form}/__demos__/form/btn_extra.tsx (100%) rename docs/components/{ => form}/__demos__/form/btn_object.tsx (100%) rename docs/components/{ => form}/__demos__/form/btn_render.tsx (100%) rename docs/components/{ => form}/__demos__/form/btn_style.tsx (100%) rename docs/components/{ => form}/__demos__/form/btn_visible.tsx (100%) rename docs/components/{ => form}/__demos__/form/col_align.tsx (100%) rename docs/components/{ => form}/__demos__/form/col_num.tsx (100%) rename docs/components/{ => form}/__demos__/form/col_response.tsx (100%) rename docs/components/{ => form}/__demos__/form/communication.tsx (100%) rename docs/components/{ => form}/__demos__/form/data_request.tsx (100%) rename docs/components/{ => form}/__demos__/form/data_request_mapping.tsx (100%) rename docs/components/{ => form}/__demos__/form/data_response_mapping.tsx (100%) rename docs/components/{ => form}/__demos__/form/data_submit.tsx (100%) rename docs/components/{ => form}/__demos__/form/debug.tsx (100%) rename docs/components/{ => form}/__demos__/form/disabled.tsx (100%) rename docs/components/{ => form}/__demos__/form/hideLabel.tsx (100%) rename docs/components/{ => form}/__demos__/form/persistData.tsx (100%) rename docs/components/{ => form}/__demos__/form/placeholder.tsx (100%) rename docs/components/{ => form}/__demos__/form/preserveRemoteData.tsx (100%) rename docs/components/{ => form}/__demos__/form/readonly.tsx (100%) rename docs/components/{ => form}/__demos__/form/schema.tsx (97%) rename docs/components/{ => form}/__demos__/form/throttleTimeout.tsx (100%) rename docs/components/{ => form}/__demos__/form/types.tsx (100%) rename docs/components/{ => form}/__demos__/options/api.tsx (100%) rename docs/components/{ => form}/__demos__/options/axios-instance.ts (100%) rename docs/components/{ => form}/__demos__/options/clear_value.tsx (100%) rename docs/components/{ => form}/__demos__/options/common_arr.tsx (100%) rename docs/components/{ => form}/__demos__/options/linkage.tsx (100%) rename docs/components/{ => form}/__demos__/options/obj_arr.tsx (100%) rename docs/components/{ => form}/__demos__/options/optionsProp.tsx (100%) rename docs/components/{ => form}/__demos__/options/types.tsx (100%) rename docs/components/{ => form}/__demos__/select/axios-instance.ts (100%) rename docs/components/{ => form}/__demos__/select/basic.tsx (100%) rename docs/components/{ => form}/form-components.md (99%) rename docs/components/{ => form}/form-item.md (98%) rename docs/components/{ => form}/form.md (99%) rename docs/components/{ => form}/options.md (98%) rename docs/guide/concept/__demos__/template/{filters_muti.tsx => filters_multi.tsx} (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1403e36 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,11 @@ +name: Node CI + +on: pull_request + +jobs: + deploy: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - run: yarn + - run: yarn ci \ No newline at end of file diff --git a/.gitignore b/.gitignore index 71b1218..53bb1ea 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,6 @@ .env.local # ide -/.vscode /.idea coverage .eslintcache diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..8ad3fa8 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "editor.defaultFormatter": "vscode.typescript-language-features", + "prettier.embeddedLanguageFormatting": "off" +} diff --git a/README.md b/README.md index d8ee622..e3093a1 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,7 @@ -`super-antd` 是一个简单且数据驱动友好的 React 组件库。 - -它基于 [ant design](https://ant.design/) 和 [pro-components](https://procomponents.ant.design/) 。 +`super-antd` 是一个简单且数据驱动友好的 React 组件库。它基于 [ant design](https://ant.design/) 和 [pro-components](https://procomponents.ant.design/) 。 ## 📖 Document @@ -19,7 +17,7 @@ - 简单:通过对大量业务场景的提炼和抽象,使得其十分简单; - 数据驱动友好:在组件层级解决了动态渲染、通信、联动等难题; -- 稳定:Typescript 编写 + 高测试覆盖率; +- 稳定:Typescript 编写 + 90% 以上的测试覆盖率; ## 🤔 Why? @@ -35,7 +33,7 @@ 而且 `super-antd` 本身其实就是一个普通的 `antd` 组件库,当低代码编辑器真的无法满足需求而需要重构,导出的代码也和程序员真实开发时写的一样,这样就极大的降低重构的风险和成本,这就是为什么要写 `super-antd`。 -## 🎯 Roadmap +## 🎯 RoadMap - [x] 0.1 alpha 版 - [x] [数据模板](https://dream2023.github.io/super-antd/guide/concept/template) @@ -45,10 +43,10 @@ - [x] [表单组件](https://dream2023.github.io/super-antd/components/form) - [x] [表单项组件](https://dream2023.github.io/super-antd/components/form/form-item) - [x] [内置表单组件](https://dream2023.github.io/super-antd/components/form/form-components) -- [ ] 0.1 正式版 - - [ ] 测试覆盖率 80% 以上 - - [ ] 完成 100% 文档 - - [ ] 0️⃣ issue +- [x] 0.1 正式版 + - [x] 测试覆盖率 90% 以上 + - [x] 完成 100% 文档 + - [x] 0️⃣ issue - [ ] 1.0 版 - [ ] 模板组件 - [ ] 富文本组件 diff --git a/cspell.json b/cspell.json new file mode 100644 index 0000000..940847a --- /dev/null +++ b/cspell.json @@ -0,0 +1,26 @@ +{ + "version": "0.1", + "language": "en", + "words": [ + "rfdc", + "ahooks", + "antd", + "Btns", + "btns", + "ahooksjs", + "hoverable", + "typeof", + "classname", + "cnpm", + "tyarn", + "testid", + "rerender", + "dumi", + "umijs", + "globby", + "gitee", + "Codecov", + "browserslist" + ], + "ignorePaths": ["node_modules/**", "**/*.snap", "coverage/**", "src/.umi/**"] +} diff --git a/docs/components/common/__demos__/provider.tsx b/docs/components/common/__demos__/provider.tsx new file mode 100644 index 0000000..9ed3ce1 --- /dev/null +++ b/docs/components/common/__demos__/provider.tsx @@ -0,0 +1,49 @@ +import React, { FC } from 'react'; +import type { ComponentType } from 'react'; +import type { ComponentDecoratorType, SchemaParserType } from 'react-schema-render'; + +/** + * Error 的类型 + * + * 既支持 Error 对象,也支持 { message: 'xx', errors: {} } 用于表单回显 + */ +export type ErrorData = Error & { message?: string; errors?: Record }; + +export interface ISuperProviderProps { + /** 组件默认属性 */ + componentProps?: Record>; + /** 分隔符 */ + delimiters?: [string, string]; + /** 自定义过滤器 */ + filters?: Record; + + /** Axios 实例 */ + axios?: (options: any) => Promise; + /** 自定义错误通知 */ + errorNotify?: (msg?: string, error?: ErrorData, params?: any) => void; + /** 自定义请求成功通知 */ + successNotify?: (msg?: string, data?: any, params?: any) => void; + + /** + * 组件映射列表,同 react-schema-render + * + * @see https://dream2023.gitee.io/react-schema-render/ + */ + components?: Record>; + /** + * 自定义装饰器 + * + * @see https://dream2023.gitee.io/react-schema-render/decorator + */ + componentDecorator?: ComponentDecoratorType; + /** + * 自定义解析器 + * + * @see https://dream2023.gitee.io/react-schema-render/parser + */ + parsers?: SchemaParserType[]; +} + +const Demo: FC = () => <>Demo!; + +export default Demo; diff --git a/docs/components/common/__demos__/render.tsx b/docs/components/common/__demos__/render.tsx new file mode 100644 index 0000000..d165601 --- /dev/null +++ b/docs/components/common/__demos__/render.tsx @@ -0,0 +1,11 @@ +import type { FC } from 'react'; +import React from 'react'; + +export interface ISchemaRenderProps { + /** Schema 对象。可以为数组或者对象。 例如 { component: 'input', name: 'foo', label: 'bar' } */ + schema?: Record | Record[]; +} + +const Demo: FC = () => <>Demo!; + +export default Demo; diff --git a/docs/components/common/provider.md b/docs/components/common/provider.md new file mode 100644 index 0000000..8edde5c --- /dev/null +++ b/docs/components/common/provider.md @@ -0,0 +1,16 @@ +--- +order: 1 +group: + path: /common + title: 基础组件 +nav: + title: 组件 + path: /components + order: 1 +--- + +# SuperProvider 全局配置 + +SuperProvider 用法在指南 [全局配置](/guide/concept/config) 章节已有详细描述。 + + diff --git a/docs/components/common/render.md b/docs/components/common/render.md new file mode 100644 index 0000000..9b416fb --- /dev/null +++ b/docs/components/common/render.md @@ -0,0 +1,16 @@ +--- +order: 2 +group: + path: /common + title: 基础组件 +nav: + title: 组件 + path: /components + order: 1 +--- + +# SuperRender 动态渲染 + +SuperRender 用法在指南 [数据驱动](/guide/concept/schema) 章节已有详细描述。 + + diff --git a/docs/components/__demos__/form-components/all.tsx b/docs/components/form/__demos__/form-components/all.tsx similarity index 100% rename from docs/components/__demos__/form-components/all.tsx rename to docs/components/form/__demos__/form-components/all.tsx diff --git a/docs/components/__demos__/form-components/axios-instance.ts b/docs/components/form/__demos__/form-components/axios-instance.ts similarity index 100% rename from docs/components/__demos__/form-components/axios-instance.ts rename to docs/components/form/__demos__/form-components/axios-instance.ts diff --git a/docs/components/__demos__/form-components/search-select.tsx b/docs/components/form/__demos__/form-components/search-select.tsx similarity index 100% rename from docs/components/__demos__/form-components/search-select.tsx rename to docs/components/form/__demos__/form-components/search-select.tsx diff --git a/docs/components/__demos__/form-item/basic.tsx b/docs/components/form/__demos__/form-item/basic.tsx similarity index 100% rename from docs/components/__demos__/form-item/basic.tsx rename to docs/components/form/__demos__/form-item/basic.tsx diff --git a/docs/components/__demos__/form-item/col.tsx b/docs/components/form/__demos__/form-item/col.tsx similarity index 100% rename from docs/components/__demos__/form-item/col.tsx rename to docs/components/form/__demos__/form-item/col.tsx diff --git a/docs/components/__demos__/form-item/hideLabel.tsx b/docs/components/form/__demos__/form-item/hideLabel.tsx similarity index 100% rename from docs/components/__demos__/form-item/hideLabel.tsx rename to docs/components/form/__demos__/form-item/hideLabel.tsx diff --git a/docs/components/__demos__/form-item/name.tsx b/docs/components/form/__demos__/form-item/name.tsx similarity index 100% rename from docs/components/__demos__/form-item/name.tsx rename to docs/components/form/__demos__/form-item/name.tsx diff --git a/docs/components/__demos__/form-item/types.tsx b/docs/components/form/__demos__/form-item/types.tsx similarity index 100% rename from docs/components/__demos__/form-item/types.tsx rename to docs/components/form/__demos__/form-item/types.tsx diff --git a/docs/components/__demos__/form/action_redirect.tsx b/docs/components/form/__demos__/form/action_redirect.tsx similarity index 100% rename from docs/components/__demos__/form/action_redirect.tsx rename to docs/components/form/__demos__/form/action_redirect.tsx diff --git a/docs/components/__demos__/form/action_reset.tsx b/docs/components/form/__demos__/form/action_reset.tsx similarity index 100% rename from docs/components/__demos__/form/action_reset.tsx rename to docs/components/form/__demos__/form/action_reset.tsx diff --git a/docs/components/__demos__/form/align.tsx b/docs/components/form/__demos__/form/align.tsx similarity index 100% rename from docs/components/__demos__/form/align.tsx rename to docs/components/form/__demos__/form/align.tsx diff --git a/docs/components/__demos__/form/axios-instance.ts b/docs/components/form/__demos__/form/axios-instance.ts similarity index 100% rename from docs/components/__demos__/form/axios-instance.ts rename to docs/components/form/__demos__/form/axios-instance.ts diff --git a/docs/components/__demos__/form/btn_align.tsx b/docs/components/form/__demos__/form/btn_align.tsx similarity index 100% rename from docs/components/__demos__/form/btn_align.tsx rename to docs/components/form/__demos__/form/btn_align.tsx diff --git a/docs/components/__demos__/form/btn_extra.tsx b/docs/components/form/__demos__/form/btn_extra.tsx similarity index 100% rename from docs/components/__demos__/form/btn_extra.tsx rename to docs/components/form/__demos__/form/btn_extra.tsx diff --git a/docs/components/__demos__/form/btn_object.tsx b/docs/components/form/__demos__/form/btn_object.tsx similarity index 100% rename from docs/components/__demos__/form/btn_object.tsx rename to docs/components/form/__demos__/form/btn_object.tsx diff --git a/docs/components/__demos__/form/btn_render.tsx b/docs/components/form/__demos__/form/btn_render.tsx similarity index 100% rename from docs/components/__demos__/form/btn_render.tsx rename to docs/components/form/__demos__/form/btn_render.tsx diff --git a/docs/components/__demos__/form/btn_style.tsx b/docs/components/form/__demos__/form/btn_style.tsx similarity index 100% rename from docs/components/__demos__/form/btn_style.tsx rename to docs/components/form/__demos__/form/btn_style.tsx diff --git a/docs/components/__demos__/form/btn_visible.tsx b/docs/components/form/__demos__/form/btn_visible.tsx similarity index 100% rename from docs/components/__demos__/form/btn_visible.tsx rename to docs/components/form/__demos__/form/btn_visible.tsx diff --git a/docs/components/__demos__/form/col_align.tsx b/docs/components/form/__demos__/form/col_align.tsx similarity index 100% rename from docs/components/__demos__/form/col_align.tsx rename to docs/components/form/__demos__/form/col_align.tsx diff --git a/docs/components/__demos__/form/col_num.tsx b/docs/components/form/__demos__/form/col_num.tsx similarity index 100% rename from docs/components/__demos__/form/col_num.tsx rename to docs/components/form/__demos__/form/col_num.tsx diff --git a/docs/components/__demos__/form/col_response.tsx b/docs/components/form/__demos__/form/col_response.tsx similarity index 100% rename from docs/components/__demos__/form/col_response.tsx rename to docs/components/form/__demos__/form/col_response.tsx diff --git a/docs/components/__demos__/form/communication.tsx b/docs/components/form/__demos__/form/communication.tsx similarity index 100% rename from docs/components/__demos__/form/communication.tsx rename to docs/components/form/__demos__/form/communication.tsx diff --git a/docs/components/__demos__/form/data_request.tsx b/docs/components/form/__demos__/form/data_request.tsx similarity index 100% rename from docs/components/__demos__/form/data_request.tsx rename to docs/components/form/__demos__/form/data_request.tsx diff --git a/docs/components/__demos__/form/data_request_mapping.tsx b/docs/components/form/__demos__/form/data_request_mapping.tsx similarity index 100% rename from docs/components/__demos__/form/data_request_mapping.tsx rename to docs/components/form/__demos__/form/data_request_mapping.tsx diff --git a/docs/components/__demos__/form/data_response_mapping.tsx b/docs/components/form/__demos__/form/data_response_mapping.tsx similarity index 100% rename from docs/components/__demos__/form/data_response_mapping.tsx rename to docs/components/form/__demos__/form/data_response_mapping.tsx diff --git a/docs/components/__demos__/form/data_submit.tsx b/docs/components/form/__demos__/form/data_submit.tsx similarity index 100% rename from docs/components/__demos__/form/data_submit.tsx rename to docs/components/form/__demos__/form/data_submit.tsx diff --git a/docs/components/__demos__/form/debug.tsx b/docs/components/form/__demos__/form/debug.tsx similarity index 100% rename from docs/components/__demos__/form/debug.tsx rename to docs/components/form/__demos__/form/debug.tsx diff --git a/docs/components/__demos__/form/disabled.tsx b/docs/components/form/__demos__/form/disabled.tsx similarity index 100% rename from docs/components/__demos__/form/disabled.tsx rename to docs/components/form/__demos__/form/disabled.tsx diff --git a/docs/components/__demos__/form/hideLabel.tsx b/docs/components/form/__demos__/form/hideLabel.tsx similarity index 100% rename from docs/components/__demos__/form/hideLabel.tsx rename to docs/components/form/__demos__/form/hideLabel.tsx diff --git a/docs/components/__demos__/form/persistData.tsx b/docs/components/form/__demos__/form/persistData.tsx similarity index 100% rename from docs/components/__demos__/form/persistData.tsx rename to docs/components/form/__demos__/form/persistData.tsx diff --git a/docs/components/__demos__/form/placeholder.tsx b/docs/components/form/__demos__/form/placeholder.tsx similarity index 100% rename from docs/components/__demos__/form/placeholder.tsx rename to docs/components/form/__demos__/form/placeholder.tsx diff --git a/docs/components/__demos__/form/preserveRemoteData.tsx b/docs/components/form/__demos__/form/preserveRemoteData.tsx similarity index 100% rename from docs/components/__demos__/form/preserveRemoteData.tsx rename to docs/components/form/__demos__/form/preserveRemoteData.tsx diff --git a/docs/components/__demos__/form/readonly.tsx b/docs/components/form/__demos__/form/readonly.tsx similarity index 100% rename from docs/components/__demos__/form/readonly.tsx rename to docs/components/form/__demos__/form/readonly.tsx diff --git a/docs/components/__demos__/form/schema.tsx b/docs/components/form/__demos__/form/schema.tsx similarity index 97% rename from docs/components/__demos__/form/schema.tsx rename to docs/components/form/__demos__/form/schema.tsx index 1e54c77..a6e6668 100644 --- a/docs/components/__demos__/form/schema.tsx +++ b/docs/components/form/__demos__/form/schema.tsx @@ -23,7 +23,7 @@ const Demo = () => { component: 'email', name: 'email', label: '邮箱', - key: 'emial', + key: 'email', }, { component: 'checkbox', diff --git a/docs/components/__demos__/form/throttleTimeout.tsx b/docs/components/form/__demos__/form/throttleTimeout.tsx similarity index 100% rename from docs/components/__demos__/form/throttleTimeout.tsx rename to docs/components/form/__demos__/form/throttleTimeout.tsx diff --git a/docs/components/__demos__/form/types.tsx b/docs/components/form/__demos__/form/types.tsx similarity index 100% rename from docs/components/__demos__/form/types.tsx rename to docs/components/form/__demos__/form/types.tsx diff --git a/docs/components/__demos__/options/api.tsx b/docs/components/form/__demos__/options/api.tsx similarity index 100% rename from docs/components/__demos__/options/api.tsx rename to docs/components/form/__demos__/options/api.tsx diff --git a/docs/components/__demos__/options/axios-instance.ts b/docs/components/form/__demos__/options/axios-instance.ts similarity index 100% rename from docs/components/__demos__/options/axios-instance.ts rename to docs/components/form/__demos__/options/axios-instance.ts diff --git a/docs/components/__demos__/options/clear_value.tsx b/docs/components/form/__demos__/options/clear_value.tsx similarity index 100% rename from docs/components/__demos__/options/clear_value.tsx rename to docs/components/form/__demos__/options/clear_value.tsx diff --git a/docs/components/__demos__/options/common_arr.tsx b/docs/components/form/__demos__/options/common_arr.tsx similarity index 100% rename from docs/components/__demos__/options/common_arr.tsx rename to docs/components/form/__demos__/options/common_arr.tsx diff --git a/docs/components/__demos__/options/linkage.tsx b/docs/components/form/__demos__/options/linkage.tsx similarity index 100% rename from docs/components/__demos__/options/linkage.tsx rename to docs/components/form/__demos__/options/linkage.tsx diff --git a/docs/components/__demos__/options/obj_arr.tsx b/docs/components/form/__demos__/options/obj_arr.tsx similarity index 100% rename from docs/components/__demos__/options/obj_arr.tsx rename to docs/components/form/__demos__/options/obj_arr.tsx diff --git a/docs/components/__demos__/options/optionsProp.tsx b/docs/components/form/__demos__/options/optionsProp.tsx similarity index 100% rename from docs/components/__demos__/options/optionsProp.tsx rename to docs/components/form/__demos__/options/optionsProp.tsx diff --git a/docs/components/__demos__/options/types.tsx b/docs/components/form/__demos__/options/types.tsx similarity index 100% rename from docs/components/__demos__/options/types.tsx rename to docs/components/form/__demos__/options/types.tsx diff --git a/docs/components/__demos__/select/axios-instance.ts b/docs/components/form/__demos__/select/axios-instance.ts similarity index 100% rename from docs/components/__demos__/select/axios-instance.ts rename to docs/components/form/__demos__/select/axios-instance.ts diff --git a/docs/components/__demos__/select/basic.tsx b/docs/components/form/__demos__/select/basic.tsx similarity index 100% rename from docs/components/__demos__/select/basic.tsx rename to docs/components/form/__demos__/select/basic.tsx diff --git a/docs/components/form-components.md b/docs/components/form/form-components.md similarity index 99% rename from docs/components/form-components.md rename to docs/components/form/form-components.md index 17b10d0..7ed6ab9 100644 --- a/docs/components/form-components.md +++ b/docs/components/form/form-components.md @@ -2,7 +2,7 @@ order: 2 group: path: /form - title: 表单 + title: 表单组件 nav: title: 组件 path: /components diff --git a/docs/components/form-item.md b/docs/components/form/form-item.md similarity index 98% rename from docs/components/form-item.md rename to docs/components/form/form-item.md index d4d6481..bbb1440 100644 --- a/docs/components/form-item.md +++ b/docs/components/form/form-item.md @@ -2,7 +2,7 @@ order: 1 group: path: /form - title: 表单 + title: 表单组件 nav: title: 组件 path: /components diff --git a/docs/components/form.md b/docs/components/form/form.md similarity index 99% rename from docs/components/form.md rename to docs/components/form/form.md index 58f42b3..c17e74c 100644 --- a/docs/components/form.md +++ b/docs/components/form/form.md @@ -2,7 +2,7 @@ order: 0 group: path: /form - title: 表单 + title: 表单组件 nav: title: 组件 path: /components diff --git a/docs/components/options.md b/docs/components/form/options.md similarity index 98% rename from docs/components/options.md rename to docs/components/form/options.md index 783ef9c..bef2013 100644 --- a/docs/components/options.md +++ b/docs/components/form/options.md @@ -2,7 +2,7 @@ order: 2 group: path: /form - title: 表单 + title: 表单组件 nav: title: 组件 path: /components diff --git a/docs/guide/concept/__demos__/schema/attrs.tsx b/docs/guide/concept/__demos__/schema/attrs.tsx index 39f35fa..fc27827 100644 --- a/docs/guide/concept/__demos__/schema/attrs.tsx +++ b/docs/guide/concept/__demos__/schema/attrs.tsx @@ -34,7 +34,7 @@ const App = () => { // 组件默认属性 const componentProps = { - numer: { + number: { min: 0, }, }; diff --git a/docs/guide/concept/__demos__/template/filters_muti.tsx b/docs/guide/concept/__demos__/template/filters_multi.tsx similarity index 100% rename from docs/guide/concept/__demos__/template/filters_muti.tsx rename to docs/guide/concept/__demos__/template/filters_multi.tsx diff --git a/docs/guide/concept/api.md b/docs/guide/concept/api.md index 32b9f20..4440a4b 100644 --- a/docs/guide/concept/api.md +++ b/docs/guide/concept/api.md @@ -163,7 +163,7 @@ import { getUser } from 'path/to/api'; ### url 映射 -api 为 string 类型或者对象时的 url 属性支持参数映射,例如:`/city?provice={{data.provice}}` 就会将 `{{data.provice}}` 替换成真正的数据,例如: +api 为 string 类型或者对象时的 url 属性支持参数映射,例如:`/city?province={{data.province}}` 就会将 `{{data.province}}` 替换成真正的数据,例如: diff --git a/docs/guide/concept/schema.md b/docs/guide/concept/schema.md index 4e559ca..a680280 100644 --- a/docs/guide/concept/schema.md +++ b/docs/guide/concept/schema.md @@ -33,7 +33,7 @@ nav: 因为在数据驱动的场景下,通常需要将这些数据存储到数据库,而函数类型的值并不利于存储和应用,而且大多数情况下是通过界面配置实现组件的功能,这就要求了如果想要做好,做灵活,就需要尽可能实现上述三者。 -例如 `SuperForm` 组件,在点击 **请求数据** 成功后需要进行 **跳转** 页面的操作,这里的 **请求数据** 和 **跳转页面**,在我们使用其他组件库时,就需要书写不少代码,但是在 `SuperForm` 中我们仅需要执行 `api` 属性和 `rediect` 属性即可: +例如 `SuperForm` 组件,在点击 **请求数据** 成功后需要进行 **跳转** 页面的操作,这里的 **请求数据** 和 **跳转页面**,在我们使用其他组件库时,就需要书写不少代码,但是在 `SuperForm` 中我们仅需要执行 `api` 属性和 `redirect` 属性即可: diff --git a/docs/guide/concept/template.md b/docs/guide/concept/template.md index 9474211..637c395 100644 --- a/docs/guide/concept/template.md +++ b/docs/guide/concept/template.md @@ -59,13 +59,13 @@ nav: ### JS 全局函数 -数据模板可以使用到 JS 的全局函数,例如 `JSON.stringify` 或者 `parsetInt` 等函数,例如: +数据模板可以使用到 JS 的全局函数,例如 `JSON.stringify` 或者 `parseInt` 等函数,例如: ### 串联使用多个过滤器 - + ### 自定义过滤器 @@ -73,7 +73,7 @@ nav: ## 内置过滤器 -suepr-antd 为了方便用户内置了一些过滤器,以下是内置过滤器的介绍: +super-antd 为了方便用户内置了一些过滤器,以下是内置过滤器的介绍: ### json @@ -307,7 +307,7 @@ export default App; import React from 'react'; import { SuperTpl } from 'super-antd'; const App = () => { - return ; + return ; }; export default App; ``` diff --git a/docs/guide/index.md b/docs/guide/index.md index 4d1b8db..54c5546 100644 --- a/docs/guide/index.md +++ b/docs/guide/index.md @@ -58,7 +58,7 @@ nav: - 极大减少代码复杂度; - 能够作为数据驱动框架和低代码平台的基础库。 -## Roadmap 开发规划 +## RoadMap 开发规划 - [x] 0.1 alpha 版 - [x] [数据模板](https://dream2023.github.io/super-antd/guide/concept/template) diff --git a/package.json b/package.json index 6a9237b..23e3613 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "name": "super-antd", "description": "super-antd 是一个简单且数据驱动友好的 React 组件库。", "license": "MIT", - "version": "0.0.1-alpha", + "version": "0.1.0", "author": { "name": "dream2023", "email": "1098626505@qq.com" @@ -14,10 +14,13 @@ "build": "father-build && node scripts/replaceDeclaration.js && webpack-cli", "release": "npm run build && npm publish", "lint": "eslint --cache --ext .js,.jsx,.ts,.tsx --fix --format=pretty ./src && npm run lint:prettier", + "lint:all": "yarn eslint --ext .js,.jsx,.ts,.tsx --format=pretty ./src ", "lint:prettier": "npm run prettier && git diff && prettier --version && prettier --check \"packages/**/**.{js,jsx,tsx,ts,less,md,json}\" --end-of-line auto", "prettier": "prettier --write \"**/**.{js,jsx,tsx,ts,less,md,json}\"", "test": "umi-test --watch", "test:coverage": "umi-test --coverage", + "spell-check:all": "cspell \"**/*.{txt,ts,tsx,js,json,md}\"", + "ci": "yarn tsc && yarn lint:all && yarn spell-check:all && umi-test --all", "tsc": "tsc --noEmit", "update:deps": "yarn upgrade-interactive --latest" }, @@ -51,12 +54,13 @@ "dist" ], "gitHooks": { - "pre-commit": "npm run tsc && lint-staged && npm run umi-test", + "pre-commit": "npm run tsc && yarn umi-test --onlyChanged && lint-staged", "commit-msg": "node scripts/verifyCommit.js" }, "lint-staged": { "*.{js,jsx,less,md,json}": [ - "prettier --write" + "prettier --write", + "cspell" ], "*.ts?(x)": [ "prettier --parser=typescript --write" @@ -84,6 +88,8 @@ "map-obj": "^4.2.1", "react-router-dom": "^5.2.0", "react-schema-render": "^0.0.5", + "react-use": "^17.2.4", + "rfdc": "^1.3.0", "tiny-warning": "^1.0.3" }, "browserslist": [ @@ -93,7 +99,7 @@ "ie >= 11" ], "devDependencies": { - "@ant-design/pro-form": "^1.22.1", + "@ant-design/pro-form": "^1.28.0", "@testing-library/jest-dom": "^5.11.9", "@testing-library/react": "^11.2.5", "@testing-library/react-hooks": "^5.1.0", @@ -107,6 +113,7 @@ "axios": "^0.21.1", "babel-plugin-import": "^1.13.3", "babel-plugin-module-resolver": "^4.1.0", + "cspell": "^5.6.0", "css-loader": "^5.2.4", "dumi": "^1.0.13", "father-build": "^1.19.4", diff --git a/src/form-item/src/components/Color.tsx b/src/form-item/src/components/Color.tsx index b7b8fec..b116d4e 100644 --- a/src/form-item/src/components/Color.tsx +++ b/src/form-item/src/components/Color.tsx @@ -1,17 +1,11 @@ import { ProFormColorPicker } from '@ant-design/pro-form'; -import type { ProFormItemProps } from '@ant-design/pro-form/lib/interface'; -import type { InputNumberProps } from 'antd/lib/input-number'; +import type { ProFormColorPickerProps } from '@ant-design/pro-form/lib/components/ColorPicker'; import type { CreateSuperFormItemProps } from '../createSuperFormItem'; import { createSuperFormItem } from '../createSuperFormItem'; -type ProFormColorProps = ProFormItemProps & { - min?: InputNumberProps['min']; - max?: InputNumberProps['max']; -}; - -export type SuperColorProps = CreateSuperFormItemProps; -export const SuperColor = createSuperFormItem(ProFormColorPicker); +export type SuperColorProps = CreateSuperFormItemProps; +export const SuperColor = createSuperFormItem(ProFormColorPicker); SuperColor.displayName = 'SuperColor'; export default SuperColor; diff --git a/src/form-item/src/components/Number.tsx b/src/form-item/src/components/Number.tsx index f18b768..8547d81 100644 --- a/src/form-item/src/components/Number.tsx +++ b/src/form-item/src/components/Number.tsx @@ -1,15 +1,9 @@ import { ProFormDigit } from '@ant-design/pro-form'; -import type { ProFormItemProps } from '@ant-design/pro-form/lib/interface'; -import type { InputNumberProps } from 'antd/lib/input-number'; +import type { ProFormDigitProps } from '@ant-design/pro-form/lib/components/Digit'; import type { CreateSuperFormItemProps } from '../createSuperFormItem'; import { createSuperFormItem } from '../createSuperFormItem'; -type ProFormDigitProps = ProFormItemProps & { - min?: InputNumberProps['min']; - max?: InputNumberProps['max']; -}; - export type SuperNumberProps = CreateSuperFormItemProps; export const SuperNumber = createSuperFormItem(ProFormDigit); SuperNumber.displayName = 'SuperNumber'; diff --git a/src/form-item/src/components/Text.tsx b/src/form-item/src/components/Text.tsx index b67cfdf..cb1f9f5 100644 --- a/src/form-item/src/components/Text.tsx +++ b/src/form-item/src/components/Text.tsx @@ -29,5 +29,5 @@ SuperUrl.defaultProps = { }; export { SuperInput, SuperEmail, SuperUrl }; -export type { SuperTextProps as SuperInputProps, SuperTextProps as SuperEmailPorps, SuperTextProps as SuperUrlProps }; +export type { SuperTextProps as SuperInputProps, SuperTextProps as SuperEmailProps, SuperTextProps as SuperUrlProps }; export default SuperInput; diff --git a/src/form-item/src/hoc/withDependency.tsx b/src/form-item/src/hoc/withDependency.tsx index 384e270..f6528ce 100644 --- a/src/form-item/src/hoc/withDependency.tsx +++ b/src/form-item/src/hoc/withDependency.tsx @@ -35,12 +35,12 @@ export function withDependency

(FormItem const { linkageFields } = props; // 获取联动字段 - const compuntedLinkageFields = useCreation(() => { + const computedLinkageFields = useCreation(() => { return castToArray(linkageFields).map((name) => getName(name)!); }, [linkageFields]); - return compuntedLinkageFields.length ? ( - + return computedLinkageFields.length ? ( + {() => ( // 注入 data 和 form 属性 diff --git a/src/form-item/src/hoc/withOptions.tsx b/src/form-item/src/hoc/withOptions.tsx index cfaf134..01fd7d2 100644 --- a/src/form-item/src/hoc/withOptions.tsx +++ b/src/form-item/src/hoc/withOptions.tsx @@ -3,8 +3,8 @@ import type { FormInstance } from 'antd'; import set from 'lodash.set'; import type { NamePath } from 'rc-field-form/lib/interface'; import type { ComponentType, FC } from 'react'; -import { useLayoutEffect } from 'react'; import React from 'react'; +import { useDeepCompareEffect } from 'react-use'; import type { OptionsProp, OptionsType } from '@/shared'; import { useOptions } from '@/shared'; @@ -38,15 +38,21 @@ export function withOptions

(Component: ComponentType

, const ComponentWithOptions: FC> = (props) => { const { options, hidden, name, form, optionsProp, data, clearValueAfterOptionsChange, ...resetOptions } = props; // 获取到 options - const { options: computedOptions, loading } = useOptions({ options, hidden, optionsProp, data }); + const { options: computedOptions, loading, requestCount } = useOptions({ + name, + options, + hidden, + optionsProp, + data, + }); // 当 options 改变后是否清空表单项值 - useLayoutEffect(() => { - if (name && form && clearValueAfterOptionsChange) { + useDeepCompareEffect(() => { + if (name && form && clearValueAfterOptionsChange && requestCount.current > 1) { const obj = set({}, name, undefined); form.setFieldsValue(obj); } - }, [form, name, computedOptions, clearValueAfterOptionsChange]); + }, [computedOptions]); // 判断是否有 loading 属性 const computedLoadingObj = useCreation(() => { diff --git a/src/shared/src/hooks/useOptions/types.ts b/src/shared/src/hooks/useOptions/types.ts index a2d51f4..21b2da8 100644 --- a/src/shared/src/hooks/useOptions/types.ts +++ b/src/shared/src/hooks/useOptions/types.ts @@ -1,4 +1,5 @@ import type { SelectProps } from 'antd'; +import type { NamePath } from 'rc-field-form/lib/interface'; import type { Key } from 'react'; import type { ApiType } from '../useAxios'; @@ -20,6 +21,7 @@ export interface WithOptions { export interface IUseOptions extends WithOptions { data?: Record; hidden?: boolean; + name?: NamePath; } export type CreateWidthOptionsComponent = Omit & WithOptions; diff --git a/src/shared/src/hooks/useOptions/useOptions.ts b/src/shared/src/hooks/useOptions/useOptions.ts index 0b9fd30..7a78ef2 100644 --- a/src/shared/src/hooks/useOptions/useOptions.ts +++ b/src/shared/src/hooks/useOptions/useOptions.ts @@ -1,5 +1,8 @@ import { useCreation } from 'ahooks'; -import { useEffect, useRef, useState } from 'react'; +import set from 'lodash.set'; +import { useRef } from 'react'; +import { useDeepCompareEffect } from 'react-use'; +import rfdc from 'rfdc'; import warning from 'tiny-warning'; import { __DOCS_URL__ } from '../../constants'; @@ -9,24 +12,27 @@ import { useAxios } from '../useAxios'; import type { IUseOptions, OptionList } from './types'; import { getOptions } from './util'; +const clone = rfdc(); + export const useOptions = ({ + name, options, optionsProp, data, hidden, -}: IUseOptions): { options: OptionList; loading: boolean } => { - const [list, setList] = useState([]); - +}: IUseOptions): { + options: OptionList; + loading: boolean; + requestCount: React.MutableRefObject; +} => { // api 的情况 const api: ApiType | undefined = useCreation(() => (isArray(options) ? '' : options), [options]); - const { loading, refresh, run } = useAxios({ + const { loading, data: res, refresh, run } = useAxios({ api, contextData: data, manual: true, - onSuccess: (res) => { - if (isArray(res)) { - setList(getOptions(res, optionsProp)); - } else { + onSuccess: (successRes) => { + if (!isArray(successRes)) { warning( false, `[super-antd]: ${JSON.stringify( @@ -39,25 +45,28 @@ export const useOptions = ({ }, }); - const hasRequested = useRef(false); - useEffect(() => { + const otherData = useCreation(() => { + if (!name) return data; + // eslint-disable-next-line @typescript-eslint/ban-types + return set(clone(data as object), name, undefined); + }, [data]); + + const requestCount = useRef(0); + useDeepCompareEffect(() => { if (api && !loading && !hidden) { - if (!hasRequested.current) { + if (requestCount.current === 0) { run(); - hasRequested.current = true; } else { refresh(); } + requestCount.current += 1; } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [api, data, hidden]); + }, [otherData]); - // 数组的情况 - useEffect(() => { - if (isArray(options)) { - // 数组 - setList(getOptions(options, optionsProp)); - } - }, [options, optionsProp]); - return { options: list, loading }; + if (isArray(options)) { + requestCount.current += 1; + return { options: getOptions(options, optionsProp), loading: false, requestCount }; + } + + return { options: getOptions(res, optionsProp), loading, requestCount }; }; diff --git a/src/shared/src/hooks/useOptions/util.ts b/src/shared/src/hooks/useOptions/util.ts index 2bb30f1..45a35e0 100644 --- a/src/shared/src/hooks/useOptions/util.ts +++ b/src/shared/src/hooks/useOptions/util.ts @@ -1,7 +1,7 @@ // 将字符串转为对象 import type { Key } from 'react'; -import { isPlainObject } from '../../utils/is'; +import { isArray, isPlainObject } from '../../utils/is'; import type { OptionItemType, OptionObj, OptionsProp } from './types'; // '男' => { 'label': '男', 'value': '男' } @@ -25,6 +25,7 @@ function changeProp(option: Record, optionsProp: OptionsProp = {}): Op // 获取 options export const getOptions = (options: OptionItemType[] = [], optionsProp?: OptionsProp): OptionObj[] => { + if (!isArray(options)) return []; return options.map((option: OptionItemType) => { const objOption = strToOption(option); return changeProp(objOption, optionsProp); diff --git a/style-guide.md b/style-guide.md index 653575c..26c8eb9 100644 --- a/style-guide.md +++ b/style-guide.md @@ -60,19 +60,19 @@ export function resolve(hostname: string, options: ResolveOptions = {}): IPAddre ```ts // 错误示例:多于3个参数 (#1),多个可选参数 (#2)。 -export function renameSync(oldname: string, newname: string, replaceExisting?: boolean, followLinks?: boolean) {} +export function renameSync(oldName: string, newName: string, replaceExisting?: boolean, followLinks?: boolean) {} // 正确示例 interface RenameOptions { replaceExisting?: boolean; followLinks?: boolean; } -export function renameSync(oldname: string, newname: string, options: RenameOptions = {}) {} +export function renameSync(oldName: string, newName: string, options: RenameOptions = {}) {} ``` ```ts // 错误示例:参数过多 (#1) -export function pwrite(fd: number, buffer: TypedArray, offset: number, length: number, position: number) {} +export function write(fd: number, buffer: TypedArray, offset: number, length: number, position: number) {} // 正确示例: export interface PWrite { @@ -82,7 +82,7 @@ export interface PWrite { length: number; position: number; } -export function pwrite(options: PWrite) {} +export function write(options: PWrite) {} ``` ## 不同组件之间使用别名引入 diff --git a/tests/form-item/components/all.test.tsx b/tests/form-item/components/all.test.tsx index 42e9bd1..8dd7ab9 100644 --- a/tests/form-item/components/all.test.tsx +++ b/tests/form-item/components/all.test.tsx @@ -39,7 +39,6 @@ import { SuperYear, } from 'super-antd'; - describe('all form-item components', () => { const waitTime = (time: number = 100) => { return new Promise((resolve) => { @@ -200,15 +199,15 @@ describe('all form-item components', () => { console.error = originError; }); test('show all', () => { - const warpper = render(); - expect(warpper.container).toMatchSnapshot(); - userEvent.click(warpper.getByRole('button', { name: /autoPlaceholder/ })); - expect(warpper.container).toMatchSnapshot(); - userEvent.click(warpper.getByRole('button', { name: /hideLabel/ })); - expect(warpper.container).toMatchSnapshot(); - userEvent.click(warpper.getByRole('button', { name: /disabled/ })); - expect(warpper.container).toMatchSnapshot(); - userEvent.click(warpper.getByRole('button', { name: /readonly/ })); - expect(warpper.container).toMatchSnapshot(); + const wrapper = render(); + expect(wrapper.container).toMatchSnapshot(); + userEvent.click(wrapper.getByRole('button', { name: /autoPlaceholder/ })); + expect(wrapper.container).toMatchSnapshot(); + userEvent.click(wrapper.getByRole('button', { name: /hideLabel/ })); + expect(wrapper.container).toMatchSnapshot(); + userEvent.click(wrapper.getByRole('button', { name: /disabled/ })); + expect(wrapper.container).toMatchSnapshot(); + userEvent.click(wrapper.getByRole('button', { name: /readonly/ })); + expect(wrapper.container).toMatchSnapshot(); }); }); diff --git a/tests/form-item/createSuperFormItem.test.tsx b/tests/form-item/createSuperFormItem.test.tsx index 1a457bc..9af0a51 100644 --- a/tests/form-item/createSuperFormItem.test.tsx +++ b/tests/form-item/createSuperFormItem.test.tsx @@ -4,7 +4,6 @@ import type { FC } from 'react'; import { SuperForm, createSuperFormItem, createSuperFormItemWithOptions } from 'super-antd'; - describe('createSuperFormItem', () => { const BaseDemo: FC = (props) => { return

{JSON.stringify(props)}
; @@ -22,9 +21,7 @@ describe('createSuperFormItem', () => { ); }; test('createSuperFormItem', () => { - const warpper = render(); - expect(warpper.container).toMatchSnapshot(); + const wrapper = render(); + expect(wrapper.container).toMatchSnapshot(); }); -}) - - +}); diff --git a/tests/form-item/hoc/withDependency.test.tsx b/tests/form-item/hoc/withDependency.test.tsx index cdf5f21..f90e69b 100644 --- a/tests/form-item/hoc/withDependency.test.tsx +++ b/tests/form-item/hoc/withDependency.test.tsx @@ -1,14 +1,20 @@ import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { useWhyDidYouUpdate } from 'ahooks'; import React, { FC, useContext } from 'react'; -import { InjectedDependencyProps, SuperForm, SuperInput, WithDependencyProps, withDependency, SuperFormContext } from 'super-antd'; +import { + InjectedDependencyProps, + SuperForm, + SuperFormContext, + SuperInput, + WithDependencyProps, + withDependency, +} from 'super-antd'; describe('withDependency', () => { const Demo: FC = () => { - const formContext = useContext(SuperFormContext) - const { form } = formContext + const formContext = useContext(SuperFormContext); + const { form } = formContext; return
{JSON.stringify(form?.getFieldsValue())}
; }; diff --git a/tests/form-item/hoc/withOptions.test.tsx b/tests/form-item/hoc/withOptions.test.tsx index 2ccfd30..91f7425 100644 --- a/tests/form-item/hoc/withOptions.test.tsx +++ b/tests/form-item/hoc/withOptions.test.tsx @@ -2,13 +2,14 @@ import { ProFormDependency } from '@ant-design/pro-form'; import { render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import axios from 'axios'; -import React, { FC } from 'react'; +import React, { FC, useState } from 'react'; import { OptionsType, SuperForm, SuperInput, SuperProvider, + SuperSelect, WithOptionsConfigType, WithOptionsProps, withOptions, @@ -98,13 +99,22 @@ describe('withOptions', () => { }); test('更改 options 后,删除值', async () => { - const res = render(); - userEvent.type(screen.getByLabelText('a'), '1'); - expect(screen.getByLabelText('a')).toHaveValue('1'); - res.rerender(); - + const App = () => { + const [options, setOptions] = useState(['a', 'b']); + return ( + + + + + ); + }; + const res = render(); + expect(res.container.querySelector('.ant-select-selection-item')).toHaveTextContent('a'); + userEvent.click(screen.getByTestId('btn')); await waitFor(() => { - expect(screen.getByLabelText('a')).toHaveValue(''); + expect(res.container.querySelector('.ant-select-selection-item')).toBeNull(); }); }); }); diff --git a/tests/form/Form.test.tsx b/tests/form/Form.test.tsx index f7ad676..9928da7 100644 --- a/tests/form/Form.test.tsx +++ b/tests/form/Form.test.tsx @@ -100,7 +100,7 @@ describe('SuperForm 表单', () => { test('仅显示自定义按钮 btns', async () => { const fn = jest.fn(); - const warpper = render( + const wrapper = render( { , ); - expect(warpper.container.querySelectorAll('.ant-btn').length).toBe(1); + expect(wrapper.container.querySelectorAll('.ant-btn').length).toBe(1); expect(screen.getByText(/custom/i)).not.toBeNull(); await waitFor(() => { expect(fn).toBeCalledWith({ name: 'foo' }, expect.any(Object)); diff --git a/tests/provider/provider.test.tsx b/tests/provider/provider.test.tsx index 536cf4b..642e2fc 100644 --- a/tests/provider/provider.test.tsx +++ b/tests/provider/provider.test.tsx @@ -7,12 +7,12 @@ import { SuperAntdContext, SuperProvider } from 'super-antd'; describe('SuperProvider', () => { test('children 可以正常显示', () => { - const warpper = render( + const wrapper = render(
hello world
, ); - expect(warpper.getByTestId('content')).toBeInTheDocument(); + expect(wrapper.getByTestId('content')).toBeInTheDocument(); }); test('过滤器 filters', () => { @@ -29,11 +29,11 @@ describe('SuperProvider', () => { return
{axios ? 'have' : 'empty'}
; }; - const warpper = render( + const wrapper = render( , ); - expect(warpper.getByTestId('axios')).toHaveTextContent('have'); + expect(wrapper.getByTestId('axios')).toHaveTextContent('have'); }); }); diff --git a/tests/render/schemaApiParser.test.tsx b/tests/render/schemaApiParser.test.tsx index f58d217..7f5e9e9 100644 --- a/tests/render/schemaApiParser.test.tsx +++ b/tests/render/schemaApiParser.test.tsx @@ -8,24 +8,24 @@ describe('schemaApiParser', () => { describe('SchemaApiToComponent', () => { test('正常请求,应先 loading,后显示组件', async () => { const api = () => ({ component: 'div', 'data-testid': 'data', children: 'hello world' }); - const warpper = render( + const wrapper = render( , ); - expect(warpper.container.querySelector('.ant-skeleton')).not.toBeNull(); + expect(wrapper.container.querySelector('.ant-skeleton')).not.toBeNull(); await waitFor(() => { - expect(warpper.queryByTestId('data')).toBeInTheDocument(); + expect(wrapper.queryByTestId('data')).toBeInTheDocument(); }); }); test('无数据时,应返回为空', () => { - const warpper = render( + const wrapper = render( , ); - expect(warpper.baseElement.innerHTML).toEqual('
'); + expect(wrapper.baseElement.innerHTML).toEqual('
'); }); test('当请求结果类型错误时,应警告', async () => { const warn = jest.fn(); @@ -33,14 +33,14 @@ describe('schemaApiParser', () => { console.warn = warn; const api = () => '123'; - const warpper = render( + const wrapper = render( , ); await waitFor(() => { - expect(warpper.container.querySelector('.ant-skeleton')).toBeNull(); + expect(wrapper.container.querySelector('.ant-skeleton')).toBeNull(); }); expect(warn).toBeCalled(); diff --git a/tests/shared/hooks/useAxios/useAxios.test.tsx b/tests/shared/hooks/useAxios/useAxios.test.tsx index 5998420..5b34e33 100644 --- a/tests/shared/hooks/useAxios/useAxios.test.tsx +++ b/tests/shared/hooks/useAxios/useAxios.test.tsx @@ -5,7 +5,6 @@ import React, { FC } from 'react'; import { AxiosHooksOptions, SuperProvider, useAxios } from 'super-antd'; - describe('useAxios', () => { const Demo: FC = (props) => { const { loading, data } = useAxios(props); @@ -24,25 +23,25 @@ describe('useAxios', () => { }); test('当 api 不存在时,应该 loading 应为 false', () => { - const warpper = render( + const wrapper = render( , ); - expect(warpper.queryByTestId('loading')).not.toBeInTheDocument(); - expect(warpper.getByTestId('empty')).toBeInTheDocument(); + expect(wrapper.queryByTestId('loading')).not.toBeInTheDocument(); + expect(wrapper.getByTestId('empty')).toBeInTheDocument(); }); test('正常请求', async () => { const api = () => ({ a: 'a' }); - const warpper = render( + const wrapper = render( , ); - expect(warpper.getByTestId('loading')).toBeInTheDocument(); + expect(wrapper.getByTestId('loading')).toBeInTheDocument(); await waitFor(() => { - expect(warpper.queryByTestId('data')).toHaveTextContent(JSON.stringify({ a: 'a' })); + expect(wrapper.queryByTestId('data')).toHaveTextContent(JSON.stringify({ a: 'a' })); }); }); }); diff --git a/tests/shared/hooks/useOptions/useOptions.test.tsx b/tests/shared/hooks/useOptions/useOptions.test.tsx index e135817..dbd2cad 100644 --- a/tests/shared/hooks/useOptions/useOptions.test.tsx +++ b/tests/shared/hooks/useOptions/useOptions.test.tsx @@ -142,7 +142,7 @@ describe('useOptions', () => { return ( - @@ -156,7 +156,7 @@ describe('useOptions', () => { expect(screen.getByTestId('loading').textContent).toBe('false'); }); - fireEvent.click(screen.getByTestId('setdata')); + fireEvent.click(screen.getByTestId('setData')); await waitFor(() => { expect(screen.getByTestId('loading').textContent).toBe('true'); }); diff --git a/tests/shared/utils/dataMapping.test.ts b/tests/shared/utils/dataMapping.test.ts index 0ffebec..61fdb63 100644 --- a/tests/shared/utils/dataMapping.test.ts +++ b/tests/shared/utils/dataMapping.test.ts @@ -1,6 +1,6 @@ import { getSchemaData } from 'super-antd'; test('getSchemaData', () => { - expect(getSchemaData({ schema: (data) => data.name, data: { name: 'zhang' } })).toBe('zhang'); - expect(getSchemaData({ schema: '{{data.name}}', data: { name: 'zhang' } })).toBe('zhang'); + expect(getSchemaData({ schema: (data) => data.name, data: { name: 'foo' } })).toBe('foo'); + expect(getSchemaData({ schema: '{{data.name}}', data: { name: 'foo' } })).toBe('foo'); }); diff --git a/yarn.lock b/yarn.lock index 3b18efe..9ef6256 100644 --- a/yarn.lock +++ b/yarn.lock @@ -33,56 +33,58 @@ classnames "^2.2.6" rc-util "^5.9.4" -"@ant-design/pro-field@1.15.5": - version "1.15.5" - resolved "https://registry.nlark.com/@ant-design/pro-field/download/@ant-design/pro-field-1.15.5.tgz#b2361fc560295ee20e106aaa027d1deff252a84c" - integrity sha1-sjYfxWApXuIOEGqqAn0d7/JSqEw= +"@ant-design/pro-field@1.18.3": + version "1.18.3" + resolved "https://registry.nlark.com/@ant-design/pro-field/download/@ant-design/pro-field-1.18.3.tgz#dea6461e38975cb53fda35cb73ccf8a50c414212" + integrity sha1-3qZGHjiXXLU/2jXLc8z4pQxBQhI= dependencies: "@ant-design/icons" "^4.2.1" - "@ant-design/pro-provider" "1.4.12" - "@ant-design/pro-utils" "1.16.4" + "@ant-design/pro-provider" "1.4.13" + "@ant-design/pro-utils" "1.19.0" classnames "^2.2.6" lodash.tonumber "^4.0.3" moment "^2.27.0" omit.js "^2.0.2" rc-util "^5.4.0" react-color "2.19.3" - swr "^0.3.6" + swr "^0.5.6" -"@ant-design/pro-form@^1.22.1": - version "1.22.1" - resolved "https://registry.nlark.com/@ant-design/pro-form/download/@ant-design/pro-form-1.22.1.tgz?cache=0&sync_timestamp=1619701664410&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40ant-design%2Fpro-form%2Fdownload%2F%40ant-design%2Fpro-form-1.22.1.tgz#8a4a734ebfae90737f0d1f1a768184d3bc6a0c7e" - integrity sha1-ikpzTr+ukHN/DR8adoGE07xqDH4= +"@ant-design/pro-form@^1.28.0": + version "1.28.0" + resolved "https://registry.nlark.com/@ant-design/pro-form/download/@ant-design/pro-form-1.28.0.tgz#79e33da584d17b280fa4dfbc4eb59c7b276ab296" + integrity sha1-eeM9pYTReygPpN+8TrWceydqspY= dependencies: "@ant-design/icons" "^4.2.1" - "@ant-design/pro-field" "1.15.5" - "@ant-design/pro-provider" "1.4.12" - "@ant-design/pro-utils" "1.16.4" + "@ant-design/pro-field" "1.18.3" + "@ant-design/pro-provider" "1.4.13" + "@ant-design/pro-utils" "1.19.0" "@umijs/use-params" "^1.0.2" classnames "^2.2.6" + lodash.merge "^4.6.2" omit.js "^2.0.2" rc-resize-observer "^0.2.3" rc-util "^5.0.6" use-media-antd-query "^1.0.6" -"@ant-design/pro-provider@1.4.12": - version "1.4.12" - resolved "https://registry.nlark.com/@ant-design/pro-provider/download/@ant-design/pro-provider-1.4.12.tgz#392aab9253ee805a33c9b3eb3d078bc5bcabfb7d" - integrity sha1-OSqrklPugFozybPrPQeLxbyr+30= +"@ant-design/pro-provider@1.4.13": + version "1.4.13" + resolved "https://registry.nlark.com/@ant-design/pro-provider/download/@ant-design/pro-provider-1.4.13.tgz#b9a4e8ec85a8207a1eb458bb902a42be0c230dd2" + integrity sha1-uaTo7IWoIHoetFi7kCpCvgwjDdI= dependencies: rc-util "^5.0.1" -"@ant-design/pro-utils@1.16.4": - version "1.16.4" - resolved "https://registry.nlark.com/@ant-design/pro-utils/download/@ant-design/pro-utils-1.16.4.tgz#e18b960a5672828592a99cbc968de1ae6e5e9b13" - integrity sha1-4YuWClZygoWSqZy8lo3hrm5emxM= +"@ant-design/pro-utils@1.19.0": + version "1.19.0" + resolved "https://registry.nlark.com/@ant-design/pro-utils/download/@ant-design/pro-utils-1.19.0.tgz#05d611b49d6c57a64c5c1fdc43ee247f2297ffbb" + integrity sha1-BdYRtJ1sV6ZMXB/cQ+4kfyKX/7s= dependencies: "@ant-design/icons" "^4.3.0" - "@ant-design/pro-provider" "1.4.12" + "@ant-design/pro-provider" "1.4.13" classnames "^2.2.6" fast-deep-equal "^3.1.3" moment "^2.27.0" rc-util "^5.0.6" + swr "^0.5.6" "@ant-design/react-slick@~0.28.1": version "0.28.2" @@ -1815,6 +1817,221 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@cspell/cspell-bundled-dicts@^5.6.0": + version "5.6.0" + resolved "https://registry.nlark.com/@cspell/cspell-bundled-dicts/download/@cspell/cspell-bundled-dicts-5.6.0.tgz#998410852abad3253dfe19a3786c34ad7a5ad618" + integrity sha1-mYQQhSq60yU9/hmjeGw0rXpa1hg= + dependencies: + "@cspell/dict-ada" "^1.1.2" + "@cspell/dict-aws" "^1.0.14" + "@cspell/dict-bash" "^1.0.13" + "@cspell/dict-companies" "^1.0.38" + "@cspell/dict-cpp" "^1.1.39" + "@cspell/dict-cryptocurrencies" "^1.0.10" + "@cspell/dict-csharp" "^1.0.11" + "@cspell/dict-css" "^1.0.11" + "@cspell/dict-django" "^1.0.26" + "@cspell/dict-dotnet" "^1.0.25" + "@cspell/dict-elixir" "^1.0.24" + "@cspell/dict-en-gb" "^1.1.30" + "@cspell/dict-en_us" "^1.2.43" + "@cspell/dict-filetypes" "^1.1.5" + "@cspell/dict-fonts" "^1.0.14" + "@cspell/dict-fullstack" "^1.0.38" + "@cspell/dict-golang" "^1.1.24" + "@cspell/dict-haskell" "^1.0.13" + "@cspell/dict-html" "^1.1.7" + "@cspell/dict-html-symbol-entities" "^1.0.23" + "@cspell/dict-java" "^1.0.22" + "@cspell/dict-latex" "^1.0.25" + "@cspell/dict-lorem-ipsum" "^1.0.22" + "@cspell/dict-lua" "^1.0.16" + "@cspell/dict-node" "^1.0.12" + "@cspell/dict-npm" "^1.0.13" + "@cspell/dict-php" "^1.0.24" + "@cspell/dict-powershell" "^1.0.16" + "@cspell/dict-python" "^1.0.35" + "@cspell/dict-ruby" "^1.0.14" + "@cspell/dict-rust" "^1.0.22" + "@cspell/dict-scala" "^1.0.21" + "@cspell/dict-software-terms" "^1.0.33" + "@cspell/dict-typescript" "^1.0.19" + +"@cspell/cspell-types@^5.6.0": + version "5.6.0" + resolved "https://registry.nlark.com/@cspell/cspell-types/download/@cspell/cspell-types-5.6.0.tgz#e7c368545bcfb3313d586dc5c7a4db017016f0e8" + integrity sha1-58NoVFvPszE9WG3Fx6TbAXAW8Og= + +"@cspell/dict-ada@^1.1.2": + version "1.1.2" + resolved "https://registry.nlark.com/@cspell/dict-ada/download/@cspell/dict-ada-1.1.2.tgz#89556226c1d5f856ce1f7afa85543b04fa477092" + integrity sha1-iVViJsHV+FbOH3r6hVQ7BPpHcJI= + +"@cspell/dict-aws@^1.0.14": + version "1.0.14" + resolved "https://registry.npm.taobao.org/@cspell/dict-aws/download/@cspell/dict-aws-1.0.14.tgz#beddede1053ce3622400e36c65da9fd2954e939d" + integrity sha1-vt3t4QU842IkAONsZdqf0pVOk50= + +"@cspell/dict-bash@^1.0.13": + version "1.0.14" + resolved "https://registry.nlark.com/@cspell/dict-bash/download/@cspell/dict-bash-1.0.14.tgz#b519aca2843ea206b034381aabcf37b18b4930b2" + integrity sha1-tRmsooQ+ogawNDgaq883sYtJMLI= + +"@cspell/dict-companies@^1.0.38": + version "1.0.38" + resolved "https://registry.nlark.com/@cspell/dict-companies/download/@cspell/dict-companies-1.0.38.tgz#f915ae1e83de7554875350c19e53e91e948679f2" + integrity sha1-+RWuHoPedVSHU1DBnlPpHpSGefI= + +"@cspell/dict-cpp@^1.1.39": + version "1.1.39" + resolved "https://registry.nlark.com/@cspell/dict-cpp/download/@cspell/dict-cpp-1.1.39.tgz#7e119e2c009f9200127733cbca3435180c405c70" + integrity sha1-fhGeLACfkgASdzPLyjQ1GAxAXHA= + +"@cspell/dict-cryptocurrencies@^1.0.10": + version "1.0.10" + resolved "https://registry.npm.taobao.org/@cspell/dict-cryptocurrencies/download/@cspell/dict-cryptocurrencies-1.0.10.tgz#04426fdfee8752818b375686d34a154b2fb40c7d" + integrity sha1-BEJv3+6HUoGLN1aG00oVSy+0DH0= + +"@cspell/dict-csharp@^1.0.11": + version "1.0.11" + resolved "https://registry.npm.taobao.org/@cspell/dict-csharp/download/@cspell/dict-csharp-1.0.11.tgz#cacdf477a31ca8326c2c91bee0b42b9f6b3c4a7c" + integrity sha1-ys30d6McqDJsLJG+4LQrn2s8Snw= + +"@cspell/dict-css@^1.0.11": + version "1.0.11" + resolved "https://registry.npm.taobao.org/@cspell/dict-css/download/@cspell/dict-css-1.0.11.tgz#09119e9035137ba98c26c62402237faf3be9ac95" + integrity sha1-CRGekDUTe6mMJsYkAiN/rzvprJU= + +"@cspell/dict-django@^1.0.26": + version "1.0.26" + resolved "https://registry.npm.taobao.org/@cspell/dict-django/download/@cspell/dict-django-1.0.26.tgz#b97ce0112fbe8c3c3ada0387c68971b5e27483ab" + integrity sha1-uXzgES++jDw62gOHxolxteJ0g6s= + +"@cspell/dict-dotnet@^1.0.25": + version "1.0.26" + resolved "https://registry.nlark.com/@cspell/dict-dotnet/download/@cspell/dict-dotnet-1.0.26.tgz#73d53f58685c2ebf750992081fc462002416103e" + integrity sha1-c9U/WGhcLr91CZIIH8RiACQWED4= + +"@cspell/dict-elixir@^1.0.24": + version "1.0.24" + resolved "https://registry.npm.taobao.org/@cspell/dict-elixir/download/@cspell/dict-elixir-1.0.24.tgz#fc5c15b9f66b8aa5e25c98f54103c796fec70aba" + integrity sha1-/FwVufZriqXiXJj1QQPHlv7HCro= + +"@cspell/dict-en-gb@^1.1.30": + version "1.1.30" + resolved "https://registry.nlark.com/@cspell/dict-en-gb/download/@cspell/dict-en-gb-1.1.30.tgz#eee3d16b0176f5a44667f966f83097c3d6a7d654" + integrity sha1-7uPRawF29aRGZ/lm+DCXw9an1lQ= + +"@cspell/dict-en_us@^1.2.43": + version "1.2.43" + resolved "https://registry.nlark.com/@cspell/dict-en_us/download/@cspell/dict-en_us-1.2.43.tgz#dae5a5cd1a47408a5d3a13c2f215793ecde5f400" + integrity sha1-2uWlzRpHQIpdOhPC8hV5Ps3l9AA= + +"@cspell/dict-filetypes@^1.1.5": + version "1.1.6" + resolved "https://registry.nlark.com/@cspell/dict-filetypes/download/@cspell/dict-filetypes-1.1.6.tgz#184e911a32a3518759f4152c67e9faaa0a0376c0" + integrity sha1-GE6RGjKjUYdZ9BUsZ+n6qgoDdsA= + +"@cspell/dict-fonts@^1.0.14": + version "1.0.14" + resolved "https://registry.npm.taobao.org/@cspell/dict-fonts/download/@cspell/dict-fonts-1.0.14.tgz#7b18129910d30bd23cd9187d0c0009dfc3fef4ba" + integrity sha1-exgSmRDTC9I82Rh9DAAJ38P+9Lo= + +"@cspell/dict-fullstack@^1.0.38": + version "1.0.38" + resolved "https://registry.nlark.com/@cspell/dict-fullstack/download/@cspell/dict-fullstack-1.0.38.tgz#a26d9db5fdc51e8743f57e51b0fa44a1d4791cf6" + integrity sha1-om2dtf3FHodD9X5RsPpEodR5HPY= + +"@cspell/dict-golang@^1.1.24": + version "1.1.24" + resolved "https://registry.npm.taobao.org/@cspell/dict-golang/download/@cspell/dict-golang-1.1.24.tgz#3830812aec816eca46a6d793fcc7710c09d4f5b9" + integrity sha1-ODCBKuyBbspGpteT/MdxDAnU9bk= + +"@cspell/dict-haskell@^1.0.13": + version "1.0.13" + resolved "https://registry.npm.taobao.org/@cspell/dict-haskell/download/@cspell/dict-haskell-1.0.13.tgz#bd159ef474ef427757dd4bc6a66cda977946c927" + integrity sha1-vRWe9HTvQndX3UvGpmzal3lGySc= + +"@cspell/dict-html-symbol-entities@^1.0.23": + version "1.0.23" + resolved "https://registry.npm.taobao.org/@cspell/dict-html-symbol-entities/download/@cspell/dict-html-symbol-entities-1.0.23.tgz#0efbdbc7712c9fbe545e14acac637226ac948f2d" + integrity sha1-Dvvbx3Esn75UXhSsrGNyJqyUjy0= + +"@cspell/dict-html@^1.1.7": + version "1.1.7" + resolved "https://registry.nlark.com/@cspell/dict-html/download/@cspell/dict-html-1.1.7.tgz#723d2c0ef37401d59478685add875d2fa2ae2bad" + integrity sha1-cj0sDvN0AdWUeGha3YddL6KuK60= + +"@cspell/dict-java@^1.0.22": + version "1.0.22" + resolved "https://registry.npm.taobao.org/@cspell/dict-java/download/@cspell/dict-java-1.0.22.tgz#30e660803922755c314fb61e9c8cd58a1f4bd47e" + integrity sha1-MOZggDkidVwxT7YenIzVih9L1H4= + +"@cspell/dict-latex@^1.0.25": + version "1.0.25" + resolved "https://registry.npm.taobao.org/@cspell/dict-latex/download/@cspell/dict-latex-1.0.25.tgz#6ecf5b8b8fdf46cb8a0f070052dd687e25089e59" + integrity sha1-bs9bi4/fRsuKDwcAUt1ofiUInlk= + +"@cspell/dict-lorem-ipsum@^1.0.22": + version "1.0.22" + resolved "https://registry.npm.taobao.org/@cspell/dict-lorem-ipsum/download/@cspell/dict-lorem-ipsum-1.0.22.tgz#a89f53dadda7d5bfdb978ab61f19d74d2fb69eab" + integrity sha1-qJ9T2t2n1b/bl4q2HxnXTS+2nqs= + +"@cspell/dict-lua@^1.0.16": + version "1.0.16" + resolved "https://registry.npm.taobao.org/@cspell/dict-lua/download/@cspell/dict-lua-1.0.16.tgz#c0ca43628f8927fc10731fd27cd9ee0af651bf6a" + integrity sha1-wMpDYo+JJ/wQcx/SfNnuCvZRv2o= + +"@cspell/dict-node@^1.0.12": + version "1.0.12" + resolved "https://registry.nlark.com/@cspell/dict-node/download/@cspell/dict-node-1.0.12.tgz#a7236be30340ff8fe365f62c8d13121fdbe7f51c" + integrity sha1-pyNr4wNA/4/jZfYsjRMSH9vn9Rw= + +"@cspell/dict-npm@^1.0.13": + version "1.0.14" + resolved "https://registry.nlark.com/@cspell/dict-npm/download/@cspell/dict-npm-1.0.14.tgz#047043a1d44a3dfa56f33cb8070c05867050f84a" + integrity sha1-BHBDodRKPfpW8zy4BwwFhnBQ+Eo= + +"@cspell/dict-php@^1.0.24": + version "1.0.24" + resolved "https://registry.nlark.com/@cspell/dict-php/download/@cspell/dict-php-1.0.24.tgz#40c15a4c5e1e2deba28841e2b498595b13f0ff88" + integrity sha1-QMFaTF4eLeuiiEHitJhZWxPw/4g= + +"@cspell/dict-powershell@^1.0.16": + version "1.0.16" + resolved "https://registry.nlark.com/@cspell/dict-powershell/download/@cspell/dict-powershell-1.0.16.tgz#06a2966b2dca7a0d97938ff90fcfc74354cfb7ba" + integrity sha1-BqKWay3Keg2Xk4/5D8/HQ1TPt7o= + +"@cspell/dict-python@^1.0.35": + version "1.0.35" + resolved "https://registry.nlark.com/@cspell/dict-python/download/@cspell/dict-python-1.0.35.tgz#0f9880626a1422cdd2be39b18086ae0cd59b4c3f" + integrity sha1-D5iAYmoUIs3SvjmxgIauDNWbTD8= + +"@cspell/dict-ruby@^1.0.14": + version "1.0.14" + resolved "https://registry.nlark.com/@cspell/dict-ruby/download/@cspell/dict-ruby-1.0.14.tgz#6ecbda6e0a01e4692abd4a14b64ff8f61d86e161" + integrity sha1-bsvabgoB5GkqvUoUtk/49h2G4WE= + +"@cspell/dict-rust@^1.0.22": + version "1.0.22" + resolved "https://registry.npm.taobao.org/@cspell/dict-rust/download/@cspell/dict-rust-1.0.22.tgz#4558e528c1e1aa2b0f1677d5918fa822106013e5" + integrity sha1-RVjlKMHhqisPFnfVkY+oIhBgE+U= + +"@cspell/dict-scala@^1.0.21": + version "1.0.21" + resolved "https://registry.npm.taobao.org/@cspell/dict-scala/download/@cspell/dict-scala-1.0.21.tgz#bfda392329061e2352fbcd33d228617742c93831" + integrity sha1-v9o5IykGHiNS+80z0ihhd0LJODE= + +"@cspell/dict-software-terms@^1.0.33": + version "1.0.35" + resolved "https://registry.nlark.com/@cspell/dict-software-terms/download/@cspell/dict-software-terms-1.0.35.tgz#f3d75af834f4e051e41b85fcfc4fd092d993aef1" + integrity sha1-89da+DT04FHkG4X8/E/QktmTrvE= + +"@cspell/dict-typescript@^1.0.19": + version "1.0.19" + resolved "https://registry.nlark.com/@cspell/dict-typescript/download/@cspell/dict-typescript-1.0.19.tgz#44f3ad1c93ffc89ebf98fa6964e1634e6612fc30" + integrity sha1-RPOtHJP/yJ6/mPppZOFjTmYS/DA= + "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.npm.taobao.org/@csstools/convert-colors/download/@csstools/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" @@ -4079,6 +4296,11 @@ resolved "https://registry.nlark.com/@webpack-cli/serve/download/@webpack-cli/serve-1.4.0.tgz#f84fd07bcacefe56ce762925798871092f0f228e" integrity sha1-+E/Qe8rO/lbOdikleYhxCS8PIo4= +"@xobotyi/scrollbar-width@^1.9.5": + version "1.9.5" + resolved "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d" + integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ== + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.nlark.com/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -4525,6 +4747,11 @@ array-slice@^0.2.3: resolved "https://registry.npm.taobao.org/array-slice/download/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= +array-timsort@^1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/array-timsort/download/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926" + integrity sha1-PJ5BmeVPsrnD/ll2OWohYU7w2SY= + array-tree-filter@^2.1.0: version "2.1.0" resolved "https://registry.npm.taobao.org/array-tree-filter/download/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" @@ -5250,7 +5477,7 @@ callsites@^2.0.0: resolved "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= -callsites@^3.0.0: +callsites@^3.0.0, callsites@^3.1.0: version "3.1.0" resolved "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M= @@ -5517,6 +5744,14 @@ clean-stack@^2.0.0: resolved "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1605702401116&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha1-7oRy27Ep5yezHooQpCfe6d/kAIs= +clear-module@^4.1.1: + version "4.1.1" + resolved "https://registry.nlark.com/clear-module/download/clear-module-4.1.1.tgz#bf8ba3b62eb70ee1e0adec90589741425cf32db8" + integrity sha1-v4ujti63DuHgreyQWJdBQlzzLbg= + dependencies: + parent-module "^2.0.0" + resolve-from "^5.0.0" + cli-boxes@^2.2.0: version "2.2.1" resolved "https://registry.npm.taobao.org/cli-boxes/download/cli-boxes-2.2.1.tgz?cache=0&sync_timestamp=1610824817904&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-boxes%2Fdownload%2Fcli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" @@ -5769,11 +6004,22 @@ commander@^6.2.0: resolved "https://registry.npm.taobao.org/commander/download/commander-6.2.1.tgz?cache=0&sync_timestamp=1613374024216&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha1-B5LraC37wyWZm7K4T93duhEKxzw= -commander@^7.0.0: +commander@^7.0.0, commander@^7.2.0: version "7.2.0" resolved "https://registry.npm.taobao.org/commander/download/commander-7.2.0.tgz?cache=0&sync_timestamp=1616363849438&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha1-o2y1fQtQHOEI5NIFWaFQo5HZerc= +comment-json@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/comment-json/download/comment-json-4.1.0.tgz#09d08f0fbc4ad5eeccbac20f469adbb967dcbd2c" + integrity sha1-CdCPD7xK1e7MusIPRprbuWfcvSw= + dependencies: + array-timsort "^1.0.3" + core-util-is "^1.0.2" + esprima "^4.0.1" + has-own-prop "^2.0.0" + repeat-string "^1.6.1" + comment-parser@^1.1.4: version "1.1.5" resolved "https://registry.nlark.com/comment-parser/download/comment-parser-1.1.5.tgz?cache=0&sync_timestamp=1619083146407&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcomment-parser%2Fdownload%2Fcomment-parser-1.1.5.tgz#453627ef8f67dbcec44e79a9bd5baa37f0bce9b2" @@ -5838,6 +6084,18 @@ configstore@^4.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.nlark.com/configstore/download/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha1-02UCG130uYzdGH1qOw4/anzF7ZY= + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + confusing-browser-globals@^1.0.10: version "1.0.10" resolved "https://registry.npm.taobao.org/confusing-browser-globals/download/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" @@ -5909,7 +6167,7 @@ copy-text-to-clipboard@^2.2.0: resolved "https://registry.npm.taobao.org/copy-text-to-clipboard/download/copy-text-to-clipboard-2.2.0.tgz?cache=0&sync_timestamp=1613626493019&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-text-to-clipboard%2Fdownload%2Fcopy-text-to-clipboard-2.2.0.tgz#329dd6daf8c42034c763ace567418401764579ae" integrity sha1-Mp3W2vjEIDTHY6zlZ0GEAXZFea4= -copy-to-clipboard@^3.2.0: +copy-to-clipboard@^3.2.0, copy-to-clipboard@^3.3.1: version "3.3.1" resolved "https://registry.npm.taobao.org/copy-to-clipboard/download/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" integrity sha1-EVqhqZmP+rYZb5MHatbaO5E2Yq4= @@ -5952,7 +6210,7 @@ core-js@^3.6.5: resolved "https://registry.nlark.com/core-js/download/core-js-3.11.2.tgz#af087a43373fc6e72942917c4a4c3de43ed574d6" integrity sha1-rwh6Qzc/xucpQpF8Skw95D7VdNY= -core-util-is@1.0.2, core-util-is@~1.0.0: +core-util-is@1.0.2, core-util-is@^1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= @@ -6065,6 +6323,72 @@ crypto-random-string@^1.0.0: resolved "https://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-1.0.0.tgz?cache=0&sync_timestamp=1613125211342&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha1-7yp6lm7BEIM4g2m6oC6+rSKbMNU= + +cspell-glob@^5.6.0: + version "5.6.0" + resolved "https://registry.nlark.com/cspell-glob/download/cspell-glob-5.6.0.tgz#25c459d23ceae071fb845e4affc3b32d88499150" + integrity sha1-JcRZ0jzq4HH7hF5K/8OzLYhJkVA= + dependencies: + micromatch "^4.0.4" + +cspell-io@^5.6.0: + version "5.6.0" + resolved "https://registry.nlark.com/cspell-io/download/cspell-io-5.6.0.tgz#2e6463e6a83aba8c7707d09a54569d62bb95fd9d" + integrity sha1-LmRj5qg6uox3B9CaVFadYruV/Z0= + dependencies: + iconv-lite "^0.6.3" + iterable-to-stream "^2.0.0" + +cspell-lib@^5.6.0: + version "5.6.0" + resolved "https://registry.nlark.com/cspell-lib/download/cspell-lib-5.6.0.tgz#913e5ccdc12f4d333e8611d70eab5cf8f37294a9" + integrity sha1-kT5czcEvTTM+hhHXDqtc+PNylKk= + dependencies: + "@cspell/cspell-bundled-dicts" "^5.6.0" + "@cspell/cspell-types" "^5.6.0" + clear-module "^4.1.1" + comment-json "^4.1.0" + configstore "^5.0.1" + cosmiconfig "^7.0.0" + cspell-glob "^5.6.0" + cspell-io "^5.6.0" + cspell-trie-lib "^5.6.0" + find-up "^5.0.0" + fs-extra "^10.0.0" + gensequence "^3.1.1" + import-fresh "^3.3.0" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + vscode-uri "^3.0.2" + +cspell-trie-lib@^5.6.0: + version "5.6.0" + resolved "https://registry.nlark.com/cspell-trie-lib/download/cspell-trie-lib-5.6.0.tgz#57199083f715a435d995e02f765d7435d65bc9c9" + integrity sha1-VxmQg/cVpDXZleAvdl10NdZbyck= + dependencies: + fs-extra "^10.0.0" + gensequence "^3.1.1" + +cspell@^5.6.0: + version "5.6.0" + resolved "https://registry.nlark.com/cspell/download/cspell-5.6.0.tgz#5abb52081c9386e846a989b755486a87dbb7019d" + integrity sha1-WrtSCByThuhGqYm3VUhqh9u3AZ0= + dependencies: + "@cspell/cspell-types" "^5.6.0" + chalk "^4.1.1" + commander "^7.2.0" + comment-json "^4.1.0" + cspell-glob "^5.6.0" + cspell-lib "^5.6.0" + fs-extra "^10.0.0" + get-stdin "^8.0.0" + glob "^7.1.7" + strip-ansi "^6.0.0" + css-blank-pseudo@^0.1.4: version "0.1.4" resolved "https://registry.npm.taobao.org/css-blank-pseudo/download/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" @@ -6093,6 +6417,14 @@ css-has-pseudo@^0.10.0: postcss "^7.0.6" postcss-selector-parser "^5.0.0-rc.4" +css-in-js-utils@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99" + integrity sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA== + dependencies: + hyphenate-style-name "^1.0.2" + isobject "^3.0.1" + css-loader@^5.2.4: version "5.2.4" resolved "https://registry.npmjs.org/css-loader/-/css-loader-5.2.4.tgz#e985dcbce339812cb6104ef3670f08f9893a1536" @@ -6339,6 +6671,11 @@ csstype@^3.0.2: resolved "https://registry.npm.taobao.org/csstype/download/csstype-3.0.7.tgz?cache=0&sync_timestamp=1614159885468&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b" integrity sha1-Kl+3XhAV6E3RVpL3HomhRQKQlQs= +csstype@^3.0.6: + version "3.0.8" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" + integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -6899,6 +7236,13 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +error-stack-parser@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== + dependencies: + stackframe "^1.1.1" + es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: version "1.18.0" resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.18.0.tgz?cache=0&sync_timestamp=1614814706790&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" @@ -7614,11 +7958,21 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-shallow-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz#d4dcaf6472440dcefa6f88b98e3251e27f25628b" + integrity sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw== + fastest-levenshtein@^1.0.12: version "1.0.12" resolved "https://registry.npm.taobao.org/fastest-levenshtein/download/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" integrity sha1-mZD306iMxan/0fF0V0UlFwDUl+I= +fastest-stable-stringify@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz#3757a6774f6ec8de40c4e86ec28ea02417214c76" + integrity sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q== + fastparse@^1.1.2: version "1.1.2" resolved "https://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" @@ -7843,6 +8197,14 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.nlark.com/find-up/download/find-up-5.0.0.tgz?cache=0&sync_timestamp=1618846778775&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffind-up%2Fdownload%2Ffind-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw= + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.nlark.com/flat-cache/download/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -7971,6 +8333,15 @@ fs-extra@8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.nlark.com/fs-extra/download/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha1-n/YbZV3eU/s0qC34S7IUzoAuF8E= + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-mkdirp-stream@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/fs-mkdirp-stream/download/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" @@ -8033,6 +8404,11 @@ generic-names@^2.0.1: dependencies: loader-utils "^1.1.0" +gensequence@^3.1.1: + version "3.1.1" + resolved "https://registry.npm.taobao.org/gensequence/download/gensequence-3.1.1.tgz#95c1afc7c0680f92942c17f2d6f83f3d26ea97af" + integrity sha1-lcGvx8BoD5KULBfy1vg/PSbql68= + gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -8168,7 +8544,19 @@ glob@7.1.6, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glo once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^0.1.0: +glob@^7.1.7: + version "7.1.7" + resolved "https://registry.nlark.com/glob/download/glob-7.1.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob%2Fdownload%2Fglob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha1-Oxk+kjPwHULQs/eClLvutBj5SpA= + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^0.1.0, global-dirs@^0.1.1: version "0.1.1" resolved "https://registry.npm.taobao.org/global-dirs/download/global-dirs-0.1.1.tgz?cache=0&sync_timestamp=1610454691111&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal-dirs%2Fdownload%2Fglobal-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= @@ -8388,6 +8776,11 @@ has-flag@^4.0.0: resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s= +has-own-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/has-own-prop/download/has-own-prop-2.0.0.tgz#f0f95d58f65804f5d218db32563bb85b8e0417af" + integrity sha1-8PldWPZYBPXSGNsyVju4W44EF68= + has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz?cache=0&sync_timestamp=1614443484522&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" @@ -8799,6 +9192,11 @@ human-signals@^2.1.0: resolved "https://registry.npm.taobao.org/human-signals/download/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha1-3JH8ukLk0G5Kuu0zs+ejwC9RTqA= +hyphenate-style-name@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" + integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -8806,6 +9204,13 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.nlark.com/iconv-lite/download/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE= + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" @@ -8870,7 +9275,7 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.3.0.tgz?cache=0&sync_timestamp=1608469561643&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha1-NxYsJfy566oublPVtNiM4X2eDCs= @@ -9026,6 +9431,13 @@ inline-style-parser@0.1.1: resolved "https://registry.npm.taobao.org/inline-style-parser/download/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha1-7Io7QpJ06cCh8cT/qUU6f+9yzqE= +inline-style-prefixer@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.0.tgz#f73d5dbf2855733d6b153a4d24b7b47a73e9770b" + integrity sha512-XTHvRUS4ZJNzC1GixJRmOlWSS45fSt+DJoyQC9ytj0WxQfcgofQtDtyKKYxHUqEsWCs+LIWftPF1ie7+i012Fg== + dependencies: + css-in-js-utils "^2.0.0" + internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.nlark.com/internal-slot/download/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" @@ -9611,6 +10023,11 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +iterable-to-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.nlark.com/iterable-to-stream/download/iterable-to-stream-2.0.0.tgz#8cc654ab9b1011dc138e681fee2c0f0bb3cc7e3c" + integrity sha1-jMZUq5sQEdwTjmgf7iwPC7PMfjw= + jake@^10.6.1: version "10.8.2" resolved "https://registry.npm.taobao.org/jake/download/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" @@ -10257,6 +10674,15 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.nlark.com/jsonfile/download/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4= + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -10611,6 +11037,13 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha1-VTIeswn+u8WcSAHZMackUqaB0oY= + dependencies: + p-locate "^5.0.0" + lodash-es@^4.17.15: version "4.17.21" resolved "https://registry.npm.taobao.org/lodash-es/download/lodash-es-4.17.21.tgz?cache=0&sync_timestamp=1613835893273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash-es%2Fdownload%2Flodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" @@ -10666,7 +11099,7 @@ lodash.memoize@4.1.2, lodash.memoize@^4.1.2: resolved "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= -lodash.merge@^4.4.0: +lodash.merge@^4.4.0, lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo= @@ -11482,6 +11915,20 @@ nan@^2.12.1: resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591684976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk= +nano-css@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/nano-css/-/nano-css-5.3.1.tgz#b709383e07ad3be61f64edffacb9d98250b87a1f" + integrity sha512-ENPIyNzANQRyYVvb62ajDd7PAyIgS2LIUnT9ewih4yrXSZX4hKoUwssy8WjUH++kEOA5wUTMgNnV7ko5n34kUA== + dependencies: + css-tree "^1.1.2" + csstype "^3.0.6" + fastest-stable-stringify "^2.0.2" + inline-style-prefixer "^6.0.0" + rtl-css-js "^1.14.0" + sourcemap-codec "^1.4.8" + stacktrace-js "^2.0.2" + stylis "^4.0.6" + nanoid@^3.1.22: version "3.1.22" resolved "https://registry.npm.taobao.org/nanoid/download/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" @@ -11957,7 +12404,7 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.1.0: +p-limit@^3.0.2, p-limit@^3.1.0: version "3.1.0" resolved "https://registry.nlark.com/p-limit/download/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs= @@ -11985,6 +12432,13 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.nlark.com/p-locate/download/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ= + dependencies: + p-limit "^3.0.2" + p-map@^2.1.0: version "2.1.0" resolved "https://registry.nlark.com/p-map/download/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" @@ -12044,6 +12498,13 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parent-module@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/parent-module/download/parent-module-2.0.0.tgz#fa71f88ff1a50c27e15d8ff74e0e3a9523bf8708" + integrity sha1-+nH4j/GlDCfhXY/3Tg46lSO/hwg= + dependencies: + callsites "^3.1.0" + parse-asn1@^5.0.0, parse-asn1@^5.1.5: version "5.1.6" resolved "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" @@ -13978,6 +14439,31 @@ react-schema-render@^0.0.5: resolved "https://registry.npmjs.org/react-schema-render/-/react-schema-render-0.0.5.tgz#6cf4c09e6f0b946033a7829cff8b5f8602d10d95" integrity sha512-zU1zjH28L6YSfYTP758mKOQpsK+t/FLuXt99/vtiIJLEW+yaBc97grV5ub1kRfvuwF2If3I5JdBX+bMhwvTWWg== +react-universal-interface@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b" + integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== + +react-use@^17.2.4: + version "17.2.4" + resolved "https://registry.npmjs.org/react-use/-/react-use-17.2.4.tgz#1f89be3db0a8237c79253db0a15e12bbe3cfeff1" + integrity sha512-vQGpsAM0F5UIlshw5UI8ULGPS4yn5rm7/qvn3T1Gnkrz7YRMEEMh+ynKcmRloOyiIeLvKWiQjMiwRGtdbgs5qQ== + dependencies: + "@types/js-cookie" "^2.2.6" + "@xobotyi/scrollbar-width" "^1.9.5" + copy-to-clipboard "^3.3.1" + fast-deep-equal "^3.1.3" + fast-shallow-equal "^1.0.0" + js-cookie "^2.2.1" + nano-css "^5.3.1" + react-universal-interface "^0.6.2" + resize-observer-polyfill "^1.5.1" + screenfull "^5.1.0" + set-harmonic-interval "^1.0.1" + throttle-debounce "^3.0.1" + ts-easing "^0.2.0" + tslib "^2.1.0" + react@16.x: version "16.14.0" resolved "https://registry.nlark.com/react/download/react-16.14.0.tgz?cache=0&sync_timestamp=1619108526958&other_urls=https%3A%2F%2Fregistry.nlark.com%2Freact%2Fdownload%2Freact-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" @@ -14553,6 +15039,13 @@ resolve-from@^5.0.0: resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha1-w1IlhD3493bfIcV1V7wIfp39/Gk= +resolve-global@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/resolve-global/download/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + integrity sha1-oqed9K8so/Sb93753azTItrRklU= + dependencies: + global-dirs "^0.1.1" + resolve-options@^1.1.0: version "1.1.0" resolved "https://registry.npm.taobao.org/resolve-options/download/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" @@ -14631,6 +15124,11 @@ reusify@^1.0.4: resolved "https://registry.nlark.com/reusify/download/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY= +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + rgb-regex@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" @@ -14730,6 +15228,13 @@ rsvp@^4.8.4: resolved "https://registry.npm.taobao.org/rsvp/download/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha1-yPFVMR0Wf2jyHhaN9x7FsIMRNzQ= +rtl-css-js@^1.14.0: + version "1.14.1" + resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.14.1.tgz#f79781d6a0c510abe73fde60aa3cbe9dfd134a45" + integrity sha512-G9N1s/6329FpJr8k9e1U/Lg0IDWThv99sb7k0IrXHjSnubxe01h52/ajsPRafJK1/2Vqrhz3VKLe3E1dx6jS9Q== + dependencies: + "@babel/runtime" "^7.1.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.npm.taobao.org/run-parallel/download/run-parallel-1.2.0.tgz?cache=0&sync_timestamp=1612925943325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-parallel%2Fdownload%2Frun-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -14773,7 +15278,7 @@ safe-regex@^2.1.1: dependencies: regexp-tree "~0.1.1" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= @@ -14846,7 +15351,7 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -screenfull@^5.0.0: +screenfull@^5.0.0, screenfull@^5.1.0: version "5.1.0" resolved "https://registry.npm.taobao.org/screenfull/download/screenfull-5.1.0.tgz?cache=0&sync_timestamp=1608796425569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fscreenfull%2Fdownload%2Fscreenfull-5.1.0.tgz#85c13c70f4ead4c1b8a935c70010dfdcd2c0e5c8" integrity sha1-hcE8cPTq1MG4qTXHABDf3NLA5cg= @@ -14962,6 +15467,11 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: resolved "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= +set-harmonic-interval@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249" + integrity sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g== + set-value@3.0.2: version "3.0.2" resolved "https://registry.npm.taobao.org/set-value/download/set-value-3.0.2.tgz#74e8ecd023c33d0f77199d415409a40f21e61b90" @@ -15225,6 +15735,11 @@ source-map-url@^0.4.0: resolved "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha1-CvZmBadFpaL5HPG7+KevvCg97FY= +source-map@0.5.6: + version "0.5.6" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= + source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.6, source-map@~0.5.1: version "0.5.7" resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -15240,7 +15755,7 @@ source-map@^0.7.3, source-map@~0.7.2: resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha1-UwL4FpAxc1ImVECS5kmB91F1A4M= -sourcemap-codec@^1.4.4: +sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.npm.taobao.org/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha1-6oBL2UhXQC5pktBaOO8a41qatMQ= @@ -15348,6 +15863,13 @@ stable@^0.1.8: resolved "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88= +stack-generator@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.5.tgz#fb00e5b4ee97de603e0773ea78ce944d81596c36" + integrity sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q== + dependencies: + stackframe "^1.1.1" + stack-utils@^1.0.1: version "1.0.4" resolved "https://registry.npm.taobao.org/stack-utils/download/stack-utils-1.0.4.tgz#4b600971dcfc6aed0cbdf2a8268177cc916c87c8" @@ -15362,6 +15884,28 @@ stack-utils@^2.0.2: dependencies: escape-string-regexp "^2.0.0" +stackframe@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" + integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== + +stacktrace-gps@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.0.4.tgz#7688dc2fc09ffb3a13165ebe0dbcaf41bcf0c69a" + integrity sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg== + dependencies: + source-map "0.5.6" + stackframe "^1.1.1" + +stacktrace-js@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz#4ca93ea9f494752d55709a081d400fdaebee897b" + integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg== + dependencies: + error-stack-parser "^2.0.6" + stack-generator "^2.0.5" + stacktrace-gps "^3.0.4" + state-toggle@^1.0.0: version "1.0.3" resolved "https://registry.npm.taobao.org/state-toggle/download/state-toggle-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstate-toggle%2Fdownload%2Fstate-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" @@ -15828,6 +16372,11 @@ stylelint@^9.10.1: svg-tags "^1.0.0" table "^5.0.0" +stylis@^4.0.6: + version "4.0.10" + resolved "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz#446512d1097197ab3f02fb3c258358c3f7a14240" + integrity sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg== + sugarss@^2.0.0: version "2.0.0" resolved "https://registry.nlark.com/sugarss/download/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d" @@ -15905,10 +16454,10 @@ svgo@^1.0.0, svgo@^1.2.2: unquote "~1.1.1" util.promisify "~1.0.0" -swr@^0.3.6: - version "0.3.11" - resolved "https://registry.nlark.com/swr/download/swr-0.3.11.tgz#f7f50ed26c06afea4249482cec504768a2272664" - integrity sha1-9/UO0mwGr+pCSUgs7FBHaKInJmQ= +swr@^0.5.6: + version "0.5.6" + resolved "https://registry.nlark.com/swr/download/swr-0.5.6.tgz#70bfe9bc9d7ac49a064be4a0f4acf57982e55a31" + integrity sha1-cL/pvJ16xJoGS+Sg9Kz1eYLlWjE= dependencies: dequal "2.0.2" @@ -16048,6 +16597,11 @@ throat@^5.0.0: resolved "https://registry.npm.taobao.org/throat/download/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha1-xRmSNYA6rRh1SmZ9ZZtecs4Wdks= +throttle-debounce@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" + integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== + through2-filter@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/through2-filter/download/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" @@ -16269,6 +16823,11 @@ trough@^1.0.0: resolved "https://registry.npm.taobao.org/trough/download/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha1-uLY5zvrX0LsqvTfUM/+Ck++l9AY= +ts-easing@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz#c8a8a35025105566588d87dbda05dd7fbfa5a4ec" + integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ== + ts-loader@^8.0.7: version "8.0.18" resolved "https://registry.npm.taobao.org/ts-loader/download/ts-loader-8.0.18.tgz#b2385cbe81c34ad9f997915129cdde3ad92a61ea" @@ -16312,6 +16871,11 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1609887539329&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha1-zy04vcNKE0vK8QkcQfZhni9nLQA= +tslib@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" + integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== + tsutils@^3.17.1: version "3.21.0" resolved "https://registry.npm.taobao.org/tsutils/download/tsutils-3.21.0.tgz?cache=0&sync_timestamp=1615138184534&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -16580,6 +17144,13 @@ unique-string@^1.0.0: dependencies: crypto-random-string "^1.0.0" +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/unique-string/download/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha1-OcZFH4GvsnSd4rIz4/fF6IQ72J0= + dependencies: + crypto-random-string "^2.0.0" + unist-builder@^2.0.0: version "2.0.3" resolved "https://registry.npm.taobao.org/unist-builder/download/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" @@ -16688,6 +17259,11 @@ universalify@^0.1.0, universalify@^0.1.2: resolved "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1603179967633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY= +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.nlark.com/universalify/download/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc= + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -16996,6 +17572,11 @@ vm-browserify@^1.0.1: resolved "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha1-eGQcSIuObKkadfUR56OzKobl3aA= +vscode-uri@^3.0.2: + version "3.0.2" + resolved "https://registry.npm.taobao.org/vscode-uri/download/vscode-uri-3.0.2.tgz#ecfd1d066cb8ef4c3a208decdbab9a8c23d055d0" + integrity sha1-7P0dBmy470w6II3s26uajCPQVdA= + w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -17370,6 +17951,11 @@ xdg-basedir@^3.0.0: resolved "https://registry.npm.taobao.org/xdg-basedir/download/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/xdg-basedir/download/xdg-basedir-4.0.0.tgz?cache=0&sync_timestamp=1617611782885&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxdg-basedir%2Fdownload%2Fxdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha1-S8jZmEQDaWIl74OhVzy7y0552xM= + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"