Browse Source

reactor:宜宾开放用户新增和组织架构新增;富文本编辑器更新(支持格式刷);

zhangchong 6 months ago
parent
commit
803864fcd0

+ 2 - 2
package.json

@@ -23,8 +23,8 @@
 		"@microsoft/signalr": "^7.0.0",
 		"@originjs/vite-plugin-commonjs": "^1.0.3",
 		"@vueuse/motion": "^2.0.0",
-		"@wangeditor/editor": "^5.1.23",
-		"@wangeditor/editor-for-vue": "^5.1.12",
+		"@wangeditor-next/editor": "^5.6.2",
+		"@wangeditor-next/editor-for-vue": "^5.1.14",
 		"axios": "^1.4.0",
 		"dayjs": "^1.11.9",
 		"echarts": "^5.5.0",

+ 0 - 80
src/components/Editor/FormatPaintMenuConf.ts

@@ -1,80 +0,0 @@
-import { createEditor } from '@wangeditor/editor';
-
-export default class FormatPaint {
-	constructor() {
-		this.title = '格式刷' // 自定义菜单标题
-		// this.iconSvg = '<svg>...</svg>' // 可选
-		this.tag = 'button'
-		if(!FormatPaint.prototype.init){
-			FormatPaint.prototype.attrs = {
-				isSelect:false,
-				formatJson:{},
-				formatedHtml:''
-			};
-			FormatPaint.prototype.init = true;
-		}
-	}
-	getValue(editor) {                           // JS 语法
-		return ''
-	}
-
-	// 菜单是否需要激活(如选中加粗文本,“加粗”菜单会激活),用不到则返回 false
-	isActive(editor) {
-		return this.attrs.isSelect;
-	}
-
-	// 菜单是否需要禁用(如选中 H1 ,“引用”菜单被禁用),用不到则返回 false
-	isDisabled(editor) {                     // JS 语法
-		return false
-	}
-
-	// 点击菜单时触发的函数
-	exec(editor, value) {
-		if (this.isDisabled(editor)) return
-		const select = editor.getFragment()[0].children[0];
-		if(!this.attrs.isSelect&&select.text.length){
-			this.attrs.formatJson = {...select};
-			this.attrs.isSelect = true;
-		}else{
-			editor.getSelectionText()
-			this.attrs.isSelect = false;
-		}
-		editor.blur()
-		editor.focus()                       // JS 语法
-	}
-	//设置格式化好的内容
-	setFormatHtml(editor){
-		if(!this.attrs.formatedHtml.length) return;
-		editor.dangerouslyInsertHtml(this.attrs.formatedHtml)
-		this.attrs.formatedHtml = ''
-	}
-}
-
-
-export function withSelect(editor) {
-	const myFormatPaint =  new FormatPaint ;
-
-	const { onChange,onBlur,onFocus} = editor // 获取当前 editor API
-	const newEditor = editor
-
-
-	newEditor.onChange = (editor)=>{
-		onChange();
-		if(myFormatPaint.attrs.isSelect){
-			myFormatPaint.attrs.formatJson.text = newEditor.getSelectionText()
-			const _editor = createEditor({
-				content: [myFormatPaint.attrs.formatJson]
-			})
-			myFormatPaint.attrs.formatedHtml = _editor.getHtml();
-			if(!document.onmouseup){
-				document.onmouseup=()=>{
-					if(!myFormatPaint.attrs.formatedHtml.length) return;
-					myFormatPaint.setFormatHtml(newEditor)
-					document.onmouseup = null
-				}
-			}
-		}
-		return;
-	}
-	return newEditor
-}

+ 3 - 43
src/components/Editor/index.vue

@@ -14,14 +14,13 @@
 	</div>
 </template>
 <script lang="ts" setup name="wngEditor">
-import '@wangeditor/editor/dist/css/style.css'; // 引入 css
+import '@wangeditor-next/editor/dist/css/style.css' // 引入 css
 import { onBeforeUnmount, reactive, shallowRef, watch, nextTick, ref } from 'vue';
-import { IDomEditor, Boot } from '@wangeditor/editor';
-import { Editor, Toolbar } from '@wangeditor/editor-for-vue';
+import { IDomEditor } from '@wangeditor-next/editor'
+import { Editor, Toolbar } from '@wangeditor-next/editor-for-vue'
 import { Cookie } from '@/utils/storage';
 import { uploadFile } from '@/api/public/upload';
 import { ElMessage } from 'element-plus';
-import FormatPaint, { withSelect } from '@/components/Editor/FormatPaintMenuConf';
 //  全局配置
 // 定义父组件传过来的值
 const props = defineProps({
@@ -70,27 +69,12 @@ const state = reactive<any>({
 	editorVal: props.getHtml,
 
 });
-//获取当前时间戳
-const timestamp = Date.now()
-// 生成一个随机数
-const randomNum = Math.floor(Math.random() * 1000000) // 生成一个0到999999之间的随机数
-// 将时间戳和随机数组合成一个字符串作为格式刷key
-let geShiShuaKey = `${timestamp}-${randomNum}`
 const toolConfig = ref({
 	excludeKeys: [
 		// 排除掉视频上传
 		'group-video',
 	],
-	insertKeys: {
-		index: 5, // 插入的位置,基于当前的 toolbarKeys
-		keys: [geShiShuaKey],
-	},
 });
-state.editorConfig.hoverbarKeys = {
-	text:{
-		menuKeys: ["headerSelect","insertLink", "bulletedList","|","bold","through","color","bgColor",geShiShuaKey,"clearStyle"],
-	}
-}
 type InsertFnType = (url: string, alt: string, href: string) => void;
 // 图片上传
 state.editorConfig.MENU_CONF['uploadImage'] = {
@@ -222,30 +206,6 @@ nextTick(() => {
 const handleBlur = (editor: IDomEditor) => {
 	emit('blur', editor);
 };
-// 默认为空字符串
-function withEmptyHtml<T extends IDomEditor>(editor: T): T {
-	const { getHtml } = editor;
-	const newEditor = editor;
-
-	newEditor.getHtml = () => {
-		if (newEditor.isEmpty()) {
-			return '';
-		}
-		return getHtml();
-	};
-
-	return newEditor;
-}
-const FormatPaintMenuConf = {
-	key: geShiShuaKey, // 定义 menu key :要保证唯一、不重复(重要)
-	factory() {
-		return  new FormatPaint(); // 把 `YourMenuClass` 替换为你菜单的 class
-	},
-}
-// 注册插件
-Boot.registerPlugin(withEmptyHtml);
-Boot.registerMenu(FormatPaintMenuConf);
-Boot.registerPlugin(withSelect);
 // 暴露变量
 defineExpose({
 	editorRef,

+ 0 - 2
src/types/global.d.ts

@@ -9,8 +9,6 @@ declare module 'vuedraggable';
 declare module 'json-editor-vue3';
 declare module '@wangeditor-next/editor-for-vue';
 declare module '@wangeditor-next/editor';
-declare module '@wangeditor/editor';
-declare module '@wangeditor/editor-for-vue';
 // 声明一个模块,防止引入文件时报错
 declare module '*.json';
 declare module '*.png';

+ 1 - 1
src/views/knowledge/index/edit.vue

@@ -150,7 +150,7 @@
 								</el-form-item>
 							</template>
 							<template #default>
-								<el-form-item label="热点分类" prop="hotspotId" :rules="[{ required: true, message: '请选择热点分类', trigger: 'change' }]">
+								<el-form-item label="热点分类" prop="hotspotId" :rules="[{ required: false, message: '请选择热点分类', trigger: 'change' }]">
 									<hot-spot-select v-model="state.ruleForm.hotspotId" v-model:externalArr="state.hotspotExternal" @change="chooseHotSpot" />
 								</el-form-item>
 							</template>

+ 1 - 1
src/views/system/organize/index.vue

@@ -186,7 +186,7 @@ const state = reactive<any>({
 const ruleFormRef = ref<RefType>(); // 搜索表单ref
 //  在正式上线前 先隐藏用户和部门的新增
 const showAdd = computed(() => {
-	return !['YiBin','ZiGong','LuZhou'].includes(import.meta.env.VITE_MODE_NAME)
+	return !['ZiGong', 'LuZhou'].includes(import.meta.env.VITE_MODE_NAME);
 });
 // 搜索
 const formatTable = (list: any[], keyword: string) => {

+ 1 - 1
src/views/system/user/index.vue

@@ -180,7 +180,7 @@ const filterOrg = ref(''); // 搜索部门名称
 const treRef = ref<RefType>(); // 树形组件ref
 //  在正式上线前 先隐藏用户和部门的新增
 const showAdd = computed(() => {
-	return !['YiBin', 'ZiGong','LuZhou'].includes(import.meta.env.VITE_MODE_NAME);
+	return !['ZiGong','LuZhou'].includes(import.meta.env.VITE_MODE_NAME);
 });
 const onQueryChanged = (query: string) => {
 	if (query) {

+ 77 - 72
yarn.lock

@@ -323,7 +323,7 @@
     "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7"
     "@babel/plugin-syntax-typescript" "^7.25.7"
 
-"@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.23.2":
+"@babel/runtime@^7.12.5", "@babel/runtime@^7.23.2":
   version "7.25.7"
   resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.25.7.tgz#7ffb53c37a8f247c8c4d335e89cdf16a2e0d0fb6"
   integrity sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==
@@ -1503,51 +1503,51 @@
   dependencies:
     vue-demi "*"
 
-"@wangeditor/basic-modules@^1.1.7":
-  version "1.1.7"
-  resolved "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz#a9c3ccf4ef53332f29550d59d3676e15f395946f"
-  integrity sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==
+"@wangeditor-next/basic-modules@~1.5.10":
+  version "1.5.10"
+  resolved "https://registry.npmmirror.com/@wangeditor-next/basic-modules/-/basic-modules-1.5.10.tgz#a8023c90b1c1f5095bb3387a040a655e57a241ec"
+  integrity sha512-1wpGkXxGGwXRzPIMwVxmBzD/gjk0y04S5n+coA/lXfDms9xgxbjmWCj1JWSck2UgL17hGEM1Arb0cBJ9H1I9ag==
   dependencies:
     is-url "^1.2.4"
 
-"@wangeditor/code-highlight@^1.0.3":
-  version "1.0.3"
-  resolved "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz#90256857714d5c0cf83ac475aea64db7bf29a7cd"
-  integrity sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==
+"@wangeditor-next/code-highlight@~1.3.8":
+  version "1.3.8"
+  resolved "https://registry.npmmirror.com/@wangeditor-next/code-highlight/-/code-highlight-1.3.8.tgz#4cf8d24941a50be9daf695b3308a3eb4f53a10c4"
+  integrity sha512-6owyOXdHlB92/cUmKXaSv7r49nGa2WNJmU5sGavF22inehvoAu0bXQDU7AP4a/URSQnfgMJrDvrLZjVX8ZvjAQ==
   dependencies:
     prismjs "^1.23.0"
 
-"@wangeditor/core@^1.1.19":
-  version "1.1.19"
-  resolved "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz#f9155f7fd92d03cb1982405b3b82e54c31f1c2b0"
-  integrity sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==
+"@wangeditor-next/core@~1.7.11":
+  version "1.7.11"
+  resolved "https://registry.npmmirror.com/@wangeditor-next/core/-/core-1.7.11.tgz#766f58a93c5bee42f82d6425884117cca281cba9"
+  integrity sha512-h0xwGUNES0dkwqGjYvj0eoEjQZHhU9b/j1T/UIoB8100x/STrNIzXLtPJhxI46axGCQyqnA1PKSCc5h4rFhQ7w==
   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"
+    html-void-elements "^3.0.0"
+    i18next "^23.0.0"
+    scroll-into-view-if-needed "^3.0.0"
+    slate-history "^0.109.0"
 
-"@wangeditor/editor-for-vue@^5.1.12":
-  version "5.1.12"
-  resolved "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz#f7d5f239b39cdfc01d31151488de8443fe6edc64"
-  integrity sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==
+"@wangeditor-next/editor-for-vue@^5.1.14":
+  version "5.1.14"
+  resolved "https://registry.npmmirror.com/@wangeditor-next/editor-for-vue/-/editor-for-vue-5.1.14.tgz#8d638ca5f4d265ae624796490219e5b63f01e15c"
+  integrity sha512-Xkrdo590AhLHvzyR+U246t6T89nIWHz1weAgMuo8jEA2HS5RiUnsA4U6+iUGaQ2E5c8mYQaeNqzHQXUp9Okbiw==
 
-"@wangeditor/editor@^5.1.23":
-  version "5.1.23"
-  resolved "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz#c9d2007b7cb0ceef6b72692b4ee87b01ee2367b3"
-  integrity sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==
+"@wangeditor-next/editor@^5.6.2":
+  version "5.6.2"
+  resolved "https://registry.npmmirror.com/@wangeditor-next/editor/-/editor-5.6.2.tgz#ee08e94126ef65fb71dae0393d0648bcbad88cea"
+  integrity sha512-trk3mtK5tGOfWyZv2eqo8RpCQNwt8EBB8VHK1+P7S4dtk3tnk5Gz7TPIbBHTMypFWvLOZvsf7M1dbdrpUy2tKw==
   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"
+    "@wangeditor-next/basic-modules" "~1.5.10"
+    "@wangeditor-next/code-highlight" "~1.3.8"
+    "@wangeditor-next/core" "~1.7.11"
+    "@wangeditor-next/list-module" "~1.1.16"
+    "@wangeditor-next/table-module" "~1.6.9"
+    "@wangeditor-next/upload-image-module" "~1.1.13"
+    "@wangeditor-next/video-module" "~1.3.16"
     dom7 "^3.0.0"
     is-hotkey "^0.2.0"
     lodash.camelcase "^4.3.0"
@@ -1557,29 +1557,29 @@
     lodash.isequal "^4.5.0"
     lodash.throttle "^4.1.1"
     lodash.toarray "^4.4.0"
-    nanoid "^3.2.0"
+    nanoid "^5.0.0"
     slate "^0.72.0"
     snabbdom "^3.1.0"
 
-"@wangeditor/list-module@^1.0.5":
-  version "1.0.5"
-  resolved "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz#3fc0b167acddf885536b45fa0c127f9c6adaea33"
-  integrity sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==
+"@wangeditor-next/list-module@~1.1.16":
+  version "1.1.16"
+  resolved "https://registry.npmmirror.com/@wangeditor-next/list-module/-/list-module-1.1.16.tgz#72fb3c9a081bc70d425905ce05de341fb3cc3023"
+  integrity sha512-vVtYaKeaRVs5+MqmZB8ydmBlRrfsBNGOaYH493x8zyShNSjEjYB+7NzDBWOzyhZjxJ4cEIFFR/C0LtymmlAp8g==
 
-"@wangeditor/table-module@^1.1.4":
-  version "1.1.4"
-  resolved "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz#757d4a5868b2b658041cd323854a4d707c8347e9"
-  integrity sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==
+"@wangeditor-next/table-module@~1.6.9":
+  version "1.6.9"
+  resolved "https://registry.npmmirror.com/@wangeditor-next/table-module/-/table-module-1.6.9.tgz#bb8369363fb96acf928d669ebdef26b66f681538"
+  integrity sha512-M6AqWaafXew53e7i1EHFRDWe7gSfetxhmBNBRZVDhZCf6qi8qg3n2ezSI0COFQeXrVhssI0zAzrQ1uTJQsM4lg==
 
-"@wangeditor/upload-image-module@^1.0.2":
-  version "1.0.2"
-  resolved "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz#89e9b9467e10cbc6b11dc5748e08dd23aaebee30"
-  integrity sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==
+"@wangeditor-next/upload-image-module@~1.1.13":
+  version "1.1.13"
+  resolved "https://registry.npmmirror.com/@wangeditor-next/upload-image-module/-/upload-image-module-1.1.13.tgz#b749e86a9d0e39c6c297ef18275d557e117ae9be"
+  integrity sha512-4pDPQYdoMeBeS7Oww0JkZ012l06eIwHgNsCt5IZNrdh0HS/pHMeSy1V4nTON6cE6O6Gg3FkN0R6zrEZh/cV8dQ==
 
-"@wangeditor/video-module@^1.1.4":
-  version "1.1.4"
-  resolved "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz#b9df1b3ab2cd53f678b19b4d927e200774a6f532"
-  integrity sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==
+"@wangeditor-next/video-module@~1.3.16":
+  version "1.3.16"
+  resolved "https://registry.npmmirror.com/@wangeditor-next/video-module/-/video-module-1.3.16.tgz#1044c7e4a4ff5ebd50f2bd2e2d591c21436c8e29"
+  integrity sha512-mrUsIl9nvVzDM0uxyHu6PDmjO458ix8bpOHOyzzFbctn750xYKoWK2h6G12vF0CYHaZFBY+XWcel4ivzMRUqdQ==
 
 "@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1":
   version "1.12.1"
@@ -2203,10 +2203,10 @@ compatx@^0.1.8:
   resolved "https://registry.npmmirror.com/compatx/-/compatx-0.1.8.tgz#af6f61910ade6ce1073c0fdff23c786bcd75c026"
   integrity sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==
 
-compute-scroll-into-view@^1.0.20:
-  version "1.0.20"
-  resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43"
-  integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==
+compute-scroll-into-view@^3.0.2:
+  version "3.1.0"
+  resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz#753f11d972596558d8fe7c6bcbc8497690ab4c87"
+  integrity sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==
 
 concat-map@0.0.1:
   version "0.0.1"
@@ -3319,10 +3319,10 @@ html-tags@^3.3.1:
   resolved "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce"
   integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==
 
-html-void-elements@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz#29459b8b05c200b6c5ee98743c41b979d577549f"
-  integrity sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==
+html-void-elements@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7"
+  integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==
 
 html2canvas@^1.0.0-rc.5, html2canvas@^1.4.1:
   version "1.4.1"
@@ -3359,12 +3359,12 @@ human-signals@^5.0.0:
   resolved "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28"
   integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
 
-i18next@^20.4.0:
-  version "20.6.1"
-  resolved "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz#535e5f6e5baeb685c7d25df70db63bf3cc0aa345"
-  integrity sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==
+i18next@^23.0.0:
+  version "23.16.0"
+  resolved "https://registry.npmmirror.com/i18next/-/i18next-23.16.0.tgz#6127b49a30c19ba5caf0de8aeb3e15df60f7f01e"
+  integrity sha512-Ni3CG6c14teOogY19YNRl+kYaE/Rb59khy0VyHVn4uOZ97E2E/Yziyi6r3C3s9+wacjdLZiq/LLYyx+Cgd+FCw==
   dependencies:
-    "@babel/runtime" "^7.12.0"
+    "@babel/runtime" "^7.23.2"
 
 iconv-lite@0.4.24:
   version "0.4.24"
@@ -4435,11 +4435,16 @@ namespace-emitter@^2.0.1:
   resolved "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz#978d51361c61313b4e6b8cf6f3853d08dfa2b17c"
   integrity sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==
 
-nanoid@^3.1.25, nanoid@^3.2.0, nanoid@^3.3.7:
+nanoid@^3.1.25, nanoid@^3.3.7:
   version "3.3.7"
   resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
   integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
 
+nanoid@^5.0.0:
+  version "5.0.7"
+  resolved "https://registry.npmmirror.com/nanoid/-/nanoid-5.0.7.tgz#6452e8c5a816861fd9d2b898399f7e5fd6944cc6"
+  integrity sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==
+
 natural-compare-lite@^1.4.0:
   version "1.4.0"
   resolved "https://registry.npmmirror.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4"
@@ -5042,12 +5047,12 @@ screenfull@^6.0.2:
   resolved "https://registry.npmmirror.com/screenfull/-/screenfull-6.0.2.tgz#3dbe4b8c4f8f49fb8e33caa8f69d0bca730ab238"
   integrity sha512-AQdy8s4WhNvUZ6P8F6PB21tSPIYKniic+Ogx0AacBMjKP1GUHN2E9URxQHtCusiwxudnCKkdy4GrHXPPJSkCCw==
 
-scroll-into-view-if-needed@^2.2.28:
-  version "2.2.31"
-  resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587"
-  integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==
+scroll-into-view-if-needed@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz#fa9524518c799b45a2ef6bbffb92bcad0296d01f"
+  integrity sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==
   dependencies:
-    compute-scroll-into-view "^1.0.20"
+    compute-scroll-into-view "^3.0.2"
 
 scule@^1.3.0:
   version "1.3.0"
@@ -5145,10 +5150,10 @@ slash@^5.1.0:
   resolved "https://registry.npmmirror.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce"
   integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==
 
-slate-history@^0.66.0:
-  version "0.66.0"
-  resolved "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz#ac63fddb903098ceb4c944433e3f75fe63acf940"
-  integrity sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==
+slate-history@^0.109.0:
+  version "0.109.0"
+  resolved "https://registry.npmmirror.com/slate-history/-/slate-history-0.109.0.tgz#4e93e090a565bbb06b2f9914927705ad46080f64"
+  integrity sha512-DHavPwrTTAEAV66eAocB3iQHEj65N6IVtbRK98ZuqGT0S44T3zXlhzY+5SZ7EPxRcoOYVt1dioRxXYM/+PmCiQ==
   dependencies:
     is-plain-object "^5.0.0"