diff --git a/.markdownlint.json b/.markdownlint.json index b7a690510e..9431a3a547 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -9,6 +9,7 @@ "link-fragments": false, "code-block-style": false, "no-bare-urls": false, + "ol-prefix": false, "MD003": { "style": "atx" }, diff --git a/CONTRIBUTING.en-US.md b/CONTRIBUTING.en-US.md index 4b8eaa1a40..8e2c9de096 100644 --- a/CONTRIBUTING.en-US.md +++ b/CONTRIBUTING.en-US.md @@ -11,7 +11,7 @@ a cool [pull request](https://github.com/antvis/S2/pulls), or a DingTalk group d ## Branch Management -Currently, we are developing based on the `master` branch. Please check out a branch based on `master,` and Pull Request if you have any modifications. We will review your `PR` for the first time and give you feedback. +Currently, we are developing based on the `next` branch. Please check out a branch based on `next,` and Pull Request if you have any modifications. We will review your `PR` for the first time and give you feedback. ## Report bugs diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5f81433362..3f5be49551 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,57 +7,64 @@ "我代码水平不行", "会不会受到鄙视?", "会不会不太好?", 放心,不存在的! -我们欢迎任何形式的贡献,不管是一个错别字的修改,还是一次友好的建议,不管是通过 提交 [Issue](https://github.com/antvis/S2/issues/new/choose) -还是一个帅气 [pull request](https://github.com/antvis/S2/pulls), 亦或是一次钉钉群的讨论,参与 [discussions](https://github.com/antvis/S2/discussions) 的讨论,期待在 [贡献者列表](https://github.com/antvis/S2/graphs/contributors) 里看见你的头像。 +我们欢迎任何形式的贡献,不管是一个**错别字的修改**,还是**一次友好的建议**,不管是通过提交 [Issue](https://github.com/antvis/S2/issues/new/choose), 还是一个帅气 [pull request](https://github.com/antvis/S2/pulls), 亦或是一次钉钉群的讨论,参与 [discussions](https://github.com/antvis/S2/discussions) 的讨论,期待在 [贡献者列表](https://github.com/antvis/S2/graphs/contributors) 里看见你的头像。 ## 分支管理 -目前,我们基于 `master` 分支开发,有任何修改,请基于 `master` 拉一个分支,然后通过 `PR` 的形式,我们集成了钉钉机器人,会第一次时间 review 你的 PR, 给与反馈 +目前我们主要基于 `master` 和 `next` 分支开发,有任何修改,请基于 `master` 或 `next` 拉一个分支,然后通过 `PR` 的形式提交,我们集成了钉钉机器人,会第一次时间 `review` 你的 `PR`, 给与反馈。 -## 提交 Bug +- `master`: `1.x` 版本 +- `next`: `2.x` 版本 +- `alpha`: `1.x-alpha.x` 版本 +- `beta`: `1.x-beta.x` 版本 -很抱歉又写了一些 bug, 对于没一个 bug report 我们都会非常感激。为了提高沟通效率,请尽量多一些细节描述。 +## 🐛 提交 Bug 反馈 -### 错误示范 +很抱歉又写了一些 bug, 但求友好的提交一个有意义的 bug 反馈,谁也不希望反馈的 bug 是这样: ![preview](https://gw.alipayobjects.com/zos/antfincdn/j0jUvKwT%26/dd59fe64-7108-4ad7-a544-e19d79eea890.png) -### 推荐步骤 +没有版本信息,没有复现步骤,没有问题描述,没有代码片段,开局一句话,内容全靠猜。 -1. 首先选择 [Bug report] +首先选择 [Bug report](https://github.com/antvis/S2/issues/new?assignees=&labels=&projects=&template=bug-report.md&title=%F0%9F%90%9B) - ![preview](https://gw.alipayobjects.com/zos/antfincdn/oAnzfiVl2/9d83b3e8-b05c-4475-b736-92c45448546a.png) +![preview](https://gw.alipayobjects.com/zos/antfincdn/oAnzfiVl2/9d83b3e8-b05c-4475-b736-92c45448546a.png) -2. 按照 Issue 模板 填写相关的信息,是的,这些步骤稍微一些繁琐,但确实必须的,每个用户使用的场景都不同,系统环境,软件版本,又或是需要一些特定的步骤才能复现 bug, 这个时候说清楚,可以节省大家的时间呢~ +按照 [Issue 模板](https://github.com/antvis/S2/tree/next/.github/ISSUE_TEMPLATE) 填写相关信息。 +是的,这些步骤稍微有一些繁琐,但的确是有效且必须的,每个用户使用的场景都不同,系统环境,软件版本,又或是需要一些特定的步骤才能复现 bug, 这个时候说清楚,可以节省大家的时间! - ![preview](https://gw.alipayobjects.com/zos/antfincdn/05O3p5nE5/d0d4b120-e5aa-4b51-918b-8a573f8fb794.png) +![preview](https://gw.alipayobjects.com/zos/antfincdn/05O3p5nE5/d0d4b120-e5aa-4b51-918b-8a573f8fb794.png) -## Pull Request +## 🙋‍♂️ Pull Request -1. fork 项目 并 clone 下来 (或者使用 GitHub 的 Codespace 功能,非常方便) -2. 安装依赖:`pnpm install` -3. 提交你的改动,commit 请遵守 [AngularJS Git Commit Message Conventions](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit#heading=h.uyo6cb12dt6w) -4. 如果你的改动是修复 bug, 还可以在提交信息后面加上 `close #issue 号`, 这样可以在 pr 合并后,可以自动关闭对应的 issue, 比如 `fix: render bug close #123` -5. 确保加上了对应的单元测试和文档 (如果有 `Snapshot` UI 快照 (.snap 文件)更新, 可以运行 `yarn core:test -- -u` 和 `yarn react:test -- -u` 自动更新, 并一起提交上来, 请勿手动编辑) +> 示例 [PR](https://github.com/antvis/S2/pull/1652) (pr 描述参考) + +1. fork 项目 并 clone 下来 (或者使用 GitHub 的 Codespaces 功能,非常方便). +2. 安装依赖:`pnpm install` 或者 `pnpm bootstrap` 然后本地启动项目。 +3. 提交你的改动,commit 请遵守 [AngularJS Git Commit Message Conventions](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit#heading=h.uyo6cb12dt6w). +4. 如果你的改动是修复 bug, 还可以在提交信息后面加上 `close #issue 号`, 这样可以在 pr 合并后,可以自动关闭对应的 issue, 比如 `fix: render bug close #123`. +5. 确保加上了对应的单元测试和文档 (如果有 `Snapshot` UI 快照 (.snap 文件)更新,可以运行 `pnpm core:test -- -u` 和 `pnpm react:test -- -u` 自动更新,并一起提交上来,请勿手动编辑) 6. 所有 Lint 和 Test 检查通过后,并且 review 通过,我们会合并你的 pr. ![preview](https://gw.alipayobjects.com/zos/antfincdn/ssOxFrycD/86339514-5f9a-4101-8690-e47c97cd8af5.png) ## 开发流程 -我们使用 `pnpm@v7` 作为包管理 +我们使用 `pnpm` 作为包管理 ```bash npm i -g pnpm ``` +推荐本地运行 `pnpm react:playground` 来调试 `@antv/s2` 和 `@antv/s2-react` + 1. `pnpm install` 安装依赖 2. `pnpm site:bootstrap` 安装网站相关依赖 3. `pnpm site:start` 启动本地的 `S2` 网站 -4. `pnpm core:start` 可视化的方式调试核心层 `@antv/s2` (基于 jest-electron) -5. `pnpm react:start` 可视化的方式调试组件层 `@antv/s2-react` (基于 jest-electron) -6. `pnpm vue:start` 可视化的方式调试组件层 `@antv/s2-vue` (基于 jest-electron) -7. `pnpm react:playground` 启动本地的组件层 `@antv/s2-react` demo (基于 vite) -8. `pnpm vue:playground` 启动本地的组件层 `@antv/s2-vue` demo (基于 vite) -9. `pnpm build` 构建 `@antv/s2` 和 `@antv/s2-react` 和 `@antv/s2-vue` 三个包, 分别输出 `umd`, `esm` 和 `lib` 目录 +4. `pnpm core:start` 可视化的方式调试核心层 `@antv/s2` (基于 jest-electron) +5. `pnpm react:start` 可视化的方式调试组件层 `@antv/s2-react` (基于 jest-electron) +6. `pnpm vue:start` 可视化的方式调试组件层 `@antv/s2-vue` (基于 jest-electron) +7. `pnpm react:playground` 启动本地的组件层 `@antv/s2-react` demo (基于 vite) +8. `pnpm vue:playground` 启动本地的组件层 `@antv/s2-vue` demo (基于 vite) +9. `pnpm build` 构建 `@antv/s2` 和 `@antv/s2-react` 和 `@antv/s2-vue` 三个包,分别输出 `umd`, `esm` 和 `lib` 目录 10. `pnpm test` 运行单元格测试 diff --git a/README.en-US.md b/README.en-US.md index e2902b21bc..8aea1aef71 100644 --- a/README.en-US.md +++ b/README.en-US.md @@ -12,35 +12,44 @@ A practical visualization library for tabular analysis. npm - Version + latest version - Version + next version ci test status - Coverage + test coverage - release-date + release date

- npm bundle size + npm bundle size - Discussions + GitHub discussions - issues-helper + issues helper - - License: MIT@AntV + + License: MIT@AntV + + contributors + + + issues closed + + + pr welcome +

@@ -68,9 +77,9 @@ demo components and expansion capabilities, it allows developers to use it quick ## 📦 Installation ```bash -$ npm install @antv/s2 --save -# yarn add @antv/s2 --save -# pnpm install @antv/s2 --save +$ npm install @antv/s2@next --save +# yarn add @antv/s2@next +# pnpm add @antv/s2@next ``` ## 🔨 Getting Started @@ -137,6 +146,28 @@ const s2DataConfig = { price: '1', }, ], + meta: [ + { + field: 'price', + name: '价格', + }, + { + field: 'province', + name: '省份', + }, + { + field: 'city', + name: '城市', + }, + { + field: 'type', + name: '类别', + }, + { + field: 'sub_type', + name: '子类别', + }, + ], }; ``` @@ -154,30 +185,42 @@ const s2Options = { ### 3. Component Rendering ```html -
+
``` ```ts import { PivotSheet } from '@antv/s2'; -const container = document.getElementById('container'); +async function bootstrap() { + const container = document.getElementById('container'); + + const s2 = new PivotSheet(container, s2DataConfig, s2Options); -const s2 = new PivotSheet(container, s2DataCfg, s2Options); + await s2.render(); +} -s2.render(); +bootstrap() ``` ### 4. Preview -![result](https://gw.alipayobjects.com/zos/antfincdn/vCukbtVNvl/616f7ef1-e626-4225-99f8-dc8f6ca630dd.png) +![result](https://mdn.alipayobjects.com/huamei_qa8qxu/afts/img/A*aTPcT4aKOq4AAAAAAAAAAAAADmJ7AQ/original) ### 📦 Packages | Package | Latest | Beta | Alpha | Next | Size | Download | | - | - | - | - | - | - | - | -| [@antv/s2](https://github.com/antvis/S2/tree/master/packages/s2-core) | ![latest](https://img.shields.io/npm/v/@antv/s2/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2.svg) | -| [@antv/s2-react](https://github.com/antvis/S2/tree/master/packages/s2-react) | ![latest](https://img.shields.io/npm/v/@antv/s2-react/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-react/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-react/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-react/next.svg)| ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-react@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-react.svg) | -| [@antv/s2-vue](https://github.com/antvis/S2/tree/master/packages/s2-vue) | ![latest](https://img.shields.io/npm/v/@antv/s2-vue/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-vue/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-vue/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-vue/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-vue@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-vue.svg) | +| [@antv/s2](https://github.com/antvis/S2/tree/next/packages/s2-core) | ![latest](https://img.shields.io/npm/v/@antv/s2/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2.svg) | +| [@antv/s2-react](https://github.com/antvis/S2/tree/next/packages/s2-react) | ![latest](https://img.shields.io/npm/v/@antv/s2-react/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-react/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-react/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-react/next.svg)| ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-react@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-react.svg) | +| [@antv/s2-vue](https://github.com/antvis/S2/tree/next/packages/s2-vue) | ![latest](https://img.shields.io/npm/v/@antv/s2-vue/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-vue/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-vue/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-vue/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-vue@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-vue.svg) | + +### 🖥️ Browser Compatibility + +| [Edge](http://godban.github.io/browsers-support-badges/)
Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | +| --- | --- | --- | --- | +| Edge | last 2 versions | last 2 versions | last 2 versions | + +`@antv/s2-react` and `@antv/s2-vue` see [React JavaScript environment requirements](https://zh-hans.reactjs.org/docs/javascript-environment-requirements.html) 和 [Vite browser compatibility](https://cn.vitejs.dev/guide/build.html#browser-compatibility) ## 👤 Author diff --git a/README.md b/README.md index 1210bbc8bf..618677253c 100644 --- a/README.md +++ b/README.md @@ -11,35 +11,44 @@ npm
- Version + latest version - Version + next version ci test status - Coverage + test coverage - release-date + release date

- npm bundle size + npm bundle size - Discussions + GitHub discussions - issues-helper + issues helper - - License: MIT@AntV + + License: MIT@AntV + + contributors + + + issues closed + + + pr welcome +

@@ -64,9 +73,9 @@ S2 是 AntV 在多维交叉分析表格领域的解决方案,完全基于数 ## 📦 安装 ```bash -$ npm install @antv/s2 --save -# yarn add @antv/s2 --save -# pnpm install @antv/s2 --save +$ npm install @antv/s2@next --save +# yarn add @antv/s2@next +# pnpm add @antv/s2@next ``` ## 🔨 使用 @@ -133,6 +142,28 @@ const s2DataConfig = { price: '1', }, ], + meta: [ + { + field: 'price', + name: '价格', + }, + { + field: 'province', + name: '省份', + }, + { + field: 'city', + name: '城市', + }, + { + field: 'type', + name: '类别', + }, + { + field: 'sub_type', + name: '子类别', + }, + ] }; ``` @@ -150,38 +181,48 @@ const s2Options = { ### 3. 渲染 ```html -
+
``` ```ts import { PivotSheet } from '@antv/s2'; -const container = document.getElementById('container'); +async function bootstrap() { + const container = document.getElementById('container'); -const s2 = new PivotSheet(container, s2DataConfig, s2Options); + const s2 = new PivotSheet(container, s2DataConfig, s2Options); -s2.render(); + await s2.render(); +} + +bootstrap() ``` ### 4. 结果 -![result](https://gw.alipayobjects.com/zos/antfincdn/vCukbtVNvl/616f7ef1-e626-4225-99f8-dc8f6ca630dd.png) +![result](https://mdn.alipayobjects.com/huamei_qa8qxu/afts/img/A*aTPcT4aKOq4AAAAAAAAAAAAADmJ7AQ/original) ### 📦 版本 | Package | Latest | Beta | Alpha | Next | Size | Download | | - | - | - | - | - | - | - | -| [@antv/s2](https://github.com/antvis/S2/tree/master/packages/s2-core) | ![latest](https://img.shields.io/npm/v/@antv/s2/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2.svg) | -| [@antv/s2-react](https://github.com/antvis/S2/tree/master/packages/s2-react) | ![latest](https://img.shields.io/npm/v/@antv/s2-react/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-react/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-react/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-react/next.svg)| ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-react@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-react.svg) | -| [@antv/s2-vue](https://github.com/antvis/S2/tree/master/packages/s2-vue) | ![latest](https://img.shields.io/npm/v/@antv/s2-vue/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-vue/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-vue/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-vue/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-vue@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-vue.svg) | +| [@antv/s2](https://github.com/antvis/S2/tree/next/packages/s2-core) | ![latest](https://img.shields.io/npm/v/@antv/s2/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2.svg) | +| [@antv/s2-react](https://github.com/antvis/S2/tree/next/packages/s2-react) | ![latest](https://img.shields.io/npm/v/@antv/s2-react/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-react/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-react/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-react/next.svg)| ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-react@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-react.svg) | +| [@antv/s2-vue](https://github.com/antvis/S2/tree/next/packages/s2-vue) | ![latest](https://img.shields.io/npm/v/@antv/s2-vue/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-vue/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-vue/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-vue/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-vue@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-vue.svg) | -## 👤 作者 +### 🖥️ 兼容环境 -[**@AntV**](https://github.com/orgs/antvis/people) +| [Edge](http://godban.github.io/browsers-support-badges/)
Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | +| --- | --- | --- | --- | +| Edge | last 2 versions | last 2 versions | last 2 versions | -## 🤝 参与贡献 +`@antv/s2-react` 和 `@antv/s2-vue` 见官方 [React JavaScript 环境要求](https://zh-hans.reactjs.org/docs/javascript-environment-requirements.html) 和 [Vite 浏览器兼容性](https://cn.vitejs.dev/guide/build.html#browser-compatibility) + +## 🙋‍♂️ 问题反馈 -> S2 使用 pnpm 作为包管理器 +有任何问题请严格按照模版 [提交 Issue](https://github.com/antvis/S2/issues/new/choose), 在这之前强烈建议阅读 [《⚠️ 提 Issue 前必读》](https://github.com/antvis/S2/issues/1904) + +## ⌨️ 本地开发 ```bash git clone git@github.com:antvis/S2.git @@ -213,22 +254,32 @@ pnpm lint pnpm site:start ``` -## 👁️ 洞察 +## 🤝 参与贡献 + +请查看 [贡献指南](https://s2.antv.antgroup.com/manual/contribution) + +## 👁️ 项目洞察 ![Alt](https://repobeats.axiom.co/api/embed/ebb7eecb994dc0e3980044aefe43eb81302e3632.svg "Repobeats analytics image") ## 📧 联系我们 +群聊仅供交流,不提供任何答疑,有任何问题请 [提交 Issue](https://github.com/antvis/S2/issues/new/choose). +

DingTalk

-## 👬 Contributors +## 👬 贡献者们 ![https://github.com/antvis/s2/graphs/contributors](https://contrib.rocks/image?repo=antvis/s2) +## 👤 作者 + +[**@AntV**](https://github.com/orgs/antvis/people) + ## 📄 License MIT@[AntV](https://github.com/antvis) diff --git a/package.json b/package.json index 0b20ab3a44..044adcadf4 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ "build": "pnpm -r --filter './packages/*' --stream build", "build:esm": "pnpm -r --filter './packages/*' --stream build:esm", "build:umd": "pnpm -r --filter './packages/*' --stream build:umd", - "bundle:size": "pnpm -r --filter './packages/*' --stream bundle:size", + "build:size-limit": "pnpm -r --filter './packages/*' --stream build:size-limit", + "build:size-limit-json": "pnpm -r --filter './packages/*' --stream build:size-limit-json", "release": "pnpm -r --filter !@antv/s2-shared --filter !@antv/s2-site --workspace-concurrency=1 exec npx --no-install semantic-release", "release:preview": "pnpm release --dry-run --no-ci", "release:bump-version": "node ./scripts/bump-version.js", @@ -60,7 +61,8 @@ "site:start": "pnpm --filter @antv/s2-site start", "site:build": "NODE_OPTIONS='--max-old-space-size=4096' pnpm --filter @antv/s2-site build", "site:preview": "pnpm --filter @antv/s2-site preview", - "site:deploy": "pnpm --filter @antv/s2-site deploy" + "site:deploy": "pnpm --filter @antv/s2-site deploy", + "share:test": "pnpm --filter @antv/s2-shared test" }, "commitlint": { "extends": [ @@ -158,6 +160,7 @@ "semantic-release": "^19.0.5", "semantic-release-monorepo": "^7.0.5", "semver": "^7.5.4", + "size-limit": "^11.0.0", "stylelint": "^15.11.0", "stylelint-config-prettier": "^9.0.5", "stylelint-config-standard": "^34.0.0", @@ -165,8 +168,7 @@ "typescript": "^5.2.2", "vite": "^4.5.0", "vite-plugin-imp": "^2.4.0", - "vue-jest": "^5.0.0-alpha.10", - "size-limit": "^11.0.0" + "vue-jest": "^5.0.0-alpha.10" }, "license": "MIT", "repository": { @@ -175,5 +177,10 @@ }, "tnpm": { "mode": "pnpm" + }, + "dependencies": { + "@size-limit/esbuild": "^11.0.2", + "@size-limit/esbuild-why": "^11.0.2", + "@size-limit/file": "^11.0.2" } } diff --git a/packages/s2-core/CHANGELOG.md b/packages/s2-core/CHANGELOG.md index d2bec1e76c..453f4842c6 100644 --- a/packages/s2-core/CHANGELOG.md +++ b/packages/s2-core/CHANGELOG.md @@ -510,7 +510,7 @@ * 🐛 明细表大数据量下滚动条无法滚动到顶部 ([#1529](https://github.com/antvis/S2/issues/1529)) ([2791be9](https://github.com/antvis/S2/commit/2791be9769b3082bdfe8ae9a8ae0831ca821251a)), closes [#1528](https://github.com/antvis/S2/issues/1528) * **drill-down:** values 配置为空时未显示下钻 icon ([#1535](https://github.com/antvis/S2/issues/1535)) ([8a1d27c](https://github.com/antvis/S2/commit/8a1d27c1a517e7a04d1037ef95b57450adc7df2c)) -* **interaction:** 修复按下快捷选中按钮之后通过触摸板切换页面,快捷键状态没有 reset 的问题 ([#1496](https://github.com/antvis/S2/issues/1496)) ([704e8e0](https://github.com/antvis/S2/commit/704e8e0f4e8cbbeb2b1e0e1dacbd2c3dd13b9dbc)) +* **interaction:** 修复按下快捷选中按钮之后通过触控板切换页面,快捷键状态没有 reset 的问题 ([#1496](https://github.com/antvis/S2/issues/1496)) ([704e8e0](https://github.com/antvis/S2/commit/704e8e0f4e8cbbeb2b1e0e1dacbd2c3dd13b9dbc)) * **interaction:** 修复链接跳转会触发单选和 Tooltip 显示的问题 ([#1498](https://github.com/antvis/S2/issues/1498)) ([ebcb0c2](https://github.com/antvis/S2/commit/ebcb0c2c663da89c457a2149f6bc19fbde2ab8c9)) * **theme:** 修复调整序号列后色板丢失 close [#1538](https://github.com/antvis/S2/issues/1538) ([#1543](https://github.com/antvis/S2/issues/1543)) ([6678848](https://github.com/antvis/S2/commit/6678848094c5c707a5586b33117bfd0b968fc302)) * 优化 mini 图坐标计算逻辑 ([#1534](https://github.com/antvis/S2/issues/1534)) ([88a61e0](https://github.com/antvis/S2/commit/88a61e08b70750401d86e99dd5a6d320a1390da8)) diff --git a/packages/s2-core/README.en-US.md b/packages/s2-core/README.en-US.md index 599cf62fb4..b1a3490577 100644 --- a/packages/s2-core/README.en-US.md +++ b/packages/s2-core/README.en-US.md @@ -12,35 +12,44 @@ Data-driven multi-dimensional analysis table. npm - Version + latest version - Version + next version ci test status - Coverage + test coverage - release-date + release date

- npm bundle size + npm bundle size - Discussions + GitHub discussions - issues-helper + issues helper - - License: MIT@AntV + + License: MIT@AntV + + contributors + + + issues closed + + + pr welcome +

@@ -68,9 +77,9 @@ demo components and expansion capabilities, it allows developers to use it quick ## 📦 Installation ```bash -$ npm install @antv/s2 +$ pnpm add @antv/s2 # yarn add @antv/s2 -# pnpm add @antv/s2 +# npm install @antv/s2 --save ``` ## 🔨 Getting Started @@ -137,6 +146,28 @@ const s2DataConfig = { price: '1', }, ], + meta: [ + { + field: 'price', + name: '价格', + }, + { + field: 'province', + name: '省份', + }, + { + field: 'city', + name: '城市', + }, + { + field: 'type', + name: '类别', + }, + { + field: 'sub_type', + name: '子类别', + }, + ] }; ``` @@ -154,17 +185,21 @@ const s2Options = { ### 3. Component Rendering ```html -
+
``` ```ts import { PivotSheet } from '@antv/s2'; -const container = document.getElementById('container'); +async function bootstrap() { + const container = document.getElementById('container'); -const s2 = new PivotSheet(container, s2DataCfg, s2Options) + const s2 = new PivotSheet(container, s2DataConfig, s2Options); -s2.render() + await s2.render(); +} + +bootstrap() ``` ### 4. Preview @@ -175,9 +210,9 @@ s2.render() | Package | Latest | Beta | Alpha | Next | Size | Download | | - | - | - | - | - | - | - | -| [@antv/s2](https://github.com/antvis/S2/tree/master/packages/s2-core) | ![latest](https://img.shields.io/npm/v/@antv/s2/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2.svg) | -| [@antv/s2-react](https://github.com/antvis/S2/tree/master/packages/s2-react) | ![latest](https://img.shields.io/npm/v/@antv/s2-react/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-react/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-react/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-react/next.svg)| ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-react@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-react.svg) | -| [@antv/s2-vue](https://github.com/antvis/S2/tree/master/packages/s2-vue) | ![latest](https://img.shields.io/npm/v/@antv/s2-vue/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-vue/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-vue/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-vue/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-vue@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-vue.svg) | +| [@antv/s2](https://github.com/antvis/S2/tree/next/packages/s2-core) | ![latest](https://img.shields.io/npm/v/@antv/s2/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2.svg) | +| [@antv/s2-react](https://github.com/antvis/S2/tree/next/packages/s2-react) | ![latest](https://img.shields.io/npm/v/@antv/s2-react/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-react/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-react/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-react/next.svg)| ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-react@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-react.svg) | +| [@antv/s2-vue](https://github.com/antvis/S2/tree/next/packages/s2-vue) | ![latest](https://img.shields.io/npm/v/@antv/s2-vue/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-vue/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-vue/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-vue/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-vue@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-vue.svg) | ## 👤 Author @@ -225,9 +260,6 @@ pnpm site:start DingTalk - - qq -

## 👬 Contributors diff --git a/packages/s2-core/README.md b/packages/s2-core/README.md index c04f9fec8c..6dabd81804 100644 --- a/packages/s2-core/README.md +++ b/packages/s2-core/README.md @@ -4,42 +4,51 @@
-数据驱动的多维分析表格。 +开箱即用的多维可视分析表格。

npm - Version + latest version - Version + next version ci test status - Coverage + test coverage - release-date + release date

- npm bundle size + npm bundle size - Discussions + GitHub discussions - issues-helper + issues helper - - License: MIT@AntV + + License: MIT@AntV + + contributors + + + issues closed + + + pr welcome +

@@ -58,15 +67,15 @@ S2 是 AntV 在多维交叉分析表格领域的解决方案,完全基于数 1. 多维交叉分析: 告别单一分析维度,全面拥抱任意维度的自由组合分析。 2. 高性能:能支持全量百万数据下 `<8s` 渲染,也能通过局部下钻来实现秒级渲染。 3. 高扩展性:支持任意的自定义扩展(包括但不局限于布局,样式,交互,数据 hook 流等)。 -4. 开箱即用:提供不同分析场景下开箱即用的 `React` `Vue3` 版本表组件及配套分析组件,只需要简单的配置即可轻松实现复杂场景的表渲染。 +4. 开箱即用:提供不同分析场景下开箱即用的 `React`, `Vue3` 版本表组件及配套分析组件,只需要简单的配置即可轻松实现复杂场景的表渲染。 5. 可交互:支持丰富的交互形式(单选、圈选、行选、列选、冻结行头、宽高拖拽,自定义交互等) ## 📦 安装 ```bash -$ npm install @antv/s2 +$ pnpm add @antv/s2 # yarn add @antv/s2 -# pnpm add @antv/s2 +# npm install @antv/s2 --save ``` ## 🔨 使用 @@ -133,6 +142,28 @@ const s2DataConfig = { price: '1', }, ], + meta: [ + { + field: 'price', + name: '价格', + }, + { + field: 'province', + name: '省份', + }, + { + field: 'city', + name: '城市', + }, + { + field: 'type', + name: '类别', + }, + { + field: 'sub_type', + name: '子类别', + }, + ] }; ``` @@ -150,38 +181,40 @@ const s2Options = { ### 3. 渲染 ```html -
+
``` ```ts import { PivotSheet } from '@antv/s2'; -const container = document.getElementById('container'); +async function bootstrap() { + const container = document.getElementById('container'); + + const s2 = new PivotSheet(container, s2DataConfig, s2Options); -const s2 = new PivotSheet(container, s2DataConfig, s2Options); + await s2.render(); +} -s2.render(); +bootstrap() ``` ### 4. 结果 ![result](https://gw.alipayobjects.com/zos/antfincdn/vCukbtVNvl/616f7ef1-e626-4225-99f8-dc8f6ca630dd.png) -### 📦 Packages +### 📦 版本 -| Package | Latest | Beta | Alpha | Next | Size | Download | -| ---------------------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | -| [@antv/s2](https://github.com/antvis/S2/tree/master/packages/s2-core) | ![latest](https://img.shields.io/npm/v/@antv/s2/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2.svg) | -| [@antv/s2-react](https://github.com/antvis/S2/tree/master/packages/s2-react) | ![latest](https://img.shields.io/npm/v/@antv/s2-react/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-react/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-react/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-react/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-react@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-react.svg) | -| [@antv/s2-vue](https://github.com/antvis/S2/tree/master/packages/s2-vue) | ![latest](https://img.shields.io/npm/v/@antv/s2-vue/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-vue/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-vue/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-vue/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-vue@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-vue.svg) | +| Package | Latest | Beta | Alpha | Next | Size | Download | +| - | - | - | - | - | - | - | +| [@antv/s2](https://github.com/antvis/S2/tree/next/packages/s2-core) | ![latest](https://img.shields.io/npm/v/@antv/s2/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2.svg) | +| [@antv/s2-react](https://github.com/antvis/S2/tree/next/packages/s2-react) | ![latest](https://img.shields.io/npm/v/@antv/s2-react/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-react/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-react/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-react/next.svg)| ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-react@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-react.svg) | +| [@antv/s2-vue](https://github.com/antvis/S2/tree/next/packages/s2-vue) | ![latest](https://img.shields.io/npm/v/@antv/s2-vue/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-vue/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-vue/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-vue/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-vue@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-vue.svg) | -## 👤 Author +## 问题反馈 -[**@AntV**](https://github.com/orgs/antvis/people) - -## 🤝 参与贡献 +有任何问题请严格按照模版 [提交 Issue](https://github.com/antvis/S2/issues/new/choose), 在这之前强烈建议阅读 [《⚠️ 提 Issue 前必读》](https://github.com/antvis/S2/issues/1904) -> S2 使用 pnpm 作为包管理器 +## ⌨️ 本地开发 ```bash git clone git@github.com:antvis/S2.git @@ -213,18 +246,32 @@ pnpm lint pnpm site:start ``` +## 🤝 参与贡献 + +请查看 [贡献指南](https://s2.antv.antgroup.com/manual/contribution) + +## 👁️ 项目洞察 + +![Alt](https://repobeats.axiom.co/api/embed/ebb7eecb994dc0e3980044aefe43eb81302e3632.svg "Repobeats analytics image") + ## 📧 联系我们 +仅供交流,不提供任何答疑,有任何问题请 [提交 Issue](https://github.com/antvis/S2/issues/new/choose). +

DingTalk

-## 👬 Contributors +## 👬 贡献者们 ![https://github.com/antvis/s2/graphs/contributors](https://contrib.rocks/image?repo=antvis/s2) +## 👤 作者 + +[**@AntV**](https://github.com/orgs/antvis/people) + ## 📄 License MIT@[AntV](https://github.com/antvis) diff --git a/packages/s2-core/__tests__/bugs/issue-1191-spec.ts b/packages/s2-core/__tests__/bugs/issue-1191-spec.ts index 696f9e0ca1..b648bff8b0 100644 --- a/packages/s2-core/__tests__/bugs/issue-1191-spec.ts +++ b/packages/s2-core/__tests__/bugs/issue-1191-spec.ts @@ -25,7 +25,7 @@ const s2options: S2Options = { interaction: { linkFields: ['province'], }, - hdAdapter: false, + hd: false, }; const dataCfg: S2DataConfig = { diff --git a/packages/s2-core/__tests__/bugs/issue-1539-spec.ts b/packages/s2-core/__tests__/bugs/issue-1539-spec.ts index 969fec6aac..fb10718516 100644 --- a/packages/s2-core/__tests__/bugs/issue-1539-spec.ts +++ b/packages/s2-core/__tests__/bugs/issue-1539-spec.ts @@ -31,7 +31,9 @@ describe('Table Left Border Tests', () => { test('should draw left border with series number', async () => { const s2 = new TableSheet(getContainer(), dataCfg, { ...s2Options, - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(); diff --git a/packages/s2-core/__tests__/bugs/issue-1624-spec.ts b/packages/s2-core/__tests__/bugs/issue-1624-spec.ts index 9ce404a029..cc74b2a846 100644 --- a/packages/s2-core/__tests__/bugs/issue-1624-spec.ts +++ b/packages/s2-core/__tests__/bugs/issue-1624-spec.ts @@ -12,7 +12,7 @@ import { PivotSheet } from '@/sheet-type'; const s2Options: S2Options = { width: 800, height: 600, - hdAdapter: false, + hd: false, }; describe('Data Cell Border Tests', () => { diff --git a/packages/s2-core/__tests__/bugs/issue-2199-spec.ts b/packages/s2-core/__tests__/bugs/issue-2199-spec.ts index fa82bb1813..0df3c6c85b 100644 --- a/packages/s2-core/__tests__/bugs/issue-2199-spec.ts +++ b/packages/s2-core/__tests__/bugs/issue-2199-spec.ts @@ -11,7 +11,9 @@ import type { S2Options } from '@/common/interface'; const s2Options: S2Options = { width: 300, height: 480, - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, frozen: { colCount: 1, }, diff --git a/packages/s2-core/__tests__/bugs/issue-2322-spec.ts b/packages/s2-core/__tests__/bugs/issue-2322-spec.ts index 3b5a8874dd..cf8375ce0d 100644 --- a/packages/s2-core/__tests__/bugs/issue-2322-spec.ts +++ b/packages/s2-core/__tests__/bugs/issue-2322-spec.ts @@ -12,7 +12,9 @@ import { TableSheet } from '@/sheet-type'; const s2Options: S2Options = { width: 800, height: 480, - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, frozen: { colCount: 1, }, diff --git a/packages/s2-core/__tests__/bugs/issue-2359-spec.ts b/packages/s2-core/__tests__/bugs/issue-2359-spec.ts index 2d4ad61d5e..ec0d777158 100644 --- a/packages/s2-core/__tests__/bugs/issue-2359-spec.ts +++ b/packages/s2-core/__tests__/bugs/issue-2359-spec.ts @@ -5,12 +5,12 @@ */ import { pick } from 'lodash'; import { createTableSheet } from 'tests/util/helpers'; -import { TableColCell, drawObjectText } from '../../src'; +import { TableColCell, drawCustomContent } from '../../src'; import type { S2CellType, S2Options } from '@/common/interface'; class TestColCell extends TableColCell { drawTextShape() { - drawObjectText(this, { + drawCustomContent(this, { values: [['A', 'B', 'C']], }); } @@ -19,7 +19,9 @@ class TestColCell extends TableColCell { const s2Options: S2Options = { width: 300, height: 480, - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, colCell: (...args) => new TestColCell(...args), }; @@ -47,6 +49,7 @@ describe('Table Sheet Custom Multiple Values Tests', () => { }, }, }); + await s2.render(); const mapTheme = (cell: S2CellType) => { @@ -56,11 +59,9 @@ describe('Table Sheet Custom Multiple Values Tests', () => { }; const colCellTexts = s2.facet.getColCells().map(mapTheme); - const dataCellTexts = s2.facet.getDataCells().map(mapTheme); expect(colCellTexts).toMatchSnapshot(); - expect(dataCellTexts).toMatchSnapshot(); }); }); diff --git a/packages/s2-core/__tests__/bugs/issue-446-spec.ts b/packages/s2-core/__tests__/bugs/issue-446-spec.ts index 5d8f283250..a3c838222b 100644 --- a/packages/s2-core/__tests__/bugs/issue-446-spec.ts +++ b/packages/s2-core/__tests__/bugs/issue-446-spec.ts @@ -1,7 +1,7 @@ /** * @description spec for issue #446 * https://github.com/antvis/S2/issues/446 - * copyData error in table mode + * #asyncGetAllPlainData error in table mode * */ import { getContainer } from '../util/helpers'; @@ -12,11 +12,13 @@ import { asyncGetAllPlainData } from '@/utils'; const s2Options = { width: 800, height: 600, - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }; describe('export', () => { - test('should export correct data with showSeriesNumber', async () => { + test('should export correct data with show seriesNumber', async () => { const s2 = new TableSheet(getContainer(), mockDataConfig, s2Options); await s2.render(); @@ -36,10 +38,12 @@ describe('export', () => { `); }); - test('should export correct data without showSeriesNumber', async () => { + test('should export correct data without show seriesNumber', async () => { const s2 = new TableSheet(getContainer(), mockDataConfig, { ...s2Options, - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, }); await s2.render(); diff --git a/packages/s2-core/__tests__/bugs/issue-565-spec.ts b/packages/s2-core/__tests__/bugs/issue-565-spec.ts index 2705af69a9..3c1f2da1a2 100644 --- a/packages/s2-core/__tests__/bugs/issue-565-spec.ts +++ b/packages/s2-core/__tests__/bugs/issue-565-spec.ts @@ -1,7 +1,7 @@ /** * @description spec for issue #565 * https://github.com/antvis/S2/issues/565 - * copyData error in tree mode + * #asyncGetAllPlainData error in tree mode * */ import * as mockDataConfig from 'tests/data/data-issue-565.json'; diff --git a/packages/s2-core/__tests__/spreadsheet/__snapshots__/corner-spec.ts.snap b/packages/s2-core/__tests__/spreadsheet/__snapshots__/corner-spec.ts.snap index 8bb717bbfc..574008d2be 100644 --- a/packages/s2-core/__tests__/spreadsheet/__snapshots__/corner-spec.ts.snap +++ b/packages/s2-core/__tests__/spreadsheet/__snapshots__/corner-spec.ts.snap @@ -1,6 +1,10 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`PivotSheet Corner Tests should render row corner when columns and values is empty for { hierarchyType: 'grid', cornerNodeCount: 2, showSeriesNumber: false } 1`] = ` +exports[`PivotSheet Corner Tests should render row corner when columns and values is empty for { + hierarchyType: 'grid', + cornerNodeCount: 2, + seriesNumber: { enable: false } +} 1`] = ` Array [ Object { "belongsCell": undefined, @@ -67,7 +71,11 @@ Array [ ] `; -exports[`PivotSheet Corner Tests should render row corner when columns and values is empty for { hierarchyType: 'grid', cornerNodeCount: 3, showSeriesNumber: true } 1`] = ` +exports[`PivotSheet Corner Tests should render row corner when columns and values is empty for { + hierarchyType: 'grid', + cornerNodeCount: 3, + seriesNumber: { enable: true } +} 1`] = ` Array [ Object { "belongsCell": undefined, @@ -165,7 +173,11 @@ Array [ ] `; -exports[`PivotSheet Corner Tests should render row corner when columns and values is empty for { hierarchyType: 'tree', cornerNodeCount: 1, showSeriesNumber: false } 1`] = ` +exports[`PivotSheet Corner Tests should render row corner when columns and values is empty for { + hierarchyType: 'tree', + cornerNodeCount: 1, + seriesNumber: { enable: false } +} 1`] = ` Array [ Object { "belongsCell": undefined, @@ -194,14 +206,18 @@ Array [ "seriesNumberWidth": 0, "spreadsheet": Anything, "value": "province/city/数值", - "width": 145.36, + "width": 146.36, "x": 0, "y": 0, }, ] `; -exports[`PivotSheet Corner Tests should render row corner when columns and values is empty for { hierarchyType: 'tree', cornerNodeCount: 2, showSeriesNumber: true } 1`] = ` +exports[`PivotSheet Corner Tests should render row corner when columns and values is empty for { + hierarchyType: 'tree', + cornerNodeCount: 2, + seriesNumber: { enable: true } +} 1`] = ` Array [ Object { "belongsCell": undefined, @@ -261,14 +277,18 @@ Array [ "seriesNumberWidth": 80, "spreadsheet": Anything, "value": "province/city/数值", - "width": 145.36, + "width": 146.36, "x": 80, "y": 0, }, ] `; -exports[`PivotSheet Corner Tests should render row corner when columns is empty and measure hidden for { hierarchyType: 'grid', cornerNodeCount: 2, showSeriesNumber: false } 1`] = ` +exports[`PivotSheet Corner Tests should render row corner when columns is empty and measure hidden for { + hierarchyType: 'grid', + cornerNodeCount: 2, + seriesNumber: { enable: false } +} 1`] = ` Array [ Object { "belongsCell": undefined, @@ -335,7 +355,11 @@ Array [ ] `; -exports[`PivotSheet Corner Tests should render row corner when columns is empty and measure hidden for { hierarchyType: 'grid', cornerNodeCount: 3, showSeriesNumber: true } 1`] = ` +exports[`PivotSheet Corner Tests should render row corner when columns is empty and measure hidden for { + hierarchyType: 'grid', + cornerNodeCount: 3, + seriesNumber: { enable: true } +} 1`] = ` Array [ Object { "belongsCell": undefined, @@ -433,7 +457,11 @@ Array [ ] `; -exports[`PivotSheet Corner Tests should render row corner when columns is empty and measure hidden for { hierarchyType: 'tree', cornerNodeCount: 1, showSeriesNumber: false } 1`] = ` +exports[`PivotSheet Corner Tests should render row corner when columns is empty and measure hidden for { + hierarchyType: 'tree', + cornerNodeCount: 1, + seriesNumber: { enable: false } +} 1`] = ` Array [ Object { "belongsCell": undefined, @@ -469,7 +497,11 @@ Array [ ] `; -exports[`PivotSheet Corner Tests should render row corner when columns is empty and measure hidden for { hierarchyType: 'tree', cornerNodeCount: 2, showSeriesNumber: true } 1`] = ` +exports[`PivotSheet Corner Tests should render row corner when columns is empty and measure hidden for { + hierarchyType: 'tree', + cornerNodeCount: 2, + seriesNumber: { enable: true } +} 1`] = ` Array [ Object { "belongsCell": undefined, @@ -536,7 +568,11 @@ Array [ ] `; -exports[`PivotSheet Corner Tests should render row corner when measure hidden for { hierarchyType: 'grid', cornerNodeCount: 2, showSeriesNumber: false } 1`] = ` +exports[`PivotSheet Corner Tests should render row corner when measure hidden for { + hierarchyType: 'grid', + cornerNodeCount: 2, + seriesNumber: { enable: false } +} 1`] = ` Array [ Object { "belongsCell": undefined, @@ -603,7 +639,11 @@ Array [ ] `; -exports[`PivotSheet Corner Tests should render row corner when measure hidden for { hierarchyType: 'grid', cornerNodeCount: 3, showSeriesNumber: true } 1`] = ` +exports[`PivotSheet Corner Tests should render row corner when measure hidden for { + hierarchyType: 'grid', + cornerNodeCount: 3, + seriesNumber: { enable: true } +} 1`] = ` Array [ Object { "belongsCell": undefined, @@ -701,7 +741,11 @@ Array [ ] `; -exports[`PivotSheet Corner Tests should render row corner when measure hidden for { hierarchyType: 'tree', cornerNodeCount: 1, showSeriesNumber: false } 1`] = ` +exports[`PivotSheet Corner Tests should render row corner when measure hidden for { + hierarchyType: 'tree', + cornerNodeCount: 1, + seriesNumber: { enable: false } +} 1`] = ` Array [ Object { "belongsCell": undefined, @@ -737,7 +781,11 @@ Array [ ] `; -exports[`PivotSheet Corner Tests should render row corner when measure hidden for { hierarchyType: 'tree', cornerNodeCount: 2, showSeriesNumber: true } 1`] = ` +exports[`PivotSheet Corner Tests should render row corner when measure hidden for { + hierarchyType: 'tree', + cornerNodeCount: 2, + seriesNumber: { enable: true } +} 1`] = ` Array [ Object { "belongsCell": undefined, diff --git a/packages/s2-core/__tests__/spreadsheet/__snapshots__/custom-dataset-spec.ts.snap b/packages/s2-core/__tests__/spreadsheet/__snapshots__/custom-dataset-spec.ts.snap new file mode 100644 index 0000000000..c29660508c --- /dev/null +++ b/packages/s2-core/__tests__/spreadsheet/__snapshots__/custom-dataset-spec.ts.snap @@ -0,0 +1,38 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`SpreadSheet Custom Dataset Tests should render custom data set 1`] = ` +Array [ + Object { + "id": "province", + "value": "test", + }, + Object { + "id": "city", + "value": "test", + }, + Object { + "id": "type", + "value": "test", + }, + Object { + "id": "root[&]test", + "value": "test", + }, + Object { + "id": "root[&]test[&]test", + "value": "test", + }, + Object { + "id": "root[&]test", + "value": "test", + }, + Object { + "id": "root[&]test[&]test", + "value": "test", + }, + Object { + "id": "root[&]test[&]test", + "value": "test", + }, +] +`; diff --git a/packages/s2-core/__tests__/spreadsheet/__snapshots__/multi-line-text-spec.ts.snap b/packages/s2-core/__tests__/spreadsheet/__snapshots__/multi-line-text-spec.ts.snap index f9206280f8..3c0f82550e 100644 --- a/packages/s2-core/__tests__/spreadsheet/__snapshots__/multi-line-text-spec.ts.snap +++ b/packages/s2-core/__tests__/spreadsheet/__snapshots__/multi-line-text-spec.ts.snap @@ -2526,12 +2526,12 @@ Array [ "width": 96, }, Object { - "actualText": "数量数量数😸", + "actualText": "数量数@@@", "actualTextHeight": 15, "actualTextWidth": 73, "height": 30, "multiLineActualTexts": Array [ - "数量数量数😸", + "数量数@@@", ], "originalText": "数量数量数量数量数量数量数量数量数量数量数量", "width": 96, @@ -2548,12 +2548,12 @@ Array [ "width": 96, }, Object { - "actualText": "数量数量数😸", + "actualText": "数量数@@@", "actualTextHeight": 15, "actualTextWidth": 73, "height": 30, "multiLineActualTexts": Array [ - "数量数量数😸", + "数量数@@@", ], "originalText": "数量数量数量数量数量数量数量数量数量数量数量", "width": 96, @@ -2575,12 +2575,12 @@ Array [ "width": 96, }, Object { - "actualText": "浙我是省略号", + "actualText": "浙江省@@@", "actualTextHeight": 16, - "actualTextWidth": 73, + "actualTextWidth": 72, "height": 30, "multiLineActualTexts": Array [ - "浙我是省略号", + "浙江省@@@", ], "originalText": "浙江省浙江省浙江省浙江省浙江省浙江省浙江省浙江省浙江省浙江省", "width": 96, diff --git a/packages/s2-core/__tests__/spreadsheet/__snapshots__/spread-sheet-spec.ts.snap b/packages/s2-core/__tests__/spreadsheet/__snapshots__/spread-sheet-spec.ts.snap new file mode 100644 index 0000000000..919cc5169c --- /dev/null +++ b/packages/s2-core/__tests__/spreadsheet/__snapshots__/spread-sheet-spec.ts.snap @@ -0,0 +1,132 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`SpreadSheet Tests Sheet Config Change Tests should reset config 1`] = ` +Object { + "conditions": Object {}, + "cornerExtraFieldText": "", + "cornerText": "", + "customSVGIcons": Array [], + "debug": false, + "device": "pc", + "frozen": Object { + "colCount": 0, + "rowCount": 0, + "rowHeader": true, + "trailingColCount": 0, + "trailingRowCount": 0, + }, + "hd": true, + "headerActionIcons": Array [], + "height": 480, + "hierarchyType": "grid", + "interaction": Object { + "autoResetSheetStyle": true, + "brushSelection": Object { + "colCell": true, + "dataCell": true, + "rowCell": true, + }, + "copy": Object { + "enable": true, + "withFormat": true, + "withHeader": false, + }, + "eventListenerOptions": false, + "hiddenColumnFields": Array [], + "hoverFocus": Object { + "duration": 800, + }, + "hoverHighlight": true, + "linkFields": Array [], + "multiSelection": true, + "overscrollBehavior": "auto", + "rangeSelection": true, + "resize": Object { + "colCellHorizontal": true, + "colCellVertical": true, + "colResizeType": "current", + "cornerCellHorizontal": true, + "minCellHeight": 20, + "minCellWidth": 20, + "rowCellVertical": true, + "rowResizeType": "current", + }, + "scrollSpeedRatio": Object { + "horizontal": 1, + "vertical": 1, + }, + "scrollbarPosition": "content", + "selectedCellHighlight": false, + "selectedCellsSpotlight": false, + }, + "placeholder": "-", + "seriesNumber": Object { + "enable": false, + }, + "showDefaultHeaderActionIcon": false, + "style": Object { + "colCell": Object { + "height": 30, + "heightByField": null, + "maxLines": 1, + "textOverflow": "ellipsis", + "widthByField": null, + "wordWrap": true, + }, + "cornerCell": Object { + "maxLines": 1, + "textOverflow": "ellipsis", + "wordWrap": true, + }, + "dataCell": Object { + "height": 30, + "maxLines": 1, + "textOverflow": "ellipsis", + "width": 96, + "wordWrap": true, + }, + "layoutWidthType": "adaptive", + "rowCell": Object { + "heightByField": null, + "maxLines": 1, + "showTreeLeafNodeAlignDot": false, + "textOverflow": "ellipsis", + "widthByField": null, + "wordWrap": true, + }, + "seriesNumberCell": Object { + "maxLines": 1, + "textOverflow": "ellipsis", + "wordWrap": true, + }, + }, + "tooltip": Object { + "autoAdjustBoundary": "body", + "enable": false, + "operation": Object { + "hiddenColumns": false, + "menu": Object { + "items": Array [], + }, + "sort": false, + }, + }, + "totals": Object {}, + "width": 600, +} +`; + +exports[`SpreadSheet Tests Sheet Config Change Tests should reset config 2`] = ` +Object { + "data": Array [], + "fields": Object { + "columns": Array [], + "rows": Array [], + "valueInCols": false, + "values": Array [], + }, + "filterParams": Array [], + "meta": Array [], + "sortParams": Array [], +} +`; diff --git a/packages/s2-core/__tests__/spreadsheet/__snapshots__/theme-spec.ts.snap b/packages/s2-core/__tests__/spreadsheet/__snapshots__/theme-spec.ts.snap index 81c158e752..01e1e4b6d0 100644 --- a/packages/s2-core/__tests__/spreadsheet/__snapshots__/theme-spec.ts.snap +++ b/packages/s2-core/__tests__/spreadsheet/__snapshots__/theme-spec.ts.snap @@ -12,12 +12,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#3471F9", @@ -79,24 +76,18 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": "normal", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "text": Object { "fill": "#FFFFFF", "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": "normal", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "cornerCell": Object { @@ -105,12 +96,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#3471F9", @@ -142,12 +130,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "dataCell": Object { @@ -157,12 +142,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#2C60D4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#FFFFFF", @@ -272,12 +254,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#2C60D4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "mergedCell": Object { @@ -287,12 +266,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#2C60D4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#FFFFFF", @@ -402,12 +378,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#2C60D4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "prepareSelectMask": Object { @@ -429,8 +402,6 @@ Object { "backgroundOpacity": 1, }, }, - "minCellHeight": 40, - "minCellWidth": 42, "size": 3, }, "rowCell": Object { @@ -440,12 +411,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#2C60D4", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#F5F8FF", @@ -506,12 +474,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#2C60D4", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "seriesNumberWidth": 80, "seriesText": Object { @@ -520,12 +485,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#2C60D4", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "text": Object { "fill": "#000000", @@ -533,12 +495,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#2C60D4", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "scrollBar": Object { @@ -581,12 +540,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#133aad", @@ -648,24 +604,18 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": "normal", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "text": Object { "fill": "#ffffff", "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": "normal", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "cornerCell": Object { @@ -674,12 +624,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#133aad", @@ -711,12 +658,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "dataCell": Object { @@ -726,12 +670,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#4b91ff", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#191919", @@ -841,12 +782,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#4b91ff", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "mergedCell": Object { @@ -856,12 +794,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#4b91ff", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#191919", @@ -971,12 +906,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#4b91ff", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "prepareSelectMask": Object { @@ -998,8 +930,6 @@ Object { "backgroundOpacity": 1, }, }, - "minCellHeight": 40, - "minCellWidth": 42, "size": 3, }, "rowCell": Object { @@ -1009,12 +939,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#4b91ff", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#151a27", @@ -1075,12 +1002,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#4b91ff", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "seriesNumberWidth": 80, "seriesText": Object { @@ -1089,12 +1013,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#4b91ff", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "text": Object { "fill": "#dcdcdc", @@ -1102,12 +1023,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#4b91ff", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "scrollBar": Object { @@ -1150,12 +1068,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#E0E9FD", @@ -1217,24 +1132,18 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": "normal", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "text": Object { "fill": "#000000", "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": "normal", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "cornerCell": Object { @@ -1243,12 +1152,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#E0E9FD", @@ -1280,12 +1186,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "dataCell": Object { @@ -1295,12 +1198,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#FFFFFF", @@ -1410,12 +1310,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "mergedCell": Object { @@ -1425,12 +1322,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#FFFFFF", @@ -1540,12 +1434,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "prepareSelectMask": Object { @@ -1567,8 +1458,6 @@ Object { "backgroundOpacity": 1, }, }, - "minCellHeight": 40, - "minCellWidth": 42, "size": 3, }, "rowCell": Object { @@ -1578,12 +1467,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#F5F8FE", @@ -1644,12 +1530,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "seriesNumberWidth": 80, "seriesText": Object { @@ -1658,12 +1541,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "text": Object { "fill": "#000000", @@ -1671,12 +1551,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "scrollBar": Object { @@ -1719,12 +1596,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#F0F2F4", @@ -1786,24 +1660,18 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": "normal", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "text": Object { "fill": "#000000", "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": "normal", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "cornerCell": Object { @@ -1812,12 +1680,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#F0F2F4", @@ -1849,12 +1714,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "dataCell": Object { @@ -1864,12 +1726,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#565C64", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#FFFFFF", @@ -1979,12 +1838,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#565C64", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "mergedCell": Object { @@ -1994,12 +1850,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#565C64", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#FFFFFF", @@ -2109,12 +1962,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#565C64", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "prepareSelectMask": Object { @@ -2136,8 +1986,6 @@ Object { "backgroundOpacity": 1, }, }, - "minCellHeight": 40, - "minCellWidth": 42, "size": 3, }, "rowCell": Object { @@ -2147,12 +1995,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#565C64", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#FAFBFB", @@ -2213,12 +2058,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#565C64", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "seriesNumberWidth": 80, "seriesText": Object { @@ -2227,12 +2069,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#565C64", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "text": Object { "fill": "#000000", @@ -2240,12 +2079,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#565C64", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "scrollBar": Object { @@ -2288,12 +2124,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#E0E9FD", @@ -2355,24 +2188,18 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": "normal", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "text": Object { "fill": "#000000", "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": "normal", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "cornerCell": Object { @@ -2381,12 +2208,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#E0E9FD", @@ -2418,12 +2242,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "dataCell": Object { @@ -2433,12 +2254,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#FFFFFF", @@ -2548,12 +2366,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "mergedCell": Object { @@ -2563,12 +2378,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#FFFFFF", @@ -2678,12 +2490,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "prepareSelectMask": Object { @@ -2705,8 +2514,6 @@ Object { "backgroundOpacity": 1, }, }, - "minCellHeight": 40, - "minCellWidth": 42, "size": 3, }, "rowCell": Object { @@ -2716,12 +2523,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#F5F8FE", @@ -2782,12 +2586,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "seriesNumberWidth": 80, "seriesText": Object { @@ -2796,12 +2597,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "text": Object { "fill": "#000000", @@ -2809,12 +2607,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "left", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "scrollBar": Object { @@ -2857,12 +2652,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#E0E9FD", @@ -2924,24 +2716,18 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": "normal", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "text": Object { "fill": "#000000", "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": "normal", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "cornerCell": Object { @@ -2950,12 +2736,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#E0E9FD", @@ -2987,12 +2770,9 @@ Object { "fontFamily": "Roboto, PingFangSC, Microsoft YaHei, Arial, sans-serif", "fontSize": 12, "fontWeight": 700, - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "dataCell": Object { @@ -3002,12 +2782,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#FFFFFF", @@ -3117,12 +2894,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "mergedCell": Object { @@ -3132,12 +2906,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#FFFFFF", @@ -3247,12 +3018,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "right", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "prepareSelectMask": Object { @@ -3274,8 +3042,6 @@ Object { "backgroundOpacity": 1, }, }, - "minCellHeight": 40, - "minCellWidth": 42, "size": 3, }, "rowCell": Object { @@ -3285,12 +3051,9 @@ Object { "fontSize": 12, "fontWeight": 700, "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "cell": Object { "backgroundColor": "#F5F8FE", @@ -3351,12 +3114,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "seriesNumberWidth": 80, "seriesText": Object { @@ -3365,12 +3125,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, "text": Object { "fill": "#000000", @@ -3378,12 +3135,9 @@ Object { "fontSize": 12, "fontWeight": "normal", "linkTextFill": "#326EF4", - "maxLines": 1, "opacity": 1, "textAlign": "center", "textBaseline": "middle", - "textOverflow": "ellipsis", - "wordWrap": true, }, }, "scrollBar": Object { diff --git a/packages/s2-core/__tests__/spreadsheet/corner-spec.ts b/packages/s2-core/__tests__/spreadsheet/corner-spec.ts index 4acec56dde..45dac87339 100644 --- a/packages/s2-core/__tests__/spreadsheet/corner-spec.ts +++ b/packages/s2-core/__tests__/spreadsheet/corner-spec.ts @@ -16,13 +16,37 @@ describe('PivotSheet Corner Tests', () => { const cornerTypes: Array<{ hierarchyType: S2Options['hierarchyType']; - showSeriesNumber: S2Options['showSeriesNumber']; + seriesNumber: S2Options['seriesNumber']; cornerNodeCount: number; }> = [ - { hierarchyType: 'tree', cornerNodeCount: 1, showSeriesNumber: false }, - { hierarchyType: 'grid', cornerNodeCount: 2, showSeriesNumber: false }, - { hierarchyType: 'tree', cornerNodeCount: 2, showSeriesNumber: true }, - { hierarchyType: 'grid', cornerNodeCount: 3, showSeriesNumber: true }, + { + hierarchyType: 'tree', + cornerNodeCount: 1, + seriesNumber: { + enable: false, + }, + }, + { + hierarchyType: 'grid', + cornerNodeCount: 2, + seriesNumber: { + enable: false, + }, + }, + { + hierarchyType: 'tree', + cornerNodeCount: 2, + seriesNumber: { + enable: true, + }, + }, + { + hierarchyType: 'grid', + cornerNodeCount: 3, + seriesNumber: { + enable: true, + }, + }, ]; beforeEach(async () => { @@ -43,7 +67,7 @@ describe('PivotSheet Corner Tests', () => { // https://github.com/antvis/S2/issues/1929 test.each(cornerTypes)( 'should render row corner when columns is empty and measure hidden for %o', - async ({ hierarchyType, cornerNodeCount, showSeriesNumber }) => { + async ({ hierarchyType, cornerNodeCount, seriesNumber }) => { s2.setDataCfg({ ...simpleDataConfig, fields: { @@ -54,7 +78,7 @@ describe('PivotSheet Corner Tests', () => { }); s2.setOptions({ hierarchyType, - showSeriesNumber, + seriesNumber, style: { colCell: { hideValue: true, @@ -87,10 +111,10 @@ describe('PivotSheet Corner Tests', () => { test.each(cornerTypes)( 'should render row corner when measure hidden for %o', - async ({ hierarchyType, cornerNodeCount, showSeriesNumber }) => { + async ({ hierarchyType, cornerNodeCount, seriesNumber }) => { s2.setOptions({ hierarchyType, - showSeriesNumber, + seriesNumber, style: { colCell: { hideValue: true, @@ -134,7 +158,7 @@ describe('PivotSheet Corner Tests', () => { test.each(cornerTypes)( 'should render row corner when columns and values is empty for %o', - async ({ hierarchyType, cornerNodeCount, showSeriesNumber }) => { + async ({ hierarchyType, cornerNodeCount, seriesNumber }) => { s2.setDataCfg({ ...simpleDataConfig, fields: { @@ -145,7 +169,7 @@ describe('PivotSheet Corner Tests', () => { }); s2.setOptions({ hierarchyType, - showSeriesNumber, + seriesNumber, }); await s2.render(); diff --git a/packages/s2-core/__tests__/spreadsheet/custom-dataset-spec.ts b/packages/s2-core/__tests__/spreadsheet/custom-dataset-spec.ts new file mode 100644 index 0000000000..bb243972e8 --- /dev/null +++ b/packages/s2-core/__tests__/spreadsheet/custom-dataset-spec.ts @@ -0,0 +1,27 @@ +import { pick } from 'lodash'; +import { createPivotSheet } from 'tests/util/helpers'; +import { Node, PivotDataSet } from '../../src'; + +describe('SpreadSheet Custom Dataset Tests', () => { + class CustomDataSet extends PivotDataSet { + public getFieldName() { + return 'test'; + } + } + + const mapNodes = (nodes: Node[]) => { + return nodes.map((node) => pick(node, ['id', 'value'])); + }; + + test('should render custom data set', async () => { + const s2 = createPivotSheet({ + dataSet: (spreadsheet) => new CustomDataSet(spreadsheet), + }); + + await s2.render(); + + const headerNodes = mapNodes(s2.facet.getHeaderNodes()); + + expect(headerNodes).toMatchSnapshot(); + }); +}); diff --git a/packages/s2-core/__tests__/spreadsheet/custom-facet-spec.ts b/packages/s2-core/__tests__/spreadsheet/custom-facet-spec.ts new file mode 100644 index 0000000000..9b0775bc2b --- /dev/null +++ b/packages/s2-core/__tests__/spreadsheet/custom-facet-spec.ts @@ -0,0 +1,75 @@ +/* eslint-disable max-classes-per-file */ +import { createPivotSheet, createTableSheet } from 'tests/util/helpers'; +import { PivotFacet, TableFacet, type ViewMeta } from '../../src'; + +describe('SpreadSheet Custom Facet Tests', () => { + test('should render custom pivot facet for custom cell meta', async () => { + const getCellMeta = jest.fn(); + + const s2 = createPivotSheet({ + layoutCellMeta() { + getCellMeta(); + + return {} as ViewMeta; + }, + }); + + await s2.render(); + + expect(s2.facet.getCellMeta(0, 0)).toEqual({}); + expect(getCellMeta).toHaveBeenCalledTimes(5); + }); + + test('should render custom table facet for custom cell meta', async () => { + const getCellMeta = jest.fn(); + + const s2 = createTableSheet({ + layoutCellMeta() { + getCellMeta(); + + return {} as ViewMeta; + }, + }); + + await s2.render(); + + expect(s2.facet.getCellMeta(0, 0)).toEqual({}); + expect(getCellMeta).toHaveBeenCalledTimes(4); + }); + + test('should render custom pivot facet', async () => { + // @ts-ignore + class CustomPivotFacet extends PivotFacet { + calculateColLeafNodesWidth() { + return 200; + } + } + + const s2 = createPivotSheet({ + facet: (spreadsheet) => new CustomPivotFacet(spreadsheet), + }); + + await s2.render(); + + expect(s2.facet.getColLeafNodes().map((node) => node.width)).toEqual([ + 200, 200, + ]); + }); + + test('should render custom table facet', async () => { + // @ts-ignore + class CustomTableFacet extends TableFacet { + calculateColLeafNodesWidth() { + return 200; + } + } + + const s2 = createTableSheet({ + facet: (spreadsheet) => new CustomTableFacet(spreadsheet), + }); + + await s2.render(); + + expect(s2.facet.getColLeafNodes().map((node) => node.width)).toEqual([200]); + }); +}); diff --git a/packages/s2-core/__tests__/spreadsheet/custom-facet.ts b/packages/s2-core/__tests__/spreadsheet/custom-facet.ts deleted file mode 100644 index 312daad105..0000000000 --- a/packages/s2-core/__tests__/spreadsheet/custom-facet.ts +++ /dev/null @@ -1,43 +0,0 @@ -/* eslint-disable max-classes-per-file */ -/* eslint-disable @typescript-eslint/no-unused-vars */ -import { createPivotSheet, createTableSheet } from 'tests/util/helpers'; - -describe('SpreadSheet Custom Facet Tests', () => { - test('should render custom pivot facet for custom cell meta', async () => { - const getCellMeta = jest.fn(); - - const layoutCellMeta = () => { - getCellMeta(); - - return null; - }; - - const s2 = createPivotSheet({ - layoutCellMeta, - }); - - await s2.render(); - - expect(s2.facet.getCellMeta(0, 0)).toBeNull(); - expect(getCellMeta).toHaveBeenCalledTimes(1); - }); - - test('should render custom table facet for custom cell meta', async () => { - const getCellMeta = jest.fn(); - - const layoutCellMeta = () => { - getCellMeta(); - - return null; - }; - - const s2 = createTableSheet({ - layoutCellMeta, - }); - - await s2.render(); - - expect(s2.facet.getCellMeta(0, 0)).toBeNull(); - expect(getCellMeta).toHaveBeenCalledTimes(1); - }); -}); diff --git a/packages/s2-core/__tests__/spreadsheet/custom-table-col-spec.ts b/packages/s2-core/__tests__/spreadsheet/custom-table-col-spec.ts index b637d4ac0a..fc070792ce 100644 --- a/packages/s2-core/__tests__/spreadsheet/custom-table-col-spec.ts +++ b/packages/s2-core/__tests__/spreadsheet/custom-table-col-spec.ts @@ -207,7 +207,9 @@ describe('TableSheet Custom Tests', () => { test('should render default series number text', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); @@ -218,8 +220,10 @@ describe('TableSheet Custom Tests', () => { const seriesNumberText = '牛'; s2.setOptions({ - seriesNumberText, - showSeriesNumber: true, + seriesNumber: { + enable: true, + text: seriesNumberText, + }, }); await s2.render(false); @@ -228,7 +232,9 @@ describe('TableSheet Custom Tests', () => { test('should render correctly column height if enable series number', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); @@ -244,7 +250,9 @@ describe('TableSheet Custom Tests', () => { test('should not sample series node', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); diff --git a/packages/s2-core/__tests__/spreadsheet/interaction-brush-selection-scroll-spec.ts b/packages/s2-core/__tests__/spreadsheet/interaction-brush-selection-scroll-spec.ts index a579f830b5..d89c6f5beb 100644 --- a/packages/s2-core/__tests__/spreadsheet/interaction-brush-selection-scroll-spec.ts +++ b/packages/s2-core/__tests__/spreadsheet/interaction-brush-selection-scroll-spec.ts @@ -52,8 +52,10 @@ const dataCfg: S2DataConfig = { const options: S2Options = { width: 800, height: 600, - hdAdapter: false, - showSeriesNumber: true, + hd: false, + seriesNumber: { + enable: true, + }, placeholder: '', style: { layoutWidthType: LayoutWidthType.Compact, @@ -66,7 +68,9 @@ const options: S2Options = { pageSize: 100, }, interaction: { - enableCopy: true, + copy: { + enable: true, + }, hoverHighlight: false, resize: true, }, diff --git a/packages/s2-core/__tests__/spreadsheet/multi-line-text-spec.ts b/packages/s2-core/__tests__/spreadsheet/multi-line-text-spec.ts index 9f160579af..27b41720bc 100644 --- a/packages/s2-core/__tests__/spreadsheet/multi-line-text-spec.ts +++ b/packages/s2-core/__tests__/spreadsheet/multi-line-text-spec.ts @@ -1,7 +1,11 @@ /* eslint-disable jest/expect-expect */ import { getContainer } from 'tests/util/helpers'; import { PivotSheet, TableSheet, type SpreadSheet } from '../../src'; -import type { DefaultCellTheme, S2CellType, S2Options } from '../../src/common'; +import type { + CellTextWordWrapStyle, + S2CellType, + S2Options, +} from '../../src/common'; import { PivotSheetMultiLineTextDataCfg, TableSheetMultiLineTextDataCfg, @@ -27,25 +31,19 @@ describe('SpreadSheet Multi Line Text Tests', () => { }); }; - const updateTheme = (maxLines: number) => { - const cellTheme: DefaultCellTheme = { - text: { - maxLines, - }, - bolderText: { - maxLines, - }, - measureText: { - maxLines, - }, + const updateStyle = (maxLines: number) => { + const cellStyle: CellTextWordWrapStyle = { + maxLines, }; - s2.setTheme({ - seriesNumberCell: cellTheme, - colCell: cellTheme, - cornerCell: cellTheme, - rowCell: cellTheme, - dataCell: cellTheme, + s2.setOptions({ + style: { + seriesNumberCell: cellStyle, + colCell: cellStyle, + cornerCell: cellStyle, + rowCell: cellStyle, + dataCell: cellStyle, + }, }); }; @@ -102,7 +100,9 @@ describe('SpreadSheet Multi Line Text Tests', () => { const s2Options: S2Options = { width: 300, height: 400, - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }; beforeEach(async () => { @@ -115,7 +115,7 @@ describe('SpreadSheet Multi Line Text Tests', () => { }); afterEach(() => { - // s2.destroy(); + s2.destroy(); }); test('should default render one line text', () => { @@ -126,7 +126,7 @@ describe('SpreadSheet Multi Line Text Tests', () => { }); test('should custom two max text lines', async () => { - updateTheme(2); + updateStyle(2); await s2.render(false); getCells().forEach((cells) => { @@ -136,7 +136,7 @@ describe('SpreadSheet Multi Line Text Tests', () => { }); test('should custom three max text lines', async () => { - updateTheme(3); + updateStyle(3); await s2.render(false); getCells().forEach((cells) => { @@ -147,27 +147,19 @@ describe('SpreadSheet Multi Line Text Tests', () => { }); test('should render custom text overflow text', async () => { - const cellTheme: DefaultCellTheme = { - text: { - textOverflow: '@@@', - maxLines: 1, - }, - bolderText: { - textOverflow: '我是省略号', - maxLines: 1, - }, - measureText: { - textOverflow: '😸', - maxLines: 1, - }, + const cellTheme: CellTextWordWrapStyle = { + textOverflow: '@@@', + maxLines: 1, }; - s2.setTheme({ - seriesNumberCell: cellTheme, - colCell: cellTheme, - cornerCell: cellTheme, - rowCell: cellTheme, - dataCell: cellTheme, + s2.setOptions({ + style: { + seriesNumberCell: cellTheme, + colCell: cellTheme, + cornerCell: cellTheme, + rowCell: cellTheme, + dataCell: cellTheme, + }, }); await s2.render(false); @@ -178,24 +170,18 @@ describe('SpreadSheet Multi Line Text Tests', () => { }); test('should not render word wrap text', async () => { - const cellTheme: DefaultCellTheme = { - text: { - wordWrap: false, - }, - bolderText: { - wordWrap: false, - }, - measureText: { - wordWrap: false, - }, + const cellTheme: CellTextWordWrapStyle = { + wordWrap: false, }; - s2.setTheme({ - seriesNumberCell: cellTheme, - colCell: cellTheme, - cornerCell: cellTheme, - rowCell: cellTheme, - dataCell: cellTheme, + s2.setOptions({ + style: { + seriesNumberCell: cellTheme, + colCell: cellTheme, + cornerCell: cellTheme, + rowCell: cellTheme, + dataCell: cellTheme, + }, }); await s2.render(false); @@ -228,7 +214,7 @@ describe('SpreadSheet Multi Line Text Tests', () => { }, }); - updateTheme(2); + updateStyle(2); await s2.render(false); getCells().forEach((cells) => { @@ -254,7 +240,7 @@ describe('SpreadSheet Multi Line Text Tests', () => { }, }); - updateTheme(2); + updateStyle(2); await s2.render(false); [ @@ -282,7 +268,7 @@ describe('SpreadSheet Multi Line Text Tests', () => { test('should render correctly layout if enable totals for multiple text lines', async () => { setupTotalsOptions(); - updateTheme(3); + updateStyle(3); await s2.render(false); expectHierarchyHeight(165, 112, 53); @@ -311,7 +297,7 @@ describe('SpreadSheet Multi Line Text Tests', () => { }, }); - updateTheme(1); + updateStyle(1); await s2.render(false); getCells().forEach((cells) => { @@ -325,7 +311,9 @@ describe('SpreadSheet Multi Line Text Tests', () => { const s2Options: S2Options = { width: 600, height: 400, - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }; beforeEach(async () => { @@ -349,7 +337,7 @@ describe('SpreadSheet Multi Line Text Tests', () => { }); test('should custom two max text lines', async () => { - updateTheme(2); + updateStyle(2); await s2.render(false); getCells().forEach((cells) => { @@ -359,7 +347,7 @@ describe('SpreadSheet Multi Line Text Tests', () => { }); test('should custom three max text lines', async () => { - updateTheme(3); + updateStyle(3); await s2.render(false); getCells().forEach((cells) => { @@ -381,7 +369,7 @@ describe('SpreadSheet Multi Line Text Tests', () => { }, }); - updateTheme(2); + updateStyle(2); await s2.render(false); getCells().forEach((cells) => { @@ -401,7 +389,7 @@ describe('SpreadSheet Multi Line Text Tests', () => { }, }); - updateTheme(2); + updateStyle(2); await s2.render(false); [s2.facet.getColLeafCells()].forEach((cells) => { @@ -418,7 +406,7 @@ describe('SpreadSheet Multi Line Text Tests', () => { test.skip.each([1, 2, 3, 4, 5])( 'should always render default cell height when set %s line, but actual text not wrap', async (maxLines) => { - updateTheme(maxLines); + updateStyle(maxLines); s2.setDataCfg(SimpleDataCfg); await s2.render(); diff --git a/packages/s2-core/__tests__/spreadsheet/sort-by-order-spec.ts b/packages/s2-core/__tests__/spreadsheet/sort-by-order-spec.ts index ab07de4ac3..57f92a5b19 100644 --- a/packages/s2-core/__tests__/spreadsheet/sort-by-order-spec.ts +++ b/packages/s2-core/__tests__/spreadsheet/sort-by-order-spec.ts @@ -6,7 +6,7 @@ const s2Options: S2Options = { width: 400, height: 400, hierarchyType: 'grid', - hdAdapter: true, + hd: true, }; describe('Manual Sort Tests', () => { diff --git a/packages/s2-core/__tests__/spreadsheet/spread-sheet-facet-layout-api-spec.ts b/packages/s2-core/__tests__/spreadsheet/spread-sheet-facet-layout-api-spec.ts index da32d09082..ea6d0ad8b4 100644 --- a/packages/s2-core/__tests__/spreadsheet/spread-sheet-facet-layout-api-spec.ts +++ b/packages/s2-core/__tests__/spreadsheet/spread-sheet-facet-layout-api-spec.ts @@ -20,7 +20,9 @@ describe('Facet Layout API Tests', () => { s2 = createPivotSheet({ width: 300, height: 300, - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, }); await s2.render(); }); @@ -94,7 +96,9 @@ describe('Facet Layout API Tests', () => { test('#getHeaderNodes() for seriesNumber enable', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); @@ -372,7 +376,9 @@ describe('Facet Layout API Tests', () => { test('#getCornerNodes() for seriesNumber enable', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); @@ -426,7 +432,9 @@ describe('Facet Layout API Tests', () => { test('#getCornerCells() for seriesNumber enable', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); @@ -466,7 +474,9 @@ describe('Facet Layout API Tests', () => { test('#getSeriesNumberNodes() for seriesNumber enable', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); @@ -490,7 +500,9 @@ describe('Facet Layout API Tests', () => { test('#getSeriesNumberCells() for seriesNumber enable', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); @@ -658,7 +670,9 @@ describe('Facet Layout API Tests', () => { { width: 300, height: 300, - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, totals: { row: { showGrandTotals: true, @@ -846,7 +860,9 @@ describe('Facet Layout API Tests', () => { { width: 300, height: 300, - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, totals: { col: { showGrandTotals: true, @@ -914,9 +930,11 @@ describe('Facet Layout API Tests', () => { `); }); - test('#getDataCells() for showSeriesNumber enable', async () => { + test('#getDataCells() for show seriesNumber enable', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); @@ -945,7 +963,9 @@ describe('Facet Layout API Tests', () => { s2 = createTableSheet({ width: 300, height: 300, - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, }); await s2.render(); }); @@ -970,9 +990,11 @@ describe('Facet Layout API Tests', () => { ).toMatchInlineSnapshot(`Array []`); }); - test('#getHeaderNodes() for showSeriesNumber enable', async () => { + test('#getHeaderNodes() for show seriesNumber enable', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); @@ -1012,9 +1034,11 @@ describe('Facet Layout API Tests', () => { ).toMatchInlineSnapshot(`Array []`); }); - test('#getHeaderCells() for showSeriesNumber enable', async () => { + test('#getHeaderCells() for show seriesNumber enable', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); @@ -1072,9 +1096,11 @@ describe('Facet Layout API Tests', () => { ).toMatchInlineSnapshot(`Array []`); }); - test('#getCells() for showSeriesNumber enable', async () => { + test('#getCells() for show seriesNumber enable', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); @@ -1152,7 +1178,9 @@ describe('Facet Layout API Tests', () => { describe('SeriesNumberCell', () => { beforeEach(async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); }); @@ -1197,9 +1225,11 @@ describe('Facet Layout API Tests', () => { ); }); - test('#getColNodes() for showSeriesNumber enable', async () => { + test('#getColNodes() for show seriesNumber enable', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); @@ -1304,9 +1334,11 @@ describe('Facet Layout API Tests', () => { `); }); - test('#getDataCells() for showSeriesNumber enable', async () => { + test('#getDataCells() for show seriesNumber enable', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(false); diff --git a/packages/s2-core/__tests__/spreadsheet/spread-sheet-series-number-spec.ts b/packages/s2-core/__tests__/spreadsheet/spread-sheet-series-number-spec.ts index 0573dc8232..5153995acc 100644 --- a/packages/s2-core/__tests__/spreadsheet/spread-sheet-series-number-spec.ts +++ b/packages/s2-core/__tests__/spreadsheet/spread-sheet-series-number-spec.ts @@ -6,7 +6,9 @@ const s2Options: S2Options = { width: 400, height: 400, hierarchyType: 'grid', - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }; describe('SpreadSheet Series Number Tests', () => { diff --git a/packages/s2-core/__tests__/spreadsheet/spread-sheet-spec.ts b/packages/s2-core/__tests__/spreadsheet/spread-sheet-spec.ts index 955b611046..9e0925ee9f 100644 --- a/packages/s2-core/__tests__/spreadsheet/spread-sheet-spec.ts +++ b/packages/s2-core/__tests__/spreadsheet/spread-sheet-spec.ts @@ -14,7 +14,7 @@ const s2Options: S2Options = { width: 200, height: 200, hierarchyType: 'grid', - hdAdapter: true, + hd: true, }; describe('SpreadSheet Tests', () => { @@ -502,7 +502,7 @@ describe('SpreadSheet Tests', () => { const s2 = new PivotSheet(container, mockDataConfig, s2Options); await s2.render(); - const emitAttrs = ['width', 'height', 'hierarchyType', 'hdAdapter']; + const emitAttrs = ['width', 'height', 'hierarchyType', 'hd']; const partialOptions = pick(s2.options, emitAttrs); expect(partialOptions).toEqual(s2Options); @@ -510,15 +510,16 @@ describe('SpreadSheet Tests', () => { s2.setOptions( { width: 300, - hdAdapter: false, + hd: false, }, true, ); + expect(pick(s2.options, emitAttrs)).toEqual({ height: DEFAULT_OPTIONS.height, hierarchyType: DEFAULT_OPTIONS.hierarchyType, width: 300, - hdAdapter: false, + hd: false, }); }); @@ -526,12 +527,12 @@ describe('SpreadSheet Tests', () => { const s2 = new PivotSheet(container, mockDataConfig, s2Options); await s2.render(); - const emitAttrs = ['width', 'height', 'hierarchyType', 'hdAdapter']; + const emitAttrs = ['width', 'height', 'hierarchyType', 'hd']; s2.setOptions( { width: 300, - hdAdapter: false, + hd: false, }, false, ); @@ -540,8 +541,28 @@ describe('SpreadSheet Tests', () => { height: s2Options.height, hierarchyType: s2Options.hierarchyType, width: 300, - hdAdapter: false, + hd: false, + }); + }); + + test('should reset config', () => { + const s2 = new PivotSheet(container, mockDataConfig, s2Options); + + s2.setOptions({ + hierarchyType: 'tree', + tooltip: { enable: true }, + frozen: { firstRow: true }, + }); + + s2.setDataCfg({ + fields: { rows: [], columns: [], values: [] }, }); + + s2.resetOptions(); + s2.resetDataCfg(); + + expect(s2.options).toMatchSnapshot(); + expect(s2.dataCfg).toMatchSnapshot(); }); describe('Measure Text Tests', () => { diff --git a/packages/s2-core/__tests__/spreadsheet/table-resize-spec.ts b/packages/s2-core/__tests__/spreadsheet/table-resize-spec.ts index 2918f804d3..bd1d301376 100644 --- a/packages/s2-core/__tests__/spreadsheet/table-resize-spec.ts +++ b/packages/s2-core/__tests__/spreadsheet/table-resize-spec.ts @@ -9,7 +9,9 @@ describe('Table Sheet Resize Test', () => { const s2 = new TableSheet(getContainer(), mockDataConfig, { width: 800, height: 600, - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(); @@ -25,7 +27,9 @@ describe('Table Sheet Resize Test', () => { const s2 = new TableSheet(getContainer(), mockDataConfig, { width: 800, height: 600, - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, }); await s2.render(); diff --git a/packages/s2-core/__tests__/spreadsheet/table-sheet-spec.ts b/packages/s2-core/__tests__/spreadsheet/table-sheet-spec.ts index 19c04800dc..c4a66fc3dc 100644 --- a/packages/s2-core/__tests__/spreadsheet/table-sheet-spec.ts +++ b/packages/s2-core/__tests__/spreadsheet/table-sheet-spec.ts @@ -71,7 +71,9 @@ const dataCfg: S2DataConfig = { const options: S2Options = { width: 800, height: 600, - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, placeholder: '', style: { layoutWidthType: LayoutWidthType.Compact, @@ -80,7 +82,7 @@ const options: S2Options = { }, }, interaction: { - enableCopy: true, + copy: { enable: true }, hoverHighlight: false, selectedCellHighlight: true, linkFields: ['order_id', 'customer_name'], diff --git a/packages/s2-core/__tests__/spreadsheet/theme-spec.ts b/packages/s2-core/__tests__/spreadsheet/theme-spec.ts index 2a9e180e62..6a966d945a 100644 --- a/packages/s2-core/__tests__/spreadsheet/theme-spec.ts +++ b/packages/s2-core/__tests__/spreadsheet/theme-spec.ts @@ -484,7 +484,9 @@ describe('SpreadSheet Theme Tests', () => { }); s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(); diff --git a/packages/s2-core/__tests__/unit/cell/data-cell-spec.ts b/packages/s2-core/__tests__/unit/cell/data-cell-spec.ts index 6ce23c12d3..fcbc34d9ae 100644 --- a/packages/s2-core/__tests__/unit/cell/data-cell-spec.ts +++ b/packages/s2-core/__tests__/unit/cell/data-cell-spec.ts @@ -599,9 +599,11 @@ describe('Data Cell Tests', () => { describe('Data Cell Interaction', () => { beforeEach(async () => { s2 = createPivotSheet({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, interaction: { - enableCopy: true, + copy: { enable: true }, }, }); await s2.render(); diff --git a/packages/s2-core/__tests__/unit/facet/header/corner-spec.ts b/packages/s2-core/__tests__/unit/facet/header/corner-spec.ts index ee22993fd2..eefcd31769 100644 --- a/packages/s2-core/__tests__/unit/facet/header/corner-spec.ts +++ b/packages/s2-core/__tests__/unit/facet/header/corner-spec.ts @@ -40,7 +40,7 @@ describe('Corner Tests', () => { }); test('should get custom series number text', () => { - s2.options.seriesNumberText = 'test'; + s2.options.seriesNumber!.text = 'test'; const cornerNode = createCornerNode(); expect(cornerNode.value).toEqual('test'); diff --git a/packages/s2-core/__tests__/unit/facet/header/frozen-row-spec.ts b/packages/s2-core/__tests__/unit/facet/header/frozen-row-spec.ts index 43e038b1b0..2e11f10094 100644 --- a/packages/s2-core/__tests__/unit/facet/header/frozen-row-spec.ts +++ b/packages/s2-core/__tests__/unit/facet/header/frozen-row-spec.ts @@ -12,7 +12,9 @@ const s2 = createPivotSheet( firstRow: true, }, totals: { row: { showGrandTotals: true, reverseGrandTotalsLayout: true } }, - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, }, { useSimpleData: false }, ); diff --git a/packages/s2-core/__tests__/unit/facet/layout/col-node-width-spec.ts b/packages/s2-core/__tests__/unit/facet/layout/col-node-width-spec.ts index b6d1e7fc98..49ec4d43c6 100644 --- a/packages/s2-core/__tests__/unit/facet/layout/col-node-width-spec.ts +++ b/packages/s2-core/__tests__/unit/facet/layout/col-node-width-spec.ts @@ -40,7 +40,9 @@ describe('Col width Test', () => { test('get correct width in layoutWidthType adaptive mode when enable series number', async () => { s2.setOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(); @@ -59,7 +61,9 @@ describe('Col width Test', () => { test('get correct width in layoutWidthType adaptive tree mode when enable series number', async () => { s2.setOptions({ hierarchyType: 'tree', - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); await s2.render(); diff --git a/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts b/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts index c5b621d547..3a5f141b03 100644 --- a/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts +++ b/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts @@ -154,7 +154,9 @@ describe('Table Mode Facet Test', () => { test('should get default seriesNumberText', () => { const { facet } = createMockTableFacet({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); expect(facet.getColLeafNodes()[0].value).toEqual('序号'); @@ -163,8 +165,10 @@ describe('Table Mode Facet Test', () => { test('should get custom seriesNumberText', () => { const seriesNumberText = 'test'; const { facet } = createMockTableFacet({ - showSeriesNumber: true, - seriesNumberText, + seriesNumber: { + enable: true, + text: seriesNumberText, + }, }); expect(facet.getColLeafNodes()[0].value).toEqual(seriesNumberText); @@ -216,7 +220,9 @@ describe('Table Mode Facet Test With Adaptive Layout', () => { describe('should get correct col layout', () => { test('col hierarchy coordinate with adaptive layout', () => { const { facet } = createMockTableFacet({ - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, }); expect( @@ -230,7 +236,9 @@ describe('Table Mode Facet Test With Adaptive Layout', () => { describe('should get correct col layout with seriesNumber', () => { test('col hierarchy coordinate with adaptive layout with seriesNumber', () => { const { facet, s2 } = createMockTableFacet({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }); const { colCell } = s2.options.style!; const colLeafNodes = facet.getColLeafNodes(); @@ -276,7 +284,9 @@ describe('Table Mode Facet Test With Compact Layout', () => { const { facet, s2 } = createMockTableFacet( { - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, }, undefined, (spreadsheet) => { @@ -323,7 +333,9 @@ describe('Table Mode Facet Test With Compact Layout', () => { const { facet, s2 } = createMockTableFacet( { - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }, undefined, (spreadsheet) => { diff --git a/packages/s2-core/__tests__/unit/interaction/__snapshots__/row-column-resize-spec.ts.snap b/packages/s2-core/__tests__/unit/interaction/__snapshots__/row-column-resize-spec.ts.snap new file mode 100644 index 0000000000..c731ef6981 --- /dev/null +++ b/packages/s2-core/__tests__/unit/interaction/__snapshots__/row-column-resize-spec.ts.snap @@ -0,0 +1,144 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Interaction Row Column Resize Tests should get horizontal filed resize style by field for all resize type and table mode 1`] = ` +Object { + "height": 30, + "heightByField": null, + "maxLines": 1, + "textOverflow": "ellipsis", + "width": 5, + "widthByField": Object { + "testField": 5, + }, + "wordWrap": true, +} +`; + +exports[`Interaction Row Column Resize Tests should get horizontal filed resize style by field for current resize type 1`] = ` +Object { + "height": 30, + "heightByField": null, + "maxLines": 1, + "textOverflow": "ellipsis", + "width": null, + "widthByField": Object { + "testFieldId": 5, + }, + "wordWrap": true, +} +`; + +exports[`Interaction Row Column Resize Tests should get horizontal filed resize style by field for current resize type and table mode 1`] = ` +Object { + "height": 30, + "heightByField": null, + "maxLines": 1, + "textOverflow": "ellipsis", + "width": null, + "widthByField": Object { + "testField": 5, + }, + "wordWrap": true, +} +`; + +exports[`Interaction Row Column Resize Tests should get vertical cell resize style 1`] = ` +Object { + "height": 2, + "heightByField": Object { + "testField": 2, + }, + "maxLines": 1, + "showTreeLeafNodeAlignDot": false, + "textOverflow": "ellipsis", + "widthByField": null, + "wordWrap": true, +} +`; + +exports[`Interaction Row Column Resize Tests should get vertical cell resize style 2`] = ` +Object { + "height": 30, + "heightByField": null, + "maxLines": 1, + "textOverflow": "ellipsis", + "widthByField": null, + "wordWrap": true, +} +`; + +exports[`Interaction Row Column Resize Tests should get vertical cell resize style 3`] = ` +Object { + "height": 30, + "maxLines": 1, + "textOverflow": "ellipsis", + "width": 96, + "wordWrap": true, +} +`; + +exports[`Interaction Row Column Resize Tests should get vertical filed resize style by field for current resize type 1`] = ` +Object { + "height": null, + "heightByField": Object { + "testFieldId": 2, + }, + "maxLines": 1, + "showTreeLeafNodeAlignDot": false, + "textOverflow": "ellipsis", + "widthByField": null, + "wordWrap": true, +} +`; + +exports[`Interaction Row Column Resize Tests should get vertical filed resize style by rowId for table mode 1`] = ` +Object { + "height": 2, + "heightByField": Object { + "0": 2, + }, + "maxLines": 1, + "showTreeLeafNodeAlignDot": false, + "textOverflow": "ellipsis", + "widthByField": null, + "wordWrap": true, +} +`; + +exports[`Interaction Row Column Resize Tests should rerender by resize col cell 1`] = ` +Object { + "height": 30, + "heightByField": null, + "maxLines": 1, + "textOverflow": "ellipsis", + "width": 40, + "widthByField": Object { + "testField": 40, + }, + "wordWrap": true, +} +`; + +exports[`Interaction Row Column Resize Tests should rerender by resize row cell 1`] = ` +Object { + "height": 2, + "heightByField": Object { + "testField": 2, + }, + "maxLines": 1, + "showTreeLeafNodeAlignDot": false, + "textOverflow": "ellipsis", + "widthByField": null, + "wordWrap": true, +} +`; + +exports[`Interaction Row Column Resize Tests should rerender by resize row cell 2`] = ` +Object { + "height": 30, + "maxLines": 1, + "textOverflow": "ellipsis", + "width": 96, + "wordWrap": true, +} +`; diff --git a/packages/s2-core/__tests__/unit/interaction/event-controller-spec.ts b/packages/s2-core/__tests__/unit/interaction/event-controller-spec.ts index 0eb3b690ac..a884abaad5 100644 --- a/packages/s2-core/__tests__/unit/interaction/event-controller-spec.ts +++ b/packages/s2-core/__tests__/unit/interaction/event-controller-spec.ts @@ -54,7 +54,7 @@ const s2Options: S2Options = { enable: true, }, interaction: { - enableCopy: true, + copy: { enable: true }, autoResetSheetStyle: true, }, }; diff --git a/packages/s2-core/__tests__/unit/interaction/row-column-resize-spec.ts b/packages/s2-core/__tests__/unit/interaction/row-column-resize-spec.ts index 8953d35524..e976c35f4c 100644 --- a/packages/s2-core/__tests__/unit/interaction/row-column-resize-spec.ts +++ b/packages/s2-core/__tests__/unit/interaction/row-column-resize-spec.ts @@ -263,7 +263,7 @@ describe('Interaction Row Column Resize Tests', () => { height: 0, isResizeArea: true, effect: ResizeAreaEffect.Cell, - resizedWidth: 42, + resizedWidth: 40, resizedHeight: 0, size: 3, meta: { @@ -319,14 +319,7 @@ describe('Interaction Row Column Resize Tests', () => { expect(colWidthResize).toHaveBeenLastCalledWith(resizeDetail); // update style options - expect(s2.options.style!.colCell).toEqual({ - width: resizeInfo.resizedWidth!, - height: 30, - heightByField: null, - widthByField: { - [resizeInfo.meta.field!]: resizeInfo.resizedWidth!, - }, - }); + expect(s2.options.style!.colCell).toMatchSnapshot(); // mark resized flag for rerender expect(s2.store.get('resized')).toBeTruthy(); @@ -441,18 +434,8 @@ describe('Interaction Row Column Resize Tests', () => { expect(rowWidthResize).toHaveBeenLastCalledWith(resizeDetail); // update style options - expect(s2.options.style!.rowCell).toEqual({ - height: 2, - heightByField: { - [resizeInfo.meta.field!]: 2, - }, - widthByField: null, - showTreeLeafNodeAlignDot: false, - }); - expect(s2.options.style!.dataCell).toEqual({ - width: 96, - height: 30, - }); + expect(s2.options.style!.rowCell).toMatchSnapshot(); + expect(s2.options.style!.dataCell).toMatchSnapshot(); // mark resized flag for rerender expect(s2.store.get('resized')).toBeTruthy(); @@ -577,28 +560,11 @@ describe('Interaction Row Column Resize Tests', () => { }); test('should get vertical cell resize style', () => { - const resizeInfo = emitResize( - ResizeDirectionType.Vertical, - ResizeAreaEffect.Cell, - ); + emitResize(ResizeDirectionType.Vertical, ResizeAreaEffect.Cell); - expect(s2.options.style!.rowCell).toEqual({ - height: 2, - heightByField: { - [resizeInfo.meta.field!]: 2, - }, - widthByField: null, - showTreeLeafNodeAlignDot: false, - }); - expect(s2.options.style!.colCell).toEqual({ - height: 30, - heightByField: null, - widthByField: null, - }); - expect(s2.options.style!.dataCell).toEqual({ - width: 96, - height: 30, - }); + expect(s2.options.style!.rowCell).toMatchSnapshot(); + expect(s2.options.style!.colCell).toMatchSnapshot(); + expect(s2.options.style!.dataCell).toMatchSnapshot(); }); test('should get vertical filed resize style', () => { @@ -687,19 +653,9 @@ describe('Interaction Row Column Resize Tests', () => { }, }); - const resizeInfo = emitResize( - ResizeDirectionType.Horizontal, - ResizeAreaEffect.Cell, - ); + emitResize(ResizeDirectionType.Horizontal, ResizeAreaEffect.Cell); - expect(s2.options.style!.colCell).toEqual({ - height: 30, - heightByField: null, - width: null, - widthByField: { - [resizeInfo.meta.id]: resizeInfo.width, - }, - }); + expect(s2.options.style!.colCell).toMatchSnapshot(); }); test('should get vertical filed resize style by field for current resize type', () => { @@ -711,19 +667,9 @@ describe('Interaction Row Column Resize Tests', () => { }, }); - const resizeInfo = emitResize( - ResizeDirectionType.Vertical, - ResizeAreaEffect.Cell, - ); + emitResize(ResizeDirectionType.Vertical, ResizeAreaEffect.Cell); - expect(s2.options.style!.rowCell).toEqual({ - widthByField: null, - height: null, - heightByField: { - [resizeInfo.meta.id]: resizeInfo.height, - }, - showTreeLeafNodeAlignDot: false, - }); + expect(s2.options.style!.rowCell).toMatchSnapshot(); }); test('should set no drop cursor and gray guide line if disable resize', () => { @@ -778,7 +724,7 @@ describe('Interaction Row Column Resize Tests', () => { expect(disable).toHaveBeenCalledWith({ ...resizeInfo, resizedWidth: 0, - resizedHeight: 40, + resizedHeight: 20, }); emitResizeEvent( @@ -820,19 +766,9 @@ describe('Interaction Row Column Resize Tests', () => { test('should get vertical filed resize style by rowId for table mode', () => { jest.spyOn(s2, 'isTableMode').mockImplementationOnce(() => true); - const resizeInfo = emitResize( - ResizeDirectionType.Vertical, - ResizeAreaEffect.Cell, - ); + emitResize(ResizeDirectionType.Vertical, ResizeAreaEffect.Cell); - expect(s2.options.style!.rowCell).toEqual({ - height: 2, - heightByField: { - [resizeInfo.meta.rowId]: 2, - }, - widthByField: null, - showTreeLeafNodeAlignDot: false, - }); + expect(s2.options.style!.rowCell).toMatchSnapshot(); }); test('should get horizontal filed resize style by field for current resize type and table mode', () => { @@ -843,19 +779,9 @@ describe('Interaction Row Column Resize Tests', () => { }; jest.spyOn(s2, 'isTableMode').mockImplementationOnce(() => true); - const resizeInfo = emitResize( - ResizeDirectionType.Horizontal, - ResizeAreaEffect.Cell, - ); + emitResize(ResizeDirectionType.Horizontal, ResizeAreaEffect.Cell); - expect(s2.options.style!.colCell).toEqual({ - height: 30, - heightByField: null, - width: null, - widthByField: { - [resizeInfo.meta.field!]: 5, - }, - }); + expect(s2.options.style!.colCell).toMatchSnapshot(); }); test('should get horizontal filed resize style by field for all resize type and table mode', () => { @@ -866,18 +792,8 @@ describe('Interaction Row Column Resize Tests', () => { }; jest.spyOn(s2, 'isTableMode').mockImplementationOnce(() => true); - const resizeInfo = emitResize( - ResizeDirectionType.Horizontal, - ResizeAreaEffect.Cell, - ); + emitResize(ResizeDirectionType.Horizontal, ResizeAreaEffect.Cell); - expect(s2.options.style!.colCell).toEqual({ - height: 30, - heightByField: null, - width: 5, - widthByField: { - [resizeInfo.meta.field!]: 5, - }, - }); + expect(s2.options.style!.colCell).toMatchSnapshot(); }); }); diff --git a/packages/s2-core/__tests__/unit/sheet-type/pivot-sheet-spec.ts b/packages/s2-core/__tests__/unit/sheet-type/pivot-sheet-spec.ts index 1a62ea9e86..be230d98a0 100644 --- a/packages/s2-core/__tests__/unit/sheet-type/pivot-sheet-spec.ts +++ b/packages/s2-core/__tests__/unit/sheet-type/pivot-sheet-spec.ts @@ -468,14 +468,16 @@ describe('PivotSheet Tests', () => { .mockImplementation(() => {}); const options: Partial = { - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }; s2.setOptions(options); // should hide tooltip if options updated expect(hideTooltipSpy).toHaveBeenCalledTimes(1); - expect(s2.options.showSeriesNumber).toBeTruthy(); + expect(s2.options.seriesNumber?.enable).toBeTruthy(); }); test('should init new tooltip', () => { @@ -569,7 +571,9 @@ describe('PivotSheet Tests', () => { const sheet = createPivotSheet( { ...s2Options, - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }, { useSimpleData: false }, ); @@ -745,7 +749,7 @@ describe('PivotSheet Tests', () => { test('should rebuild hidden columns detail by status', async () => { // 重新更新, 但是没有隐藏列信息 - await s2.render(false, { reBuildHiddenColumnsDetail: true }); + await s2.render({ reloadData: false, reBuildHiddenColumnsDetail: true }); expect(mockHideColumnsByThunkGroup).toHaveBeenCalledTimes(0); @@ -754,12 +758,15 @@ describe('PivotSheet Tests', () => { ] as unknown as HiddenColumnsInfo[]); // 重新更新, 有隐藏列信息, 但是 reBuildHiddenColumnsDetail 为 false - await s2.render(false, { reBuildHiddenColumnsDetail: false }); + await s2.render({ + reloadData: false, + reBuildHiddenColumnsDetail: false, + }); expect(mockHideColumnsByThunkGroup).toHaveBeenCalledTimes(0); // 重新更新, 有隐藏列信息, 且 reBuildHiddenColumnsDetail 为 true - await s2.render(false, { reBuildHiddenColumnsDetail: true }); + await s2.render({ reloadData: false, reBuildHiddenColumnsDetail: true }); expect(mockHideColumnsByThunkGroup).toHaveBeenCalledTimes(1); }); diff --git a/packages/s2-core/__tests__/unit/ui/hd-adapter/index-spec.ts b/packages/s2-core/__tests__/unit/ui/hd-adapter/index-spec.ts index 038de56961..46bfd931d6 100644 --- a/packages/s2-core/__tests__/unit/ui/hd-adapter/index-spec.ts +++ b/packages/s2-core/__tests__/unit/ui/hd-adapter/index-spec.ts @@ -13,7 +13,7 @@ describe.skip('HD Adapter Tests', () => { const s2Options: S2Options = { width: 600, height: 600, - hdAdapter: true, + hd: true, transformCanvasConfig() { return { devicePixelRatio: DPR, diff --git a/packages/s2-core/__tests__/unit/utils/__snapshots__/merge-spec.ts.snap b/packages/s2-core/__tests__/unit/utils/__snapshots__/merge-spec.ts.snap new file mode 100644 index 0000000000..5185df1f1b --- /dev/null +++ b/packages/s2-core/__tests__/unit/utils/__snapshots__/merge-spec.ts.snap @@ -0,0 +1,117 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`merge test should get safety options 1`] = ` +Object { + "conditions": Object {}, + "cornerExtraFieldText": "", + "cornerText": "", + "customSVGIcons": Array [], + "debug": false, + "device": "pc", + "frozen": Object { + "colCount": 0, + "rowCount": 0, + "rowHeader": true, + "trailingColCount": 0, + "trailingRowCount": 0, + }, + "hd": true, + "headerActionIcons": Array [], + "height": 480, + "hierarchyType": "grid", + "interaction": Object { + "autoResetSheetStyle": true, + "brushSelection": Object { + "colCell": true, + "dataCell": true, + "rowCell": true, + }, + "copy": Object { + "enable": true, + "withFormat": true, + "withHeader": false, + }, + "eventListenerOptions": false, + "hiddenColumnFields": Array [], + "hoverFocus": Object { + "duration": 800, + }, + "hoverHighlight": true, + "linkFields": Array [], + "multiSelection": true, + "overscrollBehavior": "auto", + "rangeSelection": true, + "resize": Object { + "colCellHorizontal": true, + "colCellVertical": true, + "colResizeType": "current", + "cornerCellHorizontal": true, + "minCellHeight": 20, + "minCellWidth": 20, + "rowCellVertical": true, + "rowResizeType": "current", + }, + "scrollSpeedRatio": Object { + "horizontal": 1, + "vertical": 1, + }, + "scrollbarPosition": "content", + "selectedCellHighlight": false, + "selectedCellsSpotlight": false, + }, + "placeholder": "-", + "seriesNumber": Object { + "enable": false, + }, + "showDefaultHeaderActionIcon": false, + "style": Object { + "colCell": Object { + "height": 30, + "heightByField": null, + "maxLines": 1, + "textOverflow": "ellipsis", + "widthByField": null, + "wordWrap": true, + }, + "cornerCell": Object { + "maxLines": 1, + "textOverflow": "ellipsis", + "wordWrap": true, + }, + "dataCell": Object { + "height": 30, + "maxLines": 1, + "textOverflow": "ellipsis", + "width": 96, + "wordWrap": true, + }, + "layoutWidthType": "adaptive", + "rowCell": Object { + "heightByField": null, + "maxLines": 1, + "showTreeLeafNodeAlignDot": false, + "textOverflow": "ellipsis", + "widthByField": null, + "wordWrap": true, + }, + "seriesNumberCell": Object { + "maxLines": 1, + "textOverflow": "ellipsis", + "wordWrap": true, + }, + }, + "tooltip": Object { + "autoAdjustBoundary": "body", + "enable": false, + "operation": Object { + "hiddenColumns": false, + "menu": Object { + "items": Array [], + }, + "sort": false, + }, + }, + "totals": Object {}, + "width": 600, +} +`; diff --git a/packages/s2-core/__tests__/unit/utils/condition/conditions-spec.ts b/packages/s2-core/__tests__/unit/utils/condition/conditions-spec.ts index 3182f67a48..7760df7370 100644 --- a/packages/s2-core/__tests__/unit/utils/condition/conditions-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/condition/conditions-spec.ts @@ -6,7 +6,7 @@ describe('getIconLayoutPosition Test', () => { getIconPosition({ field: 'value', mapping: () => { - return { fill: 'red' }; + return { icon: 'xxx', fill: 'red' }; }, }), ).toEqual('right'); @@ -18,7 +18,7 @@ describe('getIconLayoutPosition Test', () => { field: 'value', position: 'left', mapping: () => { - return { fill: 'red' }; + return { icon: 'xxx', fill: 'red' }; }, }), ).toEqual('left'); diff --git a/packages/s2-core/__tests__/unit/utils/export/__snapshots__/copy-spec.ts.snap b/packages/s2-core/__tests__/unit/utils/export/__snapshots__/copy-spec.ts.snap index c7c3058c62..5088023b5d 100644 --- a/packages/s2-core/__tests__/unit/utils/export/__snapshots__/copy-spec.ts.snap +++ b/packages/s2-core/__tests__/unit/utils/export/__snapshots__/copy-spec.ts.snap @@ -109,7 +109,7 @@ number number 小计 number number", ] `; -exports[`Tree Table Core Data Process should copy normal data with header for custom field formatter if enable copyWithFormat 1`] = ` +exports[`Tree Table Core Data Process should copy normal data with header for custom field formatter if enable withFormat 1`] = ` Array [ Object { "content": " 家具 家具 家具 办公用品 办公用品 diff --git a/packages/s2-core/__tests__/unit/utils/export/copy-spec.ts b/packages/s2-core/__tests__/unit/utils/export/copy-spec.ts index 086fa5ec1f..ada2221484 100644 --- a/packages/s2-core/__tests__/unit/utils/export/copy-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/export/copy-spec.ts @@ -52,7 +52,9 @@ describe('List Table Core Data Process', () => { data: testData, }), assembleOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, interaction: { selectedCellHighlight: { currentRow: true, @@ -128,9 +130,13 @@ describe('List Table Core Data Process', () => { it('should copy normal data with header in table mode', async () => { s2.setOptions({ interaction: { - copyWithHeader: true, + copy: { + withHeader: true, + }, + }, + seriesNumber: { + enable: false, }, - showSeriesNumber: false, }); await s2.render(); @@ -157,10 +163,11 @@ describe('List Table Core Data Process', () => { }), assembleOptions({ interaction: { - enableCopy: true, - copyWithFormat: true, + copy: { enable: true, withFormat: true }, + }, + seriesNumber: { + enable: true, }, - showSeriesNumber: true, }), ); @@ -188,10 +195,11 @@ describe('List Table Core Data Process', () => { s2.setOptions({ interaction: { - enableCopy: true, - copyWithFormat: true, + copy: { enable: true, withFormat: true }, + }, + seriesNumber: { + enable: false, }, - showSeriesNumber: false, }); await s2.render(); @@ -221,8 +229,7 @@ describe('List Table Core Data Process', () => { }), assembleOptions({ interaction: { - enableCopy: true, - copyWithFormat: true, + copy: { enable: true, withFormat: true }, }, }), ); @@ -259,7 +266,9 @@ describe('List Table Core Data Process', () => { it('should copy correct data with data filtered', async () => { s2.setOptions({ interaction: { - copyWithHeader: false, + copy: { + withHeader: false, + }, }, }); await s2.render(); @@ -337,9 +346,11 @@ describe('List Table Core Data Process', () => { }), assembleOptions({ interaction: { - enableCopy: true, + copy: { enable: true }, + }, + seriesNumber: { + enable: true, }, - showSeriesNumber: true, }), ); @@ -374,9 +385,11 @@ describe('List Table Core Data Process', () => { }), assembleOptions({ interaction: { - enableCopy: true, + copy: { enable: true }, + }, + seriesNumber: { + enable: true, }, - showSeriesNumber: true, }), ); @@ -395,7 +408,9 @@ describe('List Table Core Data Process', () => { it('should copy row data when select data row cell', async () => { s2.setOptions({ - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, interaction: { selectedCellHighlight: { currentRow: true, @@ -418,14 +433,18 @@ describe('List Table Core Data Process', () => { it('should support custom copy matrix transformer', async () => { s2.setOptions({ - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, interaction: { - customTransformer: () => { - return { - [CopyMIMEType.PLAIN]: () => { - return { type: CopyMIMEType.PLAIN, content: 'custom data' }; - }, - }; + copy: { + customTransformer: () => { + return { + [CopyMIMEType.PLAIN]: () => { + return { type: CopyMIMEType.PLAIN, content: 'custom data' }; + }, + }; + }, }, }, }); @@ -468,7 +487,7 @@ describe('Pivot Table Core Data Process', () => { return assembleOptions({ hierarchyType: 'grid', interaction: { - enableCopy: true, + copy: { enable: true }, }, totals: TOTALS_OPTIONS, }); @@ -520,8 +539,7 @@ describe('Pivot Table Core Data Process', () => { it('should copy format data when valueInCols is false in grid mode', async () => { s2.setOptions({ interaction: { - copyWithFormat: true, - enableCopy: true, + copy: { enable: true, withFormat: true }, }, }); @@ -563,9 +581,7 @@ describe('Pivot Table Core Data Process', () => { it('should copy format total data in grid mode', async () => { s2.setOptions({ interaction: { - copyWithFormat: true, - enableCopy: true, - copyWithHeader: true, + copy: { enable: true, withHeader: true, withFormat: true }, }, totals: { row: { @@ -647,7 +663,7 @@ describe('Pivot Table Core Data Process', () => { assembleOptions({ hierarchyType: 'grid', interaction: { - enableCopy: true, + copy: { enable: true }, }, }), ); @@ -685,10 +701,11 @@ describe('Pivot Table Core Data Process', () => { }), assembleOptions({ interaction: { - enableCopy: true, - copyWithFormat: true, + copy: { enable: true, withFormat: true }, + }, + seriesNumber: { + enable: false, }, - showSeriesNumber: false, }), ); @@ -705,7 +722,9 @@ describe('Pivot Table Core Data Process', () => { it('should copy normal data with header in grid mode', async () => { s2.setOptions({ interaction: { - copyWithHeader: true, + copy: { + withHeader: true, + }, }, }); await s2.render(); @@ -738,9 +757,7 @@ describe('Pivot Table Core Data Process', () => { it('should copy normal data with format header in grid mode', async () => { s2.setOptions({ interaction: { - copyWithHeader: true, - copyWithFormat: true, - enableCopy: true, + copy: { enable: true, withHeader: true, withFormat: true }, }, }); @@ -793,7 +810,9 @@ describe('Pivot Table Core Data Process', () => { it('should copy col data with header in grid mode', async () => { s2.setOptions({ interaction: { - copyWithHeader: true, + copy: { + withHeader: true, + }, }, }); await s2.render(); @@ -819,7 +838,9 @@ describe('Pivot Table Core Data Process', () => { it('should copy row data with header in grid mode', async () => { s2.setOptions({ interaction: { - copyWithHeader: true, + copy: { + withHeader: true, + }, }, }); await s2.render(); @@ -855,8 +876,11 @@ describe('Pivot Table Core Data Process', () => { it('should copy row data with format header in grid mode', async () => { s2.setOptions({ interaction: { - copyWithHeader: true, - copyWithFormat: true, + copy: { + enable: true, + withHeader: true, + withFormat: true, + }, }, }); s2.setDataCfg({ @@ -905,7 +929,9 @@ describe('Pivot Table Core Data Process', () => { it('should copy all data with header in grid mode', async () => { s2.setOptions({ interaction: { - copyWithHeader: true, + copy: { + withHeader: true, + }, }, }); await s2.render(); @@ -925,7 +951,9 @@ describe('Pivot Table Core Data Process', () => { it('should copy correct data with data sorted in grid mode', async () => { s2.setOptions({ interaction: { - copyWithHeader: false, + copy: { + withHeader: false, + }, }, }); const node = s2.facet.getColLeafNodes()[0]; @@ -962,10 +990,11 @@ describe('Pivot Table Core Data Process', () => { }), assembleOptions({ interaction: { - enableCopy: true, - copyWithFormat: true, + copy: { enable: true, withFormat: true }, + }, + seriesNumber: { + enable: false, }, - showSeriesNumber: false, }), ); @@ -1001,10 +1030,11 @@ describe('Pivot Table Core Data Process', () => { }), assembleOptions({ interaction: { - enableCopy: true, - copyWithFormat: true, + copy: { enable: true, withFormat: true }, + }, + seriesNumber: { + enable: false, }, - showSeriesNumber: false, }), ); @@ -1034,10 +1064,11 @@ describe('Pivot Table Core Data Process', () => { }), assembleOptions({ interaction: { - enableCopy: true, - copyWithFormat: true, + copy: { enable: true, withFormat: true }, + }, + seriesNumber: { + enable: false, }, - showSeriesNumber: false, }), ); @@ -1088,7 +1119,7 @@ describe('Pivot Table Core Data Process', () => { }); // https://github.com/antvis/S2/issues/1955 - it('should get correct data with hideMeasureColumn、showSeriesNumber and copyWithHeader are all true', async () => { + it('should get correct data with hideMeasureColumn、show seriesNumber and withHeader are all true', async () => { const sheet = new PivotSheet(getContainer(), getDataCfg(), getOptions()); sheet.setOptions({ @@ -1098,10 +1129,11 @@ describe('Pivot Table Core Data Process', () => { }, }, interaction: { - enableCopy: true, - copyWithHeader: true, + copy: { enable: true, withHeader: true }, + }, + seriesNumber: { + enable: true, }, - showSeriesNumber: true, }); await sheet.render(); const cells = sheet.facet.getDataCells(); @@ -1132,12 +1164,14 @@ describe('Pivot Table Core Data Process', () => { it('should support custom copy matrix transformer', async () => { s2.setOptions({ interaction: { - customTransformer: () => { - return { - [CopyMIMEType.PLAIN]: () => { - return { type: CopyMIMEType.PLAIN, content: 'custom data' }; - }, - }; + copy: { + customTransformer: () => { + return { + [CopyMIMEType.PLAIN]: () => { + return { type: CopyMIMEType.PLAIN, content: 'custom data' }; + }, + }; + }, }, }, }); @@ -1180,7 +1214,7 @@ describe('Tree Table Core Data Process', () => { assembleOptions({ hierarchyType: 'tree', interaction: { - enableCopy: true, + copy: { enable: true }, }, totals: TOTALS_OPTIONS, }), @@ -1283,7 +1317,10 @@ describe('Tree Table Core Data Process', () => { } as S2DataConfig); s2.setOptions({ interaction: { - copyWithFormat: true, + copy: { + enable: true, + withFormat: true, + }, }, }); await s2.render(); @@ -1308,8 +1345,7 @@ describe('Tree Table Core Data Process', () => { it('should copy normal data with header in tree mode', async () => { s2.setOptions({ interaction: { - copyWithHeader: true, - enableCopy: true, + copy: { enable: true, withHeader: true }, }, }); await s2.render(); @@ -1337,7 +1373,10 @@ describe('Tree Table Core Data Process', () => { it('should copy normal data with header for custom field name', async () => { s2.setOptions({ interaction: { - copyWithHeader: true, + copy: { + enable: true, + withHeader: true, + }, }, }); s2.setDataCfg({ @@ -1355,11 +1394,14 @@ describe('Tree Table Core Data Process', () => { expect(getSelectedData(s2)).toMatchSnapshot(); }); - it('should copy normal data with header for custom field formatter if enable copyWithFormat', async () => { + it('should copy normal data with header for custom field formatter if enable withFormat', async () => { s2.setOptions({ interaction: { - copyWithHeader: true, - copyWithFormat: true, + copy: { + enable: true, + withHeader: true, + withFormat: true, + }, }, }); s2.setDataCfg({ @@ -1394,7 +1436,7 @@ describe('Pivot Table getBrushHeaderCopyable', () => { const options = assembleOptions({ hierarchyType: 'grid', interaction: { - enableCopy: true, + copy: { enable: true }, brushSelection: true, }, }); @@ -1671,7 +1713,7 @@ describe('Pivot Table getBrushHeaderCopyable', () => { assembleOptions({ hierarchyType: 'grid', interaction: { - enableCopy: true, + copy: { enable: true }, brushSelection: true, }, totals: TOTALS_OPTIONS, @@ -1712,7 +1754,7 @@ describe('Pivot Table getBrushHeaderCopyable', () => { assembleOptions({ hierarchyType: 'grid', interaction: { - enableCopy: true, + copy: { enable: true }, brushSelection: true, }, totals: TOTALS_OPTIONS, diff --git a/packages/s2-core/__tests__/unit/utils/export/export-pivot-spec.ts b/packages/s2-core/__tests__/unit/utils/export/export-pivot-spec.ts index 2a46ca4d72..e1ed556290 100644 --- a/packages/s2-core/__tests__/unit/utils/export/export-pivot-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/export/export-pivot-spec.ts @@ -304,7 +304,7 @@ describe('PivotSheet Export Test', () => { }); }); - it('should export correct data when isFormat: {isFormatHeader: true}', async () => { + it('should export correct data when isFormat: {formatHeader: true}', async () => { const s2 = new PivotSheet( getContainer(), assembleDataCfg({ @@ -327,9 +327,7 @@ describe('PivotSheet Export Test', () => { }), assembleOptions({ interaction: { - enableCopy: true, - copyWithHeader: true, - copyWithFormat: true, + copy: { enable: true, withHeader: true, withFormat: true }, }, }), ); @@ -338,7 +336,7 @@ describe('PivotSheet Export Test', () => { const data = await asyncGetAllPlainData({ sheetInstance: s2, split: NewTab, - formatOptions: { isFormatHeader: true }, + formatOptions: { formatHeader: true }, }); const rows = data.split('\n'); @@ -350,7 +348,7 @@ describe('PivotSheet Export Test', () => { expect(rows[3].split(NewTab)[0]).toEqual('家具-type'); }); - it('should export correct data when isFormat: {isFormatData: true}', async () => { + it('should export correct data when isFormat: {formatData: true}', async () => { const s2 = new PivotSheet( getContainer(), assembleDataCfg({ @@ -363,8 +361,7 @@ describe('PivotSheet Export Test', () => { }), assembleOptions({ interaction: { - enableCopy: true, - copyWithFormat: true, + copy: { enable: true, withFormat: true }, }, }), ); @@ -374,7 +371,7 @@ describe('PivotSheet Export Test', () => { const data = await asyncGetAllPlainData({ sheetInstance: s2, split: NewTab, - formatOptions: { isFormatData: true }, + formatOptions: { formatData: true }, }); expect(data).toMatchInlineSnapshot(` @@ -443,8 +440,15 @@ describe('PivotSheet Export Test', () => { }), assembleOptions({ hierarchyType: 'grid', - showSeriesNumber: true, - interaction: { enableCopy: true, copyWithHeader: true }, + seriesNumber: { + enable: true, + }, + interaction: { + copy: { + enable: true, + withHeader: true, + }, + }, }), ); @@ -484,7 +488,7 @@ describe('PivotSheet Export Test', () => { }), assembleOptions({ hierarchyType: 'grid', - interaction: { enableCopy: true, copyWithHeader: true }, + interaction: { copy: { enable: true, withHeader: true } }, }), ); @@ -542,7 +546,7 @@ describe('PivotSheet Export Test', () => { sheetInstance: pivotSheet, split: ',', formatOptions: { - isFormatHeader: true, + formatHeader: true, }, }); diff --git a/packages/s2-core/__tests__/unit/utils/export/export-spec.ts b/packages/s2-core/__tests__/unit/utils/export/export-spec.ts index 00f03a3b42..f414c4e708 100644 --- a/packages/s2-core/__tests__/unit/utils/export/export-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/export/export-spec.ts @@ -20,7 +20,9 @@ describe('TableSheet Export Test', () => { }, }), assembleOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }), ); @@ -29,7 +31,7 @@ describe('TableSheet Export Test', () => { sheetInstance: s2, split: '\t', formatOptions: { - isFormatHeader: true, + formatHeader: true, }, }); @@ -57,7 +59,9 @@ describe('TableSheet Export Test', () => { }, }), assembleOptions({ - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, }), ); @@ -394,7 +398,7 @@ describe('PivotSheet Export Test', () => { }); }); - it('should export correct data when isFormat: {isFormatHeader: true}', async () => { + it('should export correct data when isFormat: {formatHeader: true}', async () => { const s2 = new PivotSheet( getContainer(), assembleDataCfg({ @@ -427,7 +431,7 @@ describe('PivotSheet Export Test', () => { sheetInstance: s2, split: '\t', formatOptions: { - isFormatHeader: true, + formatHeader: true, }, }); const rows = data.split('\n'); diff --git a/packages/s2-core/__tests__/unit/utils/export/export-table-spec.ts b/packages/s2-core/__tests__/unit/utils/export/export-table-spec.ts index 726ebc946d..26f3d6f269 100644 --- a/packages/s2-core/__tests__/unit/utils/export/export-table-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/export/export-table-spec.ts @@ -25,7 +25,9 @@ describe('TableSheet Export Test', () => { data: slice(originData, 0, 10), }), assembleOptions({ - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }), ); @@ -65,7 +67,7 @@ describe('TableSheet Export Test', () => { sheetInstance: s2, split: NewTab, formatOptions: { - isFormatHeader: true, + formatHeader: true, }, }); @@ -75,7 +77,7 @@ describe('TableSheet Export Test', () => { sheetInstance: s2, split: NewTab, formatOptions: { - isFormatHeader: true, + formatHeader: true, }, isAsyncExport: true, }); @@ -94,7 +96,9 @@ describe('TableSheet Export Test', () => { data: slice(originData, 0, 10), }), assembleOptions({ - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, }), ); @@ -135,7 +139,9 @@ describe('TableSheet Export Test', () => { }, }), assembleOptions({ - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, }), ); @@ -166,7 +172,9 @@ describe('TableSheet Export Test', () => { }, }), assembleOptions({ - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, }), ); diff --git a/packages/s2-core/__tests__/unit/utils/g-mini-charts-spec.ts b/packages/s2-core/__tests__/unit/utils/g-mini-charts-spec.ts index 5e88113ef6..f3fc779114 100644 --- a/packages/s2-core/__tests__/unit/utils/g-mini-charts-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/g-mini-charts-spec.ts @@ -4,7 +4,7 @@ import { forEach, map } from 'lodash'; import { data } from 'tests/data/mock-dataset.json'; import type { RangeColors } from '../../../src/common/interface/theme'; import { PivotSheet, SpreadSheet } from '@/sheet-type'; -import { CellType, MiniChartTypes, type S2CellType } from '@/common'; +import { CellType, MiniChartType, type S2CellType } from '@/common'; import { getBulletRangeColor, transformRatioToPercent, @@ -47,7 +47,7 @@ describe('MiniCharts Utils Tests', () => { test('should get right points of line', () => { const chartData = { - type: MiniChartTypes.Line, + type: MiniChartType.Line, data: [ { year: '2018', value: 10 }, { year: '2019', value: 0 }, @@ -73,7 +73,7 @@ describe('MiniCharts Utils Tests', () => { test('should get right points of line when all values are more then 0', () => { const chartData = { - type: MiniChartTypes.Line, + type: MiniChartType.Line, data: [ { year: '2018', value: 10 }, { year: '2019', value: 5 }, @@ -99,7 +99,7 @@ describe('MiniCharts Utils Tests', () => { test('should get right points of line when all values are less then 0', () => { const chartData = { - type: MiniChartTypes.Line, + type: MiniChartType.Line, data: [ { year: '2018', value: -5 }, { year: '2019', value: -10 }, @@ -125,7 +125,7 @@ describe('MiniCharts Utils Tests', () => { test('should get right points of line when all values are equal to each other', () => { const chartData = { - type: MiniChartTypes.Line, + type: MiniChartType.Line, data: [ { year: '2018', value: 0 }, { year: '2019', value: 0 }, @@ -151,7 +151,7 @@ describe('MiniCharts Utils Tests', () => { test('should get right scale of bar', () => { const chartData = { - type: MiniChartTypes.Bar, + type: MiniChartType.Bar, data: [ { year: '2018', value: 10 }, { year: '2019', value: 0 }, @@ -182,7 +182,7 @@ describe('MiniCharts Utils Tests', () => { test('should get right scale of bar when all values are less then 0', () => { const chartData = { - type: MiniChartTypes.Bar, + type: MiniChartType.Bar, data: [ { year: '2018', value: -5 }, { year: '2019', value: -10 }, @@ -214,7 +214,7 @@ describe('MiniCharts Utils Tests', () => { test('should get right points of bar when all values are equal to each other', () => { const chartData = { - type: MiniChartTypes.Bar, + type: MiniChartType.Bar, data: [ { year: '2018', value: 10 }, { year: '2019', value: 10 }, diff --git a/packages/s2-core/__tests__/unit/utils/interaction/select-event-spec.ts b/packages/s2-core/__tests__/unit/utils/interaction/select-event-spec.ts index 929ee66cc5..a49bf97778 100644 --- a/packages/s2-core/__tests__/unit/utils/interaction/select-event-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/interaction/select-event-spec.ts @@ -50,7 +50,9 @@ describe('Select Event Utils Tests', () => { { colId: 'city', rowIndex: 5 } as unknown as ViewMeta, { options: { - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, }, interaction: { getAllCells: () => [cell], diff --git a/packages/s2-core/__tests__/unit/utils/merge-spec.ts b/packages/s2-core/__tests__/unit/utils/merge-spec.ts index 6ebe33c4ac..a7bfb4a191 100644 --- a/packages/s2-core/__tests__/unit/utils/merge-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/merge-spec.ts @@ -176,93 +176,7 @@ describe('merge test', () => { test('should get safety options', () => { // 加这个测试可以防止 本地跑 demo 修改了默认配置 直接提交 - expect(getSafetyOptions(null)).toMatchInlineSnapshot(` - Object { - "conditions": Object {}, - "cornerExtraFieldText": "", - "cornerText": "", - "customSVGIcons": Array [], - "debug": false, - "device": "pc", - "frozen": Object { - "colCount": 0, - "rowCount": 0, - "rowHeader": true, - "trailingColCount": 0, - "trailingRowCount": 0, - }, - "hdAdapter": true, - "headerActionIcons": Array [], - "height": 480, - "hierarchyType": "grid", - "interaction": Object { - "autoResetSheetStyle": true, - "brushSelection": Object { - "colCell": false, - "dataCell": true, - "rowCell": false, - }, - "eventListenerOptions": false, - "hiddenColumnFields": Array [], - "hoverFocus": Object { - "duration": 800, - }, - "hoverHighlight": true, - "linkFields": Array [], - "multiSelection": true, - "overscrollBehavior": "auto", - "rangeSelection": true, - "resize": Object { - "colCellHorizontal": true, - "colCellVertical": true, - "colResizeType": "current", - "cornerCellHorizontal": true, - "rowCellVertical": true, - "rowResizeType": "current", - }, - "scrollSpeedRatio": Object { - "horizontal": 1, - "vertical": 1, - }, - "scrollbarPosition": "content", - "selectedCellHighlight": false, - "selectedCellsSpotlight": false, - }, - "placeholder": "-", - "showDefaultHeaderActionIcon": false, - "showSeriesNumber": false, - "style": Object { - "colCell": Object { - "height": 30, - "heightByField": null, - "widthByField": null, - }, - "dataCell": Object { - "height": 30, - "width": 96, - }, - "layoutWidthType": "adaptive", - "rowCell": Object { - "heightByField": null, - "showTreeLeafNodeAlignDot": false, - "widthByField": null, - }, - }, - "tooltip": Object { - "autoAdjustBoundary": "body", - "enable": false, - "operation": Object { - "hiddenColumns": false, - "menu": Object { - "items": Array [], - }, - "sort": false, - }, - }, - "totals": Object {}, - "width": 600, - } - `); + expect(getSafetyOptions(null)).toMatchSnapshot(); }); test('should get custom options', () => { diff --git a/packages/s2-core/__tests__/unit/utils/tooltip-spec.ts b/packages/s2-core/__tests__/unit/utils/tooltip-spec.ts index 00cbc509af..8535ece96e 100644 --- a/packages/s2-core/__tests__/unit/utils/tooltip-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/tooltip-spec.ts @@ -877,7 +877,11 @@ describe('Tooltip Utils Tests', () => { describe('Tooltip Get Data Tests For TableSheet', () => { beforeEach(() => { s2 = createTableSheet( - { showSeriesNumber: true }, + { + seriesNumber: { + enable: true, + }, + }, { useSimpleData: false }, ); s2.render(); diff --git a/packages/s2-core/__tests__/util/helpers.ts b/packages/s2-core/__tests__/util/helpers.ts index 596827ab0f..ba66984dd1 100644 --- a/packages/s2-core/__tests__/util/helpers.ts +++ b/packages/s2-core/__tests__/util/helpers.ts @@ -83,7 +83,7 @@ export const createFakeSpreadSheet = (config?: { s2.options = assembleOptions( { ...DEFAULT_OPTIONS, - hdAdapter: false, + hd: false, }, s2Options, ); @@ -316,7 +316,7 @@ export const createTableSheet = ( getContainer(), useSimpleData ? simpleDataConfig : dataConfig, { - hdAdapter: false, + hd: false, ...s2Options, }, ); diff --git a/packages/s2-core/package.json b/packages/s2-core/package.json index 2c47ca6b39..ef04c6d931 100644 --- a/packages/s2-core/package.json +++ b/packages/s2-core/package.json @@ -47,7 +47,7 @@ "build:analysis": "cross-env FORMAT=esm ANALYSIS=true rollup -c rollup.config.mjs", "build:dts": "run-s dts:*", "build:size-limit": "size-limit", - "build:size-limit-json": "yarn build:size-limit --json", + "build:size-limit-json": "pnpm build:size-limit -- --json", "dts:build": "tsc -p tsconfig.declaration.json", "dts:extract": "cross-env LIB=s2-core node ../../scripts/dts.js", "watch": "rimraf esm && pnpm build:esm -w", diff --git a/packages/s2-core/rollup.config.mjs b/packages/s2-core/rollup.config.mjs index 1534a61c85..88eb0afb3c 100644 --- a/packages/s2-core/rollup.config.mjs +++ b/packages/s2-core/rollup.config.mjs @@ -32,7 +32,13 @@ const output = { const plugins = [ peerDepsExternal(), alias({ - entries: [{ find: 'lodash', replacement: 'lodash-es' }], + entries: [ + { find: 'lodash', replacement: 'lodash-es' }, + // { + // find: /^(?.*).less\?inline$/, + // replacement: '$1.less', + // }, + ], }), replace({ 'process.env.NODE_ENV': JSON.stringify('production'), diff --git a/packages/s2-core/src/cell/base-cell.ts b/packages/s2-core/src/cell/base-cell.ts index 435531a4cc..0d8b2696c2 100644 --- a/packages/s2-core/src/cell/base-cell.ts +++ b/packages/s2-core/src/cell/base-cell.ts @@ -1,5 +1,6 @@ import type { DisplayObject, + Image, Line, PointLike, Polygon, @@ -32,6 +33,7 @@ import type { GuiIcon } from '../common/icons/gui-icon'; import { CellBorderPosition, CellClipBox, + type CellTextWordWrapStyle, type Condition, type ConditionMappingResult, type Conditions, @@ -90,7 +92,7 @@ export abstract class BaseCell extends Group { protected theme: InternalFullyTheme; // background control shape - protected backgroundShape: Rect | Polygon; + protected backgroundShape: Rect | Polygon | Image; // text control shape protected textShape: CustomText; @@ -148,13 +150,13 @@ export abstract class BaseCell extends Group { protected abstract getIconPosition(): PointLike; - protected abstract findFieldCondition( - conditions: Condition[] | undefined, - ): Condition | undefined; + protected abstract findFieldCondition( + conditions?: Con[], + ): Con | undefined; - protected abstract mappingValue( - condition: Condition, - ): ConditionMappingResult | undefined | null; + protected abstract mappingValue( + condition: Condition, + ): ConditionMappingResult; protected abstract getBackgroundColor(): { backgroundColor: string | undefined; @@ -206,6 +208,17 @@ export abstract class BaseCell extends Group { return false; } + public getCellTextWordWrapStyle(cellType?: CellType): CellTextWordWrapStyle { + const { wordWrap, maxLines, textOverflow } = (this.spreadsheet.options + ?.style?.[cellType || this.cellType] || {}) as CellTextWordWrapStyle; + + return { + wordWrap, + maxLines, + textOverflow, + }; + } + /** * 获取实际渲染的文本 (含省略号) */ @@ -221,7 +234,7 @@ export abstract class BaseCell extends Group { } /** - * 实际渲染的文本宽度, 如果是多行文本, 取每一行文本高度的总和) + * 实际渲染的文本宽度, 如果是多行文本, 取每一行文本高度的总和 * @alias getMultiLineActualTextHeight */ public getActualTextHeight(): number { @@ -271,6 +284,9 @@ export abstract class BaseCell extends Group { return this.getTextLineBoundingRects().length > 1; } + /** + * 获取单元格空值占位符 + */ public getEmptyPlaceholder() { const { options: { placeholder }, @@ -286,6 +302,9 @@ export abstract class BaseCell extends Group { return this.textShape?.getLineBoundingRects() || []; } + /** + * 获取单元格展示的数值 + */ public getFieldValue() { return this.getFormattedFieldValue().formattedValue; } diff --git a/packages/s2-core/src/cell/corner-cell.ts b/packages/s2-core/src/cell/corner-cell.ts index 2d484d095b..4a41ced6d3 100644 --- a/packages/s2-core/src/cell/corner-cell.ts +++ b/packages/s2-core/src/cell/corner-cell.ts @@ -114,7 +114,6 @@ export class CornerCell extends HeaderCell { } const resizeStyle = this.getResizeAreaStyle(); - const resizeArea = getOrCreateResizeAreaGroupById( this.spreadsheet, KEY_GROUP_CORNER_RESIZE_AREA, diff --git a/packages/s2-core/src/cell/data-cell.ts b/packages/s2-core/src/cell/data-cell.ts index a81850c762..f50a7d5469 100644 --- a/packages/s2-core/src/cell/data-cell.ts +++ b/packages/s2-core/src/cell/data-cell.ts @@ -306,11 +306,15 @@ export class DataCell extends BaseCell { } protected getTextStyle(): TextTheme { + const textOverflowStyle = this.getCellTextWordWrapStyle(); const { isTotals } = this.meta; const { dataCell } = this.theme; const textStyle = isTotals ? dataCell?.bolderText : dataCell?.text; - return this.getContainConditionMappingResultTextStyle(textStyle); + return this.getContainConditionMappingResultTextStyle({ + ...textOverflowStyle, + ...textStyle, + }); } protected drawConditionIntervalShape() { @@ -472,7 +476,9 @@ export class DataCell extends BaseCell { * Find current field related condition * @param conditions */ - public findFieldCondition(conditions: Condition[]): Condition | undefined { + public findFieldCondition( + conditions: Con[] = [], + ): Con | undefined { return findLast(conditions, (item) => item.field instanceof RegExp ? item.field.test(this.meta.valueField) @@ -484,9 +490,10 @@ export class DataCell extends BaseCell { * Mapping value to get condition related attrs * @param condition */ - public mappingValue( - condition: Condition, - ): ConditionMappingResult | undefined | null { + + public mappingValue( + condition: Condition, + ): ConditionMappingResult { const value = this.meta.fieldValue as unknown as number; const rowDataInfo = this.spreadsheet.isTableMode() ? this.spreadsheet.dataSet.getCellData({ @@ -494,7 +501,7 @@ export class DataCell extends BaseCell { }) : CellData.getFieldValue(this.meta.data as ViewMetaData); - return condition?.mapping(value, rowDataInfo as RawData, this); + return condition.mapping(value, rowDataInfo as RawData, this); } public updateByState(stateName: InteractionStateName) { diff --git a/packages/s2-core/src/cell/header-cell.ts b/packages/s2-core/src/cell/header-cell.ts index 69a5dee2a5..9edae0b968 100644 --- a/packages/s2-core/src/cell/header-cell.ts +++ b/packages/s2-core/src/cell/header-cell.ts @@ -1,6 +1,6 @@ import type { - DisplayObject, FederatedPointerEvent as CanvasEvent, + DisplayObject, PointLike, } from '@antv/g'; import { @@ -388,6 +388,7 @@ export abstract class HeaderCell< } protected getTextStyle(): TextTheme { + const textOverflowStyle = this.getCellTextWordWrapStyle(); const { text, bolderText, measureText } = this.getStyle()!; let style: TextTheme | undefined; @@ -399,7 +400,10 @@ export abstract class HeaderCell< style = text; } - return this.getContainConditionMappingResultTextStyle(style); + return this.getContainConditionMappingResultTextStyle({ + ...textOverflowStyle, + ...style, + }); } public getBackgroundColor() { @@ -474,13 +478,17 @@ export abstract class HeaderCell< return [EXTRA_FIELD, EXTRA_COLUMN_FIELD].includes(this.meta.field); } - public mappingValue(condition: Condition): ConditionMappingResult { + mappingValue( + condition: Condition, + ): ConditionMappingResult { const value = this.getMeta().value; - return condition?.mapping(value, this.meta, this)!; + return condition.mapping(value, this.meta, this); } - public findFieldCondition(conditions: Condition[]): Condition | undefined { + public findFieldCondition( + conditions: Con[] = [], + ): Con | undefined { return findLast(conditions, (item) => item.field instanceof RegExp ? item.field.test(this.meta.field) diff --git a/packages/s2-core/src/cell/merged-cell.ts b/packages/s2-core/src/cell/merged-cell.ts index b3d84810b2..4c7ca45b8c 100644 --- a/packages/s2-core/src/cell/merged-cell.ts +++ b/packages/s2-core/src/cell/merged-cell.ts @@ -1,14 +1,14 @@ -import { isEmpty, isObject } from 'lodash'; +import { isEmpty } from 'lodash'; import { CellType } from '../common/constant'; import { CellBorderPosition, type ViewMeta } from '../common/interface'; import type { SpreadSheet } from '../sheet-type'; +import { getBorderPositionAndStyle } from '../utils'; import { renderLine, renderPolygon } from '../utils/g-renders'; import { getPolygonPoints, getRightAndBottomCells, } from '../utils/interaction/merge-cell'; -import { drawObjectText } from '../utils/text'; -import { getBorderPositionAndStyle } from '../utils'; +import { drawCustomContent } from '../utils/text'; import { DataCell } from './data-cell'; /** @@ -61,11 +61,11 @@ export class MergedCell extends DataCell { return; } - if (isObject(this.meta.fieldValue)) { - drawObjectText(this); - } else { - super.drawTextShape(); + if (this.isMultiData()) { + return drawCustomContent(this); } + + super.drawTextShape(); } override drawBorders(): void { diff --git a/packages/s2-core/src/cell/series-number-cell.ts b/packages/s2-core/src/cell/series-number-cell.ts index 1235470b25..79b20b51a8 100644 --- a/packages/s2-core/src/cell/series-number-cell.ts +++ b/packages/s2-core/src/cell/series-number-cell.ts @@ -1,15 +1,9 @@ import type { PointLike } from '@antv/g'; -import type { - TextTheme, - FormatResult, - Condition, - ConditionMappingResult, - AreaRange, -} from '../common/interface'; -import { CellBorderPosition, CellClipBox } from '../common/interface/basic'; import { CellType } from '../common/constant/interaction'; -import type { Node } from '../facet/layout/node'; +import type { AreaRange, FormatResult } from '../common/interface'; +import { CellBorderPosition, CellClipBox } from '../common/interface/basic'; import type { BaseHeaderConfig } from '../facet/header/interface'; +import type { Node } from '../facet/layout/node'; import { getHorizontalTextIconPosition } from '../utils/cell/cell'; import { adjustTextIconPositionWhileScrolling } from '../utils/cell/text-scrolling'; import { normalizeTextAlign } from '../utils/normalize'; @@ -55,8 +49,16 @@ export class SeriesNumberCell extends BaseCell { /** 序号单元格暂时没有交互的联动 */ } - protected getTextStyle(): TextTheme { - return this.getStyle()?.seriesText!; + protected getTextStyle() { + const textOverflowStyle = this.getCellTextWordWrapStyle( + CellType.SERIES_NUMBER_CELL, + ); + const style = this.getStyle()?.seriesText!; + + return { + ...textOverflowStyle, + ...style, + }; } protected getFormattedFieldValue(): FormatResult { @@ -114,11 +116,11 @@ export class SeriesNumberCell extends BaseCell { return { x: textX, y: textStart }; } - protected findFieldCondition(): Condition | undefined { + protected findFieldCondition() { return undefined; } - protected mappingValue(): ConditionMappingResult | undefined { + protected mappingValue() { return undefined; } diff --git a/packages/s2-core/src/cell/table-col-cell.ts b/packages/s2-core/src/cell/table-col-cell.ts index 11cc2c1d99..5dbf055ce4 100644 --- a/packages/s2-core/src/cell/table-col-cell.ts +++ b/packages/s2-core/src/cell/table-col-cell.ts @@ -117,9 +117,13 @@ export class TableColCell extends ColCell { } protected getTextStyle() { - const style = this.getStyle(); + const textOverflowStyle = this.getCellTextWordWrapStyle(); + const style = this.getStyle()?.bolderText!; - return style?.bolderText!; + return { + ...textOverflowStyle, + ...style, + }; } protected getHorizontalResizeAreaName() { diff --git a/packages/s2-core/src/cell/table-series-number-cell.ts b/packages/s2-core/src/cell/table-series-number-cell.ts index d5a0faef26..b1e0be0066 100644 --- a/packages/s2-core/src/cell/table-series-number-cell.ts +++ b/packages/s2-core/src/cell/table-series-number-cell.ts @@ -14,6 +14,14 @@ export class TableSeriesNumberCell extends TableDataCell { } protected getTextStyle(): TextTheme { - return this.theme.rowCell!.seriesText!; + const textOverflowStyle = this.getCellTextWordWrapStyle( + CellType.SERIES_NUMBER_CELL, + ); + const style = this.theme.rowCell!.seriesText!; + + return { + ...textOverflowStyle, + ...style, + }; } } diff --git a/packages/s2-core/src/common/constant/basic.ts b/packages/s2-core/src/common/constant/basic.ts index 680fb04a8b..a8d854534c 100644 --- a/packages/s2-core/src/common/constant/basic.ts +++ b/packages/s2-core/src/common/constant/basic.ts @@ -57,7 +57,7 @@ export const DEFAULT_CORNER_MAX_WIDTH_RATIO = 0.5; export const LAYOUT_SAMPLE_COUNT = 50; /** mini 图类型 */ -export enum MiniChartTypes { +export enum MiniChartType { Line = 'line', Bar = 'bar', Bullet = 'bullet', diff --git a/packages/s2-core/src/common/constant/options.ts b/packages/s2-core/src/common/constant/options.ts index 2dc5fa57b3..9cc6b96ffc 100644 --- a/packages/s2-core/src/common/constant/options.ts +++ b/packages/s2-core/src/common/constant/options.ts @@ -1,9 +1,13 @@ -import { ResizeType } from '../../common/constant/resize'; +import { + RESIZE_MIN_CELL_HEIGHT, + RESIZE_MIN_CELL_WIDTH, + ResizeType, +} from '../../common/constant/resize'; import { HOVER_FOCUS_DURATION, ScrollbarPositionType, } from '../constant/interaction'; -import type { S2Style } from '../interface'; +import type { CellTextWordWrapStyle, S2Style } from '../interface'; import type { S2Options } from '../interface/s2Options'; import { DeviceType } from '../interface/s2Options'; import { EMPTY_PLACEHOLDER } from './basic'; @@ -14,7 +18,7 @@ export const MIN_DEVICE_PIXEL_RATIO = 1; * 布局类型: * adaptive: 行列等宽,均分整个 canvas 画布宽度 * colAdaptive:列等宽,行头紧凑布局,列等分画布宽度减去行头宽度的剩余宽度 - * compact:行列紧凑布局,指标维度少的时候无法布满整个画布 + * compact:行列紧凑布局,指标维度少的时候无法布满整个画布,列头宽度为实际内容宽度(取当前列最大值,采样每一列前 50 条数据 */ export enum LayoutWidthType { Adaptive = 'adaptive', @@ -26,19 +30,30 @@ export const SPLIT_LINE_WIDTH = 1; export const DEFAULT_TREE_ROW_CELL_WIDTH = 120; +export const DEFAULT_CELL_TEXT_WORD_WRAP_STYLE: CellTextWordWrapStyle = { + wordWrap: true, + maxLines: 1, + textOverflow: 'ellipsis', +}; + export const DEFAULT_STYLE: S2Style = { layoutWidthType: LayoutWidthType.Adaptive, + seriesNumberCell: DEFAULT_CELL_TEXT_WORD_WRAP_STYLE, + cornerCell: DEFAULT_CELL_TEXT_WORD_WRAP_STYLE, rowCell: { + ...DEFAULT_CELL_TEXT_WORD_WRAP_STYLE, showTreeLeafNodeAlignDot: false, widthByField: null, heightByField: null, }, colCell: { + ...DEFAULT_CELL_TEXT_WORD_WRAP_STYLE, height: 30, widthByField: null, heightByField: null, }, dataCell: { + ...DEFAULT_CELL_TEXT_WORD_WRAP_STYLE, width: 96, height: 30, }, @@ -64,6 +79,11 @@ export const DEFAULT_OPTIONS: S2Options = { }, }, interaction: { + copy: { + enable: true, + withFormat: true, + withHeader: false, + }, linkFields: [], hiddenColumnFields: [], selectedCellsSpotlight: false, @@ -76,8 +96,8 @@ export const DEFAULT_OPTIONS: S2Options = { autoResetSheetStyle: true, brushSelection: { dataCell: true, - rowCell: false, - colCell: false, + rowCell: true, + colCell: true, }, multiSelection: true, rangeSelection: true, @@ -89,12 +109,16 @@ export const DEFAULT_OPTIONS: S2Options = { colCellVertical: true, rowResizeType: ResizeType.CURRENT, colResizeType: ResizeType.CURRENT, + minCellWidth: RESIZE_MIN_CELL_WIDTH, + minCellHeight: RESIZE_MIN_CELL_HEIGHT, }, eventListenerOptions: false, selectedCellHighlight: false, overscrollBehavior: 'auto', }, - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, customSVGIcons: [], showDefaultHeaderActionIcon: false, headerActionIcons: [], @@ -106,7 +130,7 @@ export const DEFAULT_OPTIONS: S2Options = { trailingRowCount: 0, trailingColCount: 0, }, - hdAdapter: true, + hd: true, cornerText: '', cornerExtraFieldText: '', placeholder: EMPTY_PLACEHOLDER, diff --git a/packages/s2-core/src/common/constant/resize.ts b/packages/s2-core/src/common/constant/resize.ts index db0d17cd00..f0d1ee53d0 100644 --- a/packages/s2-core/src/common/constant/resize.ts +++ b/packages/s2-core/src/common/constant/resize.ts @@ -1,8 +1,10 @@ export const RESIZE_START_GUIDE_LINE_ID = 'RESIZE_START_GUIDE_LINE'; export const RESIZE_END_GUIDE_LINE_ID = 'RESIZE_END_GUIDE_LINE'; export const RESIZE_MASK_ID = 'RESIZE_MASK'; +export const RESIZE_MIN_CELL_WIDTH = 20; +export const RESIZE_MIN_CELL_HEIGHT = 20; -// resize时鼠标移动方向类型 +// resize 时鼠标移动方向类型 export enum ResizeDirectionType { /** 水平方向 resize */ Horizontal = 'col', diff --git a/packages/s2-core/src/common/interface/basic.ts b/packages/s2-core/src/common/interface/basic.ts index 5480d9511b..949fdfed92 100644 --- a/packages/s2-core/src/common/interface/basic.ts +++ b/packages/s2-core/src/common/interface/basic.ts @@ -147,7 +147,7 @@ export interface Total { showGrandTotals?: boolean; /** - *是否显示小计 + * 是否显示小计 */ showSubTotals?: | boolean @@ -174,10 +174,13 @@ export interface Total { /** * 总计分组 + * @example grandTotalsGroupDimensions: ['city'] */ grandTotalsGroupDimensions?: string[]; + /** * 小计分组 + * @example subTotalsGroupDimensions: ['city'] */ subTotalsGroupDimensions?: string[]; @@ -210,7 +213,7 @@ export interface Totals { } export interface Sort { - /** 字段id */ + /** 字段 id */ sortFieldId: string; /** 排序方式 */ @@ -337,7 +340,7 @@ export interface HeaderActionIconBaseOptions { * 是否展示, 可根据当前单元格信息动态判断 * @example displayCondition: (meta, iconName) => !meta.isTotals */ - displayCondition?: (mete: Node, iconName: string) => boolean; + displayCondition?: (meta: Node, iconName: string) => boolean; /** * 点击回调函数 diff --git a/packages/s2-core/src/common/interface/condition.ts b/packages/s2-core/src/common/interface/condition.ts index a93aea754b..4b665f336e 100644 --- a/packages/s2-core/src/common/interface/condition.ts +++ b/packages/s2-core/src/common/interface/condition.ts @@ -1,6 +1,6 @@ import type { DataCell, HeaderCell } from '../../cell'; import type { RawData } from './s2DataConfig'; -import type { IconTheme, TextTheme } from './theme'; +import type { TextTheme } from './theme'; export interface ValueRange { minValue?: number; @@ -9,31 +9,39 @@ export interface ValueRange { export type ValueRanges = Record; -export type ConditionMappingResult = ValueRange & - T & { - // only used in icon condition - icon?: string; - // interval, background, text fill color - fill?: string; - // only used in interval condition - isCompare?: boolean; - /** - * @description only used in background condition, when the background color is too light, the font color will be white - * @version 1.34.0 - */ - intelligentReverseTextColor?: boolean; - /** - * @description custom the interval condition's width - * @version 1.38.0 - */ - fieldValue?: number; - }; +export type TextConditionMappingResult = TextTheme; + +export type BackgroundConditionMappingResult = { + fill: string; + /** + * @description only used in background condition, when the background color is too light, the font color will be white + * @version 1.34.0 + */ + intelligentReverseTextColor?: boolean; +}; + +export type IconConditionMappingResult = { + fill: string; + icon: string; +}; + +export type IntervalConditionMappingResult = { + fill?: string; + isCompare?: boolean; + /** + * @description custom the interval condition's width + * @version 1.38.0 + */ + fieldValue?: number | string; +} & ValueRange; + +export type ConditionMappingResult = T | undefined | null; export type ConditionMapping = ( fieldValue: number | string, data: RawData, cell?: DataCell | HeaderCell, -) => ConditionMappingResult | undefined | null; +) => ConditionMappingResult; /** * One field can hold a condition @@ -43,21 +51,19 @@ export interface Condition { mapping: ConditionMapping; } -export type IconPosition = 'left' | 'right'; - -export interface IconCondition extends Condition { - // right by default - position?: IconPosition; -} +export type TextCondition = Condition; +export type BackgroundCondition = Condition; +export type IntervalCondition = Condition; -export interface TextCondition extends Condition { +export type IconPosition = 'left' | 'right'; +export interface IconCondition extends Condition { // right by default position?: IconPosition; } export interface Conditions { text?: TextCondition[]; - background?: Condition[]; - interval?: Condition[]; + background?: BackgroundCondition[]; + interval?: IntervalCondition[]; icon?: IconCondition[]; } diff --git a/packages/s2-core/src/common/interface/export.ts b/packages/s2-core/src/common/interface/export.ts index 4480aab47f..4bda53072d 100644 --- a/packages/s2-core/src/common/interface/export.ts +++ b/packages/s2-core/src/common/interface/export.ts @@ -36,8 +36,8 @@ export type Copyable = CopyableItem | CopyableItem[]; export type FormatOptions = | boolean | { - isFormatHeader?: boolean; - isFormatData?: boolean; + formatHeader?: boolean; + formatData?: boolean; }; export interface Transformer { @@ -55,8 +55,8 @@ export interface CopyOrExportConfig { export interface CopyAndExportUnifyConfig { separator: string; - isFormatHeader: boolean; - isFormatData: boolean; + formatHeader: boolean; + formatData: boolean; selectedCells: CellMeta[]; transformers: Transformer; isAsyncExport: boolean; diff --git a/packages/s2-core/src/common/interface/index.ts b/packages/s2-core/src/common/interface/index.ts index 610f33fbff..c2352c7846 100644 --- a/packages/s2-core/src/common/interface/index.ts +++ b/packages/s2-core/src/common/interface/index.ts @@ -17,5 +17,5 @@ export * from './facet'; export * from './style'; export * from './collapse'; export * from './text'; -export * from './utils'; +export * from './type-utils'; export * from './export'; diff --git a/packages/s2-core/src/common/interface/interaction.ts b/packages/s2-core/src/common/interface/interaction.ts index c2024be3d6..256ca688e5 100644 --- a/packages/s2-core/src/common/interface/interaction.ts +++ b/packages/s2-core/src/common/interface/interaction.ts @@ -56,18 +56,22 @@ export interface InteractionStateInfo { * 交互状态名 */ stateName?: InteractionStateName; + /** * 单元格元数据 (包含不在可视范围内的) */ cells?: CellMeta[]; + /** * 交互状态发生改变的单元格实例 */ interactedCells?: S2CellType[]; + /** * 选中的单元格节点 */ nodes?: Node[]; + /** * 如果单元格为空, 是否强制更新 (适用于反选等场景) */ @@ -100,7 +104,6 @@ export interface BrushPoint { y: number; scrollX?: number; scrollY?: number; - /** 用于标记 row cell 和 col cell 点的 x, y 坐标 */ headerX?: number; headerY?: number; @@ -157,11 +160,13 @@ export interface InteractionOptions { /** * 选中单元格高亮聚焦 + * @see https://s2.antv.antgroup.com/examples/interaction/basic/#header-cell-click-selection */ selectedCellsSpotlight?: boolean; /** * 十字器高亮效果 + * @see https://s2.antv.antgroup.com/examples/interaction/basic/#hover */ hoverHighlight?: InteractionCellHighlightOptions | boolean; @@ -171,26 +176,34 @@ export interface InteractionOptions { hoverFocus?: HoverFocusOptions | boolean; /** - * 开启复制 Command/Ctrl + C - */ - enableCopy?: boolean; - - /** - * 复制带格式的数据 - */ - copyWithFormat?: boolean; - - /** - * 复制包含其对应行列头的数据 + * 单元格文本复制 + * @see https://s2.antv.antgroup.com/examples/interaction/basic/#copy-export */ - copyWithHeader?: boolean; + copy?: { + /** + * 开启复制 Command/Ctrl + C (默认开启) + */ + enable?: boolean; + + /** + * 复制带格式的数据 (默认开启) + */ + withFormat?: boolean; + + /** + * 复制包含其对应行列头的数据 + */ + withHeader?: boolean; + + /** + * 复制时支持自定义 (transformer) 数据导出格式化方法 + */ + customTransformer?: (transformer: Transformer) => Partial; + }; - /** - * 复制时支持自定义(transformer)数据导出格式化方法 - */ - customTransformer?: (transformer: Transformer) => Partial; /** * 自动重置表格样式 (按下 ESC 键, 点击空白区域时, 关闭 tooltip/交互状态) + * @see https://s2.antv.antgroup.com/examples/interaction/basic/#auto-reset-sheet-style */ autoResetSheetStyle?: boolean; @@ -198,65 +211,76 @@ export interface InteractionOptions { * 隐藏列头配置, 支持维度 (S2DataConfig.fields) 和具体维值 (id) * @example hiddenColumnFields: ['type', 'subType']; * @example hiddenColumnFields: ['root[&]家具[&]桌子[&]number'] + * @see https://s2.antv.antgroup.com/examples/interaction/advanced/#pivot-hide-columns */ hiddenColumnFields?: string[]; /** * 自定义滚动速率, 默认 1 - * @see https://s2.antv.antgroup.com/manual/advanced/interaction/scroll + * @see https://s2.antv.antgroup.com/examples/interaction/advanced/#scroll-speed-ratio */ scrollSpeedRatio?: ScrollSpeedRatio; /** * 宽高调整 + * @see https://s2.antv.antgroup.com/manual/advanced/interaction/resize */ resize?: ResizeInteractionOptions | boolean; /** * 刷选 + * @see https://s2.antv.antgroup.com/examples/interaction/basic/#brush-selection */ brushSelection?: BrushSelectionOptions | boolean; /** * 多选 Command/Ctrl + click + * @see https://s2.antv.antgroup.com/examples/interaction/basic/#header-cell-click-selection */ multiSelection?: boolean; /** * 区间快捷多选 Shift + click + * @see https://s2.antv.antgroup.com/examples/interaction/basic/#data-cell-range-selection */ rangeSelection?: boolean; /** * 键盘方向键移动选中单元格 + * @see https://s2.antv.antgroup.com/examples/interaction/basic/#selected-cell-move */ selectedCellMove?: boolean; /** * 滚动条位置 (可用于表格内容未撑满 Canvas 的场景) + * @example scrollbarPosition: 'content' */ scrollbarPosition?: ScrollbarPositionType; /** * 透传 listener 属性的可选参数对象 * @see https://developer.mozilla.org/zh-CN/docs/Web/API/EventTarget/addEventListener + * @see https://s2.antv.antgroup.com/examples/interaction/basic/#event */ eventListenerOptions?: boolean | AddEventListenerOptions; /** * 选中单元格高亮联动 (高亮所对应行头/列头, 高亮当前行/当前列) + * https://s2.antv.antgroup.com/examples/interaction/basic#selected-cell-highlight */ selectedCellHighlight?: boolean | InteractionCellHighlightOptions; /** * 滚动到边界的行为 * @see https://s2.antv.antgroup.com/manual/advanced/interaction/scroll + * @see https://s2.antv.antgroup.com/examples/interaction/advanced/#overscroll-behavior * @see https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior */ overscrollBehavior?: 'auto' | 'none' | 'contain' | null; /** * 表格滚动后是否触发 hover + * @see https://s2.antv.antgroup.com/examples/interaction/basic/#hover-after-scroll */ hoverAfterScroll?: boolean; diff --git a/packages/s2-core/src/common/interface/resize.ts b/packages/s2-core/src/common/interface/resize.ts index f51ff2fe03..ee50a6b14e 100644 --- a/packages/s2-core/src/common/interface/resize.ts +++ b/packages/s2-core/src/common/interface/resize.ts @@ -92,8 +92,16 @@ export interface ResizeInteractionOptions { /** 列高调整时,影响当前列还是全部列 */ colResizeType?: ResizeType; + /** 是否允许调整, 返回 false 时拖拽的宽高无效 */ disable?: (resizeInfo: ResizeInfo) => boolean; + /** 是否显示热区 */ visible?: (cell: S2CellType) => boolean; + + /** 单元格可拖拽最小宽度 */ + minCellWidth?: number; + + /** 单元格可拖拽最小高度 */ + minCellHeight?: number; } diff --git a/packages/s2-core/src/common/interface/s2DataConfig.ts b/packages/s2-core/src/common/interface/s2DataConfig.ts index ce21a19d7a..9a1d3164e9 100644 --- a/packages/s2-core/src/common/interface/s2DataConfig.ts +++ b/packages/s2-core/src/common/interface/s2DataConfig.ts @@ -1,11 +1,11 @@ -import type { EXTRA_FIELD, MiniChartTypes, VALUE_FIELD } from '../constant'; +import type { EXTRA_FIELD, MiniChartType, VALUE_FIELD } from '../constant'; import type { Fields, FilterParam, Meta, SortParams } from './basic'; export interface BaseChartData { /** * 类型 */ - type: MiniChartTypes; + type: MiniChartType; /** * 数据 @@ -28,7 +28,7 @@ export interface BulletValue { /** * 类型 */ - type: MiniChartTypes.Bullet; + type: MiniChartType.Bullet; /** * 当前值 diff --git a/packages/s2-core/src/common/interface/s2Options.ts b/packages/s2-core/src/common/interface/s2Options.ts index 53c2e92a72..8d8a603bc0 100644 --- a/packages/s2-core/src/common/interface/s2Options.ts +++ b/packages/s2-core/src/common/interface/s2Options.ts @@ -52,7 +52,7 @@ export interface S2BasicOptions< height?: number; /** - * 开启调试模式 + * 开启调试模式 (打印额外信息) */ debug?: boolean; @@ -76,18 +76,25 @@ export interface S2BasicOptions< /** * 分页配置 + * @see https://s2.antv.antgroup.com/manual/advanced/analysis/pagination */ pagination?: P; /** - * 自定义序号列文本, 默认为 "序号" + * 序号列配置 + * @see https://s2.antv.antgroup.com/manual/basic/sheet-type/pivot-mode#%E5%BA%8F%E5%8F%B7 */ - seriesNumberText?: string; + seriesNumber?: { + /** + * 是否显示序号 + */ + enable?: boolean; - /** - * 是否显示序号 - */ - showSeriesNumber?: boolean; + /** + * 自定义序号列文本, 默认为 "序号" + */ + text?: string; + }; /** * 是否显示表头默认操作图标 @@ -116,12 +123,17 @@ export interface S2BasicOptions< * 是否开启高清适配 * @see https://s2.antv.antgroup.com/manual/advanced/hd-adapter */ - hdAdapter?: boolean; + hd?: boolean; /** * 空值单元格占位符 + * @see https://s2.antv.antgroup.com/zh/examples/custom/custom-cell/#data-cell-placeholder */ - placeholder?: ((meta: Record) => string) | string; + placeholder?: + | ((meta: Record) => string | undefined | null) + | string + | undefined + | null; /** * 设备类型: pc / mobile @@ -132,6 +144,7 @@ export interface S2BasicOptions< * 自定义 AntV/G 渲染引擎配置参数 & 插件注册 * @see https://g.antv.antgroup.com/plugins/intro * @see https://g.antv.antgroup.com/api/canvas/options + * @see https://s2.antv.antgroup.com/examples/custom/custom-plugins/#a11y * @example import { Plugin as PluginA11y } from '@antv/g-plugin-a11y'; @@ -182,6 +195,7 @@ export interface S2BasicOptions< /** * 自定义合并单元格 + * @see https://s2.antv.antgroup.com/examples/custom/custom-cell/#custom-merged-cell */ mergedCell?: MergedCellCallback; @@ -206,35 +220,38 @@ export interface S2BasicOptions< /** * 自定义节点排列顺序 (树状模式有效) - * @see https://s2.antv.antgroup.com/examples/custom/custom-layout#custom-layout-arrange + * @see https://s2.antv.antgroup.com/examples/custom/custom-layout/#custom-layout-arrange */ layoutArrange?: LayoutArrange; /** - * 自定义单元格对应节点坐标/宽高 - * @see https://s2.antv.antgroup.com/examples/custom/custom-layout#custom-layout-coordinate + * 自定义单元格节点坐标 + * @see https://s2.antv.antgroup.com/examples/custom/custom-layout/#custom-coordinate */ layoutCoordinate?: LayoutCoordinate; /** * 自定义单元格对应元数据 - * @see https://s2.antv.antgroup.com/zh/examples/custom/custom-layout/#custom-data-position + * @see https://s2.antv.antgroup.com/examples/custom/custom-layout/#custom-layout-cell-meta */ layoutCellMeta?: LayoutCellMeta; /** * 自定义序号节点 + * @see https://s2.antv.antgroup.com/examples/custom/custom-cell/#series-number-cell */ layoutSeriesNumberNodes?: LayoutSeriesNumberNodes; /** *********** 数据集 **************** */ /** * 自定义数据集 + * @see https://s2.antv.antgroup.com/examples/custom/custom-dataset/#custom-strategy-sheet-dataset */ dataSet?: (spreadsheet: SpreadSheet) => BaseDataSet; /** * 自定义分面 + * @see https://s2.antv.antgroup.com/examples/custom/custom-layout/#custom-facet */ facet?: (spreadsheet: SpreadSheet) => BaseFacet; } diff --git a/packages/s2-core/src/common/interface/store.ts b/packages/s2-core/src/common/interface/store.ts index 5ee5bcdfef..8fe4c72c0e 100644 --- a/packages/s2-core/src/common/interface/store.ts +++ b/packages/s2-core/src/common/interface/store.ts @@ -79,7 +79,7 @@ export interface StoreKey { /** * 原始数据配置 */ - originalDataCfg: Partial; + originalDataCfg: Partial | undefined | null; /** * 可视区域包裹盒模型 diff --git a/packages/s2-core/src/common/interface/style.ts b/packages/s2-core/src/common/interface/style.ts index f3cce47eea..c3ec6db737 100644 --- a/packages/s2-core/src/common/interface/style.ts +++ b/packages/s2-core/src/common/interface/style.ts @@ -1,3 +1,4 @@ +import type { TextStyleProps } from '@antv/g'; import type { Node } from '../../facet/layout/node'; import type { LayoutWidthType } from '../constant'; @@ -37,7 +38,10 @@ export interface BaseCellStyle { heightByField?: Record | null; } -export interface DataCellStyle { +export interface CellTextWordWrapStyle + extends Pick {} + +export interface DataCellStyle extends CellTextWordWrapStyle { /** * 宽度 */ @@ -55,11 +59,13 @@ export interface DataCellStyle { * 原始值字段 */ originalValueField?: string; + /** * 每一列数值占单元格宽度百分比 * @example [0.1, 0.3, 0.6] */ widthPercent?: number[]; + /** * 是否显示原始值 (tooltip 中显示) */ @@ -67,7 +73,7 @@ export interface DataCellStyle { }; } -export interface RowCellStyle extends BaseCellStyle { +export interface RowCellStyle extends BaseCellStyle, CellTextWordWrapStyle { /** * 是否展示树状分层下的层级占位点 */ @@ -92,13 +98,19 @@ export interface RowCellStyle extends BaseCellStyle { expandDepth?: number | null; } -export interface ColCellStyle extends BaseCellStyle { +export interface ColCellStyle extends BaseCellStyle, CellTextWordWrapStyle { /** * 数值挂列头时, 是否隐藏数值 (即 s2DataConfig.fields.values 只有一个数值时生效) */ hideValue?: boolean; } +export interface CornerCellStyle extends CellTextWordWrapStyle {} + +export interface SeriesNumberCellStyle extends CellTextWordWrapStyle {} + +export interface MergedCellStyle extends CellTextWordWrapStyle {} + export interface S2Style { /** * 布局类型 @@ -119,4 +131,19 @@ export interface S2Style { * 行头单元格配置 */ rowCell?: RowCellStyle | null; + + /** + * 角头单元格配置 + */ + cornerCell?: CornerCellStyle | null; + + /** + * 合并单元格配置 + */ + mergedCell?: MergedCellStyle | null; + + /** + * 序号单元格配置 + */ + seriesNumberCell?: SeriesNumberCellStyle | null; } diff --git a/packages/s2-core/src/common/interface/theme.ts b/packages/s2-core/src/common/interface/theme.ts index 06bccdb352..37e94b851f 100644 --- a/packages/s2-core/src/common/interface/theme.ts +++ b/packages/s2-core/src/common/interface/theme.ts @@ -2,7 +2,7 @@ import type { LineStyleProps, TextStyleProps } from '@antv/g'; import type { CellType } from '../../common/constant/interaction'; import type { InteractionStateName } from '../constant'; import type { PALETTE_MAP } from '../constant/theme'; -import type { DeepRequired } from './util'; +import type { DeepRequired } from './type-utils'; // 文本内容的水平对齐方式, 默认 left export type TextAlign = 'left' | 'center' | 'right'; @@ -117,10 +117,7 @@ export interface TextTheme | 'fontWeight' | 'fill' | 'opacity' - | 'wordWrap' - | 'maxLines' | 'lineHeight' - | 'textOverflow' | 'fontStyle' | 'fontVariant' > { @@ -204,12 +201,6 @@ export interface ResizeArea { /** 交互态 */ interactionState?: InteractionState; - - /** 单元格可拖拽最小宽度 */ - minCellWidth?: number; - - /** 单元格可拖拽最小高度 */ - minCellHeight?: number; } export interface ScrollBarTheme { diff --git a/packages/s2-core/src/common/interface/tooltip.ts b/packages/s2-core/src/common/interface/tooltip.ts index 5d3ef1c20e..a13d672ab8 100644 --- a/packages/s2-core/src/common/interface/tooltip.ts +++ b/packages/s2-core/src/common/interface/tooltip.ts @@ -26,7 +26,11 @@ export interface TooltipOperatorMenuItem { /** 点击回调 */ onClick?: TooltipOperatorClickHandler; /** 是否显示 */ - visible?: boolean | ((cell: S2CellType) => boolean); + visible?: + | boolean + | null + | undefined + | ((cell: S2CellType) => boolean | null | undefined); /** 子菜单 */ children?: TooltipOperatorMenuItem[]; } diff --git a/packages/s2-core/src/common/interface/util.ts b/packages/s2-core/src/common/interface/type-utils.ts similarity index 62% rename from packages/s2-core/src/common/interface/util.ts rename to packages/s2-core/src/common/interface/type-utils.ts index 399fc8d14d..132fbd1a27 100644 --- a/packages/s2-core/src/common/interface/util.ts +++ b/packages/s2-core/src/common/interface/type-utils.ts @@ -1,3 +1,7 @@ +export type PickEssential = { + [K in keyof O as Pick, K> extends Pick ? never : K]: O[K]; +}; + export type DeepRequired> = { [K in keyof T]-?: NonNullable extends Record ? DeepRequired> diff --git a/packages/s2-core/src/common/interface/utils.ts b/packages/s2-core/src/common/interface/utils.ts deleted file mode 100644 index 503aba346b..0000000000 --- a/packages/s2-core/src/common/interface/utils.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type PickEssential = { - [K in keyof O as Pick, K> extends Pick ? never : K]: O[K]; -}; diff --git a/packages/s2-core/src/data-set/base-data-set.ts b/packages/s2-core/src/data-set/base-data-set.ts index 42292cbe0c..dd3f1666f5 100644 --- a/packages/s2-core/src/data-set/base-data-set.ts +++ b/packages/s2-core/src/data-set/base-data-set.ts @@ -82,6 +82,9 @@ export abstract class BaseDataSet { this.spreadsheet = spreadsheet; } + /** + * 获取字段 + */ private getField = (field: CustomHeaderField): string => { const realField = isString(field) ? field : field?.field; diff --git a/packages/s2-core/src/data-set/custom-tree-pivot-data-set.ts b/packages/s2-core/src/data-set/custom-tree-pivot-data-set.ts index 4fea6af241..229989b430 100644 --- a/packages/s2-core/src/data-set/custom-tree-pivot-data-set.ts +++ b/packages/s2-core/src/data-set/custom-tree-pivot-data-set.ts @@ -8,11 +8,11 @@ import { transformDimensionsValues, } from '../utils/dataset/pivot-data-set'; import { CellData } from './cell-data'; -import type { GetCellMultiDataParams } from './interface'; +import type { GetCellDataParams } from './interface'; import { PivotDataSet } from './pivot-data-set'; export class CustomTreePivotDataSet extends PivotDataSet { - getCellData(params: GetCellMultiDataParams) { + getCellData(params: GetCellDataParams) { const { query = {} } = params || {}; const { columns, rows } = this.fields; const rowDimensionValues = transformDimensionsValues( diff --git a/packages/s2-core/src/data-set/interface.ts b/packages/s2-core/src/data-set/interface.ts index af8de99a3f..02655d1db5 100644 --- a/packages/s2-core/src/data-set/interface.ts +++ b/packages/s2-core/src/data-set/interface.ts @@ -47,12 +47,18 @@ export type DataPathParams = { }; export interface GetCellDataParams { - // search query - query?: Query; + /** + * 查询条件 + */ + query: Query; + + /** + * 是否是汇总节点 + */ isTotals?: boolean; /** - * 行头节点, 用于下钻场景 + * 行头节点,用于下钻场景 */ rowNode?: Node; @@ -60,7 +66,10 @@ export interface GetCellDataParams { * 是否是行头 */ isRow?: boolean; - // use with isTotals + + /** + * 汇总信息 + */ totalStatus?: TotalStatus; } @@ -85,10 +94,12 @@ export interface GetCellMultiDataParams { * 查询条件 */ query?: Query; + /** * 查询类型 */ queryType?: QueryDataType; + /** * 下钻 */ diff --git a/packages/s2-core/src/data-set/table-data-set.ts b/packages/s2-core/src/data-set/table-data-set.ts index 72e7d233e4..790693914d 100644 --- a/packages/s2-core/src/data-set/table-data-set.ts +++ b/packages/s2-core/src/data-set/table-data-set.ts @@ -8,7 +8,7 @@ import type { } from '../common/interface'; import { isAscSort, isDescSort } from '../utils/sort-action'; import { BaseDataSet } from './base-data-set'; -import type { GetCellMultiDataParams } from './interface'; +import type { GetCellDataParams, GetCellMultiDataParams } from './interface'; export class TableDataSet extends BaseDataSet { public processDataCfg(dataCfg: S2DataConfig): S2DataConfig { @@ -157,10 +157,9 @@ export class TableDataSet extends BaseDataSet { return []; } - public getCellData({ query = {} }: GetCellMultiDataParams = {}): - | Data - | SimpleData - | undefined { + public getCellData( + { query = {} }: GetCellDataParams = {} as GetCellDataParams, + ): Data | SimpleData | undefined { if (this.displayData.length === 0 && query['rowIndex'] === 0) { return undefined; } @@ -174,7 +173,9 @@ export class TableDataSet extends BaseDataSet { return rowData[query['field']] as SimpleData; } - public getCellMultiData({ query = {} }: GetCellMultiDataParams = {}): Data[] { + public getCellMultiData( + { query = {} }: GetCellMultiDataParams = {} as GetCellMultiDataParams, + ): Data[] { if (!query) { return this.displayData as Data[]; } diff --git a/packages/s2-core/src/facet/base-facet.ts b/packages/s2-core/src/facet/base-facet.ts index 82cf8be8b9..d2c29478b8 100644 --- a/packages/s2-core/src/facet/base-facet.ts +++ b/packages/s2-core/src/facet/base-facet.ts @@ -439,8 +439,6 @@ export abstract class BaseFacet { const originEvent = ev.originalEvent; const { deltaX, deltaY, x, y } = ev; - // The coordinates of mobile and pc are three times different - // TODO: 手指快速往上滚动时, deltaY 有时会为负数, 导致向下滚动时然后回弹, 看起来就像表格在抖动, 需要判断滚动方向, next 版本未复现 this.onWheel({ ...originEvent, deltaX, @@ -485,9 +483,9 @@ export abstract class BaseFacet { } public getSeriesNumberWidth(): number { - const { showSeriesNumber } = this.spreadsheet.options; + const { seriesNumber } = this.spreadsheet.options; - return showSeriesNumber + return seriesNumber?.enable ? this.spreadsheet.theme.rowCell?.seriesNumberWidth ?? 0 : 0; } @@ -1730,7 +1728,7 @@ export abstract class BaseFacet { } /** - * 获取表头节点 (角头,序号, 行头,列头) (含可视区域) + * 获取表头节点 (角头,序号,行头,列头) (含可视区域) * @example 获取全部: facet.getHeaderNodes() * @example 获取一组 facet.getHeaderNodes(['root[&]浙江省[&]宁波市', 'root[&]浙江省[&]杭州市']) */ @@ -1899,6 +1897,7 @@ export abstract class BaseFacet { /** * 获取行头叶子节点节点 (含非可视区域) + * @example 获取全部: facet.getRowLeafNodes() */ public getRowLeafNodes(): Node[] { return this.layoutResult.rowLeafNodes || []; @@ -2009,7 +2008,7 @@ export abstract class BaseFacet { } /** - * 获取角头单元格 + * 获取角头单元格 (不含可视区域) */ public getCornerCells(): CornerCell[] { return filter( @@ -2019,14 +2018,14 @@ export abstract class BaseFacet { } /** - * 获取序号单元格 + * 获取序号单元格 (不含可视区域) */ public abstract getSeriesNumberCells(): | SeriesNumberCell[] | TableSeriesNumberCell[]; /** - * 获取表头单元格 (角头,行头,列头) (不含可视区域) + * 获取表头单元格 (序号,角头,行头,列头) (不含可视区域) * @example 获取全部: facet.getHeaderCells() * @example 获取一组 facet.getHeaderCells(['root[&]浙江省[&]宁波市', 'root[&]浙江省[&]杭州市']) */ diff --git a/packages/s2-core/src/facet/frozen-facet.ts b/packages/s2-core/src/facet/frozen-facet.ts index 5045e4b778..b7b7343df2 100644 --- a/packages/s2-core/src/facet/frozen-facet.ts +++ b/packages/s2-core/src/facet/frozen-facet.ts @@ -588,10 +588,6 @@ export abstract class FrozenFacet extends BaseFacet { } }; - protected init(): void { - super.init(); - } - public render(): void { this.calculateFrozenGroupInfo(); this.renderFrozenPanelCornerGroup(); diff --git a/packages/s2-core/src/facet/header/corner.ts b/packages/s2-core/src/facet/header/corner.ts index c076d5b3d6..ff342ae2f1 100644 --- a/packages/s2-core/src/facet/header/corner.ts +++ b/packages/s2-core/src/facet/header/corner.ts @@ -132,7 +132,9 @@ export class CornerHeader extends BaseHeader { const sNode: Node = new Node({ id: '', field: '', - value: getDefaultSeriesNumberText(spreadsheet.options.seriesNumberText), + value: getDefaultSeriesNumberText( + spreadsheet.options.seriesNumber?.text, + ), }); sNode.x = position?.x; diff --git a/packages/s2-core/src/facet/header/frame.ts b/packages/s2-core/src/facet/header/frame.ts index 2f09fcafab..158d9406ea 100644 --- a/packages/s2-core/src/facet/header/frame.ts +++ b/packages/s2-core/src/facet/header/frame.ts @@ -56,7 +56,7 @@ export class Frame extends Group { */ return Math.max( dataCell!.cell!.verticalBorderWidth!, - spreadsheet.options.showSeriesNumber + spreadsheet.options.seriesNumber?.enable ? cornerCell!.cell!.verticalBorderWidth! : colCell!.cell!.verticalBorderWidth!, ); @@ -112,7 +112,7 @@ export class Frame extends Group { const { verticalBorderColor: headerVerticalBorderColor, verticalBorderColorOpacity: headerVerticalBorderColorOpacity, - } = spreadsheet.options.showSeriesNumber + } = spreadsheet.options.seriesNumber?.enable ? spreadsheet.theme.cornerCell!.cell! : spreadsheet.theme.colCell!.cell!; diff --git a/packages/s2-core/src/facet/index.ts b/packages/s2-core/src/facet/index.ts index e888857077..bf055bfcc2 100644 --- a/packages/s2-core/src/facet/index.ts +++ b/packages/s2-core/src/facet/index.ts @@ -1,5 +1,7 @@ import { BaseFacet } from './base-facet'; import { PivotFacet } from './pivot-facet'; import { TableFacet } from './table-facet'; +import { FrozenFacet } from './frozen-facet'; -export { BaseFacet, PivotFacet, TableFacet }; +export * from './header'; +export { BaseFacet, PivotFacet, TableFacet, FrozenFacet }; diff --git a/packages/s2-core/src/facet/layout/build-header-hierarchy.ts b/packages/s2-core/src/facet/layout/build-header-hierarchy.ts index aad0d6c24c..815ccefe3f 100644 --- a/packages/s2-core/src/facet/layout/build-header-hierarchy.ts +++ b/packages/s2-core/src/facet/layout/build-header-hierarchy.ts @@ -108,15 +108,15 @@ const handleRowHeaderHierarchy = (params: HeaderParams) => { const handleTableHierarchy = (params: HeaderParams) => { const { isCustomTreeFields, spreadsheet } = params; - const { showSeriesNumber, seriesNumberText } = spreadsheet.options; + const { enable, text } = spreadsheet.options.seriesNumber ?? {}; if (isCustomTreeFields) { const seriesNumberField: CustomTreeNode = { field: SERIES_NUMBER_FIELD, - title: getDefaultSeriesNumberText(seriesNumberText), + title: getDefaultSeriesNumberText(text), }; - const fields = showSeriesNumber + const fields = enable ? [seriesNumberField, ...params.fields] : (params.fields as CustomTreeNode[]).filter( (node) => node?.field !== SERIES_NUMBER_FIELD, diff --git a/packages/s2-core/src/facet/layout/build-table-hierarchy.ts b/packages/s2-core/src/facet/layout/build-table-hierarchy.ts index d5d5ec9a93..e49da166f9 100644 --- a/packages/s2-core/src/facet/layout/build-table-hierarchy.ts +++ b/packages/s2-core/src/facet/layout/build-table-hierarchy.ts @@ -6,16 +6,16 @@ import type { HeaderParams } from './interface'; export const buildTableHierarchy = (params: HeaderParams) => { const { spreadsheet, rootNode, fields, hierarchy } = params; const { columns = [] } = spreadsheet.dataSet.fields; - const { showSeriesNumber, seriesNumberText } = spreadsheet.options; + const { enable, text } = spreadsheet.options.seriesNumber ?? {}; - const seriesNumberNodeValue = getDefaultSeriesNumberText(seriesNumberText); + const seriesNumberNodeValue = getDefaultSeriesNumberText(text); const fieldValues = columns.map((field) => { return field === SERIES_NUMBER_FIELD ? seriesNumberNodeValue : spreadsheet.dataSet.getFieldName(field); }); - if (showSeriesNumber && !fields.includes(SERIES_NUMBER_FIELD)) { + if (enable && !fields.includes(SERIES_NUMBER_FIELD)) { fields.unshift(SERIES_NUMBER_FIELD); fieldValues.unshift(seriesNumberNodeValue); } diff --git a/packages/s2-core/src/facet/mobile/wheelEvent.ts b/packages/s2-core/src/facet/mobile/wheelEvent.ts index 6397156ab6..cc37ef1580 100644 --- a/packages/s2-core/src/facet/mobile/wheelEvent.ts +++ b/packages/s2-core/src/facet/mobile/wheelEvent.ts @@ -18,7 +18,7 @@ const SWIPE_TIME_GAP = 100; /** * 移动端滚动事件 - * @see https://github.com/antvis/g-gesture/blob/master/src/event/wheel.ts + * @see https://github.com/antvis/g-gesture/blob/next/src/event/wheel.ts */ export class WheelEvent extends EE { private canvas: Canvas; diff --git a/packages/s2-core/src/facet/table-facet.ts b/packages/s2-core/src/facet/table-facet.ts index 9393666d63..bd004f0132 100644 --- a/packages/s2-core/src/facet/table-facet.ts +++ b/packages/s2-core/src/facet/table-facet.ts @@ -10,12 +10,15 @@ import { } from '../common/constant'; import { DebuggerUtil } from '../common/debug'; import type { + DataItem, FilterParam, LayoutResult, ResizeInteractionOptions, + SimpleData, SortParams, TableSortParam, ViewMeta, + ViewMetaData, } from '../common/interface'; import type { TableDataSet } from '../data-set'; import type { SpreadSheet } from '../sheet-type'; @@ -195,6 +198,7 @@ export class TableFacet extends FrozenFacet { } public getCellMeta = (rowIndex = 0, colIndex = 0) => { + const { options, dataSet } = this.spreadsheet; const { colLeafNodes } = this.getLayoutResult(); const colNode = colLeafNodes[colIndex]; @@ -202,7 +206,6 @@ export class TableFacet extends FrozenFacet { return null; } - const { showSeriesNumber } = this.spreadsheet.options; const cellHeight = this.getCellHeightByRowIndex(rowIndex); const cellRange = this.getCellRange(); const { trailingRowCount = 0 } = getValidFrozenOptions( @@ -211,7 +214,7 @@ export class TableFacet extends FrozenFacet { cellRange.end - cellRange.start + 1, ); - let data; + let data: ViewMetaData | SimpleData | undefined; const x = colNode.x; let y = this.viewCellHeights.getCellOffsetY(rowIndex); @@ -222,10 +225,10 @@ export class TableFacet extends FrozenFacet { this.getTotalHeightForRange(rowIndex, cellRange.end); } - if (showSeriesNumber && colNode.field === SERIES_NUMBER_FIELD) { + if (options.seriesNumber?.enable && colNode.field === SERIES_NUMBER_FIELD) { data = rowIndex + 1; } else { - data = this.spreadsheet.dataSet.getCellData({ + data = dataSet.getCellData({ query: { field: colNode.field, rowIndex, @@ -233,7 +236,7 @@ export class TableFacet extends FrozenFacet { }); } - return { + const cellMeta: ViewMeta = { spreadsheet: this.spreadsheet, x, y, @@ -241,31 +244,33 @@ export class TableFacet extends FrozenFacet { height: cellHeight, data: { [colNode.field]: data, - }, + } as unknown as SimpleData, rowIndex, colIndex, isTotals: false, colId: colNode.id, rowId: String(rowIndex), valueField: colNode.field, - fieldValue: data, + fieldValue: data as DataItem, id: getDataCellId(String(rowIndex), colNode.id), - } as ViewMeta; + }; + + return options.layoutCellMeta?.(cellMeta) ?? cellMeta; }; private getAdaptiveColWidth(colLeafNodes: Node[]) { const { dataCell } = this.spreadsheet.options.style!; - const { showSeriesNumber } = this.spreadsheet.options; + const { seriesNumber } = this.spreadsheet.options; if (this.spreadsheet.getLayoutWidthType() !== LayoutWidthType.Compact) { const seriesNumberWidth = this.getSeriesNumberWidth(); - const colHeaderColSize = colLeafNodes.length - (showSeriesNumber ? 1 : 0); + const colHeaderColSize = + colLeafNodes.length - (seriesNumber?.enable ? 1 : 0); const canvasW = this.getCanvasSize().width - seriesNumberWidth - Frame.getVerticalBorderWidth(this.spreadsheet); - // TODO: 向下取整, 导致单元格未撑满 canvas, 在冻结情况下会有问题, 待冻结重构后解决 return Math.max( dataCell?.width!, floor(canvasW / Math.max(1, colHeaderColSize)), diff --git a/packages/s2-core/src/facet/utils.ts b/packages/s2-core/src/facet/utils.ts index d17a8c33e3..172cd4c4b0 100644 --- a/packages/s2-core/src/facet/utils.ts +++ b/packages/s2-core/src/facet/utils.ts @@ -495,15 +495,15 @@ export const getFrozenRowCfgPivot = ( } => { /** * series number cell 可以自定义布局,和 row cell 不一定是 1 对 1 的关系 - * showSeriesNumber 暂时禁用 首行冻结 + * seriesNumber 暂时禁用 首行冻结 * */ - const { pagination, frozen, hierarchyType, showSeriesNumber } = options; + const { pagination, frozen, hierarchyType, seriesNumber } = options; const enablePagination = pagination && pagination.pageSize; let firstRow = false; const headNode = rowNodes?.[0]; - if (!enablePagination && !showSeriesNumber && frozen?.firstRow) { + if (!enablePagination && !seriesNumber?.enable && frozen?.firstRow) { const treeMode = hierarchyType === 'tree'; // tree mode diff --git a/packages/s2-core/src/index.ts b/packages/s2-core/src/index.ts index 6fb85f907f..29b1f23fe0 100644 --- a/packages/s2-core/src/index.ts +++ b/packages/s2-core/src/index.ts @@ -11,4 +11,4 @@ export * from './sheet-type'; export * from './data-set'; export * from './interaction'; export * from './ui/tooltip'; -export * from './facet/header'; +export * from './facet'; diff --git a/packages/s2-core/src/interaction/base-interaction/hover.ts b/packages/s2-core/src/interaction/base-interaction/hover.ts index 81f07fdf16..c600eb23e1 100644 --- a/packages/s2-core/src/interaction/base-interaction/hover.ts +++ b/packages/s2-core/src/interaction/base-interaction/hover.ts @@ -18,6 +18,7 @@ import { } from '../../utils/interaction/hover-event'; import { getCellMeta } from '../../utils/interaction/select-event'; import { BaseEvent, type BaseEventImplement } from '../base-event'; +import type { Node } from '../../facet/layout/node'; /** * @description Hover event for data cells, row cells and col cells @@ -30,7 +31,7 @@ export class HoverEvent extends BaseEvent implements BaseEventImplement { this.bindColCellHover(); } - public updateRowColCells(meta: ViewMeta) { + public updateRowColCells(meta: ViewMeta | Node) { const { rowId, colId } = meta; const { facet, interaction } = this.spreadsheet; @@ -69,11 +70,12 @@ export class HoverEvent extends BaseEvent implements BaseEventImplement { * @param event * @param meta */ - private changeStateToHoverFocus( - cell: S2CellType, - event: CanvasEvent, - meta: ViewMeta, - ) { + private changeStateToHoverFocus(cell: S2CellType, event: CanvasEvent) { + if (!cell) { + return; + } + + const meta = cell.getMeta(); const { interaction } = this.spreadsheet; const { interaction: interactionOptions } = this.spreadsheet.options; const { hoverFocus } = interactionOptions!; @@ -176,7 +178,7 @@ export class HoverEvent extends BaseEvent implements BaseEventImplement { } private getCellData( - meta: ViewMeta = {} as ViewMeta, + meta: ViewMeta | Node = {} as ViewMeta, onlyShowCellText?: boolean, ): TooltipData[] { const { @@ -236,7 +238,7 @@ export class HoverEvent extends BaseEvent implements BaseEventImplement { } if (interactionOptions?.hoverFocus) { - this.changeStateToHoverFocus(cell, event, meta); + this.changeStateToHoverFocus(cell, event); } }); } diff --git a/packages/s2-core/src/interaction/event-controller.ts b/packages/s2-core/src/interaction/event-controller.ts index 83c6c34029..56e753b24f 100644 --- a/packages/s2-core/src/interaction/event-controller.ts +++ b/packages/s2-core/src/interaction/event-controller.ts @@ -114,15 +114,17 @@ export class EventController { } // 不能单独判断是否 Image Shape, 用户如果自定义单元格绘制图片, 会导致判断错误 - private isGuiIconShape = (target: CanvasEvent['target']) => - target instanceof CustomImage && target.imgType === GuiIcon.type; + private isGuiIconShape = (target: CanvasEvent['target']) => { + return target instanceof CustomImage && target.imgType === GuiIcon.type; + }; + // Windows and Mac OS private onKeyboardCopy(event: KeyboardEvent) { - // windows and macos copy + const { copy } = this.spreadsheet.options.interaction!; + if ( this.isCanvasEffect && - this.spreadsheet.options.interaction?.enableCopy && - // todo: 在copy header 时有问题 + copy?.enable && keyEqualTo(event.key, InteractionKeyboardKey.COPY) && (event.metaKey || event.ctrlKey) ) { diff --git a/packages/s2-core/src/interaction/root.ts b/packages/s2-core/src/interaction/root.ts index 7c34578467..3302b69a30 100644 --- a/packages/s2-core/src/interaction/root.ts +++ b/packages/s2-core/src/interaction/root.ts @@ -552,8 +552,8 @@ export class RootInteraction { return { rowHeader: selectedCellHighlight, colHeader: selectedCellHighlight, - currentRow: false, - currentCol: false, + currentRow: selectedCellHighlight, + currentCol: selectedCellHighlight, }; } diff --git a/packages/s2-core/src/interaction/row-column-resize.ts b/packages/s2-core/src/interaction/row-column-resize.ts index f2145bbc64..e7a6d88333 100644 --- a/packages/s2-core/src/interaction/row-column-resize.ts +++ b/packages/s2-core/src/interaction/row-column-resize.ts @@ -20,6 +20,8 @@ import { RESIZE_MASK_ID, RESIZE_START_GUIDE_LINE_ID, S2Event, + RESIZE_MIN_CELL_WIDTH, + RESIZE_MIN_CELL_HEIGHT, } from '../common/constant'; import type { ResizeDetail, @@ -489,7 +491,9 @@ export class RowColumnResize extends BaseEvent implements BaseEventImplement { end: ResizeGuideLinePath; }, ) { - const { minCellWidth } = this.getResizeAreaTheme(); + const { minCellWidth = RESIZE_MIN_CELL_WIDTH } = + (this.spreadsheet.options.interaction + ?.resize as ResizeInteractionOptions) || {}; let nextOffsetX = offsetX - this.resizeStartPosition.offsetX!; if (resizeInfo.width + nextOffsetX < minCellWidth) { @@ -517,7 +521,9 @@ export class RowColumnResize extends BaseEvent implements BaseEventImplement { end: ResizeGuideLinePath; }, ) { - const { minCellHeight } = this.getResizeAreaTheme(); + const { minCellHeight = RESIZE_MIN_CELL_HEIGHT } = + (this.spreadsheet.options.interaction + ?.resize as ResizeInteractionOptions) || {}; let nextOffsetY = offsetY - this.resizeStartPosition.offsetY!; if (resizeInfo.height + nextOffsetY < minCellHeight) { diff --git a/packages/s2-core/src/sheet-type/spread-sheet.ts b/packages/s2-core/src/sheet-type/spread-sheet.ts index 1d3929e21d..2561782baf 100644 --- a/packages/s2-core/src/sheet-type/spread-sheet.ts +++ b/packages/s2-core/src/sheet-type/spread-sheet.ts @@ -242,7 +242,7 @@ export abstract class SpreadSheet extends EE { } private initHdAdapter() { - if (this.options.hdAdapter) { + if (this.options.hd) { this.hdAdapter = new HdAdapter(this); this.hdAdapter.init(); } @@ -270,6 +270,19 @@ export abstract class SpreadSheet extends EE { return this.options.tooltip?.render?.(this) || new BaseTooltip(this); } + /** + * 展示 Tooltip 提示 + * @alias s2.tooltip.show() + * @example + s2.showTooltip({ + position: { + x: event.clientX, + y: event.clientY, + }, + content: '
xxx
', + options: {} + }) + */ public showTooltip< T = TooltipContentType, Menu = BaseTooltipOperatorMenuOptions, @@ -355,16 +368,16 @@ export abstract class SpreadSheet extends EE { } /** - * Update data config and keep pre-sort operations - * Group sort params kept in {@see store} and - * Priority: group sort > advanced sort - * @param dataCfg - * @param reset 是否使用传入的 dataCfg 重置已保存的 dataCfg - * - * @example setDataCfg(dataCfg, true) 直接使用传入的 DataCfg,不再与上次数据进行合并 + * 更新表格数据 + * @param dataCfg 数据源配置 + * @param reset 是否重置数据源配置, 直接使用传入的 dataCfg,不再与之前的配置进行合并 + * @example s2.setDataCfg(dataCfg) + * @example s2.setDataCfg(dataCfg, true) */ public setDataCfg( - dataCfg: T extends true ? S2DataConfig : Partial, + dataCfg: T extends true + ? S2DataConfig | undefined | null + : Partial, reset?: T, ) { this.store.set('originalDataCfg', dataCfg); @@ -378,7 +391,17 @@ export abstract class SpreadSheet extends EE { clearValueRangeState(this); } - public setOptions(options: Partial, reset?: boolean) { + /** + * 更新表格配置 + * @param options 配置 + * @param reset 是否重置配置, 直接使用传入的 options,不再与之前的配置进行合并 + * @example s2.setOptions(dataCfg) + * @example s2.setOptions(dataCfg, true) + */ + public setOptions( + options: T extends true ? S2Options | undefined | null : Partial, + reset?: T, + ) { this.hideTooltip(); if (reset) { @@ -387,7 +410,7 @@ export abstract class SpreadSheet extends EE { this.options = customMerge(this.options, options); } - if (reset || options.tooltip?.render) { + if (reset || options?.tooltip?.render) { this.initTooltip(); } @@ -395,13 +418,29 @@ export abstract class SpreadSheet extends EE { this.registerIcons(); } + /** + * 重置表格数据 + * @example s2.resetDataCfg() + */ + public resetDataCfg() { + this.setDataCfg(null, true); + } + + /** + * 重置表格配置 + * @example s2.resetOptions() + */ + public resetOptions() { + this.setOptions(null, true); + } + private resetHiddenColumnsDetailInfoIfNeeded() { if (!isEmpty(this.options.interaction?.hiddenColumnFields)) { this.store.set('hiddenColumnsDetail', []); } } - private async doRender(reloadData = true, options: S2RenderOptions = {}) { + private async doRender(options?: S2RenderOptions) { // 防止表格卸载后, 再次调用 render 函数的报错 if ( !this.getCanvasElement() || @@ -410,8 +449,11 @@ export abstract class SpreadSheet extends EE { return; } - const { reBuildDataSet = false, reBuildHiddenColumnsDetail = true } = - options; + const { + reloadData = true, + reBuildDataSet = false, + reBuildHiddenColumnsDetail = true, + } = options || {}; this.emit(S2Event.LAYOUT_BEFORE_RENDER); @@ -434,26 +476,38 @@ export abstract class SpreadSheet extends EE { } /** - * 同步渲染 - * @deprecated 适配 g5.0 异步渲染过程中暂时保留 + * 渲染表格 + * @param reloadData + * @param options + * @example + s2.render(true) + s2.render(false) + s2.render({ + reloadData: true; + reBuildDataSet: true; + reBuildHiddenColumnsDetail: true; + }) */ - // eslint-disable-next-line camelcase - public UNSAFE_render(reloadData?: boolean, options?: S2RenderOptions) { - this.doRender(reloadData, options); - } - - public async render( - reloadData?: boolean, - options?: S2RenderOptions, - ): Promise { + public async render(options?: S2RenderOptions | boolean): Promise { if (this.destroyed) { return; } + const renderOptions: S2RenderOptions = + typeof options === 'boolean' + ? { + reloadData: options, + } + : options!; + await this.container.ready; - await this.doRender(reloadData, options); + await this.doRender(renderOptions); } + /** + * 卸载表格 + * @example s2.destroy() + */ public destroy() { if (this.destroyed) { return; diff --git a/packages/s2-core/src/sheet-type/table-sheet.ts b/packages/s2-core/src/sheet-type/table-sheet.ts index 980d21712f..911602bde5 100644 --- a/packages/s2-core/src/sheet-type/table-sheet.ts +++ b/packages/s2-core/src/sheet-type/table-sheet.ts @@ -78,7 +78,7 @@ export class TableSheet extends SpreadSheet { protected buildFacet() { const defaultCell = (viewMeta: ViewMeta) => { - if (this.options.showSeriesNumber && viewMeta.colIndex === 0) { + if (this.options.seriesNumber?.enable && viewMeta.colIndex === 0) { return new TableSeriesNumberCell(viewMeta, this); } diff --git a/packages/s2-core/src/theme/index.ts b/packages/s2-core/src/theme/index.ts index 84ce9d1088..3f8c1c279e 100644 --- a/packages/s2-core/src/theme/index.ts +++ b/packages/s2-core/src/theme/index.ts @@ -1,15 +1,6 @@ /* eslint-disable max-lines-per-function */ -import { - FONT_FAMILY, - INTERVAL_BAR_HEIGHT, - LayoutWidthType, -} from '../common/constant'; -import type { - DefaultCellTheme, - S2Theme, - TextTheme, - ThemeCfg, -} from '../common/interface'; +import { FONT_FAMILY, INTERVAL_BAR_HEIGHT } from '../common/constant'; +import type { DefaultCellTheme, S2Theme, ThemeCfg } from '../common/interface'; import type { SpreadSheet } from '../sheet-type'; import { isMobile, isWindows } from '../utils/is-mobile'; import { getPalette } from '../utils/theme'; @@ -28,28 +19,8 @@ export const getTheme = ( } = themeCfg?.palette || getPalette(themeCfg?.name); const isTable = themeCfg?.spreadsheet?.isTableMode(); - const isCompactMode = - themeCfg?.spreadsheet?.getLayoutWidthType() === LayoutWidthType.Compact; const boldTextDefaultFontWeight = isWindows() ? 'bold' : 700; - const getHeaderCellTextOverflow = (): TextTheme => { - return { - wordWrap: true, - maxLines: 1, - textOverflow: 'ellipsis', - }; - }; - - const getDataCellTextOverflow = (): TextTheme => { - return { - // 紧凑模式下文本内容自适应, 不显示省略号 - wordWrap: !isCompactMode, - // 数值单元格不建议文字换行, 通常是展示数值, 会有歧义 (明细表除外, 自行覆盖主题配置) - maxLines: 1, - textOverflow: isCompactMode ? '' : 'ellipsis', - }; - }; - const getDataCell = (): DefaultCellTheme => ({ bolderText: { fontFamily: FONT_FAMILY, @@ -60,7 +31,6 @@ export const getTheme = ( textAlign: 'right', textBaseline: 'middle', linkTextFill: basicColors[6], - ...getDataCellTextOverflow(), }, text: { fontFamily: FONT_FAMILY, @@ -71,7 +41,6 @@ export const getTheme = ( textAlign: 'right', textBaseline: 'middle', linkTextFill: basicColors[6], - ...getDataCellTextOverflow(), }, cell: { // ----------- background color ----------- @@ -206,7 +175,6 @@ export const getTheme = ( opacity: 1, textAlign: isTable ? 'center' : 'left', textBaseline: 'middle', - ...getHeaderCellTextOverflow(), }, bolderText: { fontFamily: FONT_FAMILY, @@ -216,7 +184,6 @@ export const getTheme = ( opacity: 1, textAlign: isTable ? 'center' : 'right', textBaseline: 'middle', - ...getHeaderCellTextOverflow(), }, cell: { // ----------- background color ----------- @@ -259,9 +226,6 @@ export const getTheme = ( opacity: 1, textBaseline: 'middle', textAlign: 'center', - ...getHeaderCellTextOverflow(), - // 序号不换行 - maxLines: 1, }, measureText: { fontFamily: FONT_FAMILY, @@ -272,7 +236,6 @@ export const getTheme = ( opacity: 1, textAlign: isTable ? 'center' : 'left', textBaseline: 'middle', - ...getHeaderCellTextOverflow(), }, bolderText: { fontFamily: FONT_FAMILY, @@ -283,7 +246,6 @@ export const getTheme = ( opacity: 1, textAlign: isTable ? 'center' : 'left', textBaseline: 'middle', - ...getHeaderCellTextOverflow(), }, text: { fontFamily: FONT_FAMILY, @@ -295,7 +257,6 @@ export const getTheme = ( textBaseline: 'middle', // default align center for row cell in table mode textAlign: isTable ? 'center' : 'left', - ...getHeaderCellTextOverflow(), }, cell: { // ----------- background color ----------- @@ -375,8 +336,6 @@ export const getTheme = ( // 默认列头的数值字段和 dataCell 数值对齐 textAlign: 'right', textBaseline: 'middle', - ...getHeaderCellTextOverflow(), - // maxLines: 1, }, bolderText: { fontFamily: FONT_FAMILY, @@ -386,7 +345,6 @@ export const getTheme = ( opacity: 1, textAlign: 'center', textBaseline: 'middle', - ...getHeaderCellTextOverflow(), }, text: { fontFamily: FONT_FAMILY, @@ -396,7 +354,6 @@ export const getTheme = ( opacity: 1, textAlign: 'center', textBaseline: 'middle', - ...getHeaderCellTextOverflow(), }, cell: { // ----------- background color ----------- @@ -479,8 +436,6 @@ export const getTheme = ( guideLineColor: basicColors[7], guideLineDisableColor: 'rgba(0,0,0,0.25)', guideLineDash: [3, 3], - minCellWidth: 42, - minCellHeight: 40, /* ---------- interaction state ----------- */ interactionState: { diff --git a/packages/s2-core/src/utils/cell/data-cell.ts b/packages/s2-core/src/utils/cell/data-cell.ts index 50e972bdd8..855c5f4993 100644 --- a/packages/s2-core/src/utils/cell/data-cell.ts +++ b/packages/s2-core/src/utils/cell/data-cell.ts @@ -94,7 +94,10 @@ export const updateBySelectedCellsHighlight = ( const isRowCell = dataCell.cellType === CellType.ROW_CELL; // 高亮序号 const showSNWhenRowHeaderHighlight = - s2.isTableMode() && s2.options.showSeriesNumber && rowHeader && isRowCell; + s2.isTableMode() && + s2.options.seriesNumber?.enable && + rowHeader && + isRowCell; if (currentRow || showSNWhenRowHeaderHighlight) { updateCurrentRowCellState(cells, dataCell); diff --git a/packages/s2-core/src/utils/dataset/pivot-data-set.ts b/packages/s2-core/src/utils/dataset/pivot-data-set.ts index 013c4654df..356431fb3e 100644 --- a/packages/s2-core/src/utils/dataset/pivot-data-set.ts +++ b/packages/s2-core/src/utils/dataset/pivot-data-set.ts @@ -23,7 +23,7 @@ import { TOTAL_VALUE, } from '../../common/constant'; import type { Meta } from '../../common/interface/basic'; -import type { PickEssential } from '../../common/interface/utils'; +import type { PickEssential } from '../../common/interface/type-utils'; import type { CellData } from '../../data-set/cell-data'; import type { DataPath, diff --git a/packages/s2-core/src/utils/export/copy/common.ts b/packages/s2-core/src/utils/export/copy/common.ts index d6976f6664..966e376710 100644 --- a/packages/s2-core/src/utils/export/copy/common.ts +++ b/packages/s2-core/src/utils/export/copy/common.ts @@ -60,10 +60,10 @@ export const Transformers: { export function getFormatter( field: string, - isFormatData = false, + formatData = false, dataSet: BaseDataSet, ) { - if (isFormatData) { + if (formatData) { return dataSet.getFieldFormatter(field!); } @@ -143,17 +143,17 @@ export function completeMatrix(matrix: string[][]): string[][] { }); } -export const getFormatOptions = (isFormat?: FormatOptions) => { - if (typeof isFormat === 'object') { +export const getFormatOptions = (formatOptions?: FormatOptions) => { + if (typeof formatOptions === 'object') { return { - isFormatHeader: isFormat.isFormatHeader ?? false, - isFormatData: isFormat.isFormatData ?? false, + formatHeader: formatOptions.formatHeader ?? false, + formatData: formatOptions.formatData ?? false, }; } return { - isFormatHeader: isFormat ?? false, - isFormatData: isFormat ?? false, + formatHeader: formatOptions ?? false, + formatData: formatOptions ?? false, }; }; @@ -190,24 +190,23 @@ export function unifyConfig({ }, isExport, }: SheetCopyConstructorParams): CopyAndExportUnifyConfig { - const { copyWithFormat, customTransformer: brushCopyCustomTransformer } = - interaction ?? {}; - const { isFormatData, isFormatHeader } = isExport + const { copy } = interaction!; + const { formatData, formatHeader } = isExport ? getFormatOptions(formatOptions) : { - isFormatData: copyWithFormat ?? false, - isFormatHeader: copyWithFormat ?? false, + formatData: copy?.withFormat ?? false, + formatHeader: copy?.withFormat ?? false, }; const transformers = getTransformer( - isExport ? customTransformer : brushCopyCustomTransformer, + isExport ? customTransformer : copy?.customTransformer, ); return { separator, selectedCells, transformers, - isFormatData, - isFormatHeader, + formatData, + formatHeader, isAsyncExport, }; } diff --git a/packages/s2-core/src/utils/export/copy/pivot-data-cell-copy.ts b/packages/s2-core/src/utils/export/copy/pivot-data-cell-copy.ts index 8c8471dbce..b6d61e9e91 100644 --- a/packages/s2-core/src/utils/export/copy/pivot-data-cell-copy.ts +++ b/packages/s2-core/src/utils/export/copy/pivot-data-cell-copy.ts @@ -228,7 +228,7 @@ export class PivotDataCellCopy extends BaseDataCellCopy { const formatter = getFormatter( field ?? colNode.field, - this.config.isFormatData, + this.config.formatData, dataSet, ); @@ -274,21 +274,21 @@ export class PivotDataCellCopy extends BaseDataCellCopy { protected getColMatrix(): string[][] { return zip( ...map(this.leafColNodes, (n) => - this.config.isFormatHeader ? getNodeFormatData(n) : getHeaderList(n.id), + this.config.formatHeader ? getNodeFormatData(n) : getHeaderList(n.id), ), ) as string[][]; } protected getRowMatrix(): string[][] { const rowMatrix: string[][] = map(this.leafRowNodes, (n) => - this.config.isFormatHeader ? getNodeFormatData(n) : getHeaderList(n.id), + this.config.formatHeader ? getNodeFormatData(n) : getHeaderList(n.id), ); return completeMatrix(rowMatrix); } getDataMatrixByDataCell = (cellMetaMatrix: CellMeta[][]): CopyableList => { - const { copyWithHeader } = this.spreadsheet.options.interaction!; + const { copy } = this.spreadsheet.options.interaction!; const measureQuery = this.compatibleHideMeasureColumn(); const dataMatrix = map(cellMetaMatrix, (cellsMeta) => @@ -312,13 +312,12 @@ export class PivotDataCellCopy extends BaseDataCellCopy { ) as string[][]; // 不带表头复制 - if (!copyWithHeader) { + if (!copy?.withHeader) { return this.matrixTransformer(dataMatrix, this.config.separator); } // 带表头复制 const rowMatrix = this.getRowMatrix(); - const colMatrix = this.getColMatrix(); return this.matrixTransformer( @@ -328,18 +327,16 @@ export class PivotDataCellCopy extends BaseDataCellCopy { }; getPivotCopyData(): CopyableList { - const { copyWithHeader } = this.spreadsheet.options.interaction!; - + const { copy } = this.spreadsheet.options.interaction!; const dataMatrix = this.getDataMatrixByHeaderNode() as string[][]; // 不带表头复制 - if (!copyWithHeader) { + if (!copy?.withHeader) { return this.matrixTransformer(dataMatrix, this.config.separator); } // 带表头复制 const rowMatrix = this.getRowMatrix(); - const colMatrix = this.getColMatrix(); return this.matrixTransformer( diff --git a/packages/s2-core/src/utils/export/copy/table-copy.ts b/packages/s2-core/src/utils/export/copy/table-copy.ts index 92117589f8..f49a674cab 100644 --- a/packages/s2-core/src/utils/export/copy/table-copy.ts +++ b/packages/s2-core/src/utils/export/copy/table-copy.ts @@ -58,19 +58,19 @@ class TableDataCellCopy extends BaseDataCellCopy { } private getDataMatrix(): string[][] { - const { showSeriesNumber } = this.spreadsheet.options; + const { seriesNumber } = this.spreadsheet.options; return this.displayData.map((row, i) => this.columnNodes.map((node) => { const field = node.field; - if (SERIES_NUMBER_FIELD === field && showSeriesNumber) { + if (SERIES_NUMBER_FIELD === field && seriesNumber?.enable) { return (i + 1).toString(); } const formatter = getFormatter( field, - this.config.isFormatData, + this.config.formatData, this.spreadsheet.dataSet, ); const value = row[field]; @@ -81,7 +81,7 @@ class TableDataCellCopy extends BaseDataCellCopy { } protected getDataMatrixRIC(): Promise { - const { showSeriesNumber } = this.spreadsheet.options; + const { seriesNumber } = this.spreadsheet.options; const result: string[][] = []; let rowIndex = 0; @@ -104,7 +104,7 @@ class TableDataCellCopy extends BaseDataCellCopy { const colNode = this.columnNodes[i]; const field = colNode.field; - if (SERIES_NUMBER_FIELD === field && showSeriesNumber) { + if (SERIES_NUMBER_FIELD === field && seriesNumber?.enable) { row.push((j + 1).toString()); // eslint-disable-next-line no-continue continue; @@ -112,7 +112,7 @@ class TableDataCellCopy extends BaseDataCellCopy { const formatter = getFormatter( field, - this.config.isFormatData, + this.config.formatData, this.spreadsheet.dataSet, ); const value = rowData[field]; @@ -141,18 +141,18 @@ class TableDataCellCopy extends BaseDataCellCopy { } private getColMatrix(): string[] { - const { isFormatHeader } = this.config; - const { showSeriesNumber } = this.spreadsheet.options; + const { formatHeader } = this.config; + const { seriesNumber } = this.spreadsheet.options; // 明细表的表头,没有格式化 return this.columnNodes.map((node) => { const field: string = node.field; - if (!isFormatHeader) { + if (!formatHeader) { return field; } - return SERIES_NUMBER_FIELD === field && showSeriesNumber + return SERIES_NUMBER_FIELD === field && seriesNumber?.enable ? getDefaultSeriesNumberText() : this.spreadsheet.dataSet.getFieldName(field); }) as string[]; @@ -169,7 +169,7 @@ class TableDataCellCopy extends BaseDataCellCopy { const formatter = getFormatter( fieldKey!, - this.config.isFormatData, + this.config.formatData, this.spreadsheet.dataSet, ); @@ -177,14 +177,14 @@ class TableDataCellCopy extends BaseDataCellCopy { }; getDataMatrixByDataCell(cellMetaMatrix: CellMeta[][]): CopyableList { - const { copyWithHeader } = this.spreadsheet.options.interaction!; + const { copy } = this.spreadsheet.options.interaction!; // 因为通过复制数据单元格的方式和通过行列头复制的方式不同,所以不能复用 getDataMatrix 方法 const dataMatrix = map(cellMetaMatrix, (cellsMeta) => map(cellsMeta, (it) => convertString(this.getValueFromMeta(it))), ) as string[][]; - if (!copyWithHeader) { + if (!copy?.withHeader) { return this.matrixTransformer(dataMatrix, this.config.separator); } diff --git a/packages/s2-core/src/utils/g-mini-charts.ts b/packages/s2-core/src/utils/g-mini-charts.ts index 27edc51ee8..b36b94343e 100644 --- a/packages/s2-core/src/utils/g-mini-charts.ts +++ b/packages/s2-core/src/utils/g-mini-charts.ts @@ -5,7 +5,7 @@ import { isEmpty, isNil, map, max, min } from 'lodash'; import type { DataCell } from '..'; -import { CellType, MiniChartTypes } from '../common/constant'; +import { CellType, MiniChartType } from '../common/constant'; import { CellClipBox, type BaseChartData, @@ -63,7 +63,7 @@ export const scale = (chartData: BaseChartData, cell: S2CellType) => { const intervalPadding = miniChart?.bar?.intervalPadding!; const intervalX = - type === MiniChartTypes.Bar + type === MiniChartType.Bar ? (xEnd - xStart - (measures.length - 1) * intervalPadding) / measures.length + intervalPadding @@ -83,7 +83,7 @@ export const scale = (chartData: BaseChartData, cell: S2CellType) => { positionY = minMeasure > 0 ? yStart : yEnd; } - if (type === MiniChartTypes.Bar) { + if (type === MiniChartType.Bar) { let baseLinePositionY: number; let barHeight: number; @@ -403,10 +403,10 @@ export const drawBullet = (value: BulletValue, cell: S2CellType) => { export const renderMiniChart = (cell: S2CellType, data?: MiniChartData) => { switch (data?.type) { - case MiniChartTypes.Line: + case MiniChartType.Line: drawLine(data, cell); break; - case MiniChartTypes.Bar: + case MiniChartType.Bar: drawBar(data, cell); break; default: diff --git a/packages/s2-core/src/utils/hide-columns.ts b/packages/s2-core/src/utils/hide-columns.ts index c0198f0298..7c9eb6c36e 100644 --- a/packages/s2-core/src/utils/hide-columns.ts +++ b/packages/s2-core/src/utils/hide-columns.ts @@ -129,7 +129,10 @@ export const hideColumns = async ( }); spreadsheet.interaction.reset(); spreadsheet.store.set('hiddenColumnsDetail', hiddenColumnsDetail); - await spreadsheet.render(false, { reBuildHiddenColumnsDetail: false }); + await spreadsheet.render({ + reloadData: false, + reBuildHiddenColumnsDetail: false, + }); }; if (isEmpty(selectedColumnFields) && forceRender) { diff --git a/packages/s2-core/src/utils/interaction/select-event.ts b/packages/s2-core/src/utils/interaction/select-event.ts index b35da0dbb8..b94893437d 100644 --- a/packages/s2-core/src/utils/interaction/select-event.ts +++ b/packages/s2-core/src/utils/interaction/select-event.ts @@ -86,7 +86,7 @@ export function getRowCellForSelectedCell( const { facet, options } = spreadsheet; if (spreadsheet.isTableMode()) { - if (!options.showSeriesNumber) { + if (!options.seriesNumber?.enable) { return []; } diff --git a/packages/s2-core/src/utils/merge.ts b/packages/s2-core/src/utils/merge.ts index 3bb4346e32..8fd2d5df09 100644 --- a/packages/s2-core/src/utils/merge.ts +++ b/packages/s2-core/src/utils/merge.ts @@ -42,7 +42,7 @@ const uniqueFields = (fields: Fields): Fields => { }; export const getSafetyDataConfig = ( - ...dataConfig: (Partial | null)[] + ...dataConfig: (Partial | null | undefined)[] ) => { const mergedDataCfg = customMerge( DEFAULT_DATA_CONFIG, @@ -65,5 +65,6 @@ export const getSafetyDataConfig = ( return mergedDataCfg; }; -export const getSafetyOptions = (options: Partial | null) => - customMerge(DEFAULT_OPTIONS, options); +export const getSafetyOptions = ( + options: Partial | null | undefined, +) => customMerge(DEFAULT_OPTIONS, options); diff --git a/packages/s2-core/src/utils/text.ts b/packages/s2-core/src/utils/text.ts index bb0756e413..224c6682d7 100644 --- a/packages/s2-core/src/utils/text.ts +++ b/packages/s2-core/src/utils/text.ts @@ -46,7 +46,7 @@ import { renderMiniChart } from './g-mini-charts'; export const getDisplayText = ( text: string | number | null | undefined, - placeholder?: string, + placeholder?: string | undefined | null, ) => { const emptyPlaceholder = placeholder ?? EMPTY_PLACEHOLDER; // 对应维度缺少维度数据时, 会使用 EMPTY_FIELD_VALUE 填充, 实际渲染时统一转成 "-" @@ -453,7 +453,7 @@ export const getContentAreaForMultiData = ( * @useCondition 是否使用条件格式 */ // eslint-disable-next-line max-lines-per-function -export const drawObjectText = ( +export const drawCustomContent = ( cell: S2CellType, multiData?: MultiData, useCondition = true, @@ -615,8 +615,8 @@ export const drawObjectText = ( x: iconX, y: iconY, name: attrs.icon!, - width: attrs.size ?? iconStyle?.size, - height: attrs.size ?? iconStyle?.size, + width: iconStyle?.size, + height: iconStyle?.size, fill: attrs.fill, }); diff --git a/packages/s2-core/src/utils/theme.ts b/packages/s2-core/src/utils/theme.ts index 106c48c5e6..f8dc7d93c1 100644 --- a/packages/s2-core/src/utils/theme.ts +++ b/packages/s2-core/src/utils/theme.ts @@ -1,6 +1,7 @@ import { PALETTE_MAP, STYLE_ELEMENT_ID } from '../common/constant'; import type { Palette, ThemeName } from '../common/interface/theme'; -import DarkVars from '../styles/theme/dark.less?inline'; +// import DarkVars from '../styles/theme/dark.less?inline'; +import DarkVars from '../styles/theme/dark.less'; import { injectCssText } from './inject-css-text'; /** diff --git a/packages/s2-core/tsconfig.json b/packages/s2-core/tsconfig.json index c916f25107..0a9a0a49ae 100644 --- a/packages/s2-core/tsconfig.json +++ b/packages/s2-core/tsconfig.json @@ -2,10 +2,10 @@ "extends": "../../tsconfig.base.json", "compilerOptions": { "paths": { - "@antv/s2":["s2-core/src/index.ts"], - "@antv/s2-shared":["s2-shared/src/index.ts"], - "@/*":["s2-core/src/*"], - "tests/*":["s2-core/__tests__/*"] + "@antv/s2": ["s2-core/src/index.ts"], + "@antv/s2-shared": ["s2-shared/src/index.ts"], + "@/*": ["s2-core/src/*"], + "tests/*": ["s2-core/__tests__/*"] }, }, "exclude": ["node_modules", "coverage", "esm", "lib", "dist", "temp"] diff --git a/packages/s2-react/README.md b/packages/s2-react/README.md index 8881ab1bc7..86e3959e61 100644 --- a/packages/s2-react/README.md +++ b/packages/s2-react/README.md @@ -2,20 +2,20 @@
-数据驱动的多维分析表格 (React 版本)。 +数据驱动的多维分析表格 ( React 版本 )

- npm + npm - Version + Version - Version + Version - ci test status + ci test status

@@ -24,9 +24,9 @@ ## 📦 安装 ```bash -$ npm install @antv/s2-react +$ pnpm add @antv/s2-react +# npm install @antv/s2-react --save # yarn add @antv/s2-react -# pnpm add @antv/s2-react ``` ## 🔨 使用 @@ -93,6 +93,28 @@ const s2DataConfig = { price: '1', }, ], + meta: [ + { + field: 'price', + name: '价格', + }, + { + field: 'province', + name: '省份', + }, + { + field: 'city', + name: '城市', + }, + { + field: 'type', + name: '类别', + }, + { + field: 'sub_type', + name: '子类别', + }, + ] }; ``` @@ -115,23 +137,24 @@ const s2Options = { ### 3. 渲染 ```html -
+
``` ```tsx -import ReactDOM from 'react-dom' +import React from 'React' import { SheetComponent } from '@antv/s2-react'; import '@antv/s2-react/dist/style.min.css'; -ReactDOM.render( - , - document.getElementById('container') -); +const App = () => { + return ( + + ) +} ``` ### 4. 结果 -![result](https://gw.alipayobjects.com/zos/antfincdn/vCukbtVNvl/616f7ef1-e626-4225-99f8-dc8f6ca630dd.png) +![result](https://mdn.alipayobjects.com/huamei_qa8qxu/afts/img/A*pfF8QqZuj9EAAAAAAAAAAAAADmJ7AQ/original) diff --git a/packages/s2-react/__tests__/spreadsheet/adaptive-spec.tsx b/packages/s2-react/__tests__/spreadsheet/adaptive-spec.tsx index 96ff941df0..955802b193 100644 --- a/packages/s2-react/__tests__/spreadsheet/adaptive-spec.tsx +++ b/packages/s2-react/__tests__/spreadsheet/adaptive-spec.tsx @@ -19,7 +19,7 @@ interface Props { const s2Options: SheetComponentsProps['options'] = { width: 200, height: 200, - hdAdapter: false, + hd: false, }; let s2: SpreadSheet | null; diff --git a/packages/s2-react/__tests__/spreadsheet/data-accuracy-one-measure-spec.tsx b/packages/s2-react/__tests__/spreadsheet/data-accuracy-one-measure-spec.tsx index 5fe68be23a..6a0b17eeae 100644 --- a/packages/s2-react/__tests__/spreadsheet/data-accuracy-one-measure-spec.tsx +++ b/packages/s2-react/__tests__/spreadsheet/data-accuracy-one-measure-spec.tsx @@ -117,7 +117,9 @@ const getOptions = (): SheetComponentOptions => { width: 800, height: 600, hierarchyType: 'grid', - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, frozen: { rowHeader: false, }, diff --git a/packages/s2-react/__tests__/spreadsheet/data-accuracy-two-measures-spec.tsx b/packages/s2-react/__tests__/spreadsheet/data-accuracy-two-measures-spec.tsx index 311e5053d2..fa61a3e7fd 100644 --- a/packages/s2-react/__tests__/spreadsheet/data-accuracy-two-measures-spec.tsx +++ b/packages/s2-react/__tests__/spreadsheet/data-accuracy-two-measures-spec.tsx @@ -106,7 +106,9 @@ const getOptions = (): SheetComponentsProps['options'] => { width: 800, height: 600, hierarchyType: 'grid', - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, frozen: { rowHeader: false, }, diff --git a/packages/s2-react/__tests__/spreadsheet/filter-sheet-spec.tsx b/packages/s2-react/__tests__/spreadsheet/filter-sheet-spec.tsx index d92a210ab7..f85fd43578 100644 --- a/packages/s2-react/__tests__/spreadsheet/filter-sheet-spec.tsx +++ b/packages/s2-react/__tests__/spreadsheet/filter-sheet-spec.tsx @@ -59,10 +59,12 @@ function MainLayout() { const options: SheetComponentOptions = { width: 800, height: 600, - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, device: DeviceType.PC, interaction: { - enableCopy: true, + copy: { enable: true }, linkFields: ['order_id', 'customer_name'], }, style: { diff --git a/packages/s2-react/__tests__/spreadsheet/multiple-values-cell-spec.tsx b/packages/s2-react/__tests__/spreadsheet/multiple-values-cell-spec.tsx index 6d5601c7b6..f16653c733 100644 --- a/packages/s2-react/__tests__/spreadsheet/multiple-values-cell-spec.tsx +++ b/packages/s2-react/__tests__/spreadsheet/multiple-values-cell-spec.tsx @@ -82,7 +82,9 @@ const getOptions = (): SheetComponentsProps['options'] => { width: 800, height: 600, hierarchyType: 'tree', - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, frozen: { rowHeader: false, }, diff --git a/packages/s2-react/__tests__/spreadsheet/pressure-test-spec.tsx b/packages/s2-react/__tests__/spreadsheet/pressure-test-spec.tsx index 7db9f0d5f6..770fad543b 100644 --- a/packages/s2-react/__tests__/spreadsheet/pressure-test-spec.tsx +++ b/packages/s2-react/__tests__/spreadsheet/pressure-test-spec.tsx @@ -54,7 +54,9 @@ const getOptions = (): SheetComponentsProps['options'] => { width: 800, height: 600, hierarchyType: 'grid', - showSeriesNumber: false, + seriesNumber: { + enable: false, + }, frozen: { rowHeader: false, }, diff --git a/packages/s2-react/__tests__/spreadsheet/table-sheet-spec.tsx b/packages/s2-react/__tests__/spreadsheet/table-sheet-spec.tsx index ff719c9a78..10d3ef9f14 100644 --- a/packages/s2-react/__tests__/spreadsheet/table-sheet-spec.tsx +++ b/packages/s2-react/__tests__/spreadsheet/table-sheet-spec.tsx @@ -125,7 +125,9 @@ function MainLayout({ callback }: Props) { width: 800, height: 600, device: DeviceType.PC, - showSeriesNumber: true, + seriesNumber: { + enable: true, + }, placeholder: '', style: { dataCell: { @@ -139,7 +141,7 @@ function MainLayout({ callback }: Props) { } : undefined, interaction: { - enableCopy: true, + copy: { enable: true }, hoverHighlight: false, linkFields: ['order_id', 'customer_name'], hiddenColumnFields, diff --git a/packages/s2-react/__tests__/spreadsheet/tooltip-spec.tsx b/packages/s2-react/__tests__/spreadsheet/tooltip-spec.tsx index 53ec94b800..7d83e3d3f9 100644 --- a/packages/s2-react/__tests__/spreadsheet/tooltip-spec.tsx +++ b/packages/s2-react/__tests__/spreadsheet/tooltip-spec.tsx @@ -13,7 +13,7 @@ import { SheetComponent } from '@/components/sheets'; const s2Options: SheetComponentOptions = { width: 200, height: 200, - hdAdapter: false, + hd: false, tooltip: { enable: true, }, diff --git a/packages/s2-react/__tests__/unit/components/header/index-spec.tsx b/packages/s2-react/__tests__/unit/components/header/index-spec.tsx index c0695cb928..999d597230 100644 --- a/packages/s2-react/__tests__/unit/components/header/index-spec.tsx +++ b/packages/s2-react/__tests__/unit/components/header/index-spec.tsx @@ -25,9 +25,9 @@ describe('Header Component Tests', () => { const { container } = render(
, ); @@ -52,9 +52,9 @@ describe('Header Component Tests', () => { title={'title'} extra="extra" className={className} - exportCfg={{ open: true }} - advancedSortCfg={{ open: true }} - switcherCfg={{ open: true }} + export={{ open: true }} + advancedSort={{ open: true }} + switcher={{ open: true }} />, ); diff --git a/packages/s2-react/__tests__/unit/components/sheets/index-spec.tsx b/packages/s2-react/__tests__/unit/components/sheets/index-spec.tsx index 0cae2a10fb..01c90c05cf 100644 --- a/packages/s2-react/__tests__/unit/components/sheets/index-spec.tsx +++ b/packages/s2-react/__tests__/unit/components/sheets/index-spec.tsx @@ -44,9 +44,9 @@ describe(' Tests', () => { dataCfg: null as unknown as S2DataConfig, showPagination: true, header: { - switcherCfg: { open: true }, - exportCfg: { open: true }, - advancedSortCfg: { open: true }, + switcher: { open: true }, + export: { open: true }, + advancedSort: { open: true }, }, }; diff --git a/packages/s2-react/__tests__/unit/components/sheets/mobile-sheet/index-spec.tsx b/packages/s2-react/__tests__/unit/components/sheets/mobile-sheet/index-spec.tsx index 62483bb200..970c47e39b 100644 --- a/packages/s2-react/__tests__/unit/components/sheets/mobile-sheet/index-spec.tsx +++ b/packages/s2-react/__tests__/unit/components/sheets/mobile-sheet/index-spec.tsx @@ -46,7 +46,7 @@ describe('MobileSheet Tests', () => { options={{ height: 300, width: 300, - hdAdapter: false, + hd: false, transformCanvasConfig() { return { devicePixelRatio: 2, diff --git a/packages/s2-react/__tests__/unit/hooks/useEvents-spec.ts b/packages/s2-react/__tests__/unit/hooks/useEvents-spec.ts index d39a4ddd3c..8cfd3adde7 100644 --- a/packages/s2-react/__tests__/unit/hooks/useEvents-spec.ts +++ b/packages/s2-react/__tests__/unit/hooks/useEvents-spec.ts @@ -15,7 +15,7 @@ import { useCellEvent, useEvents, useS2Event } from '@/hooks'; const s2Options: SheetComponentsProps['options'] = { width: 200, height: 200, - hdAdapter: false, + hd: false, }; const S2EventCases: Array<{ event: S2Event; name: string }> = [ diff --git a/packages/s2-react/__tests__/unit/hooks/useLoading-spec.ts b/packages/s2-react/__tests__/unit/hooks/useLoading-spec.ts index 8b8feecdb8..2c5a5e5213 100644 --- a/packages/s2-react/__tests__/unit/hooks/useLoading-spec.ts +++ b/packages/s2-react/__tests__/unit/hooks/useLoading-spec.ts @@ -7,7 +7,7 @@ import { useLoading } from '@/hooks'; const s2Options: S2Options = { width: 200, height: 200, - hdAdapter: false, + hd: false, }; describe('useLoading tests', () => { diff --git a/packages/s2-react/__tests__/unit/hooks/usePagination-spec.ts b/packages/s2-react/__tests__/unit/hooks/usePagination-spec.ts index 4ea1cec56a..60731b3326 100644 --- a/packages/s2-react/__tests__/unit/hooks/usePagination-spec.ts +++ b/packages/s2-react/__tests__/unit/hooks/usePagination-spec.ts @@ -9,7 +9,7 @@ import type { SheetComponentsProps } from '@/components/sheets/interface'; const s2Options: S2Options = { width: 200, height: 200, - hdAdapter: false, + hd: false, pagination: { current: 1, pageSize: 5, diff --git a/packages/s2-react/__tests__/unit/hooks/useResize-spec.ts b/packages/s2-react/__tests__/unit/hooks/useResize-spec.ts index d73d7bea91..2310009d6d 100644 --- a/packages/s2-react/__tests__/unit/hooks/useResize-spec.ts +++ b/packages/s2-react/__tests__/unit/hooks/useResize-spec.ts @@ -7,7 +7,7 @@ import { useResize } from '@/hooks'; const s2Options: S2Options = { width: 200, height: 200, - hdAdapter: false, + hd: false, }; describe('useResize tests', () => { diff --git a/packages/s2-react/__tests__/unit/hooks/useSpreadSheet-spec.ts b/packages/s2-react/__tests__/unit/hooks/useSpreadSheet-spec.ts index f66ef38e60..974416c429 100644 --- a/packages/s2-react/__tests__/unit/hooks/useSpreadSheet-spec.ts +++ b/packages/s2-react/__tests__/unit/hooks/useSpreadSheet-spec.ts @@ -16,7 +16,7 @@ import type { SheetComponentsProps } from '@/components'; const s2Options: SheetComponentsProps['options'] = { width: 200, height: 200, - hdAdapter: false, + hd: false, }; describe('useSpreadSheet tests', () => { diff --git a/packages/s2-react/package.json b/packages/s2-react/package.json index c14e701d09..9cad8c556b 100644 --- a/packages/s2-react/package.json +++ b/packages/s2-react/package.json @@ -45,7 +45,7 @@ "build:analysis": "cross-env FORMAT=es ANALYSIS=true vite build", "build:dts": "run-s dts:*", "build:size-limit": "size-limit", - "build:size-limit-json": "pnpm build:size-limit --json", + "build:size-limit-json": "pnpm build:size-limit -- --json", "watch": "rimraf esm && pnpm build:esm -w", "dts:build": "tsc -p tsconfig.declaration.json", "dts:extract": "cross-env LIB=s2-react node ../../scripts/dts.js", diff --git a/packages/s2-react/playground/components/ChartSheet.tsx b/packages/s2-react/playground/components/ChartSheet.tsx index 33c6ebc8b6..b310275492 100644 --- a/packages/s2-react/playground/components/ChartSheet.tsx +++ b/packages/s2-react/playground/components/ChartSheet.tsx @@ -13,8 +13,7 @@ import { usePlaygroundContext } from '../context/playground.context'; const options: SheetComponentOptions = { height: 900, interaction: { - enableCopy: true, - copyWithFormat: true, + copy: { enable: true, withFormat: true }, brushSelection: { rowCell: true, colCell: true, @@ -69,7 +68,7 @@ export const ChartSheet: React.FC< header={{ title: 'S2 & G2', description: '单元格内绘制 G2 图表', - exportCfg: { open: true }, + export: { open: true }, }} /> ); diff --git a/packages/s2-react/playground/components/CustomGrid.tsx b/packages/s2-react/playground/components/CustomGrid.tsx index d2cdac8062..941930e7f8 100644 --- a/packages/s2-react/playground/components/CustomGrid.tsx +++ b/packages/s2-react/playground/components/CustomGrid.tsx @@ -145,10 +145,12 @@ export const CustomGrid = React.forwardRef( { setOptions({ - showSeriesNumber: checked, + seriesNumber: { + enable: checked, + }, }); }} /> diff --git a/packages/s2-react/playground/components/Plugins.tsx b/packages/s2-react/playground/components/Plugins.tsx index 5e502a8d42..d0fc3259de 100644 --- a/packages/s2-react/playground/components/Plugins.tsx +++ b/packages/s2-react/playground/components/Plugins.tsx @@ -22,6 +22,7 @@ export const options: SheetComponentOptions = { }, }, transformCanvasConfig(renderer) { + // 需要注意的是一旦使用该插件,“脏矩形渲染”便无法使用,这意味着任何图形的任何样式属性改变,都会导致画布的全量重绘, 性能会严重下降。 renderer.registerPlugin(new PluginRoughCanvasRenderer()); renderer.registerPlugin( new PluginA11y({ diff --git a/packages/s2-react/playground/components/ResizeConfig.tsx b/packages/s2-react/playground/components/ResizeConfig.tsx index 6601c70472..04e7225239 100644 --- a/packages/s2-react/playground/components/ResizeConfig.tsx +++ b/packages/s2-react/playground/components/ResizeConfig.tsx @@ -1,7 +1,6 @@ import { ResizeType, customMerge, - type DefaultCellTheme, type ResizeInteractionOptions, type S2Theme, type ThemeCfg, @@ -96,25 +95,24 @@ export const ResizeConfig: React.FC<{ const onMaxLinesChange = (e: RadioChangeEvent) => { const maxLines = e.target.value; - const cellTheme: DefaultCellTheme = { - text: { - maxLines, - }, - bolderText: { - maxLines, - }, - measureText: { - maxLines, + const updatedOptions: SheetComponentOptions = { + style: { + rowCell: { + maxLines, + }, + colCell: { + maxLines, + }, + cornerCell: { + maxLines, + }, + dataCell: { + maxLines, + }, }, }; - const theme: S2Theme = { - colCell: cellTheme, - rowCell: cellTheme, - cornerCell: cellTheme, - }; - - setThemeCfg((prev) => customMerge(prev, { theme })); + setOptions((prev) => customMerge(prev, updatedOptions)); props.onMaxLinesChange?.(maxLines); }; diff --git a/packages/s2-react/playground/components/StrategySheet.tsx b/packages/s2-react/playground/components/StrategySheet.tsx index 7fa3bdf9c5..1849eb8169 100644 --- a/packages/s2-react/playground/components/StrategySheet.tsx +++ b/packages/s2-react/playground/components/StrategySheet.tsx @@ -96,8 +96,8 @@ export const StrategySheet: React.FC< header={{ title: '趋势分析表', description: '支持子弹图', - switcherCfg: { open: true }, - exportCfg: { open: true }, + switcher: { open: true }, + export: { open: true }, extra: ( <> 组件 API: https://ant-design.antgroup.com/components/menu-cn#api + // mode: 'vertical', onClick(info, cell) { - console.log('菜单点击: ', info, cell); + console.log('菜单项点击: ', info, cell); }, items: [ { - key: 'a-1', - label: '操作-1', - icon: 'Plus', + key: 'custom-a', + label: '操作1', + icon: 'Trend', onClick: (info, cell) => { - console.log('操作-1', info, cell); + console.log('操作1点击:', info, cell); }, children: [ { - key: 'a-1-1', - label: '操作-1-1', - icon: 'Minus', - visible: (cell) => cell.cellType === CellType.COL_CELL, + key: 'custom-a-a', + label: '操作 1-1', + icon: 'Trend', onClick: (info, cell) => { - console.log('操作-1-1', info, cell); + console.log('操作1-1点击:', info, cell); }, }, ], }, { - key: 'a-2', - label: '操作-2', - icon: , + key: 'custom-b', + label: '操作2', + icon: 'EyeOutlined', onClick: (info, cell) => { - console.log('操作-2', info, cell); + console.log('操作2点击:', info, cell); }, }, { - key: 'trend', - label: '趋势', - icon: 'Trend', - visible: (cell) => cell.cellType === CellType.DATA_CELL, + key: 'custom-c', + label: '操作3', + icon: 'EyeOutlined', + visible: false, onClick: (info, cell) => { - console.log('趋势图 icon 点击: ', info, cell); + console.log('操作3点击:', info, cell); + }, + }, + { + key: 'custom-c', + label: '操作4', + icon: 'EyeOutlined', + visible: (cell) => { + // 叶子节点才显示 + const meta = cell.getMeta(); + + return meta.isLeaf; + }, + onClick: (info, cell) => { + console.log('操作4点击:', info, cell); }, }, ], @@ -315,7 +320,6 @@ export const s2Options: SheetComponentOptions = { // cursor: 'crosshair', }; }, - // showSeriesNumber: false, frozen: { rowHeader: true, // rowCount: 1, @@ -325,11 +329,15 @@ export const s2Options: SheetComponentOptions = { }, cornerText: '测试测试测试测试测试测试测试测试测试测试', interaction: { - enableCopy: true, - copyWithFormat: true, - copyWithHeader: true, + copy: { + enable: true, + withFormat: true, + withHeader: true, + }, hoverAfterScroll: true, - // 防止 mac 触摸板横向滚动触发浏览器返回, 和移动端下拉刷新 + selectedCellMove: true, + rangeSelection: true, + // 防止 mac 触控板横向滚动触发浏览器返回, 和移动端下拉刷新 overscrollBehavior: 'none', brushSelection: { dataCell: true, diff --git a/packages/s2-react/playground/index.tsx b/packages/s2-react/playground/index.tsx index 722ce26b66..41445b7cef 100644 --- a/packages/s2-react/playground/index.tsx +++ b/packages/s2-react/playground/index.tsx @@ -40,7 +40,7 @@ import { Tooltip, type RadioChangeEvent, } from 'antd'; -import { debounce, isBoolean, isEmpty } from 'lodash'; +import { debounce, isEmpty } from 'lodash'; import React from 'react'; import { ChromePicker } from 'react-color'; import { createRoot } from 'react-dom/client'; @@ -228,13 +228,18 @@ function MainLayout() { } }; - const getColumnOptions = (type: SheetType) => { - if (type === 'table') { - return dataCfg.fields?.columns || []; - } + const getColumnOptions = React.useCallback( + (type: SheetType) => { + if (type === 'table') { + return dataCfg.fields?.columns || []; + } - return s2Ref.current?.facet.getInitColLeafNodes().map(({ id }) => id) || []; - }; + return ( + s2Ref.current?.facet.getInitColLeafNodes().map(({ id }) => id) || [] + ); + }, + [dataCfg.fields?.columns], + ); // ================== Hooks ======================== @@ -251,7 +256,7 @@ function MainLayout() { } setColumnOptions(getColumnOptions(sheetType)); // eslint-disable-next-line react-hooks/exhaustive-deps - }, [sheetType]); + }, [sheetType, getColumnOptions]); React.useEffect(() => { console.log('env:', process.env); @@ -640,10 +645,12 @@ function MainLayout() { { updateOptions({ - showSeriesNumber: checked, + seriesNumber: { + enable: checked, + }, }); }} /> @@ -651,17 +658,19 @@ function MainLayout() { checkedChildren="自定义序号文本" unCheckedChildren="默认序号文本" checked={ - mergedOptions.seriesNumberText === + mergedOptions.seriesNumber?.text === '自定义序号文本' } onChange={(checked) => { updateOptions({ - seriesNumberText: checked - ? '自定义序号文本' - : getDefaultSeriesNumberText(), + seriesNumber: { + text: checked + ? '自定义序号文本' + : getDefaultSeriesNumberText(), + }, }); }} - disabled={!mergedOptions.showSeriesNumber} + disabled={!mergedOptions.seriesNumber?.enable} /> container (表格区域) @@ -957,6 +967,7 @@ function MainLayout() { onChange={onOverscrollBehaviorChange} style={{ width: 150 }} size="small" + allowClear > auto @@ -1125,6 +1136,7 @@ function MainLayout() { } placeholder="默认行头展开层级" size="small" + allowClear onChange={(level) => { updateOptions({ style: { @@ -1157,12 +1169,14 @@ function MainLayout() { checkedChildren="允许复制" unCheckedChildren="禁用复制" checked={ - mergedOptions.interaction?.enableCopy + mergedOptions.interaction?.copy?.enable } onChange={(checked) => { updateOptions({ interaction: { - enableCopy: checked, + copy: { + enable: checked, + }, }, }); }} @@ -1173,12 +1187,15 @@ function MainLayout() { checkedChildren="复制包含其对应行列头的数据" unCheckedChildren="复制不包含其对应行列头的数据" checked={ - mergedOptions.interaction?.copyWithHeader + mergedOptions.interaction?.copy + ?.withHeader } onChange={(checked) => { updateOptions({ interaction: { - copyWithHeader: checked, + copy: { + withHeader: checked, + }, }, }); }} @@ -1189,12 +1206,15 @@ function MainLayout() { checkedChildren="复制带格式后的数据" unCheckedChildren="复制未格式化的数据" checked={ - mergedOptions.interaction?.copyWithFormat + mergedOptions.interaction?.copy + ?.withFormat } onChange={(checked) => { updateOptions({ interaction: { - copyWithFormat: checked, + copy: { + withFormat: checked, + }, }, }); }} @@ -1209,24 +1229,7 @@ function MainLayout() { label: '交互配置', children: ( - - { - updateOptions({ - interaction: { - selectedCellsSpotlight: checked, - }, - }); - }} - /> - - + + + { + updateOptions({ + interaction: { + selectedCellsSpotlight: checked, + }, + }); + }} + /> + - + + + { + updateOptions({ + interaction: { + selectedCellMove: checked, + }, + }); + }} + /> + + + { + updateOptions({ + interaction: { + brushSelection: checked, + }, + }); + }} + /> + + + { + updateOptions({ + interaction: { + multiSelection: checked, + }, + }); + }} + /> + + + { + updateOptions({ + interaction: { + rangeSelection: checked, + }, + }); + }} + /> + + + { + updateOptions({ + interaction: { + hoverAfterScroll: checked, + }, + }); + }} + /> + ), - switcherCfg: { open: true }, - exportCfg: { open: true }, - advancedSortCfg: { + switcher: { open: true }, + export: { open: true }, + advancedSort: { open: true, }, }} onAfterRender={logHandler('onAfterRender')} onRangeSort={logHandler('onRangeSort')} onRangeSorted={logHandler('onRangeSorted')} - onMounted={onSheetMounted} + onMounted={(s2) => { + onSheetMounted(s2); + setColumnOptions(getColumnOptions(sheetType)); + }} onDestroy={onSheetDestroy} onColCellClick={onColCellClick} onRowCellClick={logHandler('onRowCellClick')} diff --git a/packages/s2-react/src/components/advanced-sort/index.tsx b/packages/s2-react/src/components/advanced-sort/index.tsx index a0e63ceafb..6d931c17c0 100644 --- a/packages/s2-react/src/components/advanced-sort/index.tsx +++ b/packages/s2-react/src/components/advanced-sort/index.tsx @@ -52,12 +52,12 @@ export interface RuleValue { sortByMeasure?: string; } -export interface AdvancedSortCfgProps { +export interface AdvancedSortBaseProps { open: boolean; className?: string; icon?: React.ReactNode; - text?: string; - ruleText?: string; + text?: React.ReactNode; + ruleText?: React.ReactNode; dimensions?: Dimension[]; ruleOptions?: RuleOption[]; sortParams?: SortParam[]; @@ -65,7 +65,7 @@ export interface AdvancedSortCfgProps { onSortConfirm?: (ruleValues: RuleValue[], sortParams: SortParam[]) => void; } -export interface AdvancedSortProps extends AdvancedSortCfgProps { +export interface AdvancedSortProps extends AdvancedSortBaseProps { sheet: SpreadSheet; } diff --git a/packages/s2-react/src/components/export/index.tsx b/packages/s2-react/src/components/export/index.tsx index 88018e5960..ffdfe2fa6b 100644 --- a/packages/s2-react/src/components/export/index.tsx +++ b/packages/s2-react/src/components/export/index.tsx @@ -14,7 +14,7 @@ import cx from 'classnames'; import React from 'react'; import { DotIcon } from '../icons'; -export interface ExportCfgProps { +export interface ExportBaseProps { open: boolean; className?: string; icon?: React.ReactNode; @@ -30,7 +30,7 @@ export interface ExportCfgProps { dropdown?: DropDownProps; } -export interface ExportProps extends ExportCfgProps { +export interface ExportProps extends ExportBaseProps { sheet: SpreadSheet; } diff --git a/packages/s2-react/src/components/export/strategy-copy.ts b/packages/s2-react/src/components/export/strategy-copy.ts index 110f259de5..5eea0ed5c8 100644 --- a/packages/s2-react/src/components/export/strategy-copy.ts +++ b/packages/s2-react/src/components/export/strategy-copy.ts @@ -80,7 +80,7 @@ class StrategyCopyData extends PivotDataCellCopy { if (isObject(fieldValue)) { tempCells = processObjectValueInRow( fieldValue, - this.config.isFormatHeader, + this.config.formatHeader, ) as unknown as string[]; return tempCells ?? placeholder; @@ -92,7 +92,7 @@ class StrategyCopyData extends PivotDataCellCopy { } // The main measure. - if (!this.config.isFormatHeader) { + if (!this.config.formatHeader) { tempCells.push((fieldValue as string) ?? ''); } else { const mainFormatter = @@ -154,7 +154,7 @@ class StrategyCopyData extends PivotDataCellCopy { const result: string[][] = []; forEach(this.leafColNodes, (n) => { - const colList = this.config.isFormatHeader + const colList = this.config.formatHeader ? getNodeFormatData(n) : getHeaderList(n.id); // 倒着循环 colList diff --git a/packages/s2-react/src/components/header/index.tsx b/packages/s2-react/src/components/header/index.tsx index c46a175d86..cc496b41fc 100644 --- a/packages/s2-react/src/components/header/index.tsx +++ b/packages/s2-react/src/components/header/index.tsx @@ -2,24 +2,24 @@ import React from 'react'; import { Space } from 'antd'; import cx from 'classnames'; import { S2_PREFIX_CLS, type S2DataConfig, type SpreadSheet } from '@antv/s2'; -import { Export, type ExportCfgProps } from '../export'; -import { AdvancedSort, type AdvancedSortCfgProps } from '../advanced-sort'; -import { type SwitcherCfgProps, SwitcherHeader } from '../switcher/header'; +import { Export, type ExportBaseProps } from '../export'; +import { AdvancedSort, type AdvancedSortBaseProps } from '../advanced-sort'; +import { type SwitcherProps, SwitcherHeader } from '../switcher/header'; import './index.less'; import type { SheetComponentOptions } from '../sheets/interface'; -export interface HeaderCfgProps { +export interface HeaderBaseProps { style?: React.CSSProperties; className?: string; title?: React.ReactNode; description?: React.ReactNode; - exportCfg?: ExportCfgProps; - advancedSortCfg?: AdvancedSortCfgProps; - switcherCfg?: SwitcherCfgProps; + export?: ExportBaseProps; + advancedSort?: AdvancedSortBaseProps; + switcher?: SwitcherProps; extra?: React.ReactNode; } -export interface HeaderProps extends HeaderCfgProps { +export interface HeaderProps extends HeaderBaseProps { dataCfg?: S2DataConfig; options?: SheetComponentOptions; sheet: SpreadSheet; @@ -31,9 +31,9 @@ export const Header: React.FC = React.memo( style, title, description, - exportCfg, - advancedSortCfg, - switcherCfg, + export: exportProps, + advancedSort, + switcher, sheet, extra, dataCfg, @@ -45,18 +45,16 @@ export const Header: React.FC = React.memo( const renderExtra = () => ( {extra} - {switcherCfg?.open && ( + {switcher?.open && ( )} - {advancedSortCfg?.open && ( - - )} - {exportCfg?.open && } + {advancedSort?.open && } + {exportProps?.open && } ); @@ -76,7 +74,7 @@ export const Header: React.FC = React.memo( Header.displayName = 'Header'; Header.defaultProps = { - exportCfg: { open: false }, - advancedSortCfg: { open: false }, - switcherCfg: { open: false }, + export: { open: false }, + advancedSort: { open: false }, + switcher: { open: false }, }; diff --git a/packages/s2-react/src/components/index.ts b/packages/s2-react/src/components/index.ts index e8ef0584d0..fd1d9b7fac 100644 --- a/packages/s2-react/src/components/index.ts +++ b/packages/s2-react/src/components/index.ts @@ -1,14 +1,18 @@ export { BaseSheet } from './sheets/base-sheet'; export { TableSheet } from './sheets/table-sheet'; +export { EditableSheet } from './sheets/editable-sheet'; +export { EditCell } from './sheets/editable-sheet/custom-cell'; export { GridAnalysisSheet } from './sheets/grid-analysis-sheet'; export { StrategySheet } from './sheets/strategy-sheet'; +export { MobileSheet } from './sheets/mobile-sheet'; +export { ChartSheet } from './sheets/chart-sheet'; export { StrategySheetDataSet } from './sheets/strategy-sheet/custom-data-set'; export * from './sheets/strategy-sheet/custom-tooltip'; export * from './sheets/strategy-sheet/custom-cell'; export { AdvancedSort, type AdvancedSortProps, - type AdvancedSortCfgProps, + type AdvancedSortBaseProps as AdvancedSortCfgProps, } from './advanced-sort'; export { DrillDown, @@ -19,5 +23,6 @@ export { TooltipComponent } from './tooltip'; export { CustomTooltip } from './tooltip/custom-tooltip'; export type { TooltipRenderProps } from './tooltip/interface'; export { Switcher, type SwitcherProps } from './switcher'; + export * from './sheets'; export * from './sheets/interface'; diff --git a/packages/s2-react/src/components/sheets/grid-analysis-sheet/custom-cell/data-cell.ts b/packages/s2-react/src/components/sheets/grid-analysis-sheet/custom-cell/data-cell.ts index f9316a7b80..c04715f68c 100644 --- a/packages/s2-react/src/components/sheets/grid-analysis-sheet/custom-cell/data-cell.ts +++ b/packages/s2-react/src/components/sheets/grid-analysis-sheet/custom-cell/data-cell.ts @@ -1,4 +1,4 @@ -import { DataCell, drawObjectText } from '@antv/s2'; +import { DataCell, drawCustomContent } from '@antv/s2'; /** * Cell for panelGroup area @@ -11,7 +11,7 @@ import { DataCell, drawObjectText } from '@antv/s2'; export class GridAnalysisSheetDataCell extends DataCell { public drawTextShape() { if (this.isMultiData()) { - return drawObjectText(this); + return drawCustomContent(this); } super.drawTextShape(); diff --git a/packages/s2-react/src/components/sheets/interface.ts b/packages/s2-react/src/components/sheets/interface.ts index 8f067c2d13..bccff5c643 100644 --- a/packages/s2-react/src/components/sheets/interface.ts +++ b/packages/s2-react/src/components/sheets/interface.ts @@ -6,7 +6,7 @@ import type { import type { PaginationProps as AntdPaginationProps } from 'antd'; import type { ReactNode } from 'react'; import type { DrillDownProps } from '../drill-down'; -import type { HeaderCfgProps } from '../header'; +import type { HeaderBaseProps } from '../header'; import type { TooltipOperatorMenuOptions } from '../tooltip/interface'; export type PartDrillDown = BasePartDrillDown; @@ -19,6 +19,6 @@ export type SheetComponentOptions = S2Options< export type SheetComponentsProps = BaseSheetComponentProps< PartDrillDown, - HeaderCfgProps, + HeaderBaseProps, SheetComponentOptions > & { children?: React.ReactNode }; diff --git a/packages/s2-react/src/components/sheets/strategy-sheet/custom-cell/col-cell.ts b/packages/s2-react/src/components/sheets/strategy-sheet/custom-cell/col-cell.ts index 0f430ac21b..9fc8936e0e 100644 --- a/packages/s2-react/src/components/sheets/strategy-sheet/custom-cell/col-cell.ts +++ b/packages/s2-react/src/components/sheets/strategy-sheet/custom-cell/col-cell.ts @@ -1,7 +1,7 @@ import { ColCell, type ColHeaderConfig, - drawObjectText, + drawCustomContent, Node, safeJsonParse, SpreadSheet, @@ -37,6 +37,12 @@ export class StrategySheetColCell extends ColCell { const displayValues = formattedValue !== meta?.value ? [[formattedValue]] : [value]; - drawObjectText(this, { values: displayValues }, false); + drawCustomContent( + this, + { + values: displayValues, + }, + false, + ); } } diff --git a/packages/s2-react/src/components/sheets/strategy-sheet/custom-cell/data-cell.ts b/packages/s2-react/src/components/sheets/strategy-sheet/custom-cell/data-cell.ts index 946e315a4f..766df6061a 100644 --- a/packages/s2-react/src/components/sheets/strategy-sheet/custom-cell/data-cell.ts +++ b/packages/s2-react/src/components/sheets/strategy-sheet/custom-cell/data-cell.ts @@ -1,4 +1,4 @@ -import { DataCell, drawObjectText } from '@antv/s2'; +import { DataCell, drawCustomContent } from '@antv/s2'; /** * Cell for panelGroup area @@ -10,7 +10,7 @@ import { DataCell, drawObjectText } from '@antv/s2'; export class StrategySheetDataCell extends DataCell { public drawTextShape() { if (this.isMultiData()) { - return drawObjectText(this); + return drawCustomContent(this); } super.drawTextShape(); diff --git a/packages/s2-react/src/components/switcher/header.tsx b/packages/s2-react/src/components/switcher/header.tsx index 825fa295c1..8c0d09348d 100644 --- a/packages/s2-react/src/components/switcher/header.tsx +++ b/packages/s2-react/src/components/switcher/header.tsx @@ -9,11 +9,11 @@ import { getSheetType, } from './headerUtil'; import type { SwitcherResult } from './interface'; -import { Switcher, type SwitcherProps } from './'; +import { Switcher, type SwitcherProps as DefaultSwitcherProps } from './'; import './index.less'; type SwitcherBasicCfg = Pick< - SwitcherProps, + DefaultSwitcherProps, | 'title' | 'resetText' | 'innerContentClassName' @@ -23,7 +23,7 @@ type SwitcherBasicCfg = Pick< | 'allowExchangeHeader' >; -export interface SwitcherCfgProps extends SwitcherBasicCfg { +export interface SwitcherProps extends SwitcherBasicCfg { open: boolean; } diff --git a/packages/s2-react/src/hooks/useSpreadSheet.ts b/packages/s2-react/src/hooks/useSpreadSheet.ts index 6c77d38c13..8c33428eda 100644 --- a/packages/s2-react/src/hooks/useSpreadSheet.ts +++ b/packages/s2-react/src/hooks/useSpreadSheet.ts @@ -144,7 +144,8 @@ export function useSpreadSheet(props: SheetComponentsProps) { reBuildDataSet, }); - s2Ref.current?.render(renderOptions!.reloadData, { + s2Ref.current?.render({ + reloadData: renderOptions!.reloadData, reBuildDataSet: renderOptions!.reBuildDataSet, }); }, [dataCfg, options, themeCfg, onSheetUpdate]); diff --git a/packages/s2-shared/__tests__/utils/__snapshots__/options-spec.ts.snap b/packages/s2-shared/__tests__/utils/__snapshots__/options-spec.ts.snap new file mode 100644 index 0000000000..9b5cc9aefb --- /dev/null +++ b/packages/s2-shared/__tests__/utils/__snapshots__/options-spec.ts.snap @@ -0,0 +1,117 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Options Tests should get safety options 1`] = ` +Object { + "conditions": Object {}, + "cornerExtraFieldText": "", + "cornerText": "", + "customSVGIcons": Array [], + "debug": false, + "device": "pc", + "frozen": Object { + "colCount": 0, + "rowCount": 0, + "rowHeader": true, + "trailingColCount": 0, + "trailingRowCount": 0, + }, + "hd": true, + "headerActionIcons": Array [], + "height": 480, + "hierarchyType": "grid", + "interaction": Object { + "autoResetSheetStyle": true, + "brushSelection": Object { + "colCell": true, + "dataCell": true, + "rowCell": true, + }, + "copy": Object { + "enable": true, + "withFormat": true, + "withHeader": false, + }, + "eventListenerOptions": false, + "hiddenColumnFields": Array [], + "hoverFocus": Object { + "duration": 800, + }, + "hoverHighlight": true, + "linkFields": Array [], + "multiSelection": true, + "overscrollBehavior": "auto", + "rangeSelection": true, + "resize": Object { + "colCellHorizontal": true, + "colCellVertical": true, + "colResizeType": "current", + "cornerCellHorizontal": true, + "minCellHeight": 20, + "minCellWidth": 20, + "rowCellVertical": true, + "rowResizeType": "current", + }, + "scrollSpeedRatio": Object { + "horizontal": 1, + "vertical": 1, + }, + "scrollbarPosition": "content", + "selectedCellHighlight": false, + "selectedCellsSpotlight": false, + }, + "placeholder": "-", + "seriesNumber": Object { + "enable": false, + }, + "showDefaultHeaderActionIcon": true, + "style": Object { + "colCell": Object { + "height": 30, + "heightByField": null, + "maxLines": 1, + "textOverflow": "ellipsis", + "widthByField": null, + "wordWrap": true, + }, + "cornerCell": Object { + "maxLines": 1, + "textOverflow": "ellipsis", + "wordWrap": true, + }, + "dataCell": Object { + "height": 30, + "maxLines": 1, + "textOverflow": "ellipsis", + "width": 96, + "wordWrap": true, + }, + "layoutWidthType": "adaptive", + "rowCell": Object { + "heightByField": null, + "maxLines": 1, + "showTreeLeafNodeAlignDot": false, + "textOverflow": "ellipsis", + "widthByField": null, + "wordWrap": true, + }, + "seriesNumberCell": Object { + "maxLines": 1, + "textOverflow": "ellipsis", + "wordWrap": true, + }, + }, + "tooltip": Object { + "autoAdjustBoundary": "body", + "enable": true, + "operation": Object { + "hiddenColumns": true, + "menu": Object { + "items": Array [], + }, + "sort": true, + }, + }, + "totals": Object {}, + "width": 600, +} +`; diff --git a/packages/s2-shared/__tests__/utils/options-spec.ts b/packages/s2-shared/__tests__/utils/options-spec.ts index 4b3315e387..c2b6520bb7 100644 --- a/packages/s2-shared/__tests__/utils/options-spec.ts +++ b/packages/s2-shared/__tests__/utils/options-spec.ts @@ -14,93 +14,7 @@ describe('Options Tests', () => { test('should get safety options', () => { const options = getBaseSheetComponentOptions(); - expect(options).toMatchInlineSnapshot(` - Object { - "conditions": Object {}, - "cornerExtraFieldText": "", - "cornerText": "", - "customSVGIcons": Array [], - "debug": false, - "device": "pc", - "frozen": Object { - "colCount": 0, - "rowCount": 0, - "rowHeader": true, - "trailingColCount": 0, - "trailingRowCount": 0, - }, - "hdAdapter": true, - "headerActionIcons": Array [], - "height": 480, - "hierarchyType": "grid", - "interaction": Object { - "autoResetSheetStyle": true, - "brushSelection": Object { - "colCell": false, - "dataCell": true, - "rowCell": false, - }, - "eventListenerOptions": false, - "hiddenColumnFields": Array [], - "hoverFocus": Object { - "duration": 800, - }, - "hoverHighlight": true, - "linkFields": Array [], - "multiSelection": true, - "overscrollBehavior": "auto", - "rangeSelection": true, - "resize": Object { - "colCellHorizontal": true, - "colCellVertical": true, - "colResizeType": "current", - "cornerCellHorizontal": true, - "rowCellVertical": true, - "rowResizeType": "current", - }, - "scrollSpeedRatio": Object { - "horizontal": 1, - "vertical": 1, - }, - "scrollbarPosition": "content", - "selectedCellHighlight": false, - "selectedCellsSpotlight": false, - }, - "placeholder": "-", - "showDefaultHeaderActionIcon": true, - "showSeriesNumber": false, - "style": Object { - "colCell": Object { - "height": 30, - "heightByField": null, - "widthByField": null, - }, - "dataCell": Object { - "height": 30, - "width": 96, - }, - "layoutWidthType": "adaptive", - "rowCell": Object { - "heightByField": null, - "showTreeLeafNodeAlignDot": false, - "widthByField": null, - }, - }, - "tooltip": Object { - "autoAdjustBoundary": "body", - "enable": true, - "operation": Object { - "hiddenColumns": true, - "menu": Object { - "items": Array [], - }, - "sort": true, - }, - }, - "totals": Object {}, - "width": 600, - } - `); + expect(options).toMatchSnapshot(); }); test('should get custom options', () => { diff --git a/packages/s2-vue/README.md b/packages/s2-vue/README.md index d585f570de..477983a152 100644 --- a/packages/s2-vue/README.md +++ b/packages/s2-vue/README.md @@ -2,17 +2,17 @@
-数据驱动的多维分析表格 (Vue3 版本)。 +数据驱动的多维分析表格 (Vue3 版本)

npm - Version + Version - Version + Version ci test status @@ -24,9 +24,9 @@ ## 📦 安装 ```bash -$ npm install @antv/s2-vue +$ pnpm add @antv/s2-vue # yarn add @antv/s2-vue -# pnpm add @antv/s2-vue +# npm install @antv/s2-vue --save ``` ## 🔨 使用 diff --git a/packages/s2-vue/package.json b/packages/s2-vue/package.json index d5254c15e7..54699e9303 100644 --- a/packages/s2-vue/package.json +++ b/packages/s2-vue/package.json @@ -46,7 +46,7 @@ "build:analysis": "cross-env FORMAT=es ANALYSIS=true vite build", "build:dts": "run-s dts:*", "build:size-limit": "size-limit", - "build:size-limit-json": "yarn build:size-limit --json", + "build:size-limit-json": "pnpm build:size-limit -- --json", "dts:build": "vue-tsc -p tsconfig.declaration.json", "dts:extract": "cross-env LIB=s2-vue node ../../scripts/dts.js", "test": "jest --passWithNoTests", diff --git a/packages/s2-vue/src/hooks/useSheetUpdate.ts b/packages/s2-vue/src/hooks/useSheetUpdate.ts index 34c12bcd17..4c7b76a2a5 100644 --- a/packages/s2-vue/src/hooks/useSheetUpdate.ts +++ b/packages/s2-vue/src/hooks/useSheetUpdate.ts @@ -68,7 +68,8 @@ export const useSheetUpdate = ( return; } - s2Ref.value?.render(flag.reloadData, { + s2Ref.value?.render({ + reloadData: flag.reloadData, reBuildDataSet: flag.rebuildDataset, }); flag.rerender = false; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc757a06f3..2b3e638cc6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,16 @@ settings: importers: .: + dependencies: + '@size-limit/esbuild': + specifier: ^11.0.2 + version: 11.0.2(size-limit@11.0.2) + '@size-limit/esbuild-why': + specifier: ^11.0.2 + version: 11.0.2(size-limit@11.0.2) + '@size-limit/file': + specifier: ^11.0.2 + version: 11.0.2(size-limit@11.0.2) devDependencies: '@babel/core': specifier: ^7.23.2 @@ -232,7 +242,7 @@ importers: version: 7.5.4 size-limit: specifier: ^11.0.0 - version: 11.0.1 + version: 11.0.2 stylelint: specifier: ^15.11.0 version: 15.11.0(typescript@5.2.2) @@ -396,7 +406,7 @@ importers: version: 18.2.0(react@18.2.0) vite-plugin-svgr: specifier: ^2.2.2 - version: 2.4.0 + version: 2.4.0(rollup@4.1.5)(vite@4.5.0) packages/s2-shared: devDependencies: @@ -442,28 +452,31 @@ importers: version: 3.3.4 vue-tsc: specifier: ^1.8.19 - version: 1.8.19 + version: 1.8.19(typescript@5.2.2) s2-site: dependencies: '@ant-design/icons': specifier: ^5.2.6 - version: 5.2.6 + version: 5.2.6(react-dom@18.2.0)(react@18.2.0) '@antv/dumi-theme-antv': - specifier: ^0.4.4 - version: 0.4.4(dumi@2.2.15) + specifier: ^0.5.0 + version: 0.5.0(@babel/core@7.23.2)(dumi@2.2.17)(react-dom@18.2.0)(react@18.2.0) + '@antv/g': + specifier: ^5.18.24 + version: 5.18.24 '@antv/g-canvas': - specifier: ^1.11.25 - version: 1.11.25 + specifier: ^1.11.26 + version: 1.11.26 '@antv/g-plugin-a11y': - specifier: ^0.6.20 - version: 0.6.20 + specifier: ^0.6.21 + version: 0.6.21 '@antv/g-plugin-rough-canvas-renderer': - specifier: ^1.9.25 - version: 1.9.25 + specifier: ^1.9.26 + version: 1.9.26 '@antv/g2': - specifier: ^5.1.11 - version: 5.1.11 + specifier: ^5.1.15 + version: 5.1.15 '@antv/s2': specifier: next version: link:../packages/s2-core @@ -471,23 +484,29 @@ importers: specifier: next version: link:../packages/s2-react antd: - specifier: ^5.12.2 - version: 5.12.2 + specifier: ^5.13.3 + version: 5.13.3(react-dom@18.2.0)(react@18.2.0) copy-to-clipboard: specifier: ^3.3.3 version: 3.3.3 dumi: - specifier: ^2.2.15 - version: 2.2.15 + specifier: ^2.2.17 + version: 2.2.17(@babel/core@7.23.2)(@types/node@20.8.9)(eslint@8.52.0)(jest@26.6.3)(postcss-less@6.0.0)(prettier@3.0.3)(react-dom@18.2.0)(react@18.2.0)(rollup@4.1.5)(stylelint@15.11.0)(typescript@5.2.2) gh-pages: - specifier: ^6.1.0 - version: 6.1.0 + specifier: ^6.1.1 + version: 6.1.1 lodash: specifier: ^4.17.21 version: 4.17.21 + react: + specifier: ^18.2.0 + version: 18.2.0 react-color: specifier: ^2.19.3 - version: 2.19.3 + version: 2.19.3(react@18.2.0) + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) devDependencies: '@google-cloud/translate': specifier: ^7.0.3 @@ -540,7 +559,6 @@ packages: /@aashutoshrathi/word-wrap@1.2.6: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} - dev: true /@algolia/autocomplete-core@1.7.2: resolution: {integrity: sha512-eclwUDC6qfApNnEfu1uWcL/rudQsn59tjEoUYZYE2JSXZrHLRjBUGMxiCoknobU2Pva8ejb0eRxpIYDtVVqdsw==} @@ -669,7 +687,13 @@ packages: dependencies: '@ctrl/tinycolor': 3.6.1 - /@ant-design/cssinjs@1.18.1: + /@ant-design/colors@7.0.2: + resolution: {integrity: sha512-7KJkhTiPiLHSu+LmMJnehfJ6242OCxSlR3xHVBecYxnMW8MS/878NXct1GqYARyL59fyeFdKRxXTfvR9SnDgJg==} + dependencies: + '@ctrl/tinycolor': 3.6.1 + dev: false + + /@ant-design/cssinjs@1.18.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1JURAPrsjK1GwpqByTq3bJ7nF7lbMKDZpehqeR2n8/IR5O58/W1U4VcOeaw5ZyTHri3tEMcom7dyP2tvxpW54g==} peerDependencies: react: '>=16.0.0' @@ -680,26 +704,28 @@ packages: '@emotion/unitless': 0.7.5 classnames: 2.3.2 csstype: 3.1.2 - rc-util: 5.38.1 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) stylis: 4.1.3 - dev: false + dev: true - /@ant-design/cssinjs@1.18.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1JURAPrsjK1GwpqByTq3bJ7nF7lbMKDZpehqeR2n8/IR5O58/W1U4VcOeaw5ZyTHri3tEMcom7dyP2tvxpW54g==} + /@ant-design/cssinjs@1.18.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-IrUAOj5TYuMG556C9gdbFuOrigyhzhU5ZYpWb3gYTxAwymVqRbvLzFCZg6OsjLBR6GhzcxYF3AhxKmjB+rA2xA==} peerDependencies: react: '>=16.0.0' react-dom: '>=16.0.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@emotion/hash': 0.8.0 '@emotion/unitless': 0.7.5 - classnames: 2.3.2 - csstype: 3.1.2 + classnames: 2.5.1 + csstype: 3.1.3 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) stylis: 4.1.3 - dev: true + dev: false /@ant-design/icons-svg@4.3.1: resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==} @@ -723,28 +749,14 @@ packages: dependencies: '@ant-design/colors': 6.0.0 '@ant-design/icons-svg': 4.3.1 - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 lodash: 4.17.21 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@ant-design/icons@5.2.6: - resolution: {integrity: sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw==} - engines: {node: '>=8'} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@ant-design/colors': 7.0.0 - '@ant-design/icons-svg': 4.3.1 - '@babel/runtime': 7.23.2 - classnames: 2.3.2 - rc-util: 5.38.1 - dev: false - /@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw==} engines: {node: '>=8'} @@ -759,19 +771,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true - - /@ant-design/react-slick@1.0.2: - resolution: {integrity: sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==} - peerDependencies: - react: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - json2mq: 0.2.0 - resize-observer-polyfill: 1.5.1 - throttle-debounce: 5.0.0 - dev: false /@ant-design/react-slick@1.0.2(react@18.2.0): resolution: {integrity: sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==} @@ -799,10 +798,20 @@ packages: /@antv/component@1.0.0: resolution: {integrity: sha512-LSM6NZJqfnev/TYUvYsmQNHUUjw5gtrXFS4TjavstYSBIbQoCWa0BtE6lR9QblA1MBC+B5CTNc8MqiZRRzKogA==} dependencies: - '@antv/g': 5.18.23 + '@antv/g': 5.18.24 + '@antv/scale': 0.4.13 + '@antv/util': 3.3.5 + svg-path-parser: 1.1.0 + dev: true + + /@antv/component@1.0.1-beta.0: + resolution: {integrity: sha512-syonGLy7bcpe+4qqKjtwBZMUUfZU8TKJRQAeYOB4pEiz2kr1Ky/qZLteT12QDQRugeMz9KnrUXMF+nAvUErKww==} + dependencies: + '@antv/g': 5.18.24 '@antv/scale': 0.4.13 '@antv/util': 3.3.5 svg-path-parser: 1.1.0 + dev: false /@antv/coord@0.4.7: resolution: {integrity: sha512-UTbrMLhwJUkKzqJx5KFnSRpU3BqrdLORJbwUbHK2zHSCT3q3bjcFA//ZYLVfIlwqFDXp/hzfMyRtp0c77A9ZVA==} @@ -811,24 +820,26 @@ packages: '@antv/util': 2.0.17 gl-matrix: 3.4.3 - /@antv/dumi-theme-antv@0.4.4(dumi@2.2.15): - resolution: {integrity: sha512-/5eB2bn9pZZmORcYFmQQ8xjgD22/W879E3XfHKvgYDNkYlxNUMmOknxiNbV5Pdf0s8oUgLEerKnSWqdkQc6Tvg==} + /@antv/dumi-theme-antv@0.5.0(@babel/core@7.23.2)(dumi@2.2.17)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-IL17dW9x9sJbRbdrDxTw9/gUrVWMt7rAS+pBeN6YVSsNh0/nqMDEmGtrLyrxEBCcnmo4azSocKr/uKMW9Jt+RQ==} peerDependencies: dumi: ^2.0.0 + react: '>=16.9.0' + react-dom: '>=16.9.0' dependencies: '@ant-design/icons': 4.8.1(react-dom@18.2.0)(react@18.2.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6 + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.2) '@babel/standalone': 7.20.12 '@docsearch/css': 3.3.1 '@docsearch/react': 3.3.1(react-dom@18.2.0)(react@18.2.0) '@monaco-editor/react': 4.4.6(monaco-editor@0.25.2)(react-dom@18.2.0)(react@18.2.0) '@stackblitz/sdk': 1.9.0 antd: 4.24.14(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 codesandbox: 2.2.3 d3-dsv: 3.0.1 docsearch.js: 2.6.3 - dumi: 2.2.15 + dumi: 2.2.17(@babel/core@7.23.2)(@types/node@20.8.9)(eslint@8.52.0)(jest@26.6.3)(postcss-less@6.0.0)(prettier@3.0.3)(react-dom@18.2.0)(react@18.2.0)(rollup@4.1.5)(stylelint@15.11.0)(typescript@5.2.2) front-matter: 4.0.2 fs-extra: 10.1.0 glob: 8.1.0 @@ -846,17 +857,21 @@ packages: react-error-boundary: 3.1.4(react@18.2.0) react-github-button: 0.1.11 react-helmet: 6.1.0(react@18.2.0) + react-markdown: 9.0.1(react@18.2.0) react-router-dom: 6.6.1(react-dom@18.2.0)(react@18.2.0) react-slick: 0.29.0(react-dom@18.2.0)(react@18.2.0) react-split-pane: 0.1.92(react-dom@18.2.0)(react@18.2.0) react-use: 17.4.0(react-dom@18.2.0)(react@18.2.0) reading-time: 1.5.0 + rehype-raw: 7.0.0 + remark-gfm: 4.0.0 semver: 7.5.4 size-sensor: 1.0.1 slick-carousel: 1.8.1 unified: 10.1.2 unist-util-visit: 4.1.2 uri-parse: 1.0.0 + valtio: 1.13.0(react@18.2.0) video-react: 0.16.0(react-dom@18.2.0)(react@18.2.0) transitivePeerDependencies: - '@algolia/client-search' @@ -877,6 +892,14 @@ packages: gl-matrix: 3.4.3 tslib: 2.6.2 + /@antv/g-camera-api@1.2.22: + resolution: {integrity: sha512-+sWDUMTeOACfb6HUJbuMS3ab79xCtFgCHhD+drlNbOjRCJDlkFHPsplyM7vA1a2Rs0zoyV+K68duClsP7Ei3OA==} + dependencies: + '@antv/g-lite': 1.2.21 + '@antv/util': 3.3.5 + gl-matrix: 3.4.3 + tslib: 2.6.2 + /@antv/g-canvas@1.11.25: resolution: {integrity: sha512-8Fx7vpwYdUmaYPUn6fcVdgy/mXVzeymSBfrNXqu1O1jqhTtIUH5Jr8Ui+zTxf8NZkqh7pBFP8TRroXpIWTJ6JQ==} dependencies: @@ -890,11 +913,30 @@ packages: '@antv/util': 3.3.5 tslib: 2.6.2 + /@antv/g-canvas@1.11.26: + resolution: {integrity: sha512-7THxFINBbh5MHaapzuUs1mcgXLh4imGZP6xovg8W1riroWGg9q/Mkyt9oXVxK9TtrBNTYQkGR6yVQw7pz3dm6g==} + dependencies: + '@antv/g-lite': 1.2.21 + '@antv/g-plugin-canvas-path-generator': 1.3.21 + '@antv/g-plugin-canvas-picker': 1.10.23 + '@antv/g-plugin-canvas-renderer': 1.9.23 + '@antv/g-plugin-dom-interaction': 1.9.21 + '@antv/g-plugin-html-renderer': 1.9.24 + '@antv/g-plugin-image-loader': 1.3.21 + '@antv/util': 3.3.5 + tslib: 2.6.2 + dev: false + /@antv/g-dom-mutation-observer-api@1.2.20: resolution: {integrity: sha512-J3EuEtWmIKGC44XWgJXG/nFnsjFY/oH9aAj1YaDVMtYREcyQOjb/aY9jdCfDmZBrNcMYeUHcsZEVhYwpc0wBcw==} dependencies: '@antv/g-lite': 1.2.20 + /@antv/g-dom-mutation-observer-api@1.2.21: + resolution: {integrity: sha512-/gE0hYFAKyrh0bDad4HH6pI9s9VRG3h9RWA5pU4MzFo/9nTQtjp+DvWr9TR/oahg0u9gtyrBO5HE4eI5kziMRA==} + dependencies: + '@antv/g-lite': 1.2.21 + /@antv/g-lite@1.2.19: resolution: {integrity: sha512-eHFkha7smINzzPCZ2znh10Fx47B7wGf9HM8I6srL5WJskgDYc7nQ2fs/azJcwoFdWxJLar3hugWi8azYkRTZNA==} dependencies: @@ -917,6 +959,17 @@ packages: rbush: 3.0.1 tslib: 2.6.2 + /@antv/g-lite@1.2.21: + resolution: {integrity: sha512-VGo78eaJE93cRPLaWZcXyi0TjfymHrAbweAVI01t3A3wgduqn1CpTXKBICqaNgi/T73rL0zcVO0Nn9th3Lincg==} + dependencies: + '@antv/g-math': 2.0.2 + '@antv/util': 3.3.5 + d3-color: 1.4.1 + eventemitter3: 5.0.1 + gl-matrix: 3.4.3 + rbush: 3.0.1 + tslib: 2.6.2 + /@antv/g-math@2.0.2: resolution: {integrity: sha512-uqGU1C+70orjeSUoIzD3TuXjL5dRQCIyjZrBrTmm0FWd6VQJMWHyG5ypuZ2lMiI5MrRajVSE1w+3J4hiNBYSJg==} dependencies: @@ -929,6 +982,14 @@ packages: dependencies: '@antv/g-lite': 1.2.20 tslib: 2.6.2 + dev: true + + /@antv/g-plugin-a11y@0.6.21: + resolution: {integrity: sha512-T1Yxngh+wY7+SNZBe11sWwAtXLR1afZEDGOOVbV6RWStpLKdVRJ4t7dfoE6XreLObnlw91T6REZIFIvMhKu6Lw==} + dependencies: + '@antv/g-lite': 1.2.21 + tslib: 2.6.2 + dev: false /@antv/g-plugin-canvas-path-generator@1.3.20: resolution: {integrity: sha512-q6jQpdRxJem4e3inmmTP4Uv03No5mzt1bT4OeA1bE3xVuD8l3yBNKu1We6bfdp+1PcfLnDAmvGosQL/sMneiRQ==} @@ -938,6 +999,15 @@ packages: '@antv/util': 3.3.5 tslib: 2.6.2 + /@antv/g-plugin-canvas-path-generator@1.3.21: + resolution: {integrity: sha512-pz+2mCHIFGQ9w3ED4awGCrpUQbxdxkGtw1VqjAu178+uimDQJYaTXkpT2rdqsobVcm4LwQCNlugczAJfoJp9fQ==} + dependencies: + '@antv/g-lite': 1.2.21 + '@antv/g-math': 2.0.2 + '@antv/util': 3.3.5 + tslib: 2.6.2 + dev: false + /@antv/g-plugin-canvas-picker@1.10.22: resolution: {integrity: sha512-gj6caACxuuNP1oy3kG5RCLMHfmlyvPnaxkQ9Sv/Rfe39I6xpqNNiAfP3vZbSZqBDyKkhdjHJMjdELEJ24seAJg==} dependencies: @@ -949,6 +1019,18 @@ packages: gl-matrix: 3.4.3 tslib: 2.6.2 + /@antv/g-plugin-canvas-picker@1.10.23: + resolution: {integrity: sha512-rdgSrLQMXIzPAnHf+vJ0unSKGkq1gC90iQVisyWKbH761sfNfVa6I+4lFWrpcBnwU09E3AfGroD1vfiHcpvQ1A==} + dependencies: + '@antv/g-lite': 1.2.21 + '@antv/g-math': 2.0.2 + '@antv/g-plugin-canvas-path-generator': 1.3.21 + '@antv/g-plugin-canvas-renderer': 1.9.23 + '@antv/util': 3.3.5 + gl-matrix: 3.4.3 + tslib: 2.6.2 + dev: false + /@antv/g-plugin-canvas-renderer@1.9.22: resolution: {integrity: sha512-XsEA0LslLKP0Vc7+YOLF1sk7Y2kL1g7Ip9tdiOjLdnl2ZeMOnx7FlOfL0UC9MpQGyM/SwNCmth8gk47KBdo8Yg==} dependencies: @@ -960,12 +1042,31 @@ packages: gl-matrix: 3.4.3 tslib: 2.6.2 + /@antv/g-plugin-canvas-renderer@1.9.23: + resolution: {integrity: sha512-uT2IsUJnwQ0m6n3S86eJYYDMMqF3yUMYcfj6sBchwym2NB3tAC/x0BVFGHZtEyqUkfmBr2wKcYjjBOfPl1tbhw==} + dependencies: + '@antv/g-lite': 1.2.21 + '@antv/g-math': 2.0.2 + '@antv/g-plugin-canvas-path-generator': 1.3.21 + '@antv/g-plugin-image-loader': 1.3.21 + '@antv/util': 3.3.5 + gl-matrix: 3.4.3 + tslib: 2.6.2 + dev: false + /@antv/g-plugin-dom-interaction@1.9.20: resolution: {integrity: sha512-0saRodsOwKIu8G2C8D6adxHysJkcQV9ATJ6QCN2mlqpyL+KWvghon1jibBR0cOQusL7f0baxWttkBgepbYPt1w==} dependencies: '@antv/g-lite': 1.2.20 tslib: 2.6.2 + /@antv/g-plugin-dom-interaction@1.9.21: + resolution: {integrity: sha512-aO4yWve2yquZQYqZDU03pM2vgkOjFKk24zTRk+V4cAmdgjtUjCa7EcMWODI8eX2UB6zT31aySzyhOjXHQVC78A==} + dependencies: + '@antv/g-lite': 1.2.21 + tslib: 2.6.2 + dev: false + /@antv/g-plugin-dragndrop@1.8.19: resolution: {integrity: sha512-dLmOXxQjnsdoEVa0FSFELuVqFHdaCVqDiTwIwrde9xSpsRHkDamyBxnihvn18aCptuX9Gwz/D340xXJNMGgjjQ==} dependencies: @@ -981,6 +1082,15 @@ packages: gl-matrix: 3.4.3 tslib: 2.6.2 + /@antv/g-plugin-html-renderer@1.9.24: + resolution: {integrity: sha512-8tM2LaHXpgoyT27tryu/lVDX+YEvKv+KaPCtMTfQf04vL0XfbQ/ATcEXAEksIsNdZ+brQvi3LKh6UPiWCRAs3A==} + dependencies: + '@antv/g-lite': 1.2.21 + '@antv/util': 3.3.5 + gl-matrix: 3.4.3 + tslib: 2.6.2 + dev: false + /@antv/g-plugin-image-loader@1.3.20: resolution: {integrity: sha512-9ZJfV3/MWlRT4VbuiUtdXPf1pwdmV8HLQlcl/HakN9z9jEA2tPMXuWvcIghDnAGsb+ii2bUNEeZZgbWtHyjwVA==} dependencies: @@ -989,6 +1099,15 @@ packages: gl-matrix: 3.4.3 tslib: 2.6.2 + /@antv/g-plugin-image-loader@1.3.21: + resolution: {integrity: sha512-PCFRYscSapA4pMkm9TcUQcxV9hnHKe0AIJaR35kV2F1hhuWLMyCPEuxVyWaCMYDFMfrDtVj7dXzL81L4fja8HQ==} + dependencies: + '@antv/g-lite': 1.2.21 + '@antv/util': 3.3.5 + gl-matrix: 3.4.3 + tslib: 2.6.2 + dev: false + /@antv/g-plugin-rough-canvas-renderer@1.9.25: resolution: {integrity: sha512-BDdZpEhpN86uKnKWKaERP/T33L8LlrVVDYwue06GehdSdr7/MwS6qoPNsNZfs0KShdZA/Z6nJ2MW5o1v4hgf7w==} dependencies: @@ -997,6 +1116,17 @@ packages: '@antv/util': 3.3.5 roughjs: 4.6.6 tslib: 2.6.2 + dev: true + + /@antv/g-plugin-rough-canvas-renderer@1.9.26: + resolution: {integrity: sha512-/b5+PanLwUP5yoOQQtLM7GISaVplRypJtSNi/GLUgTm708Ic9piMw8HkQMF2A5fBIzL9c8Yt1ZVidiZ3LDTaeg==} + dependencies: + '@antv/g-canvas': 1.11.26 + '@antv/g-lite': 1.2.21 + '@antv/util': 3.3.5 + roughjs: 4.6.6 + tslib: 2.6.2 + dev: false /@antv/g-web-animations-api@1.2.21: resolution: {integrity: sha512-3LkPDOjpMjQ9b/mYoGgsoocWEOvDIUW2GpoLClbyd0vcIc97EujXVUobUIu7jvFQgvucgTnaxDLkAGDzuPaFvg==} @@ -1005,6 +1135,13 @@ packages: '@antv/util': 3.3.5 tslib: 2.6.2 + /@antv/g-web-animations-api@1.2.22: + resolution: {integrity: sha512-/bh/jUF/hVaDOnNtXRoB5ZsDnPK9IIrduLr4o5sFP+tOuCCBpalWgxeP11yBJoMpl2Y14GmipZTAD8QUoZyyNw==} + dependencies: + '@antv/g-lite': 1.2.21 + '@antv/util': 3.3.5 + tslib: 2.6.2 + /@antv/g2@5.1.11: resolution: {integrity: sha512-zxWWgFxkmflNAHdbwQ03emMKIz0+UBbhXV2gCpDfntKkkC2AEd+Mb9L3VEZst4kcG1QalvDxAWyz3ePrpB11XA==} dependencies: @@ -1030,6 +1167,34 @@ packages: flru: 1.0.2 fmin: 0.0.2 pdfast: 0.2.0 + dev: true + + /@antv/g2@5.1.15: + resolution: {integrity: sha512-WiISs4GUOzHlA4vrkt+eQfr1+LVIAuv4AkfFCRzTprayMO72pLAdgTcwUg9YlvafwM220r9FQD1nXIlYNXOOhA==} + dependencies: + '@antv/component': 1.0.1-beta.0 + '@antv/coord': 0.4.7 + '@antv/event-emitter': 0.1.3 + '@antv/g': 5.18.24 + '@antv/g-canvas': 1.11.26 + '@antv/g-plugin-dragndrop': 1.8.19 + '@antv/path-util': 3.0.1 + '@antv/scale': 0.4.13 + '@antv/util': 3.3.5 + d3-array: 3.2.4 + d3-dsv: 3.0.1 + d3-force: 3.0.0 + d3-format: 3.1.0 + d3-geo: 3.1.0 + d3-hierarchy: 3.1.2 + d3-path: 3.1.0 + d3-scale-chromatic: 3.0.0 + d3-shape: 3.2.0 + d3-voronoi: 1.1.4 + flru: 1.0.2 + fmin: 0.0.2 + pdfast: 0.2.0 + dev: false /@antv/g@5.18.23: resolution: {integrity: sha512-6O+ODt1w0FC4w98J00Ao7rtqztkV7AWqKF69kog3RqQWh40rYpM7JIfR0cFUAdHf8GLRyr4m+RQR+TZlt+QVEw==} @@ -1039,6 +1204,14 @@ packages: '@antv/g-lite': 1.2.20 '@antv/g-web-animations-api': 1.2.21 + /@antv/g@5.18.24: + resolution: {integrity: sha512-qUIjxNPd60VpA6bjDALkRWEWA0CKm2G+vRPkP729eiZ0JnqlRuSqVNibo6QbrlZGEZQfqKiNjiVDODbJjHxNIw==} + dependencies: + '@antv/g-camera-api': 1.2.22 + '@antv/g-dom-mutation-observer-api': 1.2.21 + '@antv/g-lite': 1.2.21 + '@antv/g-web-animations-api': 1.2.22 + /@antv/path-util@3.0.1: resolution: {integrity: sha512-tpvAzMpF9Qm6ik2YSMqICNU5tco5POOW7S4XoxZAI/B0L26adU+Md/SmO0BBo2SpuywKvzPH3hPT3xmoyhr04Q==} dependencies: @@ -1100,7 +1273,7 @@ packages: transitivePeerDependencies: - supports-color - /@babel/eslint-parser@7.22.15(@babel/core@7.23.2): + /@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.52.0): resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -1109,6 +1282,7 @@ packages: dependencies: '@babel/core': 7.23.2 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 8.52.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: false @@ -1165,12 +1339,13 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15: + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.2): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: + '@babel/core': 7.23.2 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 @@ -1206,19 +1381,6 @@ packages: dependencies: '@babel/types': 7.23.0 - /@babel/helper-module-transforms@7.23.0: - resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - dev: false - /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} engines: {node: '>=6.9.0'} @@ -1324,14 +1486,6 @@ packages: dependencies: '@babel/types': 7.23.0 - /@babel/plugin-syntax-async-generators@7.8.4: - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-plugin-utils': 7.22.5 - dev: false - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.2): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: @@ -1339,15 +1493,6 @@ packages: dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-bigint@7.8.3: - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-plugin-utils': 7.22.5 - dev: false /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} @@ -1356,15 +1501,6 @@ packages: dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-class-properties@7.12.13: - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-plugin-utils': 7.22.5 - dev: false /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} @@ -1373,15 +1509,6 @@ packages: dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-import-meta@7.10.4: - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-plugin-utils': 7.22.5 - dev: false /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.2): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} @@ -1390,15 +1517,6 @@ packages: dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-json-strings@7.8.3: - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-plugin-utils': 7.22.5 - dev: false /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} @@ -1407,7 +1525,6 @@ packages: dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - dev: true /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} @@ -1419,14 +1536,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4: - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-plugin-utils': 7.22.5 - dev: false - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.2): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -1434,83 +1543,38 @@ packages: dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3: + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - dev: false - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.2): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4: - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - dev: false - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.2): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-object-rest-spread@7.8.3: - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-plugin-utils': 7.22.5 - dev: false - - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-optional-catch-binding@7.8.3: - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-plugin-utils': 7.22.5 - dev: false - - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-optional-chaining@7.8.3: - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-plugin-utils': 7.22.5 - dev: false /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -1519,16 +1583,6 @@ packages: dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-top-level-await@7.14.5: - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-plugin-utils': 7.22.5 - dev: false /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.2): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} @@ -1538,7 +1592,6 @@ packages: dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - dev: true /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} @@ -1550,13 +1603,14 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6: + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/helper-create-regexp-features-plugin': 7.22.15 + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 dev: false @@ -1572,17 +1626,6 @@ packages: '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.0: - resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-module-transforms': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - dev: false - /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.2): resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==} engines: {node: '>=6.9.0'} @@ -1593,7 +1636,6 @@ packages: '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 - dev: true /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} @@ -1649,6 +1691,13 @@ packages: dependencies: regenerator-runtime: 0.14.0 + /@babel/runtime@7.23.7: + resolution: {integrity: sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + /@babel/standalone@7.20.12: resolution: {integrity: sha512-hK/X+m1il3w1tYS4H8LDaGCEdiT47SVqEXY8RiEAgou26BystipSU8ZL6EvBR6t5l7lTv0ilBiChXWblKJ5iUA==} engines: {node: '>=6.9.0'} @@ -1707,7 +1756,6 @@ packages: /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true /@bloomberg/record-tuple-polyfill@0.0.4: resolution: {integrity: sha512-h0OYmPR3A5Dfbetra/GzxBAzQk8sH7LhRkRUTdagX6nrtlUgJGYCTv4bBK33jsTQw9HDd8PE2x1Ma+iRKEDUsw==} @@ -1720,7 +1768,6 @@ packages: dependencies: exec-sh: 0.3.6 minimist: 1.2.8 - dev: true /@colors/colors@1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -1900,12 +1947,10 @@ packages: '@csstools/css-tokenizer': ^2.2.1 dependencies: '@csstools/css-tokenizer': 2.2.1 - dev: true /@csstools/css-tokenizer@2.2.1: resolution: {integrity: sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==} engines: {node: ^14 || ^16 || >=18} - dev: true /@csstools/media-query-list-parser@2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1): resolution: {integrity: sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==} @@ -1916,7 +1961,6 @@ packages: dependencies: '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - dev: true /@csstools/postcss-color-function@1.1.1(postcss@8.4.31): resolution: {integrity: sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==} @@ -2039,7 +2083,6 @@ packages: postcss-selector-parser: ^6.0.13 dependencies: postcss-selector-parser: 6.0.13 - dev: true /@ctrl/tinycolor@3.5.0: resolution: {integrity: sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg==} @@ -2101,6 +2144,15 @@ packages: /@emotion/unitless@0.7.5: resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: false + optional: true + /@esbuild/android-arm64@0.17.19: resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} @@ -2118,6 +2170,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + /@esbuild/android-arm@0.17.19: resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} @@ -2135,6 +2196,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + /@esbuild/android-x64@0.17.19: resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -2152,6 +2222,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: false + optional: true + /@esbuild/darwin-arm64@0.17.19: resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} @@ -2169,6 +2248,15 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + /@esbuild/darwin-x64@0.17.19: resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} @@ -2186,6 +2274,15 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + /@esbuild/freebsd-arm64@0.17.19: resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} @@ -2203,6 +2300,15 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + /@esbuild/freebsd-x64@0.17.19: resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} @@ -2220,6 +2326,15 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-arm64@0.17.19: resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} @@ -2237,6 +2352,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-arm@0.17.19: resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -2254,6 +2378,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-ia32@0.17.19: resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -2271,6 +2404,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-loong64@0.14.54: resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} engines: {node: '>=12'} @@ -2297,6 +2439,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-mips64el@0.17.19: resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} @@ -2314,6 +2465,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-ppc64@0.17.19: resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} @@ -2331,6 +2491,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-riscv64@0.17.19: resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} @@ -2348,6 +2517,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-s390x@0.17.19: resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} @@ -2365,6 +2543,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-x64@0.17.19: resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} @@ -2382,6 +2569,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/netbsd-x64@0.17.19: resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -2399,6 +2595,15 @@ packages: requiresBuild: true optional: true + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: false + optional: true + /@esbuild/openbsd-x64@0.17.19: resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -2416,6 +2621,15 @@ packages: requiresBuild: true optional: true + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: false + optional: true + /@esbuild/sunos-x64@0.17.19: resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -2433,6 +2647,15 @@ packages: requiresBuild: true optional: true + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: false + optional: true + /@esbuild/win32-arm64@0.17.19: resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} @@ -2450,6 +2673,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@esbuild/win32-ia32@0.17.19: resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} @@ -2467,6 +2699,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@esbuild/win32-x64@0.17.19: resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} @@ -2484,14 +2725,14 @@ packages: requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.4.0: - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint-visitor-keys: 3.4.3 + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true dev: false + optional: true /@eslint-community/eslint-utils@4.4.0(eslint@8.52.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} @@ -2501,7 +2742,6 @@ packages: dependencies: eslint: 8.52.0 eslint-visitor-keys: 3.4.3 - dev: true /@eslint-community/regexpp@4.9.1: resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} @@ -2522,12 +2762,10 @@ packages: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - dev: true /@eslint/js@8.52.0: resolution: {integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true /@floating-ui/core@0.6.2: resolution: {integrity: sha512-jktYRmZwmau63adUG3GKOAVCofBXkk55S/zQ94XOorAHhwqFIOFAy1rSp2N0Wp6/tGbe9V3u/ExlGZypyY17rg==} @@ -2617,7 +2855,7 @@ packages: tslib: 2.6.2 dev: false - /@formatjs/intl@2.9.9: + /@formatjs/intl@2.9.9(typescript@5.2.2): resolution: {integrity: sha512-JI3CNgL2Zdg5lv9ncT2sYKqbAj2RGrCbdzaCckIxMPxn4QuHuOVvYUGmBAXVusBmfG/0sxLmMrnwnBioz+QKdA==} peerDependencies: typescript: '5' @@ -2632,6 +2870,7 @@ packages: '@formatjs/intl-listformat': 7.5.3 intl-messageformat: 10.5.8 tslib: 2.6.2 + typescript: 5.2.2 dev: false /@google-cloud/common@4.0.3: @@ -2706,16 +2945,13 @@ packages: minimatch: 3.1.2 transitivePeerDependencies: - supports-color - dev: true /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - dev: true /@humanwhocodes/object-schema@2.0.1: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} - dev: true /@iconify/types@2.0.0: resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -2734,19 +2970,12 @@ packages: - supports-color dev: false - /@icons/material@0.2.4: - resolution: {integrity: sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==} - peerDependencies: - react: '*' - dev: false - /@icons/material@0.2.4(react@18.2.0): resolution: {integrity: sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==} peerDependencies: react: '*' dependencies: react: 18.2.0 - dev: true /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -2793,7 +3022,6 @@ packages: jest-message-util: 26.6.2 jest-util: 26.6.2 slash: 3.0.0 - dev: true /@jest/core@26.6.3: resolution: {integrity: sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==} @@ -2833,7 +3061,6 @@ packages: - supports-color - ts-node - utf-8-validate - dev: true /@jest/create-cache-key-function@27.5.1: resolution: {integrity: sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==} @@ -2862,7 +3089,6 @@ packages: '@jest/types': 26.6.2 '@types/node': 20.8.9 jest-mock: 26.6.2 - dev: true /@jest/fake-timers@24.9.0: resolution: {integrity: sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==} @@ -2885,7 +3111,6 @@ packages: jest-message-util: 26.6.2 jest-mock: 26.6.2 jest-util: 26.6.2 - dev: true /@jest/globals@26.6.2: resolution: {integrity: sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==} @@ -2894,7 +3119,6 @@ packages: '@jest/environment': 26.6.2 '@jest/types': 26.6.2 expect: 26.6.2 - dev: true /@jest/reporters@26.6.2: resolution: {integrity: sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==} @@ -2928,7 +3152,6 @@ packages: node-notifier: 8.0.2 transitivePeerDependencies: - supports-color - dev: true /@jest/schemas@29.6.3: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} @@ -2953,7 +3176,6 @@ packages: callsites: 3.1.0 graceful-fs: 4.2.10 source-map: 0.6.1 - dev: true /@jest/test-result@24.9.0: resolution: {integrity: sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==} @@ -2972,7 +3194,6 @@ packages: '@jest/types': 26.6.2 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 - dev: true /@jest/test-sequencer@24.9.0: resolution: {integrity: sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==} @@ -3003,7 +3224,6 @@ packages: - supports-color - ts-node - utf-8-validate - dev: true /@jest/transform@24.9.0: resolution: {integrity: sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==} @@ -3050,7 +3270,6 @@ packages: write-file-atomic: 3.0.3 transitivePeerDependencies: - supports-color - dev: true /@jest/transform@29.7.0: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} @@ -3093,7 +3312,6 @@ packages: '@types/node': 20.8.9 '@types/yargs': 15.0.15 chalk: 4.1.2 - dev: true /@jest/types@27.5.1: resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} @@ -3167,34 +3385,37 @@ packages: dependencies: call-bind: 1.0.2 - /@loadable/component@5.15.2: + /@loadable/component@5.15.2(react@18.1.0): resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==} engines: {node: '>=8'} peerDependencies: react: '>=16.3.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 hoist-non-react-statics: 3.3.2 + react: 18.1.0 react-is: 16.13.1 dev: false - /@loadable/component@5.15.2(react@18.1.0): + /@loadable/component@5.15.2(react@18.2.0): resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==} engines: {node: '>=8'} peerDependencies: react: '>=16.3.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 hoist-non-react-statics: 3.3.2 - react: 18.1.0 + react: 18.2.0 react-is: 16.13.1 dev: false - /@makotot/ghostui@2.0.0: + /@makotot/ghostui@2.0.0(react@18.2.0): resolution: {integrity: sha512-LD6OeMv+yGjpYZNjh34yDTCIE1NegqOtJq5gm4wX6op3QL7K5psTVzMjkWzseBoYj0XOD4g+UJVIZTprfoOPGg==} engines: {node: '>=10'} peerDependencies: react: '>=16' + dependencies: + react: 18.2.0 dev: false /@microsoft/api-extractor-model@7.28.2(@types/node@20.8.9): @@ -3489,18 +3710,6 @@ packages: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} dev: true - /@rc-component/color-picker@1.4.1: - resolution: {integrity: sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - '@ctrl/tinycolor': 3.6.1 - classnames: 2.3.2 - rc-util: 5.38.1 - dev: false - /@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==} peerDependencies: @@ -3515,14 +3724,18 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /@rc-component/context@1.4.0: - resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==} + /@rc-component/color-picker@1.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-onyAFhWKXuG4P162xE+7IgaJkPkwM94XlOYnQuu69XdXWMfxpeFi6tpJBsieIMV7EnyLV5J3lDzdLiFeK0iEBA==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - rc-util: 5.38.1 + '@babel/runtime': 7.23.7 + '@ctrl/tinycolor': 3.6.1 + classnames: 2.5.1 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0): @@ -3535,7 +3748,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /@rc-component/mini-decimal@1.1.0: resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} @@ -3543,18 +3755,6 @@ packages: dependencies: '@babel/runtime': 7.23.5 - /@rc-component/mutate-observer@1.1.0: - resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-util: 5.38.1 - dev: false - /@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==} engines: {node: '>=8.x'} @@ -3567,19 +3767,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true - - /@rc-component/portal@1.1.2: - resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-util: 5.38.1 - dev: false /@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} @@ -3594,7 +3781,7 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@rc-component/tour@1.11.1: + /@rc-component/tour@1.11.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-c9Lw3/oVinj5D64Rsp8aDLOXcgdViE+hq7bj0Qoo8fTuQEh9sSpUw5OZcum943JkjeIE4hLcc5FD4a5ANtMJ4w==} engines: {node: '>=8.x'} peerDependencies: @@ -3602,29 +3789,31 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.5 - '@rc-component/portal': 1.1.2 - '@rc-component/trigger': 1.18.2 + '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) classnames: 2.3.2 - rc-util: 5.38.1 - dev: false + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true - /@rc-component/tour@1.11.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-c9Lw3/oVinj5D64Rsp8aDLOXcgdViE+hq7bj0Qoo8fTuQEh9sSpUw5OZcum943JkjeIE4hLcc5FD4a5ANtMJ4w==} + /@rc-component/tour@1.12.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-U4mf1FiUxGCwrX4ed8op77Y8VKur+8Y/61ylxtqGbcSoh1EBC7bWd/DkLu0ClTUrKZInqEi1FL7YgFtnT90vHA==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + '@rc-component/trigger': 1.18.3(react-dom@18.2.0)(react@18.2.0) + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true + dev: false - /@rc-component/trigger@1.18.2: + /@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-jRLYgFgjLEPq3MvS87fIhcfuywFSRDaDrYw1FLku7Cm4esszvzTbA0JBsyacAyLrK9rF3TiHFcvoEDMzoD3CTA==} engines: {node: '>=8.x'} peerDependencies: @@ -3632,29 +3821,30 @@ packages: react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.5 - '@rc-component/portal': 1.1.2 + '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) classnames: 2.3.2 - rc-motion: 2.9.0 - rc-resize-observer: 1.4.0 - rc-util: 5.38.1 - dev: false + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - /@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-jRLYgFgjLEPq3MvS87fIhcfuywFSRDaDrYw1FLku7Cm4esszvzTbA0JBsyacAyLrK9rF3TiHFcvoEDMzoD3CTA==} + /@rc-component/trigger@1.18.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Ksr25pXreYe1gX6ayZ1jLrOrl9OAUHUqnuhEx6MeHnNa1zVM5Y2Aj3Q35UrER0ns8D2cJYtmJtVli+i+4eKrvA==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true + dev: false /@remix-run/router@1.2.1: resolution: {integrity: sha512-XiY0IsyHR+DXYS5vBxpoBe/8veTeoRpMHP+vDosLZxL5bnpetzI0igkxkLZS235ldLzyfkxF+2divEwWHP3vMQ==} @@ -3767,20 +3957,6 @@ packages: picomatch: 2.3.1 dev: true - /@rollup/pluginutils@5.0.5: - resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.0 - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - /@rollup/pluginutils@5.0.5(rollup@4.1.5): resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} engines: {node: '>=14.0.0'} @@ -3801,7 +3977,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: true optional: true /@rollup/rollup-android-arm64@4.1.5: @@ -3809,7 +3984,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true /@rollup/rollup-darwin-arm64@4.1.5: @@ -3817,7 +3991,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /@rollup/rollup-darwin-x64@4.1.5: @@ -3825,7 +3998,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /@rollup/rollup-linux-arm-gnueabihf@4.1.5: @@ -3833,7 +4005,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /@rollup/rollup-linux-arm64-gnu@4.1.5: @@ -3842,7 +4013,6 @@ packages: os: [linux] libc: [glibc] requiresBuild: true - dev: true optional: true /@rollup/rollup-linux-arm64-musl@4.1.5: @@ -3851,7 +4021,6 @@ packages: os: [linux] libc: [musl] requiresBuild: true - dev: true optional: true /@rollup/rollup-linux-x64-gnu@4.1.5: @@ -3860,7 +4029,6 @@ packages: os: [linux] libc: [glibc] requiresBuild: true - dev: true optional: true /@rollup/rollup-linux-x64-musl@4.1.5: @@ -3869,7 +4037,6 @@ packages: os: [linux] libc: [musl] requiresBuild: true - dev: true optional: true /@rollup/rollup-win32-arm64-msvc@4.1.5: @@ -3877,7 +4044,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /@rollup/rollup-win32-ia32-msvc@4.1.5: @@ -3885,7 +4051,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /@rollup/rollup-win32-x64-msvc@4.1.5: @@ -3893,7 +4058,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /@rushstack/eslint-patch@1.5.1: @@ -4104,19 +4268,47 @@ packages: /@sindresorhus/merge-streams@1.0.0: resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} engines: {node: '>=18'} - dev: true /@sinonjs/commons@1.8.6: resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} dependencies: type-detect: 4.0.8 - dev: true /@sinonjs/fake-timers@6.0.1: resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==} dependencies: '@sinonjs/commons': 1.8.6 - dev: true + + /@size-limit/esbuild-why@11.0.2(size-limit@11.0.2): + resolution: {integrity: sha512-pYm1z5F4XXhg609qnh/VWe52o0T5Z3YjIQlZ9lgxchTYXUskVnRUDqRLKXC3NHuEqHdMtg13Du3rpaGvXMTyuw==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + size-limit: 11.0.2 + dependencies: + esbuild-visualizer: 0.6.0 + open: 10.0.3 + size-limit: 11.0.2 + dev: false + + /@size-limit/esbuild@11.0.2(size-limit@11.0.2): + resolution: {integrity: sha512-67p+y+wkMBJJegLZUp1X3v1YEvgGSbbAukFbHtxJ1c/DTj/ApiHvtgMzvA5ij+A5UOay+jSU4bXetpNJlUK3Ow==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + size-limit: 11.0.2 + dependencies: + esbuild: 0.19.12 + nanoid: 5.0.5 + size-limit: 11.0.2 + dev: false + + /@size-limit/file@11.0.2(size-limit@11.0.2): + resolution: {integrity: sha512-874lrMtWYRL+xb/6xzejjwD+krfHTOo+2uFGpZfJScvuNv91Ni2O7k0o09zC70VzCYBGkXquV92ln/H+/ognGg==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + size-limit: 11.0.2 + dependencies: + size-limit: 11.0.2 + dev: false /@sketch-hq/sketch-file-format-ts@6.5.0: resolution: {integrity: sha512-shaGl4ttFDpHjYBoMaZpciOtsi/lKvJ3VfcBYk6+PjjbFs6H5GxPAyhbiSqy3Vmx30aos284pd88QzD3rE6iag==} @@ -4157,7 +4349,7 @@ packages: dependencies: '@babel/core': 7.23.2 postcss: 8.4.31 - postcss-syntax: 0.36.2(postcss@8.4.31) + postcss-syntax: 0.36.2(postcss-less@6.0.0)(postcss@8.4.31) transitivePeerDependencies: - supports-color dev: false @@ -4617,7 +4809,6 @@ packages: /@tootallnate/once@1.1.2: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} engines: {node: '>= 6'} - dev: true /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} @@ -4732,6 +4923,12 @@ packages: '@types/unist': 2.0.6 dev: false + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + dependencies: + '@types/unist': 2.0.6 + dev: false + /@types/hoist-non-react-statics@3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} dependencies: @@ -4822,13 +5019,18 @@ packages: '@types/unist': 2.0.6 dev: false + /@types/mdast@4.0.3: + resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + dependencies: + '@types/unist': 2.0.6 + dev: false + /@types/mdurl@1.0.2: resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} dev: true /@types/minimist@1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: true /@types/ms@0.7.31: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} @@ -4854,7 +5056,6 @@ packages: /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: true /@types/parse-json@4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} @@ -4864,7 +5065,6 @@ packages: /@types/prettier@2.7.2: resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==} - dev: true /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} @@ -4954,7 +5154,6 @@ packages: /@types/stack-utils@2.0.1: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} - dev: true /@types/strip-bom@3.0.0: resolution: {integrity: sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==} @@ -4971,6 +5170,10 @@ packages: /@types/unist@2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + /@types/unist@3.0.2: + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + dev: false + /@types/web-bluetooth@0.0.18: resolution: {integrity: sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw==} dev: false @@ -4988,7 +5191,6 @@ packages: resolution: {integrity: sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==} dependencies: '@types/yargs-parser': 21.0.0 - dev: true /@types/yargs@16.0.5: resolution: {integrity: sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==} @@ -5001,7 +5203,7 @@ packages: '@types/yargs-parser': 21.0.0 dev: false - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0): + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5013,16 +5215,18 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.9.1 - '@typescript-eslint/parser': 5.62.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.52.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0 - '@typescript-eslint/utils': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) debug: 4.3.4 + eslint: 8.52.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 semver: 7.5.4 - tsutils: 3.21.0 + tsutils: 3.21.0(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: false @@ -5056,7 +5260,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@5.62.0: + /@typescript-eslint/parser@5.62.0(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5068,8 +5272,10 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) debug: 4.3.4 + eslint: 8.52.0 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: false @@ -5119,7 +5325,7 @@ packages: '@typescript-eslint/visitor-keys': 6.9.1 dev: true - /@typescript-eslint/type-utils@5.62.0: + /@typescript-eslint/type-utils@5.62.0(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5129,10 +5335,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0 - '@typescript-eslint/utils': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) debug: 4.3.4 - tsutils: 3.21.0 + eslint: 8.52.0 + tsutils: 3.21.0(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: false @@ -5193,7 +5401,7 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@5.62.0: + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.2.2): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5208,7 +5416,8 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0 + tsutils: 3.21.0(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: false @@ -5254,18 +5463,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@5.62.0: + /@typescript-eslint/utils@5.62.0(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) '@types/json-schema': 7.0.13 '@types/semver': 7.5.3 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) + eslint: 8.52.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -5362,7 +5572,7 @@ packages: - supports-color dev: false - /@umijs/bundler-vite@4.0.88(postcss@8.4.31)(sass@1.69.5): + /@umijs/bundler-vite@4.0.88(@types/node@20.8.9)(postcss@8.4.31)(rollup@4.1.5)(sass@1.69.5): resolution: {integrity: sha512-qiToAgLwmPWz1t8l82qEPyFXlZvnRKWJW0WG6vuxQNikDMKCWhk18gZaWwMNhqQvAx/oZ37vFCmR8CDoNOMI/A==} hasBin: true dependencies: @@ -5373,9 +5583,9 @@ packages: core-js: 3.28.0 less: 4.1.3 postcss-preset-env: 7.5.0(postcss@8.4.31) - rollup-plugin-visualizer: 5.9.0 + rollup-plugin-visualizer: 5.9.0(rollup@4.1.5) systemjs: 6.14.2 - vite: 4.3.1(less@4.1.3)(sass@1.69.5) + vite: 4.3.1(@types/node@20.8.9)(less@4.1.3)(sass@1.69.5) transitivePeerDependencies: - '@types/node' - postcss @@ -5387,7 +5597,7 @@ packages: - terser dev: false - /@umijs/bundler-webpack@4.0.88: + /@umijs/bundler-webpack@4.0.88(typescript@5.2.2): resolution: {integrity: sha512-9ivKa6pREdgLhni9Zl+HhdqehizLOw+U8Md31l8pcQFq8KHrmlYj0X4iGNMaT7OVWJtZznY0wH4lfLNKSd+RXA==} hasBin: true dependencies: @@ -5404,7 +5614,7 @@ packages: cors: 2.8.5 css-loader: 6.7.1 es5-imcompatible-versions: 0.1.88 - fork-ts-checker-webpack-plugin: 8.0.0 + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.2.2) jest-worker: 29.4.3 lightningcss: 1.19.0 node-libs-browser: 2.2.1 @@ -5544,25 +5754,25 @@ packages: /@umijs/history@5.3.1: resolution: {integrity: sha512-/e0cEGrR2bIWQD7pRl3dl9dcyRGeC9hoW0OCvUTT/hjY0EfUrkd6G8ZanVghPMpDuY5usxq9GVcvrT8KNXLWvA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 query-string: 6.14.1 dev: false - /@umijs/lint@4.0.88: + /@umijs/lint@4.0.88(eslint@8.52.0)(jest@26.6.3)(postcss-less@6.0.0)(stylelint@15.11.0)(typescript@5.2.2): resolution: {integrity: sha512-vDLhfsA0zrAR2NFr/hna75kr1uTYSG032eCg89yBvC7fDn0jxIcXQXEHriZCsgge1puWw0bscnAWR8fx9rdmfA==} dependencies: '@babel/core': 7.23.2 - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2) + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.52.0) '@stylelint/postcss-css-in-js': 0.38.0(postcss-syntax@0.36.2)(postcss@8.4.31) - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0) - '@typescript-eslint/parser': 5.62.0 + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.52.0)(typescript@5.2.2) '@umijs/babel-preset-umi': 4.0.88 - eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@5.62.0) - eslint-plugin-react: 7.33.2 - eslint-plugin-react-hooks: 4.6.0 + eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.52.0)(jest@26.6.3)(typescript@5.2.2) + eslint-plugin-react: 7.33.2(eslint@8.52.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.52.0) postcss: 8.4.31 - postcss-syntax: 0.36.2(postcss@8.4.31) - stylelint-config-standard: 25.0.0 + postcss-syntax: 0.36.2(postcss-less@6.0.0)(postcss@8.4.31) + stylelint-config-standard: 25.0.0(stylelint@15.11.0) transitivePeerDependencies: - eslint - jest @@ -5594,7 +5804,7 @@ packages: tsx: 3.14.0 dev: false - /@umijs/preset-umi@4.0.88(sass@1.69.5): + /@umijs/preset-umi@4.0.88(@types/node@20.8.9)(rollup@4.1.5)(sass@1.69.5)(typescript@5.2.2): resolution: {integrity: sha512-q5emmxWjOrA8ZNTNaNcUEU/FxM/DDnpjGK8aYIce/ih/suzo+K2csWDAkQCBYgNPg4Ro1Juv2oUgyOt3TVcUXA==} dependencies: '@iconify/utils': 2.1.1 @@ -5603,8 +5813,8 @@ packages: '@umijs/babel-preset-umi': 4.0.88 '@umijs/bundler-esbuild': 4.0.88 '@umijs/bundler-utils': 4.0.88 - '@umijs/bundler-vite': 4.0.88(postcss@8.4.31)(sass@1.69.5) - '@umijs/bundler-webpack': 4.0.88 + '@umijs/bundler-vite': 4.0.88(@types/node@20.8.9)(postcss@8.4.31)(rollup@4.1.5)(sass@1.69.5) + '@umijs/bundler-webpack': 4.0.88(typescript@5.2.2) '@umijs/core': 4.0.88 '@umijs/did-you-know': 1.0.3 '@umijs/es-module-parser': 0.0.7 @@ -5689,32 +5899,34 @@ packages: source-map: 0.7.4 dev: false - /@umijs/renderer-react@4.0.88: + /@umijs/renderer-react@4.0.88(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-5zU4+PLO9+D8nl/WikGE6QjYvztKWSLGp+N33TPL0BrrJOSTI/ffH/iwsPxiFG/ABX4oz3SShUyIhyChSnP/WQ==} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: '@babel/runtime': 7.23.2 - '@loadable/component': 5.15.2 + '@loadable/component': 5.15.2(react@18.1.0) history: 5.3.0 - react-helmet-async: 1.3.0 - react-router-dom: 6.3.0 + react: 18.1.0 + react-dom: 18.1.0(react@18.1.0) + react-helmet-async: 1.3.0(react-dom@18.1.0)(react@18.1.0) + react-router-dom: 6.3.0(react-dom@18.1.0)(react@18.1.0) dev: false - /@umijs/renderer-react@4.0.88(react-dom@18.1.0)(react@18.1.0): + /@umijs/renderer-react@4.0.88(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-5zU4+PLO9+D8nl/WikGE6QjYvztKWSLGp+N33TPL0BrrJOSTI/ffH/iwsPxiFG/ABX4oz3SShUyIhyChSnP/WQ==} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: '@babel/runtime': 7.23.2 - '@loadable/component': 5.15.2(react@18.1.0) + '@loadable/component': 5.15.2(react@18.2.0) history: 5.3.0 - react: 18.1.0 - react-dom: 18.1.0(react@18.1.0) - react-helmet-async: 1.3.0(react-dom@18.1.0)(react@18.1.0) - react-router-dom: 6.3.0(react-dom@18.1.0)(react@18.1.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0) + react-router-dom: 6.3.0(react-dom@18.2.0)(react@18.2.0) dev: false /@umijs/server@4.0.88: @@ -5729,14 +5941,14 @@ packages: - supports-color dev: false - /@umijs/test@4.0.88: + /@umijs/test@4.0.88(@babel/core@7.23.2): resolution: {integrity: sha512-3v021VhU/aQc3Jk421z3ys1Q5S/JJlIzhJYYds+O1gb3esgeaGIS6OyDA1xmCaqVGgJeYOq408AN43/hCR9rtw==} dependencies: - '@babel/plugin-transform-modules-commonjs': 7.23.0 + '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.2) '@jest/types': 27.5.1 '@umijs/bundler-utils': 4.0.88 '@umijs/utils': 4.0.88 - babel-jest: 29.7.0 + babel-jest: 29.7.0(@babel/core@7.23.2) esbuild: 0.17.19 identity-obj-proxy: 3.0.0 isomorphic-unfetch: 4.0.2 @@ -5762,7 +5974,6 @@ packages: /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: true /@vitejs/plugin-react@4.0.0(vite@4.3.1): resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==} @@ -5774,7 +5985,7 @@ packages: '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.23.2) '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.23.2) react-refresh: 0.14.0 - vite: 4.3.1(less@4.1.3)(sass@1.69.5) + vite: 4.3.1(@types/node@20.8.9)(less@4.1.3)(sass@1.69.5) transitivePeerDependencies: - supports-color dev: false @@ -5930,7 +6141,7 @@ packages: - supports-color dev: true - /@vue/language-core@1.8.19: + /@vue/language-core@1.8.19(typescript@5.2.2): resolution: {integrity: sha512-nt3dodGs97UM6fnxeQBazO50yYCKBK53waFWB3qMbLmR6eL3aUryZgQtZoBe1pye17Wl8fs9HysV3si6xMgndQ==} peerDependencies: typescript: '*' @@ -5945,6 +6156,7 @@ packages: '@vue/shared': 3.3.4 minimatch: 9.0.3 muggle-string: 0.3.1 + typescript: 5.2.2 vue-template-compiler: 2.7.14 dev: true @@ -6005,11 +6217,11 @@ packages: resolution: {integrity: sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg==} dev: true - /@vue/typescript@1.8.19: + /@vue/typescript@1.8.19(typescript@5.2.2): resolution: {integrity: sha512-k/SHeeQROUgqsxyHQ8Cs3Zz5TnX57p7BcBDVYR2E0c61QL2DJ2G8CsaBremmNGuGE6o1R5D50IHIxFmroMz8iw==} dependencies: '@volar/typescript': 1.10.4 - '@vue/language-core': 1.8.19 + '@vue/language-core': 1.8.19(typescript@5.2.2) transitivePeerDependencies: - typescript dev: true @@ -6077,7 +6289,6 @@ packages: /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - dev: true /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -6101,7 +6312,6 @@ packages: dependencies: acorn: 7.4.1 acorn-walk: 7.2.0 - dev: true /acorn-jsx@5.3.2(acorn@8.10.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -6109,7 +6319,6 @@ packages: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.10.0 - dev: true /acorn-walk@6.2.0: resolution: {integrity: sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==} @@ -6119,7 +6328,6 @@ packages: /acorn-walk@7.2.0: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} engines: {node: '>=0.4.0'} - dev: true /acorn@5.7.4: resolution: {integrity: sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==} @@ -6137,7 +6345,6 @@ packages: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} @@ -6158,7 +6365,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} @@ -6234,7 +6440,6 @@ packages: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 - dev: true /algoliasearch@3.35.1: resolution: {integrity: sha512-K4yKVhaHkXfJ/xcUnil04xiSrB8B8yHZoFEhWNpXg23eiCnqvTZw1tn/SqvdsANlYHLJlKl0qi3I/Q2Sqo7LwQ==} @@ -6310,7 +6515,6 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.21.3 - dev: true /ansi-escapes@5.0.0: resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} @@ -6418,9 +6622,9 @@ packages: '@ant-design/colors': 6.0.0 '@ant-design/icons': 4.8.1(react-dom@18.2.0)(react@18.2.0) '@ant-design/react-slick': 1.0.2(react@18.2.0) - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@ctrl/tinycolor': 3.6.1 - classnames: 2.3.2 + classnames: 2.5.1 copy-to-clipboard: 3.3.3 lodash: 4.17.21 moment: 2.29.4 @@ -6462,66 +6666,6 @@ packages: scroll-into-view-if-needed: 2.2.31 dev: false - /antd@5.12.2: - resolution: {integrity: sha512-lJ4pdBRboN2Tl5hXTqgxUjGIercB2YIK7Z8fVDushgrJ55RhywJjvcQVnBmuxcSPuWEF2Yu8SNBVAnaV4EqzWA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@ant-design/colors': 7.0.0 - '@ant-design/cssinjs': 1.18.1 - '@ant-design/icons': 5.2.6 - '@ant-design/react-slick': 1.0.2 - '@babel/runtime': 7.23.5 - '@ctrl/tinycolor': 3.6.1 - '@rc-component/color-picker': 1.4.1 - '@rc-component/mutate-observer': 1.1.0 - '@rc-component/tour': 1.11.1 - '@rc-component/trigger': 1.18.2 - classnames: 2.3.2 - copy-to-clipboard: 3.3.3 - dayjs: 1.11.7 - qrcode.react: 3.1.0 - rc-cascader: 3.20.0 - rc-checkbox: 3.1.0 - rc-collapse: 3.7.2 - rc-dialog: 9.3.4 - rc-drawer: 6.5.2 - rc-dropdown: 4.1.0 - rc-field-form: 1.41.0 - rc-image: 7.5.1 - rc-input: 1.3.6 - rc-input-number: 8.4.0 - rc-mentions: 2.9.1 - rc-menu: 9.12.4 - rc-motion: 2.9.0 - rc-notification: 5.3.0 - rc-pagination: 4.0.3 - rc-picker: 3.14.6(dayjs@1.11.7) - rc-progress: 3.5.1 - rc-rate: 2.12.0 - rc-resize-observer: 1.4.0 - rc-segmented: 2.2.2 - rc-select: 14.10.0 - rc-slider: 10.5.0 - rc-steps: 6.0.1 - rc-switch: 4.1.0 - rc-table: 7.36.0 - rc-tabs: 12.14.1 - rc-textarea: 1.5.3 - rc-tooltip: 6.1.2 - rc-tree: 5.8.2 - rc-tree-select: 5.15.0 - rc-upload: 4.3.5 - rc-util: 5.38.1 - scroll-into-view-if-needed: 3.1.0 - throttle-debounce: 5.0.0 - transitivePeerDependencies: - - date-fns - - luxon - - moment - dev: false - /antd@5.12.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-lJ4pdBRboN2Tl5hXTqgxUjGIercB2YIK7Z8fVDushgrJ55RhywJjvcQVnBmuxcSPuWEF2Yu8SNBVAnaV4EqzWA==} peerDependencies: @@ -6584,6 +6728,67 @@ packages: - moment dev: true + /antd@5.13.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-phQJa4ezs6e2AnWRxbKVan9fvmURwntAfI+wDRRSP7spPY6t3afjvWfAcVp0Ekb1EPzvF/jUr64j3RMQQYWHVw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@ant-design/colors': 7.0.2 + '@ant-design/cssinjs': 1.18.4(react-dom@18.2.0)(react@18.2.0) + '@ant-design/icons': 5.2.6(react-dom@18.2.0)(react@18.2.0) + '@ant-design/react-slick': 1.0.2(react@18.2.0) + '@ctrl/tinycolor': 3.6.1 + '@rc-component/color-picker': 1.5.1(react-dom@18.2.0)(react@18.2.0) + '@rc-component/mutate-observer': 1.1.0(react-dom@18.2.0)(react@18.2.0) + '@rc-component/tour': 1.12.3(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': 1.18.3(react-dom@18.2.0)(react@18.2.0) + classnames: 2.5.1 + copy-to-clipboard: 3.3.3 + dayjs: 1.11.10 + qrcode.react: 3.1.0(react@18.2.0) + rc-cascader: 3.21.2(react-dom@18.2.0)(react@18.2.0) + rc-checkbox: 3.1.0(react-dom@18.2.0)(react@18.2.0) + rc-collapse: 3.7.2(react-dom@18.2.0)(react@18.2.0) + rc-dialog: 9.3.4(react-dom@18.2.0)(react@18.2.0) + rc-drawer: 7.0.0(react-dom@18.2.0)(react@18.2.0) + rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-field-form: 1.41.0(react-dom@18.2.0)(react@18.2.0) + rc-image: 7.5.1(react-dom@18.2.0)(react@18.2.0) + rc-input: 1.4.3(react-dom@18.2.0)(react@18.2.0) + rc-input-number: 8.6.1(react-dom@18.2.0)(react@18.2.0) + rc-mentions: 2.10.1(react-dom@18.2.0)(react@18.2.0) + rc-menu: 9.12.4(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-notification: 5.3.0(react-dom@18.2.0)(react@18.2.0) + rc-pagination: 4.0.4(react-dom@18.2.0)(react@18.2.0) + rc-picker: 3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + rc-progress: 3.5.1(react-dom@18.2.0)(react@18.2.0) + rc-rate: 2.12.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-segmented: 2.2.2(react-dom@18.2.0)(react@18.2.0) + rc-select: 14.11.0(react-dom@18.2.0)(react@18.2.0) + rc-slider: 10.5.0(react-dom@18.2.0)(react@18.2.0) + rc-steps: 6.0.1(react-dom@18.2.0)(react@18.2.0) + rc-switch: 4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-table: 7.37.0(react-dom@18.2.0)(react@18.2.0) + rc-tabs: 14.0.0(react-dom@18.2.0)(react@18.2.0) + rc-textarea: 1.6.3(react-dom@18.2.0)(react@18.2.0) + rc-tooltip: 6.1.3(react-dom@18.2.0)(react@18.2.0) + rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-tree-select: 5.17.0(react-dom@18.2.0)(react@18.2.0) + rc-upload: 4.5.2(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + scroll-into-view-if-needed: 3.1.0 + throttle-debounce: 5.0.0 + transitivePeerDependencies: + - date-fns + - luxon + - moment + dev: false + /anymatch@1.3.2: resolution: {integrity: sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==} dependencies: @@ -6598,7 +6803,6 @@ packages: normalize-path: 2.1.1 transitivePeerDependencies: - supports-color - dev: true /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} @@ -6663,17 +6867,14 @@ packages: /arr-diff@4.0.0: resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} engines: {node: '>=0.10.0'} - dev: true /arr-flatten@1.1.0: resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} engines: {node: '>=0.10.0'} - dev: true /arr-union@3.1.0: resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} engines: {node: '>=0.10.0'} - dev: true /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} @@ -6735,7 +6936,6 @@ packages: /array-unique@0.3.2: resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} engines: {node: '>=0.10.0'} - dev: true /array.prototype.findlastindex@1.2.3: resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} @@ -6811,7 +7011,6 @@ packages: /arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} - dev: true /arrify@2.0.1: resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} @@ -6846,7 +7045,6 @@ packages: /assign-symbols@1.0.0: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} engines: {node: '>=0.10.0'} - dev: true /ast-types-flow@0.0.7: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} @@ -6855,7 +7053,6 @@ packages: /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - dev: true /astring@1.8.4: resolution: {integrity: sha512-97a+l2LBU3Op3bBQEff79i/E4jMD2ZLFD8rHx9B6mXyB2uQwhJQYfiDqUwtfjF4QA1F2qs//N6Cw8LetMbQjcw==} @@ -7013,18 +7210,18 @@ packages: slash: 3.0.0 transitivePeerDependencies: - supports-color - dev: true - /babel-jest@29.7.0: + /babel-jest@29.7.0(@babel/core@7.23.2): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: + '@babel/core': 7.23.2 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.2 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3 + babel-preset-jest: 29.6.3(@babel/core@7.23.2) chalk: 4.1.2 graceful-fs: 4.2.10 slash: 3.0.0 @@ -7077,7 +7274,6 @@ packages: '@babel/types': 7.23.0 '@types/babel__core': 7.20.2 '@types/babel__traverse': 7.18.3 - dev: true /babel-plugin-jest-hoist@29.6.3: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} @@ -7089,25 +7285,6 @@ packages: '@types/babel__traverse': 7.18.3 dev: false - /babel-preset-current-node-syntax@1.0.1: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/plugin-syntax-async-generators': 7.8.4 - '@babel/plugin-syntax-bigint': 7.8.3 - '@babel/plugin-syntax-class-properties': 7.12.13 - '@babel/plugin-syntax-import-meta': 7.10.4 - '@babel/plugin-syntax-json-strings': 7.8.3 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3 - '@babel/plugin-syntax-numeric-separator': 7.10.4 - '@babel/plugin-syntax-object-rest-spread': 7.8.3 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3 - '@babel/plugin-syntax-optional-chaining': 7.8.3 - '@babel/plugin-syntax-top-level-await': 7.14.5 - dev: false - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.2): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: @@ -7126,7 +7303,6 @@ packages: '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.2) - dev: true /babel-preset-jest@24.9.0(@babel/core@7.23.2): resolution: {integrity: sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==} @@ -7148,16 +7324,16 @@ packages: '@babel/core': 7.23.2 babel-plugin-jest-hoist: 26.6.2 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.2) - dev: true - /babel-preset-jest@29.6.3: + /babel-preset-jest@29.6.3(@babel/core@7.23.2): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: + '@babel/core': 7.23.2 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.2) dev: false /babel-runtime@6.26.0: @@ -7175,7 +7351,6 @@ packages: /balanced-match@2.0.0: resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} - dev: true /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -7191,7 +7366,6 @@ packages: isobject: 3.0.1 mixin-deep: 1.3.2 pascalcase: 0.1.1 - dev: true /bcrypt-pbkdf@1.0.2: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} @@ -7338,7 +7512,6 @@ packages: to-regex: 3.0.2 transitivePeerDependencies: - supports-color - dev: true /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} @@ -7360,7 +7533,6 @@ packages: /browser-process-hrtime@1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} - dev: true /browser-resolve@1.11.3: resolution: {integrity: sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==} @@ -7509,6 +7681,13 @@ packages: dependencies: run-applescript: 5.0.0 + /bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + dependencies: + run-applescript: 7.0.0 + dev: false + /bundlesize@0.18.1: resolution: {integrity: sha512-NAsKBH6BeVmDopoa4tod0m5/koM7iLY3saKyGn7wyAravBYmKNUpDJba4zyVhwRm5Dw9WXv8FIO0N//tCkx68Q==} hasBin: true @@ -7530,7 +7709,6 @@ packages: /bytes-iec@3.1.1: resolution: {integrity: sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==} engines: {node: '>= 0.8'} - dev: true /bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} @@ -7586,7 +7764,6 @@ packages: to-object-path: 0.3.0 union-value: 1.0.1 unset-value: 1.0.0 - dev: true /cacheable-request@6.1.0: resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} @@ -7654,7 +7831,6 @@ packages: map-obj: 4.3.0 quick-lru: 5.1.1 type-fest: 1.4.0 - dev: true /camelcase@1.2.1: resolution: {integrity: sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==} @@ -7690,7 +7866,6 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dependencies: rsvp: 4.8.5 - dev: true /capture-stack-trace@1.0.2: resolution: {integrity: sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w==} @@ -7772,7 +7947,6 @@ packages: /char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} - dev: true /character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -7834,7 +8008,6 @@ packages: /ci-info@2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: true /ci-info@3.7.1: resolution: {integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==} @@ -7850,7 +8023,6 @@ packages: /cjs-module-lexer@0.6.0: resolution: {integrity: sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==} - dev: true /class-utils@0.3.6: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} @@ -7860,11 +8032,14 @@ packages: define-property: 0.2.5 isobject: 3.0.1 static-extend: 0.1.2 - dev: true /classnames@2.3.2: resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} + /classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + dev: false + /clean-css@5.3.1: resolution: {integrity: sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==} engines: {node: '>= 10.0'} @@ -7979,7 +8154,6 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 - dev: true /cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -8011,7 +8185,6 @@ packages: /co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true /coa@2.0.2: resolution: {integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==} @@ -8070,7 +8243,6 @@ packages: /collect-v8-coverage@1.0.1: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} - dev: true /collection-visit@1.0.0: resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} @@ -8078,7 +8250,6 @@ packages: dependencies: map-visit: 1.0.0 object-visit: 1.0.1 - dev: true /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -8112,7 +8283,6 @@ packages: /colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - dev: true /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} @@ -8181,7 +8351,6 @@ packages: /component-emitter@1.3.0: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} - dev: true /compute-scroll-into-view@1.0.20: resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} @@ -8333,7 +8502,6 @@ packages: /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - dev: true /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -8357,7 +8525,6 @@ packages: /copy-descriptor@0.1.1: resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} - dev: true /copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} @@ -8447,7 +8614,6 @@ packages: parse-json: 5.2.0 path-type: 4.0.0 typescript: 5.2.2 - dev: true /cpx@1.5.0: resolution: {integrity: sha512-jHTjZhsbg9xWgsP2vuNW2jnnzBX+p4T+vNI9Lbjzs1n4KhOfa22bQppiFYLsWQKd8TzmL5aSP/Me3yfsCwXbDA==} @@ -8527,7 +8693,6 @@ packages: semver: 5.7.1 shebang-command: 1.2.0 which: 1.3.1 - dev: true /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} @@ -8592,7 +8757,6 @@ packages: /css-functions-list@3.2.1: resolution: {integrity: sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==} engines: {node: '>=12 || >=16'} - dev: true /css-has-pseudo@3.0.4(postcss@8.4.31): resolution: {integrity: sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==} @@ -8680,7 +8844,6 @@ packages: dependencies: mdn-data: 2.0.30 source-map-js: 1.0.2 - dev: true /css-what@3.4.2: resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==} @@ -8784,11 +8947,9 @@ packages: /cssom@0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true /cssom@0.4.4: resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} - dev: true /cssstyle@1.4.0: resolution: {integrity: sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==} @@ -8801,10 +8962,10 @@ packages: engines: {node: '>=8'} dependencies: cssom: 0.3.8 - dev: true /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + dev: true /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -8949,7 +9110,6 @@ packages: abab: 2.0.6 whatwg-mimetype: 2.3.0 whatwg-url: 8.7.0 - dev: true /datauri@3.0.0: resolution: {integrity: sha512-NeDFuUPV1YCpCn8MUIcDk1QnuyenUHs7f4Q5P0n9FFA0neKFrfEH9esR+YMW95BplbYfdmjbs0Pl/ZGAaM2QHQ==} @@ -8969,6 +9129,10 @@ packages: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} dev: true + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: false + /dayjs@1.11.7: resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} @@ -9024,7 +9188,6 @@ packages: dependencies: decamelize: 1.2.0 map-obj: 1.0.1 - dev: true /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} @@ -9033,7 +9196,6 @@ packages: /decamelize@5.0.1: resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} engines: {node: '>=10'} - dev: true /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} @@ -9100,7 +9262,6 @@ packages: /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true /deep-rename-keys@0.2.1: resolution: {integrity: sha512-RHd9ABw4Fvk+gYDWqwOftG849x0bYOySl/RgX0tLI9i27ZIeSO91mLZJEp7oPHOMFqHvpgu21YptmDt0FYD/0A==} @@ -9113,7 +9274,6 @@ packages: /deepmerge@4.2.2: resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} engines: {node: '>=0.10.0'} - dev: true /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} @@ -9127,6 +9287,11 @@ packages: bplist-parser: 0.2.0 untildify: 4.0.0 + /default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + dev: false + /default-browser@4.0.0: resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} engines: {node: '>=14.16'} @@ -9136,6 +9301,14 @@ packages: execa: 7.2.0 titleize: 3.0.0 + /default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + dev: false + /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: @@ -9182,14 +9355,12 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-descriptor: 0.1.6 - dev: true /define-property@1.0.0: resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} engines: {node: '>=0.10.0'} dependencies: is-descriptor: 1.0.2 - dev: true /define-property@2.0.2: resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} @@ -9197,7 +9368,6 @@ packages: dependencies: is-descriptor: 1.0.2 isobject: 3.0.1 - dev: true /defined@1.0.1: resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} @@ -9232,6 +9402,14 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + /derive-valtio@0.1.0(valtio@1.13.0): + resolution: {integrity: sha512-OCg2UsLbXK7GmmpzMXhYkdO64vhJ1ROUUGaTFyHjVwEdMEcTTRj7W1TxLbSBxdY8QLBPCcp66MTyaSy0RpO17A==} + peerDependencies: + valtio: '*' + dependencies: + valtio: 1.13.0(react@18.2.0) + dev: false + /des.js@1.0.1: resolution: {integrity: sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==} dependencies: @@ -9257,7 +9435,6 @@ packages: /detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} - dev: true /detect-newline@4.0.1: resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} @@ -9268,6 +9445,12 @@ packages: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} requiresBuild: true + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 + dev: false + /diff-sequences@24.9.0: resolution: {integrity: sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==} engines: {node: '>= 6'} @@ -9276,7 +9459,6 @@ packages: /diff-sequences@26.6.2: resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} engines: {node: '>= 10.14.2'} - dev: true /diff-sequences@27.5.1: resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} @@ -9327,7 +9509,6 @@ packages: engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 - dev: true /dom-accessibility-api@0.5.15: resolution: {integrity: sha512-8o+oVqLQZoruQPYy3uAAQtc6YbtSiRq5aPJBhJ82YTJRHvI6ofhYAkC81WmjFTnfUbqg6T3aCglIpU9p/5e7Cw==} @@ -9395,7 +9576,6 @@ packages: engines: {node: '>=8'} dependencies: webidl-conversions: 5.0.0 - dev: true /domhandler@4.3.1: resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} @@ -9471,15 +9651,15 @@ packages: resolution: {integrity: sha512-a/Y5lf0G6gwsEQ9hop/n03CcjmHsGBk384Cz/AEX6mRYrfSpUx/lQvP9HLoXkCzScl9PL1sSmLPnMkgaXDCZLA==} dev: false - /dumi@2.2.15: - resolution: {integrity: sha512-O6bUZvqYictU1p5kuwD26Vrn4g5HuMaw41GBhjEEG0rjAveNvnQdgJBJS6YarNCTTLJ9fUZ4t86aBt31MUCTHw==} + /dumi@2.2.17(@babel/core@7.23.2)(@types/node@20.8.9)(eslint@8.52.0)(jest@26.6.3)(postcss-less@6.0.0)(prettier@3.0.3)(react-dom@18.2.0)(react@18.2.0)(rollup@4.1.5)(stylelint@15.11.0)(typescript@5.2.2): + resolution: {integrity: sha512-oI2OVlkkVORy0ud64YlhrBF+rsAda9rGFxMLrOLepTjC96mLOrgUz/geKkckWA5LemEuFVsaTYE/5HDpAPTkvQ==} hasBin: true peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: '@ant-design/icons-svg': 4.3.1 - '@makotot/ghostui': 2.0.0 + '@makotot/ghostui': 2.0.0(react@18.2.0) '@stackblitz/sdk': 1.9.0 '@swc/core': 1.3.72 '@types/hast': 2.3.8 @@ -9513,16 +9693,18 @@ packages: mdast-util-to-string: 3.2.0 nprogress: 0.2.0 pluralize: 8.0.0 - prism-react-renderer: 1.3.5 + prism-react-renderer: 1.3.5(react@18.2.0) prism-themes: 1.9.0 prismjs: 1.29.0 raw-loader: 4.0.2 - rc-motion: 2.9.0 - rc-tabs: 12.14.1 - rc-tree: 5.8.2 - react-copy-to-clipboard: 5.1.0 - react-error-boundary: 4.0.11 - react-intl: 6.5.5 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-tabs: 12.14.1(react-dom@18.2.0)(react@18.2.0) + rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-copy-to-clipboard: 5.1.0(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) + react-error-boundary: 4.0.11(react@18.2.0) + react-intl: 6.5.5(react@18.2.0)(typescript@5.2.2) rehype-autolink-headings: 6.1.1 rehype-remove-comments: 5.0.0 rehype-stringify: 9.0.3 @@ -9533,7 +9715,7 @@ packages: remark-rehype: 10.1.0 sass: 1.69.5 sitemap: 7.1.1 - umi: 4.0.88(sass@1.69.5) + umi: 4.0.88(@babel/core@7.23.2)(@types/node@20.8.9)(eslint@8.52.0)(jest@26.6.3)(postcss-less@6.0.0)(prettier@3.0.3)(react-dom@18.2.0)(react@18.2.0)(rollup@4.1.5)(sass@1.69.5)(stylelint@15.11.0)(typescript@5.2.2) unified: 10.1.2 unist-util-visit: 4.1.2 unist-util-visit-parents: 5.1.3 @@ -9675,7 +9857,6 @@ packages: /emittery@0.7.2: resolution: {integrity: sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==} engines: {node: '>=10'} - dev: true /emoji-regex@10.2.1: resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==} @@ -10113,6 +10294,16 @@ packages: dev: true optional: true + /esbuild-visualizer@0.6.0: + resolution: {integrity: sha512-oNK3JAhC7+re93VTtUdWJKTDVnA2qXPAjCAoaw9OxEFUXztszw3kcaK46u1U790T8FdUBAWv6F9Xt59P8nJCVA==} + engines: {node: '>=18'} + hasBin: true + dependencies: + open: 8.4.0 + picomatch: 2.3.1 + yargs: 17.7.2 + dev: false + /esbuild-windows-32@0.14.54: resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} engines: {node: '>=12'} @@ -10228,6 +10419,37 @@ packages: '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + dev: false + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -10243,7 +10465,6 @@ packages: /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - dev: true /escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} @@ -10273,7 +10494,6 @@ packages: optionator: 0.8.3 optionalDependencies: source-map: 0.6.1 - dev: true /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.0)(eslint@8.52.0): resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} @@ -10382,7 +10602,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0): + /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.52.0)(jest@26.6.3)(typescript@5.2.2): resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -10395,8 +10615,10 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0) - '@typescript-eslint/utils': 5.62.0 + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + eslint: 8.52.0 + jest: 26.6.3 transitivePeerDependencies: - supports-color - typescript @@ -10491,13 +10713,6 @@ packages: synckit: 0.8.5 dev: true - /eslint-plugin-react-hooks@4.6.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dev: false - /eslint-plugin-react-hooks@4.6.0(eslint@8.52.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} @@ -10505,31 +10720,6 @@ packages: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: eslint: 8.52.0 - dev: true - - /eslint-plugin-react@7.33.2: - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - array.prototype.tosorted: 1.1.1 - doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.3 - minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - object.hasown: 1.1.2 - object.values: 1.1.6 - prop-types: 15.8.1 - resolve: 2.0.0-next.4 - semver: 6.3.1 - string.prototype.matchall: 4.0.8 - dev: false /eslint-plugin-react@7.33.2(eslint@8.52.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} @@ -10554,7 +10744,6 @@ packages: resolve: 2.0.0-next.4 semver: 6.3.1 string.prototype.matchall: 4.0.8 - dev: true /eslint-plugin-vue@9.17.0(eslint@8.52.0): resolution: {integrity: sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==} @@ -10587,7 +10776,6 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: true /eslint-utils@3.0.0(eslint@8.52.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} @@ -10652,7 +10840,6 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: true /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} @@ -10661,7 +10848,6 @@ packages: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) eslint-visitor-keys: 3.4.3 - dev: true /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -10673,7 +10859,6 @@ packages: engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 - dev: true /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} @@ -10699,6 +10884,10 @@ packages: resolution: {integrity: sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ==} dev: false + /estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + dev: false + /estree-util-to-js@1.2.0: resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==} dependencies: @@ -10760,7 +10949,6 @@ packages: /exec-sh@0.3.6: resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} - dev: true /execa@0.7.0: resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} @@ -10799,7 +10987,6 @@ packages: p-finally: 1.0.0 signal-exit: 3.0.7 strip-eof: 1.0.0 - dev: true /execa@4.1.0: resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} @@ -10814,7 +11001,6 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 - dev: true /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} @@ -10862,7 +11048,6 @@ packages: /exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} - dev: true /expand-brackets@0.1.5: resolution: {integrity: sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==} @@ -10884,7 +11069,6 @@ packages: to-regex: 3.0.2 transitivePeerDependencies: - supports-color - dev: true /expand-range@1.8.2: resolution: {integrity: sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==} @@ -10929,7 +11113,6 @@ packages: jest-matcher-utils: 26.6.2 jest-message-util: 26.6.2 jest-regex-util: 26.0.0 - dev: true /extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} @@ -10943,7 +11126,6 @@ packages: dependencies: assign-symbols: 1.0.0 is-extendable: 1.0.1 - dev: true /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -10977,7 +11159,6 @@ packages: to-regex: 3.0.2 transitivePeerDependencies: - supports-color - dev: true /extract-from-css@0.4.4: resolution: {integrity: sha512-41qWGBdtKp9U7sgBxAQ7vonYqSXzgW/SiAYzq4tdWSVhAShvpVCH1nyvPQgjse6EdgbW7Y7ERdT3674/lKr65A==} @@ -11039,14 +11220,12 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 - dev: true /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true /fast-loops@1.1.3: resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} @@ -11068,7 +11247,6 @@ packages: /fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - dev: true /fastest-stable-stringify@2.0.2: resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} @@ -11133,14 +11311,12 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 - dev: true /file-entry-cache@7.0.1: resolution: {integrity: sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==} engines: {node: '>=12.0.0'} dependencies: flat-cache: 3.1.1 - dev: true /file-name@0.1.0: resolution: {integrity: sha512-Q8SskhjF4eUk/xoQkmubwLkoHwOTv6Jj/WGtOVLKkZ0vvM+LipkSXugkn1F/+mjWXU32AXLZB3qaz0arUzgtRw==} @@ -11203,7 +11379,6 @@ packages: is-number: 3.0.0 repeat-string: 1.6.1 to-regex-range: 2.1.1 - dev: true /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} @@ -11284,7 +11459,6 @@ packages: dependencies: flatted: 3.2.7 rimraf: 3.0.2 - dev: true /flat-cache@3.1.1: resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} @@ -11293,15 +11467,12 @@ packages: flatted: 3.2.9 keyv: 4.5.4 rimraf: 3.0.2 - dev: true /flatted@3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - dev: true /flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} - dev: true /flru@1.0.2: resolution: {integrity: sha512-kWyh8ADvHBFz6ua5xYOPnUroZTT/bwWfrCeL0Wj1dzG4/YOmOcfJ99W8dOVyyynJN35rZ9aCOtHChqQovV7yog==} @@ -11350,7 +11521,6 @@ packages: /for-in@1.0.2: resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} engines: {node: '>=0.10.0'} - dev: true /for-own@0.1.5: resolution: {integrity: sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==} @@ -11374,7 +11544,7 @@ packages: /forever-agent@0.6.1: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} - /fork-ts-checker-webpack-plugin@8.0.0: + /fork-ts-checker-webpack-plugin@8.0.0(typescript@5.2.2): resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: @@ -11393,6 +11563,7 @@ packages: schema-utils: 3.1.1 semver: 7.5.4 tapable: 2.2.1 + typescript: 5.2.2 dev: false /form-data@2.3.3: @@ -11410,7 +11581,6 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - dev: true /format@0.2.2: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} @@ -11433,7 +11603,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: map-cache: 0.2.2 - dev: true /from2@2.3.0: resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} @@ -11660,14 +11829,12 @@ packages: engines: {node: '>=6'} dependencies: pump: 3.0.0 - dev: true /get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} dependencies: pump: 3.0.0 - dev: true /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} @@ -11714,8 +11881,8 @@ packages: globby: 6.1.0 dev: true - /gh-pages@6.1.0: - resolution: {integrity: sha512-MdXigvqN3I66Y+tAZsQJMzpBWQOI1snD6BYuECmP+GEdryYMMOQvzn4AConk/+qNg/XIuQhB1xNGrl3Rmj1iow==} + /gh-pages@6.1.1: + resolution: {integrity: sha512-upnohfjBwN5hBP9w2dPE7HO5JJTHzSGMV1JrLrHvNuqmjoYHg6TBrCcnEoorjG/e0ejbuvnwyKMdTyM40PEByw==} engines: {node: '>=10'} hasBin: true dependencies: @@ -11830,7 +11997,6 @@ packages: engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 - dev: true /glob2base@0.0.12: resolution: {integrity: sha512-ZyqlgowMbfj2NPjxaZZ/EtsXlOch28FRXgMd64vqZWk1bT9+wvSRLYD1om9M7QfQru51zJPAT17qXm4/zd+9QA==} @@ -11904,7 +12070,6 @@ packages: engines: {node: '>=6'} dependencies: global-prefix: 3.0.0 - dev: true /global-prefix@0.1.5: resolution: {integrity: sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==} @@ -11923,7 +12088,6 @@ packages: ini: 1.3.8 kind-of: 6.0.3 which: 1.3.1 - dev: true /global-tunnel-ng@2.7.1: resolution: {integrity: sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==} @@ -11953,7 +12117,6 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.20.2 - dev: true /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} @@ -11977,7 +12140,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.3.1 + fast-glob: 3.3.2 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 @@ -11993,7 +12156,6 @@ packages: path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 - dev: true /globby@6.1.0: resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} @@ -12007,7 +12169,6 @@ packages: /globjoin@0.1.4: resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} - dev: true /google-auth-library@8.7.0: resolution: {integrity: sha512-1M0NG5VDIvJZEnstHbRdckLZESoJwguinwN8Dhae0j2ZKIQFIV63zxm6Fo6nM4xkgqUr2bbMtV5Dgo+Hy6oo0Q==} @@ -12111,7 +12272,6 @@ packages: /growly@1.3.0: resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} requiresBuild: true - dev: true optional: true /gtoken@6.1.2: @@ -12169,7 +12329,6 @@ packages: /hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} - dev: true /harmony-reflect@1.6.2: resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} @@ -12235,7 +12394,6 @@ packages: get-value: 2.0.6 has-values: 1.0.0 isobject: 3.0.1 - dev: true /has-values@0.1.4: resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} @@ -12247,7 +12405,6 @@ packages: dependencies: is-number: 3.0.0 kind-of: 4.0.0 - dev: true /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} @@ -12306,6 +12463,19 @@ packages: vfile-location: 4.0.1 web-namespaces: 2.0.1 + /hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.2.0 + vfile: 6.0.1 + vfile-location: 5.0.2 + web-namespaces: 2.0.1 + dev: false + /hast-util-has-property@2.0.1: resolution: {integrity: sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==} @@ -12340,6 +12510,12 @@ packages: dependencies: '@types/hast': 2.3.4 + /hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + dependencies: + '@types/hast': 3.0.4 + dev: false + /hast-util-phrasing@2.0.2: resolution: {integrity: sha512-yGkCfPkkfCyiLfK6KEl/orMDr/zgCnq/NaO9HfULx6/Zga5fso5eqQA5Ov/JZVqACygvw9shRYWgXNcG2ilo7w==} dependencies: @@ -12382,6 +12558,24 @@ packages: zwitch: 2.0.4 dev: false + /hast-util-raw@9.0.2: + resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.1.0 + parse5: 7.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + /hast-util-to-estree@2.3.3: resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} dependencies: @@ -12419,6 +12613,28 @@ packages: stringify-entities: 4.0.3 zwitch: 2.0.4 + /hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} + dependencies: + '@types/estree': 1.0.0 + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.0.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + style-to-object: 1.0.5 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + /hast-util-to-mdast@8.4.1: resolution: {integrity: sha512-tfmBLASuCgyhCzpkTXM5kU8xeuS5jkMZ17BYm2YftGT5wvgc7uHXTZ/X8WfNd6F5NV/IGmrLsuahZ+jXQir4zQ==} dependencies: @@ -12449,6 +12665,18 @@ packages: web-namespaces: 2.0.1 zwitch: 2.0.4 + /hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + /hast-util-to-string@2.0.0: resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==} dependencies: @@ -12467,6 +12695,12 @@ packages: /hast-util-whitespace@2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + dependencies: + '@types/hast': 3.0.4 + dev: false + /hast@1.0.0: resolution: {integrity: sha512-vFUqlRV5C+xqP76Wwq2SrM0kipnmpxJm7OfvVXpB35Fp+Fn4MV+ozr+JZr5qFvyR1q/U+Foim2x+3P+x9S1PLA==} deprecated: Renamed to rehype @@ -12481,6 +12715,16 @@ packages: property-information: 6.2.0 space-separated-tokens: 2.0.2 + /hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + dev: false + /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -12498,7 +12742,7 @@ packages: /history@5.3.0: resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 dev: false /hmac-drbg@1.0.1: @@ -12543,7 +12787,6 @@ packages: engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 - dev: true /hosted-git-info@6.1.1: resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} @@ -12576,7 +12819,6 @@ packages: engines: {node: '>=10'} dependencies: whatwg-encoding: 1.0.5 - dev: true /html-entities@2.3.3: resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} @@ -12584,7 +12826,6 @@ packages: /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true /html-minifier-terser@6.1.0: resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} @@ -12608,7 +12849,6 @@ packages: /html-tags@3.3.1: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} - dev: true /html-to-text@9.0.5: resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} @@ -12621,9 +12861,17 @@ packages: selderee: 0.11.0 dev: false + /html-url-attributes@3.0.0: + resolution: {integrity: sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==} + dev: false + /html-void-elements@2.0.1: resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + dev: false + /html-webpack-plugin@5.5.0: resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==} engines: {node: '>=10.13.0'} @@ -12704,7 +12952,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} @@ -12757,7 +13004,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /https-proxy-agent@7.0.2: resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} @@ -12772,7 +13018,6 @@ packages: /human-signals@1.1.1: resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} engines: {node: '>=8.12.0'} - dev: true /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} @@ -12927,7 +13172,6 @@ packages: /import-lazy@4.0.0: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} engines: {node: '>=8'} - dev: true /import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} @@ -12936,7 +13180,6 @@ packages: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 - dev: true /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} @@ -12979,6 +13222,10 @@ packages: /inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + /inline-style-parser@0.2.2: + resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} + dev: false + /inline-style-prefixer@6.0.4: resolution: {integrity: sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg==} dependencies: @@ -13099,14 +13346,12 @@ packages: engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 - dev: true /is-accessor-descriptor@1.0.0: resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} engines: {node: '>=0.10.0'} dependencies: kind-of: 6.0.3 - dev: true /is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -13212,7 +13457,6 @@ packages: hasBin: true dependencies: ci-info: 2.0.0 - dev: true /is-core-module@2.11.0: resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} @@ -13235,14 +13479,12 @@ packages: engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 - dev: true /is-data-descriptor@1.0.0: resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} engines: {node: '>=0.10.0'} dependencies: kind-of: 6.0.3 - dev: true /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} @@ -13260,7 +13502,6 @@ packages: is-accessor-descriptor: 0.1.6 is-data-descriptor: 0.1.4 kind-of: 5.1.0 - dev: true /is-descriptor@1.0.2: resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} @@ -13269,7 +13510,6 @@ packages: is-accessor-descriptor: 1.0.0 is-data-descriptor: 1.0.0 kind-of: 6.0.3 - dev: true /is-directory@0.3.1: resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} @@ -13334,7 +13574,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-plain-object: 2.0.4 - dev: true /is-extglob@1.0.0: resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==} @@ -13373,7 +13612,6 @@ packages: /is-generator-fn@2.1.0: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} - dev: true /is-generator-function@1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} @@ -13463,7 +13701,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 - dev: true /is-number@4.0.0: resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==} @@ -13499,12 +13736,10 @@ packages: /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} - dev: true /is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} - dev: true /is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} @@ -13524,7 +13759,6 @@ packages: /is-plain-object@5.0.0: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} - dev: true /is-posix-bracket@0.1.1: resolution: {integrity: sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==} @@ -13533,7 +13767,6 @@ packages: /is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true /is-primitive@2.0.0: resolution: {integrity: sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==} @@ -13667,7 +13900,6 @@ packages: /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} - dev: true /is-wsl@1.1.0: resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} @@ -13680,6 +13912,13 @@ packages: dependencies: is-docker: 2.2.1 + /is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + dependencies: + is-inside-container: 1.0.0 + dev: false + /isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: false @@ -13758,7 +13997,6 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true /istanbul-lib-instrument@5.2.1: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} @@ -13779,7 +14017,6 @@ packages: istanbul-lib-coverage: 3.2.0 make-dir: 3.1.0 supports-color: 7.2.0 - dev: true /istanbul-lib-source-maps@4.0.1: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} @@ -13790,7 +14027,6 @@ packages: source-map: 0.6.1 transitivePeerDependencies: - supports-color - dev: true /istanbul-reports@3.1.5: resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} @@ -13798,7 +14034,6 @@ packages: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.0 - dev: true /istextorbinary@2.6.0: resolution: {integrity: sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==} @@ -13839,7 +14074,6 @@ packages: '@jest/types': 26.6.2 execa: 4.1.0 throat: 5.0.0 - dev: true /jest-cli@26.6.3: resolution: {integrity: sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==} @@ -13865,7 +14099,6 @@ packages: - supports-color - ts-node - utf-8-validate - dev: true /jest-config@24.9.0: resolution: {integrity: sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==} @@ -13926,7 +14159,6 @@ packages: - canvas - supports-color - utf-8-validate - dev: true /jest-diff@24.9.0: resolution: {integrity: sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==} @@ -13946,7 +14178,6 @@ packages: diff-sequences: 26.6.2 jest-get-type: 26.3.0 pretty-format: 26.6.2 - dev: true /jest-diff@27.5.1: resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} @@ -13970,7 +14201,6 @@ packages: engines: {node: '>= 10.14.2'} dependencies: detect-newline: 3.1.0 - dev: true /jest-each@24.9.0: resolution: {integrity: sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==} @@ -13994,7 +14224,6 @@ packages: jest-get-type: 26.3.0 jest-util: 26.6.2 pretty-format: 26.6.2 - dev: true /jest-electron@0.1.12(jest@26.6.3): resolution: {integrity: sha512-10Hjr1kpyWz5cj9Xs/Xfb8yvF1LZPVmyEMHu/A/VhgvIV5yiP9uD8FHNc4HAfEnZHM+wvpR5YfveBTUAiNfwnA==} @@ -14050,7 +14279,6 @@ packages: - canvas - supports-color - utf-8-validate - dev: true /jest-environment-node@24.9.0: resolution: {integrity: sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==} @@ -14075,7 +14303,6 @@ packages: '@types/node': 20.8.9 jest-mock: 26.6.2 jest-util: 26.6.2 - dev: true /jest-extended@0.11.5: resolution: {integrity: sha512-3RsdFpLWKScpsLD6hJuyr/tV5iFOrw7v6YjA3tPdda9sJwoHwcMROws5gwiIZfcwhHlJRwFJB2OUvGmF3evV/Q==} @@ -14099,7 +14326,6 @@ packages: /jest-get-type@26.3.0: resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} engines: {node: '>= 10.14.2'} - dev: true /jest-get-type@27.5.1: resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==} @@ -14148,7 +14374,6 @@ packages: fsevents: 2.3.3 transitivePeerDependencies: - supports-color - dev: true /jest-haste-map@29.7.0: resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} @@ -14223,7 +14448,6 @@ packages: - supports-color - ts-node - utf-8-validate - dev: true /jest-leak-detector@24.9.0: resolution: {integrity: sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==} @@ -14239,7 +14463,6 @@ packages: dependencies: jest-get-type: 26.3.0 pretty-format: 26.6.2 - dev: true /jest-less-loader@0.2.0(less@4.2.0): resolution: {integrity: sha512-1UVS+j6O42jzhQG6baGNZZUMWtMNk+ZDQ3FYmk7xThfwcbvWbfOqFJ/n3e9gJI4A8yJTUz+5oEgPQkKNae4yCA==} @@ -14275,7 +14498,6 @@ packages: jest-diff: 26.6.2 jest-get-type: 26.3.0 pretty-format: 26.6.2 - dev: true /jest-matcher-utils@27.5.1: resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==} @@ -14316,7 +14538,6 @@ packages: pretty-format: 26.6.2 slash: 3.0.0 stack-utils: 2.0.6 - dev: true /jest-mock@24.9.0: resolution: {integrity: sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==} @@ -14331,7 +14552,6 @@ packages: dependencies: '@jest/types': 26.6.2 '@types/node': 20.8.9 - dev: true /jest-pnp-resolver@1.2.3(jest-resolve@24.9.0): resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} @@ -14355,7 +14575,6 @@ packages: optional: true dependencies: jest-resolve: 26.6.2 - dev: true /jest-raw-loader@1.0.1: resolution: {integrity: sha512-g9oaAjeC4/rIJk1Wd3RxVbOfMizowM7LSjEJqa4R9qDX0OjQNABXOhH+GaznUp+DjTGVPi2vPPbQXyX87DOnYg==} @@ -14369,7 +14588,6 @@ packages: /jest-regex-util@26.0.0: resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} engines: {node: '>= 10.14.2'} - dev: true /jest-regex-util@29.6.3: resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} @@ -14385,7 +14603,6 @@ packages: jest-snapshot: 26.6.2 transitivePeerDependencies: - supports-color - dev: true /jest-resolve@24.9.0: resolution: {integrity: sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==} @@ -14410,7 +14627,6 @@ packages: read-pkg-up: 7.0.1 resolve: 1.22.8 slash: 3.0.0 - dev: true /jest-runner@24.9.0: resolution: {integrity: sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==} @@ -14471,7 +14687,6 @@ packages: - supports-color - ts-node - utf-8-validate - dev: true /jest-runtime@24.9.0: resolution: {integrity: sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==} @@ -14545,7 +14760,6 @@ packages: - supports-color - ts-node - utf-8-validate - dev: true /jest-serializer@24.9.0: resolution: {integrity: sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==} @@ -14558,7 +14772,6 @@ packages: dependencies: '@types/node': 20.8.9 graceful-fs: 4.2.10 - dev: true /jest-snapshot@24.9.0: resolution: {integrity: sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==} @@ -14603,7 +14816,6 @@ packages: semver: 7.5.4 transitivePeerDependencies: - supports-color - dev: true /jest-url-loader@0.1.0: resolution: {integrity: sha512-XbYYGUuejpKe7bnAwIcNqy3lBFn2Ml7dtBCnZk0qOgAOBgsU4/M0hcq5mgW+l9gRjT6QAH/2eCtRN135Y6pcKw==} @@ -14641,7 +14853,6 @@ packages: graceful-fs: 4.2.10 is-ci: 2.0.0 micromatch: 4.0.5 - dev: true /jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} @@ -14677,7 +14888,6 @@ packages: jest-get-type: 26.3.0 leven: 3.1.0 pretty-format: 26.6.2 - dev: true /jest-watcher@26.6.2: resolution: {integrity: sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==} @@ -14690,7 +14900,6 @@ packages: chalk: 4.1.2 jest-util: 26.6.2 string-length: 4.0.2 - dev: true /jest-worker@24.9.0: resolution: {integrity: sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==} @@ -14707,7 +14916,6 @@ packages: '@types/node': 20.8.9 merge-stream: 2.0.0 supports-color: 7.2.0 - dev: true /jest-worker@29.4.3: resolution: {integrity: sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA==} @@ -14743,7 +14951,6 @@ packages: - supports-color - ts-node - utf-8-validate - dev: true /jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} @@ -14890,7 +15097,6 @@ packages: - bufferutil - supports-color - utf-8-validate - dev: true /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} @@ -14914,7 +15120,6 @@ packages: /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true /json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} @@ -14927,14 +15132,12 @@ packages: /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true /json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true /json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} @@ -15031,7 +15234,6 @@ packages: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 - dev: true /kind-of@3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} @@ -15044,17 +15246,14 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-buffer: 1.1.6 - dev: true /kind-of@5.1.0: resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} engines: {node: '>=0.10.0'} - dev: true /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - dev: true /klaw@3.0.0: resolution: {integrity: sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==} @@ -15065,7 +15264,6 @@ packages: /kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - dev: true /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} @@ -15073,7 +15271,6 @@ packages: /known-css-properties@0.29.0: resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==} - dev: true /kolorist@1.6.0: resolution: {integrity: sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==} @@ -15158,7 +15355,6 @@ packages: /leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} - dev: true /levn@0.3.0: resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} @@ -15166,7 +15362,6 @@ packages: dependencies: prelude-ls: 1.1.2 type-check: 0.3.2 - dev: true /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} @@ -15174,7 +15369,6 @@ packages: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true /lightningcss-darwin-arm64@1.19.0: resolution: {integrity: sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==} @@ -15276,7 +15470,6 @@ packages: /lilconfig@3.0.0: resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} engines: {node: '>=14'} - dev: true /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -15438,7 +15631,6 @@ packages: /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true /lodash.mergewith@4.6.2: resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} @@ -15462,7 +15654,6 @@ packages: /lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - dev: true /lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} @@ -15633,24 +15824,20 @@ packages: /map-cache@0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} engines: {node: '>=0.10.0'} - dev: true /map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} - dev: true /map-obj@4.3.0: resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} engines: {node: '>=8'} - dev: true /map-visit@1.0.0: resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} engines: {node: '>=0.10.0'} dependencies: object-visit: 1.0.1 - dev: true /markdown-it-anchor@8.6.6(@types/markdown-it@12.2.3)(markdown-it@12.3.2): resolution: {integrity: sha512-jRW30YGywD2ESXDc+l17AiritL0uVaSnWsb26f+68qaW9zgbIIr1f4v2Nsvc0+s0Z2N3uX6t/yAw7BwCQ1wMsA==} @@ -15755,7 +15942,6 @@ packages: /mathml-tag-names@2.1.3: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} - dev: true /md5.js@1.3.5: resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} @@ -15770,7 +15956,7 @@ packages: dependencies: '@types/mdast': 3.0.10 '@types/unist': 2.0.6 - unist-util-visit: 4.1.1 + unist-util-visit: 4.1.2 /mdast-util-directive@2.2.2: resolution: {integrity: sha512-6BuW4dFkCbTIf9peVMXdtWylI6ovMidVjnHyJpx7IDhwk3GosIgUs87Rl3x6T6kP5iAf1qIE3lMn6CgWw40d+g==} @@ -15799,6 +15985,15 @@ packages: unist-util-visit-parents: 5.1.3 dev: false + /mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + dependencies: + '@types/mdast': 4.0.3 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: false + /mdast-util-from-markdown@1.2.0: resolution: {integrity: sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==} dependencies: @@ -15817,6 +16012,25 @@ packages: transitivePeerDependencies: - supports-color + /mdast-util-from-markdown@2.0.0: + resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + dependencies: + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: false + /mdast-util-frontmatter@1.0.0: resolution: {integrity: sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==} dependencies: @@ -15831,6 +16045,16 @@ packages: mdast-util-find-and-replace: 2.2.1 micromark-util-character: 1.1.0 + /mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + dependencies: + '@types/mdast': 4.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 + dev: false + /mdast-util-gfm-footnote@1.0.1: resolution: {integrity: sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==} dependencies: @@ -15838,12 +16062,34 @@ packages: mdast-util-to-markdown: 1.5.0 micromark-util-normalize-identifier: 1.0.0 + /mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + dependencies: + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: false + /mdast-util-gfm-strikethrough@1.0.2: resolution: {integrity: sha512-T/4DVHXcujH6jx1yqpcAYYwd+z5lAYMw4Ls6yhTfbMMtCt0PHY4gEfhW9+lKsLBtyhUGKRIzcUA2FATVqnvPDA==} dependencies: '@types/mdast': 3.0.10 mdast-util-to-markdown: 1.5.0 + /mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + dependencies: + '@types/mdast': 4.0.3 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + /mdast-util-gfm-table@1.0.6: resolution: {integrity: sha512-uHR+fqFq3IvB3Rd4+kzXW8dmpxUhvgCQZep6KdjsLK4O6meK5dYZEayLtIxNus1XO3gfjfcIFe8a7L0HZRGgag==} dependencies: @@ -15854,12 +16100,35 @@ packages: transitivePeerDependencies: - supports-color + /mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + dependencies: + '@types/mdast': 4.0.3 + devlop: 1.1.0 + markdown-table: 3.0.3 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + /mdast-util-gfm-task-list-item@1.0.1: resolution: {integrity: sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==} dependencies: '@types/mdast': 3.0.10 mdast-util-to-markdown: 1.5.0 + /mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + dependencies: + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + /mdast-util-gfm@2.0.1: resolution: {integrity: sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==} dependencies: @@ -15873,6 +16142,20 @@ packages: transitivePeerDependencies: - supports-color + /mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + dependencies: + mdast-util-from-markdown: 2.0.0 + mdast-util-gfm-autolink-literal: 2.0.0 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + /mdast-util-mdx-expression@1.3.1: resolution: {integrity: sha512-TTb6cKyTA1RD+1su1iStZ5PAv3rFfOUKcoU5EstUpv/IZo63uDX03R8+jXjMEhcobXnNOiG6/ccekvVl4eV1zQ==} dependencies: @@ -15885,6 +16168,39 @@ packages: - supports-color dev: false + /mdast-util-mdx-expression@2.0.0: + resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-jsx@3.0.0: + resolution: {integrity: sha512-XZuPPzQNBPAlaqsTTgRrcJnyFbSOBovSadFgbFu8SnuNgm+6Bdx1K+IWoitsmj6Lq6MNtI+ytOqwN70n//NaBA==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.0 + stringify-entities: 4.0.3 + unist-util-remove-position: 5.0.0 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + /mdast-util-mdxjs-esm@1.3.0: resolution: {integrity: sha512-7N5ihsOkAEGjFotIX9p/YPdl4TqUoMxL4ajNz7PbT89BqsdWJuBC9rvgt6wpbwTZqWWR0jKWqQbwsOWDBUZv4g==} dependencies: @@ -15897,12 +16213,32 @@ packages: - supports-color dev: false + /mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + /mdast-util-phrasing@3.0.0: resolution: {integrity: sha512-S+QYsDRLkGi8U7o5JF1agKa/sdP+CNGXXLqC17pdTVL8FHHgQEiwFGa9yE5aYtUxNiFGYoaDy9V1kC85Sz86Gg==} dependencies: '@types/mdast': 3.0.10 unist-util-is: 5.1.1 + /mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + dependencies: + '@types/mdast': 4.0.3 + unist-util-is: 6.0.0 + dev: false + /mdast-util-to-hast@12.2.5: resolution: {integrity: sha512-EFNhT35ZR/VZ85/EedDdCNTq0oFM+NM/+qBomVGQ0+Lcg0nhI8xIwmdCzNMlVlCJNXRprpobtKP/IUh8cfz6zQ==} dependencies: @@ -15916,6 +16252,20 @@ packages: unist-util-position: 4.0.3 unist-util-visit: 4.1.1 + /mdast-util-to-hast@13.1.0: + resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + dev: false + /mdast-util-to-markdown@1.5.0: resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} dependencies: @@ -15928,6 +16278,19 @@ packages: unist-util-visit: 4.1.1 zwitch: 2.0.4 + /mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + dependencies: + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + dev: false + /mdast-util-to-string@3.1.0: resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==} @@ -15937,12 +16300,17 @@ packages: '@types/mdast': 3.0.15 dev: false + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + dependencies: + '@types/mdast': 4.0.3 + dev: false + /mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} /mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: true /mdn-data@2.0.4: resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==} @@ -15984,7 +16352,6 @@ packages: trim-newlines: 4.1.1 type-fest: 1.4.0 yargs-parser: 20.2.9 - dev: true /meow@12.1.1: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} @@ -16035,6 +16402,27 @@ packages: micromark-util-types: 1.0.2 uvu: 0.5.6 + /micromark-core-commonmark@2.0.0: + resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-extension-directive@2.1.2: resolution: {integrity: sha512-brqLEztt14/73snVXYsq9Cv6ng67O+Sy69ZuM0s8ZhN/GFI9rnyXyj0Y0DaCwi648vCImv7/U1H5TzR7wMv5jw==} dependencies: @@ -16063,6 +16451,15 @@ packages: micromark-util-types: 1.0.2 uvu: 0.5.6 + /micromark-extension-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-extension-gfm-footnote@1.0.4: resolution: {integrity: sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==} dependencies: @@ -16075,6 +16472,19 @@ packages: micromark-util-types: 1.0.2 uvu: 0.5.6 + /micromark-extension-gfm-footnote@2.0.0: + resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-extension-gfm-strikethrough@1.0.4: resolution: {integrity: sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==} dependencies: @@ -16085,6 +16495,17 @@ packages: micromark-util-types: 1.0.2 uvu: 0.5.6 + /micromark-extension-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-extension-gfm-table@1.0.5: resolution: {integrity: sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==} dependencies: @@ -16094,11 +16515,27 @@ packages: micromark-util-types: 1.0.2 uvu: 0.5.6 + /micromark-extension-gfm-table@2.0.0: + resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-extension-gfm-tagfilter@1.0.1: resolution: {integrity: sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==} dependencies: micromark-util-types: 1.0.2 + /micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + dependencies: + micromark-util-types: 2.0.0 + dev: false + /micromark-extension-gfm-task-list-item@1.0.3: resolution: {integrity: sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==} dependencies: @@ -16108,6 +16545,16 @@ packages: micromark-util-types: 1.0.2 uvu: 0.5.6 + /micromark-extension-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-extension-gfm@2.0.1: resolution: {integrity: sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==} dependencies: @@ -16120,6 +16567,19 @@ packages: micromark-util-combine-extensions: 1.0.0 micromark-util-types: 1.0.2 + /micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + dependencies: + micromark-extension-gfm-autolink-literal: 2.0.0 + micromark-extension-gfm-footnote: 2.0.0 + micromark-extension-gfm-strikethrough: 2.0.0 + micromark-extension-gfm-table: 2.0.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.0.1 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-factory-destination@1.0.0: resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==} dependencies: @@ -16127,6 +16587,14 @@ packages: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + /micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-factory-label@1.0.2: resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==} dependencies: @@ -16135,12 +16603,28 @@ packages: micromark-util-types: 1.0.2 uvu: 0.5.6 + /micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-factory-space@1.0.0: resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==} dependencies: micromark-util-character: 1.1.0 micromark-util-types: 1.0.2 + /micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-factory-title@1.0.2: resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==} dependencies: @@ -16150,6 +16634,15 @@ packages: micromark-util-types: 1.0.2 uvu: 0.5.6 + /micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-factory-whitespace@1.0.0: resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==} dependencies: @@ -16158,17 +16651,39 @@ packages: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + /micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-util-character@1.1.0: resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==} dependencies: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + /micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-util-chunked@1.0.0: resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} dependencies: micromark-util-symbol: 1.0.1 + /micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + /micromark-util-classify-character@1.0.0: resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==} dependencies: @@ -16176,17 +16691,38 @@ packages: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + /micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-util-combine-extensions@1.0.0: resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==} dependencies: micromark-util-chunked: 1.0.0 micromark-util-types: 1.0.2 + /micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-util-decode-numeric-character-reference@1.0.0: resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==} dependencies: micromark-util-symbol: 1.0.1 + /micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + /micromark-util-decode-string@1.0.2: resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==} dependencies: @@ -16195,22 +16731,51 @@ packages: micromark-util-decode-numeric-character-reference: 1.0.0 micromark-util-symbol: 1.0.1 + /micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + dev: false + /micromark-util-encode@1.0.1: resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==} + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + dev: false + /micromark-util-html-tag-name@1.1.0: resolution: {integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==} + /micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + dev: false + /micromark-util-normalize-identifier@1.0.0: resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==} dependencies: micromark-util-symbol: 1.0.1 + /micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + /micromark-util-resolve-all@1.0.0: resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==} dependencies: micromark-util-types: 1.0.2 + /micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + dependencies: + micromark-util-types: 2.0.0 + dev: false + /micromark-util-sanitize-uri@1.1.0: resolution: {integrity: sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==} dependencies: @@ -16218,6 +16783,14 @@ packages: micromark-util-encode: 1.0.1 micromark-util-symbol: 1.0.1 + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + dev: false + /micromark-util-subtokenize@1.0.2: resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==} dependencies: @@ -16226,12 +16799,29 @@ packages: micromark-util-types: 1.0.2 uvu: 0.5.6 + /micromark-util-subtokenize@2.0.0: + resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-util-symbol@1.0.1: resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + dev: false + /micromark-util-types@1.0.2: resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + dev: false + /micromark@3.1.0: resolution: {integrity: sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==} dependencies: @@ -16255,6 +16845,30 @@ packages: transitivePeerDependencies: - supports-color + /micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + dependencies: + '@types/debug': 4.1.7 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: false + /micromatch@2.3.11: resolution: {integrity: sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==} engines: {node: '>=0.10.0'} @@ -16293,7 +16907,6 @@ packages: to-regex: 3.0.2 transitivePeerDependencies: - supports-color - dev: true /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} @@ -16377,7 +16990,6 @@ packages: /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - dev: true /minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -16419,7 +17031,6 @@ packages: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 - dev: true /minimist@1.2.7: resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} @@ -16469,7 +17080,6 @@ packages: dependencies: for-in: 1.0.2 is-extendable: 1.0.1 - dev: true /mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} @@ -16584,6 +17194,12 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /nanoid@5.0.5: + resolution: {integrity: sha512-/Veqm+QKsyMY3kqi4faWplnY1u+VuKO3dD2binyPIybP31DRO29bPF+1mszgLnrR2KqSLceFLBNw0zmvDzN1QQ==} + engines: {node: ^18 || >=20} + hasBin: true + dev: false + /nanomatch@1.2.13: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} engines: {node: '>=0.10.0'} @@ -16601,7 +17217,6 @@ packages: to-regex: 3.0.2 transitivePeerDependencies: - supports-color - dev: true /nanopop@2.2.0: resolution: {integrity: sha512-E9JaHcxh3ere8/BEZHAcnuD10RluTSPyTToBvoFWS9/7DcCx6gyKjbn7M7Bx7E1veCxCuY1iO6h4+gdAf1j73Q==} @@ -16611,7 +17226,6 @@ packages: resolution: {integrity: sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==} dependencies: picocolors: 1.0.0 - dev: true /napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} @@ -16623,7 +17237,6 @@ packages: /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true /needle@3.2.0: resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==} @@ -16648,7 +17261,6 @@ packages: /nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - dev: true /no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} @@ -16754,7 +17366,6 @@ packages: shellwords: 0.1.1 uuid: 8.3.2 which: 2.0.2 - dev: true optional: true /node-releases@2.0.13: @@ -16795,14 +17406,12 @@ packages: is-core-module: 2.13.0 semver: 7.5.4 validate-npm-package-license: 3.0.4 - dev: true /normalize-path@2.1.1: resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} engines: {node: '>=0.10.0'} dependencies: remove-trailing-separator: 1.1.0 - dev: true /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -16994,7 +17603,6 @@ packages: /nwsapi@2.2.2: resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} - dev: true /oauth-sign@0.9.0: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} @@ -17010,7 +17618,6 @@ packages: copy-descriptor: 0.1.1 define-property: 0.2.5 kind-of: 3.2.2 - dev: true /object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} @@ -17039,7 +17646,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 - dev: true /object.assign@4.1.4: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} @@ -17122,7 +17728,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 - dev: true /object.values@1.1.6: resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} @@ -17181,6 +17786,16 @@ packages: dependencies: mimic-fn: 4.0.0 + /open@10.0.3: + resolution: {integrity: sha512-dtbI5oW7987hwC9qjJTyABldTaa19SuyJse1QboWv3b0qCcrrLNVDqBx1XgELAjh9QTVQaP/C5b1nhQebd1H2A==} + engines: {node: '>=18'} + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + dev: false + /open@6.4.0: resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==} engines: {node: '>=8'} @@ -17215,7 +17830,6 @@ packages: prelude-ls: 1.1.2 type-check: 0.3.2 word-wrap: 1.2.3 - dev: true /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} @@ -17227,7 +17841,6 @@ packages: levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true /ora@1.4.0: resolution: {integrity: sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==} @@ -17297,7 +17910,6 @@ packages: /p-each-series@2.2.0: resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} engines: {node: '>=8'} - dev: true /p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} @@ -17573,7 +18185,6 @@ packages: /pascalcase@0.1.1: resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} engines: {node: '>=0.10.0'} - dev: true /path-browserify@0.0.1: resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==} @@ -17642,7 +18253,6 @@ packages: /path-type@5.0.0: resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} engines: {node: '>=12'} - dev: true /pbkdf2@3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} @@ -17795,7 +18405,6 @@ packages: /posix-character-classes@0.1.1: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} - dev: true /postcss-attribute-case-insensitive@5.0.2(postcss@8.4.31): resolution: {integrity: sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==} @@ -18059,7 +18668,6 @@ packages: postcss: ^8.3.5 dependencies: postcss: 8.4.31 - dev: true /postcss-load-config@3.1.4(postcss@8.4.31): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} @@ -18470,7 +19078,6 @@ packages: /postcss-resolve-nested-selector@0.1.1: resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} - dev: true /postcss-safe-parser@6.0.0(postcss@8.4.31): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} @@ -18479,7 +19086,6 @@ packages: postcss: ^8.3.3 dependencies: postcss: 8.4.31 - dev: true /postcss-selector-not@5.0.0(postcss@8.4.31): resolution: {integrity: sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==} @@ -18515,7 +19121,7 @@ packages: svgo: 2.8.0 dev: true - /postcss-syntax@0.36.2(postcss@8.4.31): + /postcss-syntax@0.36.2(postcss-less@6.0.0)(postcss@8.4.31): resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==} peerDependencies: postcss: '>=5.0.0' @@ -18537,6 +19143,7 @@ packages: optional: true dependencies: postcss: 8.4.31 + postcss-less: 6.0.0(postcss@8.4.31) dev: false /postcss-unique-selectors@5.1.1(postcss@8.4.31): @@ -18585,12 +19192,10 @@ packages: /prelude-ls@1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} engines: {node: '>= 0.8.0'} - dev: true /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - dev: true /prepend-http@1.0.4: resolution: {integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==} @@ -18614,7 +19219,7 @@ packages: fast-diff: 1.2.0 dev: true - /prettier-plugin-organize-imports@3.2.4: + /prettier-plugin-organize-imports@3.2.4(prettier@3.0.3)(typescript@5.2.2): resolution: {integrity: sha512-6m8WBhIp0dfwu0SkgfOxJqh+HpdyfqSSLfKKRZSFbDuEQXDDndb8fTpRWkUrX/uBenkex3MgnVk0J3b3Y5byog==} peerDependencies: '@volar/vue-language-plugin-pug': ^1.0.4 @@ -18626,9 +19231,12 @@ packages: optional: true '@volar/vue-typescript': optional: true + dependencies: + prettier: 3.0.3 + typescript: 5.2.2 dev: false - /prettier-plugin-packagejson@2.4.3: + /prettier-plugin-packagejson@2.4.3(prettier@3.0.3): resolution: {integrity: sha512-kPeeviJiwy0BgOSk7No8NmzzXfW4R9FYWni6ziA5zc1kGVVrKnBzMZdu2TUhI+I7h8/5Htt3vARYOk7KKJTTNQ==} peerDependencies: prettier: '>= 1.16.0' @@ -18636,6 +19244,7 @@ packages: prettier: optional: true dependencies: + prettier: 3.0.3 sort-package-json: 2.4.1 synckit: 0.8.5 dev: false @@ -18650,7 +19259,6 @@ packages: resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} engines: {node: '>=14'} hasBin: true - dev: true /pretty-error@4.0.0: resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} @@ -18684,7 +19292,6 @@ packages: ansi-regex: 5.0.1 ansi-styles: 4.3.0 react-is: 17.0.2 - dev: true /pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} @@ -18701,10 +19308,12 @@ packages: chalk: 2.1.0 dev: true - /prism-react-renderer@1.3.5: + /prism-react-renderer@1.3.5(react@18.2.0): resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==} peerDependencies: react: '>=0.14.9' + dependencies: + react: 18.2.0 dev: false /prism-themes@1.9.0: @@ -18763,7 +19372,6 @@ packages: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 - dev: true /prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -18831,6 +19439,10 @@ packages: genfun: 4.0.1 dev: false + /proxy-compare@2.5.1: + resolution: {integrity: sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==} + dev: false + /prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} requiresBuild: true @@ -18872,7 +19484,6 @@ packages: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - dev: true /pumpify@1.5.1: resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} @@ -18894,19 +19505,12 @@ packages: resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - /qrcode.react@3.1.0: - resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dev: false - /qrcode.react@3.1.0(react@18.2.0): resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: react: 18.2.0 - dev: true /qs@6.11.2: resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} @@ -18936,7 +19540,6 @@ packages: /querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - dev: true /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -18959,7 +19562,6 @@ packages: /quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - dev: true /quickselect@2.0.0: resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==} @@ -19018,8 +19620,8 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 dom-align: 1.12.4 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -19027,7 +19629,7 @@ packages: resize-observer-polyfill: 1.5.1 dev: false - /rc-cascader@3.20.0: + /rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-lkT9EEwOcYdjZ/jvhLoXGzprK1sijT3/Tp4BLxQQcHDZkkOzzwYQC9HgmKoJz0K7CukMfgvO9KqHeBdgE+pELw==} peerDependencies: react: '>=16.9.0' @@ -19036,26 +19638,28 @@ packages: '@babel/runtime': 7.23.5 array-tree-filter: 2.1.0 classnames: 2.3.2 - rc-select: 14.10.0 - rc-tree: 5.8.2 - rc-util: 5.38.1 - dev: false + rc-select: 14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true - /rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-lkT9EEwOcYdjZ/jvhLoXGzprK1sijT3/Tp4BLxQQcHDZkkOzzwYQC9HgmKoJz0K7CukMfgvO9KqHeBdgE+pELw==} + /rc-cascader@3.21.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-J7GozpgsLaOtzfIHFJFuh4oFY0ePb1w10twqK6is3pAkqHkca/PsokbDr822KIRZ8/CK8CqevxohuPDVZ1RO/A==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 array-tree-filter: 2.1.0 - classnames: 2.3.2 - rc-select: 14.10.0(react-dom@18.2.0)(react@18.2.0) + classnames: 2.5.1 + rc-select: 14.11.0(react-dom@18.2.0)(react@18.2.0) rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true + dev: false /rc-cascader@3.7.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-SFtGpwmYN7RaWEAGTS4Rkc62ZV/qmQGg/tajr/7mfIkleuu8ro9Hlk6J+aA0x1YS4zlaZBtTcSaXM01QMiEV/A==} @@ -19063,9 +19667,9 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 array-tree-filter: 2.1.0 - classnames: 2.3.2 + classnames: 2.5.1 rc-select: 14.1.18(react-dom@18.2.0)(react@18.2.0) rc-tree: 5.7.2(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -19079,24 +19683,13 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-checkbox@3.1.0: - resolution: {integrity: sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-util: 5.38.1 - dev: false - /rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==} peerDependencies: @@ -19108,7 +19701,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-collapse@3.4.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-jpTwLgJzkhAgp2Wpi3xmbTbbYExg6fkptL67Uu5LCRVEj6wqmy0DHTjjeynsjOLsppHGHu41t1ELntZ0lEvS/Q==} @@ -19116,8 +19708,8 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -19125,18 +19717,6 @@ packages: shallowequal: 1.1.0 dev: false - /rc-collapse@3.7.2: - resolution: {integrity: sha512-ZRw6ipDyOnfLFySxAiCMdbHtb5ePAsB9mT17PA6y1mRD/W6KHRaZeb5qK/X9xDV1CqgyxMpzw0VdS74PCcUk4A==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-motion: 2.9.0 - rc-util: 5.38.1 - dev: false - /rc-collapse@3.7.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-ZRw6ipDyOnfLFySxAiCMdbHtb5ePAsB9mT17PA6y1mRD/W6KHRaZeb5qK/X9xDV1CqgyxMpzw0VdS74PCcUk4A==} peerDependencies: @@ -19149,7 +19729,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-dialog@9.0.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-s3U+24xWUuB6Bn2Lk/Qt6rufy+uT+QvWkiFhNBcO9APLxcFFczWamaq7x9h8SCuhfc1nHcW4y8NbMsnAjNnWyg==} @@ -19157,28 +19736,15 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-dialog@9.3.4: - resolution: {integrity: sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - '@rc-component/portal': 1.1.2 - classnames: 2.3.2 - rc-motion: 2.9.0 - rc-util: 5.38.1 - dev: false - /rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==} peerDependencies: @@ -19192,7 +19758,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-drawer@4.4.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-FYztwRs3uXnFOIf1hLvFxIQP9MiZJA+0w+Os8dfDh/90X7z/HqP/Yg+noLCIeHEbKln1Tqelv8ymCAN24zPcfQ==} @@ -19200,8 +19765,8 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -19213,42 +19778,44 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-drawer@6.5.2: + /rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-QckxAnQNdhh4vtmKN0ZwDf3iakO83W9eZcSKWYYTDv4qcD2fHhRAZJJ/OE6v2ZlQ2kSqCJX5gYssF4HJFvsEPQ==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.23.5 - '@rc-component/portal': 1.1.2 + '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) classnames: 2.3.2 - rc-motion: 2.9.0 - rc-util: 5.38.1 - dev: false + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true - /rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-QckxAnQNdhh4vtmKN0ZwDf3iakO83W9eZcSKWYYTDv4qcD2fHhRAZJJ/OE6v2ZlQ2kSqCJX5gYssF4HJFvsEPQ==} + /rc-drawer@7.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-ePcS4KtQnn57bCbVXazHN2iC8nTPCXlWEIA/Pft87Pd9U7ZeDkdRzG47jWG2/TAFXFlFltRAMcslqmUM8NPCGA==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true + dev: false /rc-dropdown@4.0.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-OdpXuOcme1rm45cR0Jzgfl1otzmU4vuBVb+etXM8vcaULGokAKVpKlw8p6xzspG7jGd/XxShvq+N3VNEfk/l5g==} @@ -19256,26 +19823,14 @@ packages: react: '>=16.11.0' react-dom: '>=16.11.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-trigger: 5.3.4(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-dropdown@4.1.0: - resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==} - peerDependencies: - react: '>=16.11.0' - react-dom: '>=16.11.0' - dependencies: - '@babel/runtime': 7.23.5 - '@rc-component/trigger': 1.18.2 - classnames: 2.3.2 - rc-util: 5.38.1 - dev: false - /rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==} peerDependencies: @@ -19288,7 +19843,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-field-form@1.34.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-BdciU5C7dBO51/9ZKcMvK2f8zaaO12Lt1eBhlAo8nNv+6htlNcgY9DAkUlZ7gfyWjnCc1Oo4hHIXau1m6tLw1A==} @@ -19297,25 +19851,13 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 async-validator: 4.2.5 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-field-form@1.41.0: - resolution: {integrity: sha512-k9AS0wmxfJfusWDP/YXWTpteDNaQ4isJx9UKxx4/e8Dub4spFeZ54/EuN2sYrMRID/+hUznPgVZeg+Gf7XSYCw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - async-validator: 4.2.5 - rc-util: 5.38.1 - dev: false - /rc-field-form@1.41.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-k9AS0wmxfJfusWDP/YXWTpteDNaQ4isJx9UKxx4/e8Dub4spFeZ54/EuN2sYrMRID/+hUznPgVZeg+Gf7XSYCw==} engines: {node: '>=8.x'} @@ -19328,7 +19870,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-footer@0.6.8(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-JBZ+xcb6kkex8XnBd4VHw1ZxjV6kmcwUumSHaIFdka2qzMCo7Klcy4sI6G0XtUpG/vtpislQCc+S9Bc+NLHYMg==} @@ -19336,8 +19877,8 @@ packages: react: '>=16.0.0' react-dom: '>=16.0.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -19348,9 +19889,9 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + classnames: 2.5.1 rc-dialog: 9.0.2(react-dom@18.2.0)(react@18.2.0) rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -19358,20 +19899,6 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /rc-image@7.5.1: - resolution: {integrity: sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - '@rc-component/portal': 1.1.2 - classnames: 2.3.2 - rc-dialog: 9.3.4 - rc-motion: 2.9.0 - rc-util: 5.38.1 - dev: false - /rc-image@7.5.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==} peerDependencies: @@ -19386,7 +19913,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-input-number@7.3.11(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-aMWPEjFeles6PQnMqP5eWpxzsvHm9rh1jQOWXExUEIxhX62Fyl/ptifLHOn17+waDG1T/YUb6flfJbvwRhHrbA==} @@ -19394,14 +19920,14 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-input-number@8.4.0: + /rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-B6rziPOLRmeP7kcS5qbdC5hXvvDHYKV4vUxmahevYx2E6crS2bRi0xLDjhJ0E1HtOWo8rTmaE2EBJAkTCZOLdA==} peerDependencies: react: '>=16.9.0' @@ -19410,24 +19936,26 @@ packages: '@babel/runtime': 7.23.5 '@rc-component/mini-decimal': 1.1.0 classnames: 2.3.2 - rc-input: 1.3.6 - rc-util: 5.38.1 - dev: false + rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true - /rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-B6rziPOLRmeP7kcS5qbdC5hXvvDHYKV4vUxmahevYx2E6crS2bRi0xLDjhJ0E1HtOWo8rTmaE2EBJAkTCZOLdA==} + /rc-input-number@8.6.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-gaAMUKtUKLktJ3Yx93tjgYY1M0HunnoqzPEqkb9//Ydup4DcG0TFL9yHBA3pgVdNIt5f0UWyHCgFBj//JxeD6A==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 '@rc-component/mini-decimal': 1.1.0 - classnames: 2.3.2 - rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) + classnames: 2.5.1 + rc-input: 1.4.3(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true + dev: false /rc-input@0.1.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-FqDdNz+fV2dKNgfXzcSLKvC+jEs1709t7nD+WdfjrdSaOcefpgc7BUJYadc3usaING+b7ediMTfKxuJBsEFbXA==} @@ -19435,14 +19963,14 @@ packages: react: '>=16.0.0' react-dom: '>=16.0.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-input@1.3.6: + /rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-/HjTaKi8/Ts4zNbYaB5oWCquxFyFQO4Co1MnMgoCeGJlpe7k8Eir2HN0a0F9IHDmmo+GYiGgPpz7w/d/krzsJA==} peerDependencies: react: '>=16.0.0' @@ -19450,21 +19978,23 @@ packages: dependencies: '@babel/runtime': 7.23.5 classnames: 2.3.2 - rc-util: 5.38.1 - dev: false + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true - /rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-/HjTaKi8/Ts4zNbYaB5oWCquxFyFQO4Co1MnMgoCeGJlpe7k8Eir2HN0a0F9IHDmmo+GYiGgPpz7w/d/krzsJA==} + /rc-input@1.4.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-aHyQUAIRmTlOnvk5EcNqEpJ+XMtfMpYRAJayIlJfsvvH9cAKUWboh4egm23vgMA7E+c/qm4BZcnrDcA960GC1w==} peerDependencies: react: '>=16.0.0' react-dom: '>=16.0.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true + dev: false /rc-mentions@1.13.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-FCkaWw6JQygtOz0+Vxz/M/NWqrWHB9LwqlY2RtcuFqWJNFK9njijOOzTSsBGANliGufVUzx/xuPHmZPBV0+Hgw==} @@ -19472,8 +20002,8 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-menu: 9.8.1(react-dom@18.2.0)(react@18.2.0) rc-textarea: 0.4.7(react-dom@18.2.0)(react@18.2.0) rc-trigger: 5.3.4(react-dom@18.2.0)(react@18.2.0) @@ -19482,19 +20012,21 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /rc-mentions@2.9.1: - resolution: {integrity: sha512-cZuElWr/5Ws0PXx1uxobxfYh4mqUw2FitfabR62YnWgm+WAfDyXZXqZg5DxXW+M1cgVvntrQgDDd9LrihrXzew==} + /rc-mentions@2.10.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-72qsEcr/7su+a07ndJ1j8rI9n0Ka/ngWOLYnWMMv0p2mi/5zPwPrEDTt6Uqpe8FWjWhueDJx/vzunL6IdKDYMg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - '@rc-component/trigger': 1.18.2 - classnames: 2.3.2 - rc-input: 1.3.6 - rc-menu: 9.12.4 - rc-textarea: 1.5.3 - rc-util: 5.38.1 + '@babel/runtime': 7.23.7 + '@rc-component/trigger': 1.18.3(react-dom@18.2.0)(react@18.2.0) + classnames: 2.5.1 + rc-input: 1.4.3(react-dom@18.2.0)(react@18.2.0) + rc-menu: 9.12.4(react-dom@18.2.0)(react@18.2.0) + rc-textarea: 1.6.3(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /rc-mentions@2.9.1(react-dom@18.2.0)(react@18.2.0): @@ -19514,20 +20046,6 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /rc-menu@9.12.4: - resolution: {integrity: sha512-t2NcvPLV1mFJzw4F21ojOoRVofK2rWhpKPx69q2raUsiHPDP6DDevsBILEYdsIegqBeSXoWs2bf6CueBKg3BFg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - '@rc-component/trigger': 1.18.2 - classnames: 2.3.2 - rc-motion: 2.9.0 - rc-overflow: 1.3.2 - rc-util: 5.38.1 - dev: false - /rc-menu@9.12.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-t2NcvPLV1mFJzw4F21ojOoRVofK2rWhpKPx69q2raUsiHPDP6DDevsBILEYdsIegqBeSXoWs2bf6CueBKg3BFg==} peerDependencies: @@ -19542,7 +20060,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-menu@9.8.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-179weouypfjWJSRvvoo/vPy+StojsMzK2XC5jRNhL1ryt/N/8wAFESte8K6jZJkNp9DHDLFTe+dCGmikKpiFuA==} @@ -19550,8 +20067,8 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) rc-trigger: 5.3.4(react-dom@18.2.0)(react@18.2.0) @@ -19561,17 +20078,6 @@ packages: shallowequal: 1.1.0 dev: false - /rc-motion@2.9.0: - resolution: {integrity: sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-util: 5.38.1 - dev: false - /rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==} peerDependencies: @@ -19591,27 +20097,14 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-notification@5.3.0: - resolution: {integrity: sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-motion: 2.9.0 - rc-util: 5.38.1 - dev: false - /rc-notification@5.3.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==} engines: {node: '>=8.x'} @@ -19625,19 +20118,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true - - /rc-overflow@1.3.2: - resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-resize-observer: 1.4.0 - rc-util: 5.38.1 - dev: false /rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==} @@ -19658,13 +20138,13 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-pagination@4.0.3: + /rc-pagination@4.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-s1MNwyU83AgycikYckRdpmkN+4ZZuul0E0YdDp7dMgcjg/d2fak767ZIbLP4Q5YPPla7NDorfVFTvGQAPj6jXA==} peerDependencies: react: '>=16.9.0' @@ -19672,21 +20152,23 @@ packages: dependencies: '@babel/runtime': 7.23.5 classnames: 2.3.2 - rc-util: 5.38.1 - dev: false + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true - /rc-pagination@4.0.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-s1MNwyU83AgycikYckRdpmkN+4ZZuul0E0YdDp7dMgcjg/d2fak767ZIbLP4Q5YPPla7NDorfVFTvGQAPj6jXA==} + /rc-pagination@4.0.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true + dev: false /rc-picker@2.7.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-oZH6FZ3j4iuBxHB4NvQ6ABRsS2If/Kpty1YFFsji7/aej6ruGmfM7WnJWQ88AoPfpJ++ya5z+nVEA8yCRYGKyw==} @@ -19695,10 +20177,10 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 date-fns: 2.30.0 - dayjs: 1.11.7 + dayjs: 1.11.10 moment: 2.29.4 rc-trigger: 5.3.4(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -19707,7 +20189,7 @@ packages: shallowequal: 1.1.0 dev: false - /rc-picker@3.14.6(dayjs@1.11.7): + /rc-picker@3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-AdKKW0AqMwZsKvIpwUWDUnpuGKZVrbxVTZTNjcO+pViGkjC1EBcjMgxVe8tomOEaIHJL5Gd13vS8Rr3zzxWmag==} engines: {node: '>=8.x'} peerDependencies: @@ -19728,10 +20210,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.5 - '@rc-component/trigger': 1.18.2 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) classnames: 2.3.2 - dayjs: 1.11.7 - rc-util: 5.38.1 + dayjs: 1.11.10 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /rc-picker@3.14.6(dayjs@1.11.7)(react-dom@18.2.0)(react@18.2.0): @@ -19769,24 +20253,13 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-progress@3.5.1: - resolution: {integrity: sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-util: 5.38.1 - dev: false - /rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==} peerDependencies: @@ -19798,19 +20271,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true - - /rc-rate@2.12.0: - resolution: {integrity: sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-util: 5.38.1 - dev: false /rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==} @@ -19824,7 +20284,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-rate@2.9.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-SaiZFyN8pe0Fgphv8t3+kidlej+cq/EALkAJAc3A0w0XcPaH2L1aggM8bhe1u6GAGuQNAoFvTLjw4qLPGRKV5g==} @@ -19833,25 +20292,13 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-resize-observer@1.4.0: - resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-util: 5.38.1 - resize-observer-polyfill: 1.5.1 - dev: false - /rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==} peerDependencies: @@ -19871,26 +20318,14 @@ packages: react: '>=16.0.0' react-dom: '>=16.0.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-segmented@2.2.2: - resolution: {integrity: sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-motion: 2.9.0 - rc-util: 5.38.1 - dev: false - /rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==} peerDependencies: @@ -19903,7 +20338,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-select@14.1.18(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-4JgY3oG2Yz68ECMUSCON7mtxuJvCSj+LJpHEg/AONaaVBxIIrmI/ZTuMJkyojall/X50YdBe5oMKqHHPNiPzEg==} @@ -19912,8 +20346,8 @@ packages: react: '*' react-dom: '*' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) rc-trigger: 5.3.4(react-dom@18.2.0)(react@18.2.0) @@ -19923,7 +20357,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /rc-select@14.10.0: + /rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-TsIJTYafTTapCA32LLNpx/AD6ntepR1TG8jEVx35NiAAWCPymhUfuca8kRcUNd3WIGVMDcMKn9kkphoxEz+6Ag==} engines: {node: '>=8.x'} peerDependencies: @@ -19931,31 +20365,33 @@ packages: react-dom: '*' dependencies: '@babel/runtime': 7.23.5 - '@rc-component/trigger': 1.18.2 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) classnames: 2.3.2 - rc-motion: 2.9.0 - rc-overflow: 1.3.2 - rc-util: 5.38.1 - rc-virtual-list: 3.11.3 - dev: false + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true - /rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-TsIJTYafTTapCA32LLNpx/AD6ntepR1TG8jEVx35NiAAWCPymhUfuca8kRcUNd3WIGVMDcMKn9kkphoxEz+6Ag==} + /rc-select@14.11.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-8J8G/7duaGjFiTXCBLWfh5P+KDWyA3KTlZDfV3xj/asMPqB2cmxfM+lH50wRiPIRsCQ6EbkCFBccPuaje3DHIg==} engines: {node: '>=8.x'} peerDependencies: react: '*' react-dom: '*' dependencies: - '@babel/runtime': 7.23.5 - '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + '@rc-component/trigger': 1.18.3(react-dom@18.2.0)(react@18.2.0) + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true + dev: false /rc-slider@10.0.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-igTKF3zBet7oS/3yNiIlmU8KnZ45npmrmHlUUio8PNbIhzMcsh+oE/r2UD42Y6YD2D/s+kzCQkzQrPD6RY435Q==} @@ -19964,26 +20400,14 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) shallowequal: 1.1.0 dev: false - /rc-slider@10.5.0: - resolution: {integrity: sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-util: 5.38.1 - dev: false - /rc-slider@10.5.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw==} engines: {node: '>=8.x'} @@ -19996,7 +20420,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-steps@5.0.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-9TgRvnVYirdhbV0C3syJFj9EhCRqoJAsxt4i1rED5o8/ZcSv5TLIYyo4H8MCjLPvbe2R+oBAm/IYBEtC+OS1Rw==} @@ -20005,25 +20428,13 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-steps@6.0.1: - resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-util: 5.38.1 - dev: false - /rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} engines: {node: '>=8.x'} @@ -20036,7 +20447,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-switch@3.2.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-+gUJClsZZzvAHGy1vZfnwySxj+MjLlGRyXKXScrtCTcmiYNPzxDFOxdQ/3pK1Kt/0POvwJ/6ALOR8gwdXGhs+A==} @@ -20044,24 +20454,13 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-switch@4.1.0: - resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-util: 5.38.1 - dev: false - /rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} peerDependencies: @@ -20073,7 +20472,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-table@7.26.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-0cD8e6S+DTGAt5nBZQIPFYEaIukn17sfa5uFL98faHlH/whZzD8ii3dbFL4wmUDEL4BLybhYop+QUfZJ4CPvNQ==} @@ -20082,8 +20480,8 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -20091,21 +20489,6 @@ packages: shallowequal: 1.1.0 dev: false - /rc-table@7.36.0: - resolution: {integrity: sha512-3xVcdCC5OLeOOhaCg+5Lps2oPreM/GWXmUXWTSX4p6vF7F76ABM4dfPpMJ9Dnf5yGRyh+8pe7FRyhRVnWw2H/w==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - '@rc-component/context': 1.4.0 - classnames: 2.3.2 - rc-resize-observer: 1.4.0 - rc-util: 5.38.1 - rc-virtual-list: 3.11.3 - dev: false - /rc-table@7.36.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3xVcdCC5OLeOOhaCg+5Lps2oPreM/GWXmUXWTSX4p6vF7F76ABM4dfPpMJ9Dnf5yGRyh+8pe7FRyhRVnWw2H/w==} engines: {node: '>=8.x'} @@ -20123,20 +20506,21 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /rc-tabs@12.14.1: - resolution: {integrity: sha512-1xlE7JQNYxD5RwBsM7jf2xSdUrkmTSDFLFEm2gqAgnsRlOGydEzXXNAVTOT6QcgM1G/gCm+AgG+FYPUGb4Hs4g==} + /rc-table@7.37.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-hEB17ktLRVfVmdo+U8MjGr+PuIgdQ8Cxj/N5lwMvP/Az7TOrQxwTMLVEDoj207tyPYLTWifHIF9EJREWwyk67g==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-dropdown: 4.1.0 - rc-menu: 9.12.4 - rc-motion: 2.9.0 - rc-resize-observer: 1.4.0 - rc-util: 5.38.1 + '@babel/runtime': 7.23.7 + '@rc-component/context': 1.4.0(react-dom@18.2.0)(react@18.2.0) + classnames: 2.5.1 + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /rc-tabs@12.14.1(react-dom@18.2.0)(react@18.2.0): @@ -20155,7 +20539,6 @@ packages: rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-tabs@12.5.6(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-aArXHzxK7YICxe+622CZ8FlO5coMi8P7E6tXpseCPKm1gdTjUt0LrQK1/AxcrRXZXG3K4QqhlKmET0+cX5DQaQ==} @@ -20164,8 +20547,8 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-dropdown: 4.0.1(react-dom@18.2.0)(react@18.2.0) rc-menu: 9.8.1(react-dom@18.2.0)(react@18.2.0) rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) @@ -20175,32 +20558,37 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /rc-textarea@0.4.7(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-IQPd1CDI3mnMlkFyzt2O4gQ2lxUsnBAeJEoZGJnkkXgORNqyM9qovdrCj9NzcRfpHgLdzaEbU3AmobNFGUznwQ==} + /rc-tabs@14.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lp1YWkaPnjlyhOZCPrAWxK6/P6nMGX/BAZcAC3nuVwKz0Byfp+vNnQKK8BRCP2g/fzu+SeB5dm9aUigRu3tRkQ==} + engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 + rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-menu: 9.12.4(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - shallowequal: 1.1.0 dev: false - /rc-textarea@1.5.3: - resolution: {integrity: sha512-oH682ghHx++stFNYrosPRBfwsypywrTXpaD0/5Z8MPkUOnyOQUaY9ueL9tMu6BP1LfsuYQ1VLpg5OtshViLNgA==} + /rc-textarea@0.4.7(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-IQPd1CDI3mnMlkFyzt2O4gQ2lxUsnBAeJEoZGJnkkXgORNqyM9qovdrCj9NzcRfpHgLdzaEbU3AmobNFGUznwQ==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-input: 1.3.6 - rc-resize-observer: 1.4.0 - rc-util: 5.38.1 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + shallowequal: 1.1.0 dev: false /rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0): @@ -20218,28 +20606,32 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /rc-tooltip@5.2.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-jtQzU/18S6EI3lhSGoDYhPqNpWajMtS5VV/ld1LwyfrDByQpYmw/LW6U7oFXXLukjfDHQ7Ju705A82PRNFWYhg==} + /rc-textarea@1.6.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-8k7+8Y2GJ/cQLiClFMg8kUXOOdvcFQrnGeSchOvI2ZMIVvX5a3zQpLxoODL0HTrvU63fPkRmMuqaEcOF9dQemA==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-trigger: 5.3.4(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': 7.23.7 + classnames: 2.5.1 + rc-input: 1.4.3(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-tooltip@6.1.2: - resolution: {integrity: sha512-89zwvybvCxGJu3+gGF8w5AXd4HHk6hIN7K0vZbkzjilVaEAIWPqc1fcyeUeP71n3VCcw7pTL9LyFupFbrx8gHw==} + /rc-tooltip@5.2.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-jtQzU/18S6EI3lhSGoDYhPqNpWajMtS5VV/ld1LwyfrDByQpYmw/LW6U7oFXXLukjfDHQ7Ju705A82PRNFWYhg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - '@rc-component/trigger': 1.18.2 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 + rc-trigger: 5.3.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /rc-tooltip@6.1.2(react-dom@18.2.0)(react@18.2.0): @@ -20255,17 +20647,17 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /rc-tree-select@5.15.0: - resolution: {integrity: sha512-YJHfdO6azFnR0/JuNBZLDptGE4/RGfVeHAafUIYcm2T3RBkL1O8aVqiHvwIyLzdK59ry0NLrByd+3TkfpRM+9Q==} + /rc-tooltip@6.1.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-HMSbSs5oieZ7XddtINUddBLSVgsnlaSb3bZrzzGWjXa7/B7nNedmsuz72s7EWFEro9mNa7RyF3gOXKYqvJiTcQ==} peerDependencies: - react: '*' - react-dom: '*' + react: '>=16.9.0' + react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-select: 14.10.0 - rc-tree: 5.8.2 - rc-util: 5.38.1 + '@babel/runtime': 7.23.7 + '@rc-component/trigger': 1.18.3(react-dom@18.2.0)(react@18.2.0) + classnames: 2.5.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0): @@ -20283,14 +20675,29 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true + /rc-tree-select@5.17.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-7sRGafswBhf7n6IuHyCEFCildwQIgyKiV8zfYyUoWfZEFdhuk7lCH+DN0aHt+oJrdiY9+6Io/LDXloGe01O8XQ==} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': 7.23.7 + classnames: 2.5.1 + rc-select: 14.11.0(react-dom@18.2.0)(react@18.2.0) + rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /rc-tree-select@5.5.5(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-k2av7jF6tW9bIO4mQhaVdV4kJ1c54oxV3/hHVU+oD251Gb5JN+m1RbJFTMf1o0rAFqkvto33rxMdpafaGKQRJw==} peerDependencies: react: '*' react-dom: '*' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-select: 14.1.18(react-dom@18.2.0)(react@18.2.0) rc-tree: 5.7.2(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -20305,8 +20712,8 @@ packages: react: '*' react-dom: '*' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) @@ -20314,20 +20721,6 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /rc-tree@5.8.2: - resolution: {integrity: sha512-xH/fcgLHWTLmrSuNphU8XAqV7CdaOQgm4KywlLGNoTMhDAcNR3GVNP6cZzb0GrKmIZ9yae+QLot/cAgUdPRMzg==} - engines: {node: '>=10.x'} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-motion: 2.9.0 - rc-util: 5.38.1 - rc-virtual-list: 3.11.3 - dev: false - /rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xH/fcgLHWTLmrSuNphU8XAqV7CdaOQgm4KywlLGNoTMhDAcNR3GVNP6cZzb0GrKmIZ9yae+QLot/cAgUdPRMzg==} engines: {node: '>=10.x'} @@ -20342,7 +20735,6 @@ packages: rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true /rc-trigger@5.3.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-mQv+vas0TwKcjAO2izNPkqR4j86OemLRmvL2nOzdP9OWNWA1ivoTt5hzFqYNW9zACwmTezRiN8bttrC7cZzYSw==} @@ -20351,8 +20743,8 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 rc-align: 4.0.15(react-dom@18.2.0)(react@18.2.0) rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) @@ -20360,17 +20752,6 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /rc-upload@4.3.5: - resolution: {integrity: sha512-EHlKJbhkgFSQHliTj9v/2K5aEuFwfUQgZARzD7AmAPOneZEPiCNF3n6PEWIuqz9h7oq6FuXgdR67sC5BWFxJbA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-util: 5.38.1 - dev: false - /rc-upload@4.3.5(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-EHlKJbhkgFSQHliTj9v/2K5aEuFwfUQgZARzD7AmAPOneZEPiCNF3n6PEWIuqz9h7oq6FuXgdR67sC5BWFxJbA==} peerDependencies: @@ -20383,14 +20764,17 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /rc-util@5.38.1: - resolution: {integrity: sha512-e4ZMs7q9XqwTuhIK7zBIVFltUtMSjphuPPQXHoHlzRzNdOwUxDejo0Zls5HYaJfRKNURcsS/ceKVULlhjBrxng==} + /rc-upload@4.5.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.5 - react-is: 18.2.0 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0): @@ -20404,19 +20788,6 @@ packages: react-dom: 18.2.0(react@18.2.0) react-is: 18.2.0 - /rc-virtual-list@3.11.3: - resolution: {integrity: sha512-tu5UtrMk/AXonHwHxUogdXAWynaXsrx1i6dsgg+lOo/KJSF8oBAcprh1z5J3xgnPJD5hXxTL58F8s8onokdt0Q==} - engines: {node: '>=8.x'} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 - rc-resize-observer: 1.4.0 - rc-util: 5.38.1 - dev: false - /rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-tu5UtrMk/AXonHwHxUogdXAWynaXsrx1i6dsgg+lOo/KJSF8oBAcprh1z5J3xgnPJD5hXxTL58F8s8onokdt0Q==} engines: {node: '>=8.x'} @@ -20459,20 +20830,6 @@ packages: - react-native dev: false - /react-color@2.19.3: - resolution: {integrity: sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA==} - peerDependencies: - react: '*' - dependencies: - '@icons/material': 0.2.4 - lodash: 4.17.21 - lodash-es: 4.17.21 - material-colors: 1.2.6 - prop-types: 15.8.1 - reactcss: 1.2.3 - tinycolor2: 1.6.0 - dev: false - /react-color@2.19.3(react@18.2.0): resolution: {integrity: sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA==} peerDependencies: @@ -20486,15 +20843,15 @@ packages: react: 18.2.0 reactcss: 1.2.3(react@18.2.0) tinycolor2: 1.6.0 - dev: true - /react-copy-to-clipboard@5.1.0: + /react-copy-to-clipboard@5.1.0(react@18.2.0): resolution: {integrity: sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==} peerDependencies: react: ^15.3.0 || 16 || 17 || 18 dependencies: copy-to-clipboard: 3.3.3 prop-types: 15.8.1 + react: 18.2.0 dev: false /react-dom@18.1.0(react@18.1.0): @@ -20525,12 +20882,13 @@ packages: '@babel/runtime': 7.23.2 react: 18.2.0 - /react-error-boundary@4.0.11: + /react-error-boundary@4.0.11(react@18.2.0): resolution: {integrity: sha512-U13ul67aP5DOSPNSCWQ/eO0AQEYzEFkVljULQIjMV0KlffTAhxuDoBKdO0pb/JZ8mDhMKFZ9NZi0BmLGUiNphw==} peerDependencies: react: '>=16.13.1' dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 + react: 18.2.0 dev: false /react-error-overlay@6.0.9: @@ -20547,30 +20905,32 @@ packages: prop-types: 15.8.1 dev: false - /react-helmet-async@1.3.0: + /react-helmet-async@1.3.0(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} peerDependencies: react: ^16.6.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 invariant: 2.2.4 prop-types: 15.8.1 + react: 18.1.0 + react-dom: 18.1.0(react@18.1.0) react-fast-compare: 3.2.0 shallowequal: 1.1.0 dev: false - /react-helmet-async@1.3.0(react-dom@18.1.0)(react@18.1.0): + /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} peerDependencies: react: ^16.6.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 invariant: 2.2.4 prop-types: 15.8.1 - react: 18.1.0 - react-dom: 18.1.0(react@18.1.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) react-fast-compare: 3.2.0 shallowequal: 1.1.0 dev: false @@ -20587,7 +20947,7 @@ packages: react-side-effect: 2.1.2(react@18.2.0) dev: false - /react-intl@6.5.5: + /react-intl@6.5.5(react@18.2.0)(typescript@5.2.2): resolution: {integrity: sha512-cI5UKvBh4tc1zxLIziHBYGMX3dhYWDEFlvUDVN6NfT2i96zTXz/zH2AmM8+2waqgOhwkFUzd+7kK1G9q7fiC2g==} peerDependencies: react: ^16.6.0 || 17 || 18 @@ -20598,14 +20958,16 @@ packages: dependencies: '@formatjs/ecma402-abstract': 1.18.0 '@formatjs/icu-messageformat-parser': 2.7.3 - '@formatjs/intl': 2.9.9 + '@formatjs/intl': 2.9.9(typescript@5.2.2) '@formatjs/intl-displaynames': 6.6.4 '@formatjs/intl-listformat': 7.5.3 '@types/hoist-non-react-statics': 3.3.1 '@types/react': 18.2.43 hoist-non-react-statics: 3.3.2 intl-messageformat: 10.5.8 + react: 18.2.0 tslib: 2.6.2 + typescript: 5.2.2 dev: false /react-is@16.13.1: @@ -20621,6 +20983,27 @@ packages: resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} dev: false + /react-markdown@9.0.1(react@18.2.0): + resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} + peerDependencies: + '@types/react': '>=18' + react: '>=18' + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-to-jsx-runtime: 2.3.0 + html-url-attributes: 3.0.0 + mdast-util-to-hast: 13.1.0 + react: 18.2.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 + unified: 11.0.4 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: false + /react-merge-refs@1.1.0: resolution: {integrity: sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==} dev: false @@ -20651,26 +21034,28 @@ packages: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} - /react-router-dom@6.3.0: + /react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: history: 5.3.0 - react-router: 6.3.0 + react: 18.1.0 + react-dom: 18.1.0(react@18.1.0) + react-router: 6.3.0(react@18.1.0) dev: false - /react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0): + /react-router-dom@6.3.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: history: 5.3.0 - react: 18.1.0 - react-dom: 18.1.0(react@18.1.0) - react-router: 6.3.0(react@18.1.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.3.0(react@18.2.0) dev: false /react-router-dom@6.6.1(react-dom@18.2.0)(react@18.2.0): @@ -20686,21 +21071,22 @@ packages: react-router: 6.6.1(react@18.2.0) dev: false - /react-router@6.3.0: + /react-router@6.3.0(react@18.1.0): resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==} peerDependencies: react: '>=16.8' dependencies: history: 5.3.0 + react: 18.1.0 dev: false - /react-router@6.3.0(react@18.1.0): + /react-router@6.3.0(react@18.2.0): resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==} peerDependencies: react: '>=16.8' dependencies: history: 5.3.0 - react: 18.1.0 + react: 18.2.0 dev: false /react-router@6.6.1(react@18.2.0): @@ -20727,7 +21113,7 @@ packages: react: ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: - classnames: 2.3.2 + classnames: 2.5.1 enquire.js: 2.1.6 json2mq: 0.2.0 lodash.debounce: 4.0.8 @@ -20802,14 +21188,6 @@ packages: dependencies: loose-envify: 1.4.0 - /reactcss@1.2.3: - resolution: {integrity: sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==} - peerDependencies: - react: '*' - dependencies: - lodash: 4.17.21 - dev: false - /reactcss@1.2.3(react@18.2.0): resolution: {integrity: sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==} peerDependencies: @@ -20817,7 +21195,6 @@ packages: dependencies: lodash: 4.17.21 react: 18.2.0 - dev: true /read-pkg-up@4.0.0: resolution: {integrity: sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==} @@ -20834,7 +21211,6 @@ packages: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - dev: true /read-pkg-up@8.0.0: resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} @@ -20843,7 +21219,6 @@ packages: find-up: 5.0.0 read-pkg: 6.0.0 type-fest: 1.4.0 - dev: true /read-pkg@3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} @@ -20862,7 +21237,6 @@ packages: normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - dev: true /read-pkg@6.0.0: resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} @@ -20872,7 +21246,6 @@ packages: normalize-package-data: 3.0.3 parse-json: 5.2.0 type-fest: 1.4.0 - dev: true /readable-stream@2.3.7: resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} @@ -20940,7 +21313,6 @@ packages: dependencies: indent-string: 5.0.0 strip-indent: 4.0.0 - dev: true /redeyed@2.1.1: resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} @@ -21005,7 +21377,6 @@ packages: dependencies: extend-shallow: 3.0.2 safe-regex: 1.1.0 - dev: true /regexp.prototype.flags@1.4.3: resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} @@ -21117,6 +21488,14 @@ packages: unified: 10.1.2 dev: true + /rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.0.2 + vfile: 6.0.1 + dev: false + /rehype-remark@9.1.2: resolution: {integrity: sha512-c0fG3/CrJ95zAQ07xqHSkdpZybwdsY7X5dNWvgL2XqLKZuqmG3+vk6kP/4miCnp+R+x/0uKKRSpfXb9aGR8Z5w==} dependencies: @@ -21175,6 +21554,19 @@ packages: transitivePeerDependencies: - supports-color + /remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + dependencies: + '@types/mdast': 4.0.3 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.4 + transitivePeerDependencies: + - supports-color + dev: false + /remark-parse@10.0.1: resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} dependencies: @@ -21195,6 +21587,17 @@ packages: - supports-color dev: false + /remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + dependencies: + '@types/mdast': 4.0.3 + mdast-util-from-markdown: 2.0.0 + micromark-util-types: 2.0.0 + unified: 11.0.4 + transitivePeerDependencies: + - supports-color + dev: false + /remark-rehype@10.1.0: resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} dependencies: @@ -21203,6 +21606,16 @@ packages: mdast-util-to-hast: 12.2.5 unified: 10.1.2 + /remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + mdast-util-to-hast: 13.1.0 + unified: 11.0.4 + vfile: 6.0.1 + dev: false + /remark-stringify@10.0.2: resolution: {integrity: sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==} dependencies: @@ -21211,6 +21624,14 @@ packages: unified: 10.1.2 dev: true + /remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + dependencies: + '@types/mdast': 4.0.3 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.4 + dev: false + /remote-origin-url@0.4.0: resolution: {integrity: sha512-HYhdsT2pNd0LP4Osb0vtQ1iassxIc3Yk1oze7j8dMJFciMkW8e0rdg9E/mOunqtSVHSzvMfwLDIYzPnEDmpk6Q==} engines: {node: '>= 0.8.0'} @@ -21227,7 +21648,6 @@ packages: /remove-trailing-separator@1.1.0: resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - dev: true /rename-keys@1.2.0: resolution: {integrity: sha512-U7XpAktpbSgHTRSNRrjKSrjYkZKuhUukfoBlXWXUExCAqhzh1TU3BDRAfJmarcl5voKS+pbKU9MvyLWKZ4UEEg==} @@ -21247,7 +21667,6 @@ packages: /repeat-element@1.1.4: resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} engines: {node: '>=0.10.0'} - dev: true /repeat-string@1.6.1: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} @@ -21309,15 +21728,12 @@ packages: /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - dev: true /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: true /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - dev: true /requizzle@0.2.4: resolution: {integrity: sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==} @@ -21333,7 +21749,6 @@ packages: engines: {node: '>=8'} dependencies: resolve-from: 5.0.0 - dev: true /resolve-dir@0.1.1: resolution: {integrity: sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==} @@ -21370,7 +21785,6 @@ packages: /resolve-url@0.2.1: resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated - dev: true /resolve@1.1.7: resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} @@ -21441,7 +21855,6 @@ packages: /ret@0.1.15: resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} engines: {node: '>=0.12'} - dev: true /retry-request@5.0.2: resolution: {integrity: sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ==} @@ -21483,7 +21896,6 @@ packages: hasBin: true dependencies: glob: 7.2.3 - dev: true /rimraf@5.0.5: resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} @@ -21561,7 +21973,7 @@ packages: typescript: 5.2.2 dev: true - /rollup-plugin-visualizer@5.9.0: + /rollup-plugin-visualizer@5.9.0(rollup@4.1.5): resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} engines: {node: '>=14'} hasBin: true @@ -21573,6 +21985,7 @@ packages: dependencies: open: 8.4.0 picomatch: 2.3.1 + rollup: 4.1.5 source-map: 0.7.4 yargs: 17.7.2 dev: false @@ -21641,7 +22054,6 @@ packages: '@rollup/rollup-win32-ia32-msvc': 4.1.5 '@rollup/rollup-win32-x64-msvc': 4.1.5 fsevents: 2.3.3 - dev: true /roughjs@4.6.6: resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} @@ -21654,12 +22066,11 @@ packages: /rsvp@4.8.5: resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} engines: {node: 6.* || >= 7.*} - dev: true /rtl-css-js@1.16.1: resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.7 dev: false /run-applescript@5.0.0: @@ -21668,6 +22079,11 @@ packages: dependencies: execa: 5.1.1 + /run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + dev: false + /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -21756,7 +22172,6 @@ packages: resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} dependencies: ret: 0.1.15 - dev: true /safe-stable-stringify@2.4.2: resolution: {integrity: sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==} @@ -21783,7 +22198,6 @@ packages: walker: 1.0.8 transitivePeerDependencies: - supports-color - dev: true /sass@1.69.5: resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==} @@ -21803,7 +22217,6 @@ packages: engines: {node: '>=10'} dependencies: xmlchars: 2.2.0 - dev: true /scheduler@0.22.0: resolution: {integrity: sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==} @@ -21970,7 +22383,6 @@ packages: /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: true /set-function-name@2.0.1: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} @@ -21993,7 +22405,6 @@ packages: is-extendable: 0.1.1 is-plain-object: 2.0.4 split-string: 3.1.0 - dev: true /setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -22046,7 +22457,6 @@ packages: /shellwords@0.1.1: resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} requiresBuild: true - dev: true optional: true /shortid@2.2.16: @@ -22069,7 +22479,6 @@ packages: /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - dev: true /signale@1.4.0: resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} @@ -22099,7 +22508,6 @@ packages: /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true /sitemap@7.1.1: resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} @@ -22112,8 +22520,8 @@ packages: sax: 1.2.4 dev: false - /size-limit@11.0.1: - resolution: {integrity: sha512-6L80ocVspWPrhIRg8kPl41VypqTGH8/lu9e6TJiSJpkNLtOR2h/EEqdAO/wNJOv/sUVtjX+lVEWrzBpItGP+gQ==} + /size-limit@11.0.2: + resolution: {integrity: sha512-iFZ8iTR/3zPqxSwEIdGnTVYVU0F2nhodLQG/G6zpi/NxECYAK9ntq2lNr+prXH7h3gyBjx2Umt2D/oS2Qzz+eg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -22123,7 +22531,6 @@ packages: lilconfig: 3.0.0 nanospinner: 1.1.0 picocolors: 1.0.0 - dev: true /size-sensor@1.0.1: resolution: {integrity: sha512-QTy7MnuugCFXIedXRpUSk9gUnyNiaxIdxGfUjr8xxXOqIB3QvBUYP9+b51oCg2C4dnhaeNk/h57TxjbvoJrJUA==} @@ -22145,7 +22552,6 @@ packages: /slash@5.1.0: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} - dev: true /slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} @@ -22154,7 +22560,6 @@ packages: ansi-styles: 4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 - dev: true /slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} @@ -22186,14 +22591,12 @@ packages: define-property: 1.0.0 isobject: 3.0.1 snapdragon-util: 3.0.1 - dev: true /snapdragon-util@3.0.1: resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 - dev: true /snapdragon@0.8.2: resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} @@ -22209,7 +22612,6 @@ packages: use: 3.1.1 transitivePeerDependencies: - supports-color - dev: true /socks-proxy-agent@3.0.1: resolution: {integrity: sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==} @@ -22262,7 +22664,6 @@ packages: resolve-url: 0.2.1 source-map-url: 0.4.1 urix: 0.1.0 - dev: true /source-map-resolve@0.6.0: resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==} @@ -22286,7 +22687,6 @@ packages: /source-map-url@0.4.1: resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} deprecated: See https://github.com/lydell/source-map-url#deprecated - dev: true /source-map@0.1.32: resolution: {integrity: sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ==} @@ -22380,7 +22780,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: extend-shallow: 3.0.2 - dev: true /split2@1.0.0: resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} @@ -22461,7 +22860,6 @@ packages: engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 - dev: true /stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} @@ -22492,7 +22890,6 @@ packages: dependencies: define-property: 0.2.5 object-copy: 0.1.0 - dev: true /stdin-discarder@0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} @@ -22569,7 +22966,6 @@ packages: dependencies: char-regex: 1.0.2 strip-ansi: 6.0.1 - dev: true /string-width@1.0.2: resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} @@ -22736,7 +23132,6 @@ packages: /strip-bom@4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} - dev: true /strip-eof@1.0.0: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} @@ -22762,7 +23157,6 @@ packages: engines: {node: '>=12'} dependencies: min-indent: 1.0.1 - dev: true /strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} @@ -22771,7 +23165,6 @@ packages: /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - dev: true /strip-outer@1.0.1: resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} @@ -22789,7 +23182,6 @@ packages: /style-search@0.1.0: resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} - dev: true /style-to-object@0.3.0: resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} @@ -22802,6 +23194,12 @@ packages: inline-style-parser: 0.1.1 dev: false + /style-to-object@1.0.5: + resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} + dependencies: + inline-style-parser: 0.2.2 + dev: false + /stylehacks@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} @@ -22832,18 +23230,21 @@ packages: stylelint: 15.11.0(typescript@5.2.2) dev: true - /stylelint-config-recommended@7.0.0: + /stylelint-config-recommended@7.0.0(stylelint@15.11.0): resolution: {integrity: sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==} peerDependencies: stylelint: ^14.4.0 + dependencies: + stylelint: 15.11.0(typescript@5.2.2) dev: false - /stylelint-config-standard@25.0.0: + /stylelint-config-standard@25.0.0(stylelint@15.11.0): resolution: {integrity: sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==} peerDependencies: stylelint: ^14.4.0 dependencies: - stylelint-config-recommended: 7.0.0 + stylelint: 15.11.0(typescript@5.2.2) + stylelint-config-recommended: 7.0.0(stylelint@15.11.0) dev: false /stylelint-config-standard@34.0.0(stylelint@15.11.0): @@ -22904,7 +23305,6 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true /stylis@4.1.3: resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} @@ -22966,7 +23366,6 @@ packages: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 - dev: true /supports-hyperlinks@3.0.0: resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} @@ -22974,7 +23373,6 @@ packages: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 - dev: true /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} @@ -22993,7 +23391,6 @@ packages: /svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - dev: true /svgo-browser@1.3.8: resolution: {integrity: sha512-yOgDNIcewFZN3+jXdWeh/rQzbWJjCq1dTHphLz2r4T4AfTm+nqCxZ5B89v9bjQbFKA/s/k7TUc7J90+pP2HTyw==} @@ -23037,7 +23434,6 @@ packages: /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true /synckit@0.8.5: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} @@ -23059,7 +23455,6 @@ packages: slice-ansi: 4.0.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true /taffydb@2.6.2: resolution: {integrity: sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA==} @@ -23176,7 +23571,6 @@ packages: dependencies: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - dev: true /terser@5.21.0: resolution: {integrity: sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==} @@ -23218,7 +23612,6 @@ packages: /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true /textextensions@2.6.0: resolution: {integrity: sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==} @@ -23237,7 +23630,6 @@ packages: /throat@5.0.0: resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} - dev: true /throttle-debounce@3.0.1: resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} @@ -23323,7 +23715,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 - dev: true /to-readable-stream@1.0.0: resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} @@ -23336,7 +23727,6 @@ packages: dependencies: is-number: 3.0.0 repeat-string: 1.6.1 - dev: true /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -23352,7 +23742,6 @@ packages: extend-shallow: 3.0.2 regex-not: 1.0.2 safe-regex: 1.1.0 - dev: true /toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} @@ -23372,7 +23761,6 @@ packages: punycode: 2.1.1 universalify: 0.2.0 url-parse: 1.5.10 - dev: true /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -23389,7 +23777,6 @@ packages: engines: {node: '>=8'} dependencies: punycode: 2.1.1 - dev: true /transformation-matrix@2.15.0: resolution: {integrity: sha512-HN3kCvvH4ug3Xm/ycOfCFQOOktg5htxlC4Ih1Z7Wb6BMtQho+q+irOdGo10ARRKpqkRBXgBzQFw/AVmR0oIf0g==} @@ -23415,7 +23802,6 @@ packages: /trim-newlines@4.1.1: resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} engines: {node: '>=12'} - dev: true /trim-repeated@1.0.0: resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} @@ -23475,15 +23861,6 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - dev: false - /tsutils@3.21.0(typescript@5.2.2): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -23492,7 +23869,6 @@ packages: dependencies: tslib: 1.14.1 typescript: 5.2.2 - dev: true /tsx@3.14.0: resolution: {integrity: sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==} @@ -23529,19 +23905,16 @@ packages: engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 - dev: true /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 - dev: true /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - dev: true /type-fest@0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} @@ -23563,27 +23936,22 @@ packages: /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - dev: true /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - dev: true /type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} - dev: true /type-fest@0.8.1: resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} - dev: true /type-fest@1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} - dev: true /type-fest@3.13.1: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} @@ -23628,7 +23996,6 @@ packages: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: is-typedarray: 1.0.0 - dev: true /typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} @@ -23649,7 +24016,6 @@ packages: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true - dev: true /uc.micro@1.0.6: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} @@ -23677,23 +24043,23 @@ packages: requiresBuild: true optional: true - /umi@4.0.88(sass@1.69.5): + /umi@4.0.88(@babel/core@7.23.2)(@types/node@20.8.9)(eslint@8.52.0)(jest@26.6.3)(postcss-less@6.0.0)(prettier@3.0.3)(react-dom@18.2.0)(react@18.2.0)(rollup@4.1.5)(sass@1.69.5)(stylelint@15.11.0)(typescript@5.2.2): resolution: {integrity: sha512-gNgBMbLuZwj5c2uroFmtgT4tJO2JFKfIxJaad3oFa0cOzJMSx6CnaG3Z2/+pU2eAy9EMBvbtY/iAmkr3ZNEAWg==} engines: {node: '>=14'} hasBin: true dependencies: '@babel/runtime': 7.23.2 '@umijs/bundler-utils': 4.0.88 - '@umijs/bundler-webpack': 4.0.88 + '@umijs/bundler-webpack': 4.0.88(typescript@5.2.2) '@umijs/core': 4.0.88 - '@umijs/lint': 4.0.88 - '@umijs/preset-umi': 4.0.88(sass@1.69.5) - '@umijs/renderer-react': 4.0.88 + '@umijs/lint': 4.0.88(eslint@8.52.0)(jest@26.6.3)(postcss-less@6.0.0)(stylelint@15.11.0)(typescript@5.2.2) + '@umijs/preset-umi': 4.0.88(@types/node@20.8.9)(rollup@4.1.5)(sass@1.69.5)(typescript@5.2.2) + '@umijs/renderer-react': 4.0.88(react-dom@18.2.0)(react@18.2.0) '@umijs/server': 4.0.88 - '@umijs/test': 4.0.88 + '@umijs/test': 4.0.88(@babel/core@7.23.2) '@umijs/utils': 4.0.88 - prettier-plugin-organize-imports: 3.2.4 - prettier-plugin-packagejson: 2.4.3 + prettier-plugin-organize-imports: 3.2.4(prettier@3.0.3)(typescript@5.2.2) + prettier-plugin-packagejson: 2.4.3(prettier@3.0.3) transitivePeerDependencies: - '@babel/core' - '@types/node' @@ -23772,7 +24138,6 @@ packages: /unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} - dev: true /unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} @@ -23785,6 +24150,18 @@ packages: trough: 2.1.0 vfile: 5.3.6 + /unified@11.0.4: + resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + dependencies: + '@types/unist': 3.0.2 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.1.0 + vfile: 6.0.1 + dev: false + /union-value@1.0.1: resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} engines: {node: '>=0.10.0'} @@ -23793,7 +24170,6 @@ packages: get-value: 2.0.6 is-extendable: 0.1.1 set-value: 2.0.1 - dev: true /unique-filename@1.1.1: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} @@ -23847,16 +24223,41 @@ packages: /unist-util-is@5.1.1: resolution: {integrity: sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==} + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + dependencies: + '@types/unist': 3.0.2 + dev: false + /unist-util-position@4.0.3: resolution: {integrity: sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==} dependencies: '@types/unist': 2.0.6 + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + dependencies: + '@types/unist': 3.0.2 + unist-util-visit: 5.0.0 + dev: false + /unist-util-stringify-position@3.0.2: resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==} dependencies: '@types/unist': 2.0.6 + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.2 + dev: false + /unist-util-visit-parents@5.1.1: resolution: {integrity: sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==} dependencies: @@ -23868,6 +24269,12 @@ packages: dependencies: '@types/unist': 2.0.6 unist-util-is: 5.1.1 + + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 dev: false /unist-util-visit@4.1.1: @@ -23883,6 +24290,13 @@ packages: '@types/unist': 2.0.6 unist-util-is: 5.1.1 unist-util-visit-parents: 5.1.3 + + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 dev: false /universal-user-agent@6.0.0: @@ -23896,7 +24310,6 @@ packages: /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} - dev: true /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} @@ -23920,7 +24333,6 @@ packages: dependencies: has-value: 0.3.1 isobject: 3.0.1 - dev: true /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} @@ -23969,7 +24381,6 @@ packages: /urix@0.1.0: resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} deprecated: Please see https://github.com/lydell/urix#deprecated - dev: true /url-join@4.0.1: resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} @@ -23994,7 +24405,6 @@ packages: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 - dev: true /url@0.11.3: resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} @@ -24023,10 +24433,17 @@ packages: react: 18.2.0 dev: false + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + /use@3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} engines: {node: '>=0.10.0'} - dev: true /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -24102,7 +24519,6 @@ packages: '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.9.0 source-map: 0.7.4 - dev: true /validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -24121,6 +24537,24 @@ packages: engines: {node: '>= 0.10'} dev: true + /valtio@1.13.0(react@18.2.0): + resolution: {integrity: sha512-s2VkxxFyaJwjpIheJonRa/34HWS1EpsEjw9OW9l3j8G4cbIw7lruspOjyv+z2o4BrGx351BH+VWb8sZHkrlyYA==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=16.8' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + dependencies: + derive-valtio: 0.1.0(valtio@1.13.0) + proxy-compare: 2.5.1 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + /vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -24140,12 +24574,26 @@ packages: '@types/unist': 2.0.6 vfile: 5.3.6 + /vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + dependencies: + '@types/unist': 3.0.2 + vfile: 6.0.1 + dev: false + /vfile-message@3.1.3: resolution: {integrity: sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA==} dependencies: '@types/unist': 2.0.6 unist-util-stringify-position: 3.0.2 + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + dev: false + /vfile@5.3.6: resolution: {integrity: sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==} dependencies: @@ -24163,14 +24611,22 @@ packages: vfile-message: 3.1.3 dev: false + /vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + dev: false + /video-react@0.16.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-138NHPS8bmgqCYVCdbv2GVFhXntemNHWGw9AN8iJSzr3jizXMmWJd2LTBppr4hZJUbyW1A1tPZ3CQXZUaexMVA==} peerDependencies: react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.23.5 - classnames: 2.3.2 + '@babel/runtime': 7.23.7 + classnames: 2.5.1 lodash.throttle: 4.1.1 prop-types: 15.8.1 react: 18.2.0 @@ -24195,13 +24651,14 @@ packages: - supports-color dev: true - /vite-plugin-svgr@2.4.0: + /vite-plugin-svgr@2.4.0(rollup@4.1.5)(vite@4.5.0): resolution: {integrity: sha512-q+mJJol6ThvqkkJvvVFEndI4EaKIjSI0I3jNFgSoC9fXAz1M7kYTVUin8fhUsFojFDKZ9VHKtX6NXNaOLpbsHA==} peerDependencies: vite: ^2.6.0 || 3 || 4 dependencies: - '@rollup/pluginutils': 5.0.5 + '@rollup/pluginutils': 5.0.5(rollup@4.1.5) '@svgr/core': 6.5.1 + vite: 4.5.0(@types/node@20.8.9)(less@4.2.0) transitivePeerDependencies: - rollup - supports-color @@ -24214,7 +24671,7 @@ packages: svgo: 2.8.0 dev: true - /vite@4.3.1(less@4.1.3)(sass@1.69.5): + /vite@4.3.1(@types/node@20.8.9)(less@4.1.3)(sass@1.69.5): resolution: {integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -24239,6 +24696,7 @@ packages: terser: optional: true dependencies: + '@types/node': 20.8.9 esbuild: 0.17.19 less: 4.1.3 postcss: 8.4.31 @@ -24359,15 +24817,16 @@ packages: he: 1.2.0 dev: true - /vue-tsc@1.8.19: + /vue-tsc@1.8.19(typescript@5.2.2): resolution: {integrity: sha512-tacMQLQ0CXAfbhRycCL5sWIy1qujXaIEtP1hIQpzHWOUuICbtTj9gJyFf91PvzG5KCNIkA5Eg7k2Fmgt28l5DQ==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 1.8.19 - '@vue/typescript': 1.8.19 + '@vue/language-core': 1.8.19(typescript@5.2.2) + '@vue/typescript': 1.8.19(typescript@5.2.2) semver: 7.5.4 + typescript: 5.2.2 dev: true /vue-types@3.0.2(vue@3.3.4): @@ -24394,14 +24853,12 @@ packages: deprecated: Use your platform's native performance.now() and performance.timeOrigin. dependencies: browser-process-hrtime: 1.0.0 - dev: true /w3c-xmlserializer@2.0.0: resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} engines: {node: '>=10'} dependencies: xml-name-validator: 3.0.0 - dev: true /walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} @@ -24445,22 +24902,18 @@ packages: /webidl-conversions@5.0.0: resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} engines: {node: '>=8'} - dev: true /webidl-conversions@6.1.0: resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} engines: {node: '>=10.4'} - dev: true /whatwg-encoding@1.0.5: resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} dependencies: iconv-lite: 0.4.24 - dev: true /whatwg-mimetype@2.3.0: resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} - dev: true /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -24492,7 +24945,6 @@ packages: lodash: 4.17.21 tr46: 2.1.0 webidl-conversions: 6.1.0 - dev: true /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -24530,7 +24982,6 @@ packages: /which-module@2.0.0: resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} - dev: true /which-pm-runs@1.1.0: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} @@ -24591,7 +25042,6 @@ packages: /word-wrap@1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} - dev: true /wordwrap@0.0.2: resolution: {integrity: sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==} @@ -24617,7 +25067,6 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -24662,7 +25111,6 @@ packages: is-typedarray: 1.0.0 signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - dev: true /write-file-atomic@4.0.2: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} @@ -24678,7 +25126,6 @@ packages: dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 - dev: true /ws@5.2.3: resolution: {integrity: sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==} @@ -24705,7 +25152,6 @@ packages: optional: true utf-8-validate: optional: true - dev: true /xdg-basedir@3.0.0: resolution: {integrity: sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==} @@ -24720,7 +25166,6 @@ packages: /xml-name-validator@3.0.0: resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} - dev: true /xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} @@ -24736,7 +25181,6 @@ packages: /xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true /xmlcreate@2.0.4: resolution: {integrity: sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==} @@ -24788,12 +25232,10 @@ packages: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 - dev: true /yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} - dev: true /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} @@ -24829,7 +25271,6 @@ packages: which-module: 2.0.0 y18n: 4.0.3 yargs-parser: 18.1.3 - dev: true /yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} diff --git a/s2-site/.dumi/global.less b/s2-site/.dumi/global.less new file mode 100644 index 0000000000..77e36d7d21 --- /dev/null +++ b/s2-site/.dumi/global.less @@ -0,0 +1,33 @@ +.dumi-default-table { + margin: 0 !important; +} + +// h3 { +// border-bottom: none !important; +// } + +body { + overflow-x: hidden; +} + +.ant-layout-content { + ul { + margin-bottom: 16px !important; + } +} + +details { + cursor: pointer; +} + +.dumi-default-source-code { + margin: 24px 0; + + .prism-code { + background-color: #f6f8fa !important; + } +} + +.demo-card-screenshot { + width: 100% !important; +} diff --git a/s2-site/.dumi/global.ts b/s2-site/.dumi/global.ts new file mode 100644 index 0000000000..0eda387e03 --- /dev/null +++ b/s2-site/.dumi/global.ts @@ -0,0 +1,65 @@ +if (window) { + (window as any).react = require('react'); + // 如果写成 reactDOM 会导致在 playground 运行时找不到 (应该是 dumi 还有主题包存在多版本 React 导致的), + (window as any).reactDom = require('react-dom'); + (window as any).reactDOMClient = require('react-dom/client'); + (window as any).lodash = require('lodash'); + (window as any).reactColor = require('react-color'); + (window as any).copyToClipboard = require('copy-to-clipboard'); + + (window as any).antd = require('antd'); + (window as any).antdIcons = require('@ant-design/icons'); + + (window as any).gCanvas = require('@antv/g-canvas'); + (window as any).g = require('@antv/g'); + (window as any).gPluginA11y = require('@antv/g-plugin-a11y'); + ( + window as any + ).gPluginRoughCanvasRenderer = require('@antv/g-plugin-rough-canvas-renderer'); + (window as any).g2 = require('@antv/g2'); + (window as any).s2 = require('@antv/s2'); + (window as any).s2React = require('@antv/s2-react'); + + // 本地通过 monorepoRedirect link 时不需要引入样式, 发布时引入, 避免样式丢失 + if (process.env.NODE_ENV === 'production') { + (window as any).s2CSS = require('@antv/s2/dist/style.min.css'); + (window as any).s2ReactCSS = require('@antv/s2-react/dist/style.min.css'); + } + + // 码云和老网站统一跳转 antgroup 新域名 + const hosts = ['s2.antv.vision', 'antv-s2.gitee.io']; + if (hosts.includes(location.host)) { + (window as any).location.href = location.href.replace( + location.origin, + 'https://s2.antv.antgroup.com', + ); + } + + // 能获取到 version 说明没有走 dumi 的代理, 运行的 node_modules 的包 + console.table([ + { + package: '@antv/s2', + version: (window as any).s2?.version || 'development', + }, + { + package: '@antv/s2-react', + version: (window as any).s2React?.version || 'development', + }, + { + package: '@antv/s2-vue', + version: (window as any).s2Vue?.version || 'development', + }, + { + package: 'react', + version: (window as any).react?.version || 'development', + }, + { + package: 'react-dom', + version: (window as any).reactDom?.version || 'development', + }, + { + package: 'antd', + version: (window as any).antd?.version || 'development', + }, + ]); +} diff --git a/s2-site/.dumi/pages/playground.en.tsx b/s2-site/.dumi/pages/playground.en.tsx new file mode 100644 index 0000000000..46b5455d1e --- /dev/null +++ b/s2-site/.dumi/pages/playground.en.tsx @@ -0,0 +1,3 @@ +import Playground from './playground.zh'; + +export default Playground; diff --git a/s2-site/.dumi/pages/playground.zh.tsx b/s2-site/.dumi/pages/playground.zh.tsx new file mode 100644 index 0000000000..bd0cb0681d --- /dev/null +++ b/s2-site/.dumi/pages/playground.zh.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import Page from '../../playground/layouts'; +import { Header } from '@antv/dumi-theme-antv/dist/slots/Header'; +import { Footer } from '@antv/dumi-theme-antv/dist/slots/Footer'; + +const Playground: React.FC = () => { + return ( + <> +

+ +