upload 支持自定义内容,crud 添加 info 详情按钮

This commit is contained in:
icssoa 2022-08-12 21:21:05 +08:00
parent 4a52b02715
commit 2477a44ee5
28 changed files with 156 additions and 126 deletions

View File

@ -1,6 +1,6 @@
{
"name": "front-next",
"version": "5.7.10",
"version": "5.8.0",
"scripts": {
"dev": "vite --host",
"build": "vite build",
@ -11,16 +11,16 @@
"dependencies": {
"@codemirror/lang-javascript": "^6.0.1",
"@codemirror/theme-one-dark": "^6.0.0",
"@cool-vue/crud": "^5.3.6",
"@cool-vue/crud": "^5.4.0",
"@element-plus/icons-vue": "^2.0.6",
"@vueuse/core": "^8.9.4",
"@vueuse/core": "^9.1.0",
"axios": "^0.27.2",
"codemirror": "^6.0.1",
"core-js": "^3.23.5",
"echarts": "^5.3.3",
"element-plus": "^2.2.12",
"file-saver": "^2.0.5",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"mitt": "^3.0.0",
"mockjs": "^1.1.0",
"nprogress": "^0.2.0",
@ -36,7 +36,7 @@
"xlsx": "^0.18.5"
},
"devDependencies": {
"@types/lodash": "^4.14.182",
"@types/lodash-es": "^4.17.6",
"@types/mockjs": "^1.0.6",
"@types/node": "^18.0.6",
"@types/nprogress": "^0.2.0",
@ -45,7 +45,6 @@
"@types/uuid": "^8.3.4",
"@typescript-eslint/eslint-plugin": "^5.30.6",
"@typescript-eslint/parser": "^5.30.6",
"@unocss/preset-uno": "^0.44.3",
"@vitejs/plugin-vue": "^3.0.1",
"@vitejs/plugin-vue-jsx": "^2.0.0",
"@vue/cli-plugin-babel": "^5.0.8",
@ -56,12 +55,13 @@
"eslint-config-prettier": "^8.1.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-vue": "^9.2.0",
"lodash": "^4.17.21",
"magic-string": "^0.26.2",
"prettier": "^2.7.1",
"sass": "^1.53.0",
"sass-loader": "^13.0.2",
"typescript": "^4.7.4",
"vite": "^3.0.3",
"vite": "^3.0.6",
"vite-plugin-compression": "^0.5.1"
}
}

View File

@ -1,7 +1,7 @@
import { isDev, config } from "../config";
import { BaseService, service } from "../service";
import { Data, toCamel } from "../utils";
import { isArray, isEmpty } from "lodash";
import { isArray, isEmpty } from "lodash-es";
// 获取标签名
function getNames(v: any) {

View File

@ -1,6 +1,6 @@
// @ts-nocheck
import { App } from "vue";
import { isFunction, orderBy } from "lodash";
import { isFunction, orderBy } from "lodash-es";
import { Data, deepMerge, filename, mergeService } from "../utils";
import { service } from "../service";
import { module } from "../module";

View File

@ -1,7 +1,7 @@
import { ElMessage } from "element-plus";
import { createRouter, createWebHashHistory, createWebHistory, RouteRecordRaw } from "vue-router";
import { config, Router, storage, module } from "/@/cool";
import { isArray } from "lodash";
import { isArray } from "lodash-es";
import { useBase } from "/$/base";
import { Loading } from "../utils";

View File

@ -1,6 +1,6 @@
// @ts-nocheck
import { isDev, config, proxy } from "../config";
import { isObject } from "lodash";
import { isObject } from "lodash-es";
import { request } from "./request";
export function Service(

View File

@ -1,4 +1,4 @@
import { isArray, orderBy } from "lodash";
import { isArray, orderBy } from "lodash-es";
import storage from "./storage";
// 首字母大写

View File

@ -1,5 +1,5 @@
import { useStore } from "../store";
import { isObject } from "lodash";
import { isObject } from "lodash-es";
function parse(value: any) {
const { menu } = useStore();

View File

@ -12,7 +12,7 @@
<script lang="ts">
import { computed, defineComponent, PropType } from "vue";
import { isNumber } from "lodash";
import { isNumber } from "lodash-es";
import { User } from "@element-plus/icons-vue";
export default defineComponent({

View File

@ -19,7 +19,7 @@ import { javascript } from "@codemirror/lang-javascript";
import { oneDark } from "@codemirror/theme-one-dark";
import { ref, watch, computed } from "vue";
import { useDark } from "@vueuse/core";
import { isNumber } from "lodash";
import { isNumber } from "lodash-es";
const props = defineProps({
modelValue: {

View File

@ -9,7 +9,7 @@
import { computed, defineComponent, onMounted, ref, watch } from "vue";
import Quill from "quill";
import "quill/dist/quill.snow.css";
import { isNumber } from "lodash";
import { isNumber } from "lodash-es";
export default defineComponent({
name: "cl-editor-quill",

View File

@ -6,7 +6,7 @@
<script lang="ts" name="cl-svg" setup>
import { computed, ref } from "vue";
import { isNumber } from "lodash";
import { isNumber } from "lodash-es";
const props = defineProps({
name: {

View File

@ -28,7 +28,7 @@
<script lang="ts">
import { computed, defineComponent } from "vue";
import { isArray, isNumber, isString } from "lodash";
import { isArray, isNumber, isString } from "lodash-es";
import { PictureFilled } from "@element-plus/icons-vue";
export default defineComponent({

View File

@ -6,7 +6,7 @@
<script lang="ts">
import { defineComponent, computed } from "vue";
import { isArray, isString, last } from "lodash";
import { isArray, isString, last } from "lodash-es";
import { Link } from "@element-plus/icons-vue";
export default defineComponent({

View File

@ -1,7 +1,7 @@
import { useCrud } from "@cool-vue/crud";
import { ElMessage } from "element-plus";
import { defineComponent, ref, watch } from "vue";
import { isBoolean } from "lodash";
import { isBoolean } from "lodash-es";
export default defineComponent({
name: "cl-switch",

View File

@ -27,7 +27,7 @@
<script lang="ts" setup>
import { watch } from "vue";
import { last } from "lodash";
import { last } from "lodash-es";
import { useCool } from "/@/cool";
import { ArrowLeft, Close } from "@element-plus/icons-vue";
import { ContextMenu } from "@cool-vue/crud";

View File

@ -17,7 +17,7 @@
<script lang="ts" name="route-nav" setup>
import { computed } from "vue";
import _ from "lodash";
import _ from "lodash-es";
import { useCool } from "/@/cool";
import { useBase } from "/$/base";

View File

@ -2,7 +2,7 @@ import { ElMessage } from "element-plus";
import { defineStore } from "pinia";
import { ref } from "vue";
import { deepTree, revDeepTree, storage } from "/@/cool/utils";
import { isEmpty, orderBy } from "lodash";
import { isEmpty, orderBy } from "lodash-es";
import { service, config } from "/@/cool";
import { revisePath } from "../utils";
import { Menu } from "../types";

View File

@ -75,7 +75,7 @@ import { onMounted, ref } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import { useCool } from "/@/cool";
import { deepTree, revDeepTree } from "/@/cool/utils";
import { isArray } from "lodash";
import { isArray } from "lodash-es";
import { ContextMenu, useForm } from "@cool-vue/crud";
import { Refresh as RefreshIcon, Operation, MoreFilled } from "@element-plus/icons-vue";
import { useBase, checkPerm } from "/$/base";

View File

@ -14,7 +14,7 @@
</template>
<script lang="ts" name="menu-create" setup>
import { isEmpty } from "lodash";
import { isEmpty } from "lodash-es";
import { ElMessage } from "element-plus";
import { useCool } from "/@/cool";
import { useForm } from "@cool-vue/crud";

View File

@ -20,7 +20,7 @@
<script lang="ts" name="menu-select" setup>
import { useForm } from "@cool-vue/crud";
import { cloneDeep } from "lodash";
import { cloneDeep } from "lodash-es";
import { computed, onMounted, ref, watch } from "vue";
import { useCool } from "/@/cool";
import { deepTree } from "/@/cool/utils";

View File

@ -27,7 +27,7 @@ import { ElMessage } from "element-plus";
import { reactive, ref } from "vue";
import { useBase } from "/$/base";
import { useCool } from "/@/cool";
import { cloneDeep } from "lodash";
import { cloneDeep } from "lodash-es";
const { service } = useCool();
const { user } = useBase();

View File

@ -15,7 +15,7 @@
keep-alive
custom-class="cl-chat__dialog"
:close-on-click-modal="false"
:close-on-press-escape="false"
close-on-press-escape
append-to-body
:controls="['slot-expand', 'cl-flex1', 'fullscreen', 'close']"
>
@ -56,7 +56,7 @@ import dayjs from "dayjs";
import { useCool, config, module } from "/@/cool";
import { useBase } from "/$/base";
import { Notebook, ArrowLeft, BellFilled } from "@element-plus/icons-vue";
import { debounce } from "lodash";
import { debounce } from "lodash-es";
// import io from "socket.io-client";
import { Socket } from "socket.io-client";
import ChatMessage from "./message.vue";

View File

@ -162,7 +162,8 @@ const Table = useTable({
},
{
type: "op",
buttons: ["edit", "delete"]
width: 250,
buttons: ["info", "edit", "delete"]
}
]
});

View File

@ -23,7 +23,17 @@
</div>
<div class="item">
<p>自定义</p>
<p>自定义内容</p>
<cl-upload text="选择图片" multiple>
<el-button>上传</el-button>
<template #item="{ item, index }">
<p>{{ item.url }}</p>
</template>
</cl-upload>
</div>
<div class="item">
<p>自定义大小</p>
<cl-upload text="选择图片" :size="[120, 200]" />
</div>

View File

@ -5,7 +5,8 @@
:class="[
`cl-upload--${type}`,
{
'is-slot': $slots.default
'is-slot': $slots.default,
'is-disabled': disabled
}
]"
>
@ -26,7 +27,7 @@
:show-file-list="false"
:http-request="
(req) => {
httpRequest(req, item);
return httpRequest(req, item);
}
"
:before-upload="
@ -38,54 +39,58 @@
:disabled="disabled"
v-if="showFileList"
>
<div class="cl-upload__item" :class="[`is-${item.type}`]">
<!-- 图片 -->
<template v-if="item.type == 'image'">
<el-image :src="item.preload" fit="cover"></el-image>
</template>
<slot name="item" :item="item" :index="index">
<div class="cl-upload__item" :class="[`is-${item.type}`]">
<!-- 图片 -->
<template v-if="item.type == 'image'">
<el-image :src="item.preload" fit="cover"></el-image>
</template>
<!-- 文件 -->
<template v-else>
<!-- 文件名 -->
<span class="cl-upload__name"
>{{ fileName(item.preload) }}.{{ extname(item.preload) }}</span
<!-- 文件 -->
<template v-else>
<!-- 文件名 -->
<span class="cl-upload__name"
>{{ fileName(item.preload) }}.{{
extname(item.preload)
}}</span
>
<!-- 大小 -->
<span class="cl-upload__size">
{{ fileSize(item.size) }}
</span>
</template>
<!-- 工具 -->
<div class="cl-upload__actions">
<!-- 预览 -->
<span @click.stop="preview(item)" v-show="item.url">
<el-icon><zoom-in /></el-icon>
</span>
<!-- 删除 -->
<span @click.stop="remove(index)" v-if="!disabled">
<el-icon><delete /></el-icon>
</span>
</div>
<!-- 进度条 -->
<div
class="cl-upload__progress"
v-if="item.progress > 0 && item.progress < 100"
>
<el-progress
:percentage="item.progress"
:show-text="false"
></el-progress>
</div>
<!-- 大小 -->
<span class="cl-upload__size">
{{ fileSize(item.size) }}
</span>
</template>
<!-- 工具 -->
<div class="cl-upload__actions">
<!-- 预览 -->
<span @click.stop="preview(item)" v-show="item.url">
<el-icon><zoom-in /></el-icon>
</span>
<!-- 删除 -->
<span @click.stop="remove(index)">
<el-icon><delete /></el-icon>
</span>
<!-- 错误 -->
<div class="cl-upload__error" v-if="item.error">
{{ item.error }}
</div>
</div>
<!-- 进度条 -->
<div
class="cl-upload__progress"
v-if="item.progress > 0 && item.progress < 100"
>
<el-progress
:percentage="item.progress"
:show-text="false"
></el-progress>
</div>
<!-- 错误 -->
<div class="cl-upload__error" v-if="item.error">
{{ item.error }}
</div>
</div>
</slot>
</el-upload>
</template>
@ -129,7 +134,7 @@
<script lang="ts" setup name="cl-upload">
import { computed, ref, reactive, watch, PropType } from "vue";
import { isArray, isNumber } from "lodash";
import { isArray, isNumber } from "lodash-es";
import dayjs from "dayjs";
import Draggable from "vuedraggable";
import { ElMessage } from "element-plus";
@ -491,12 +496,19 @@ defineExpose({
});
</script>
<style lang="scss">
<style lang="scss" scoped>
.cl-upload {
display: flex;
flex-wrap: wrap;
line-height: normal;
&.is-disabled {
:deep(.cl-upload__item) {
cursor: not-allowed;
background-color: var(--el-disabled-bg-color);
}
}
.Ghost {
opacity: 0.7;
}

View File

@ -104,7 +104,7 @@
<script lang="ts" setup name="cl-upload-space">
import { computed, onMounted, provide, reactive, ref, watch } from "vue";
import { isEmpty } from "lodash";
import { isEmpty } from "lodash-es";
import { ElMessage, ElMessageBox } from "element-plus";
import { Notebook, ArrowLeft, UploadFilled } from "@element-plus/icons-vue";
import { module, useCool } from "/@/cool";

View File

@ -39,7 +39,7 @@
import { ElMessage, ElMessageBox } from "element-plus";
import { ArrowRightBold } from "@element-plus/icons-vue";
import { computed, inject, onMounted, ref } from "vue";
import { isEmpty } from "lodash";
import { isEmpty } from "lodash-es";
import { useCool } from "/@/cool";
import { ContextMenu, useForm } from "@cool-vue/crud";
import { useBase } from "/$/base";

View File

@ -1052,10 +1052,10 @@
style-mod "^4.0.0"
w3c-keyname "^2.2.4"
"@cool-vue/crud@^5.3.6":
version "5.3.6"
resolved "https://registry.npmjs.org/@cool-vue/crud/-/crud-5.3.6.tgz#2e7fe0e482c25f5181929810e9ec6c9e6557c966"
integrity sha512-4cim6t5XpCOnbhEV9cA9akwr45fd/zsGJeLQEv4s7e1dqRRzEDXYa8tIDTZV+LDOLNcevWga/i7AlmmPTc5Q6w==
"@cool-vue/crud@^5.4.0":
version "5.4.0"
resolved "https://registry.npmjs.org/@cool-vue/crud/-/crud-5.4.0.tgz#2c174c9184ad7bd34fb4faf981e3406d3ef05bf0"
integrity sha512-7su1XhOMaRZbwbmVb9UOxxsyUB5bug7BRtu3Gpz/2sOVkolCsJJBqDqF8K5wiLmx1/ZXtjbzK797AywoMIpzyA==
dependencies:
array.prototype.flat "^1.2.4"
core-js "^3.21.1"
@ -1348,6 +1348,11 @@
resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.14.tgz#94e175b53623384bff1f354cdb3197a8d63cdbe5"
integrity sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==
"@types/web-bluetooth@^0.0.15":
version "0.0.15"
resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz#d60330046a6ed8a13b4a53df3813c44942ebdf72"
integrity sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==
"@types/webpack-env@^1.15.2":
version "1.17.0"
resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.17.0.tgz#f99ce359f1bfd87da90cc4a57cab0a18f34a48d0"
@ -1433,35 +1438,6 @@
"@typescript-eslint/types" "5.31.0"
eslint-visitor-keys "^3.3.0"
"@unocss/core@0.44.7":
version "0.44.7"
resolved "https://registry.npmjs.org/@unocss/core/-/core-0.44.7.tgz#e2185cbdee65e13821a8ba102dfecd5d54ebadcc"
integrity sha512-EPs3IxvPdzxEkEynAyCqyJX25IPp5RtFK3mFdgmXGvigwpgq9sxJBzQRXmYNtDeZriSyiwjYmc9yclLEJH3IiA==
"@unocss/preset-mini@0.44.7":
version "0.44.7"
resolved "https://registry.npmjs.org/@unocss/preset-mini/-/preset-mini-0.44.7.tgz#05685903ecfd6f18401ca5334e0172fe2d8be0da"
integrity sha512-EPRogHZstaRGh4244FUixaQUgfQW1lfKnbyh8ZewtL+iCN0YdDEyWuITtqA1yv9sMlJdn9nAEowA3is9ZkWtBQ==
dependencies:
"@unocss/core" "0.44.7"
"@unocss/preset-uno@^0.44.3":
version "0.44.7"
resolved "https://registry.npmjs.org/@unocss/preset-uno/-/preset-uno-0.44.7.tgz#fc205daff08cb77d5e744d7cd95a99c932d7deb9"
integrity sha512-JN1/hCy51RdQmDjCkVZWzFZv0XREyFIxSv/Wy3XfI3rzD42vdcTei/OraFfEhkh9/SdF9uUlIh9QQwOFZUWpyg==
dependencies:
"@unocss/core" "0.44.7"
"@unocss/preset-mini" "0.44.7"
"@unocss/preset-wind" "0.44.7"
"@unocss/preset-wind@0.44.7":
version "0.44.7"
resolved "https://registry.npmjs.org/@unocss/preset-wind/-/preset-wind-0.44.7.tgz#b5aabccf37d26c37a9d6c743d2a3dfeb55f0c070"
integrity sha512-mjzNwY18A/WT8cSGuxf52rYR/gy1jjDXg1xF38/Jn1Nln4jOBkKzrQTyk4c/3GJWNrHav8hE3VanD8+l7Q6W6A==
dependencies:
"@unocss/core" "0.44.7"
"@unocss/preset-mini" "0.44.7"
"@vitejs/plugin-vue-jsx@^2.0.0":
version "2.0.0"
resolved "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-2.0.0.tgz#9947c72f9ead40cb7950ba5a9e9f7ac4c5b74df1"
@ -1744,7 +1720,7 @@
resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz#8e6adc3f2759af52f0e85863dfb0b711ecc5c702"
integrity sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==
"@vueuse/core@^8.7.5", "@vueuse/core@^8.9.4":
"@vueuse/core@^8.7.5":
version "8.9.4"
resolved "https://registry.npmjs.org/@vueuse/core/-/core-8.9.4.tgz#c7db40f19390b3c9f4ff9294a30461497f62ec19"
integrity sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==
@ -1754,11 +1730,26 @@
"@vueuse/shared" "8.9.4"
vue-demi "*"
"@vueuse/core@^9.1.0":
version "9.1.0"
resolved "https://registry.npmjs.org/@vueuse/core/-/core-9.1.0.tgz#f0fb13fd99768c0eb617169a2d2c1cbd5f5a52eb"
integrity sha512-BIroqvXEqt826aE9r3K5cox1zobuPuAzdYJ36kouC2TVhlXvFKIILgFVWrpp9HZPwB3aLzasmG3K87q7TSyXZg==
dependencies:
"@types/web-bluetooth" "^0.0.15"
"@vueuse/metadata" "9.1.0"
"@vueuse/shared" "9.1.0"
vue-demi "*"
"@vueuse/metadata@8.9.4":
version "8.9.4"
resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-8.9.4.tgz#a4132db33e4c1b1023636acfa20aa7b37ab3d978"
integrity sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw==
"@vueuse/metadata@9.1.0":
version "9.1.0"
resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.1.0.tgz#194d4bd47f7acb91e348c0f436e678ddf7ee235b"
integrity sha512-8OEhlog1iaAGTD3LICZ8oBGQdYeMwByvXetOtAOZCJOzyCRSwqwdggTsmVZZ1rkgYIEqgUBk942AsAPwM21s6A==
"@vueuse/shared@8.9.4":
version "8.9.4"
resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-8.9.4.tgz#c9741c30ffb666b50d62f0dd80b76119fd47573e"
@ -1766,6 +1757,13 @@
dependencies:
vue-demi "*"
"@vueuse/shared@9.1.0":
version "9.1.0"
resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-9.1.0.tgz#d8459a45324f32fb05a2a56ed754637c3d0efaeb"
integrity sha512-pB/3njQu4tfJJ78ajELNda0yMG6lKfpToQW7Soe09CprF1k3QuyoNi1tBNvo75wBDJWD+LOnr+c4B5HZ39jY/Q==
dependencies:
vue-demi "*"
"@webassemblyjs/ast@1.11.1":
version "1.11.1"
resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
@ -3954,7 +3952,7 @@ postcss-selector-parser@^6.0.9:
cssesc "^3.0.0"
util-deprecate "^1.0.2"
postcss@^8.1.10, postcss@^8.4.14:
postcss@^8.1.10:
version "8.4.14"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
@ -3963,6 +3961,15 @@ postcss@^8.1.10, postcss@^8.4.14:
picocolors "^1.0.0"
source-map-js "^1.0.2"
postcss@^8.4.16:
version "8.4.16"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c"
integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==
dependencies:
nanoid "^3.3.4"
picocolors "^1.0.0"
source-map-js "^1.0.2"
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@ -4162,10 +4169,10 @@ rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
rollup@^2.75.6:
version "2.77.2"
resolved "https://registry.npmjs.org/rollup/-/rollup-2.77.2.tgz#6b6075c55f9cc2040a5912e6e062151e42e2c4e3"
integrity sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g==
"rollup@>=2.75.6 <2.77.0 || ~2.77.0":
version "2.77.3"
resolved "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz#8f00418d3a2740036e15deb653bed1a90ee0cc12"
integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==
optionalDependencies:
fsevents "~2.3.2"
@ -4662,15 +4669,15 @@ vite-plugin-compression@^0.5.1:
debug "^4.3.3"
fs-extra "^10.0.0"
vite@^3.0.3:
version "3.0.4"
resolved "https://registry.npmjs.org/vite/-/vite-3.0.4.tgz#c61688d6b97573e96cf5ac25f2d68597b5ce68e8"
integrity sha512-NU304nqnBeOx2MkQnskBQxVsa0pRAH5FphokTGmyy8M3oxbvw7qAXts2GORxs+h/2vKsD+osMhZ7An6yK6F1dA==
vite@^3.0.6:
version "3.0.6"
resolved "https://registry.npmjs.org/vite/-/vite-3.0.6.tgz#08e85ebaa34a3b647cb1365c87675b45f3511be0"
integrity sha512-pjfsWIzfUlQME/VAmU6SsjdHkTt6WAHysuqPkHDcjzNu6IGtxDSZ/VfRYOwHaCqX4M3Ivz0kxuSfAPM6gAIX+w==
dependencies:
esbuild "^0.14.47"
postcss "^8.4.14"
postcss "^8.4.16"
resolve "^1.22.1"
rollup "^2.75.6"
rollup ">=2.75.6 <2.77.0 || ~2.77.0"
optionalDependencies:
fsevents "~2.3.2"