diff --git a/README.ja-JP.md b/README.ja-JP.md
deleted file mode 100644
index 4ce285a..0000000
--- a/README.ja-JP.md
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-
-
-
-[](LICENSE)
-
-
Vue Vben Admin
-
-
-[](https://sonarcloud.io/summary/new_code?id=vbenjs_vue-vben-admin)    
-
-**日本語** | [English](./README.md) | [中文](./README.zh-CN.md)
-
-## 紹介
-
-Vue Vben Adminは、最新の`vue3`、`vite`、`TypeScript`などの主流技術を使用して開発された、無料でオープンソースの中・後端テンプレートです。すぐに使える中・後端のフロントエンドソリューションとして、学習の参考にもなります。
-
-## アップグレード通知
-
-これは最新バージョン `5.0` であり、以前のバージョンとは互換性がありません。新しいプロジェクトを開始する場合は、最新バージョンを使用することをお勧めします。古いバージョンを表示したい場合は、[v2ブランチ](https://github.com/vbenjs/vue-vben-admin/tree/v2)を使用してください。
-
-## 特徴
-
-- **最新技術スタック**:Vue 3やViteなどの最先端フロントエンド技術で開発
-- **TypeScript**:アプリケーション規模のJavaScriptのための言語
-- **テーマ**:複数のテーマカラーが利用可能で、カスタマイズオプションも豊富
-- **国際化**:完全な内蔵国際化サポート
-- **権限管理**:動的ルートベースの権限生成ソリューションを内蔵
-
-## プレビュー
-
-- [Vben Admin](https://vben.pro/) - フルバージョンの中国語サイト
-
-テストアカウント:vben/123456
-
-
-
-### Gitpodを使用
-
-Gitpod(GitHub用の無料オンライン開発環境)でプロジェクトを開き、すぐにコーディングを開始します。
-
-[](https://gitpod.io/#https://github.com/vbenjs/vue-vben-admin)
-
-## ドキュメント
-
-[ドキュメント](https://doc.vben.pro/)
-
-## インストールと使用
-
-1. プロジェクトコードを取得
-
-```bash
-git clone https://github.com/vbenjs/vue-vben-admin.git
-```
-
-2. 依存関係のインストール
-
-```bash
-cd vue-vben-admin
-npm i -g corepack
-pnpm install
-```
-
-3. 実行
-
-```bash
-pnpm dev
-```
-
-4. ビルド
-
-```bash
-pnpm build
-```
-
-## 変更ログ
-
-[CHANGELOG](https://github.com/vbenjs/vue-vben-admin/releases)
-
-## 貢献方法
-
-ご参加をお待ちしておりますするか、Pull Requestを送信してください。
-
-**Pull Request プロセス:**
-
-1. コードをフォーク
-2. 自分のブランチを作成:`git checkout -b feat/xxxx`
-3. 変更をコミット:`git commit -am 'feat(function): add xxxxx'`
-4. ブランチをプッシュ:`git push origin feat/xxxx`
-5. `pull request`を送信
-
-## Git貢献提出規則
-
-参考 [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) 規則 ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
-
-- `feat` 新機能の追加
-- `fix` 問題/バグの修正
-- `style` コードスタイルに関連し、実行結果に影響しない
-- `perf` 最適化/パフォーマンス向上
-- `refactor` リファクタリング
-- `revert` 変更の取り消し
-- `test` テスト関連
-- `docs` ドキュメント/注釈
-- `chore` 依存関係の更新/スキャフォールディング設定の変更など
-- `ci` 継続的インテグレーション
-- `types` 型定義ファイルの変更
-
-## ブラウザサポート
-
-ローカル開発には `Chrome 80+` ブラウザを推奨します
-
-モダンブラウザをサポートし、IEはサポートしません
-
-| [ ](http://godban.github.io/browsers-support-badges/)Edge | [ ](http://godban.github.io/browsers-support-badges/)Firefox | [ ](http://godban.github.io/browsers-support-badges/)Chrome | [ ](http://godban.github.io/browsers-support-badges/)Safari |
-| :-: | :-: | :-: | :-: |
-| 最新2バージョン | 最新2バージョン | 最新2バージョン | 最新2バージョン |
-
-## メンテナー
-
-[@Vben](https://github.com/anncwb)
-
-## スター歴史
-
-[](https://star-history.com/#vbenjs/vue-vben-admin&Date)
-
-## 寄付
-
-このプロジェクトが役に立つと思われた場合、作者にコーヒーを一杯おごってサポートを示すことができます!
-
-
-
-Paypal Me
-
-## 貢献者
-
-
-
-
-
-
-
-
-
-## Discord
-
-- [Github Discussions](https://github.com/anncwb/vue-vben-admin/discussions)
-
-## ライセンス
-
-[MIT © Vben-2020](./LICENSE)
diff --git a/README.md b/README.md
deleted file mode 100644
index ce8e897..0000000
--- a/README.md
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-
-
-
-[](LICENSE)
-
-
Vue Vben Admin
-
-
-[](https://sonarcloud.io/summary/new_code?id=vbenjs_vue-vben-admin) [](https://github.com/vbenjs/vue-vben-admin/actions/workflows/codeql.yml) [](https://github.com/vbenjs/vue-vben-admin/actions/workflows/build.yml) [](https://github.com/vbenjs/vue-vben-admin/actions/workflows/ci.yml) [](https://github.com/vbenjs/vue-vben-admin/actions/workflows/deploy.yml)
-
-**English** | [中文](./README.zh-CN.md) | [日本語](./README.ja-JP.md)
-
-## Introduction
-
-Vue Vben Admin is a free and open source middle and back-end template. Using the latest `vue3`, `vite`, `TypeScript` and other mainstream technology development, the out-of-the-box middle and back-end front-end solutions can also be used for learning reference.
-
-## Upgrade Notice
-
-This is the latest version, 5.0, and it is not compatible with previous versions. If you are starting a new project, it is recommended to use the latest version. If you wish to view the old version, please use the [v2 branch](https://github.com/vbenjs/vue-vben-admin/tree/v2).
-
-## Features
-
-- **Latest Technology Stack**: Developed with cutting-edge front-end technologies like Vue 3 and Vite
-- **TypeScript**: A language for application-scale JavaScript
-- **Themes**: Multiple theme colors available with customizable options
-- **Internationalization**: Comprehensive built-in internationalization support
-- **Permissions**: Built-in solution for dynamic route-based permission generation
-
-## Preview
-
-- [Vben Admin](https://vben.pro/) - Full version Chinese site
-
-Test Account: vben/123456
-
-
-
-### Use Gitpod
-
-Open the project in Gitpod (free online dev environment for GitHub) and start coding immediately.
-
-[](https://gitpod.io/#https://github.com/vbenjs/vue-vben-admin)
-
-## Documentation
-
-[Document](https://doc.vben.pro/)
-
-## Install and Use
-
-1. Get the project code
-
-```bash
-git clone https://github.com/vbenjs/vue-vben-admin.git
-```
-
-2. Install dependencies
-
-```bash
-cd vue-vben-admin
-npm i -g corepack
-pnpm install
-```
-
-3. Run
-
-```bash
-pnpm dev
-```
-
-4. Build
-
-```bash
-pnpm build
-```
-
-## Change Log
-
-[CHANGELOG](https://github.com/vbenjs/vue-vben-admin/releases)
-
-## How to Contribute
-
-You are very welcome to join! [Raise an issue](https://github.com/anncwb/vue-vben-admin/issues/new/choose) or submit a Pull Request.
-
-**Pull Request Process:**
-
-1. Fork the code
-2. Create your branch: `git checkout -b feat/xxxx`
-3. Submit your changes: `git commit -am 'feat(function): add xxxxx'`
-4. Push your branch: `git push origin feat/xxxx`
-5. Submit `pull request`
-
-## Git Contribution Submission Specification
-
-Reference [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) specification ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
-
-- `feat` Add new features
-- `fix` Fix the problem/BUG
-- `style` The code style is related and does not affect the running result
-- `perf` Optimization/performance improvement
-- `refactor` Refactor
-- `revert` Undo edit
-- `test` Test related
-- `docs` Documentation/notes
-- `chore` Dependency update/scaffolding configuration modification etc.
-- `ci` Continuous integration
-- `types` Type definition file changes
-
-## Browser Support
-
-The `Chrome 80+` browser is recommended for local development
-
-Support modern browsers, not IE
-
-| [ ](http://godban.github.io/browsers-support-badges/)Edge | [ ](http://godban.github.io/browsers-support-badges/)Firefox | [ ](http://godban.github.io/browsers-support-badges/)Chrome | [ ](http://godban.github.io/browsers-support-badges/)Safari |
-| :-: | :-: | :-: | :-: |
-| last 2 versions | last 2 versions | last 2 versions | last 2 versions |
-
-## Maintainer
-
-[@Vben](https://github.com/anncwb)
-
-## Star History
-
-[](https://star-history.com/#vbenjs/vue-vben-admin&Date)
-
-## Donate
-
-If you think this project is helpful to you, you can help the author buy a cup of coffee to show your support!
-
-
-
-Paypal Me
-
-## Contributors
-
-
-
-
-
-
-
-
-
-## Discord
-
-- [Github Discussions](https://github.com/anncwb/vue-vben-admin/discussions)
-
-## License
-
-[MIT © Vben-2020](./LICENSE)
diff --git a/README.zh-CN.md b/README.zh-CN.md
deleted file mode 100644
index d3193ef..0000000
--- a/README.zh-CN.md
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-
-
-
-[](LICENSE)
-
-
Vue Vben Admin
-
-
-[](https://sonarcloud.io/summary/new_code?id=vbenjs_vue-vben-admin)    
-
-**中文** | [English](./README.md) | [日本語](./README.ja-JP.md)
-
-## 简介
-
-Vue Vben Admin 是 Vue Vben Admin 的升级版本。作为一个免费开源的中后台模板,它采用了最新的 Vue 3、Vite、TypeScript 等主流技术开发,开箱即用,可用于中后台前端开发,也适合学习参考。
-
-## 升级提示
-
-该版本为最新版本 `5.0`,与其他版本不兼容,如果你是新项目,建议使用最新版本。如果你想查看旧版本,请使用 [v2 分支](https://github.com/vbenjs/vue-vben-admin/tree/v2)
-
-## 特性
-
-- **最新技术栈**:使用 Vue3/vite 等前端前沿技术开发
-- **TypeScript**:应用程序级 JavaScript 的语言
-- **主题**:提供多套主题色彩,可配置自定义主题
-- **国际化**:内置完善的国际化方案
-- **权限**:内置完善的动态路由权限生成方案
-
-## 预览
-
-- [Vben Admin](https://vben.pro/) - 完整版中文站点
-
-测试账号:vben/123456
-
-
-
-### 使用 Gitpod
-
-在 Gitpod(适用于 GitHub 的免费在线开发环境)中打开项目,并立即开始编码。
-
-[](https://gitpod.io/#https://github.com/vbenjs/vue-vben-admin)
-
-## 文档
-
-[文档地址](https://doc.vben.pro/)
-
-## 安装使用
-
-1. 获取项目代码
-
-```bash
-git clone https://github.com/vbenjs/vue-vben-admin.git
-```
-
-2. 安装依赖
-
-```bash
-cd vue-vben-admin
-npm i -g corepack
-pnpm install
-```
-
-3. 运行
-
-```bash
-pnpm dev
-```
-
-4. 打包
-
-```bash
-pnpm build
-```
-
-## 更新日志
-
-[CHANGELOG](https://github.com/vbenjs/vue-vben-admin/releases)
-
-## 如何贡献
-
-非常欢迎你的加入 或者提交一个 Pull Request。
-
-**Pull Request 流程:**
-
-1. Fork 代码
-2. 创建自己的分支:`git checkout -b feature/xxxx`
-3. 提交你的修改:`git commit -am 'feat(function): add xxxxx'`
-4. 推送您的分支:`git push origin feature/xxxx`
-5. 提交 `pull request`
-
-## Git 贡献提交规范
-
-参考 [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) 规范 ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
-
-- `feat` 增加新功能
-- `fix` 修复问题/BUG
-- `style` 代码风格相关无影响运行结果的
-- `perf` 优化/性能提升
-- `refactor` 重构
-- `revert` 撤销修改
-- `test` 测试相关
-- `docs` 文档/注释
-- `chore` 依赖更新/脚手架配置修改等
-- `ci` 持续集成
-- `types` 类型定义文件更改
-
-## 浏览器支持
-
-本地开发推荐使用 `Chrome 80+` 浏览器
-
-支持现代浏览器,不支持 IE
-
-| [ ](http://godban.github.io/browsers-support-badges/)Edge | [ ](http://godban.github.io/browsers-support-badges/)Firefox | [ ](http://godban.github.io/browsers-support-badges/)Chrome | [ ](http://godban.github.io/browsers-support-badges/)Safari |
-| :-: | :-: | :-: | :-: |
-| last 2 versions | last 2 versions | last 2 versions | last 2 versions |
-
-## 维护者
-
-[@Vben](https://github.com/anncwb)
-
-## Star 历史
-
-[](https://star-history.com/#vbenjs/vue-vben-admin&Date)
-
-## 捐赠
-
-如果你觉得这个项目对你有帮助,你可以帮作者买一杯咖啡表示支持!
-
-
-
-Paypal Me
-
-## 贡献者
-
-
-
-
-
-
-
-
-
-## Discord
-
-- [Github Discussions](https://github.com/anncwb/vue-vben-admin/discussions)
-
-## 许可证
-
-[MIT © Vben-2020](./LICENSE)
diff --git a/apps/web-antd/.env.production b/apps/web-antd/.env.production
index e84c54f..9852876 100644
--- a/apps/web-antd/.env.production
+++ b/apps/web-antd/.env.production
@@ -1,6 +1,6 @@
# 生产环境配置
VITE_BASE=/super/
-VITE_GLOB_API_URL=http://xz.dhdjy.com
+VITE_GLOB_API_URL=https://xz.dhdjy.com
VITE_ROUTER_HISTORY=history
VITE_COMPRESS=gzip
VITE_PWA=false
diff --git a/apps/web-antd/package.json b/apps/web-antd/package.json
index db7d007..33ff449 100644
--- a/apps/web-antd/package.json
+++ b/apps/web-antd/package.json
@@ -45,6 +45,8 @@
"dayjs": "catalog:",
"pinia": "catalog:",
"vue": "catalog:",
- "vue-router": "catalog:"
+ "vue-router": "catalog:",
+ "xlsx": "^0.18.5",
+ "xlsx-js-style": "^1.2.0"
}
}
diff --git a/apps/web-antd/public/favicon.ico b/apps/web-antd/public/favicon.ico
index fcf9818..a52c968 100644
Binary files a/apps/web-antd/public/favicon.ico and b/apps/web-antd/public/favicon.ico differ
diff --git a/apps/web-antd/src/api/admin/booking.ts b/apps/web-antd/src/api/admin/booking.ts
deleted file mode 100644
index ae32052..0000000
--- a/apps/web-antd/src/api/admin/booking.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-import { requestClient } from '#/api/request';
-
-export namespace BookingApi {
- /** 预订列表查询参数 */
- export interface ListParams {
- page?: number;
- limit?: number;
- classroom_id?: number;
- booking_date?: string;
- status?: number;
- student_id?: number;
- type?: string;
- }
-
- /** 预订信息 */
- export interface BookingInfo {
- id?: number;
- booking_no?: string | null;
- classroom_id?: number;
- seat_number?: string;
- user_id?: number | null;
- user_name?: string | null;
- booking_date?: string;
- start_time?: string;
- end_time?: string;
- purpose?: string | null;
- status?: number;
- remark?: string | null;
- create_time?: string;
- update_time?: string;
- seat_row_index?: number;
- seat_col_index?: number;
- student_id?: number;
- classroom_name?: string;
- time_range?: string;
- [key: string]: any;
- }
-
- /** 同意座位变更申请参数 */
- export interface ApproveParams {
- id: number;
- }
-
- /** 拒绝座位变更申请参数 */
- export interface RejectParams {
- id: number;
- reason: string;
- }
-}
-
-/**
- * 获取预订列表
- * GET /api/admin/booking/list
- */
-export async function getBookingListApi(params?: BookingApi.ListParams) {
- // 使用 responseReturn: 'body' 获取完整响应体
- return requestClient.get('/api/admin/booking/list', {
- params,
- responseReturn: 'body',
- });
-}
-
-/**
- * 同意座位变更申请
- * POST /api/admin/booking/approve
- */
-export async function approveBookingApi(data: BookingApi.ApproveParams) {
- return requestClient.post('/api/admin/booking/approve', data);
-}
-
-/**
- * 拒绝座位变更申请
- * POST /api/admin/booking/reject
- */
-export async function rejectBookingApi(data: BookingApi.RejectParams) {
- return requestClient.post('/api/admin/booking/reject', data);
-}
-
diff --git a/apps/web-antd/src/api/admin/classroom.ts b/apps/web-antd/src/api/admin/classroom.ts
index 7e13de9..ef82ed0 100644
--- a/apps/web-antd/src/api/admin/classroom.ts
+++ b/apps/web-antd/src/api/admin/classroom.ts
@@ -103,7 +103,9 @@ export namespace ClassroomApi {
/** 取消选座参数 */
export interface CancelBookingParams {
- id: number;
+ id?: number; // 预订ID(优先使用)
+ seat_number?: string; // 座位号(当没有预订ID时使用)
+ classroomId?: number; // 教室ID(使用座位号时必填)
}
/** 批量取消选座参数 */
@@ -123,6 +125,8 @@ export namespace ClassroomApi {
student_name: string;
student_mobile: string;
select_time: string;
+ booking_id?: number; // 预订ID(用于取消选座)
+ student_id?: number; // 学生ID(用于分配座位)
}
}
@@ -211,7 +215,10 @@ export async function randomAssignSeatsApi(data: ClassroomApi.RandomAssignSeatsP
* GET /api/admin/classroom/getUnassignedStudents
*/
export async function getUnassignedStudentsApi(params: ClassroomApi.UnassignedStudentsParams) {
- return requestClient.get('/api/admin/classroom/getUnassignedStudents', { params });
+ return requestClient.get('/api/admin/classroom/getUnassignedStudents', {
+ params,
+ responseReturn: 'body',
+ });
}
/**
diff --git a/apps/web-antd/src/api/admin/index.ts b/apps/web-antd/src/api/admin/index.ts
index d30a29d..571dac8 100644
--- a/apps/web-antd/src/api/admin/index.ts
+++ b/apps/web-antd/src/api/admin/index.ts
@@ -1,5 +1,4 @@
export * from './classroom';
-export * from './booking';
export * from './student';
export * from './class';
export * from './teacher';
diff --git a/apps/web-antd/src/locales/langs/zh-CN/page.json b/apps/web-antd/src/locales/langs/zh-CN/page.json
index c0ba614..4c199e5 100644
--- a/apps/web-antd/src/locales/langs/zh-CN/page.json
+++ b/apps/web-antd/src/locales/langs/zh-CN/page.json
@@ -16,10 +16,6 @@
"list": "教室列表",
"detail": "教室详情"
},
- "booking": {
- "title": "预订管理",
- "list": "预订列表"
- },
"student": {
"title": "学生管理",
"list": "学生列表",
diff --git a/apps/web-antd/src/router/routes/modules/booking.ts b/apps/web-antd/src/router/routes/modules/booking.ts
deleted file mode 100644
index bb2cc33..0000000
--- a/apps/web-antd/src/router/routes/modules/booking.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import type { RouteRecordRaw } from 'vue-router';
-
-import { $t } from '#/locales';
-
-const routes: RouteRecordRaw[] = [
- {
- name: 'BookingList',
- path: '/booking/list',
- component: () => import('#/views/booking/list.vue'),
- meta: {
- icon: 'lucide:calendar-check',
- order: 2,
- title: $t('page.booking.title'),
- },
- },
-];
-
-export default routes;
-
diff --git a/apps/web-antd/src/views/_core/authentication/code-login.vue b/apps/web-antd/src/views/_core/authentication/code-login.vue
index 6b76017..61c4e48 100644
--- a/apps/web-antd/src/views/_core/authentication/code-login.vue
+++ b/apps/web-antd/src/views/_core/authentication/code-login.vue
@@ -1,6 +1,5 @@
diff --git a/apps/web-antd/src/views/_core/authentication/login.vue b/apps/web-antd/src/views/_core/authentication/login.vue
index c91c62d..848c40b 100644
--- a/apps/web-antd/src/views/_core/authentication/login.vue
+++ b/apps/web-antd/src/views/_core/authentication/login.vue
@@ -1,6 +1,5 @@
-
-
-
-
-
-
-
-
-
-
- 待审核
- 已通过
- 已拒绝
-
- 搜索
- 重置
-
-
-
-
-
-
- {{ getStatusText(record.status) }}
-
-
-
-
-
- 同意
-
-
- 拒绝
-
- -
-
-
-
-
-
-
-
-
diff --git a/apps/web-antd/src/views/class/list.vue b/apps/web-antd/src/views/class/list.vue
index aebb25d..ffeb50a 100644
--- a/apps/web-antd/src/views/class/list.vue
+++ b/apps/web-antd/src/views/class/list.vue
@@ -3,10 +3,10 @@ import { ref, reactive, onMounted } from 'vue';
import { useRouter } from 'vue-router';
import { Page } from '@vben/common-ui';
import { Button, Card, Table, Space, message, Modal, Input } from 'ant-design-vue';
-import {
- getClassListApi,
+import {
+ getClassListApi,
deleteClassApi,
- type ClassApi
+ type ClassApi
} from '#/api';
defineOptions({ name: 'ClassList' });
@@ -53,7 +53,6 @@ const columns = [
{
title: '教室',
key: 'classroom_name',
- width: 150,
},
{
title: '学生人数',
@@ -114,8 +113,8 @@ const handleAdd = () => {
};
const handleEdit = (record: ClassApi.ClassInfo) => {
- router.push({
- name: 'ClassDetail',
+ router.push({
+ name: 'ClassDetail',
params: { id: record.id }
});
};
diff --git a/apps/web-antd/src/views/classroom/detail.vue b/apps/web-antd/src/views/classroom/detail.vue
index 40555b1..947302f 100644
--- a/apps/web-antd/src/views/classroom/detail.vue
+++ b/apps/web-antd/src/views/classroom/detail.vue
@@ -2,7 +2,8 @@
import { ref, onMounted, computed } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { Page } from '@vben/common-ui';
-import { Card, Form, Input, Select, InputNumber, Button, message, Tabs, Radio } from 'ant-design-vue';
+import { Card, Form, Input, Select, InputNumber, Button, message, Tabs, Radio, DatePicker } from 'ant-design-vue';
+import dayjs, { type Dayjs } from 'dayjs';
import {
getClassroomDetailApi,
saveClassroomApi,
@@ -24,7 +25,10 @@ const schoolList = ref([]);
const teacherList = ref([]);
const schoolListLoading = ref(false);
const teacherListLoading = ref(false);
-const formData = ref({
+const formData = ref({
name: '',
building: '',
floor: '',
@@ -35,6 +39,8 @@ const formData = ref({
teacher_id: undefined,
description: '',
status: 1,
+ fiexd_start_time: null,
+ fiexd_end_time: null,
});
const isEdit = computed(() => !!route.params.id);
@@ -60,6 +66,13 @@ const handleSubmit = async () => {
delete data.floor;
delete data.room;
}
+ // 处理选座时间字段,将 dayjs 对象转换为字符串
+ if (formData.value.fiexd_start_time) {
+ (data as any).fiexd_start_time = formData.value.fiexd_start_time.format('YYYY-MM-DD HH:mm:ss');
+ }
+ if (formData.value.fiexd_end_time) {
+ (data as any).fiexd_end_time = formData.value.fiexd_end_time.format('YYYY-MM-DD HH:mm:ss');
+ }
await saveClassroomApi(data);
message.success(isEdit.value ? '更新成功' : '创建成功');
router.back();
@@ -93,6 +106,8 @@ const fetchDetail = async () => {
teacher_id: data.teacher_id,
description: data.description || '',
status: data.status !== undefined ? data.status : 1,
+ fiexd_start_time: (data as any).fiexd_start_time ? dayjs((data as any).fiexd_start_time) : null,
+ fiexd_end_time: (data as any).fiexd_end_time ? dayjs((data as any).fiexd_end_time) : null,
};
} else {
message.error(res?.message || res?.msg || '获取教室详情失败');
@@ -141,6 +156,17 @@ const fetchTeacherList = async () => {
}
};
+// 验证选座结束时间
+const validateEndTime = (_rule: any, value: Dayjs | null) => {
+ return new Promise((resolve, reject) => {
+ if (value && formData.value.fiexd_start_time && value.isBefore(formData.value.fiexd_start_time)) {
+ reject('选座结束时间必须晚于开始时间');
+ } else {
+ resolve();
+ }
+ });
+};
+
onMounted(() => {
fetchSchoolList();
fetchTeacherList();
@@ -253,6 +279,35 @@ onMounted(() => {
+
+
+
+
+
+
启用
diff --git a/apps/web-antd/src/views/classroom/list.vue b/apps/web-antd/src/views/classroom/list.vue
index 3cdc6ff..1bb52e9 100644
--- a/apps/web-antd/src/views/classroom/list.vue
+++ b/apps/web-antd/src/views/classroom/list.vue
@@ -9,9 +9,16 @@ import {
batchDeleteClassroomApi,
getClassroomSeatListApi,
getClassroomDetailApi,
+ getClassroomSchoolListApi,
+ getClassroomStatusApi,
+ cancelBookingApi,
+ cancelBookingAutoApi,
+ assignSeatApi,
+ getUnassignedStudentsApi,
type ClassroomApi
} from '#/api';
import SeatLayoutEditor from '#/components/classroom/SeatLayoutEditor.vue';
+import * as XLSX from 'xlsx-js-style';
defineOptions({ name: 'ClassroomList' });
@@ -41,10 +48,13 @@ const seatListPagination = reactive({
current: 1,
pageSize: 10,
});
+const selectedSeatKeys = ref([]);
const layoutVisible = ref(false);
const layoutLoading = ref(false);
const currentClassroomId = ref(null);
const currentLayout = ref(null);
+const schoolList = ref>([]);
+const schoolListLoading = ref(false);
const columns = [
{
@@ -59,27 +69,32 @@ const columns = [
key: 'name',
},
{
- title: '楼栋',
- dataIndex: 'building',
- key: 'building',
+ title: '校区',
+ dataIndex: 'school_name',
+ key: 'school_name',
customRender: ({ record }: { record: ClassroomApi.ClassroomInfo }) => {
- return record.location?.building || record.building || '-';
+ return (record as any).school_name || '-';
},
},
{
- title: '楼层',
- dataIndex: 'floor',
- key: 'floor',
+ title: '地址',
+ dataIndex: 'address',
+ key: 'address',
customRender: ({ record }: { record: ClassroomApi.ClassroomInfo }) => {
- return record.location?.floor || record.floor || '-';
- },
- },
- {
- title: '房间号',
- dataIndex: 'room',
- key: 'room',
- customRender: ({ record }: { record: ClassroomApi.ClassroomInfo }) => {
- return record.location?.room || '-';
+ const building = record.location?.building || record.building || '';
+ const floor = record.location?.floor || record.floor || '';
+ const room = record.location?.room || '';
+ const addressParts: string[] = [];
+ if (building && building.trim() !== '') {
+ addressParts.push(building);
+ }
+ if (floor && floor.trim() !== '') {
+ addressParts.push(`${floor}层`);
+ }
+ if (room && room.trim() !== '') {
+ addressParts.push(`${room}号`);
+ }
+ return addressParts.length > 0 ? addressParts.join('') : '-';
},
},
{
@@ -213,10 +228,23 @@ const handleViewStatus = async (record: ClassroomApi.ClassroomInfo) => {
}
seatListVisible.value = true;
+ currentClassroomId.value = record.id;
currentClassroomName.value = record.name || '';
seatListLoading.value = true;
seatListData.value = [];
+ // 同时加载布局数据,以便导出布局
+ currentLayout.value = null;
+ try {
+ const layoutRes = await getClassroomDetailApi({ id: record.id });
+ if (layoutRes && (layoutRes.code === 0 || layoutRes.code === 200)) {
+ const data = layoutRes.data || layoutRes;
+ currentLayout.value = data.layout || null;
+ }
+ } catch (error) {
+ console.warn('获取教室布局失败:', error);
+ }
+
try {
const res = await getClassroomSeatListApi({ id: record.id });
if (res && (res.code === 0 || res.code === 200)) {
@@ -288,6 +316,273 @@ const handleLayoutSaved = (layout: ClassroomApi.ClassroomLayout) => {
// handleCloseLayout();
};
+// 导出座位布局为Excel
+const handleExportLayout = async () => {
+ if (!currentLayout.value || !currentClassroomId.value) {
+ message.warning('没有布局数据可导出');
+ return;
+ }
+
+ try {
+ // 获取座位状态数据
+ let seatStatusMap = new Map();
+ try {
+ const statusRes = await getClassroomSeatListApi({ id: currentClassroomId.value });
+ if (statusRes && (statusRes.code === 0 || statusRes.code === 200)) {
+ const seatList = Array.isArray(statusRes.data) ? statusRes.data : [];
+ seatList.forEach((seat: ClassroomApi.SeatInfo) => {
+ if (seat.is_selected === 1 && seat.seat_number) {
+ seatStatusMap.set(seat.seat_number, {
+ name: seat.student_name || '',
+ date: seat.select_time || '',
+ });
+ }
+ });
+ }
+ } catch (error) {
+ console.warn('获取座位状态失败,将只导出布局信息:', error);
+ }
+
+ const layout = currentLayout.value;
+ const cols = layout.cols || 0;
+ const rows = layout.rows || 0;
+ const cells = layout.cells || [];
+
+ if (cols === 0 || rows === 0) {
+ message.warning('布局数据为空,无法导出');
+ return;
+ }
+
+ // 创建单元格映射
+ const cellMap = new Map();
+ cells.forEach((cell) => {
+ const key = `${cell.col},${cell.row}`;
+ cellMap.set(key, cell);
+ });
+
+ // 先创建数据数组
+ const data: any[][] = [];
+
+ // 第一行:列标题(空单元格 + A, B, C...)
+ const headerRow: any[] = [''];
+ for (let col = 0; col < cols; col++) {
+ // 处理超过26列的情况(AA, AB, AC...)
+ let colChar = '';
+ if (col < 26) {
+ colChar = String.fromCharCode(65 + col); // A-Z
+ } else {
+ const first = Math.floor(col / 26) - 1;
+ const second = col % 26;
+ colChar = String.fromCharCode(65 + first) + String.fromCharCode(65 + second);
+ }
+ headerRow.push(colChar);
+ }
+ data.push(headerRow);
+
+ // 填充数据行
+ for (let row = 0; row < rows; row++) {
+ const dataRow: any[] = [row + 1]; // 行号
+ for (let col = 0; col < cols; col++) {
+ const key = `${col},${row}`;
+ const cell = cellMap.get(key);
+
+ if (!cell || cell.merged) {
+ // 被合并的单元格或空白单元格
+ dataRow.push('');
+ } else {
+ let cellValue = '';
+
+ if (cell.type === 'seat') {
+ const seatNumber = cell.number || '';
+ const status = cell.status === 0 ? '不可选' : '';
+ const seatStatus = seatStatusMap.get(seatNumber);
+
+ if (seatStatus) {
+ // 已预订:编号、姓名、日期
+ cellValue = `${seatNumber} ${seatStatus.name} ${seatStatus.date}`;
+ } else if (status === '不可选') {
+ // 不可选
+ cellValue = `${seatNumber} 不可选`;
+ } else {
+ // 空闲
+ cellValue = `${seatNumber} 空闲`;
+ }
+ } else if (cell.type === 'aisle') {
+ cellValue = '过道';
+ } else if (cell.type === 'projector') {
+ cellValue = '投影';
+ } else if (cell.type === 'pillar') {
+ cellValue = '柱子';
+ } else if (cell.type === 'door') {
+ cellValue = '门';
+ } else {
+ // empty
+ cellValue = '';
+ }
+
+ dataRow.push(cellValue);
+ }
+ }
+ data.push(dataRow);
+ }
+
+ // 使用 aoa_to_sheet 创建工作表
+ const ws = XLSX.utils.aoa_to_sheet(data);
+
+ // 设置样式
+ const range = XLSX.utils.decode_range(ws['!ref'] || 'A1');
+
+ // 定义边框样式(所有单元格统一使用)
+ const borderStyle = {
+ top: { style: 'thin', color: { rgb: '000000' } },
+ bottom: { style: 'thin', color: { rgb: '000000' } },
+ left: { style: 'thin', color: { rgb: '000000' } },
+ right: { style: 'thin', color: { rgb: '000000' } },
+ };
+
+ // 设置列标题样式
+ for (let c = 0; c <= range.e.c; c++) {
+ const cellRef = XLSX.utils.encode_cell({ r: 0, c });
+ if (!ws[cellRef]) ws[cellRef] = { v: '', t: 's' };
+ if (c === 0) {
+ // 行号列标题
+ ws[cellRef].s = {
+ fill: { fgColor: { rgb: 'F6FFED' } },
+ font: { bold: true },
+ alignment: { horizontal: 'center', vertical: 'center' },
+ border: borderStyle,
+ };
+ } else {
+ // 列标题
+ ws[cellRef].s = {
+ fill: { fgColor: { rgb: 'E6F7FF' } },
+ font: { bold: true, color: { rgb: '1890FF' } },
+ alignment: { horizontal: 'center', vertical: 'center' },
+ border: borderStyle,
+ };
+ }
+ }
+
+ // 设置行号列样式
+ for (let r = 1; r <= range.e.r; r++) {
+ const cellRef = XLSX.utils.encode_cell({ r, c: 0 });
+ if (!ws[cellRef]) ws[cellRef] = { v: r, t: 'n' };
+ ws[cellRef].s = {
+ fill: { fgColor: { rgb: 'F6FFED' } },
+ font: { bold: true, color: { rgb: '52C41A' } },
+ alignment: { horizontal: 'center', vertical: 'center' },
+ border: borderStyle,
+ };
+ }
+
+ // 设置数据单元格样式
+ for (let r = 1; r <= range.e.r; r++) {
+ for (let c = 1; c <= range.e.c; c++) {
+ const cellRef = XLSX.utils.encode_cell({ r, c });
+ if (!ws[cellRef]) continue;
+
+ const key = `${c - 1},${r - 1}`;
+ const cell = cellMap.get(key);
+
+ if (!cell || cell.merged) {
+ ws[cellRef].s = {
+ fill: { fgColor: { rgb: 'FFFFFF' } },
+ alignment: { horizontal: 'center', vertical: 'center' },
+ border: borderStyle,
+ };
+ } else {
+ let cellStyle: any = {
+ alignment: { horizontal: 'center', vertical: 'center', wrapText: true },
+ border: borderStyle,
+ };
+
+ if (cell.type === 'seat') {
+ const seatNumber = cell.number || '';
+ const status = cell.status === 0 ? '不可选' : '';
+ const seatStatus = seatStatusMap.get(seatNumber);
+
+ if (seatStatus) {
+ // 已预订(蓝色背景)
+ cellStyle.fill = { fgColor: { rgb: '4472C4' } };
+ cellStyle.font = { color: { rgb: 'FFFFFF' }, bold: true };
+ } else if (status === '不可选') {
+ // 不可选(红色背景)
+ cellStyle.fill = { fgColor: { rgb: 'FF0000' } };
+ cellStyle.font = { color: { rgb: 'FFFFFF' }, bold: true };
+ } else {
+ // 空闲(绿色背景)
+ cellStyle.fill = { fgColor: { rgb: '70AD47' } };
+ cellStyle.font = { color: { rgb: 'FFFFFF' }, bold: true };
+ }
+ } else if (cell.type === 'aisle') {
+ cellStyle.fill = { fgColor: { rgb: 'FFC000' } };
+ cellStyle.font = { color: { rgb: 'FFFFFF' }, bold: true };
+ } else if (cell.type === 'projector') {
+ cellStyle.fill = { fgColor: { rgb: '00B0F0' } };
+ cellStyle.font = { color: { rgb: 'FFFFFF' }, bold: true };
+ } else if (cell.type === 'pillar') {
+ cellStyle.fill = { fgColor: { rgb: '808080' } };
+ cellStyle.font = { color: { rgb: 'FFFFFF' }, bold: true };
+ } else if (cell.type === 'door') {
+ cellStyle.fill = { fgColor: { rgb: '1890FF' } };
+ cellStyle.font = { color: { rgb: 'FFFFFF' }, bold: true };
+ } else {
+ // empty
+ cellStyle.fill = { fgColor: { rgb: 'FFFFFF' } };
+ }
+
+ ws[cellRef].s = cellStyle;
+ }
+ }
+ }
+
+ // 设置列宽(统一为10)
+ ws['!cols'] = [{ wch: 10 }]; // 行号列
+ for (let i = 0; i < cols; i++) {
+ ws['!cols'].push({ wch: 10 });
+ }
+
+ // 设置行高(加倍高度,便于阅读)
+ ws['!rows'] = [{ hpt: 40 }]; // 标题行
+ for (let i = 0; i < rows; i++) {
+ ws['!rows'].push({ hpt: 60 });
+ }
+
+ // 设置合并单元格(如果有)
+ const merges: any[] = [];
+ cells.forEach((cell) => {
+ if (!cell.merged) {
+ const colspan = cell.colspan || 1;
+ const rowspan = cell.rowspan || 1;
+ if (colspan > 1 || rowspan > 1) {
+ // Excel合并单元格:结束位置 = 起始位置 + 跨度 - 1
+ // 注意:Excel的行列从0开始,但我们的数据从1开始(因为有标题行)
+ merges.push({
+ s: { r: cell.row + 1, c: cell.col + 1 },
+ e: { r: cell.row + rowspan, c: cell.col + colspan },
+ });
+ }
+ }
+ });
+ if (merges.length > 0) {
+ ws['!merges'] = merges;
+ }
+
+ // 创建工作簿并添加工作表
+ const wb = XLSX.utils.book_new();
+ XLSX.utils.book_append_sheet(wb, ws, '座位布局');
+
+ // 导出文件
+ const fileName = `${currentClassroomName.value || '教室'}_座位布局_${new Date().toISOString().slice(0, 10)}.xlsx`;
+ XLSX.writeFile(wb, fileName);
+
+ message.success('导出成功');
+ } catch (error: any) {
+ console.error('导出失败:', error);
+ message.error(error?.message || '导出失败');
+ }
+};
+
// 处理座位列表分页变化
const handleSeatListTableChange = (pag: any) => {
if (pag) {
@@ -296,6 +591,214 @@ const handleSeatListTableChange = (pag: any) => {
}
};
+// 取消选座
+const handleCancelBooking = async (record: ClassroomApi.SeatInfo) => {
+ if (!currentClassroomId.value) {
+ message.error('教室ID不存在');
+ return;
+ }
+
+ // 如果没有booking_id,尝试通过座位号取消
+ let bookingId = record.booking_id;
+
+ // 如果没有booking_id,尝试通过座位状态API获取
+ if (!bookingId && record.is_selected === 1) {
+ try {
+ const statusRes = await getClassroomStatusApi({ id: currentClassroomId.value });
+ if (statusRes && (statusRes.code === 0 || statusRes.code === 200)) {
+ const statusData = statusRes.data || statusRes;
+ // 查找对应座位的预订ID
+ if (Array.isArray(statusData)) {
+ const seatStatus = statusData.find((item: any) => item.seat_number === record.seat_number);
+ if (seatStatus && seatStatus.booking_id) {
+ bookingId = seatStatus.booking_id;
+ }
+ } else if (statusData.seats && Array.isArray(statusData.seats)) {
+ const seatStatus = statusData.seats.find((item: any) => item.seat_number === record.seat_number);
+ if (seatStatus && seatStatus.booking_id) {
+ bookingId = seatStatus.booking_id;
+ }
+ }
+ }
+ } catch (error) {
+ console.warn('获取座位状态失败:', error);
+ }
+ }
+
+ Modal.confirm({
+ title: '确认取消选座',
+ content: `确定要取消座位 ${record.seat_number} 的选座吗?`,
+ onOk: async () => {
+ try {
+ // 优先使用booking_id,如果没有则使用seat_number
+ if (bookingId) {
+ await cancelBookingApi({ id: bookingId });
+ } else {
+ // 尝试使用座位号取消
+ await cancelBookingApi({
+ seat_number: record.seat_number,
+ classroomId: currentClassroomId.value
+ });
+ }
+ message.success('取消选座成功');
+ // 重新加载座位列表
+ if (currentClassroomId.value) {
+ const res = await getClassroomSeatListApi({ id: currentClassroomId.value });
+ if (res && (res.code === 0 || res.code === 200)) {
+ seatListData.value = Array.isArray(res.data) ? res.data : [];
+ selectedSeatKeys.value = [];
+ }
+ }
+ } catch (error: any) {
+ console.error('取消选座失败:', error);
+ message.error(error?.response?.data?.message || error?.message || '取消选座失败');
+ }
+ },
+ });
+};
+
+// 批量取消选座
+const handleBatchCancelBooking = () => {
+ if (selectedSeatKeys.value.length === 0) {
+ message.warning('请选择要取消的座位');
+ return;
+ }
+
+ // 获取选中的已选座位
+ const selectedSeats = seatListData.value.filter(
+ (seat) => selectedSeatKeys.value.includes(seat.seat_number) && seat.is_selected === 1 && seat.booking_id
+ );
+
+ if (selectedSeats.length === 0) {
+ message.warning('请选择已选座的座位');
+ return;
+ }
+
+ const bookingIds = selectedSeats.map((seat) => seat.booking_id!).filter((id) => id);
+
+ if (bookingIds.length === 0) {
+ message.warning('选中的座位中没有有效的预订ID');
+ return;
+ }
+
+ Modal.confirm({
+ title: '确认批量取消选座',
+ content: `确定要取消 ${bookingIds.length} 个座位的选座吗?`,
+ onOk: async () => {
+ try {
+ await cancelBookingAutoApi({ ids: bookingIds });
+ message.success('批量取消选座成功');
+ // 重新加载座位列表
+ if (currentClassroomId.value) {
+ const res = await getClassroomSeatListApi({ id: currentClassroomId.value });
+ if (res && (res.code === 0 || res.code === 200)) {
+ seatListData.value = Array.isArray(res.data) ? res.data : [];
+ selectedSeatKeys.value = [];
+ }
+ }
+ } catch (error: any) {
+ console.error('批量取消选座失败:', error);
+ message.error(error?.response?.data?.message || error?.message || '批量取消选座失败');
+ }
+ },
+ });
+};
+
+// 分配座位相关
+const assignSeatVisible = ref(false);
+const assignSeatRecord = ref(null);
+const unassignedStudents = ref>([]);
+const unassignedStudentsLoading = ref(false);
+const selectedStudentId = ref(undefined);
+
+// 打开分配座位弹窗
+const handleAssignSeat = async (record: ClassroomApi.SeatInfo) => {
+ if (!currentClassroomId.value) {
+ message.error('教室ID不存在');
+ return;
+ }
+
+ assignSeatRecord.value = record;
+ assignSeatVisible.value = true;
+ selectedStudentId.value = undefined;
+ unassignedStudents.value = [];
+ unassignedStudentsLoading.value = true;
+
+ try {
+ const res = await getUnassignedStudentsApi({ classroomId: currentClassroomId.value });
+ if (res && (res.code === 0 || res.code === 200)) {
+ const data = res.data || res;
+ unassignedStudents.value = Array.isArray(data) ? data : [];
+ if (unassignedStudents.value.length === 0) {
+ message.warning('没有未分配座位的学生');
+ }
+ } else {
+ message.error(res?.message || res?.msg || '获取学生列表失败');
+ unassignedStudents.value = [];
+ }
+ } catch (error: any) {
+ console.error('获取学生列表失败:', error);
+ message.error(error?.response?.data?.message || error?.message || '获取学生列表失败');
+ unassignedStudents.value = [];
+ } finally {
+ unassignedStudentsLoading.value = false;
+ }
+};
+
+// 确认分配座位
+const handleConfirmAssignSeat = async () => {
+ if (!assignSeatRecord.value || !selectedStudentId.value || !currentClassroomId.value) {
+ message.warning('请选择学生');
+ return;
+ }
+
+ if (!currentLayout.value) {
+ message.error('布局数据不存在,无法分配座位');
+ return;
+ }
+
+ // 从布局数据中找到座位的row和col
+ const seatNumber = assignSeatRecord.value.seat_number;
+ const cells = currentLayout.value.cells || [];
+ const seatCell = cells.find((cell) => cell.type === 'seat' && cell.number === seatNumber);
+
+ if (!seatCell) {
+ message.error('找不到对应的座位信息');
+ return;
+ }
+
+ try {
+ await assignSeatApi({
+ classroomId: currentClassroomId.value,
+ studentId: selectedStudentId.value,
+ row: seatCell.row,
+ col: seatCell.col,
+ number: seatNumber,
+ });
+ message.success('分配座位成功');
+ assignSeatVisible.value = false;
+ assignSeatRecord.value = null;
+ selectedStudentId.value = undefined;
+
+ // 重新加载座位列表
+ const res = await getClassroomSeatListApi({ id: currentClassroomId.value });
+ if (res && (res.code === 0 || res.code === 200)) {
+ seatListData.value = Array.isArray(res.data) ? res.data : [];
+ }
+ } catch (error: any) {
+ console.error('分配座位失败:', error);
+ message.error(error?.response?.data?.message || error?.message || '分配座位失败');
+ }
+};
+
+// 关闭分配座位弹窗
+const handleCloseAssignSeat = () => {
+ assignSeatVisible.value = false;
+ assignSeatRecord.value = null;
+ selectedStudentId.value = undefined;
+ unassignedStudents.value = [];
+};
+
// 导出座位列表
const handleExportSeatList = () => {
if (seatListData.value.length === 0) {
@@ -345,7 +848,28 @@ const handleExportSeatList = () => {
message.success('导出成功');
};
+// 获取校区列表
+const fetchSchoolList = async () => {
+ schoolListLoading.value = true;
+ try {
+ const res = await getClassroomSchoolListApi();
+ if (Array.isArray(res)) {
+ schoolList.value = res;
+ } else if (res && (res.code === 0 || res.code === 200)) {
+ schoolList.value = Array.isArray(res.data) ? res.data : [];
+ } else {
+ schoolList.value = [];
+ }
+ } catch (error) {
+ console.error('获取校区列表失败:', error);
+ schoolList.value = [];
+ } finally {
+ schoolListLoading.value = false;
+ }
+};
+
onMounted(() => {
+ fetchSchoolList();
fetchData();
});
@@ -367,6 +891,27 @@ onMounted(() => {
style="width: 200px"
@press-enter="handleSearch"
/>
+
+
+ {{ item.name || `校区 ${item.id}` }}
+
+
{
@cancel="handleCloseSeatList"
>
-
- 导出
-
+
+
+ 导出布局
+
+
+ 导出
+
+
{
{{ record.select_time || '-' }}
+
+
+
+ 取消
+
+
+ 分配
+
+
+
+
+
+
+
+ 座位号: {{ assignSeatRecord?.seat_number }}
+
+
+ 选择学生:
+
+
+
+ {{ student.name }} ({{ student.phone || '' }})
+
+
+
+
+
+ 取消
+
+ 确认分配
+
+
+
+
+
>({
name: '',
@@ -29,18 +24,7 @@ const formData = ref>({
description: '',
});
-// 账号管理相关
-const accountList = ref([]);
-const accountFormData = ref>({
- username: '',
- password: '',
- status: 1,
-});
-const accountModalVisible = ref(false);
-const isAccountEdit = ref(false);
-
const isEdit = computed(() => !!route.params.id);
-const schoolId = computed(() => isEdit.value ? Number(route.params.id) : 0);
const handleSubmit = async () => {
try {
@@ -92,114 +76,9 @@ const fetchDetail = async () => {
}
};
-// 账号管理相关方法
-const accountColumns = [
- {
- title: 'ID',
- dataIndex: 'id',
- key: 'id',
- width: 80,
- },
- {
- title: '用户名',
- dataIndex: 'username',
- key: 'username',
- },
- {
- title: '状态',
- dataIndex: 'status',
- key: 'status',
- width: 100,
- },
- {
- title: '操作',
- key: 'action',
- width: 200,
- },
-];
-
-const fetchAccountList = async () => {
- if (!isEdit.value) return;
- accountLoading.value = true;
- try {
- const res = await getSchoolAccountListApi({ school_id: schoolId.value });
- // 支持 code 为 0 或 200 的成功响应
- if (res && (res.code === 0 || res.code === 200)) {
- // 根据实际返回格式,数据在 res.data 数组中
- const data = Array.isArray(res.data) ? res.data : [];
- accountList.value = data;
- } else {
- accountList.value = [];
- }
- } catch (error) {
- console.error('获取账号列表失败:', error);
- accountList.value = [];
- } finally {
- accountLoading.value = false;
- }
-};
-
-const handleAddAccount = () => {
- isAccountEdit.value = false;
- accountFormData.value = {
- username: '',
- password: '',
- status: 1,
- };
- accountModalVisible.value = true;
-};
-
-const handleEditAccount = (record: SchoolApi.AccountInfo) => {
- isAccountEdit.value = true;
- accountFormData.value = {
- id: record.id,
- username: record.username || '',
- password: '', // 编辑时不显示密码
- status: record.status !== undefined ? record.status : 1,
- };
- accountModalVisible.value = true;
-};
-
-const handleDeleteAccount = (record: SchoolApi.AccountInfo) => {
- Modal.confirm({
- title: '确认删除',
- content: `确定要删除账号"${record.username}"吗?`,
- onOk: async () => {
- try {
- await deleteSchoolAccountApi({ id: record.id! });
- message.success('删除成功');
- fetchAccountList();
- } catch (error) {
- console.error('删除失败:', error);
- }
- },
- });
-};
-
-const handleAccountSubmit = async () => {
- try {
- await accountFormRef.value.validate();
- accountLoading.value = true;
- const data = {
- ...accountFormData.value,
- school_id: schoolId.value,
- };
- await saveSchoolAccountApi(data);
- message.success(isAccountEdit.value ? '更新成功' : '创建成功');
- accountModalVisible.value = false;
- fetchAccountList();
- } catch (error: any) {
- console.error('保存账号失败:', error);
- message.error(error?.response?.data?.message || error?.response?.data?.msg || '保存账号失败');
- } finally {
- accountLoading.value = false;
- }
-};
-
onMounted(() => {
if (isEdit.value) {
fetchDetail();
- fetchAccountList();
}
});
@@ -240,78 +119,9 @@ onMounted(() => {
-
-
- 添加账号
-
-
-
-
- {{ record.status === 1 ? '启用' : '禁用' }}
-
-
-
- 编辑
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
- 留空则不修改密码
-
-
-
-
- 启用
- 禁用
-
-
-
-
diff --git a/apps/web-antd/src/views/school/list.vue b/apps/web-antd/src/views/school/list.vue
index 7bb4a0f..6494767 100644
--- a/apps/web-antd/src/views/school/list.vue
+++ b/apps/web-antd/src/views/school/list.vue
@@ -2,11 +2,14 @@
import { ref, reactive, onMounted } from 'vue';
import { useRouter } from 'vue-router';
import { Page } from '@vben/common-ui';
-import { Button, Card, Table, Space, message, Modal, Input } from 'ant-design-vue';
-import {
- getSchoolListApi,
+import { Button, Card, Table, Space, message, Modal, Input, Form, Radio } from 'ant-design-vue';
+import {
+ deleteSchoolAccountApi,
deleteSchoolApi,
- type SchoolApi
+ getSchoolAccountListApi,
+ getSchoolListApi,
+ saveSchoolAccountApi,
+ type SchoolApi
} from '#/api';
defineOptions({ name: 'SchoolList' });
@@ -58,7 +61,7 @@ const columns = [
{
title: '操作',
key: 'action',
- width: 200,
+ width: 280,
},
];
@@ -95,8 +98,8 @@ const handleSearch = () => {
};
const handleEdit = (record: SchoolApi.SchoolInfo) => {
- router.push({
- name: 'SchoolDetail',
+ router.push({
+ name: 'SchoolDetail',
params: { id: record.id }
});
};
@@ -117,6 +120,113 @@ const handleDelete = (record: SchoolApi.SchoolInfo) => {
});
};
+// 账号管理
+const accountLoading = ref(false);
+const accountModalVisible = ref(false);
+const accountFormRef = ref();
+const accountList = ref([]);
+const accountColumns = [
+ { title: 'ID', dataIndex: 'id', key: 'id', width: 80 },
+ { title: '用户名', dataIndex: 'username', key: 'username' },
+ { title: '状态', dataIndex: 'status', key: 'status', width: 100 },
+ { title: '操作', key: 'action', width: 200 },
+];
+const currentSchool = ref(null);
+const isAccountEdit = ref(false);
+const accountFormData = ref>({
+ username: '',
+ password: '',
+ status: 1,
+});
+
+const fetchAccountList = async (schoolId: number) => {
+ accountLoading.value = true;
+ try {
+ const res = await getSchoolAccountListApi({ school_id: schoolId });
+ if (res && (res.code === 0 || res.code === 200)) {
+ accountList.value = Array.isArray(res.data) ? res.data : [];
+ } else {
+ accountList.value = [];
+ }
+ } catch (error) {
+ console.error('获取账号列表失败:', error);
+ accountList.value = [];
+ } finally {
+ accountLoading.value = false;
+ }
+};
+
+const openAccountModal = (record: SchoolApi.SchoolInfo) => {
+ currentSchool.value = record;
+ isAccountEdit.value = false;
+ accountFormData.value = {
+ username: '',
+ password: '',
+ status: 1,
+ };
+ fetchAccountList(record.id!);
+ accountModalVisible.value = true;
+};
+
+const handleAddAccount = () => {
+ isAccountEdit.value = false;
+ accountFormData.value = {
+ username: '',
+ password: '',
+ status: 1,
+ };
+};
+
+const handleEditAccount = (record: SchoolApi.AccountInfo) => {
+ isAccountEdit.value = true;
+ accountFormData.value = {
+ id: record.id,
+ username: record.username || '',
+ password: '',
+ status: record.status !== undefined ? record.status : 1,
+ };
+};
+
+const handleDeleteAccount = (record: SchoolApi.AccountInfo) => {
+ Modal.confirm({
+ title: '确认删除',
+ content: `确定要删除账号"${record.username}"吗?`,
+ onOk: async () => {
+ if (!record.id) return;
+ try {
+ await deleteSchoolAccountApi({ id: record.id });
+ message.success('删除成功');
+ if (currentSchool.value?.id) {
+ fetchAccountList(currentSchool.value.id);
+ }
+ } catch (error) {
+ console.error('删除失败:', error);
+ }
+ },
+ });
+};
+
+const handleAccountSubmit = async () => {
+ if (!currentSchool.value?.id) return;
+ try {
+ await accountFormRef.value.validate();
+ accountLoading.value = true;
+ const data = {
+ ...accountFormData.value,
+ school_id: currentSchool.value.id,
+ };
+ await saveSchoolAccountApi(data);
+ message.success(isAccountEdit.value ? '更新成功' : '创建成功');
+ fetchAccountList(currentSchool.value.id);
+ accountModalVisible.value = false;
+ } catch (error: any) {
+ console.error('保存账号失败:', error);
+ message.error(error?.response?.data?.message || error?.response?.data?.msg || '保存账号失败');
+ } finally {
+ accountLoading.value = false;
+ }
+};
+
const handleTableChange = (pag: any) => {
pagination.current = pag.current;
pagination.pageSize = pag.pageSize;
@@ -171,6 +281,7 @@ onMounted(() => {
+ 账号管理
编辑
删除
@@ -178,6 +289,74 @@ onMounted(() => {
+
+
+
+ 新增账号
+
+
+
+
+ {{ record.status === 1 ? '启用' : '禁用' }}
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+ 留空则不修改密码
+
+
+
+
+ 启用
+ 禁用
+
+
+
+
diff --git a/apps/web-antd/src/views/student/detail.vue b/apps/web-antd/src/views/student/detail.vue
index 8cc999f..345f3cb 100644
--- a/apps/web-antd/src/views/student/detail.vue
+++ b/apps/web-antd/src/views/student/detail.vue
@@ -19,7 +19,6 @@ const loading = ref(false);
const classList = ref([]);
const classListLoading = ref(false);
const formData = ref>({
- student_id: '',
name: '',
gender: undefined,
class_id: undefined,
@@ -124,14 +123,14 @@ onMounted(() => {
:wrapper-col="{ span: 20 }"
>
('');
const selectedClassId = ref(undefined);
const classList = ref([]);
const fileList = ref([]);
+const classListLoading = ref(false);
// 获取班级列表
const fetchClassList = async () => {
+ classListLoading.value = true;
try {
const res = await getClassListApi({ page: 1, limit: 1000 });
if (res && (res.code === 0 || res.code === 200)) {
@@ -196,7 +198,10 @@ const fetchClassList = async () => {
classList.value = [];
}
} catch (error) {
+ console.error('获取班级列表失败:', error);
classList.value = [];
+ } finally {
+ classListLoading.value = false;
}
};
@@ -309,6 +314,7 @@ const handleCancelImport = () => {
};
onMounted(() => {
+ fetchClassList();
fetchData();
});
@@ -339,6 +345,27 @@ onMounted(() => {
allow-clear
@press-enter="handleSearch"
/>
+
+
+ {{ item.name || `班级 ${item.id}` }}
+
+
{
server: {
proxy: {
'/api': {
- target: 'http://xz.dhdjy.com',
+ target: 'https://xz.dhdjy.com',
changeOrigin: true,
secure: true, // https 接口设为 true
ws: true,
diff --git a/doc/座位布局导出功能说明.md b/doc/座位布局导出功能说明.md
new file mode 100644
index 0000000..e17df50
--- /dev/null
+++ b/doc/座位布局导出功能说明.md
@@ -0,0 +1,74 @@
+# 座位布局导出功能说明
+
+## 功能概述
+
+在座位布局弹窗中新增了"导出"按钮,可以将座位布局导出为Excel格式文件,包含完整的布局信息和座位状态。
+
+## 功能特点
+
+1. **完整的布局信息**:导出包含所有座位、过道、柱子、投影等布局元素
+2. **座位状态显示**:
+ - **蓝色单元格**:已预订座位(显示编号、学员姓名、预订日期)
+ - **绿色单元格**:空闲座位(显示编号和"空闲"标识)
+ - **红色单元格**:不可选座位(显示编号和"不可选"标识)
+ - **橙色单元格**:过道
+ - **蓝色单元格**:投影区域
+ - **灰色单元格**:柱子
+ - **浅蓝色单元格**:门
+3. **样式美化**:Excel文件包含颜色填充、字体样式、对齐方式等
+4. **合并单元格支持**:正确导出合并的单元格
+
+## 使用方法
+
+1. 在教室列表页面,点击某个教室的"座位布局"按钮
+2. 在座位布局弹窗的右上角,点击"导 出"按钮
+3. 系统会自动生成Excel文件并下载,文件名格式:`教室名称_座位布局_日期.xlsx`
+
+## 技术实现
+
+### 依赖库
+
+- `xlsx-js-style`:用于生成带样式的Excel文件
+- `xlsx`:基础Excel处理库
+
+### 安装方式
+
+如果安装失败,可以尝试使用不同的npm源:
+
+```bash
+# 使用淘宝镜像
+pnpm add xlsx-js-style --registry https://registry.npmmirror.com
+
+# 或使用官方源
+pnpm add xlsx-js-style --registry https://registry.npmjs.org
+```
+
+### 代码位置
+
+- 导出功能实现:`apps/web-antd/src/views/classroom/list.vue`
+- 导出按钮位置:座位布局弹窗顶部右侧
+
+## 导出格式说明
+
+### Excel结构
+
+- **第一行**:列标题(A, B, C, D...)
+- **第一列**:行号(1, 2, 3, 4...)
+- **数据区域**:座位布局数据,包含颜色和样式
+
+### 单元格内容格式
+
+- **已预订座位**:`编号 学员姓名 预订日期`(蓝色背景)
+- **空闲座位**:`编号 空闲`(绿色背景)
+- **不可选座位**:`编号 不可选`(红色背景)
+- **过道**:`过道`(橙色背景)
+- **投影**:`投影`(蓝色背景)
+- **柱子**:`柱子`(灰色背景)
+- **门**:`门`(浅蓝色背景)
+
+## 注意事项
+
+1. 导出功能需要获取座位状态数据,如果获取失败,将只导出布局信息(不包含预订状态)
+2. 合并单元格会正确导出,保持与界面一致的布局
+3. Excel文件支持在Excel、WPS等软件中打开和编辑
+
diff --git a/packages/@core/base/shared/src/constants/vben.ts b/packages/@core/base/shared/src/constants/vben.ts
index 5ba78f4..6f258ba 100644
--- a/packages/@core/base/shared/src/constants/vben.ts
+++ b/packages/@core/base/shared/src/constants/vben.ts
@@ -12,7 +12,7 @@ export const VBEN_DOC_URL = 'https://doc.vben.pro';
* @zh_CN Vben Logo
*/
export const VBEN_LOGO_URL =
- 'https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp';
+ 'https://xz.dhdjy.com/uploads/banner/20251208/4327f4acabebc22064f652d18976cf33.png';
/**
* @zh_CN Vben Admin 首页地址
diff --git a/packages/@core/preferences/__tests__/__snapshots__/config.test.ts.snap b/packages/@core/preferences/__tests__/__snapshots__/config.test.ts.snap
index a3c0c31..8664e44 100644
--- a/packages/@core/preferences/__tests__/__snapshots__/config.test.ts.snap
+++ b/packages/@core/preferences/__tests__/__snapshots__/config.test.ts.snap
@@ -64,7 +64,7 @@ exports[`defaultPreferences immutability test > should not modify the config obj
"logo": {
"enable": true,
"fit": "contain",
- "source": "https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp",
+ "source": "https://xz.dhdjy.com/uploads/banner/20251208/4327f4acabebc22064f652d18976cf33.png",
},
"navigation": {
"accordion": true,
diff --git a/packages/@core/preferences/src/config.ts b/packages/@core/preferences/src/config.ts
index d9977b1..8d923fa 100644
--- a/packages/@core/preferences/src/config.ts
+++ b/packages/@core/preferences/src/config.ts
@@ -65,7 +65,7 @@ const defaultPreferences: Preferences = {
logo: {
enable: true,
fit: 'contain',
- source: 'https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp',
+ source: 'https://xz.dhdjy.com/uploads/banner/20251208/4327f4acabebc22064f652d18976cf33.png',
},
navigation: {
accordion: true,
diff --git a/packages/effects/common-ui/src/ui/authentication/login.vue b/packages/effects/common-ui/src/ui/authentication/login.vue
index bcb8f21..c30466e 100644
--- a/packages/effects/common-ui/src/ui/authentication/login.vue
+++ b/packages/effects/common-ui/src/ui/authentication/login.vue
@@ -14,7 +14,6 @@ import { useVbenForm } from '@vben-core/form-ui';
import { VbenButton, VbenCheckbox } from '@vben-core/shadcn-ui';
import Title from './auth-title.vue';
-import ThirdPartyLogin from './third-party-login.vue';
interface Props extends AuthenticationProps {
formSchema?: VbenFormSchema[];
@@ -123,14 +122,6 @@ defineExpose({
{{ $t('authentication.rememberMe') }}
-
-
- {{ $t('authentication.forgetPassword') }}
-
-
- {{ $t('authentication.mobileLogin') }}
-
-
- {{ $t('authentication.qrcodeLogin') }}
-
-
-
-
-
-
-
-
-
-
- {{ $t('authentication.accountTip') }}
-
- {{ $t('authentication.createAccount') }}
-
-
-
diff --git a/packages/effects/layouts/src/basic/copyright/copyright.vue b/packages/effects/layouts/src/basic/copyright/copyright.vue
index de49c7c..990f36b 100644
--- a/packages/effects/layouts/src/basic/copyright/copyright.vue
+++ b/packages/effects/layouts/src/basic/copyright/copyright.vue
@@ -31,18 +31,5 @@ withDefaults(defineProps(), {
>
{{ icp }}
-
-
- Copyright © {{ date }}
-
-
-
- {{ companyName }}
-
diff --git a/packages/locales/src/langs/zh-CN/authentication.json b/packages/locales/src/langs/zh-CN/authentication.json
index ade52ac..b49fe06 100644
--- a/packages/locales/src/langs/zh-CN/authentication.json
+++ b/packages/locales/src/langs/zh-CN/authentication.json
@@ -1,7 +1,7 @@
{
"welcomeBack": "欢迎回来",
- "pageTitle": "开箱即用的大型中后台管理系统",
- "pageDesc": "工程化、高性能、跨组件库的前端模版",
+ "pageTitle": "东汇达教育座位预定系统",
+ "pageDesc": "内部选座专用系统",
"loginSuccess": "登录成功",
"loginSuccessDesc": "欢迎回来",
"loginSubtitle": "请输入您的帐户信息以开始管理您的项目",
diff --git a/playground/src/api/examples/download.ts b/playground/src/api/examples/download.ts
index 0b4dcd3..a51f5da 100644
--- a/playground/src/api/examples/download.ts
+++ b/playground/src/api/examples/download.ts
@@ -8,7 +8,7 @@ import { requestClient } from '../request';
*/
async function downloadFile1() {
return requestClient.download(
- 'https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp',
+ 'https://xz.dhdjy.com/uploads/banner/20251208/4327f4acabebc22064f652d18976cf33.png',
);
}
@@ -18,7 +18,7 @@ async function downloadFile1() {
*/
async function downloadFile2() {
return requestClient.download>(
- 'https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp',
+ 'https://xz.dhdjy.com/uploads/banner/20251208/4327f4acabebc22064f652d18976cf33.png',
{
responseReturn: 'raw',
},
diff --git a/playground/src/views/demos/features/file-download/index.vue b/playground/src/views/demos/features/file-download/index.vue
index 5342141..99eefea 100644
--- a/playground/src/views/demos/features/file-download/index.vue
+++ b/playground/src/views/demos/features/file-download/index.vue
@@ -53,7 +53,7 @@ function getResponse() {
@click="
downloadFileFromImageUrl({
source:
- 'https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp',
+ 'https://xz.dhdjy.com/uploads/banner/20251208/4327f4acabebc22064f652d18976cf33.png',
fileName: 'vben-logo.png',
})
"
diff --git a/playground/src/views/examples/form/basic.vue b/playground/src/views/examples/form/basic.vue
index d0e91d3..f24d923 100644
--- a/playground/src/views/examples/form/basic.vue
+++ b/playground/src/views/examples/form/basic.vue
@@ -400,7 +400,7 @@ function handleSetFormValue() {
name: 'example.png',
status: 'done',
uid: '-1',
- url: 'https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp',
+ url: 'https://xz.dhdjy.com/uploads/banner/20251208/4327f4acabebc22064f652d18976cf33.png',
},
],
mentions: '@afc163',
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d53c628..f73577d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -27,9 +27,6 @@ catalogs:
'@eslint/js':
specifier: ^9.39.1
version: 9.39.1
- '@faker-js/faker':
- specifier: ^9.9.0
- version: 9.9.0
'@iconify/json':
specifier: ^2.2.406
version: 2.2.407
@@ -51,9 +48,6 @@ catalogs:
'@manypkg/get-packages':
specifier: ^3.0.0
version: 3.1.0
- '@nolebase/vitepress-plugin-git-changelog':
- specifier: ^2.18.0
- version: 2.18.2
'@playwright/test':
specifier: ^1.56.1
version: 1.56.1
@@ -69,9 +63,6 @@ catalogs:
'@tailwindcss/typography':
specifier: ^0.5.16
version: 0.5.19
- '@tanstack/vue-query':
- specifier: ^5.91.0
- version: 5.91.2
'@tanstack/vue-store':
specifier: ^0.8.0
version: 0.8.0
@@ -84,12 +75,6 @@ catalogs:
'@types/html-minifier-terser':
specifier: ^7.0.2
version: 7.0.2
- '@types/json-bigint':
- specifier: ^1.0.4
- version: 1.0.4
- '@types/jsonwebtoken':
- specifier: ^9.0.10
- version: 9.0.10
'@types/lodash.clonedeep':
specifier: ^4.5.9
version: 4.5.9
@@ -129,9 +114,6 @@ catalogs:
'@vee-validate/zod':
specifier: ^4.15.1
version: 4.15.1
- '@vite-pwa/vitepress':
- specifier: ^1.0.0
- version: 1.0.1
'@vitejs/plugin-vue':
specifier: ^6.0.1
version: 6.0.1
@@ -219,9 +201,6 @@ catalogs:
echarts:
specifier: ^6.0.0
version: 6.0.0
- element-plus:
- specifier: ^2.10.2
- version: 2.11.8
es-toolkit:
specifier: ^1.41.0
version: 1.41.0
@@ -285,9 +264,6 @@ catalogs:
globals:
specifier: ^16.3.0
version: 16.5.0
- h3:
- specifier: ^1.15.3
- version: 1.15.4
happy-dom:
specifier: ^17.6.3
version: 17.6.3
@@ -303,9 +279,6 @@ catalogs:
jsonc-eslint-parser:
specifier: ^2.4.1
version: 2.4.1
- jsonwebtoken:
- specifier: ^9.0.2
- version: 9.0.2
lefthook:
specifier: ^1.13.6
version: 1.13.6
@@ -315,12 +288,6 @@ catalogs:
lucide-vue-next:
specifier: ^0.553.0
version: 0.553.0
- medium-zoom:
- specifier: ^1.1.0
- version: 1.1.0
- naive-ui:
- specifier: ^2.42.0
- version: 2.43.2
nitropack:
specifier: ^2.11.13
version: 2.12.9
@@ -432,9 +399,6 @@ catalogs:
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7
- tdesign-vue-next:
- specifier: ^1.17.1
- version: 1.17.3
theme-colors:
specifier: ^0.1.0
version: 0.1.0
@@ -450,9 +414,6 @@ catalogs:
unbuild:
specifier: ^3.6.1
version: 3.6.1
- unplugin-element-plus:
- specifier: ^0.11.1
- version: 0.11.1
vee-validate:
specifier: ^4.15.1
version: 4.15.1
@@ -477,12 +438,6 @@ catalogs:
vite-plugin-vue-devtools:
specifier: ^8.0.3
version: 8.0.3
- vitepress:
- specifier: ^1.6.3
- version: 1.6.4
- vitepress-plugin-group-icons:
- specifier: ^1.6.1
- version: 1.6.5
vitest:
specifier: ^3.2.4
version: 3.2.4
@@ -630,25 +585,6 @@ importers:
specifier: 'catalog:'
version: 3.1.4(typescript@5.9.3)
- apps/backend-mock:
- dependencies:
- '@faker-js/faker':
- specifier: 'catalog:'
- version: 9.9.0
- jsonwebtoken:
- specifier: 'catalog:'
- version: 9.0.2
- nitropack:
- specifier: 'catalog:'
- version: 2.12.9
- devDependencies:
- '@types/jsonwebtoken':
- specifier: 'catalog:'
- version: 9.0.10
- h3:
- specifier: 'catalog:'
- version: 1.15.4
-
apps/web-antd:
dependencies:
'@vben/access':
@@ -711,248 +647,12 @@ importers:
vue-router:
specifier: 'catalog:'
version: 4.6.3(vue@3.5.24(typescript@5.9.3))
-
- apps/web-ele:
- dependencies:
- '@vben/access':
- specifier: workspace:*
- version: link:../../packages/effects/access
- '@vben/common-ui':
- specifier: workspace:*
- version: link:../../packages/effects/common-ui
- '@vben/constants':
- specifier: workspace:*
- version: link:../../packages/constants
- '@vben/hooks':
- specifier: workspace:*
- version: link:../../packages/effects/hooks
- '@vben/icons':
- specifier: workspace:*
- version: link:../../packages/icons
- '@vben/layouts':
- specifier: workspace:*
- version: link:../../packages/effects/layouts
- '@vben/locales':
- specifier: workspace:*
- version: link:../../packages/locales
- '@vben/plugins':
- specifier: workspace:*
- version: link:../../packages/effects/plugins
- '@vben/preferences':
- specifier: workspace:*
- version: link:../../packages/preferences
- '@vben/request':
- specifier: workspace:*
- version: link:../../packages/effects/request
- '@vben/stores':
- specifier: workspace:*
- version: link:../../packages/stores
- '@vben/styles':
- specifier: workspace:*
- version: link:../../packages/styles
- '@vben/types':
- specifier: workspace:*
- version: link:../../packages/types
- '@vben/utils':
- specifier: workspace:*
- version: link:../../packages/utils
- '@vueuse/core':
- specifier: 'catalog:'
- version: 13.9.0(vue@3.5.24(typescript@5.9.3))
- dayjs:
- specifier: 'catalog:'
- version: 1.11.19
- element-plus:
- specifier: 'catalog:'
- version: 2.11.8(vue@3.5.24(typescript@5.9.3))
- pinia:
- specifier: ^3.0.3
- version: 3.0.4(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3))
- vue:
- specifier: ^3.5.24
- version: 3.5.24(typescript@5.9.3)
- vue-router:
- specifier: 'catalog:'
- version: 4.6.3(vue@3.5.24(typescript@5.9.3))
- devDependencies:
- unplugin-element-plus:
- specifier: 'catalog:'
- version: 0.11.1(magicast@0.5.1)
-
- apps/web-naive:
- dependencies:
- '@vben/access':
- specifier: workspace:*
- version: link:../../packages/effects/access
- '@vben/common-ui':
- specifier: workspace:*
- version: link:../../packages/effects/common-ui
- '@vben/constants':
- specifier: workspace:*
- version: link:../../packages/constants
- '@vben/hooks':
- specifier: workspace:*
- version: link:../../packages/effects/hooks
- '@vben/icons':
- specifier: workspace:*
- version: link:../../packages/icons
- '@vben/layouts':
- specifier: workspace:*
- version: link:../../packages/effects/layouts
- '@vben/locales':
- specifier: workspace:*
- version: link:../../packages/locales
- '@vben/plugins':
- specifier: workspace:*
- version: link:../../packages/effects/plugins
- '@vben/preferences':
- specifier: workspace:*
- version: link:../../packages/preferences
- '@vben/request':
- specifier: workspace:*
- version: link:../../packages/effects/request
- '@vben/stores':
- specifier: workspace:*
- version: link:../../packages/stores
- '@vben/styles':
- specifier: workspace:*
- version: link:../../packages/styles
- '@vben/types':
- specifier: workspace:*
- version: link:../../packages/types
- '@vben/utils':
- specifier: workspace:*
- version: link:../../packages/utils
- '@vueuse/core':
- specifier: 'catalog:'
- version: 13.9.0(vue@3.5.24(typescript@5.9.3))
- naive-ui:
- specifier: 'catalog:'
- version: 2.43.2(vue@3.5.24(typescript@5.9.3))
- pinia:
- specifier: ^3.0.3
- version: 3.0.4(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3))
- vue:
- specifier: ^3.5.24
- version: 3.5.24(typescript@5.9.3)
- vue-router:
- specifier: 'catalog:'
- version: 4.6.3(vue@3.5.24(typescript@5.9.3))
-
- apps/web-tdesign:
- dependencies:
- '@vben/access':
- specifier: workspace:*
- version: link:../../packages/effects/access
- '@vben/common-ui':
- specifier: workspace:*
- version: link:../../packages/effects/common-ui
- '@vben/constants':
- specifier: workspace:*
- version: link:../../packages/constants
- '@vben/hooks':
- specifier: workspace:*
- version: link:../../packages/effects/hooks
- '@vben/icons':
- specifier: workspace:*
- version: link:../../packages/icons
- '@vben/layouts':
- specifier: workspace:*
- version: link:../../packages/effects/layouts
- '@vben/locales':
- specifier: workspace:*
- version: link:../../packages/locales
- '@vben/plugins':
- specifier: workspace:*
- version: link:../../packages/effects/plugins
- '@vben/preferences':
- specifier: workspace:*
- version: link:../../packages/preferences
- '@vben/request':
- specifier: workspace:*
- version: link:../../packages/effects/request
- '@vben/stores':
- specifier: workspace:*
- version: link:../../packages/stores
- '@vben/styles':
- specifier: workspace:*
- version: link:../../packages/styles
- '@vben/types':
- specifier: workspace:*
- version: link:../../packages/types
- '@vben/utils':
- specifier: workspace:*
- version: link:../../packages/utils
- '@vueuse/core':
- specifier: 'catalog:'
- version: 13.9.0(vue@3.5.24(typescript@5.9.3))
- dayjs:
- specifier: 'catalog:'
- version: 1.11.19
- es-toolkit:
- specifier: 'catalog:'
- version: 1.41.0
- pinia:
- specifier: ^3.0.3
- version: 3.0.4(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3))
- tdesign-vue-next:
- specifier: 'catalog:'
- version: 1.17.3(vue@3.5.24(typescript@5.9.3))
- vue:
- specifier: ^3.5.24
- version: 3.5.24(typescript@5.9.3)
- vue-router:
- specifier: 'catalog:'
- version: 4.6.3(vue@3.5.24(typescript@5.9.3))
-
- docs:
- dependencies:
- '@vben-core/shadcn-ui':
- specifier: workspace:*
- version: link:../packages/@core/ui-kit/shadcn-ui
- '@vben/common-ui':
- specifier: workspace:*
- version: link:../packages/effects/common-ui
- '@vben/locales':
- specifier: workspace:*
- version: link:../packages/locales
- '@vben/plugins':
- specifier: workspace:*
- version: link:../packages/effects/plugins
- '@vben/styles':
- specifier: workspace:*
- version: link:../packages/styles
- ant-design-vue:
- specifier: 'catalog:'
- version: 4.2.6(vue@3.5.24(typescript@5.9.3))
- lucide-vue-next:
- specifier: 'catalog:'
- version: 0.553.0(vue@3.5.24(typescript@5.9.3))
- medium-zoom:
- specifier: 'catalog:'
- version: 1.1.0
- reka-ui:
- specifier: 'catalog:'
- version: 2.6.0(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3))
- vitepress-plugin-group-icons:
- specifier: 'catalog:'
- version: 1.6.5(vite@5.4.21(@types/node@24.10.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1))
- devDependencies:
- '@nolebase/vitepress-plugin-git-changelog':
- specifier: 'catalog:'
- version: 2.18.2(vitepress@1.6.4(@algolia/client-search@5.44.0)(@types/node@24.10.1)(async-validator@4.2.5)(axios@1.13.2)(change-case@5.4.4)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.94.0)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.1)(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))
- '@vben/vite-config':
- specifier: workspace:*
- version: link:../internal/vite-config
- '@vite-pwa/vitepress':
- specifier: 'catalog:'
- version: 1.0.1(vite-plugin-pwa@1.1.0(vite@5.4.21(@types/node@24.10.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1))(workbox-build@7.3.0)(workbox-window@7.3.0))
- vitepress:
- specifier: 'catalog:'
- version: 1.6.4(@algolia/client-search@5.44.0)(@types/node@24.10.1)(async-validator@4.2.5)(axios@1.13.2)(change-case@5.4.4)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.94.0)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.1)(typescript@5.9.3)
- vue:
- specifier: ^3.5.24
- version: 3.5.24(typescript@5.9.3)
+ xlsx:
+ specifier: ^0.18.5
+ version: 0.18.5
+ xlsx-js-style:
+ specifier: ^1.2.0
+ version: 1.2.0
internal/lint-configs/commitlint-config:
dependencies:
@@ -1888,82 +1588,6 @@ importers:
specifier: 'catalog:'
version: 4.6.3(vue@3.5.24(typescript@5.9.3))
- playground:
- dependencies:
- '@tanstack/vue-query':
- specifier: 'catalog:'
- version: 5.91.2(vue@3.5.24(typescript@5.9.3))
- '@vben-core/menu-ui':
- specifier: workspace:*
- version: link:../packages/@core/ui-kit/menu-ui
- '@vben/access':
- specifier: workspace:*
- version: link:../packages/effects/access
- '@vben/common-ui':
- specifier: workspace:*
- version: link:../packages/effects/common-ui
- '@vben/constants':
- specifier: workspace:*
- version: link:../packages/constants
- '@vben/hooks':
- specifier: workspace:*
- version: link:../packages/effects/hooks
- '@vben/icons':
- specifier: workspace:*
- version: link:../packages/icons
- '@vben/layouts':
- specifier: workspace:*
- version: link:../packages/effects/layouts
- '@vben/locales':
- specifier: workspace:*
- version: link:../packages/locales
- '@vben/plugins':
- specifier: workspace:*
- version: link:../packages/effects/plugins
- '@vben/preferences':
- specifier: workspace:*
- version: link:../packages/preferences
- '@vben/request':
- specifier: workspace:*
- version: link:../packages/effects/request
- '@vben/stores':
- specifier: workspace:*
- version: link:../packages/stores
- '@vben/styles':
- specifier: workspace:*
- version: link:../packages/styles
- '@vben/types':
- specifier: workspace:*
- version: link:../packages/types
- '@vben/utils':
- specifier: workspace:*
- version: link:../packages/utils
- '@vueuse/core':
- specifier: 'catalog:'
- version: 13.9.0(vue@3.5.24(typescript@5.9.3))
- ant-design-vue:
- specifier: 'catalog:'
- version: 4.2.6(vue@3.5.24(typescript@5.9.3))
- dayjs:
- specifier: 'catalog:'
- version: 1.11.19
- json-bigint:
- specifier: 'catalog:'
- version: 1.0.0
- pinia:
- specifier: ^3.0.3
- version: 3.0.4(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3))
- vue:
- specifier: ^3.5.24
- version: 3.5.24(typescript@5.9.3)
- vue-router:
- specifier: 'catalog:'
- version: 4.6.3(vue@3.5.24(typescript@5.9.3))
- devDependencies:
- '@types/json-bigint':
- specifier: 'catalog:'
- version: 1.0.4
-
scripts/turbo-run:
dependencies:
'@clack/prompts':
@@ -1996,82 +1620,6 @@ importers:
packages:
- '@algolia/abtesting@1.10.0':
- resolution: {integrity: sha512-mQT3jwuTgX8QMoqbIR7mPlWkqQqBPQaPabQzm37xg2txMlaMogK/4hCiiESGdg39MlHZOVHeV+0VJuE7f5UK8A==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/autocomplete-core@1.17.7':
- resolution: {integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==}
-
- '@algolia/autocomplete-plugin-algolia-insights@1.17.7':
- resolution: {integrity: sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==}
- peerDependencies:
- search-insights: '>= 1 < 3'
-
- '@algolia/autocomplete-preset-algolia@1.17.7':
- resolution: {integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==}
- peerDependencies:
- '@algolia/client-search': '>= 4.9.1 < 6'
- algoliasearch: '>= 4.9.1 < 6'
-
- '@algolia/autocomplete-shared@1.17.7':
- resolution: {integrity: sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==}
- peerDependencies:
- '@algolia/client-search': '>= 4.9.1 < 6'
- algoliasearch: '>= 4.9.1 < 6'
-
- '@algolia/client-abtesting@5.44.0':
- resolution: {integrity: sha512-KY5CcrWhRTUo/lV7KcyjrZkPOOF9bjgWpMj9z98VA+sXzVpZtkuskBLCKsWYFp2sbwchZFTd3wJM48H0IGgF7g==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-analytics@5.44.0':
- resolution: {integrity: sha512-LKOCE8S4ewI9bN3ot9RZoYASPi8b78E918/DVPW3HHjCMUe6i+NjbNG6KotU4RpP6AhRWZjjswbOkWelUO+OoA==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-common@5.44.0':
- resolution: {integrity: sha512-1yyJm4OYC2cztbS28XYVWwLXdwpLsMG4LoZLOltVglQ2+hc/i9q9fUDZyjRa2Bqt4DmkIfezagfMrokhyH4uxQ==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-insights@5.44.0':
- resolution: {integrity: sha512-wVQWK6jYYsbEOjIMI+e5voLGPUIbXrvDj392IckXaCPvQ6vCMTXakQqOYCd+znQdL76S+3wHDo77HZWiAYKrtA==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-personalization@5.44.0':
- resolution: {integrity: sha512-lkgRjOjOkqmIkebHjHpU9rLJcJNUDMm+eVSW/KJQYLjGqykEZxal+nYJJTBbLceEU2roByP/+27ZmgIwCdf0iA==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-query-suggestions@5.44.0':
- resolution: {integrity: sha512-sYfhgwKu6NDVmZHL1WEKVLsOx/jUXCY4BHKLUOcYa8k4COCs6USGgz6IjFkUf+niwq8NCECMmTC4o/fVQOalsA==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-search@5.44.0':
- resolution: {integrity: sha512-/FRKUM1G4xn3vV8+9xH1WJ9XknU8rkBGlefruq9jDhYUAvYozKimhrmC2pRqw/RyHhPivmgZCRuC8jHP8piz4Q==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/ingestion@1.44.0':
- resolution: {integrity: sha512-5+S5ynwMmpTpCLXGjTDpeIa81J+R4BLH0lAojOhmeGSeGEHQTqacl/4sbPyDTcidvnWhaqtyf8m42ue6lvISAw==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/monitoring@1.44.0':
- resolution: {integrity: sha512-xhaTN8pXJjR6zkrecg4Cc9YZaQK2LKm2R+LkbAq+AYGBCWJxtSGlNwftozZzkUyq4AXWoyoc0x2SyBtq5LRtqQ==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/recommend@5.44.0':
- resolution: {integrity: sha512-GNcite/uOIS7wgRU1MT7SdNIupGSW+vbK9igIzMePvD2Dl8dy0O3urKPKIbTuZQqiVH1Cb84y5cgLvwNrdCj/Q==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/requester-browser-xhr@5.44.0':
- resolution: {integrity: sha512-YZHBk72Cd7pcuNHzbhNzF/FbbYszlc7JhZlDyQAchnX5S7tcemSS96F39Sy8t4O4WQLpFvUf1MTNedlitWdOsQ==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/requester-fetch@5.44.0':
- resolution: {integrity: sha512-B9WHl+wQ7uf46t9cq+vVM/ypVbOeuldVDq9OtKsX2ApL2g/htx6ImB9ugDOOJmB5+fE31/XPTuCcYz/j03+idA==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/requester-node-http@5.44.0':
- resolution: {integrity: sha512-MULm0qeAIk4cdzZ/ehJnl1o7uB5NMokg83/3MKhPq0Pk7+I0uELGNbzIfAkvkKKEYcHALemKdArtySF9eKzh/A==}
- engines: {node: '>= 14.0.0'}
-
'@alloc/quick-lru@5.2.0':
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
@@ -2087,12 +1635,6 @@ packages:
peerDependencies:
vue: ^3.5.24
- '@antfu/install-pkg@1.1.0':
- resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
-
- '@antfu/utils@9.3.0':
- resolution: {integrity: sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA==}
-
'@apideck/better-ajv-errors@0.3.6':
resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==}
engines: {node: '>=10'}
@@ -3064,16 +2606,6 @@ packages:
resolution: {integrity: sha512-Pa474iBxS+lxsAL4XkETPGIq3EgMLCEb9agj3hAd2VGMTCApaiUvamR4b+uGXIPybN70piFxvzrfoxsG2uIP6A==}
engines: {node: '>=18.0'}
- '@css-render/plugin-bem@0.15.14':
- resolution: {integrity: sha512-QK513CJ7yEQxm/P3EwsI+d+ha8kSOcjGvD6SevM41neEMxdULE+18iuQK6tEChAWMOQNQPLG/Rw3Khb69r5neg==}
- peerDependencies:
- css-render: ~0.15.14
-
- '@css-render/vue3-ssr@0.15.14':
- resolution: {integrity: sha512-//8027GSbxE9n3QlD73xFY6z4ZbHbvrOVB7AO6hsmrEzGbg+h2A09HboUyDgu+xsmj7JnvJD39Irt+2D0+iV8g==}
- peerDependencies:
- vue: ^3.5.24
-
'@csstools/cascade-layer-name-parser@2.0.5':
resolution: {integrity: sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==}
engines: {node: '>=18'}
@@ -3361,37 +2893,9 @@ packages:
resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==}
engines: {node: '>=14'}
- '@docsearch/css@3.8.2':
- resolution: {integrity: sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==}
-
- '@docsearch/js@3.8.2':
- resolution: {integrity: sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==}
-
- '@docsearch/react@3.8.2':
- resolution: {integrity: sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==}
- peerDependencies:
- '@types/react': '>= 16.8.0 < 19.0.0'
- react: '>= 16.8.0 < 19.0.0'
- react-dom: '>= 16.8.0 < 19.0.0'
- search-insights: '>= 1 < 3'
- peerDependenciesMeta:
- '@types/react':
- optional: true
- react:
- optional: true
- react-dom:
- optional: true
- search-insights:
- optional: true
-
'@dual-bundle/import-meta-resolve@4.2.1':
resolution: {integrity: sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==}
- '@element-plus/icons-vue@2.3.2':
- resolution: {integrity: sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==}
- peerDependencies:
- vue: ^3.5.24
-
'@emnapi/core@1.7.1':
resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==}
@@ -3401,9 +2905,6 @@ packages:
'@emnapi/wasi-threads@1.1.0':
resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
- '@emotion/hash@0.8.0':
- resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==}
-
'@emotion/hash@0.9.2':
resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
@@ -3610,10 +3111,6 @@ packages:
resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@faker-js/faker@9.9.0':
- resolution: {integrity: sha512-OEl393iCOoo/z8bMezRlJu+GlRGlsKbUAN7jKB6LhnKoqKve5DXRpalbItIIcwnCjs1k/FOPjFzcA6Qn+H+YbA==}
- engines: {node: '>=18.0.0', npm: '>=9.0.0'}
-
'@floating-ui/core@1.7.3':
resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==}
@@ -3642,18 +3139,6 @@ packages:
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
engines: {node: '>=18.18'}
- '@iconify-json/logos@1.2.10':
- resolution: {integrity: sha512-qxaXKJ6fu8jzTMPQdHtNxlfx6tBQ0jXRbHZIYy5Ilh8Lx9US9FsAdzZWUR8MXV8PnWTKGDFO4ZZee9VwerCyMA==}
-
- '@iconify-json/octicon@1.2.19':
- resolution: {integrity: sha512-q1a9fpyg0Cw/Bt9hEfP86eJlgKtMXzNIRQnsbPZi1MBoHlPyi056TdzV72zY/F+oJSJ8b5Ub8njL2fWs/iLJAg==}
-
- '@iconify-json/simple-icons@1.2.58':
- resolution: {integrity: sha512-XtXEoRALqztdNc9ujYBj2tTCPKdIPKJBdLNDebFF46VV1aOAwTbAYMgNsK5GMCpTJupLCmpBWDn+gX5SpECorQ==}
-
- '@iconify-json/vscode-icons@1.2.34':
- resolution: {integrity: sha512-51TK8qez3kJz103VUhvB+slZ2aaVLHemZ+m88Eki2jvfxyRF8B/B153t9IqEFeGaMNxCIkoiudhStThpJp4Vmg==}
-
'@iconify/json@2.2.407':
resolution: {integrity: sha512-GI81Sh05/31UyyIK2+hhMpzJb3PgvAJq/w6B0xgfQcTMwsWOaLL0QV50WNgoIHltt8FvqgR+BK/nOGnrTqugiQ==}
@@ -3663,9 +3148,6 @@ packages:
'@iconify/types@2.0.0':
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
- '@iconify/utils@3.0.2':
- resolution: {integrity: sha512-EfJS0rLfVuRuJRn4psJHtK2A9TqVnkxPpHY6lYHiB9+8eSuudsxbwMiavocG45ujOo6FJ+CIRlRnlOGinzkaGQ==}
-
'@iconify/vue@5.0.0':
resolution: {integrity: sha512-C+KuEWIF5nSBrobFJhT//JS87OZ++QDORB6f2q2Wm6fl2mueSTpFBeBsveK0KW9hWiZ4mNiPjsh6Zs4jjdROSg==}
peerDependencies:
@@ -3785,9 +3267,6 @@ packages:
'@jspm/import-map@1.2.2':
resolution: {integrity: sha512-QrM7+lkgVE8t9NZSm9fDSzheguEOVCOxueKxSwgoOt7yUWesWKDFmmL9bQFURl4IqMcpPz7VV2Tvw9s9emaJzQ==}
- '@juggle/resize-observer@3.4.0':
- resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==}
-
'@keyv/bigmap@1.2.0':
resolution: {integrity: sha512-4Lme8NejkyetZ9oJ6u8NSf0iJEFFt7I+tyDI48wZlaFmbhDEh4nZg7bEPFPwCWkpIuL50/ukWBC9AHQTmdJLUA==}
engines: {node: '>= 18'}
@@ -3848,17 +3327,6 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
- '@nolebase/ui@2.18.2':
- resolution: {integrity: sha512-xxfRacF9cqQ5/umMhvhr0y2W4SkhzTmrrAHJ0UAAu/pIWfV/JPE9Hj0buH06bK7ZEUur+036gxkKlStI6UtDBw==}
- peerDependencies:
- vitepress: ^1.5.0 || ^2.0.0-alpha.1
- vue: ^3.5.24
-
- '@nolebase/vitepress-plugin-git-changelog@2.18.2':
- resolution: {integrity: sha512-TT1nxP+iS+5K8OLtkEr1EZ4bhCa4iqggly0JTD7TsO01hcwzMovr0lRaxPTo/4i/0bwMiPcaKxpKJ2zJIiu4Kw==}
- peerDependencies:
- vitepress: ^1.5.0 || ^2.0.0-alpha.1
-
'@npmcli/fs@4.0.0':
resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==}
engines: {node: ^18.17.0 || >=20.5.0}
@@ -4295,30 +3763,6 @@ packages:
'@sec-ant/readable-stream@0.4.1':
resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
- '@shikijs/core@2.5.0':
- resolution: {integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==}
-
- '@shikijs/engine-javascript@2.5.0':
- resolution: {integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==}
-
- '@shikijs/engine-oniguruma@2.5.0':
- resolution: {integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==}
-
- '@shikijs/langs@2.5.0':
- resolution: {integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==}
-
- '@shikijs/themes@2.5.0':
- resolution: {integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==}
-
- '@shikijs/transformers@2.5.0':
- resolution: {integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==}
-
- '@shikijs/types@2.5.0':
- resolution: {integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==}
-
- '@shikijs/vscode-textmate@10.0.2':
- resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
-
'@simonwep/pickr@1.8.2':
resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==}
@@ -4330,10 +3774,6 @@ packages:
resolution: {integrity: sha512-rO92VvpgMc3kfiTjGT52LEtJ8Yc5kCWhZjLQ3LwlA4pSgPpQO7bVpYXParOD8Jwf+cVQECJo3yP/4I8aZtUQTQ==}
engines: {node: '>=18'}
- '@sindresorhus/merge-streams@2.3.0':
- resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
- engines: {node: '>=18'}
-
'@sindresorhus/merge-streams@4.0.0':
resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
engines: {node: '>=18'}
@@ -4353,9 +3793,6 @@ packages:
'@swc/helpers@0.5.17':
resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==}
- '@sxzz/popperjs-es@2.11.7':
- resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
-
'@tailwindcss/nesting@0.0.0-insiders.565cd3e':
resolution: {integrity: sha512-WhHoFBx19TnH/c+xLwT/sxei6+4RpdfiyG3MYXfmLaMsADmVqBkF7B6lDalgZD9YdM459MF7DtxVbWkOrV7IaQ==}
peerDependencies:
@@ -4366,28 +3803,12 @@ packages:
peerDependencies:
tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1'
- '@tanstack/match-sorter-utils@8.19.4':
- resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==}
- engines: {node: '>=12'}
-
- '@tanstack/query-core@5.90.10':
- resolution: {integrity: sha512-EhZVFu9rl7GfRNuJLJ3Y7wtbTnENsvzp+YpcAV7kCYiXni1v8qZh++lpw4ch4rrwC0u/EZRnBHIehzCGzwXDSQ==}
-
'@tanstack/store@0.8.0':
resolution: {integrity: sha512-Om+BO0YfMZe//X2z0uLF2j+75nQga6TpTJgLJQBiq85aOyZNIhkCgleNcud2KQg4k4v9Y9l+Uhru3qWMPGTOzQ==}
'@tanstack/virtual-core@3.13.12':
resolution: {integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==}
- '@tanstack/vue-query@5.91.2':
- resolution: {integrity: sha512-ReppmGrVLtiWhwHnhmGJftBbVMf0BrLWtfOk6rQs0qWrhgCei1oUiLsqTCyES/zeZVqaUTmAuUpBrLwQ4DmQTQ==}
- peerDependencies:
- '@vue/composition-api': ^1.1.2
- vue: ^3.5.24
- peerDependenciesMeta:
- '@vue/composition-api':
- optional: true
-
'@tanstack/vue-store@0.8.0':
resolution: {integrity: sha512-YLsinYboBLIjNkxDpAn1ydaMS35dKq3M3a788JRCJi4/stWcN7Swp0pxxJ+p0IwKSY4tBXx7vMz22OYWQ1QsUQ==}
peerDependencies:
@@ -4432,30 +3853,12 @@ packages:
'@types/estree@1.0.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
- '@types/hast@3.0.4':
- resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
-
'@types/html-minifier-terser@7.0.2':
resolution: {integrity: sha512-mm2HqV22l8lFQh4r2oSsOEVea+m0qqxEmwpc9kC1p/XzmjLWrReR9D/GRs8Pex2NX/imyEH9c5IU/7tMBQCHOA==}
- '@types/json-bigint@1.0.4':
- resolution: {integrity: sha512-ydHooXLbOmxBbubnA7Eh+RpBzuaIiQjh8WGJYQB50JFGFrdxW7JzVlyEV7fAXw0T2sqJ1ysTneJbiyNLqZRAag==}
-
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
- '@types/jsonwebtoken@9.0.10':
- resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==}
-
- '@types/katex@0.16.7':
- resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==}
-
- '@types/linkify-it@5.0.0':
- resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==}
-
- '@types/lodash-es@4.17.12':
- resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
-
'@types/lodash.clonedeep@4.5.9':
resolution: {integrity: sha512-19429mWC+FyaAhOLzsS8kZUsI+/GmBAQ0HFiCPsKGU+7pBXOQWhyrY6xNNDwUSX8SMZMJvuFVMF9O5dQOlQK9Q==}
@@ -4471,21 +3874,9 @@ packages:
'@types/lodash@4.17.20':
resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==}
- '@types/markdown-it@14.1.2':
- resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==}
-
- '@types/mdast@4.0.4':
- resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
-
- '@types/mdurl@2.0.0':
- resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
-
'@types/minimatch@3.0.5':
resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
- '@types/ms@2.1.0':
- resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
-
'@types/node@12.20.55':
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
@@ -4516,21 +3907,9 @@ packages:
'@types/sortablejs@1.15.9':
resolution: {integrity: sha512-7HP+rZGE2p886PKV9c9OJzLBI6BBJu1O7lJGYnPyG3fS4/duUCcngkNCjsLwIMV+WMqANe3tt4irrXHSIe68OQ==}
- '@types/tinycolor2@1.4.6':
- resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
-
'@types/trusted-types@2.0.7':
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
- '@types/unist@3.0.3':
- resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
-
- '@types/validator@13.15.9':
- resolution: {integrity: sha512-9ENIuq9PUX45M1QRtfJDprgfErED4fBiMPmjlPci4W9WiBelVtHYCjF3xkQNcSnmUeuruLS1kH6hSl5M1vz4Sw==}
-
- '@types/web-bluetooth@0.0.16':
- resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
-
'@types/web-bluetooth@0.0.21':
resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==}
@@ -4620,9 +3999,6 @@ packages:
resolution: {integrity: sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@ungap/structured-clone@1.3.0':
- resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
-
'@unrs/resolver-binding-android-arm-eabi@1.11.1':
resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==}
cpu: [arm]
@@ -4736,15 +4112,6 @@ packages:
engines: {node: '>=18'}
hasBin: true
- '@vite-pwa/vitepress@1.0.1':
- resolution: {integrity: sha512-INBxiNLZpef349KSmQ6zHWB4uqIgZgvJnwzH3bedW/7d/Ej0lK5HP95fiBdIc2wHUtmR3Znnegmt3zLESVWrpA==}
- peerDependencies:
- '@vite-pwa/assets-generator': ^1.0.0
- vite-plugin-pwa: ^1.1.0
- peerDependenciesMeta:
- '@vite-pwa/assets-generator':
- optional: true
-
'@vitejs/plugin-vue-jsx@5.1.1':
resolution: {integrity: sha512-uQkfxzlF8SGHJJVH966lFTdjM/lGcwJGzwAHpVqAPDD/QcsqoUGa+q31ox1BrUfi+FLP2ChVp7uLXE3DkHyDdQ==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -4752,13 +4119,6 @@ packages:
vite: ^5.0.0 || ^6.0.0 || ^7.0.0
vue: ^3.5.24
- '@vitejs/plugin-vue@5.2.4':
- resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==}
- engines: {node: ^18.0.0 || >=20.0.0}
- peerDependencies:
- vite: ^5.0.0 || ^6.0.0
- vue: ^3.5.24
-
'@vitejs/plugin-vue@6.0.1':
resolution: {integrity: sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -4907,50 +4267,6 @@ packages:
peerDependencies:
vue: ^3.5.24
- '@vueuse/core@9.13.0':
- resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==}
-
- '@vueuse/integrations@12.8.2':
- resolution: {integrity: sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g==}
- peerDependencies:
- async-validator: ^4
- axios: ^1
- change-case: ^5
- drauu: ^0.4
- focus-trap: ^7
- fuse.js: ^7
- idb-keyval: ^6
- jwt-decode: ^4
- nprogress: ^0.2
- qrcode: ^1.5
- sortablejs: ^1
- universal-cookie: ^7
- peerDependenciesMeta:
- async-validator:
- optional: true
- axios:
- optional: true
- change-case:
- optional: true
- drauu:
- optional: true
- focus-trap:
- optional: true
- fuse.js:
- optional: true
- idb-keyval:
- optional: true
- jwt-decode:
- optional: true
- nprogress:
- optional: true
- qrcode:
- optional: true
- sortablejs:
- optional: true
- universal-cookie:
- optional: true
-
'@vueuse/integrations@14.0.0':
resolution: {integrity: sha512-5A0X7q9qyLtM3xyghq5nK/NEESf7cpcZlkQgXTMuW4JWiAMYxc1ImdhhGrk4negFBsq3ejvAlRmLdNrkcTzk1Q==}
peerDependencies:
@@ -5002,9 +4318,6 @@ packages:
'@vueuse/metadata@14.0.0':
resolution: {integrity: sha512-6yoGqbJcMldVCevkFiHDBTB1V5Hq+G/haPlGIuaFZHpXC0HADB0EN1ryQAAceiW+ryS3niUwvdFbGiqHqBrfVA==}
- '@vueuse/metadata@9.13.0':
- resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
-
'@vueuse/motion@3.0.3':
resolution: {integrity: sha512-4B+ITsxCI9cojikvrpaJcLXyq0spj3sdlzXjzesWdMRd99hhtFI6OJ/1JsqwtF73YooLe0hUn/xDR6qCtmn5GQ==}
peerDependencies:
@@ -5023,9 +4336,6 @@ packages:
peerDependencies:
vue: ^3.5.24
- '@vueuse/shared@9.13.0':
- resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==}
-
'@vxe-ui/core@4.2.14':
resolution: {integrity: sha512-ONu8vgW8+q0SFtAoUEPZibFjlx0nzAKTqTXD9pO2AmgYCIMtYIePFLnqiHIYaYfH/dCibVZ6KGWUc/wqxnbGDw==}
peerDependencies:
@@ -5062,6 +4372,15 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
+ adler-32@1.2.0:
+ resolution: {integrity: sha512-/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+
+ adler-32@1.3.1:
+ resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==}
+ engines: {node: '>=0.8'}
+
agent-base@7.1.4:
resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
engines: {node: '>= 14'}
@@ -5094,10 +4413,6 @@ packages:
ajv@8.17.1:
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
- algoliasearch@5.44.0:
- resolution: {integrity: sha512-f8IpsbdQjzTjr/4mJ/jv5UplrtyMnnciGax6/B0OnLCs2/GJTK13O4Y7Ff1AvJVAaztanH+m5nzPoUq6EAy+aA==}
- engines: {node: '>= 14.0.0'}
-
alien-signals@0.4.14:
resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==}
@@ -5342,9 +4657,6 @@ packages:
resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==}
engines: {node: '>=8.0.0'}
- buffer-equal-constant-time@1.0.1:
- resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
-
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
@@ -5422,8 +4734,9 @@ packages:
caniuse-lite@1.0.30001755:
resolution: {integrity: sha512-44V+Jm6ctPj7R52Na4TLi3Zri4dWUljJd+RDm+j8LtNCc/ihLCT+X1TzoOAkRETEWqjuLnh9581Tl80FvK7jVA==}
- ccount@2.0.1:
- resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+ cfb@1.2.2:
+ resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==}
+ engines: {node: '>=0.8'}
chai@5.3.3:
resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==}
@@ -5444,12 +4757,6 @@ packages:
change-case@5.4.4:
resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==}
- character-entities-html4@2.1.0:
- resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
-
- character-entities-legacy@3.0.0:
- resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
-
chardet@2.1.1:
resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==}
@@ -5547,6 +4854,15 @@ packages:
resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==}
engines: {node: '>=0.10.0'}
+ codepage@1.14.0:
+ resolution: {integrity: sha512-iz3zJLhlrg37/gYRWgEPkaFTtzmnEv1h+r7NgZum2lFElYQPi0/5bnmuDfODHxfp0INEfnRqyfyeIJDbb7ahRw==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+
+ codepage@1.15.0:
+ resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==}
+ engines: {node: '>=0.8'}
+
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -5564,9 +4880,6 @@ packages:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
engines: {node: '>= 0.8'}
- comma-separated-tokens@2.0.3:
- resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
-
commander@10.0.1:
resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
engines: {node: '>=14'}
@@ -5583,6 +4896,12 @@ packages:
resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==}
engines: {node: '>=18'}
+ commander@2.14.1:
+ resolution: {integrity: sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==}
+
+ commander@2.17.1:
+ resolution: {integrity: sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -5816,9 +5135,6 @@ packages:
peerDependencies:
postcss: ^8.4
- css-render@0.15.14:
- resolution: {integrity: sha512-9nF4PdUle+5ta4W5SyZdLCCmFd37uVimSjg1evcTqKJCyvCEEj12WKzOSBNak6r4im4J4iYXKH1OWpUV5LBYFg==}
-
css-select@4.3.0:
resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
@@ -5867,9 +5183,6 @@ packages:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
- csstype@3.0.11:
- resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==}
-
csstype@3.2.2:
resolution: {integrity: sha512-D80T+tiqkd/8B0xNlbstWDG4x6aqVfO52+OlSUNIdkTvmNw0uQpJLeos2J/2XvpyidAFuTPmpad+tUxLndwj6g==}
@@ -5905,14 +5218,6 @@ packages:
dataloader@1.4.0:
resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==}
- date-fns-tz@3.2.0:
- resolution: {integrity: sha512-sg8HqoTEulcbbbVXeg84u5UnlsQa8GS5QXMqjjYIhS4abEVVKIUwe0/l/UhrZdKaL/W5eWZNlbTeEIiOXTcsBQ==}
- peerDependencies:
- date-fns: ^3.0.0 || ^4.0.0
-
- date-fns@4.1.0:
- resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==}
-
dayjs@1.11.19:
resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==}
@@ -6020,10 +5325,6 @@ packages:
deps-regex@0.2.0:
resolution: {integrity: sha512-PwuBojGMQAYbWkMXOY9Pd/NWCDNHVH12pnS7WHqZkTSeMESe4hwnKKRp0yR87g37113x4JPbo/oIvXY+s/f56Q==}
- dequal@2.0.3:
- resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
- engines: {node: '>=6'}
-
destr@2.0.5:
resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==}
@@ -6044,9 +5345,6 @@ packages:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
- devlop@1.1.0:
- resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
-
didyoumean@1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
@@ -6145,9 +5443,6 @@ packages:
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
- ecdsa-sig-formatter@1.0.11:
- resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
-
echarts@6.0.0:
resolution: {integrity: sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ==}
@@ -6167,14 +5462,6 @@ packages:
electron-to-chromium@1.5.254:
resolution: {integrity: sha512-DcUsWpVhv9svsKRxnSCZ86SjD+sp32SGidNB37KpqXJncp1mfUgKbHvBomE89WJDbfVKw1mdv5+ikrvd43r+Bg==}
- element-plus@2.11.8:
- resolution: {integrity: sha512-2wzSj2uubFU1f0t/gHkkE1d09mUgV18fSZX5excw3Ar6hyWcxph4E57U8dgYLDt7HwkKYv1BiqPyBdy0WqWlOA==}
- peerDependencies:
- vue: ^3.5.24
-
- emoji-regex-xs@1.0.0:
- resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==}
-
emoji-regex@10.6.0:
resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==}
@@ -6540,9 +5827,6 @@ packages:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'}
- evtd@0.2.4:
- resolution: {integrity: sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==}
-
execa@8.0.1:
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
engines: {node: '>=16.17'}
@@ -6551,6 +5835,10 @@ packages:
resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==}
engines: {node: ^18.19.0 || >=20.5.0}
+ exit-on-epipe@1.0.1:
+ resolution: {integrity: sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==}
+ engines: {node: '>=0.8'}
+
expand-tilde@2.0.2:
resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==}
engines: {node: '>=0.10.0'}
@@ -6562,10 +5850,6 @@ packages:
exsolve@1.0.8:
resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==}
- extend-shallow@2.0.1:
- resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
- engines: {node: '>=0.10.0'}
-
extendable-error@0.1.7:
resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
@@ -6619,6 +5903,9 @@ packages:
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
engines: {node: ^12.20 || >= 14.13}
+ fflate@0.3.11:
+ resolution: {integrity: sha512-Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A==}
+
figures@6.1.0:
resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==}
engines: {node: '>=18'}
@@ -6713,6 +6000,10 @@ packages:
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
engines: {node: '>=12.20.0'}
+ frac@1.1.2:
+ resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==}
+ engines: {node: '>=0.8'}
+
fraction.js@5.3.4:
resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==}
@@ -6893,10 +6184,6 @@ packages:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
- globby@14.1.0:
- resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==}
- engines: {node: '>=18'}
-
globby@15.0.0:
resolution: {integrity: sha512-oB4vkQGqlMl682wL1IlWd02tXCbquGWM4voPEI85QmNKCaw8zGTm1f1rubFgkg3Eli2PtKlFgrnmUqasbQWlkw==}
engines: {node: '>=20'}
@@ -6927,10 +6214,6 @@ packages:
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
- gray-matter@4.0.3:
- resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
- engines: {node: '>=6.0'}
-
gzip-size@7.0.0:
resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -6973,12 +6256,6 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
- hast-util-to-html@9.0.5:
- resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
-
- hast-util-whitespace@3.0.0:
- resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
-
he@1.2.0:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
hasBin: true
@@ -6986,10 +6263,6 @@ packages:
hey-listen@1.0.8:
resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==}
- highlight.js@11.11.1:
- resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==}
- engines: {node: '>=12.0.0'}
-
homedir-polyfill@1.0.3:
resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==}
engines: {node: '>=0.10.0'}
@@ -7017,9 +6290,6 @@ packages:
resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
engines: {node: '>=8'}
- html-void-elements@3.0.0:
- resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
-
htmlparser2@10.0.0:
resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==}
@@ -7188,10 +6458,6 @@ packages:
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
hasBin: true
- is-extendable@0.1.1:
- resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
- engines: {node: '>=0.10.0'}
-
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -7491,16 +6757,6 @@ packages:
resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==}
engines: {node: '>=0.10.0'}
- jsonwebtoken@9.0.2:
- resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==}
- engines: {node: '>=12', npm: '>=6'}
-
- jwa@1.4.2:
- resolution: {integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==}
-
- jws@3.2.2:
- resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==}
-
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
@@ -7647,13 +6903,6 @@ packages:
lodash-es@4.17.21:
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
- lodash-unified@1.0.3:
- resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==}
- peerDependencies:
- '@types/lodash-es': '*'
- lodash: '*'
- lodash-es: '*'
-
lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
@@ -7666,27 +6915,12 @@ packages:
lodash.defaults@4.2.0:
resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==}
- lodash.includes@4.3.0:
- resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==}
-
lodash.isarguments@3.1.0:
resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==}
- lodash.isboolean@3.0.3:
- resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==}
-
- lodash.isinteger@4.0.4:
- resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==}
-
- lodash.isnumber@3.0.3:
- resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==}
-
lodash.isplainobject@4.0.6:
resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
- lodash.isstring@4.0.1:
- resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
-
lodash.kebabcase@4.1.1:
resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==}
@@ -7699,9 +6933,6 @@ packages:
lodash.mergewith@4.6.2:
resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==}
- lodash.once@4.1.1:
- resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
-
lodash.snakecase@4.1.1:
resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==}
@@ -7777,9 +7008,6 @@ packages:
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
engines: {node: '>=6'}
- mark.js@8.11.1:
- resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==}
-
math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
@@ -7787,9 +7015,6 @@ packages:
mathml-tag-names@2.1.3:
resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==}
- mdast-util-to-hast@13.2.0:
- resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
-
mdn-data@2.0.28:
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
@@ -7799,12 +7024,6 @@ packages:
mdn-data@2.25.0:
resolution: {integrity: sha512-T2LPsjgUE/tgMmRXREVmwsux89DwWfNjiynOeXuLd2mX6jphGQ2YE3Ukz7LQ2VOFKiVZU/Ee1GqzHiipZCjymw==}
- medium-zoom@1.1.0:
- resolution: {integrity: sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==}
-
- memoize-one@6.0.0:
- resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
-
meow@12.1.1:
resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==}
engines: {node: '>=16.10'}
@@ -7820,21 +7039,6 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
- micromark-util-character@2.1.1:
- resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
-
- micromark-util-encode@2.0.1:
- resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
-
- micromark-util-sanitize-uri@2.0.1:
- resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
-
- micromark-util-symbol@2.0.1:
- resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
-
- micromark-util-types@2.0.2:
- resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==}
-
micromatch@4.0.8:
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
engines: {node: '>=8.6'}
@@ -7928,9 +7132,6 @@ packages:
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
engines: {node: '>=16 || 14 >=14.17'}
- minisearch@7.2.0:
- resolution: {integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==}
-
minizlib@3.1.0:
resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==}
engines: {node: '>= 18'}
@@ -7983,11 +7184,6 @@ packages:
mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
- naive-ui@2.43.2:
- resolution: {integrity: sha512-YlLMnGrwGTOc+zMj90sG3ubaH5/7czsgLgGcjTLA981IUaz8r6t4WIujNt8r9PNr+dqv6XNEr0vxkARgPPjfBQ==}
- peerDependencies:
- vue: ^3.5.24
-
nanoid@3.3.11:
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -8097,9 +7293,6 @@ packages:
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
engines: {node: '>=0.10.0'}
- normalize-wheel-es@1.2.0:
- resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
-
npm-run-path@5.3.0:
resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -8163,9 +7356,6 @@ packages:
resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
engines: {node: '>=18'}
- oniguruma-to-es@3.1.1:
- resolution: {integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==}
-
open@10.2.0:
resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==}
engines: {node: '>=18'}
@@ -8866,9 +8056,6 @@ packages:
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
engines: {node: ^10 || ^12 || >=14}
- preact@10.27.2:
- resolution: {integrity: sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg==}
-
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -8958,6 +8145,11 @@ packages:
resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==}
engines: {node: '>=18'}
+ printj@1.1.2:
+ resolution: {integrity: sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
@@ -8965,9 +8157,6 @@ packages:
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
engines: {node: '>= 0.6.0'}
- property-information@7.1.0:
- resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
-
proto-list@1.2.4:
resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
@@ -9078,15 +8267,6 @@ packages:
regenerate@1.4.2:
resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
- regex-recursion@6.0.2:
- resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==}
-
- regex-utilities@2.3.0:
- resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
-
- regex@6.0.1:
- resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==}
-
regexp-ast-analysis@0.7.1:
resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
@@ -9127,9 +8307,6 @@ packages:
resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
engines: {node: '>= 0.10'}
- remove-accents@0.5.0:
- resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==}
-
require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
@@ -9288,20 +8465,10 @@ packages:
scule@1.3.0:
resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
- search-insights@2.17.3:
- resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==}
-
- section-matter@1.0.0:
- resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
- engines: {node: '>=4'}
-
secure-ls@2.0.0:
resolution: {integrity: sha512-Wgtnw0QSm0v7gVKv11nOoeyGS65EThGXnBB7jfd4IhZd2eq3B4AMPcXAL5qJ1h55+Qolun7TONTwX7H5m6e2pQ==}
engines: {node: '>=8.0'}
- seemly@0.3.10:
- resolution: {integrity: sha512-2+SMxtG1PcsL0uyhkumlOU6Qo9TAQ/WyH7tthnPIOQB05/12jz9naq6GZ6iZ6ApVsO3rr2gsnTf3++OV63kE1Q==}
-
select@1.1.2:
resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==}
@@ -9369,9 +8536,6 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
- shiki@2.5.0:
- resolution: {integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==}
-
short-tree@3.0.0:
resolution: {integrity: sha512-Yd9NFs/o9QSoH4/wTjxk4Xe0+CIzitDRN1Qg7iBeTSejKjlCg/3PbgiRwDUVuaIxD0RRdv7Iz9jKr7e0HljtUg==}
engines: {node: ^14.13.1 || >=16.0.0}
@@ -9456,9 +8620,6 @@ packages:
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
deprecated: Please use @jridgewell/sourcemap-codec instead
- space-separated-tokens@2.0.2:
- resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
-
spawndamnit@3.0.1:
resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==}
@@ -9482,6 +8643,10 @@ packages:
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ ssf@0.11.2:
+ resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==}
+ engines: {node: '>=0.8'}
+
ssri@12.0.0:
resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==}
engines: {node: ^18.17.0 || >=20.5.0}
@@ -9556,9 +8721,6 @@ packages:
string_decoder@1.3.0:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
- stringify-entities@4.0.4:
- resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
-
stringify-object@3.3.0:
resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
engines: {node: '>=4'}
@@ -9571,10 +8733,6 @@ packages:
resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==}
engines: {node: '>=12'}
- strip-bom-string@1.0.0:
- resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
- engines: {node: '>=0.10.0'}
-
strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
@@ -9796,17 +8954,6 @@ packages:
resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==}
engines: {node: '>=18'}
- tdesign-icons-vue-next@0.4.1:
- resolution: {integrity: sha512-uDPuTLRORnGcTyVGNoentNaK4V+ZcBmhYwcY3KqDaQQ5rrPeLMxu0ZVmgOEf0JtF2QZiqAxY7vodNEiLUdoRKA==}
- peerDependencies:
- vue: ^3.5.24
-
- tdesign-vue-next@1.17.3:
- resolution: {integrity: sha512-4x1E5qfcE+rROjfozJz0g3Prc2tSCmoXtZ/Q7BG4rW37FqDborcPd+G9wE3E8Rht2z84/kuzK/SZur0tMjIshQ==}
- engines: {node: '>= 18'}
- peerDependencies:
- vue: ^3.5.24
-
temp-dir@2.0.0:
resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==}
engines: {node: '>=8'}
@@ -9854,9 +9001,6 @@ packages:
tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
- tinycolor2@1.6.0:
- resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
-
tinyexec@0.3.2:
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
@@ -9905,12 +9049,6 @@ packages:
tr46@1.0.1:
resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==}
- treemate@0.3.11:
- resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==}
-
- trim-lines@3.0.1:
- resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
-
ts-api-utils@1.4.3:
resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
engines: {node: '>=16'}
@@ -10091,21 +9229,6 @@ packages:
resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
engines: {node: '>=8'}
- unist-util-is@6.0.1:
- resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==}
-
- unist-util-position@5.0.0:
- resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
-
- unist-util-stringify-position@4.0.0:
- resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
-
- unist-util-visit-parents@6.0.2:
- resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==}
-
- unist-util-visit@5.0.0:
- resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
-
universalify@0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
@@ -10114,10 +9237,6 @@ packages:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
- unplugin-element-plus@0.11.1:
- resolution: {integrity: sha512-pj6+SCBWfHrCrkaXDcDwHvT6u2XURFOwDFd8V5Nweq4xtr/91sAg/xNoih96FK3y89nqnHQ6qINilSGH2sUtmg==}
- engines: {node: '>=20.19.0'}
-
unplugin-utils@0.3.1:
resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==}
engines: {node: '>=20.19.0'}
@@ -10229,26 +9348,11 @@ packages:
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
- validator@13.15.23:
- resolution: {integrity: sha512-4yoz1kEWqUjzi5zsPbAS/903QXSYp0UOtHsPpp7p9rHAw/W+dkInskAE386Fat3oKRROwO98d9ZB0G4cObgUyw==}
- engines: {node: '>= 0.10'}
-
- vdirs@0.1.8:
- resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==}
- peerDependencies:
- vue: ^3.5.24
-
vee-validate@4.15.1:
resolution: {integrity: sha512-DkFsiTwEKau8VIxyZBGdO6tOudD+QoUBPuHj3e6QFqmbfCRj1ArmYWue9lEp6jLSWBIw4XPlDLjFIZNLdRAMSg==}
peerDependencies:
vue: ^3.5.24
- vfile-message@4.0.3:
- resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==}
-
- vfile@6.0.3:
- resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
-
vite-dev-rpc@1.1.0:
resolution: {integrity: sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==}
peerDependencies:
@@ -10319,37 +9423,6 @@ packages:
peerDependencies:
vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
- vite@5.4.21:
- resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==}
- engines: {node: ^18.0.0 || >=20.0.0}
- hasBin: true
- peerDependencies:
- '@types/node': ^18.0.0 || >=20.0.0
- less: '*'
- lightningcss: ^1.21.0
- sass: '*'
- sass-embedded: '*'
- stylus: '*'
- sugarss: '*'
- terser: ^5.4.0
- peerDependenciesMeta:
- '@types/node':
- optional: true
- less:
- optional: true
- lightningcss:
- optional: true
- sass:
- optional: true
- sass-embedded:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- terser:
- optional: true
-
vite@7.2.2:
resolution: {integrity: sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -10390,26 +9463,6 @@ packages:
yaml:
optional: true
- vitepress-plugin-group-icons@1.6.5:
- resolution: {integrity: sha512-+pg4+GKDq2fLqKb1Sat5p1p4SuIZ5tEPxu8HjpwoeecZ/VaXKy6Bdf0wyjedjaTAyZQzXbvyavJegqAcQ+B0VA==}
- peerDependencies:
- vite: '>=3'
- peerDependenciesMeta:
- vite:
- optional: true
-
- vitepress@1.6.4:
- resolution: {integrity: sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg==}
- hasBin: true
- peerDependencies:
- markdown-it-mathjax3: ^4
- postcss: ^8
- peerDependenciesMeta:
- markdown-it-mathjax3:
- optional: true
- postcss:
- optional: true
-
vitest@3.2.4:
resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
@@ -10438,11 +9491,6 @@ packages:
jsdom:
optional: true
- vooks@0.2.12:
- resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==}
- peerDependencies:
- vue: ^3.5.24
-
vscode-languageserver-textdocument@1.0.12:
resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==}
@@ -10510,11 +9558,6 @@ packages:
typescript:
optional: true
- vueuc@0.4.65:
- resolution: {integrity: sha512-lXuMl+8gsBmruudfxnMF9HW4be8rFziylXFu1VHVNbLVhRTXXV4njvpRuJapD/8q+oFEMSfQMH16E/85VoWRyQ==}
- peerDependencies:
- vue: ^3.5.24
-
vxe-pc-ui@4.10.27:
resolution: {integrity: sha512-Y9o4oAfJuoX1lqYixqiuiTcjGCTqU5Rww+W78CbrJN5TglPJdR0gW7Hq5quR7baCBT3P8JaiFbxtG2gfb9ZcSw==}
@@ -10602,10 +9645,18 @@ packages:
resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==}
engines: {node: '>=18'}
+ wmf@1.0.2:
+ resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==}
+ engines: {node: '>=0.8'}
+
word-wrap@1.2.5:
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
engines: {node: '>=0.10.0'}
+ word@0.3.0:
+ resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==}
+ engines: {node: '>=0.8'}
+
workbox-background-sync@7.3.0:
resolution: {integrity: sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==}
@@ -10689,6 +9740,16 @@ packages:
xe-utils@3.7.9:
resolution: {integrity: sha512-LWH6M7g+TKX8P2fqGxDPgJQygiULhbMtpmfxTMxJTUjuUv9y2+I45UCcVLh5AnmJSxDV1xTxsq7G5P9Eid06JQ==}
+ xlsx-js-style@1.2.0:
+ resolution: {integrity: sha512-DDT4FXFSWfT4DXMSok/m3TvmP1gvO3dn0Eu/c+eXHW5Kzmp7IczNkxg/iEPnImbG9X0Vb8QhROda5eatSR/97Q==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+
+ xlsx@0.18.5:
+ resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+
xml-name-validator@4.0.0:
resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
engines: {node: '>=12'}
@@ -10780,9 +9841,6 @@ packages:
zrender@6.0.0:
resolution: {integrity: sha512-41dFXEEXuJpNecuUQq6JlbybmnHaqqpGlbH1yxnA5V9MMP4SbohSVZsJIwz+zdjQXSSlR1Vc34EgH1zxyTDvhg==}
- zwitch@2.0.4:
- resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
-
zx@8.8.5:
resolution: {integrity: sha512-SNgDF5L0gfN7FwVOdEFguY3orU5AkfFZm9B5YSHog/UDHv+lvmd82ZAsOenOkQixigwH2+yyH198AwNdKhj+RA==}
engines: {node: '>= 12.17.0'}
@@ -10790,118 +9848,6 @@ packages:
snapshots:
- '@algolia/abtesting@1.10.0':
- dependencies:
- '@algolia/client-common': 5.44.0
- '@algolia/requester-browser-xhr': 5.44.0
- '@algolia/requester-fetch': 5.44.0
- '@algolia/requester-node-http': 5.44.0
-
- '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.44.0)(algoliasearch@5.44.0)(search-insights@2.17.3)':
- dependencies:
- '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.44.0)(algoliasearch@5.44.0)(search-insights@2.17.3)
- '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.44.0)(algoliasearch@5.44.0)
- transitivePeerDependencies:
- - '@algolia/client-search'
- - algoliasearch
- - search-insights
-
- '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.44.0)(algoliasearch@5.44.0)(search-insights@2.17.3)':
- dependencies:
- '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.44.0)(algoliasearch@5.44.0)
- search-insights: 2.17.3
- transitivePeerDependencies:
- - '@algolia/client-search'
- - algoliasearch
-
- '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.44.0)(algoliasearch@5.44.0)':
- dependencies:
- '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.44.0)(algoliasearch@5.44.0)
- '@algolia/client-search': 5.44.0
- algoliasearch: 5.44.0
-
- '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.44.0)(algoliasearch@5.44.0)':
- dependencies:
- '@algolia/client-search': 5.44.0
- algoliasearch: 5.44.0
-
- '@algolia/client-abtesting@5.44.0':
- dependencies:
- '@algolia/client-common': 5.44.0
- '@algolia/requester-browser-xhr': 5.44.0
- '@algolia/requester-fetch': 5.44.0
- '@algolia/requester-node-http': 5.44.0
-
- '@algolia/client-analytics@5.44.0':
- dependencies:
- '@algolia/client-common': 5.44.0
- '@algolia/requester-browser-xhr': 5.44.0
- '@algolia/requester-fetch': 5.44.0
- '@algolia/requester-node-http': 5.44.0
-
- '@algolia/client-common@5.44.0': {}
-
- '@algolia/client-insights@5.44.0':
- dependencies:
- '@algolia/client-common': 5.44.0
- '@algolia/requester-browser-xhr': 5.44.0
- '@algolia/requester-fetch': 5.44.0
- '@algolia/requester-node-http': 5.44.0
-
- '@algolia/client-personalization@5.44.0':
- dependencies:
- '@algolia/client-common': 5.44.0
- '@algolia/requester-browser-xhr': 5.44.0
- '@algolia/requester-fetch': 5.44.0
- '@algolia/requester-node-http': 5.44.0
-
- '@algolia/client-query-suggestions@5.44.0':
- dependencies:
- '@algolia/client-common': 5.44.0
- '@algolia/requester-browser-xhr': 5.44.0
- '@algolia/requester-fetch': 5.44.0
- '@algolia/requester-node-http': 5.44.0
-
- '@algolia/client-search@5.44.0':
- dependencies:
- '@algolia/client-common': 5.44.0
- '@algolia/requester-browser-xhr': 5.44.0
- '@algolia/requester-fetch': 5.44.0
- '@algolia/requester-node-http': 5.44.0
-
- '@algolia/ingestion@1.44.0':
- dependencies:
- '@algolia/client-common': 5.44.0
- '@algolia/requester-browser-xhr': 5.44.0
- '@algolia/requester-fetch': 5.44.0
- '@algolia/requester-node-http': 5.44.0
-
- '@algolia/monitoring@1.44.0':
- dependencies:
- '@algolia/client-common': 5.44.0
- '@algolia/requester-browser-xhr': 5.44.0
- '@algolia/requester-fetch': 5.44.0
- '@algolia/requester-node-http': 5.44.0
-
- '@algolia/recommend@5.44.0':
- dependencies:
- '@algolia/client-common': 5.44.0
- '@algolia/requester-browser-xhr': 5.44.0
- '@algolia/requester-fetch': 5.44.0
- '@algolia/requester-node-http': 5.44.0
-
- '@algolia/requester-browser-xhr@5.44.0':
- dependencies:
- '@algolia/client-common': 5.44.0
-
- '@algolia/requester-fetch@5.44.0':
- dependencies:
- '@algolia/client-common': 5.44.0
-
- '@algolia/requester-node-http@5.44.0':
- dependencies:
- '@algolia/client-common': 5.44.0
-
'@alloc/quick-lru@5.2.0': {}
'@ant-design/colors@6.0.0':
@@ -10916,13 +9862,6 @@ snapshots:
'@ant-design/icons-svg': 4.4.2
vue: 3.5.24(typescript@5.9.3)
- '@antfu/install-pkg@1.1.0':
- dependencies:
- package-manager-detector: 1.5.0
- tinyexec: 1.0.2
-
- '@antfu/utils@9.3.0': {}
-
'@apideck/better-ajv-errors@0.3.6(ajv@8.17.1)':
dependencies:
ajv: 8.17.1
@@ -12181,14 +11120,6 @@ snapshots:
'@cspell/url@8.19.4': {}
- '@css-render/plugin-bem@0.15.14(css-render@0.15.14)':
- dependencies:
- css-render: 0.15.14
-
- '@css-render/vue3-ssr@0.15.14(vue@3.5.24(typescript@5.9.3))':
- dependencies:
- vue: 3.5.24(typescript@5.9.3)
-
'@csstools/cascade-layer-name-parser@2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)':
dependencies:
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
@@ -12484,36 +11415,8 @@ snapshots:
'@ctrl/tinycolor@4.2.0': {}
- '@docsearch/css@3.8.2': {}
-
- '@docsearch/js@3.8.2(@algolia/client-search@5.44.0)(search-insights@2.17.3)':
- dependencies:
- '@docsearch/react': 3.8.2(@algolia/client-search@5.44.0)(search-insights@2.17.3)
- preact: 10.27.2
- transitivePeerDependencies:
- - '@algolia/client-search'
- - '@types/react'
- - react
- - react-dom
- - search-insights
-
- '@docsearch/react@3.8.2(@algolia/client-search@5.44.0)(search-insights@2.17.3)':
- dependencies:
- '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.44.0)(algoliasearch@5.44.0)(search-insights@2.17.3)
- '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.44.0)(algoliasearch@5.44.0)
- '@docsearch/css': 3.8.2
- algoliasearch: 5.44.0
- optionalDependencies:
- search-insights: 2.17.3
- transitivePeerDependencies:
- - '@algolia/client-search'
-
'@dual-bundle/import-meta-resolve@4.2.1': {}
- '@element-plus/icons-vue@2.3.2(vue@3.5.24(typescript@5.9.3))':
- dependencies:
- vue: 3.5.24(typescript@5.9.3)
-
'@emnapi/core@1.7.1':
dependencies:
'@emnapi/wasi-threads': 1.1.0
@@ -12530,8 +11433,6 @@ snapshots:
tslib: 2.8.1
optional: true
- '@emotion/hash@0.8.0': {}
-
'@emotion/hash@0.9.2': {}
'@emotion/unitless@0.8.1': {}
@@ -12675,8 +11576,6 @@ snapshots:
'@eslint/core': 0.17.0
levn: 0.4.1
- '@faker-js/faker@9.9.0': {}
-
'@floating-ui/core@1.7.3':
dependencies:
'@floating-ui/utils': 0.2.10
@@ -12708,22 +11607,6 @@ snapshots:
'@humanwhocodes/retry@0.4.3': {}
- '@iconify-json/logos@1.2.10':
- dependencies:
- '@iconify/types': 2.0.0
-
- '@iconify-json/octicon@1.2.19':
- dependencies:
- '@iconify/types': 2.0.0
-
- '@iconify-json/simple-icons@1.2.58':
- dependencies:
- '@iconify/types': 2.0.0
-
- '@iconify-json/vscode-icons@1.2.34':
- dependencies:
- '@iconify/types': 2.0.0
-
'@iconify/json@2.2.407':
dependencies:
'@iconify/types': 2.0.0
@@ -12735,19 +11618,6 @@ snapshots:
'@iconify/types@2.0.0': {}
- '@iconify/utils@3.0.2':
- dependencies:
- '@antfu/install-pkg': 1.1.0
- '@antfu/utils': 9.3.0
- '@iconify/types': 2.0.0
- debug: 4.4.3
- globals: 15.15.0
- kolorist: 1.8.0
- local-pkg: 1.1.2
- mlly: 1.8.0
- transitivePeerDependencies:
- - supports-color
-
'@iconify/vue@5.0.0(vue@3.5.24(typescript@5.9.3))':
dependencies:
'@iconify/types': 2.0.0
@@ -12894,8 +11764,6 @@ snapshots:
'@jspm/import-map@1.2.2': {}
- '@juggle/resize-observer@3.4.0': {}
-
'@keyv/bigmap@1.2.0(keyv@5.5.4)':
dependencies:
hashery: 1.2.0
@@ -13003,30 +11871,6 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.19.1
- '@nolebase/ui@2.18.2(vitepress@1.6.4(@algolia/client-search@5.44.0)(@types/node@24.10.1)(async-validator@4.2.5)(axios@1.13.2)(change-case@5.4.4)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.94.0)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.1)(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))':
- dependencies:
- '@iconify-json/octicon': 1.2.19
- less: 4.4.2
- vitepress: 1.6.4(@algolia/client-search@5.44.0)(@types/node@24.10.1)(async-validator@4.2.5)(axios@1.13.2)(change-case@5.4.4)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.94.0)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.1)(typescript@5.9.3)
- vue: 3.5.24(typescript@5.9.3)
-
- '@nolebase/vitepress-plugin-git-changelog@2.18.2(vitepress@1.6.4(@algolia/client-search@5.44.0)(@types/node@24.10.1)(async-validator@4.2.5)(axios@1.13.2)(change-case@5.4.4)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.94.0)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.1)(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))':
- dependencies:
- '@iconify-json/octicon': 1.2.19
- '@nolebase/ui': 2.18.2(vitepress@1.6.4(@algolia/client-search@5.44.0)(@types/node@24.10.1)(async-validator@4.2.5)(axios@1.13.2)(change-case@5.4.4)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.94.0)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.1)(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))
- colorette: 2.0.20
- date-fns: 4.1.0
- defu: 6.1.4
- es-toolkit: 1.41.0
- execa: 9.6.0
- globby: 14.1.0
- gray-matter: 4.0.3
- less: 4.4.2
- uncrypto: 0.1.3
- vitepress: 1.6.4(@algolia/client-search@5.44.0)(@types/node@24.10.1)(async-validator@4.2.5)(axios@1.13.2)(change-case@5.4.4)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.94.0)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.1)(typescript@5.9.3)
- transitivePeerDependencies:
- - vue
-
'@npmcli/fs@4.0.0':
dependencies:
semver: 7.7.3
@@ -13082,6 +11926,7 @@ snapshots:
untyped: 2.0.0
transitivePeerDependencies:
- magicast
+ optional: true
'@one-ini/wasm@0.1.1': {}
@@ -13431,46 +12276,6 @@ snapshots:
'@sec-ant/readable-stream@0.4.1': {}
- '@shikijs/core@2.5.0':
- dependencies:
- '@shikijs/engine-javascript': 2.5.0
- '@shikijs/engine-oniguruma': 2.5.0
- '@shikijs/types': 2.5.0
- '@shikijs/vscode-textmate': 10.0.2
- '@types/hast': 3.0.4
- hast-util-to-html: 9.0.5
-
- '@shikijs/engine-javascript@2.5.0':
- dependencies:
- '@shikijs/types': 2.5.0
- '@shikijs/vscode-textmate': 10.0.2
- oniguruma-to-es: 3.1.1
-
- '@shikijs/engine-oniguruma@2.5.0':
- dependencies:
- '@shikijs/types': 2.5.0
- '@shikijs/vscode-textmate': 10.0.2
-
- '@shikijs/langs@2.5.0':
- dependencies:
- '@shikijs/types': 2.5.0
-
- '@shikijs/themes@2.5.0':
- dependencies:
- '@shikijs/types': 2.5.0
-
- '@shikijs/transformers@2.5.0':
- dependencies:
- '@shikijs/core': 2.5.0
- '@shikijs/types': 2.5.0
-
- '@shikijs/types@2.5.0':
- dependencies:
- '@shikijs/vscode-textmate': 10.0.2
- '@types/hast': 3.0.4
-
- '@shikijs/vscode-textmate@10.0.2': {}
-
'@simonwep/pickr@1.8.2':
dependencies:
core-js: 3.46.0
@@ -13480,8 +12285,6 @@ snapshots:
'@sindresorhus/is@7.1.1': {}
- '@sindresorhus/merge-streams@2.3.0': {}
-
'@sindresorhus/merge-streams@4.0.0': {}
'@speed-highlight/core@1.2.12': {}
@@ -13509,8 +12312,6 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@sxzz/popperjs-es@2.11.7': {}
-
'@tailwindcss/nesting@0.0.0-insiders.565cd3e(postcss@8.5.6)':
dependencies:
postcss: 8.5.6
@@ -13521,24 +12322,10 @@ snapshots:
postcss-selector-parser: 6.0.10
tailwindcss: 3.4.18(yaml@2.8.1)
- '@tanstack/match-sorter-utils@8.19.4':
- dependencies:
- remove-accents: 0.5.0
-
- '@tanstack/query-core@5.90.10': {}
-
'@tanstack/store@0.8.0': {}
'@tanstack/virtual-core@3.13.12': {}
- '@tanstack/vue-query@5.91.2(vue@3.5.24(typescript@5.9.3))':
- dependencies:
- '@tanstack/match-sorter-utils': 8.19.4
- '@tanstack/query-core': 5.90.10
- '@vue/devtools-api': 6.6.4
- vue: 3.5.24(typescript@5.9.3)
- vue-demi: 0.14.10(vue@3.5.24(typescript@5.9.3))
-
'@tanstack/vue-store@0.8.0(vue@3.5.24(typescript@5.9.3))':
dependencies:
'@tanstack/store': 0.8.0
@@ -13583,29 +12370,10 @@ snapshots:
'@types/estree@1.0.8': {}
- '@types/hast@3.0.4':
- dependencies:
- '@types/unist': 3.0.3
-
'@types/html-minifier-terser@7.0.2': {}
- '@types/json-bigint@1.0.4': {}
-
'@types/json-schema@7.0.15': {}
- '@types/jsonwebtoken@9.0.10':
- dependencies:
- '@types/ms': 2.1.0
- '@types/node': 24.10.1
-
- '@types/katex@0.16.7': {}
-
- '@types/linkify-it@5.0.0': {}
-
- '@types/lodash-es@4.17.12':
- dependencies:
- '@types/lodash': 4.17.20
-
'@types/lodash.clonedeep@4.5.9':
dependencies:
'@types/lodash': 4.17.20
@@ -13624,21 +12392,8 @@ snapshots:
'@types/lodash@4.17.20': {}
- '@types/markdown-it@14.1.2':
- dependencies:
- '@types/linkify-it': 5.0.0
- '@types/mdurl': 2.0.0
-
- '@types/mdast@4.0.4':
- dependencies:
- '@types/unist': 3.0.3
-
- '@types/mdurl@2.0.0': {}
-
'@types/minimatch@3.0.5': {}
- '@types/ms@2.1.0': {}
-
'@types/node@12.20.55': {}
'@types/node@24.10.1':
@@ -13667,16 +12422,8 @@ snapshots:
'@types/sortablejs@1.15.9': {}
- '@types/tinycolor2@1.4.6': {}
-
'@types/trusted-types@2.0.7': {}
- '@types/unist@3.0.3': {}
-
- '@types/validator@13.15.9': {}
-
- '@types/web-bluetooth@0.0.16': {}
-
'@types/web-bluetooth@0.0.21': {}
'@typescript-eslint/eslint-plugin@8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
@@ -13810,8 +12557,6 @@ snapshots:
'@typescript-eslint/types': 8.46.4
eslint-visitor-keys: 4.2.1
- '@ungap/structured-clone@1.3.0': {}
-
'@unrs/resolver-binding-android-arm-eabi@1.11.1':
optional: true
@@ -13898,10 +12643,6 @@ snapshots:
- rollup
- supports-color
- '@vite-pwa/vitepress@1.0.1(vite-plugin-pwa@1.1.0(vite@5.4.21(@types/node@24.10.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1))(workbox-build@7.3.0)(workbox-window@7.3.0))':
- dependencies:
- vite-plugin-pwa: 1.1.0(vite@5.4.21(@types/node@24.10.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1))(workbox-build@7.3.0)(workbox-window@7.3.0)
-
'@vitejs/plugin-vue-jsx@5.1.1(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1)(yaml@2.8.1))(vue@3.5.24(typescript@5.9.3))':
dependencies:
'@babel/core': 7.28.5
@@ -13914,11 +12655,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@24.10.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1))(vue@3.5.24(typescript@5.9.3))':
- dependencies:
- vite: 5.4.21(@types/node@24.10.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1)
- vue: 3.5.24(typescript@5.9.3)
-
'@vitejs/plugin-vue@6.0.1(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1)(yaml@2.8.1))(vue@3.5.24(typescript@5.9.3))':
dependencies:
'@rolldown/pluginutils': 1.0.0-beta.29
@@ -14166,32 +12902,6 @@ snapshots:
'@vueuse/shared': 14.0.0(vue@3.5.24(typescript@5.9.3))
vue: 3.5.24(typescript@5.9.3)
- '@vueuse/core@9.13.0(vue@3.5.24(typescript@5.9.3))':
- dependencies:
- '@types/web-bluetooth': 0.0.16
- '@vueuse/metadata': 9.13.0
- '@vueuse/shared': 9.13.0(vue@3.5.24(typescript@5.9.3))
- vue-demi: 0.14.10(vue@3.5.24(typescript@5.9.3))
- transitivePeerDependencies:
- - '@vue/composition-api'
- - vue
-
- '@vueuse/integrations@12.8.2(async-validator@4.2.5)(axios@1.13.2)(change-case@5.4.4)(focus-trap@7.6.6)(nprogress@0.2.0)(qrcode@1.5.4)(sortablejs@1.15.6)(typescript@5.9.3)':
- dependencies:
- '@vueuse/core': 12.8.2(typescript@5.9.3)
- '@vueuse/shared': 12.8.2(typescript@5.9.3)
- vue: 3.5.24(typescript@5.9.3)
- optionalDependencies:
- async-validator: 4.2.5
- axios: 1.13.2
- change-case: 5.4.4
- focus-trap: 7.6.6
- nprogress: 0.2.0
- qrcode: 1.5.4
- sortablejs: 1.15.6
- transitivePeerDependencies:
- - typescript
-
'@vueuse/integrations@14.0.0(async-validator@4.2.5)(axios@1.13.2)(change-case@5.4.4)(focus-trap@7.6.6)(nprogress@0.2.0)(qrcode@1.5.4)(sortablejs@1.15.6)(vue@3.5.24(typescript@5.9.3))':
dependencies:
'@vueuse/core': 14.0.0(vue@3.5.24(typescript@5.9.3))
@@ -14212,8 +12922,6 @@ snapshots:
'@vueuse/metadata@14.0.0': {}
- '@vueuse/metadata@9.13.0': {}
-
'@vueuse/motion@3.0.3(magicast@0.5.1)(vue@3.5.24(typescript@5.9.3))':
dependencies:
'@vueuse/core': 13.9.0(vue@3.5.24(typescript@5.9.3))
@@ -14242,13 +12950,6 @@ snapshots:
dependencies:
vue: 3.5.24(typescript@5.9.3)
- '@vueuse/shared@9.13.0(vue@3.5.24(typescript@5.9.3))':
- dependencies:
- vue-demi: 0.14.10(vue@3.5.24(typescript@5.9.3))
- transitivePeerDependencies:
- - '@vue/composition-api'
- - vue
-
'@vxe-ui/core@4.2.14(vue@3.5.24(typescript@5.9.3))':
dependencies:
dom-zindex: 1.0.6
@@ -14278,6 +12979,13 @@ snapshots:
acorn@8.15.0: {}
+ adler-32@1.2.0:
+ dependencies:
+ exit-on-epipe: 1.0.1
+ printj: 1.1.2
+
+ adler-32@1.3.1: {}
+
agent-base@7.1.4: {}
ajv-draft-04@1.0.0(ajv@8.13.0):
@@ -14316,23 +13024,6 @@ snapshots:
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
- algoliasearch@5.44.0:
- dependencies:
- '@algolia/abtesting': 1.10.0
- '@algolia/client-abtesting': 5.44.0
- '@algolia/client-analytics': 5.44.0
- '@algolia/client-common': 5.44.0
- '@algolia/client-insights': 5.44.0
- '@algolia/client-personalization': 5.44.0
- '@algolia/client-query-suggestions': 5.44.0
- '@algolia/client-search': 5.44.0
- '@algolia/ingestion': 1.44.0
- '@algolia/monitoring': 1.44.0
- '@algolia/recommend': 5.44.0
- '@algolia/requester-browser-xhr': 5.44.0
- '@algolia/requester-fetch': 5.44.0
- '@algolia/requester-node-http': 5.44.0
-
alien-signals@0.4.14: {}
alien-signals@3.1.0: {}
@@ -14593,8 +13284,6 @@ snapshots:
buffer-crc32@1.0.0: {}
- buffer-equal-constant-time@1.0.1: {}
-
buffer-from@1.1.2: {}
buffer@6.0.3:
@@ -14692,7 +13381,10 @@ snapshots:
caniuse-lite@1.0.30001755: {}
- ccount@2.0.1: {}
+ cfb@1.2.2:
+ dependencies:
+ adler-32: 1.3.1
+ crc-32: 1.2.2
chai@5.3.3:
dependencies:
@@ -14715,10 +13407,6 @@ snapshots:
change-case@5.4.4: {}
- character-entities-html4@2.1.0: {}
-
- character-entities-legacy@3.0.0: {}
-
chardet@2.1.1: {}
check-error@2.1.1: {}
@@ -14850,6 +13538,13 @@ snapshots:
cluster-key-slot@1.1.2: {}
+ codepage@1.14.0:
+ dependencies:
+ commander: 2.14.1
+ exit-on-epipe: 1.0.1
+
+ codepage@1.15.0: {}
+
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
@@ -14864,8 +13559,6 @@ snapshots:
dependencies:
delayed-stream: 1.0.0
- comma-separated-tokens@2.0.3: {}
-
commander@10.0.1: {}
commander@11.1.0: {}
@@ -14874,6 +13567,10 @@ snapshots:
commander@13.1.0: {}
+ commander@2.14.1: {}
+
+ commander@2.17.1: {}
+
commander@2.20.3: {}
commander@4.1.1: {}
@@ -14963,6 +13660,7 @@ snapshots:
copy-anything@2.0.6:
dependencies:
is-what: 3.14.1
+ optional: true
copy-anything@4.0.5:
dependencies:
@@ -15136,11 +13834,6 @@ snapshots:
dependencies:
postcss: 8.5.6
- css-render@0.15.14:
- dependencies:
- '@emotion/hash': 0.8.0
- csstype: 3.0.11
-
css-select@4.3.0:
dependencies:
boolbase: 1.0.0
@@ -15221,8 +13914,6 @@ snapshots:
dependencies:
css-tree: 2.2.1
- csstype@3.0.11: {}
-
csstype@3.2.2: {}
cz-git@1.12.0: {}
@@ -15253,12 +13944,6 @@ snapshots:
dataloader@1.4.0: {}
- date-fns-tz@3.2.0(date-fns@4.1.0):
- dependencies:
- date-fns: 4.1.0
-
- date-fns@4.1.0: {}
-
dayjs@1.11.19: {}
db0@0.3.4: {}
@@ -15342,8 +14027,6 @@ snapshots:
deps-regex@0.2.0: {}
- dequal@2.0.3: {}
-
destr@2.0.5: {}
detect-file@1.0.0: {}
@@ -15354,10 +14037,6 @@ snapshots:
detect-libc@2.1.2: {}
- devlop@1.1.0:
- dependencies:
- dequal: 2.0.3
-
didyoumean@1.2.2: {}
diff-sequences@27.5.1: {}
@@ -15449,10 +14128,6 @@ snapshots:
eastasianwidth@0.2.0: {}
- ecdsa-sig-formatter@1.0.11:
- dependencies:
- safe-buffer: 5.2.1
-
echarts@6.0.0:
dependencies:
tslib: 2.3.0
@@ -15473,28 +14148,6 @@ snapshots:
electron-to-chromium@1.5.254: {}
- element-plus@2.11.8(vue@3.5.24(typescript@5.9.3)):
- dependencies:
- '@ctrl/tinycolor': 4.2.0
- '@element-plus/icons-vue': 2.3.2(vue@3.5.24(typescript@5.9.3))
- '@floating-ui/dom': 1.7.4
- '@popperjs/core': '@sxzz/popperjs-es@2.11.7'
- '@types/lodash': 4.17.20
- '@types/lodash-es': 4.17.12
- '@vueuse/core': 9.13.0(vue@3.5.24(typescript@5.9.3))
- async-validator: 4.2.5
- dayjs: 1.11.19
- lodash: 4.17.21
- lodash-es: 4.17.21
- lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21)
- memoize-one: 6.0.0
- normalize-wheel-es: 1.2.0
- vue: 3.5.24(typescript@5.9.3)
- transitivePeerDependencies:
- - '@vue/composition-api'
-
- emoji-regex-xs@1.0.0: {}
-
emoji-regex@10.6.0: {}
emoji-regex@8.0.0: {}
@@ -15541,7 +14194,8 @@ snapshots:
error-stack-parser-es@1.0.5: {}
- errx@0.1.0: {}
+ errx@0.1.0:
+ optional: true
es-abstract@1.24.0:
dependencies:
@@ -15975,8 +14629,6 @@ snapshots:
events@3.3.0: {}
- evtd@0.2.4: {}
-
execa@8.0.1:
dependencies:
cross-spawn: 7.0.6
@@ -16004,6 +14656,8 @@ snapshots:
strip-final-newline: 4.0.0
yoctocolors: 2.1.2
+ exit-on-epipe@1.0.1: {}
+
expand-tilde@2.0.2:
dependencies:
homedir-polyfill: 1.0.3
@@ -16012,10 +14666,6 @@ snapshots:
exsolve@1.0.8: {}
- extend-shallow@2.0.1:
- dependencies:
- is-extendable: 0.1.1
-
extendable-error@0.1.7: {}
fast-deep-equal@3.1.3: {}
@@ -16057,6 +14707,8 @@ snapshots:
node-domexception: 1.0.0
web-streams-polyfill: 3.3.3
+ fflate@0.3.11: {}
+
figures@6.1.0:
dependencies:
is-unicode-supported: 2.1.0
@@ -16135,6 +14787,7 @@ snapshots:
focus-trap@7.6.6:
dependencies:
tabbable: 6.3.0
+ optional: true
follow-redirects@1.15.11: {}
@@ -16161,6 +14814,8 @@ snapshots:
dependencies:
fetch-blob: 3.2.0
+ frac@1.1.2: {}
+
fraction.js@5.3.4: {}
framesync@6.1.2:
@@ -16374,15 +15029,6 @@ snapshots:
merge2: 1.4.1
slash: 3.0.0
- globby@14.1.0:
- dependencies:
- '@sindresorhus/merge-streams': 2.3.0
- fast-glob: 3.3.3
- ignore: 7.0.5
- path-type: 6.0.0
- slash: 5.1.0
- unicorn-magic: 0.3.0
-
globby@15.0.0:
dependencies:
'@sindresorhus/merge-streams': 4.0.0
@@ -16414,13 +15060,6 @@ snapshots:
graphemer@1.4.0: {}
- gray-matter@4.0.3:
- dependencies:
- js-yaml: 3.14.2
- kind-of: 6.0.3
- section-matter: 1.0.0
- strip-bom-string: 1.0.0
-
gzip-size@7.0.0:
dependencies:
duplexer: 0.1.2
@@ -16468,30 +15107,10 @@ snapshots:
dependencies:
function-bind: 1.1.2
- hast-util-to-html@9.0.5:
- dependencies:
- '@types/hast': 3.0.4
- '@types/unist': 3.0.3
- ccount: 2.0.1
- comma-separated-tokens: 2.0.3
- hast-util-whitespace: 3.0.0
- html-void-elements: 3.0.0
- mdast-util-to-hast: 13.2.0
- property-information: 7.1.0
- space-separated-tokens: 2.0.2
- stringify-entities: 4.0.4
- zwitch: 2.0.4
-
- hast-util-whitespace@3.0.0:
- dependencies:
- '@types/hast': 3.0.4
-
he@1.2.0: {}
hey-listen@1.0.8: {}
- highlight.js@11.11.1: {}
-
homedir-polyfill@1.0.3:
dependencies:
parse-passwd: 1.0.0
@@ -16524,8 +15143,6 @@ snapshots:
html-tags@3.3.1: {}
- html-void-elements@3.0.0: {}
-
htmlparser2@10.0.0:
dependencies:
domelementtype: 2.3.0
@@ -16692,8 +15309,6 @@ snapshots:
is-docker@3.0.0: {}
- is-extendable@0.1.1: {}
-
is-extglob@2.1.1: {}
is-finalizationregistry@1.1.1:
@@ -16823,7 +15438,8 @@ snapshots:
call-bound: 1.0.4
get-intrinsic: 1.3.0
- is-what@3.14.1: {}
+ is-what@3.14.1:
+ optional: true
is-what@5.5.0: {}
@@ -16937,30 +15553,6 @@ snapshots:
jsonpointer@5.0.1: {}
- jsonwebtoken@9.0.2:
- dependencies:
- jws: 3.2.2
- lodash.includes: 4.3.0
- lodash.isboolean: 3.0.3
- lodash.isinteger: 4.0.4
- lodash.isnumber: 3.0.3
- lodash.isplainobject: 4.0.6
- lodash.isstring: 4.0.1
- lodash.once: 4.1.1
- ms: 2.1.3
- semver: 7.7.3
-
- jwa@1.4.2:
- dependencies:
- buffer-equal-constant-time: 1.0.1
- ecdsa-sig-formatter: 1.0.11
- safe-buffer: 5.2.1
-
- jws@3.2.2:
- dependencies:
- jwa: 1.4.2
- safe-buffer: 5.2.1
-
keyv@4.5.4:
dependencies:
json-buffer: 3.0.1
@@ -17049,6 +15641,7 @@ snapshots:
mime: 1.6.0
needle: 3.3.1
source-map: 0.6.1
+ optional: true
leven@3.1.0: {}
@@ -17113,12 +15706,6 @@ snapshots:
lodash-es@4.17.21: {}
- lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21):
- dependencies:
- '@types/lodash-es': 4.17.12
- lodash: 4.17.21
- lodash-es: 4.17.21
-
lodash.camelcase@4.3.0: {}
lodash.clonedeep@4.5.0: {}
@@ -17127,20 +15714,10 @@ snapshots:
lodash.defaults@4.2.0: {}
- lodash.includes@4.3.0: {}
-
lodash.isarguments@3.1.0: {}
- lodash.isboolean@3.0.3: {}
-
- lodash.isinteger@4.0.4: {}
-
- lodash.isnumber@3.0.3: {}
-
lodash.isplainobject@4.0.6: {}
- lodash.isstring@4.0.1: {}
-
lodash.kebabcase@4.1.1: {}
lodash.memoize@4.1.2: {}
@@ -17149,8 +15726,6 @@ snapshots:
lodash.mergewith@4.6.2: {}
- lodash.once@4.1.1: {}
-
lodash.snakecase@4.1.1: {}
lodash.sortby@4.7.0: {}
@@ -17226,34 +15801,16 @@ snapshots:
semver: 5.7.2
optional: true
- mark.js@8.11.1: {}
-
math-intrinsics@1.1.0: {}
mathml-tag-names@2.1.3: {}
- mdast-util-to-hast@13.2.0:
- dependencies:
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- '@ungap/structured-clone': 1.3.0
- devlop: 1.1.0
- micromark-util-sanitize-uri: 2.0.1
- trim-lines: 3.0.1
- unist-util-position: 5.0.0
- unist-util-visit: 5.0.0
- vfile: 6.0.3
-
mdn-data@2.0.28: {}
mdn-data@2.12.2: {}
mdn-data@2.25.0: {}
- medium-zoom@1.1.0: {}
-
- memoize-one@6.0.0: {}
-
meow@12.1.1: {}
meow@13.2.0: {}
@@ -17262,23 +15819,6 @@ snapshots:
merge2@1.4.1: {}
- micromark-util-character@2.1.1:
- dependencies:
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-util-encode@2.0.1: {}
-
- micromark-util-sanitize-uri@2.0.1:
- dependencies:
- micromark-util-character: 2.1.1
- micromark-util-encode: 2.0.1
- micromark-util-symbol: 2.0.1
-
- micromark-util-symbol@2.0.1: {}
-
- micromark-util-types@2.0.2: {}
-
micromatch@4.0.8:
dependencies:
braces: 3.0.3
@@ -17355,8 +15895,6 @@ snapshots:
minipass@7.1.2: {}
- minisearch@7.2.0: {}
-
minizlib@3.1.0:
dependencies:
minipass: 7.1.2
@@ -17413,29 +15951,6 @@ snapshots:
object-assign: 4.1.1
thenify-all: 1.6.0
- naive-ui@2.43.2(vue@3.5.24(typescript@5.9.3)):
- dependencies:
- '@css-render/plugin-bem': 0.15.14(css-render@0.15.14)
- '@css-render/vue3-ssr': 0.15.14(vue@3.5.24(typescript@5.9.3))
- '@types/katex': 0.16.7
- '@types/lodash': 4.17.20
- '@types/lodash-es': 4.17.12
- async-validator: 4.2.5
- css-render: 0.15.14
- csstype: 3.2.2
- date-fns: 4.1.0
- date-fns-tz: 3.2.0(date-fns@4.1.0)
- evtd: 0.2.4
- highlight.js: 11.11.1
- lodash: 4.17.21
- lodash-es: 4.17.21
- seemly: 0.3.10
- treemate: 0.3.11
- vdirs: 0.1.8(vue@3.5.24(typescript@5.9.3))
- vooks: 0.2.12(vue@3.5.24(typescript@5.9.3))
- vue: 3.5.24(typescript@5.9.3)
- vueuc: 0.4.65(vue@3.5.24(typescript@5.9.3))
-
nanoid@3.3.11: {}
nanoid@5.1.6: {}
@@ -17611,8 +16126,6 @@ snapshots:
normalize-range@0.1.2: {}
- normalize-wheel-es@1.2.0: {}
-
npm-run-path@5.3.0:
dependencies:
path-key: 4.0.0
@@ -17679,12 +16192,6 @@ snapshots:
dependencies:
mimic-function: 5.0.1
- oniguruma-to-es@3.1.1:
- dependencies:
- emoji-regex-xs: 1.0.0
- regex: 6.0.1
- regex-recursion: 6.0.2
-
open@10.2.0:
dependencies:
default-browser: 5.4.0
@@ -17804,7 +16311,8 @@ snapshots:
parse-ms@4.0.0: {}
- parse-node-version@1.0.1: {}
+ parse-node-version@1.0.1:
+ optional: true
parse-passwd@1.0.0: {}
@@ -18398,8 +16906,6 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
- preact@10.27.2: {}
-
prelude-ls@1.2.1: {}
prettier-linter-helpers@1.0.0:
@@ -18424,12 +16930,12 @@ snapshots:
dependencies:
parse-ms: 4.0.0
+ printj@1.1.2: {}
+
process-nextick-args@2.0.1: {}
process@0.11.10: {}
- property-information@7.1.0: {}
-
proto-list@1.2.4: {}
proxy-from-env@1.1.0: {}
@@ -18559,16 +17065,6 @@ snapshots:
regenerate@1.4.2: {}
- regex-recursion@6.0.2:
- dependencies:
- regex-utilities: 2.3.0
-
- regex-utilities@2.3.0: {}
-
- regex@6.0.1:
- dependencies:
- regex-utilities: 2.3.0
-
regexp-ast-analysis@0.7.1:
dependencies:
'@eslint-community/regexpp': 4.12.2
@@ -18627,8 +17123,6 @@ snapshots:
relateurl@0.2.7: {}
- remove-accents@0.5.0: {}
-
require-directory@2.1.1: {}
require-from-string@2.0.2: {}
@@ -18791,20 +17285,11 @@ snapshots:
scule@1.3.0: {}
- search-insights@2.17.3: {}
-
- section-matter@1.0.0:
- dependencies:
- extend-shallow: 2.0.1
- kind-of: 6.0.3
-
secure-ls@2.0.0:
dependencies:
crypto-js: 4.2.0
lz-string: 1.5.0
- seemly@0.3.10: {}
-
select@1.1.2: {}
semver-compare@1.0.0: {}
@@ -18887,17 +17372,6 @@ snapshots:
shebang-regex@3.0.0: {}
- shiki@2.5.0:
- dependencies:
- '@shikijs/core': 2.5.0
- '@shikijs/engine-javascript': 2.5.0
- '@shikijs/engine-oniguruma': 2.5.0
- '@shikijs/langs': 2.5.0
- '@shikijs/themes': 2.5.0
- '@shikijs/types': 2.5.0
- '@shikijs/vscode-textmate': 10.0.2
- '@types/hast': 3.0.4
-
short-tree@3.0.0:
dependencies:
'@types/bintrees': 1.0.6
@@ -18984,8 +17458,6 @@ snapshots:
sourcemap-codec@1.4.8: {}
- space-separated-tokens@2.0.2: {}
-
spawndamnit@3.0.1:
dependencies:
cross-spawn: 7.0.6
@@ -19006,6 +17478,10 @@ snapshots:
sprintf-js@1.0.3: {}
+ ssf@0.11.2:
+ dependencies:
+ frac: 1.1.2
+
ssri@12.0.0:
dependencies:
minipass: 7.1.2
@@ -19105,11 +17581,6 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
- stringify-entities@4.0.4:
- dependencies:
- character-entities-html4: 2.1.0
- character-entities-legacy: 3.0.0
-
stringify-object@3.3.0:
dependencies:
get-own-enumerable-property-symbols: 3.0.2
@@ -19124,8 +17595,6 @@ snapshots:
dependencies:
ansi-regex: 6.2.2
- strip-bom-string@1.0.0: {}
-
strip-bom@3.0.0: {}
strip-bom@4.0.0: {}
@@ -19338,7 +17807,8 @@ snapshots:
system-architecture@0.1.0: {}
- tabbable@6.3.0: {}
+ tabbable@6.3.0:
+ optional: true
table@6.9.0:
dependencies:
@@ -19403,28 +17873,6 @@ snapshots:
minizlib: 3.1.0
yallist: 5.0.0
- tdesign-icons-vue-next@0.4.1(vue@3.5.24(typescript@5.9.3)):
- dependencies:
- '@babel/runtime': 7.28.4
- vue: 3.5.24(typescript@5.9.3)
-
- tdesign-vue-next@1.17.3(vue@3.5.24(typescript@5.9.3)):
- dependencies:
- '@babel/runtime': 7.28.4
- '@popperjs/core': 2.11.8
- '@types/lodash-es': 4.17.12
- '@types/sortablejs': 1.15.9
- '@types/tinycolor2': 1.4.6
- '@types/validator': 13.15.9
- dayjs: 1.11.19
- lodash-es: 4.17.21
- mitt: 3.0.1
- sortablejs: 1.15.6
- tdesign-icons-vue-next: 0.4.1(vue@3.5.24(typescript@5.9.3))
- tinycolor2: 1.6.0
- validator: 13.15.23
- vue: 3.5.24(typescript@5.9.3)
-
temp-dir@2.0.0: {}
tempy@0.6.0:
@@ -19469,8 +17917,6 @@ snapshots:
tinybench@2.9.0: {}
- tinycolor2@1.6.0: {}
-
tinyexec@0.3.2: {}
tinyexec@1.0.2: {}
@@ -19509,10 +17955,6 @@ snapshots:
dependencies:
punycode: 2.3.1
- treemate@0.3.11: {}
-
- trim-lines@3.0.1: {}
-
ts-api-utils@1.4.3(typescript@5.9.3):
dependencies:
typescript: 5.9.3
@@ -19716,43 +18158,10 @@ snapshots:
dependencies:
crypto-random-string: 2.0.0
- unist-util-is@6.0.1:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-position@5.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-stringify-position@4.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-visit-parents@6.0.2:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-is: 6.0.1
-
- unist-util-visit@5.0.0:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-is: 6.0.1
- unist-util-visit-parents: 6.0.2
-
universalify@0.1.2: {}
universalify@2.0.1: {}
- unplugin-element-plus@0.11.1(magicast@0.5.1):
- dependencies:
- '@nuxt/kit': 4.2.1(magicast@0.5.1)
- es-module-lexer: 1.7.0
- escape-string-regexp: 5.0.0
- magic-string: 0.30.21
- unplugin: 2.3.10
- transitivePeerDependencies:
- - magicast
-
unplugin-utils@0.3.1:
dependencies:
pathe: 2.0.3
@@ -19860,29 +18269,12 @@ snapshots:
util-deprecate@1.0.2: {}
- validator@13.15.23: {}
-
- vdirs@0.1.8(vue@3.5.24(typescript@5.9.3)):
- dependencies:
- evtd: 0.2.4
- vue: 3.5.24(typescript@5.9.3)
-
vee-validate@4.15.1(vue@3.5.24(typescript@5.9.3)):
dependencies:
'@vue/devtools-api': 7.7.8
type-fest: 4.41.0
vue: 3.5.24(typescript@5.9.3)
- vfile-message@4.0.3:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-stringify-position: 4.0.0
-
- vfile@6.0.3:
- dependencies:
- '@types/unist': 3.0.3
- vfile-message: 4.0.3
-
vite-dev-rpc@1.1.0(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1)(yaml@2.8.1)):
dependencies:
birpc: 2.8.0
@@ -19980,17 +18372,6 @@ snapshots:
rollup: 4.53.2
xe-utils: 3.7.9
- vite-plugin-pwa@1.1.0(vite@5.4.21(@types/node@24.10.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1))(workbox-build@7.3.0)(workbox-window@7.3.0):
- dependencies:
- debug: 4.4.3
- pretty-bytes: 6.1.1
- tinyglobby: 0.2.15
- vite: 5.4.21(@types/node@24.10.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1)
- workbox-build: 7.3.0
- workbox-window: 7.3.0
- transitivePeerDependencies:
- - supports-color
-
vite-plugin-pwa@1.1.0(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0):
dependencies:
debug: 4.4.3
@@ -20031,18 +18412,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vite@5.4.21(@types/node@24.10.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1):
- dependencies:
- esbuild: 0.25.3
- postcss: 8.5.6
- rollup: 4.53.2
- optionalDependencies:
- '@types/node': 24.10.1
- fsevents: 2.3.3
- less: 4.4.2
- sass: 1.94.0
- terser: 5.44.1
-
vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1)(yaml@2.8.1):
dependencies:
esbuild: 0.25.3
@@ -20060,65 +18429,6 @@ snapshots:
terser: 5.44.1
yaml: 2.8.1
- vitepress-plugin-group-icons@1.6.5(vite@5.4.21(@types/node@24.10.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1)):
- dependencies:
- '@iconify-json/logos': 1.2.10
- '@iconify-json/vscode-icons': 1.2.34
- '@iconify/utils': 3.0.2
- optionalDependencies:
- vite: 5.4.21(@types/node@24.10.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1)
- transitivePeerDependencies:
- - supports-color
-
- vitepress@1.6.4(@algolia/client-search@5.44.0)(@types/node@24.10.1)(async-validator@4.2.5)(axios@1.13.2)(change-case@5.4.4)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.94.0)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.1)(typescript@5.9.3):
- dependencies:
- '@docsearch/css': 3.8.2
- '@docsearch/js': 3.8.2(@algolia/client-search@5.44.0)(search-insights@2.17.3)
- '@iconify-json/simple-icons': 1.2.58
- '@shikijs/core': 2.5.0
- '@shikijs/transformers': 2.5.0
- '@shikijs/types': 2.5.0
- '@types/markdown-it': 14.1.2
- '@vitejs/plugin-vue': 5.2.4(vite@5.4.21(@types/node@24.10.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1))(vue@3.5.24(typescript@5.9.3))
- '@vue/devtools-api': 7.7.8
- '@vue/shared': 3.5.24
- '@vueuse/core': 12.8.2(typescript@5.9.3)
- '@vueuse/integrations': 12.8.2(async-validator@4.2.5)(axios@1.13.2)(change-case@5.4.4)(focus-trap@7.6.6)(nprogress@0.2.0)(qrcode@1.5.4)(sortablejs@1.15.6)(typescript@5.9.3)
- focus-trap: 7.6.6
- mark.js: 8.11.1
- minisearch: 7.2.0
- shiki: 2.5.0
- vite: 5.4.21(@types/node@24.10.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1)
- vue: 3.5.24(typescript@5.9.3)
- optionalDependencies:
- postcss: 8.5.6
- transitivePeerDependencies:
- - '@algolia/client-search'
- - '@types/node'
- - '@types/react'
- - async-validator
- - axios
- - change-case
- - drauu
- - fuse.js
- - idb-keyval
- - jwt-decode
- - less
- - lightningcss
- - nprogress
- - qrcode
- - react
- - react-dom
- - sass
- - sass-embedded
- - search-insights
- - sortablejs
- - stylus
- - sugarss
- - terser
- - typescript
- - universal-cookie
-
vitest@3.2.4(@types/node@24.10.1)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.94.0)(terser@5.44.1)(yaml@2.8.1):
dependencies:
'@types/chai': 5.2.3
@@ -20161,11 +18471,6 @@ snapshots:
- tsx
- yaml
- vooks@0.2.12(vue@3.5.24(typescript@5.9.3)):
- dependencies:
- evtd: 0.2.4
- vue: 3.5.24(typescript@5.9.3)
-
vscode-languageserver-textdocument@1.0.12: {}
vscode-uri@3.1.0: {}
@@ -20231,17 +18536,6 @@ snapshots:
optionalDependencies:
typescript: 5.9.3
- vueuc@0.4.65(vue@3.5.24(typescript@5.9.3)):
- dependencies:
- '@css-render/vue3-ssr': 0.15.14(vue@3.5.24(typescript@5.9.3))
- '@juggle/resize-observer': 3.4.0
- css-render: 0.15.14
- evtd: 0.2.4
- seemly: 0.3.10
- vdirs: 0.1.8(vue@3.5.24(typescript@5.9.3))
- vooks: 0.2.12(vue@3.5.24(typescript@5.9.3))
- vue: 3.5.24(typescript@5.9.3)
-
vxe-pc-ui@4.10.27(vue@3.5.24(typescript@5.9.3)):
dependencies:
'@vxe-ui/core': 4.2.14(vue@3.5.24(typescript@5.9.3))
@@ -20351,8 +18645,12 @@ snapshots:
dependencies:
string-width: 7.2.0
+ wmf@1.0.2: {}
+
word-wrap@1.2.5: {}
+ word@0.3.0: {}
+
workbox-background-sync@7.3.0:
dependencies:
idb: 7.1.1
@@ -20505,6 +18803,29 @@ snapshots:
xe-utils@3.7.9: {}
+ xlsx-js-style@1.2.0:
+ dependencies:
+ adler-32: 1.2.0
+ cfb: 1.2.2
+ codepage: 1.14.0
+ commander: 2.17.1
+ crc-32: 1.2.2
+ exit-on-epipe: 1.0.1
+ fflate: 0.3.11
+ ssf: 0.11.2
+ wmf: 1.0.2
+ word: 0.3.0
+
+ xlsx@0.18.5:
+ dependencies:
+ adler-32: 1.3.1
+ cfb: 1.2.2
+ codepage: 1.15.0
+ crc-32: 1.2.2
+ ssf: 0.11.2
+ wmf: 1.0.2
+ word: 0.3.0
+
xml-name-validator@4.0.0: {}
y18n@4.0.3: {}
@@ -20604,6 +18925,4 @@ snapshots:
dependencies:
tslib: 2.3.0
- zwitch@2.0.4: {}
-
zx@8.8.5: {}