diff --git a/.mimocode/.cron-lock b/.mimocode/.cron-lock new file mode 100644 index 0000000..2e67ab4 --- /dev/null +++ b/.mimocode/.cron-lock @@ -0,0 +1 @@ +{"pid":47768,"startedAt":1784001651405} \ No newline at end of file diff --git a/.mimocode/plans/1784001763172-stellar-sailor.md b/.mimocode/plans/1784001763172-stellar-sailor.md new file mode 100644 index 0000000..1ef06e5 --- /dev/null +++ b/.mimocode/plans/1784001763172-stellar-sailor.md @@ -0,0 +1,196 @@ +# Plan: 用 Tiptap 替换 wangEditor + +## 目标 +将项目中所有 wangEditor 编辑器替换为 Tiptap,保留全部现有功能(文字格式、标题、列表、表格、图片上传、视频、链接、代码/引用、颜色、撤销重做等),保持 v-model 接口不变。 + +## 需要修改的文件清单 + +### 新建文件 +| 文件 | 说明 | +|------|------| +| `platform/src/views/components/TiptapEditor.vue` | Tiptap 编辑器组件(替代 WangEditor) | + +### 修改文件 +| 文件 | 改动 | +|------|------| +| `platform/package.json` | 移除 `@wangeditor/editor`,添加 Tiptap 依赖 | +| `backend/package.json` | 同上 | +| `platform/src/main.js` | 替换 WangEditor 全局注册为 TiptapEditor | +| `backend/src/main.js` | 同上 | +| `platform/src/views/tools/notebook/components/edit.vue` | 改用 TiptapEditor | +| `platform/src/views/tools/notebook/components/WangEditor.vue` | 删除此文件 | +| `backend/src/views/apps/cms/articles/components/edit.vue` | 改用 TiptapEditor | +| `backend/src/views/apps/cms/products/components/edit.vue` | 改用 TiptapEditor,更新 import (line 98) | +| `backend/src/views/apps/cms/articles/components/edit.vue` | 改用 TiptapEditor,更新 import (line 174),更新 w-e-* 样式 (line 538-539) | +| `backend/src/views/components/WangEditor.vue` | 替换为 TiptapEditor(或删除后改名) | +| `platform/src/views/Main.vue` | 更新 w-e-* 选择器为新的编辑器选择器 | +| `backend/src/views/Main.vue` | 同上 | +| `platform/src/assets/less/style.less` | 更新 .w-e-* 样式为新编辑器样式 | +| `backend/src/assets/less/style.less` | 同上 | + +### 可删除文件 +| 文件 | 说明 | +|------|------| +| `platform/src/views/components/WangEditor.vue` | 被 TiptapEditor 替代 | +| `platform/src/views/tools/notebook/components/WangEditor.vue` | 被 TiptapEditor 替代 | +| `backend/src/views/components/WangEditor.vue` | 被 TiptapEditor 替代 | + +--- + +## Step 1: 安装 Tiptap 依赖,移除 wangEditor + +两个项目(platform、backend)都需要执行: + +```bash +# 移除 wangEditor +npm uninstall @wangeditor/editor + +# 安装 Tiptap 核心 +npm install @tiptap/vue-3 @tiptap/pm @tiptap/starter-kit + +# 安装扩展 +npm install @tiptap/extension-underline +npm install @tiptap/extension-text-style +npm install @tiptap/extension-color +npm install @tiptap/extension-highlight +npm install @tiptap/extension-placeholder +npm install @tiptap/extension-link +npm install @tiptap/extension-image +npm install @tiptap/extension-table @tiptap/extension-table-row @tiptap/extension-table-cell @tiptap/extension-table-header +npm install @tiptap/extension-text-align +``` + +--- + +## Step 2: 创建 TiptapEditor.vue 组件 + +路径:`platform/src/views/components/TiptapEditor.vue` + +### 组件接口(保持与 WangEditor 一致) +- **Props**: `modelValue: string` (HTML) +- **Emits**: `update:modelValue` +- **Expose**: `clear()`, `getContent()`, `setContent(content)` + +### 功能模块 + +#### 编辑器核心 +- 使用 `useEditor` + `EditorContent` from `@tiptap/vue-3` +- Extensions 列表: + - `StarterKit` (bold, italic, strike, headings H1-H6, orderedList, bulletList, code, codeBlock, blockquote, horizontalRule, history/undo/redo) + - `Underline` + - `TextStyle` + `Color` + `Highlight` (文字颜色/背景色) + - `Placeholder` ("请输入内容...") + - `Link` (超链接) + - `Image` (图片) + - `Table` + `TableRow` + `TableCell` + `TableHeader` (表格,支持 resizable) + - `TextAlign` (left/center/right/justify) + +#### 工具栏 +分组按钮布局,从左到右: +1. **文字格式**: 加粗(B)、斜体(I)、下划线(U)、删除线(S) +2. **标题**: H1-H4 下拉或按钮组 +3. **列表**: 有序、无序 +4. **引用/代码**: 引用块、代码块 +5. **链接**: 插入/编辑链接 +6. **图片**: 上传图片按钮 +7. **视频**: 插入视频(URL 方式) +8. **表格**: 插入表格、删除行/列、合并单元格 +9. **颜色**: 文字颜色、背景色 +10. **对齐**: 左/中/右/两端 +11. **其他**: 撤销、重做 + +#### 图片上传 +- 复用现有 `uploadFile` API(`@/api/file`) +- 上传到 `/api/files`,带 Bearer token +- 与现有 WangEditor 上传逻辑一致 + +#### HTML 双向同步 +- `editor.on('update')` → `emit('update:modelValue', editor.getHTML())` +- `watch(modelValue)` → `editor.commands.setContent(newVal)` (避免循环触发) + +#### 样式 +- 保持现有 `.wang-editor-wrapper` 的视觉风格 +- 新编辑器使用 `.tiptap-editor-wrapper` 类名 +- 编辑区域使用 Tiptap 默认的 `.tiptap` 类名 +- 支持 dark mode(`html.dark` 选择器) + +--- + +## Step 3: 替换全局注册 + +### platform/src/main.js +```js +// 移除: import WangEditor from '@/views/components/WangEditor.vue'; +// 添加: import TiptapEditor from '@/views/components/TiptapEditor.vue'; +// 移除: app.component('WangEditor', WangEditor); +// 添加: app.component('TiptapEditor', TiptapEditor); +``` + +### backend/src/main.js +同上。 + +--- + +## Step 4: 更新消费者页面 + +3 个消费者页面需要将 `` 改为 ``: + +1. `platform/src/views/tools/notebook/components/edit.vue` (line 19) + - 改 `` → `` + - 移除 `import WangEditor from './WangEditor.vue'` + +2. `backend/src/views/apps/cms/articles/components/edit.vue` + - 改 `` → `` + - 移除或更新 import + +3. `backend/src/views/apps/cms/products/components/edit.vue` (line 28) + - 改 `` → `` + - 保留 `style="height: 450px;"` + +--- + +## Step 5: 更新 Main.vue 事件处理 + +两个 Main.vue 中的右键菜单拦截逻辑需要更新选择器: + +``` +旧: '.wang-editor-wrapper', '.w-e-toolbar', '.w-e-drop-panel', '.w-e-modal', '.w-e-toolbar-menu', '[class*="w-e-"]' +新: '.tiptap-editor-wrapper', '.tiptap-toolbar', '[class*="tiptap-"]' +``` + +--- + +## Step 6: 更新全局样式 + +两个 `style.less` 中将 `.wang-editor-wrapper` / `.w-e-*` 选择器替换为新的 Tiptap 编辑器选择器。 + +--- + +## Step 7: 删除旧文件 + +- 删除 `platform/src/views/components/WangEditor.vue` +- 删除 `platform/src/views/tools/notebook/components/WangEditor.vue` +- 删除 `backend/src/views/components/WangEditor.vue` + +--- + +## Step 8: 更新文档 + +- `platform/src/views/tools/notebook/README.md` - 更新技术栈描述 +- `docs/NOTEBOOK_DEPLOYMENT_CHECKLIST.md` - 更新依赖安装命令 + +--- + +## 验证方式 + +1. `cd platform && npm install` - 确认依赖安装无报错 +2. `cd backend && npm install` - 同上 +3. 启动 platform 开发服务器,测试: + - 笔记本编辑器:输入文字、格式化、插入表格、上传图片 + - 工具栏所有按钮可用 + - v-model 双向绑定正常 +4. 启动 backend 开发服务器,测试: + - CMS 文章编辑器:所有功能正常 + - CMS 产品编辑器:所有功能正常 +5. 测试 dark mode 切换下编辑器样式 +6. 测试表格内 Backspace/Delete 正常工作 diff --git a/backend/package-lock.json b/backend/package-lock.json index 491399f..1125d76 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -9,7 +9,21 @@ "version": "0.0.0", "dependencies": { "@element-plus/icons-vue": "^2.3.2", - "@wangeditor/editor": "^5.1.23", + "@tiptap/extension-color": "^3.27.4", + "@tiptap/extension-highlight": "^3.27.4", + "@tiptap/extension-image": "^3.27.4", + "@tiptap/extension-link": "^3.27.4", + "@tiptap/extension-placeholder": "^3.27.4", + "@tiptap/extension-table": "^3.27.4", + "@tiptap/extension-table-cell": "^3.27.4", + "@tiptap/extension-table-header": "^3.27.4", + "@tiptap/extension-table-row": "^3.27.4", + "@tiptap/extension-text-align": "^3.27.4", + "@tiptap/extension-text-style": "^3.27.4", + "@tiptap/extension-underline": "^3.27.4", + "@tiptap/pm": "^3.27.4", + "@tiptap/starter-kit": "^3.27.4", + "@tiptap/vue-3": "^3.27.4", "axios": "^1.13.1", "chart": "^0.1.2", "chart.js": "^4.5.1", @@ -68,15 +82,6 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/runtime": { - "version": "7.28.6", - "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.28.6.tgz", - "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/types": { "version": "7.29.0", "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.29.0.tgz", @@ -1042,11 +1047,559 @@ "win32" ] }, - "node_modules/@transloadit/prettier-bytes": { - "version": "0.0.7", - "resolved": "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", - "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==", - "license": "MIT" + "node_modules/@tiptap/core": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/core/-/core-3.27.4.tgz", + "integrity": "sha512-8W/GwlEn0JwNdpyVfTWcXwHYUpj9BWwO++YxtizmgjJzlwigSh7/xLVJMwVykuQHQ2fCq5rkUvmBRtpHOMLUQA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-blockquote": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-blockquote/-/extension-blockquote-3.27.4.tgz", + "integrity": "sha512-d1tOHgP3R5cOE+Ot8qL/dkLXRByajgn+j6cCXHqDtmJO2wsK9knmbKQ0SEjbKrU6OgHrTnY/EotNxBEBW9HGoA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-bold": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-bold/-/extension-bold-3.27.4.tgz", + "integrity": "sha512-wTtJUUAxCAZ01ICH2DNlOBzzHKRQ1ZST8aRYtIhBPzqEUhnJaKGcjnDB4X49fqPi48iXaPxzhsInDl+rVUujWg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-bubble-menu": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.27.4.tgz", + "integrity": "sha512-Poy7xwcD3POG5ew/TW7mYXv7m++vCchvHxPUqIfnTxBxvvvqDZkPYFWZS1lvPrSBtm1DcfUTQAgVutM5NDZ99Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-bullet-list": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-bullet-list/-/extension-bullet-list-3.27.4.tgz", + "integrity": "sha512-rvja0N1RnwGJAVwDdbUfDIJ4NoT+KjPFaZudKiPuEMfMHfbqe4xcbbC2hsfs61JNcl2xmx+ohV6lzD9YxxJl1w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "3.27.4" + } + }, + "node_modules/@tiptap/extension-code": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-code/-/extension-code-3.27.4.tgz", + "integrity": "sha512-aPc7opCR1ylK4m4c2lsjLsGpEBD1fLQQKWd5PbZiJvrTF8gkdGZlYLt9A6VukpxeJyHhb22Jaj4fxgKmGMeTtw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-code-block": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-code-block/-/extension-code-block-3.27.4.tgz", + "integrity": "sha512-a5caWfWN6Z6usy48vzJDDOhWoA6+rFFCHGpQM7jXn/7rRzYPcvBzTZUGptjEbltj4YqtrQ2tVwTJcCtbb+mknA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-color": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-color/-/extension-color-3.27.4.tgz", + "integrity": "sha512-uGbgErKGKO4OTBGqnXOA1CGXa3IqoBaiPBGcHu/px01fS8EVFu0A7q5HS6vxFiMK6qW5x71sEpCA+FUINMAb3g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-text-style": "3.27.4" + } + }, + "node_modules/@tiptap/extension-document": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-document/-/extension-document-3.27.4.tgz", + "integrity": "sha512-7nAqgfkgb9HADBeCTnOHuTiyZuxfxvMPT3nH4OZeY+cmtkI1On3QffqlmtcUPvNbkhT3o9ehA1hVfCnQ1Ye4LQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-dropcursor": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-dropcursor/-/extension-dropcursor-3.27.4.tgz", + "integrity": "sha512-RiZasQJuUTUO3aME16Bn8eJH7cYnvhT5JCFDFq0ya/1iFI9wUQA2NJC5tb5TrZ74+sQwkYU9VzexnchM481Y9w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "3.27.4" + } + }, + "node_modules/@tiptap/extension-floating-menu": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-floating-menu/-/extension-floating-menu-3.27.4.tgz", + "integrity": "sha512-tnZywwoNDuEcUZmYYIztXl3PpIKUq+gKeaYPuZhpYEVTThU44tzK3ZuFOmd+qf2aAa1MQwxKWqUuLpNK77bwNw==", + "license": "MIT", + "optional": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@floating-ui/dom": "^1.0.0", + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-gapcursor": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-gapcursor/-/extension-gapcursor-3.27.4.tgz", + "integrity": "sha512-svLwSKcFhzpcJeXvxxKkRFuQpykmXrQefVhEsaXq0L95yJIIAGKMRmQC3mxKdzL2j0P9cY7V41bNVSyOAyvclw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "3.27.4" + } + }, + "node_modules/@tiptap/extension-hard-break": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-hard-break/-/extension-hard-break-3.27.4.tgz", + "integrity": "sha512-W+Z9pmDgqjbdu3NeZOQrzA15iM4w60Yd8l2CYzxcdApPVIfYzb2S3a7+u1RqW9wnTYb6xyZjASmFNfxXS4P4cg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-heading": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-heading/-/extension-heading-3.27.4.tgz", + "integrity": "sha512-RgvpxzuYk6QEK+az+eiXpWvGlUso42zNcGnjyUrvskoZjS47MbhSg8ylRYQSRtXE0ETlXhAx4J7iGlGr72kyIw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-highlight": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-highlight/-/extension-highlight-3.27.4.tgz", + "integrity": "sha512-STRX1qJLhTZslBF8fEE5qpTGrFd/g7Ufidjxt84p0uT8FrtcbfPUwyweeYwhZp7Iw8n+qODGYnheJTOpfaW2JA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-horizontal-rule": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.27.4.tgz", + "integrity": "sha512-2eQU/55nE5mhMJHALtLMuBL3dcVJUDVVT7n+uZYMaYE63BtCvC4VS08YLFSR7JZSVJIlgVAmdt5nAw0B+rEPNA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-image": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-image/-/extension-image-3.27.4.tgz", + "integrity": "sha512-yQ8CazyOL4z1/NbV1NLGv6DvchVhOXHH3uQ7md5VX/IGZruFpnm8IpF9MDpdAUxUFmTsXJDYyO2lWGO1PYWG8A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-italic": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-italic/-/extension-italic-3.27.4.tgz", + "integrity": "sha512-PeZT4XbyxAp7Lqo/hfA1k5LI27g1RlgS+YgXp2CeHXIrUfSpO5HlZXh02Bvb0pOdl3RFw2tEKtlHzjt8Y1+Nwg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-link": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-link/-/extension-link-3.27.4.tgz", + "integrity": "sha512-6K/FkNwMLWWQbNWKlycrUPTN7YcyVFdFwZncoBXe5WyarRjLTGw7ywafnCI9PDIWSq7ttzVL4NgjN2IN8kBXww==", + "license": "MIT", + "dependencies": { + "linkifyjs": "^4.3.3" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-list": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-list/-/extension-list-3.27.4.tgz", + "integrity": "sha512-A0BgmRO1RE0yLCx9w7GQITtKfS9wLE5cdngSYDiSpwulcXJhJjKm5mZ4OUZmks2VN4HO5jMl2BWCGt2NSDhA+w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-list-item": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-list-item/-/extension-list-item-3.27.4.tgz", + "integrity": "sha512-z5TVuPw2mkK0B/x+gFg3uUV7tBdaElDFg0zVgnXZCqlSVTLfIyInOOnG5LTWoAd9BdzBjGrzE3PohDcLVDDGBQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "3.27.4" + } + }, + "node_modules/@tiptap/extension-list-keymap": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-list-keymap/-/extension-list-keymap-3.27.4.tgz", + "integrity": "sha512-on7JNDi7Eqz7UdZeZdiO83bQHo0flVDHzjmtR+v/nrCGW9H15D3CHs5+4ozLDiCvTK8tbkBuut/l9AWNxcCE/Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "3.27.4" + } + }, + "node_modules/@tiptap/extension-ordered-list": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-ordered-list/-/extension-ordered-list-3.27.4.tgz", + "integrity": "sha512-bHwLiof0FqJfWzB0act7oEKMTZatEKQ4IYCvmyF5EktjMs4kxEatkPp4Yx/1LSYSjLy1MMT7oLELyaz2FFYyXA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "3.27.4" + } + }, + "node_modules/@tiptap/extension-paragraph": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-paragraph/-/extension-paragraph-3.27.4.tgz", + "integrity": "sha512-8Dnr1J5s/s4XYYuEF3b784NnCxLjXOlQpmGyXRxTAzW7JaOP08tIUJWVNvSMekfXc2vXa33HUbqjxyyWZEQ6LQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-placeholder": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-placeholder/-/extension-placeholder-3.27.4.tgz", + "integrity": "sha512-7hBoFLeddCv1WzkqB0x3coZ1Hp9WZ9wLoRXIUtUhRKMpzFq2IlTtW1iw88g9pTJnL98bCCElN4DZ4mYtaQvmgA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "3.27.4" + } + }, + "node_modules/@tiptap/extension-strike": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-strike/-/extension-strike-3.27.4.tgz", + "integrity": "sha512-8OXwcPKuV3ToBBgyvDxH1jQdObK5FIKCGiyIim6qNWiOpi9BhM3XYD+aO1khjv8qIjtoI/DYbizF4ewj09fX2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-table": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-table/-/extension-table-3.27.4.tgz", + "integrity": "sha512-ejQjqt8GjUn4YswG/SsiLr/W3LZApZGUEDW0N7NoOduE0dBZ/pVJHPuqWu33kK+phJjSNCIN+bSAkoWE01rZSw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-table-cell": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-table-cell/-/extension-table-cell-3.27.4.tgz", + "integrity": "sha512-1B7J4ZiaXaGxT2IB3hrwtz0433bFVSWsDB+B125vt2DZQr9bgdX40GLesSPlymqOdMxKJwksCPMan2ON2LkVAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-table": "3.27.4" + } + }, + "node_modules/@tiptap/extension-table-header": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-table-header/-/extension-table-header-3.27.4.tgz", + "integrity": "sha512-V/O690Z6VcHMAWDfgVFiOCwx3eE2/HM2gH+Fp0eQe3WnajQj2DPViW4VWR/rNVl3DspHoL/EU+eEsnhcvO34Vw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-table": "3.27.4" + } + }, + "node_modules/@tiptap/extension-table-row": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-table-row/-/extension-table-row-3.27.4.tgz", + "integrity": "sha512-2RTJtcy90Tc2+HpW1JyKMTwg/zz4u6hHof4CTcJS/eXLk3g1L60DDzYvz4GzBxQvsOT3QVcbaU9QOk9A3Sx7Fg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-table": "3.27.4" + } + }, + "node_modules/@tiptap/extension-text": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-text/-/extension-text-3.27.4.tgz", + "integrity": "sha512-lKQH/hP4FBXsziHypd6Ywj8JFvMLM5GVkK1xsH6yApNuXbHq95rd42ZOYWpYILIBib7tlaz93z61d74UrJiuiw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-text-align": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-text-align/-/extension-text-align-3.27.4.tgz", + "integrity": "sha512-ArfL7GLOXCSmrmiBiaWwAf7RPHXDdxLGPru29qKDLQDthjXcNOdlwlPBbolRu7mXwlSmaYpqWGrG75/AEat3mw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-text-style": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-text-style/-/extension-text-style-3.27.4.tgz", + "integrity": "sha512-Wmj64TQXY85gc7lUNbubW32sDCnVOJlpGraMeARRC9Z0EKBX1JpAxddo/64F17bn3kzLxXVszBFyLRcNgTdU2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-underline": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-underline/-/extension-underline-3.27.4.tgz", + "integrity": "sha512-nRJGvRyEXDtINlHTW+C2oWcL3vmX1URVxAPpkD3Zwn5Rb/vEeOU/pk/w97I0iid816MR4iVbvl1XhbUVegK9gQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extensions": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extensions/-/extensions-3.27.4.tgz", + "integrity": "sha512-d8opkg2iGtVwJmNGIqv0blfRxnvWOJp1brz+Z8CsP4ojSS2ZtaE46d6JSQ5OeJ7nMpjhT+9wh4UQcA7OSEO59w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/pm": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/pm/-/pm-3.27.4.tgz", + "integrity": "sha512-UB8lcyomfWk7YGI2PZKNqcYXfyRA+PFj+QntlsUXyrsiA5JJIaE8SHKYjxKlGG/xtW3EtPm1b0p38T9Mk4xiFw==", + "license": "MIT", + "dependencies": { + "prosemirror-changeset": "^2.4.1", + "prosemirror-commands": "^1.7.1", + "prosemirror-dropcursor": "^1.8.2", + "prosemirror-gapcursor": "^1.4.1", + "prosemirror-history": "^1.5.0", + "prosemirror-inputrules": "^1.5.1", + "prosemirror-keymap": "^1.2.3", + "prosemirror-model": "^1.25.9", + "prosemirror-schema-list": "^1.5.1", + "prosemirror-state": "^1.4.4", + "prosemirror-tables": "^1.8.5", + "prosemirror-transform": "^1.12.0", + "prosemirror-view": "^1.41.9" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@tiptap/starter-kit": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/starter-kit/-/starter-kit-3.27.4.tgz", + "integrity": "sha512-/sb6rFxNt5BO4hWpUwvHh+Yh1kNyCQuuz3oDpGef5HUUjSdu9p9rfNiHWIUKBadK8VXuw5es7N+UlZ4hma+gvA==", + "license": "MIT", + "dependencies": { + "@tiptap/core": "^3.27.4", + "@tiptap/extension-blockquote": "^3.27.4", + "@tiptap/extension-bold": "^3.27.4", + "@tiptap/extension-bullet-list": "^3.27.4", + "@tiptap/extension-code": "^3.27.4", + "@tiptap/extension-code-block": "^3.27.4", + "@tiptap/extension-document": "^3.27.4", + "@tiptap/extension-dropcursor": "^3.27.4", + "@tiptap/extension-gapcursor": "^3.27.4", + "@tiptap/extension-hard-break": "^3.27.4", + "@tiptap/extension-heading": "^3.27.4", + "@tiptap/extension-horizontal-rule": "^3.27.4", + "@tiptap/extension-italic": "^3.27.4", + "@tiptap/extension-link": "^3.27.4", + "@tiptap/extension-list": "^3.27.4", + "@tiptap/extension-list-item": "^3.27.4", + "@tiptap/extension-list-keymap": "^3.27.4", + "@tiptap/extension-ordered-list": "^3.27.4", + "@tiptap/extension-paragraph": "^3.27.4", + "@tiptap/extension-strike": "^3.27.4", + "@tiptap/extension-text": "^3.27.4", + "@tiptap/extension-underline": "^3.27.4", + "@tiptap/extensions": "^3.27.4", + "@tiptap/pm": "^3.27.4" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@tiptap/vue-3": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/vue-3/-/vue-3-3.27.4.tgz", + "integrity": "sha512-fTz21viWZlpZz7PPdHJde+kzYmgRXBivVLoC2KGEeltqsREa8JR0v/eUDbzeMjj6AIajlNDtmn96I3h14gZJLg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "optionalDependencies": { + "@tiptap/extension-bubble-menu": "^3.27.4", + "@tiptap/extension-floating-menu": "^3.27.4" + }, + "peerDependencies": { + "@floating-ui/dom": "^1.0.0", + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4", + "vue": "^3.0.0" + } }, "node_modules/@types/estree": { "version": "1.0.8", @@ -1055,12 +1608,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==", - "license": "MIT" - }, "node_modules/@types/lodash": { "version": "4.17.24", "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.24.tgz", @@ -1092,61 +1639,6 @@ "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", "license": "MIT" }, - "node_modules/@uppy/companion-client": { - "version": "2.2.2", - "resolved": "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz", - "integrity": "sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==", - "license": "MIT", - "dependencies": { - "@uppy/utils": "^4.1.2", - "namespace-emitter": "^2.0.1" - } - }, - "node_modules/@uppy/core": { - "version": "2.3.4", - "resolved": "https://registry.npmmirror.com/@uppy/core/-/core-2.3.4.tgz", - "integrity": "sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==", - "license": "MIT", - "dependencies": { - "@transloadit/prettier-bytes": "0.0.7", - "@uppy/store-default": "^2.1.1", - "@uppy/utils": "^4.1.3", - "lodash.throttle": "^4.1.1", - "mime-match": "^1.0.2", - "namespace-emitter": "^2.0.1", - "nanoid": "^3.1.25", - "preact": "^10.5.13" - } - }, - "node_modules/@uppy/store-default": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz", - "integrity": "sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==", - "license": "MIT" - }, - "node_modules/@uppy/utils": { - "version": "4.1.3", - "resolved": "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz", - "integrity": "sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==", - "license": "MIT", - "dependencies": { - "lodash.throttle": "^4.1.1" - } - }, - "node_modules/@uppy/xhr-upload": { - "version": "2.1.3", - "resolved": "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz", - "integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==", - "license": "MIT", - "dependencies": { - "@uppy/companion-client": "^2.2.2", - "@uppy/utils": "^4.1.2", - "nanoid": "^3.1.25" - }, - "peerDependencies": { - "@uppy/core": "^2.3.3" - } - }, "node_modules/@vitejs/plugin-vue": { "version": "6.0.4", "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-6.0.4.tgz", @@ -1397,155 +1889,6 @@ } } }, - "node_modules/@wangeditor/basic-modules": { - "version": "1.1.7", - "resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz", - "integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==", - "license": "MIT", - "dependencies": { - "is-url": "^1.2.4" - }, - "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "lodash.throttle": "^4.1.1", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/code-highlight": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz", - "integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==", - "license": "MIT", - "dependencies": { - "prismjs": "^1.23.0" - }, - "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/core": { - "version": "1.1.19", - "resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz", - "integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==", - "license": "MIT", - "dependencies": { - "@types/event-emitter": "^0.3.3", - "event-emitter": "^0.3.5", - "html-void-elements": "^2.0.0", - "i18next": "^20.4.0", - "scroll-into-view-if-needed": "^2.2.28", - "slate-history": "^0.66.0" - }, - "peerDependencies": { - "@uppy/core": "^2.1.1", - "@uppy/xhr-upload": "^2.0.3", - "dom7": "^3.0.0", - "is-hotkey": "^0.2.0", - "lodash.camelcase": "^4.3.0", - "lodash.clonedeep": "^4.5.0", - "lodash.debounce": "^4.0.8", - "lodash.foreach": "^4.5.0", - "lodash.isequal": "^4.5.0", - "lodash.throttle": "^4.1.1", - "lodash.toarray": "^4.4.0", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/editor": { - "version": "5.1.23", - "resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz", - "integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==", - "license": "MIT", - "dependencies": { - "@uppy/core": "^2.1.1", - "@uppy/xhr-upload": "^2.0.3", - "@wangeditor/basic-modules": "^1.1.7", - "@wangeditor/code-highlight": "^1.0.3", - "@wangeditor/core": "^1.1.19", - "@wangeditor/list-module": "^1.0.5", - "@wangeditor/table-module": "^1.1.4", - "@wangeditor/upload-image-module": "^1.0.2", - "@wangeditor/video-module": "^1.1.4", - "dom7": "^3.0.0", - "is-hotkey": "^0.2.0", - "lodash.camelcase": "^4.3.0", - "lodash.clonedeep": "^4.5.0", - "lodash.debounce": "^4.0.8", - "lodash.foreach": "^4.5.0", - "lodash.isequal": "^4.5.0", - "lodash.throttle": "^4.1.1", - "lodash.toarray": "^4.4.0", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/list-module": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz", - "integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==", - "license": "MIT", - "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/table-module": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz", - "integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==", - "license": "MIT", - "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "lodash.isequal": "^4.5.0", - "lodash.throttle": "^4.1.1", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/upload-image-module": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz", - "integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==", - "license": "MIT", - "peerDependencies": { - "@uppy/core": "^2.0.3", - "@uppy/xhr-upload": "^2.0.3", - "@wangeditor/basic-modules": "1.x", - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "lodash.foreach": "^4.5.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/video-module": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz", - "integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==", - "license": "MIT", - "peerDependencies": { - "@uppy/core": "^2.1.4", - "@uppy/xhr-upload": "^2.0.7", - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, "node_modules/acorn": { "version": "8.16.0", "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.16.0.tgz", @@ -1788,12 +2131,6 @@ "node": ">= 0.8" } }, - "node_modules/compute-scroll-into-view": { - "version": "1.0.20", - "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", - "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==", - "license": "MIT" - }, "node_modules/confbox": { "version": "0.2.4", "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.2.4.tgz", @@ -1848,19 +2185,6 @@ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "license": "MIT" }, - "node_modules/d": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/d/-/d-1.0.2.tgz", - "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", - "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.64", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -1988,15 +2312,6 @@ "jszip": ">=3.0.0" } }, - "node_modules/dom7": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz", - "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", - "license": "MIT", - "dependencies": { - "ssr-window": "^3.0.0-alpha.1" - } - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -2201,46 +2516,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es5-ext": { - "version": "0.10.64", - "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", - "hasInstallScript": true, - "license": "ISC", - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "esniff": "^2.0.1", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.4", - "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.4.tgz", - "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", - "license": "ISC", - "dependencies": { - "d": "^1.0.2", - "ext": "^1.7.0" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/esbuild": { "version": "0.27.3", "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.27.3.tgz", @@ -2296,21 +2571,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esniff": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/estree-walker": { "version": "3.0.3", "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", @@ -2321,16 +2581,6 @@ "@types/estree": "^1.0.0" } }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, "node_modules/exsolve": { "version": "1.0.8", "resolved": "https://registry.npmmirror.com/exsolve/-/exsolve-1.0.8.tgz", @@ -2338,15 +2588,6 @@ "dev": true, "license": "MIT" }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "license": "ISC", - "dependencies": { - "type": "^2.7.2" - } - }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz", @@ -2681,25 +2922,6 @@ "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", "license": "MIT" }, - "node_modules/html-void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz", - "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/i18next": { - "version": "20.6.1", - "resolved": "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz", - "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.0" - } - }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -2732,16 +2954,6 @@ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", "license": "MIT" }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", @@ -2908,12 +3120,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-hotkey": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz", - "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==", - "license": "MIT" - }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmmirror.com/is-map/-/is-map-2.0.3.tgz", @@ -2954,15 +3160,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.2.1.tgz", @@ -3056,12 +3253,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "license": "MIT" - }, "node_modules/is-weakmap": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/is-weakmap/-/is-weakmap-2.0.2.tgz", @@ -3172,6 +3363,12 @@ "immediate": "~3.0.5" } }, + "node_modules/linkifyjs": { + "version": "4.3.3", + "resolved": "https://registry.npmmirror.com/linkifyjs/-/linkifyjs-4.3.3.tgz", + "integrity": "sha512-P8aEP5U/D1/IlTY2OeYsErdwh9bGuLE30NcXtKEjgdHcahveQoQwM2yZNsioQHsWFz0P7KKudisbrzCgR0sDHg==", + "license": "MIT" + }, "node_modules/local-pkg": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-1.1.2.tgz", @@ -3213,49 +3410,6 @@ "lodash-es": "*" } }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "license": "MIT" - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==", - "license": "MIT" - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", - "license": "MIT" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", - "license": "MIT" - }, - "node_modules/lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==", - "license": "MIT" - }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz", @@ -3328,15 +3482,6 @@ "node": ">= 0.6" } }, - "node_modules/mime-match": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz", - "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==", - "license": "ISC", - "dependencies": { - "wildcard": "^1.1.0" - } - }, "node_modules/mime-types": { "version": "2.1.35", "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", @@ -3403,12 +3548,6 @@ "dev": true, "license": "MIT" }, - "node_modules/namespace-emitter": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz", - "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==", - "license": "MIT" - }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz", @@ -3444,12 +3583,6 @@ "node": ">= 4.4.x" } }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "license": "ISC" - }, "node_modules/normalize-wheel-es": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", @@ -3497,6 +3630,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/orderedmap": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/orderedmap/-/orderedmap-2.1.1.tgz", + "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", + "license": "MIT" + }, "node_modules/os": { "version": "0.1.2", "resolved": "https://registry.npmmirror.com/os/-/os-0.1.2.tgz", @@ -3647,31 +3786,151 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/preact": { - "version": "10.28.4", - "resolved": "https://registry.npmmirror.com/preact/-/preact-10.28.4.tgz", - "integrity": "sha512-uKFfOHWuSNpRFVTnljsCluEFq57OKT+0QdOiQo8XWnQ/pSvg7OpX5eNOejELXJMWy+BwM2nobz0FkvzmnpCNsQ==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - } - }, - "node_modules/prismjs": { - "version": "1.30.0", - "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.30.0.tgz", - "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "license": "MIT" }, + "node_modules/prosemirror-changeset": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/prosemirror-changeset/-/prosemirror-changeset-2.4.1.tgz", + "integrity": "sha512-96WBLhOaYhJ+kPhLg3uW359Tz6I/MfcrQfL4EGv4SrcqKEMC1gmoGrXHecPE8eOwTVCJ4IwgfzM8fFad25wNfw==", + "license": "MIT", + "dependencies": { + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-commands": { + "version": "1.7.1", + "resolved": "https://registry.npmmirror.com/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", + "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.10.2" + } + }, + "node_modules/prosemirror-dropcursor": { + "version": "1.8.3", + "resolved": "https://registry.npmmirror.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.3.tgz", + "integrity": "sha512-FoYbsJR8gK+DGlqhNoE29Loa38eIZPzQRIb1VMaDNBoo4OLP6vVof/jR8qFY/6XvUd6Dhug8MDCHl2a/h8RTfQ==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0", + "prosemirror-view": "^1.1.0" + } + }, + "node_modules/prosemirror-gapcursor": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.4.1.tgz", + "integrity": "sha512-pMdYaEnjNMSwl11yjEGtgTmLkR08m/Vl+Jj443167p9eB3HVQKhYCc4gmHVDsLPODfZfjr/MmirsdyZziXbQKw==", + "license": "MIT", + "dependencies": { + "prosemirror-keymap": "^1.0.0", + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-view": "^1.0.0" + } + }, + "node_modules/prosemirror-history": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/prosemirror-history/-/prosemirror-history-1.5.0.tgz", + "integrity": "sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.2.2", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.31.0", + "rope-sequence": "^1.3.0" + } + }, + "node_modules/prosemirror-inputrules": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/prosemirror-inputrules/-/prosemirror-inputrules-1.5.1.tgz", + "integrity": "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-keymap": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", + "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "w3c-keyname": "^2.2.0" + } + }, + "node_modules/prosemirror-model": { + "version": "1.25.11", + "resolved": "https://registry.npmmirror.com/prosemirror-model/-/prosemirror-model-1.25.11.tgz", + "integrity": "sha512-QWg9RhnpLlogAmp3p96uEFrE5txQpFynd4vhBAELkwgOCWQs/X0yCzB3/hrHqiPwf91RG5KyWq6553zs9JqIOQ==", + "license": "MIT", + "dependencies": { + "orderedmap": "^2.0.0" + } + }, + "node_modules/prosemirror-schema-list": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz", + "integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.7.3" + } + }, + "node_modules/prosemirror-state": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/prosemirror-state/-/prosemirror-state-1.4.4.tgz", + "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.27.0" + } + }, + "node_modules/prosemirror-tables": { + "version": "1.8.5", + "resolved": "https://registry.npmmirror.com/prosemirror-tables/-/prosemirror-tables-1.8.5.tgz", + "integrity": "sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw==", + "license": "MIT", + "dependencies": { + "prosemirror-keymap": "^1.2.3", + "prosemirror-model": "^1.25.4", + "prosemirror-state": "^1.4.4", + "prosemirror-transform": "^1.10.5", + "prosemirror-view": "^1.41.4" + } + }, + "node_modules/prosemirror-transform": { + "version": "1.12.0", + "resolved": "https://registry.npmmirror.com/prosemirror-transform/-/prosemirror-transform-1.12.0.tgz", + "integrity": "sha512-GxboyN4AMIsoHNtz5uf2r2Ru551i5hWeCMD6E2Ib4Eogqoub0NflniaBPVQ4MrGE5yZ8JV9tUHg9qcZTTrcN4w==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.21.0" + } + }, + "node_modules/prosemirror-view": { + "version": "1.42.1", + "resolved": "https://registry.npmmirror.com/prosemirror-view/-/prosemirror-view-1.42.1.tgz", + "integrity": "sha512-rRqzZnRgkyh69XoOMrfFJHwauHscLBmHbq772kwbic1ymQAM8gXjzEbJse5j1ep2UO2HRIAQL0bY3kZ/RoqjVw==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.25.8", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -3824,6 +4083,12 @@ "fsevents": "~2.3.2" } }, + "node_modules/rope-sequence": { + "version": "1.3.4", + "resolved": "https://registry.npmmirror.com/rope-sequence/-/rope-sequence-1.3.4.tgz", + "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", + "license": "MIT" + }, "node_modules/safe-array-concat": { "version": "1.1.3", "resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz", @@ -3911,15 +4176,6 @@ "node": ">=11.0.0" } }, - "node_modules/scroll-into-view-if-needed": { - "version": "2.2.31", - "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", - "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", - "license": "MIT", - "dependencies": { - "compute-scroll-into-view": "^1.0.20" - } - }, "node_modules/scule": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz", @@ -4061,38 +4317,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/slate": { - "version": "0.72.8", - "resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz", - "integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==", - "license": "MIT", - "dependencies": { - "immer": "^9.0.6", - "is-plain-object": "^5.0.0", - "tiny-warning": "^1.0.3" - } - }, - "node_modules/slate-history": { - "version": "0.66.0", - "resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz", - "integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==", - "license": "MIT", - "dependencies": { - "is-plain-object": "^5.0.0" - }, - "peerDependencies": { - "slate": ">=0.65.3" - } - }, - "node_modules/snabbdom": { - "version": "3.6.3", - "resolved": "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.6.3.tgz", - "integrity": "sha512-W2lHLLw2qR2Vv0DcMmcxXqcfdBaIcoN+y/86SmHv8fn4DazEQSH6KN3TjZcWvwujW56OHiiirsbHWZb4vx/0fg==", - "license": "MIT", - "engines": { - "node": ">=12.17.0" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", @@ -4133,12 +4357,6 @@ "node": ">=0.8" } }, - "node_modules/ssr-window": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz", - "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==", - "license": "MIT" - }, "node_modules/stop-iteration-iterator": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", @@ -4269,12 +4487,6 @@ "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", - "license": "MIT" - }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -4315,12 +4527,6 @@ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "license": "0BSD" }, - "node_modules/type": { - "version": "2.7.3", - "resolved": "https://registry.npmmirror.com/type/-/type-2.7.3.tgz", - "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", - "license": "ISC" - }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", @@ -4760,6 +4966,12 @@ "vue": "^3.0.0" } }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" + }, "node_modules/webpack-virtual-modules": { "version": "0.6.2", "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", @@ -4858,12 +5070,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wildcard": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz", - "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==", - "license": "MIT" - }, "node_modules/wmf": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz", diff --git a/backend/package.json b/backend/package.json index b50b0fb..f46c8df 100644 --- a/backend/package.json +++ b/backend/package.json @@ -10,7 +10,21 @@ }, "dependencies": { "@element-plus/icons-vue": "^2.3.2", - "@wangeditor/editor": "^5.1.23", + "@tiptap/extension-color": "^3.27.4", + "@tiptap/extension-highlight": "^3.27.4", + "@tiptap/extension-image": "^3.27.4", + "@tiptap/extension-link": "^3.27.4", + "@tiptap/extension-placeholder": "^3.27.4", + "@tiptap/extension-table": "^3.27.4", + "@tiptap/extension-table-cell": "^3.27.4", + "@tiptap/extension-table-header": "^3.27.4", + "@tiptap/extension-table-row": "^3.27.4", + "@tiptap/extension-text-align": "^3.27.4", + "@tiptap/extension-text-style": "^3.27.4", + "@tiptap/extension-underline": "^3.27.4", + "@tiptap/pm": "^3.27.4", + "@tiptap/starter-kit": "^3.27.4", + "@tiptap/vue-3": "^3.27.4", "axios": "^1.13.1", "chart": "^0.1.2", "chart.js": "^4.5.1", diff --git a/backend/src/assets/less/style.less b/backend/src/assets/less/style.less index 212f329..339e226 100644 --- a/backend/src/assets/less/style.less +++ b/backend/src/assets/less/style.less @@ -44,7 +44,7 @@ body { pointer-events: auto !important; } -.wang-editor-wrapper{ +.tiptap-editor-wrapper{ border: 1px solid #dcdfe6 !important; .toolbar-container{ @@ -55,8 +55,7 @@ body { background-color: #ffffff !important; } - :deep(.w-e-text), - :deep(.w-e-text-container) { + :deep(.tiptap) { background-color: transparent !important; * { @@ -245,14 +244,14 @@ body { margin: 8px 0 !important; } - .w-e-panel-tab-content { + .tiptap-panel-tab-content { color: #1a1a2e !important; } } } html.dark { - .wang-editor-wrapper { + .tiptap-editor-wrapper { border-color: #3d3d3d !important; background-color: #1a1a1a !important; @@ -273,8 +272,7 @@ html.dark { } } - :deep(.w-e-text), - :deep(.w-e-text-container) { + :deep(.tiptap) { background-color: transparent !important; * { @@ -421,7 +419,7 @@ html.dark { border-radius: 4px !important; } - .w-e-panel-tab-content { + .tiptap-panel-tab-content { color: #e0e0e0 !important; } } diff --git a/backend/src/main.js b/backend/src/main.js index b0a1386..95db43e 100644 --- a/backend/src/main.js +++ b/backend/src/main.js @@ -14,12 +14,12 @@ import { createPinia } from 'pinia' import { useAuthStore } from './stores/auth' // import { initTheme } from './utils/theme' // 导入全局组件 -import WangEditor from '@/views/components/WangEditor.vue'; +import TiptapEditor from '@/views/components/TiptapEditor.vue'; const app = createApp(App) const pinia = createPinia() -// 全局注册 WangEditor 组件 -app.component('WangEditor', WangEditor); +// 全局注册 TiptapEditor 组件 +app.component('TiptapEditor', TiptapEditor); for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component) diff --git a/backend/src/views/Main.vue b/backend/src/views/Main.vue index 977f7a7..5d713ea 100644 --- a/backend/src/views/Main.vue +++ b/backend/src/views/Main.vue @@ -50,20 +50,17 @@ onMounted(() => { tabsWrapper.addEventListener('contextmenu', (e) => { // 排除编辑器相关区域,避免影响编辑器功能 // 如果点击在编辑器区域内,完全不做任何处理(优先检查) - const editorWrapper = e.target.closest?.('.wang-editor-wrapper'); + const editorWrapper = e.target.closest?.('.tiptap-editor-wrapper'); if (editorWrapper) { // 在编辑器区域内,不处理右键菜单,也不阻止事件 return; } - + // 检查其他编辑器元素(工具栏、下拉面板等) const editorElements = [ - '.w-e-toolbar', - '.w-e-drop-panel', - '.w-e-modal', - '.w-e-toolbar-menu', - '[data-menu-key]', - '[class*="w-e-"]' + '.tiptap-toolbar', + '.tiptap', + '[class*="tiptap-"]' ]; for (const selector of editorElements) { @@ -288,25 +285,18 @@ const showContextMenu = (event, tab) => { // 如果在编辑器区域内,立即返回,不执行任何操作,让编辑器的事件正常处理 // 先检查是否在编辑器包装器内(最快判断) - const wangEditorWrapper = target.closest?.('.wang-editor-wrapper'); - if (wangEditorWrapper) { + const tiptapEditorWrapper = target.closest?.('.tiptap-editor-wrapper'); + if (tiptapEditorWrapper) { // 在编辑器包装器内,完全不做任何处理,让编辑器正常处理 return; } - + // 检查所有可能的编辑器元素(包括工具栏、下拉面板、模态框等) const editorSelectors = [ - '.w-e-toolbar', - '.w-e-drop-panel', - '.w-e-modal', - '.w-e-toolbar-menu', - '.toolbar-container', + '.tiptap-toolbar', + '.tiptap', '.editor-container', - '.w-e-text-container', - '.w-e-text', - // 检查是否有 WangEditor 相关的元素 - '[data-menu-key]', - '[class*="w-e-"]' + '[class*="tiptap-"]' ]; for (const selector of editorSelectors) { @@ -339,7 +329,7 @@ const showContextMenu = (event, tab) => { } // 排除编辑器区域和右键菜单本身 - if (target.closest?.('.w-e-toolbar') || target.closest?.('.context-menu') || target.closest?.('.wang-editor-wrapper')) { + if (target.closest?.('.tiptap-toolbar') || target.closest?.('.context-menu') || target.closest?.('.tiptap-editor-wrapper')) { return; } hideContextMenu(); @@ -734,12 +724,9 @@ const canCloseRight = computed(() => { } } -// 确保编辑器工具栏和下拉面板的 z-index 高于右键菜单 -:deep(.w-e-toolbar), -:deep(.w-e-drop-panel), -:deep(.w-e-modal), -:deep(.w-e-toolbar-menu) { - z-index: 10000 !important; // 高于右键菜单的 9999 +// 确保编辑器工具栏的 z-index 高于右键菜单 +:deep(.tiptap-toolbar) { + z-index: 10000 !important; pointer-events: auto !important; } diff --git a/backend/src/views/apps/cms/articles/components/edit.vue b/backend/src/views/apps/cms/articles/components/edit.vue index 12bee9a..7d53bed 100644 --- a/backend/src/views/apps/cms/articles/components/edit.vue +++ b/backend/src/views/apps/cms/articles/components/edit.vue @@ -141,7 +141,7 @@ - + @@ -171,7 +171,6 @@ + + diff --git a/backend/src/views/components/WangEditor.vue b/backend/src/views/components/WangEditor.vue deleted file mode 100644 index e2d9ec1..0000000 --- a/backend/src/views/components/WangEditor.vue +++ /dev/null @@ -1,582 +0,0 @@ - - - - - - - - - - diff --git a/docs/NOTEBOOK_DEPLOYMENT_CHECKLIST.md b/docs/NOTEBOOK_DEPLOYMENT_CHECKLIST.md index 432075b..c9858c5 100644 --- a/docs/NOTEBOOK_DEPLOYMENT_CHECKLIST.md +++ b/docs/NOTEBOOK_DEPLOYMENT_CHECKLIST.md @@ -24,15 +24,13 @@ - [✅] API文件已创建: `platform/src/api/notebook.js` - [✅] 主页面已创建: `platform/src/views/apps/notebook/index.vue` - [✅] 编辑器组件已创建: `platform/src/views/apps/notebook/components/edit.vue` -- [✅] WangEditor组件已创建: `platform/src/views/apps/notebook/components/WangEditor.vue` +- [✅] TiptapEditor组件已创建: `platform/src/views/components/TiptapEditor.vue` ### 4. 依赖检查 -- [ ] 前端安装 WangEditor +- [ ] 前端安装 Tiptap ```bash cd platform - npm install @wangeditor/editor - # 或 - yarn add @wangeditor/editor + npm install @tiptap/vue-3 @tiptap/pm @tiptap/starter-kit @tiptap/extension-underline @tiptap/extension-text-style @tiptap/extension-color @tiptap/extension-highlight @tiptap/extension-placeholder @tiptap/extension-link @tiptap/extension-image @tiptap/extension-table @tiptap/extension-table-row @tiptap/extension-table-cell @tiptap/extension-table-header @tiptap/extension-text-align ``` ### 5. 菜单配置 @@ -200,11 +198,11 @@ SOURCE sql/yz_platform_notebook.sql; ### 3. 前端错误 -**问题**: WangEditor 未定义 +**问题**: TiptapEditor 未定义 **解决**: ```bash -npm install @wangeditor/editor +npm install @tiptap/vue-3 @tiptap/pm @tiptap/starter-kit ``` --- diff --git a/platform/package-lock.json b/platform/package-lock.json index ff916a0..9b09a85 100644 --- a/platform/package-lock.json +++ b/platform/package-lock.json @@ -9,7 +9,21 @@ "version": "0.0.0", "dependencies": { "@element-plus/icons-vue": "^2.3.2", - "@wangeditor/editor": "^5.1.23", + "@tiptap/extension-color": "^3.27.4", + "@tiptap/extension-highlight": "^3.27.4", + "@tiptap/extension-image": "^3.27.4", + "@tiptap/extension-link": "^3.27.4", + "@tiptap/extension-placeholder": "^3.27.4", + "@tiptap/extension-table": "^3.27.4", + "@tiptap/extension-table-cell": "^3.27.4", + "@tiptap/extension-table-header": "^3.27.4", + "@tiptap/extension-table-row": "^3.27.4", + "@tiptap/extension-text-align": "^3.27.4", + "@tiptap/extension-text-style": "^3.27.4", + "@tiptap/extension-underline": "^3.27.4", + "@tiptap/pm": "^3.27.4", + "@tiptap/starter-kit": "^3.27.4", + "@tiptap/vue-3": "^3.27.4", "axios": "^1.13.1", "chart": "^0.1.2", "chart.js": "^4.5.1", @@ -69,15 +83,6 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/runtime": { - "version": "7.28.6", - "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.28.6.tgz", - "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/runtime-corejs2": { "version": "7.29.2", "resolved": "https://registry.npmmirror.com/@babel/runtime-corejs2/-/runtime-corejs2-7.29.2.tgz", @@ -1063,11 +1068,559 @@ "win32" ] }, - "node_modules/@transloadit/prettier-bytes": { - "version": "0.0.7", - "resolved": "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", - "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==", - "license": "MIT" + "node_modules/@tiptap/core": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/core/-/core-3.27.4.tgz", + "integrity": "sha512-8W/GwlEn0JwNdpyVfTWcXwHYUpj9BWwO++YxtizmgjJzlwigSh7/xLVJMwVykuQHQ2fCq5rkUvmBRtpHOMLUQA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-blockquote": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-blockquote/-/extension-blockquote-3.27.4.tgz", + "integrity": "sha512-d1tOHgP3R5cOE+Ot8qL/dkLXRByajgn+j6cCXHqDtmJO2wsK9knmbKQ0SEjbKrU6OgHrTnY/EotNxBEBW9HGoA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-bold": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-bold/-/extension-bold-3.27.4.tgz", + "integrity": "sha512-wTtJUUAxCAZ01ICH2DNlOBzzHKRQ1ZST8aRYtIhBPzqEUhnJaKGcjnDB4X49fqPi48iXaPxzhsInDl+rVUujWg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-bubble-menu": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.27.4.tgz", + "integrity": "sha512-Poy7xwcD3POG5ew/TW7mYXv7m++vCchvHxPUqIfnTxBxvvvqDZkPYFWZS1lvPrSBtm1DcfUTQAgVutM5NDZ99Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-bullet-list": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-bullet-list/-/extension-bullet-list-3.27.4.tgz", + "integrity": "sha512-rvja0N1RnwGJAVwDdbUfDIJ4NoT+KjPFaZudKiPuEMfMHfbqe4xcbbC2hsfs61JNcl2xmx+ohV6lzD9YxxJl1w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "3.27.4" + } + }, + "node_modules/@tiptap/extension-code": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-code/-/extension-code-3.27.4.tgz", + "integrity": "sha512-aPc7opCR1ylK4m4c2lsjLsGpEBD1fLQQKWd5PbZiJvrTF8gkdGZlYLt9A6VukpxeJyHhb22Jaj4fxgKmGMeTtw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-code-block": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-code-block/-/extension-code-block-3.27.4.tgz", + "integrity": "sha512-a5caWfWN6Z6usy48vzJDDOhWoA6+rFFCHGpQM7jXn/7rRzYPcvBzTZUGptjEbltj4YqtrQ2tVwTJcCtbb+mknA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-color": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-color/-/extension-color-3.27.4.tgz", + "integrity": "sha512-uGbgErKGKO4OTBGqnXOA1CGXa3IqoBaiPBGcHu/px01fS8EVFu0A7q5HS6vxFiMK6qW5x71sEpCA+FUINMAb3g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-text-style": "3.27.4" + } + }, + "node_modules/@tiptap/extension-document": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-document/-/extension-document-3.27.4.tgz", + "integrity": "sha512-7nAqgfkgb9HADBeCTnOHuTiyZuxfxvMPT3nH4OZeY+cmtkI1On3QffqlmtcUPvNbkhT3o9ehA1hVfCnQ1Ye4LQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-dropcursor": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-dropcursor/-/extension-dropcursor-3.27.4.tgz", + "integrity": "sha512-RiZasQJuUTUO3aME16Bn8eJH7cYnvhT5JCFDFq0ya/1iFI9wUQA2NJC5tb5TrZ74+sQwkYU9VzexnchM481Y9w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "3.27.4" + } + }, + "node_modules/@tiptap/extension-floating-menu": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-floating-menu/-/extension-floating-menu-3.27.4.tgz", + "integrity": "sha512-tnZywwoNDuEcUZmYYIztXl3PpIKUq+gKeaYPuZhpYEVTThU44tzK3ZuFOmd+qf2aAa1MQwxKWqUuLpNK77bwNw==", + "license": "MIT", + "optional": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@floating-ui/dom": "^1.0.0", + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-gapcursor": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-gapcursor/-/extension-gapcursor-3.27.4.tgz", + "integrity": "sha512-svLwSKcFhzpcJeXvxxKkRFuQpykmXrQefVhEsaXq0L95yJIIAGKMRmQC3mxKdzL2j0P9cY7V41bNVSyOAyvclw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "3.27.4" + } + }, + "node_modules/@tiptap/extension-hard-break": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-hard-break/-/extension-hard-break-3.27.4.tgz", + "integrity": "sha512-W+Z9pmDgqjbdu3NeZOQrzA15iM4w60Yd8l2CYzxcdApPVIfYzb2S3a7+u1RqW9wnTYb6xyZjASmFNfxXS4P4cg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-heading": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-heading/-/extension-heading-3.27.4.tgz", + "integrity": "sha512-RgvpxzuYk6QEK+az+eiXpWvGlUso42zNcGnjyUrvskoZjS47MbhSg8ylRYQSRtXE0ETlXhAx4J7iGlGr72kyIw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-highlight": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-highlight/-/extension-highlight-3.27.4.tgz", + "integrity": "sha512-STRX1qJLhTZslBF8fEE5qpTGrFd/g7Ufidjxt84p0uT8FrtcbfPUwyweeYwhZp7Iw8n+qODGYnheJTOpfaW2JA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-horizontal-rule": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.27.4.tgz", + "integrity": "sha512-2eQU/55nE5mhMJHALtLMuBL3dcVJUDVVT7n+uZYMaYE63BtCvC4VS08YLFSR7JZSVJIlgVAmdt5nAw0B+rEPNA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-image": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-image/-/extension-image-3.27.4.tgz", + "integrity": "sha512-yQ8CazyOL4z1/NbV1NLGv6DvchVhOXHH3uQ7md5VX/IGZruFpnm8IpF9MDpdAUxUFmTsXJDYyO2lWGO1PYWG8A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-italic": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-italic/-/extension-italic-3.27.4.tgz", + "integrity": "sha512-PeZT4XbyxAp7Lqo/hfA1k5LI27g1RlgS+YgXp2CeHXIrUfSpO5HlZXh02Bvb0pOdl3RFw2tEKtlHzjt8Y1+Nwg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-link": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-link/-/extension-link-3.27.4.tgz", + "integrity": "sha512-6K/FkNwMLWWQbNWKlycrUPTN7YcyVFdFwZncoBXe5WyarRjLTGw7ywafnCI9PDIWSq7ttzVL4NgjN2IN8kBXww==", + "license": "MIT", + "dependencies": { + "linkifyjs": "^4.3.3" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-list": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-list/-/extension-list-3.27.4.tgz", + "integrity": "sha512-A0BgmRO1RE0yLCx9w7GQITtKfS9wLE5cdngSYDiSpwulcXJhJjKm5mZ4OUZmks2VN4HO5jMl2BWCGt2NSDhA+w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-list-item": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-list-item/-/extension-list-item-3.27.4.tgz", + "integrity": "sha512-z5TVuPw2mkK0B/x+gFg3uUV7tBdaElDFg0zVgnXZCqlSVTLfIyInOOnG5LTWoAd9BdzBjGrzE3PohDcLVDDGBQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "3.27.4" + } + }, + "node_modules/@tiptap/extension-list-keymap": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-list-keymap/-/extension-list-keymap-3.27.4.tgz", + "integrity": "sha512-on7JNDi7Eqz7UdZeZdiO83bQHo0flVDHzjmtR+v/nrCGW9H15D3CHs5+4ozLDiCvTK8tbkBuut/l9AWNxcCE/Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "3.27.4" + } + }, + "node_modules/@tiptap/extension-ordered-list": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-ordered-list/-/extension-ordered-list-3.27.4.tgz", + "integrity": "sha512-bHwLiof0FqJfWzB0act7oEKMTZatEKQ4IYCvmyF5EktjMs4kxEatkPp4Yx/1LSYSjLy1MMT7oLELyaz2FFYyXA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "3.27.4" + } + }, + "node_modules/@tiptap/extension-paragraph": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-paragraph/-/extension-paragraph-3.27.4.tgz", + "integrity": "sha512-8Dnr1J5s/s4XYYuEF3b784NnCxLjXOlQpmGyXRxTAzW7JaOP08tIUJWVNvSMekfXc2vXa33HUbqjxyyWZEQ6LQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-placeholder": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-placeholder/-/extension-placeholder-3.27.4.tgz", + "integrity": "sha512-7hBoFLeddCv1WzkqB0x3coZ1Hp9WZ9wLoRXIUtUhRKMpzFq2IlTtW1iw88g9pTJnL98bCCElN4DZ4mYtaQvmgA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "3.27.4" + } + }, + "node_modules/@tiptap/extension-strike": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-strike/-/extension-strike-3.27.4.tgz", + "integrity": "sha512-8OXwcPKuV3ToBBgyvDxH1jQdObK5FIKCGiyIim6qNWiOpi9BhM3XYD+aO1khjv8qIjtoI/DYbizF4ewj09fX2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-table": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-table/-/extension-table-3.27.4.tgz", + "integrity": "sha512-ejQjqt8GjUn4YswG/SsiLr/W3LZApZGUEDW0N7NoOduE0dBZ/pVJHPuqWu33kK+phJjSNCIN+bSAkoWE01rZSw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/extension-table-cell": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-table-cell/-/extension-table-cell-3.27.4.tgz", + "integrity": "sha512-1B7J4ZiaXaGxT2IB3hrwtz0433bFVSWsDB+B125vt2DZQr9bgdX40GLesSPlymqOdMxKJwksCPMan2ON2LkVAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-table": "3.27.4" + } + }, + "node_modules/@tiptap/extension-table-header": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-table-header/-/extension-table-header-3.27.4.tgz", + "integrity": "sha512-V/O690Z6VcHMAWDfgVFiOCwx3eE2/HM2gH+Fp0eQe3WnajQj2DPViW4VWR/rNVl3DspHoL/EU+eEsnhcvO34Vw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-table": "3.27.4" + } + }, + "node_modules/@tiptap/extension-table-row": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-table-row/-/extension-table-row-3.27.4.tgz", + "integrity": "sha512-2RTJtcy90Tc2+HpW1JyKMTwg/zz4u6hHof4CTcJS/eXLk3g1L60DDzYvz4GzBxQvsOT3QVcbaU9QOk9A3Sx7Fg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-table": "3.27.4" + } + }, + "node_modules/@tiptap/extension-text": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-text/-/extension-text-3.27.4.tgz", + "integrity": "sha512-lKQH/hP4FBXsziHypd6Ywj8JFvMLM5GVkK1xsH6yApNuXbHq95rd42ZOYWpYILIBib7tlaz93z61d74UrJiuiw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-text-align": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-text-align/-/extension-text-align-3.27.4.tgz", + "integrity": "sha512-ArfL7GLOXCSmrmiBiaWwAf7RPHXDdxLGPru29qKDLQDthjXcNOdlwlPBbolRu7mXwlSmaYpqWGrG75/AEat3mw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-text-style": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-text-style/-/extension-text-style-3.27.4.tgz", + "integrity": "sha512-Wmj64TQXY85gc7lUNbubW32sDCnVOJlpGraMeARRC9Z0EKBX1JpAxddo/64F17bn3kzLxXVszBFyLRcNgTdU2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extension-underline": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extension-underline/-/extension-underline-3.27.4.tgz", + "integrity": "sha512-nRJGvRyEXDtINlHTW+C2oWcL3vmX1URVxAPpkD3Zwn5Rb/vEeOU/pk/w97I0iid816MR4iVbvl1XhbUVegK9gQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4" + } + }, + "node_modules/@tiptap/extensions": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/extensions/-/extensions-3.27.4.tgz", + "integrity": "sha512-d8opkg2iGtVwJmNGIqv0blfRxnvWOJp1brz+Z8CsP4ojSS2ZtaE46d6JSQ5OeJ7nMpjhT+9wh4UQcA7OSEO59w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4" + } + }, + "node_modules/@tiptap/pm": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/pm/-/pm-3.27.4.tgz", + "integrity": "sha512-UB8lcyomfWk7YGI2PZKNqcYXfyRA+PFj+QntlsUXyrsiA5JJIaE8SHKYjxKlGG/xtW3EtPm1b0p38T9Mk4xiFw==", + "license": "MIT", + "dependencies": { + "prosemirror-changeset": "^2.4.1", + "prosemirror-commands": "^1.7.1", + "prosemirror-dropcursor": "^1.8.2", + "prosemirror-gapcursor": "^1.4.1", + "prosemirror-history": "^1.5.0", + "prosemirror-inputrules": "^1.5.1", + "prosemirror-keymap": "^1.2.3", + "prosemirror-model": "^1.25.9", + "prosemirror-schema-list": "^1.5.1", + "prosemirror-state": "^1.4.4", + "prosemirror-tables": "^1.8.5", + "prosemirror-transform": "^1.12.0", + "prosemirror-view": "^1.41.9" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@tiptap/starter-kit": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/starter-kit/-/starter-kit-3.27.4.tgz", + "integrity": "sha512-/sb6rFxNt5BO4hWpUwvHh+Yh1kNyCQuuz3oDpGef5HUUjSdu9p9rfNiHWIUKBadK8VXuw5es7N+UlZ4hma+gvA==", + "license": "MIT", + "dependencies": { + "@tiptap/core": "^3.27.4", + "@tiptap/extension-blockquote": "^3.27.4", + "@tiptap/extension-bold": "^3.27.4", + "@tiptap/extension-bullet-list": "^3.27.4", + "@tiptap/extension-code": "^3.27.4", + "@tiptap/extension-code-block": "^3.27.4", + "@tiptap/extension-document": "^3.27.4", + "@tiptap/extension-dropcursor": "^3.27.4", + "@tiptap/extension-gapcursor": "^3.27.4", + "@tiptap/extension-hard-break": "^3.27.4", + "@tiptap/extension-heading": "^3.27.4", + "@tiptap/extension-horizontal-rule": "^3.27.4", + "@tiptap/extension-italic": "^3.27.4", + "@tiptap/extension-link": "^3.27.4", + "@tiptap/extension-list": "^3.27.4", + "@tiptap/extension-list-item": "^3.27.4", + "@tiptap/extension-list-keymap": "^3.27.4", + "@tiptap/extension-ordered-list": "^3.27.4", + "@tiptap/extension-paragraph": "^3.27.4", + "@tiptap/extension-strike": "^3.27.4", + "@tiptap/extension-text": "^3.27.4", + "@tiptap/extension-underline": "^3.27.4", + "@tiptap/extensions": "^3.27.4", + "@tiptap/pm": "^3.27.4" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@tiptap/vue-3": { + "version": "3.27.4", + "resolved": "https://registry.npmmirror.com/@tiptap/vue-3/-/vue-3-3.27.4.tgz", + "integrity": "sha512-fTz21viWZlpZz7PPdHJde+kzYmgRXBivVLoC2KGEeltqsREa8JR0v/eUDbzeMjj6AIajlNDtmn96I3h14gZJLg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "optionalDependencies": { + "@tiptap/extension-bubble-menu": "^3.27.4", + "@tiptap/extension-floating-menu": "^3.27.4" + }, + "peerDependencies": { + "@floating-ui/dom": "^1.0.0", + "@tiptap/core": "3.27.4", + "@tiptap/pm": "3.27.4", + "vue": "^3.0.0" + } }, "node_modules/@types/estree": { "version": "1.0.8", @@ -1076,12 +1629,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==", - "license": "MIT" - }, "node_modules/@types/lodash": { "version": "4.17.24", "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.24.tgz", @@ -1113,61 +1660,6 @@ "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", "license": "MIT" }, - "node_modules/@uppy/companion-client": { - "version": "2.2.2", - "resolved": "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz", - "integrity": "sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==", - "license": "MIT", - "dependencies": { - "@uppy/utils": "^4.1.2", - "namespace-emitter": "^2.0.1" - } - }, - "node_modules/@uppy/core": { - "version": "2.3.4", - "resolved": "https://registry.npmmirror.com/@uppy/core/-/core-2.3.4.tgz", - "integrity": "sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==", - "license": "MIT", - "dependencies": { - "@transloadit/prettier-bytes": "0.0.7", - "@uppy/store-default": "^2.1.1", - "@uppy/utils": "^4.1.3", - "lodash.throttle": "^4.1.1", - "mime-match": "^1.0.2", - "namespace-emitter": "^2.0.1", - "nanoid": "^3.1.25", - "preact": "^10.5.13" - } - }, - "node_modules/@uppy/store-default": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz", - "integrity": "sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==", - "license": "MIT" - }, - "node_modules/@uppy/utils": { - "version": "4.1.3", - "resolved": "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz", - "integrity": "sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==", - "license": "MIT", - "dependencies": { - "lodash.throttle": "^4.1.1" - } - }, - "node_modules/@uppy/xhr-upload": { - "version": "2.1.3", - "resolved": "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz", - "integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==", - "license": "MIT", - "dependencies": { - "@uppy/companion-client": "^2.2.2", - "@uppy/utils": "^4.1.2", - "nanoid": "^3.1.25" - }, - "peerDependencies": { - "@uppy/core": "^2.3.3" - } - }, "node_modules/@vitejs/plugin-vue": { "version": "6.0.4", "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-6.0.4.tgz", @@ -1418,155 +1910,6 @@ } } }, - "node_modules/@wangeditor/basic-modules": { - "version": "1.1.7", - "resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz", - "integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==", - "license": "MIT", - "dependencies": { - "is-url": "^1.2.4" - }, - "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "lodash.throttle": "^4.1.1", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/code-highlight": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz", - "integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==", - "license": "MIT", - "dependencies": { - "prismjs": "^1.23.0" - }, - "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/core": { - "version": "1.1.19", - "resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz", - "integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==", - "license": "MIT", - "dependencies": { - "@types/event-emitter": "^0.3.3", - "event-emitter": "^0.3.5", - "html-void-elements": "^2.0.0", - "i18next": "^20.4.0", - "scroll-into-view-if-needed": "^2.2.28", - "slate-history": "^0.66.0" - }, - "peerDependencies": { - "@uppy/core": "^2.1.1", - "@uppy/xhr-upload": "^2.0.3", - "dom7": "^3.0.0", - "is-hotkey": "^0.2.0", - "lodash.camelcase": "^4.3.0", - "lodash.clonedeep": "^4.5.0", - "lodash.debounce": "^4.0.8", - "lodash.foreach": "^4.5.0", - "lodash.isequal": "^4.5.0", - "lodash.throttle": "^4.1.1", - "lodash.toarray": "^4.4.0", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/editor": { - "version": "5.1.23", - "resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz", - "integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==", - "license": "MIT", - "dependencies": { - "@uppy/core": "^2.1.1", - "@uppy/xhr-upload": "^2.0.3", - "@wangeditor/basic-modules": "^1.1.7", - "@wangeditor/code-highlight": "^1.0.3", - "@wangeditor/core": "^1.1.19", - "@wangeditor/list-module": "^1.0.5", - "@wangeditor/table-module": "^1.1.4", - "@wangeditor/upload-image-module": "^1.0.2", - "@wangeditor/video-module": "^1.1.4", - "dom7": "^3.0.0", - "is-hotkey": "^0.2.0", - "lodash.camelcase": "^4.3.0", - "lodash.clonedeep": "^4.5.0", - "lodash.debounce": "^4.0.8", - "lodash.foreach": "^4.5.0", - "lodash.isequal": "^4.5.0", - "lodash.throttle": "^4.1.1", - "lodash.toarray": "^4.4.0", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/list-module": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz", - "integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==", - "license": "MIT", - "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/table-module": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz", - "integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==", - "license": "MIT", - "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "lodash.isequal": "^4.5.0", - "lodash.throttle": "^4.1.1", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/upload-image-module": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz", - "integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==", - "license": "MIT", - "peerDependencies": { - "@uppy/core": "^2.0.3", - "@uppy/xhr-upload": "^2.0.3", - "@wangeditor/basic-modules": "1.x", - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "lodash.foreach": "^4.5.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/video-module": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz", - "integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==", - "license": "MIT", - "peerDependencies": { - "@uppy/core": "^2.1.4", - "@uppy/xhr-upload": "^2.0.7", - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, "node_modules/acorn": { "version": "8.16.0", "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.16.0.tgz", @@ -1822,12 +2165,6 @@ "node": ">= 0.8" } }, - "node_modules/compute-scroll-into-view": { - "version": "1.0.20", - "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", - "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==", - "license": "MIT" - }, "node_modules/confbox": { "version": "0.2.4", "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.2.4.tgz", @@ -1882,19 +2219,6 @@ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "license": "MIT" }, - "node_modules/d": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/d/-/d-1.0.2.tgz", - "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", - "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.64", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -2021,15 +2345,6 @@ "jszip": ">=3.0.0" } }, - "node_modules/dom7": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz", - "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", - "license": "MIT", - "dependencies": { - "ssr-window": "^3.0.0-alpha.1" - } - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -2234,46 +2549,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es5-ext": { - "version": "0.10.64", - "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", - "hasInstallScript": true, - "license": "ISC", - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "esniff": "^2.0.1", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.4", - "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.4.tgz", - "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", - "license": "ISC", - "dependencies": { - "d": "^1.0.2", - "ext": "^1.7.0" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/esbuild": { "version": "0.27.3", "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.27.3.tgz", @@ -2329,21 +2604,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esniff": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/estree-walker": { "version": "3.0.3", "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", @@ -2354,16 +2614,6 @@ "@types/estree": "^1.0.0" } }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, "node_modules/exsolve": { "version": "1.0.8", "resolved": "https://registry.npmmirror.com/exsolve/-/exsolve-1.0.8.tgz", @@ -2371,15 +2621,6 @@ "dev": true, "license": "MIT" }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "license": "ISC", - "dependencies": { - "type": "^2.7.2" - } - }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz", @@ -2714,16 +2955,6 @@ "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", "license": "MIT" }, - "node_modules/html-void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz", - "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -2737,15 +2968,6 @@ "node": ">= 6" } }, - "node_modules/i18next": { - "version": "20.6.1", - "resolved": "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz", - "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.0" - } - }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -2778,16 +3000,6 @@ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", "license": "MIT" }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", @@ -2954,12 +3166,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-hotkey": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz", - "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==", - "license": "MIT" - }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmmirror.com/is-map/-/is-map-2.0.3.tgz", @@ -3000,15 +3206,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.2.1.tgz", @@ -3102,12 +3299,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "license": "MIT" - }, "node_modules/is-weakmap": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/is-weakmap/-/is-weakmap-2.0.2.tgz", @@ -3218,6 +3409,12 @@ "immediate": "~3.0.5" } }, + "node_modules/linkifyjs": { + "version": "4.3.3", + "resolved": "https://registry.npmmirror.com/linkifyjs/-/linkifyjs-4.3.3.tgz", + "integrity": "sha512-P8aEP5U/D1/IlTY2OeYsErdwh9bGuLE30NcXtKEjgdHcahveQoQwM2yZNsioQHsWFz0P7KKudisbrzCgR0sDHg==", + "license": "MIT" + }, "node_modules/local-pkg": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-1.1.2.tgz", @@ -3259,49 +3456,6 @@ "lodash-es": "*" } }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "license": "MIT" - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==", - "license": "MIT" - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", - "license": "MIT" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", - "license": "MIT" - }, - "node_modules/lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==", - "license": "MIT" - }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz", @@ -3374,15 +3528,6 @@ "node": ">= 0.6" } }, - "node_modules/mime-match": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz", - "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==", - "license": "ISC", - "dependencies": { - "wildcard": "^1.1.0" - } - }, "node_modules/mime-types": { "version": "2.1.35", "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", @@ -3448,12 +3593,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, - "node_modules/namespace-emitter": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz", - "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==", - "license": "MIT" - }, "node_modules/nanoid": { "version": "3.3.15", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", @@ -3489,12 +3628,6 @@ "node": ">= 4.4.x" } }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "license": "ISC" - }, "node_modules/normalize-wheel-es": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", @@ -3542,6 +3675,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/orderedmap": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/orderedmap/-/orderedmap-2.1.1.tgz", + "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", + "license": "MIT" + }, "node_modules/os": { "version": "0.1.2", "resolved": "https://registry.npmmirror.com/os/-/os-0.1.2.tgz", @@ -3692,31 +3831,151 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/preact": { - "version": "10.28.4", - "resolved": "https://registry.npmmirror.com/preact/-/preact-10.28.4.tgz", - "integrity": "sha512-uKFfOHWuSNpRFVTnljsCluEFq57OKT+0QdOiQo8XWnQ/pSvg7OpX5eNOejELXJMWy+BwM2nobz0FkvzmnpCNsQ==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - } - }, - "node_modules/prismjs": { - "version": "1.30.0", - "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.30.0.tgz", - "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "license": "MIT" }, + "node_modules/prosemirror-changeset": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/prosemirror-changeset/-/prosemirror-changeset-2.4.1.tgz", + "integrity": "sha512-96WBLhOaYhJ+kPhLg3uW359Tz6I/MfcrQfL4EGv4SrcqKEMC1gmoGrXHecPE8eOwTVCJ4IwgfzM8fFad25wNfw==", + "license": "MIT", + "dependencies": { + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-commands": { + "version": "1.7.1", + "resolved": "https://registry.npmmirror.com/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", + "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.10.2" + } + }, + "node_modules/prosemirror-dropcursor": { + "version": "1.8.3", + "resolved": "https://registry.npmmirror.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.3.tgz", + "integrity": "sha512-FoYbsJR8gK+DGlqhNoE29Loa38eIZPzQRIb1VMaDNBoo4OLP6vVof/jR8qFY/6XvUd6Dhug8MDCHl2a/h8RTfQ==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0", + "prosemirror-view": "^1.1.0" + } + }, + "node_modules/prosemirror-gapcursor": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.4.1.tgz", + "integrity": "sha512-pMdYaEnjNMSwl11yjEGtgTmLkR08m/Vl+Jj443167p9eB3HVQKhYCc4gmHVDsLPODfZfjr/MmirsdyZziXbQKw==", + "license": "MIT", + "dependencies": { + "prosemirror-keymap": "^1.0.0", + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-view": "^1.0.0" + } + }, + "node_modules/prosemirror-history": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/prosemirror-history/-/prosemirror-history-1.5.0.tgz", + "integrity": "sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.2.2", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.31.0", + "rope-sequence": "^1.3.0" + } + }, + "node_modules/prosemirror-inputrules": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/prosemirror-inputrules/-/prosemirror-inputrules-1.5.1.tgz", + "integrity": "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-keymap": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", + "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "w3c-keyname": "^2.2.0" + } + }, + "node_modules/prosemirror-model": { + "version": "1.25.11", + "resolved": "https://registry.npmmirror.com/prosemirror-model/-/prosemirror-model-1.25.11.tgz", + "integrity": "sha512-QWg9RhnpLlogAmp3p96uEFrE5txQpFynd4vhBAELkwgOCWQs/X0yCzB3/hrHqiPwf91RG5KyWq6553zs9JqIOQ==", + "license": "MIT", + "dependencies": { + "orderedmap": "^2.0.0" + } + }, + "node_modules/prosemirror-schema-list": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz", + "integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.7.3" + } + }, + "node_modules/prosemirror-state": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/prosemirror-state/-/prosemirror-state-1.4.4.tgz", + "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.27.0" + } + }, + "node_modules/prosemirror-tables": { + "version": "1.8.5", + "resolved": "https://registry.npmmirror.com/prosemirror-tables/-/prosemirror-tables-1.8.5.tgz", + "integrity": "sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw==", + "license": "MIT", + "dependencies": { + "prosemirror-keymap": "^1.2.3", + "prosemirror-model": "^1.25.4", + "prosemirror-state": "^1.4.4", + "prosemirror-transform": "^1.10.5", + "prosemirror-view": "^1.41.4" + } + }, + "node_modules/prosemirror-transform": { + "version": "1.12.0", + "resolved": "https://registry.npmmirror.com/prosemirror-transform/-/prosemirror-transform-1.12.0.tgz", + "integrity": "sha512-GxboyN4AMIsoHNtz5uf2r2Ru551i5hWeCMD6E2Ib4Eogqoub0NflniaBPVQ4MrGE5yZ8JV9tUHg9qcZTTrcN4w==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.21.0" + } + }, + "node_modules/prosemirror-view": { + "version": "1.42.1", + "resolved": "https://registry.npmmirror.com/prosemirror-view/-/prosemirror-view-1.42.1.tgz", + "integrity": "sha512-rRqzZnRgkyh69XoOMrfFJHwauHscLBmHbq772kwbic1ymQAM8gXjzEbJse5j1ep2UO2HRIAQL0bY3kZ/RoqjVw==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.25.8", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0" + } + }, "node_modules/proxy-from-env": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", @@ -3893,6 +4152,12 @@ "fsevents": "~2.3.2" } }, + "node_modules/rope-sequence": { + "version": "1.3.4", + "resolved": "https://registry.npmmirror.com/rope-sequence/-/rope-sequence-1.3.4.tgz", + "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", + "license": "MIT" + }, "node_modules/safe-array-concat": { "version": "1.1.3", "resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz", @@ -3980,15 +4245,6 @@ "node": ">=11.0.0" } }, - "node_modules/scroll-into-view-if-needed": { - "version": "2.2.31", - "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", - "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", - "license": "MIT", - "dependencies": { - "compute-scroll-into-view": "^1.0.20" - } - }, "node_modules/scule": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz", @@ -4130,38 +4386,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/slate": { - "version": "0.72.8", - "resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz", - "integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==", - "license": "MIT", - "dependencies": { - "immer": "^9.0.6", - "is-plain-object": "^5.0.0", - "tiny-warning": "^1.0.3" - } - }, - "node_modules/slate-history": { - "version": "0.66.0", - "resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz", - "integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==", - "license": "MIT", - "dependencies": { - "is-plain-object": "^5.0.0" - }, - "peerDependencies": { - "slate": ">=0.65.3" - } - }, - "node_modules/snabbdom": { - "version": "3.6.3", - "resolved": "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.6.3.tgz", - "integrity": "sha512-W2lHLLw2qR2Vv0DcMmcxXqcfdBaIcoN+y/86SmHv8fn4DazEQSH6KN3TjZcWvwujW56OHiiirsbHWZb4vx/0fg==", - "license": "MIT", - "engines": { - "node": ">=12.17.0" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", @@ -4208,12 +4432,6 @@ "node": ">=0.8" } }, - "node_modules/ssr-window": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz", - "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==", - "license": "MIT" - }, "node_modules/stop-iteration-iterator": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", @@ -4344,12 +4562,6 @@ "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", - "license": "MIT" - }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -4390,12 +4602,6 @@ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "license": "0BSD" }, - "node_modules/type": { - "version": "2.7.3", - "resolved": "https://registry.npmmirror.com/type/-/type-2.7.3.tgz", - "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", - "license": "ISC" - }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", @@ -4836,6 +5042,12 @@ "vue": "^3.0.0" } }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" + }, "node_modules/webpack-virtual-modules": { "version": "0.6.2", "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", @@ -4934,12 +5146,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wildcard": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz", - "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==", - "license": "MIT" - }, "node_modules/wmf": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz", diff --git a/platform/package.json b/platform/package.json index 5603932..98de664 100644 --- a/platform/package.json +++ b/platform/package.json @@ -11,7 +11,21 @@ }, "dependencies": { "@element-plus/icons-vue": "^2.3.2", - "@wangeditor/editor": "^5.1.23", + "@tiptap/extension-color": "^3.27.4", + "@tiptap/extension-highlight": "^3.27.4", + "@tiptap/extension-image": "^3.27.4", + "@tiptap/extension-link": "^3.27.4", + "@tiptap/extension-placeholder": "^3.27.4", + "@tiptap/extension-table": "^3.27.4", + "@tiptap/extension-table-cell": "^3.27.4", + "@tiptap/extension-table-header": "^3.27.4", + "@tiptap/extension-table-row": "^3.27.4", + "@tiptap/extension-text-align": "^3.27.4", + "@tiptap/extension-text-style": "^3.27.4", + "@tiptap/extension-underline": "^3.27.4", + "@tiptap/pm": "^3.27.4", + "@tiptap/starter-kit": "^3.27.4", + "@tiptap/vue-3": "^3.27.4", "axios": "^1.13.1", "chart": "^0.1.2", "chart.js": "^4.5.1", diff --git a/platform/src/assets/less/style.less b/platform/src/assets/less/style.less index 212f329..339e226 100644 --- a/platform/src/assets/less/style.less +++ b/platform/src/assets/less/style.less @@ -44,7 +44,7 @@ body { pointer-events: auto !important; } -.wang-editor-wrapper{ +.tiptap-editor-wrapper{ border: 1px solid #dcdfe6 !important; .toolbar-container{ @@ -55,8 +55,7 @@ body { background-color: #ffffff !important; } - :deep(.w-e-text), - :deep(.w-e-text-container) { + :deep(.tiptap) { background-color: transparent !important; * { @@ -245,14 +244,14 @@ body { margin: 8px 0 !important; } - .w-e-panel-tab-content { + .tiptap-panel-tab-content { color: #1a1a2e !important; } } } html.dark { - .wang-editor-wrapper { + .tiptap-editor-wrapper { border-color: #3d3d3d !important; background-color: #1a1a1a !important; @@ -273,8 +272,7 @@ html.dark { } } - :deep(.w-e-text), - :deep(.w-e-text-container) { + :deep(.tiptap) { background-color: transparent !important; * { @@ -421,7 +419,7 @@ html.dark { border-radius: 4px !important; } - .w-e-panel-tab-content { + .tiptap-panel-tab-content { color: #e0e0e0 !important; } } diff --git a/platform/src/main.js b/platform/src/main.js index b0a1386..95db43e 100644 --- a/platform/src/main.js +++ b/platform/src/main.js @@ -14,12 +14,12 @@ import { createPinia } from 'pinia' import { useAuthStore } from './stores/auth' // import { initTheme } from './utils/theme' // 导入全局组件 -import WangEditor from '@/views/components/WangEditor.vue'; +import TiptapEditor from '@/views/components/TiptapEditor.vue'; const app = createApp(App) const pinia = createPinia() -// 全局注册 WangEditor 组件 -app.component('WangEditor', WangEditor); +// 全局注册 TiptapEditor 组件 +app.component('TiptapEditor', TiptapEditor); for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component) diff --git a/platform/src/views/Main.vue b/platform/src/views/Main.vue index 3bab5fb..e7dcbe4 100644 --- a/platform/src/views/Main.vue +++ b/platform/src/views/Main.vue @@ -51,20 +51,17 @@ onMounted(() => { tabsWrapper.addEventListener('contextmenu', (e) => { // 排除编辑器相关区域,避免影响编辑器功能 // 如果点击在编辑器区域内,完全不做任何处理(优先检查) - const editorWrapper = e.target.closest?.('.wang-editor-wrapper'); + const editorWrapper = e.target.closest?.('.tiptap-editor-wrapper'); if (editorWrapper) { // 在编辑器区域内,不处理右键菜单,也不阻止事件 return; } - + // 检查其他编辑器元素(工具栏、下拉面板等) const editorElements = [ - '.w-e-toolbar', - '.w-e-drop-panel', - '.w-e-modal', - '.w-e-toolbar-menu', - '[data-menu-key]', - '[class*="w-e-"]' + '.tiptap-toolbar', + '.tiptap', + '[class*="tiptap-"]' ]; for (const selector of editorElements) { @@ -247,25 +244,18 @@ const showContextMenu = (event, tab) => { // 如果在编辑器区域内,立即返回,不执行任何操作,让编辑器的事件正常处理 // 先检查是否在编辑器包装器内(最快判断) - const wangEditorWrapper = target.closest?.('.wang-editor-wrapper'); - if (wangEditorWrapper) { + const tiptapEditorWrapper = target.closest?.('.tiptap-editor-wrapper'); + if (tiptapEditorWrapper) { // 在编辑器包装器内,完全不做任何处理,让编辑器正常处理 return; } - + // 检查所有可能的编辑器元素(包括工具栏、下拉面板、模态框等) const editorSelectors = [ - '.w-e-toolbar', - '.w-e-drop-panel', - '.w-e-modal', - '.w-e-toolbar-menu', - '.toolbar-container', + '.tiptap-toolbar', + '.tiptap', '.editor-container', - '.w-e-text-container', - '.w-e-text', - // 检查是否有 WangEditor 相关的元素 - '[data-menu-key]', - '[class*="w-e-"]' + '[class*="tiptap-"]' ]; for (const selector of editorSelectors) { @@ -298,7 +288,7 @@ const showContextMenu = (event, tab) => { } // 排除编辑器区域和右键菜单本身 - if (target.closest?.('.w-e-toolbar') || target.closest?.('.context-menu') || target.closest?.('.wang-editor-wrapper')) { + if (target.closest?.('.tiptap-toolbar') || target.closest?.('.context-menu') || target.closest?.('.tiptap-editor-wrapper')) { return; } hideContextMenu(); @@ -739,12 +729,9 @@ const canCloseRight = computed(() => { } } -// 确保编辑器工具栏和下拉面板的 z-index 高于右键菜单 -:deep(.w-e-toolbar), -:deep(.w-e-drop-panel), -:deep(.w-e-modal), -:deep(.w-e-toolbar-menu) { - z-index: 10000 !important; // 高于右键菜单的 9999 +// 确保编辑器工具栏的 z-index 高于右键菜单 +:deep(.tiptap-toolbar) { + z-index: 10000 !important; pointer-events: auto !important; } diff --git a/platform/src/views/apps/cms/domain/audit.vue b/platform/src/views/apps/cms/domain/audit.vue new file mode 100644 index 0000000..918193f --- /dev/null +++ b/platform/src/views/apps/cms/domain/audit.vue @@ -0,0 +1,185 @@ + + + + 租户域名审核 + + + 刷新 + + + + + + + + + + + + + + 搜索 + + + + + + + + + + + + 审核中 + 已生效 + 已禁用 + + + + + + + + 通过 + + + 拒绝 + + + + + 禁用 + + + - + + + + + + + + + + + + + + diff --git a/platform/src/views/apps/cms/domain/index.vue b/platform/src/views/apps/cms/domain/index.vue new file mode 100644 index 0000000..6c5b98b --- /dev/null +++ b/platform/src/views/apps/cms/domain/index.vue @@ -0,0 +1,5 @@ + + + + + diff --git a/platform/src/views/apps/cms/domain/pool.vue b/platform/src/views/apps/cms/domain/pool.vue new file mode 100644 index 0000000..81cff16 --- /dev/null +++ b/platform/src/views/apps/cms/domain/pool.vue @@ -0,0 +1,287 @@ + + + + 主域名池管理 + + + + 添加主域名 + + + + 刷新 + + + + + + + + + + + + + + 搜索 + + + + + + + + + + {{ scope.row.status === 1 ? '启用' : '禁用' }} + + + + + + + + + 编辑 + + + + {{ scope.row.status === 1 ? '禁用' : '启用' }} + + + + 删除 + + + + + + + + + + + + + + + + + + + + + + 取消 + 确定 + + + + + + + + diff --git a/platform/src/views/components/TiptapEditor.vue b/platform/src/views/components/TiptapEditor.vue new file mode 100644 index 0000000..9a34665 --- /dev/null +++ b/platform/src/views/components/TiptapEditor.vue @@ -0,0 +1,1044 @@ + + + + + + B + + + I + + + U + + + S + + + + + + + + 正文 + 标题 1 + 标题 2 + 标题 3 + 标题 4 + + + + + + + + 1. + + + • + + + + + + + + “ + + + </> + + + Code + + + + + + + + — + + + + + + + + 🔗 + + + 📷 + + + + ▶ + + + 📎 + + + + + + + + + ▦ + + + + ✕ 表 + + + - 行 + + + - 列 + + + 合并 + + + + + + + + + A + + + + A + + + + + + + + + ⇤ + + + ↔ + + + ⇥ + + + ↧ + + + + + + + + ↩ + + + ↪ + + + + + + + + + + + + + diff --git a/platform/src/views/components/WangEditor.vue b/platform/src/views/components/WangEditor.vue deleted file mode 100644 index e2d9ec1..0000000 --- a/platform/src/views/components/WangEditor.vue +++ /dev/null @@ -1,582 +0,0 @@ - - - - - - - - - - diff --git a/platform/src/views/tools/notebook/README.md b/platform/src/views/tools/notebook/README.md index 24b1306..900e0d7 100644 --- a/platform/src/views/tools/notebook/README.md +++ b/platform/src/views/tools/notebook/README.md @@ -11,7 +11,7 @@ notebook/ ├── index.vue # 主页面(列表+编辑器) ├── components/ │ ├── edit.vue # 编辑器组件 -│ └── WangEditor.vue # WangEditor富文本编辑器封装 +│ └── TiptapEditor.vue # Tiptap富文本编辑器(已全局注册) └── README.md # 说明文档 ``` @@ -137,14 +137,14 @@ go run main.go - ✅ 显示更新时间 ### 编辑器功能 -- ✅ 富文本编辑(基于WangEditor) +- ✅ 富文本编辑(基于Tiptap) - ✅ 标题编辑 - ✅ 内容编辑 - ✅ 保存笔记 - ✅ 自动识别新建/编辑模式 - ✅ 加载状态显示 -### WangEditor支持的功能 +### TiptapEditor支持的功能 - 文本样式(加粗、斜体、下划线等) - 标题(H1-H6) - 引用 @@ -199,9 +199,9 @@ go run main.go ## 技术栈 -- **前端**: Vue 3 + Element Plus + WangEditor +- **前端**: Vue 3 + Element Plus + Tiptap - **后端**: Go + Beego + MySQL -- **编辑器**: WangEditor 5.x +- **编辑器**: Tiptap (基于ProseMirror) ## 开发调试 @@ -233,7 +233,7 @@ go run main.go - 查看后端日志 3. **编辑器显示异常** - - 检查WangEditor是否正确安装 + - 检查Tiptap是否正确安装 - 查看浏览器Console错误信息 - 检查CSS样式是否正确加载 @@ -242,6 +242,6 @@ go run main.go ### v1.0.0 (2024) - ✅ 完成基础功能 - ✅ 支持笔记CRUD操作 -- ✅ 集成WangEditor富文本编辑器 +- ✅ 集成Tiptap富文本编辑器 - ✅ 响应式设计支持 - ✅ 暗色模式支持 diff --git a/platform/src/views/tools/notebook/components/WangEditor.vue b/platform/src/views/tools/notebook/components/WangEditor.vue deleted file mode 100644 index 0eef763..0000000 --- a/platform/src/views/tools/notebook/components/WangEditor.vue +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - - - - - diff --git a/platform/src/views/tools/notebook/components/edit.vue b/platform/src/views/tools/notebook/components/edit.vue index ab87d86..336e962 100644 --- a/platform/src/views/tools/notebook/components/edit.vue +++ b/platform/src/views/tools/notebook/components/edit.vue @@ -16,7 +16,7 @@ - + @@ -25,7 +25,6 @@ import { ref, watch, onMounted } from 'vue'; import { ElMessage } from 'element-plus'; import { DocumentChecked } from '@element-plus/icons-vue'; -import WangEditor from './WangEditor.vue'; import { getNotebookDetail, createNotebook, updateNotebook } from '@/api/notebook'; const props = defineProps({ @@ -181,7 +180,7 @@ onMounted(() => { padding: 20px; overflow: hidden; - :deep(.wang-editor-wrapper) { + :deep(.tiptap-editor-wrapper) { height: 100%; } } diff --git a/platform/src/views/tools/reminder/index.vue b/platform/src/views/tools/reminder/index.vue index 5835015..43bcc60 100644 --- a/platform/src/views/tools/reminder/index.vue +++ b/platform/src/views/tools/reminder/index.vue @@ -200,7 +200,28 @@ async function fetchList() { } const res = await getReminderList(params) if (res?.code === 200 && res.data) { - list.value = res.data.list || [] + // 对列表进行排序:提醒中(is_finished: false)的排在前面,已结束的排在后面 + const sortedList = (res.data.list || []).sort((a, b) => { + // 第一优先级:状态排序(提醒中在前,已结束在后) + if (!a.is_finished && b.is_finished) return -1 + if (a.is_finished && !b.is_finished) return 1 + + // 第二优先级:状态相同时,按日程发生时间排序 + const timeA = new Date(a.schedule_time || 0).getTime() + const timeB = new Date(b.schedule_time || 0).getTime() + + if (!a.is_finished && !b.is_finished) { + // 对于提醒中的日程:时间早的在前(即将发生的优先) + return timeA - timeB + } else if (a.is_finished && b.is_finished) { + // 对于已结束的日程:时间晚的在前(最近结束的优先) + return timeB - timeA + } + + // 第三优先级:时间相同时,按ID降序排列(新的在前) + return b.id - a.id + }) + list.value = sortedList pagination.total = res.data.total ?? 0 } else { list.value = []