Commit 11c97d0b authored by 罗超's avatar 罗超

Merge branch 'router'

parents 2fecfbb4 3fb3b203
......@@ -17,6 +17,7 @@
"@types/ali-oss": "^6.16.11",
"@types/opentype.js": "^1.3.8",
"@types/psd": "^3.4.3",
"@vue/reactivity": "^3.4.29",
"@vueuse/integrations": "^10.7.2",
"ali-oss": "^6.18.1",
"animate.css": "^4.1.1",
......
......@@ -76,5 +76,6 @@ const handleClickMenuItem = (item: ContextmenuItem) => {
position: fixed;
z-index: 9999;
user-select: none;
font-family: Arial, Helvetica, sans-serif;
}
</style>
\ No newline at end of file
import type { Node, NodeType, ResolvedPos, Mark, MarkType } from 'prosemirror-model'
import type { EditorState, Selection } from 'prosemirror-state'
import { TextSelection, type EditorState, type Selection } from 'prosemirror-state'
import type { EditorView } from 'prosemirror-view'
import { selectAll } from 'prosemirror-commands'
import { selectAll} from 'prosemirror-commands'
export const autoSelectAll = (view: EditorView) => {
const { empty } = view.state.selection
if (empty) selectAll(view.state, view.dispatch)
}
export const clearSelection = (view: EditorView) => {
const { state, dispatch } = view
const { selection } = state
if (!selection.empty) {
const selectionWithoutRange = TextSelection.create(state.doc, selection.anchor)
const transaction = state.tr.setSelection(selectionWithoutRange)
dispatch(transaction)
}
}
export const addMark = (editorView: EditorView, mark: Mark, selection?: { from: number; to: number; }) => {
if (selection) {
editorView.dispatch(editorView.state.tr.addMark(selection.from, selection.to, mark))
......
......@@ -20,19 +20,19 @@ withDefaults(defineProps<{
height: 0;
left: 0;
top: 0;
border: 0 dashed $themeColor;
border: 0 solid $themeColor;
&.top {
border-top-width: 1px;
border-top-width: 2px;
}
&.bottom {
border-bottom-width: 1px;
border-bottom-width: 2px;
}
&.left {
border-left-width: 1px;
border-left-width: 2px;
}
&.right {
border-right-width: 1px;
border-right-width: 2px;
}
&.wide {
......
......@@ -31,15 +31,29 @@ const rotateClassName = computed(() => {
<style lang="scss" scoped>
.resize-handler {
position: absolute;
width: 10px;
height: 10px;
width:26px;
height: 26px;
left: 0;
top: 0;
margin: -5px 0 0 -5px;
border: 1px solid $themeColor;
margin: -12px 0 0 -12px;
// border: 1px solid $themeColor;
&::after{
width: 10px;
height: 10px;
border-radius: 10px;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
background-color: #fff;
border-radius: 1px;
cursor: pointer;
cursor: inherit;
display: block;
content: ' ';
left: 8px;
top:8px;
position: absolute;
}
&.left-top.rotate-0,
&.right-bottom.rotate-0,
......@@ -49,7 +63,7 @@ const rotateClassName = computed(() => {
&.right-top.rotate-90,
&.top.rotate-135,
&.bottom.rotate-135 {
cursor: nwse-resize;
cursor: url('https://im.oytour.com/trip/cusor/8f76b0abb0a62213ab3795d3ebaf3c3e.svg') 16 16, nwse-resize;
}
&.top.rotate-0,
&.bottom.rotate-0,
......@@ -59,7 +73,7 @@ const rotateClassName = computed(() => {
&.right.rotate-90,
&.left-bottom.rotate-135,
&.right-top.rotate-135 {
cursor: ns-resize;
cursor: url('https://im.oytour.com/trip/cusor/4f7515dd177541d307de562bd6ee8f07.svg') 16 16, ns-resize;
}
&.left-bottom.rotate-0,
&.right-top.rotate-0,
......@@ -69,7 +83,7 @@ const rotateClassName = computed(() => {
&.right-bottom.rotate-90,
&.left.rotate-135,
&.right.rotate-135 {
cursor: nesw-resize;
cursor: url('https://im.oytour.com/trip/cusor/13cfd89732053891fab7d23547a6d4f0.svg') 16 16, nesw-resize;
}
&.left.rotate-0,
&.right.rotate-0,
......@@ -79,7 +93,17 @@ const rotateClassName = computed(() => {
&.bottom.rotate-90,
&.left-top.rotate-135,
&.right-bottom.rotate-135 {
cursor: ew-resize;
cursor: url('https://im.oytour.com/trip/cusor/7e6be5a8633602679325c01e745e53ef.svg') 16 16, ew-resize !important;
}
&.left.rotate-0::after,
&.right.rotate-0::after{
width:6px;
height: 14px;
border-radius: 6px;
left: 10px;
top: 6px;
cursor: url('https://im.oytour.com/trip/cusor/7e6be5a8633602679325c01e745e53ef.svg') 16 16, ew-resize !important;
// b7f2dba7d2a5c7631de984f35d15f2ee
}
}
</style>
\ No newline at end of file
......@@ -11,12 +11,13 @@
position: absolute;
width: 10px;
height: 10px;
border-radius: 10px;
top: -25px;
margin-left: -5px;
border: 1px solid $themeColor;
margin-left: -4px;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
// border: 1px solid $themeColor;
background-color: #fff;
border-radius: 1px;
cursor: grab;
cursor: url('https://im.oytour.com/trip/cusor/b7f2dba7d2a5c7631de984f35d15f2ee.svg') 16 16, grab;
&:active {
cursor: grabbing;
......
......@@ -173,8 +173,8 @@ const handleClip = (data: ImageClipedEmitData | null) => {
.editable-element-image {
position: absolute;
&.lock .element-content {
cursor: default;
&.lock .element-content{
cursor: url('https://im.oytour.com/trip/cusor/c7ca2e93ad449598be9ead2d132dd05b.svg'), default;
}
}
.rotate-wrapper {
......
......@@ -15,7 +15,7 @@ import { useMainStore } from '@/store'
import type { EditorView } from 'prosemirror-view'
import { toggleMark, wrapIn, lift } from 'prosemirror-commands'
import { initProsemirrorEditor, createDocument } from '@/utils/prosemirror'
import { isActiveOfParentNodeType, findNodesWithSameMark, getTextAttrs, autoSelectAll, addMark, markActive, getFontsize } from '@/utils/prosemirror/utils'
import { isActiveOfParentNodeType, findNodesWithSameMark, getTextAttrs, autoSelectAll, addMark, markActive, getFontsize, clearSelection } from '@/utils/prosemirror/utils'
import emitter, { EmitterEvents, type RichTextAction, type RichTextCommand } from '@/utils/emitter'
import { alignmentCommand } from '@/utils/prosemirror/commands/setTextAlign'
import { indentCommand, textIndentCommand } from '@/utils/prosemirror/commands/setTextIndent'
......@@ -96,7 +96,8 @@ watch(() => props.editable, () => {
// 暴露 focus 方法
const focus = () => editorView.focus()
const selectAll = () => autoSelectAll(editorView)
defineExpose({ focus,selectAll })
const clearSelect = () => clearSelection(editorView)
defineExpose({ focus,selectAll,clearSelect })
// 执行富文本命令(可以是一个或多个)
// 部分命令在执行前先判断当前选区是否为空,如果选区为空先进行全选操作
......
......@@ -44,9 +44,10 @@
}"
/>
<!-- 当字号过大且行高较小时,会出现文字高度溢出的情况,导致拖拽区域无法被选中,因此添加了以下节点避免该情况 -->
<!-- 当字号过大且行高较小时,会出现文字高度溢出的情况,导致拖拽区域无法被选中,因此添加了以下节点避免该情况222 -->
<div class="drag-handler top"></div>
<div class="drag-handler bottom"></div>
<!-- <div class="drag-handler full"></div> -->
</div>
</div>
</div>
......@@ -74,6 +75,8 @@ const { shadowStyle } = useElementShadow(shadow)
&.lock .element-content {
cursor: default;
}
}
.rotate-wrapper {
width: 100%;
......@@ -102,12 +105,18 @@ const { shadowStyle } = useElementShadow(shadow)
position: absolute;
left: 0;
right: 0;
z-index: 100;
&.top {
top: 0;
}
&.bottom {
bottom: 0;
}
&.full{
top: 0;
bottom: 0;
height: unset;
}
}
.clip-box{
-webkit-background-clip: text !important;
......
......@@ -35,6 +35,7 @@
@mousedown="$event => handleSelectElement($event)"
@touchstart="$event => handleSelectElement($event)"
>
<div class="full-lock" v-if="fullLockVisible<2" @click="hideLockHandler"></div>
<ElementOutline
:width="elementInfo.width"
:height="elementInfo.height"
......@@ -55,7 +56,7 @@
ref="editorRef"
/>
<!-- 当字号过大且行高较小时,会出现文字高度溢出的情况,导致拖拽区域无法被选中,因此添加了以下节点避免该情况 -->
<!-- 当字号过大且行高较小时,会出现文字高度溢出的情况,导致拖拽区域无法被选中,因此添加了以下节点避免该情况111 -->
<template v-show="!activeGroupElementId">
<div class="drag-handler top" @dblclick="setEditorHandler"></div>
<div class="drag-handler bottom" @dblclick="setEditorHandler"></div>
......@@ -95,6 +96,7 @@ const editorRef = ref()
const shadow = computed(() => props.elementInfo.shadow)
const { shadowStyle } = useElementShadow(shadow)
const fullLockVisible = ref(0)
const handleSelectElement = (e: MouseEvent | TouchEvent, canMove = true) => {
if(e.button && e.button== 1) return
......@@ -130,6 +132,10 @@ watch(isScaling, () => {
}
})
const hideLockHandler = ()=>{
fullLockVisible.value++
}
const updateTextElementHeight = (entries: ResizeObserverEntry[]) => {
const contentRect = entries[0].contentRect
if (!elementRef.value) return
......@@ -187,7 +193,11 @@ const checkEmptyText = debounce(function() {
const isHandleElement = computed(() => handleElementId.value === props.elementInfo.id)
watch(isHandleElement, () => {
if (!isHandleElement.value) checkEmptyText()
if (!isHandleElement.value) {
checkEmptyText()
editorRef.value?.clearSelect()
fullLockVisible.value=0
}
})
</script>
......@@ -220,6 +230,16 @@ watch(isHandleElement, () => {
::v-deep(a) {
cursor: text;
}
.full-lock{
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
cursor: url('https://im.oytour.com/trip/cusor/c7ca2e93ad449598be9ead2d132dd05b.svg'), default;
z-index: 99;
}
}
.drag-handler {
height: 20px;
......
......@@ -323,6 +323,11 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.1.tgz#1e416d3627393fab1cb5b0f2f1796a100ae9133a"
integrity sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==
"@babel/parser@^7.24.7":
version "7.24.7"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85"
integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3":
version "7.23.3"
resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz"
......@@ -1250,7 +1255,7 @@
resolved "https://registry.npmmirror.com/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz"
integrity sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==
"@ctrl/tinycolor@^3.4.1":
"@ctrl/tinycolor@^3.4.0", "@ctrl/tinycolor@^3.4.1":
version "3.6.1"
resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz"
integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==
......@@ -1260,6 +1265,11 @@
resolved "https://registry.npmmirror.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz"
integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
"@element-plus/icons-vue@^1.1.1":
version "1.1.4"
resolved "https://registry.yarnpkg.com/@element-plus/icons-vue/-/icons-vue-1.1.4.tgz#5d2788ea356f1458068e6d400e724ca5f3d29aca"
integrity sha512-Iz/nHqdp1sFPmdzRwHkEQQA3lKvoObk8azgABZ81QUOpW9s/lUyQVUSh0tNtEPZXQlKwlSh7SPgoVxzrE0uuVQ==
"@element-plus/icons-vue@^2.0.6", "@element-plus/icons-vue@^2.1.0":
version "2.1.0"
resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz"
......@@ -1369,6 +1379,13 @@
dependencies:
"@hapi/hoek" "^9.0.0"
"@hcaptcha/vue3-hcaptcha@^1.3.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@hcaptcha/vue3-hcaptcha/-/vue3-hcaptcha-1.3.0.tgz#0c8ffcc46d57d1a1c73eafb4c58396df35e5e1d1"
integrity sha512-IEonS6JiYdU7uy6aeib8cYtMO4nj8utwStbA9bWHyYbOvOvhpkV+AW8vfSKh6SntYxqle/TRwhv+kU9p92CfsA==
dependencies:
vue "^3.2.19"
"@humanwhocodes/config-array@^0.11.13":
version "0.11.13"
resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz"
......@@ -1498,7 +1515,7 @@
resolved "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.23.tgz"
integrity sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==
"@popperjs/core@^2.9.0", "@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7":
"@popperjs/core@^2.11.3", "@popperjs/core@^2.9.0", "@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7":
version "2.11.8"
resolved "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.8.tgz"
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
......@@ -1908,6 +1925,11 @@
resolved "https://registry.npmmirror.com/@types/trusted-types/-/trusted-types-2.0.6.tgz"
integrity sha512-HYtNooPvUY9WAVRBr4u+4Qa9fYD1ze2IUlAD3HoA6oehn1taGwBx3Oa52U4mTslTS+GAExKpaFu39Y5xUEwfjg==
"@types/web-bluetooth@^0.0.14":
version "0.0.14"
resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.14.tgz#94e175b53623384bff1f354cdb3197a8d63cdbe5"
integrity sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==
"@types/web-bluetooth@^0.0.16":
version "0.0.16"
resolved "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz"
......@@ -2318,6 +2340,17 @@
estree-walker "^2.0.2"
source-map-js "^1.0.2"
"@vue/compiler-core@3.4.29":
version "3.4.29"
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.29.tgz#6c0878e98716b1cb64e7d44ed07feda96ab7f639"
integrity sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==
dependencies:
"@babel/parser" "^7.24.7"
"@vue/shared" "3.4.29"
entities "^4.5.0"
estree-walker "^2.0.2"
source-map-js "^1.2.0"
"@vue/compiler-dom@3.3.8":
version "3.3.8"
resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz"
......@@ -2334,6 +2367,14 @@
"@vue/compiler-core" "3.4.21"
"@vue/shared" "3.4.21"
"@vue/compiler-dom@3.4.29":
version "3.4.29"
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz#c8f55528c8d8c8c36687d56a19e53b268c7d6c56"
integrity sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==
dependencies:
"@vue/compiler-core" "3.4.29"
"@vue/shared" "3.4.29"
"@vue/compiler-sfc@3.4.21":
version "3.4.21"
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz#4af920dc31ab99e1ff5d152b5fe0ad12181145b2"
......@@ -2349,6 +2390,21 @@
postcss "^8.4.35"
source-map-js "^1.0.2"
"@vue/compiler-sfc@3.4.29":
version "3.4.29"
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz#da7927c5c736048995fe9c6604288633e0ac161a"
integrity sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==
dependencies:
"@babel/parser" "^7.24.7"
"@vue/compiler-core" "3.4.29"
"@vue/compiler-dom" "3.4.29"
"@vue/compiler-ssr" "3.4.29"
"@vue/shared" "3.4.29"
estree-walker "^2.0.2"
magic-string "^0.30.10"
postcss "^8.4.38"
source-map-js "^1.2.0"
"@vue/compiler-sfc@^3.3.7":
version "3.3.8"
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz"
......@@ -2381,6 +2437,14 @@
"@vue/compiler-dom" "3.4.21"
"@vue/shared" "3.4.21"
"@vue/compiler-ssr@3.4.29":
version "3.4.29"
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz#210b0267667fe1e5ec69ca4e3c473f94da6ac37f"
integrity sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==
dependencies:
"@vue/compiler-dom" "3.4.29"
"@vue/shared" "3.4.29"
"@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.3.0":
version "3.3.0"
resolved "https://registry.npmmirror.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz"
......@@ -2434,6 +2498,13 @@
dependencies:
"@vue/shared" "3.4.21"
"@vue/reactivity@3.4.29":
version "3.4.29"
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.29.tgz#a821b12b765ecb9a1923a401d6c0979dc668f7af"
integrity sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==
dependencies:
"@vue/shared" "3.4.29"
"@vue/runtime-core@3.4.21":
version "3.4.21"
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.21.tgz#3749c3f024a64c4c27ecd75aea4ca35634db0062"
......@@ -2442,6 +2513,14 @@
"@vue/reactivity" "3.4.21"
"@vue/shared" "3.4.21"
"@vue/runtime-core@3.4.29":
version "3.4.29"
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.29.tgz#3c7d5ef00aa8ab1e1de9de0a8656f21db3cd8367"
integrity sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==
dependencies:
"@vue/reactivity" "3.4.29"
"@vue/shared" "3.4.29"
"@vue/runtime-dom@3.4.21":
version "3.4.21"
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.21.tgz#91f867ef64eff232cac45095ab28ebc93ac74588"
......@@ -2451,6 +2530,16 @@
"@vue/shared" "3.4.21"
csstype "^3.1.3"
"@vue/runtime-dom@3.4.29":
version "3.4.29"
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz#02d4199e8280b3f1332ec35e03bfcc244ce2bfdb"
integrity sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==
dependencies:
"@vue/reactivity" "3.4.29"
"@vue/runtime-core" "3.4.29"
"@vue/shared" "3.4.29"
csstype "^3.1.3"
"@vue/server-renderer@3.4.21":
version "3.4.21"
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.21.tgz#150751579d26661ee3ed26a28604667fa4222a97"
......@@ -2459,6 +2548,14 @@
"@vue/compiler-ssr" "3.4.21"
"@vue/shared" "3.4.21"
"@vue/server-renderer@3.4.29":
version "3.4.29"
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.29.tgz#7a6d322837d836dd3affa69553f9fba140f91723"
integrity sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==
dependencies:
"@vue/compiler-ssr" "3.4.29"
"@vue/shared" "3.4.29"
"@vue/shared@3.3.8":
version "3.3.8"
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.8.tgz"
......@@ -2469,6 +2566,11 @@
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.21.tgz#de526a9059d0a599f0b429af7037cd0c3ed7d5a1"
integrity sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==
"@vue/shared@3.4.29":
version "3.4.29"
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.29.tgz#84908c284e88a269f8bceee59707b14eb4b2d284"
integrity sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==
"@vue/vue-loader-v15@npm:vue-loader@^15.9.7":
version "15.11.1"
resolved "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.11.1.tgz"
......@@ -2495,6 +2597,16 @@
"@vueuse/shared" "10.7.2"
vue-demi ">=0.14.6"
"@vueuse/core@^8.0.1":
version "8.9.4"
resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-8.9.4.tgz#c7db40f19390b3c9f4ff9294a30461497f62ec19"
integrity sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==
dependencies:
"@types/web-bluetooth" "^0.0.14"
"@vueuse/metadata" "8.9.4"
"@vueuse/shared" "8.9.4"
vue-demi "*"
"@vueuse/core@^9.1.0":
version "9.13.0"
resolved "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz"
......@@ -2519,6 +2631,11 @@
resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.2.tgz"
integrity sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==
"@vueuse/metadata@8.9.4":
version "8.9.4"
resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-8.9.4.tgz#a4132db33e4c1b1023636acfa20aa7b37ab3d978"
integrity sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw==
"@vueuse/metadata@9.13.0":
version "9.13.0"
resolved "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz"
......@@ -2531,6 +2648,13 @@
dependencies:
vue-demi ">=0.14.6"
"@vueuse/shared@8.9.4":
version "8.9.4"
resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-8.9.4.tgz#c9741c30ffb666b50d62f0dd80b76119fd47573e"
integrity sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==
dependencies:
vue-demi "*"
"@vueuse/shared@9.13.0":
version "9.13.0"
resolved "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz"
......@@ -2809,7 +2933,7 @@ amdefine@>=0.0.4:
resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==
animate.css@^4.1.1:
animate.css@4.1.1, animate.css@^4.1.1:
version "4.1.1"
resolved "https://registry.npmmirror.com/animate.css/-/animate.css-4.1.1.tgz"
integrity sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==
......@@ -2946,7 +3070,7 @@ astral-regex@^2.0.0:
resolved "https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz"
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
async-validator@^4.2.5:
async-validator@^4.0.7, async-validator@^4.2.5:
version "4.2.5"
resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz"
integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==
......@@ -4006,6 +4130,11 @@ dateformat@^2.0.0:
resolved "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz"
integrity sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==
dayjs@^1.10.8:
version "1.11.11"
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e"
integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==
dayjs@^1.11.3:
version "1.11.10"
resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz"
......@@ -4328,6 +4457,24 @@ electron-to-chromium@^1.4.535:
resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.587.tgz"
integrity sha512-RyJX0q/zOkAoefZhB9XHghGeATVP0Q3mwA253XD/zj2OeXc+JZB9pCaEv6R578JUYaWM9PRhye0kXvd/V1cQ3Q==
element-plus@2.1.4:
version "2.1.4"
resolved "https://registry.yarnpkg.com/element-plus/-/element-plus-2.1.4.tgz#52ad532d5c7c321822244bd12ff5c03ba6e22632"
integrity sha512-pcwgDbKUrzyWbixYB/zIbLPLBQ/NPGPJnGXJ+jYozUSthPW4SuriaUGJKgbAE6PDBAtw3IodiT2E2GbiaZLxww==
dependencies:
"@ctrl/tinycolor" "^3.4.0"
"@element-plus/icons-vue" "^1.1.1"
"@popperjs/core" "^2.11.3"
"@vueuse/core" "^8.0.1"
async-validator "^4.0.7"
dayjs "^1.10.8"
escape-html "^1.0.3"
lodash "^4.17.21"
lodash-es "^4.17.21"
lodash-unified "^1.0.2"
memoize-one "^6.0.0"
normalize-wheel-es "^1.1.1"
element-plus@^2.4.2:
version "2.4.2"
resolved "https://registry.npmmirror.com/element-plus/-/element-plus-2.4.2.tgz"
......@@ -6489,6 +6636,13 @@ magic-string@^0.30.1, magic-string@^0.30.5:
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.15"
magic-string@^0.30.10:
version "0.30.10"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e"
integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.15"
magic-string@^0.30.7:
version "0.30.8"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.8.tgz#14e8624246d2bedba70d5462aa99ac9681844613"
......@@ -6750,6 +6904,11 @@ mlly@^1.2.0, mlly@^1.4.2:
pkg-types "^1.0.3"
ufo "^1.3.0"
mobile-detect@^1.4.5:
version "1.4.5"
resolved "https://registry.yarnpkg.com/mobile-detect/-/mobile-detect-1.4.5.tgz#da393c3c413ca1a9bcdd9ced653c38281c0fb6ad"
integrity sha512-yc0LhH6tItlvfLBugVUEtgawwFU2sIe+cSdmRJJCTMZ5GEJyLxNyC/NIOAOGk67Fa8GNpOttO3Xz/1bHpXFD/g==
module-alias@^2.2.2:
version "2.2.3"
resolved "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.3.tgz"
......@@ -6897,7 +7056,7 @@ normalize-url@^6.0.1:
resolved "https://registry.npmmirror.com/normalize-url/-/normalize-url-6.1.0.tgz"
integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
normalize-wheel-es@^1.2.0:
normalize-wheel-es@^1.1.1, normalize-wheel-es@^1.2.0:
version "1.2.0"
resolved "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz"
integrity sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==
......@@ -7631,6 +7790,15 @@ postcss@^8.4.35:
picocolors "^1.0.0"
source-map-js "^1.2.0"
postcss@^8.4.38:
version "8.4.38"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e"
integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==
dependencies:
nanoid "^3.3.7"
picocolors "^1.0.0"
source-map-js "^1.2.0"
pptxgenjs@^3.12.0:
version "3.12.0"
resolved "https://registry.npmmirror.com/pptxgenjs/-/pptxgenjs-3.12.0.tgz"
......@@ -9672,6 +9840,13 @@ vue-loader@^17.0.0:
hash-sum "^2.0.0"
watchpack "^2.4.0"
vue-router@4:
version "4.3.3"
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.3.3.tgz#7505509d429a36694b12ba1f6530016c5ce5f6bf"
integrity sha512-8Q+u+WP4N2SXY38FDcF2H1dUEbYVHVPtPCPZj/GTZx8RCbiB8AtJP9+YIxn4Vs0svMTNQcLIzka4GH7Utkx9xQ==
dependencies:
"@vue/devtools-api" "^6.5.1"
vue-router@^4.0.13:
version "4.3.0"
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.3.0.tgz#d5913f27bf68a0a178ee798c3c88be471811a235"
......@@ -9692,11 +9867,36 @@ vue-template-es2015-compiler@^1.9.0:
resolved "https://registry.npmmirror.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz"
integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
vue-waterfall-plugin-next@^2.4.3:
version "2.4.3"
resolved "https://registry.yarnpkg.com/vue-waterfall-plugin-next/-/vue-waterfall-plugin-next-2.4.3.tgz#4cd6bba6c0db5b2e42713ceb765fb3ff6aed2c59"
integrity sha512-L2mH8wOn+ZuddPhaYHKljfukNM0iQd3vhjesvBK4ck+D5swS8c34VdlOED2w53QZvUrXQpEg9ASDHzLlLkzztg==
dependencies:
animate.css "4.1.1"
element-plus "2.1.4"
vue-router "4"
vue-waypoint@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/vue-waypoint/-/vue-waypoint-4.3.0.tgz#e5beff3a82beaf4749a63236eacbda6ff96eed46"
integrity sha512-hze6CUkb7x+xiHp+rNChHTQB+wYeQ8OM4MHnJe78JBY4luK9fkDp/iAN1+gS5LNYU7iNbwAIBE7yIokRdoFh+A==
vue3-leaderline@^1.2.11:
version "1.2.11"
resolved "https://registry.npmjs.org/vue3-leaderline/-/vue3-leaderline-1.2.11.tgz"
integrity sha512-VeVpCchNR7p67wULGsHrwwdxLix25qGuw1fMrKjCrLEl+QDvW1PSCI1UsRLRuJ8tMNO5TrAta5fmURErPetQXA==
vue@^3.2.19:
version "3.4.29"
resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.29.tgz#fad5a0fe6dfa5c4a2cfbbc48c489e7989616a15b"
integrity sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==
dependencies:
"@vue/compiler-dom" "3.4.29"
"@vue/compiler-sfc" "3.4.29"
"@vue/runtime-dom" "3.4.29"
"@vue/server-renderer" "3.4.29"
"@vue/shared" "3.4.29"
vue@^3.4.21:
version "3.4.21"
resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.21.tgz#69ec30e267d358ee3a0ce16612ba89e00aaeb731"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment