Merge branch 'fix-viewer-bug' into 'develop'

Fix viewer bug

See merge request geovisio/website!139
This commit is contained in:
Jean Andreani
2024-04-29 14:12:37 +00:00
18 changed files with 268 additions and 291 deletions

View File

@@ -27,7 +27,6 @@ ENV VITE_ZOOM=DOCKER_VITE_ZOOM
ENV VITE_CENTER=DOCKER_VITE_CENTER
# Build code
ENV PORT=3000
RUN yarn deploy
@@ -51,7 +50,7 @@ ENV VITE_INSTANCE_NAME="GeoVisio/Docker"
ENV VITE_API_URL="https://panoramax.openstreetmap.fr"
ENV VITE_TILES="https://tile-vect.openstreetmap.fr/styles/basic/style.json"
ENV VITE_MAX_ZOOM=""
# ENV VITE_RASTER_TILE=""
ENV VITE_RASTER_TILE=""
ENV VITE_ZOOM=""
ENV VITE_CENTER=""

View File

@@ -29,7 +29,7 @@ services:
aliases:
- front.localtest.me
e2e:
image: cypress/included:cypress-12.17.3-node-21.7.2-chrome-114.0.5735.133-1-ff-114.0.2-edge-114.0.1823.51-1
image: cypress/included:cypress-13.8.1-node-22.0.0-chrome-124.0.6367.60-1-ff-125.0.2-edge-124.0.2478.51-1
volumes:
- $PROJECT_DIR:/src
working_dir: /src

View File

@@ -1,5 +1,5 @@
{
"textButtonContribute": "Partager des images",
"textButtonContribute": "Partager des photos",
"textButtonDocCli": "Voir la documentation",
"textButtonDoc": "Retrouvez sa documentation ici",
"textButtonDocPython": "de python (au moins la version 3.8)",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

View File

@@ -1,10 +1,10 @@
#!/bin/bash
ROOT_DIR=/usr/share/nginx/html
DOCKER_VARS=(VITE_INSTANCE_NAME VITE_API_URL VITE_TILES VITE_MAX_ZOOM VITE_ZOOM VITE_CENTER )
DOCKER_VARS=(VITE_INSTANCE_NAME VITE_API_URL VITE_TILES VITE_MAX_ZOOM VITE_ZOOM VITE_CENTER VITE_RASTER_TILE )
echo "Setting env variables in web files"
for file in $ROOT_DIR/assets/*.js $ROOT_DIR/index.html; do
for file in $ROOT_DIR/assets/*.js $ROOT_DIR/*.html; do
echo "Processing $file...";
for i in ${!DOCKER_VARS[@]}; do

View File

@@ -25,7 +25,7 @@
"axios": "^1.2.3",
"bootstrap": "^5.2.3",
"bootstrap-icons": "^1.10.3",
"geovisio": "2.5.1-develop-54c2e0c8",
"geovisio": "2.5.1-develop-3e498d46",
"moment": "^2.29.4",
"pako": "^2.1.0",
"pinia": "^2.1.4",
@@ -54,7 +54,7 @@
"@vue/eslint-config-typescript": "^11.0.0",
"@vue/test-utils": "^2.2.4",
"@vue/tsconfig": "^0.1.3",
"cypress": "^13.1.0",
"cypress": "^13.8.1",
"eslint": "^8.29.0",
"eslint-config-prettier": "^8.5.0",
"eslint-import-resolver-typescript": "^3.5.5",
@@ -67,6 +67,7 @@
"npm-run-all": "^4.1.5",
"prettier": "2.8.1",
"sass": "^1.62.0",
"terser": "^5.30.4",
"typescript": "~4.7.4",
"vite": "^3.2.4",
"vite-plugin-eslint": "^1.8.1",

View File

@@ -9,7 +9,7 @@
<script lang="ts" setup>
import { computed } from 'vue'
const instanceName = computed((): string | null => {
const instanceName = import.meta.env.VITE_INSTANCE_NAME
const instanceName = String(import.meta.env.VITE_INSTANCE_NAME)
if (instanceName) return instanceName
return null
})

View File

@@ -15,7 +15,13 @@ import {
} from '@/components-viewer/reportLink'
import { useI18n } from 'vue-i18n'
import { hasASessionCookieDecoded } from '@/utils/auth'
import type { ViewerInterface, MapInterface } from '@/views/interfaces/common'
import type {
ViewerInterface,
ParamsViewerInterface,
EditorInterface,
StandAloneInterface,
MapInterface
} from '@/views/interfaces/common'
const sequenceStore = useSequenceStore()
const { t } = useI18n()
let mapIsLoaded = ref<boolean>(false)
@@ -86,134 +92,80 @@ function createViewerButton(link: HTMLDivElement): void {
}
)
}
function setupViewer(style: void | null): void {
const maxZoom = import.meta.env.VITE_MAX_ZOOM
const zoom = import.meta.env.VITE_ZOOM
const center = import.meta.env.VITE_CENTER
const raster = import.meta.env.VITE_RASTER_TILE
let paramsViewer: ViewerInterface = { map: { startWide: true } }
if (raster && raster !== '') {
paramsViewer = {
map: {
...paramsViewer.map,
raster: JSON.parse(raster)
}
}
function setupViewer(params: ParamsViewerInterface): void {
const maxZoom = String(import.meta.env.VITE_MAX_ZOOM)
const zoom = String(import.meta.env.VITE_ZOOM)
const center = String(import.meta.env.VITE_CENTER)
const reportLink = document.createElement('div')
reportLink.className = 'gvs-group gvs-group-large gvs-group-btnpanel'
let paramsViewer: ViewerInterface = {
...params,
widgets: { customWidget: reportLink },
map: { startWide: true }
}
if (center && center !== '') {
if (center && center.length > 0) {
const centerMap = center.split(',').map((el: string) => parseInt(el))
paramsViewer = {
...paramsViewer,
map: {
...paramsViewer.map,
center: centerMap
}
}
}
if (zoom && zoom.length) {
if (zoom && zoom.length > 0) {
paramsViewer = {
...paramsViewer,
map: {
...paramsViewer.map,
zoom: parseFloat(zoom)
}
}
}
if (maxZoom && maxZoom.length) {
if (maxZoom && maxZoom.length > 0) {
paramsViewer = {
...paramsViewer,
map: {
...paramsViewer.map,
maxZoom: parseInt(maxZoom)
}
}
}
if (style) {
paramsViewer = {
map: {
...paramsViewer.map,
style
}
}
}
if (props.picId) {
paramsViewer = {
...paramsViewer,
selectedPicture: props.picId
}
}
if (props.fetchOptions) {
paramsViewer = {
...paramsViewer,
...props.fetchOptions
}
}
const reportLink = document.createElement('div')
reportLink.className = 'gvs-group gvs-group-large gvs-group-btnpanel'
viewer.value = new Viewer(
'viewer', // Div ID
`${manageSlashUrl()}/api/search`,
{
...paramsViewer,
widgets: { customWidget: reportLink }
...paramsViewer
}
)
if (viewer.value && viewer.value.addEventListener) {
createViewerButton(reportLink)
}
}
function setupStandAlone(style: void | null): void {
let paramsMap: MapInterface
paramsMap = { users: [props.userId], minZoom: 7 }
if (style) {
paramsMap = {
...paramsMap,
style
}
function setupStandAlone(params: ParamsViewerInterface): void {
let paramsMap: StandAloneInterface = {
...params,
padding: { top: 70, bottom: 70, left: 70, right: 70 },
minZoom: 7,
maxZoom: 14,
speed: 10,
zoom: 14
}
if (props.userId) paramsMap = { ...paramsMap, users: [props.userId] }
const bbox = [props.bbox[0], props.bbox[1], props.bbox[2], props.bbox[3]]
viewer.value = new StandaloneMap(
props.id, // Div ID
`${manageSlashUrl()}/api/search`,
{
...paramsMap,
bounds: bbox,
padding: { top: 70, bottom: 70, left: 70, right: 70 },
maxZoom: 14,
speed: 10,
zoom: 14
bounds: bbox
}
)
}
function setupEditor(style: void | null): void {
const raster = import.meta.env.VITE_RASTER_TILE
let paramsMap: MapInterface
paramsMap = {
users: [props.userId],
minZoom: 7,
selectedSequence: props.seqId
}
if (raster && raster !== '') {
paramsMap = {
...paramsMap,
raster: JSON.parse(raster)
}
}
if (style) {
paramsMap = {
...paramsMap,
style
}
}
if (props.picId) {
paramsMap = {
...paramsMap,
selectedPicture: props.picId
}
}
if (props.fetchOptions) {
paramsMap = {
...paramsMap,
...props.fetchOptions
}
}
function setupEditor(params: ParamsViewerInterface): void {
let paramsMap: EditorInterface = { ...params, minZoom: 7 }
if (props.seqId) paramsMap = { ...paramsMap, selectedSequence: props.seqId }
if (props.userId) paramsMap = { ...paramsMap, users: [props.userId] }
try {
viewer.value = new Editor(
'viewer', // Div ID
@@ -228,19 +180,37 @@ function setupEditor(style: void | null): void {
}
onMounted(async (): Promise<void> => {
const tiles = import.meta.env.VITE_TILES
const style = tiles ? await fetchTiles(tiles) : null
const tiles = String(import.meta.env.VITE_TILES)
const rasterTile = String(import.meta.env.VITE_RASTER_TILE)
let params: ParamsViewerInterface | MapInterface = {}
if (rasterTile && rasterTile.length > 0) {
const raster = JSON.parse(rasterTile)
if (props.viewerType === 'viewer') params = { ...params, raster }
else params = { ...params, map: { raster } }
}
if (tiles && tiles.length) params = { style: await fetchTiles(tiles) }
if (props.picId && props.picId.length) {
params = { ...params, selectedPicture: props.picId }
}
if (props.fetchOptions && props.fetchOptions.credentials) {
params = { ...params, ...props.fetchOptions }
}
try {
if (props.viewerType === 'standAlone') setupStandAlone(style)
else if (props.viewerType === 'editor') setupEditor(style)
else setupViewer(style)
if (props.viewerType === 'standAlone') setupStandAlone(params)
else if (props.viewerType === 'editor') setupEditor(params)
else setupViewer(params)
mapIsLoaded.value = true
} catch (err) {
console.log(err)
mapIsLoaded.value = true
}
})
onUnmounted((): void => {
if (viewer.value && props.viewerType) viewer.value.destroy()
if (viewer.value && props.viewerType) {
viewer.value.addEventListener('psv:picture-loaded', (): void => {
viewer.value.destroy()
})
}
})
async function fetchTiles(tiles: string): Promise<void> {

View File

@@ -23,10 +23,10 @@ declare global {
}
}
axios.defaults.baseURL = import.meta.env.VITE_API_URL
axios.defaults.baseURL = String(import.meta.env.VITE_API_URL)
axios.defaults.withCredentials = true
const matomoHost = import.meta.env.VITE_MATOMO_HOST
const matomoSiteId = import.meta.env.VITE_MATOMO_SITE_ID
const matomoHost = String(import.meta.env.VITE_MATOMO_HOST)
const matomoSiteId = String(import.meta.env.VITE_MATOMO_SITE_ID)
const matomoExist = matomoHost && matomoSiteId
const i18n = createI18n({

View File

@@ -3,7 +3,7 @@ function createUrlLink(picId: string): string {
}
function manageSlashUrl(): string {
let apiUrl = import.meta.env.VITE_API_URL
let apiUrl = String(import.meta.env.VITE_API_URL)
if (apiUrl.charAt(apiUrl.length - 1) !== '/') apiUrl += '/'
return apiUrl
}

View File

@@ -1,15 +1,15 @@
<template>
<main id="homePage" class="entry-page">
<section class="entry-section">
<Viewer ref="viewerRef"> </Viewer>
<WebsiteViewer ref="viewerRef" />
</section>
</main>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
import Viewer from '@/components/Viewer.vue'
import type ViewerType from '@/components/Viewer.vue'
import WebsiteViewer from '@/components/WebsiteViewer.vue'
import type ViewerType from '@/components/WebsiteViewer.vue'
const viewerRef = ref<InstanceType<typeof ViewerType>>()
</script>
<style scoped lang="scss">

View File

@@ -8,7 +8,7 @@
/>
</div>
<section v-if="sequence" class="entry-viewer">
<Viewer
<WebsiteViewer
:key="viewerType"
:fetch-options="{ fetchOptions: { credentials: 'include' } }"
:pic-id="pictures[0].id"
@@ -201,7 +201,7 @@ import TabPanel from '@/components/TabPanel.vue'
import PanelPhotosManagement from '@/components/sequence/PanelPhotosManagement.vue'
import PanelOrientationManagement from '@/components/sequence/PanelOrientationManagement.vue'
import PanelSortManagement from '@/components/sequence/PanelSortManagement.vue'
import Viewer from '@/components/Viewer.vue'
import WebsiteViewer from '@/components/WebsiteViewer.vue'
import type ViewerType from '@/components/Viewer.vue'
import { durationCalc, formatDate } from '@/utils/dates'
import {
@@ -312,7 +312,7 @@ function setPanelView(value: string): void {
panelView.value = value
if (!viewerRef?.value?.viewer) return
if (value === 'orientation') {
const raster = import.meta.env.VITE_RASTER_TILE
const raster = String(import.meta.env.VITE_RASTER_TILE)
if (raster) viewerRef.value.viewer.map.setBackground('aerial')
setSeqDegrees()
} else viewerRef.value.viewer.map.setBackground('streets')

View File

@@ -19,7 +19,7 @@
class-name-handle="resize-handle-map"
@resizing="onResizeMap"
>
<Viewer
<WebsiteViewer
v-if="collectionBbox.length"
:fetch-options="{
fetchOptions: {
@@ -294,7 +294,7 @@ import {
} from '@/views/utils/sequence/index'
import { useCookies } from 'vue3-cookies'
import axios from 'axios'
import Viewer from '@/components/Viewer.vue'
import WebsiteViewer from '@/components/WebsiteViewer.vue'
import type ViewerType from '@/components/Viewer.vue'
import Button from '@/components/Button.vue'
import Link from '@/components/Link.vue'

View File

@@ -171,7 +171,9 @@ const { t } = useI18n()
const { authConf } = authConfig()
const apiUrl = computed((): string =>
import.meta.env.VITE_API_URL ? manageSlashUrl() : 'https://panoramax.ign.fr/'
String(import.meta.env.VITE_API_URL)
? manageSlashUrl()
: 'https://panoramax.ign.fr/'
)
const formatTextInfoCard = computed((): string => {

View File

@@ -60,7 +60,6 @@
:text="$t('pages.upload.input_label')"
:text-second-part="$t('pages.upload.import_word')"
:text-picture-type="$t('pages.upload.import_type')"
accept="image/jpeg"
data-displayModal="input-add-pictures"
@trigger="addPictures"
/>

View File

@@ -1,37 +1,59 @@
export interface MapInterface {
startWide?: boolean
export interface StandAloneInterface extends ParamsViewerInterface {
maxZoom: number
minZoom: number
padding: { top: number; bottom: number; left: number; right: number }
speed: number
zoom: number
users?: string[]
}
export interface EditorInterface extends ParamsViewerInterface {
users?: string[]
maxZoom?: number
selectedSequence?: string
minZoom: number
}
export interface ViewerInterface {
widgets: { customWidget: HTMLDivElement }
map: {
startWide: boolean
center?: number[]
hash?: boolean
maxZoom?: number
zoom?: number
raster?:
| {
type: string
tiles: string[]
attribution: string
tileSize: number
}
| string
}
fetchOptions?: { credentials: string }
}
export interface ParamsViewerInterface {
style?: void
raster?: RasterInterface
selectedPicture?: string
minZoom?: number
style?: object | string
zoom?: number
center?: number[]
bounds?: number[]
background?: string
raster?: {
type: string
tiles: string[]
attribution: string
tileSize: number
fetchOptions?: { credentials: string }
}
export interface MapInterface {
style?: void
selectedPicture?: string
fetchOptions?: { credentials: string }
map: {
raster?: RasterInterface
}
}
export interface ViewerInterface {
fetchOptions?: {
credentials: string
}
hash?: boolean
selectedPicture?: string
widgets?: {
customWidget: HTMLAnchorElement
}
map: MapInterface
raster?: {
type: string
tiles: string[]
attribution: string
tileSize: number
}
interface RasterInterface {
raster:
| {
type: string
tiles: string[]
attribution: string
tileSize: number
}
| string
}

View File

@@ -3,6 +3,7 @@ import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import eslintPlugin from 'vite-plugin-eslint'
import { createHtmlPlugin } from 'vite-plugin-html'
// https://vitejs.dev/config/
export default ({ mode }) => {
process.env = { ...process.env, ...loadEnv(mode, process.cwd()) }
@@ -49,6 +50,14 @@ export default ({ mode }) => {
'@': fileURLToPath(new URL('./src', import.meta.url)),
'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js'
}
},
build: {
minify: 'terser',
terserOptions: {
mangle: false,
keep_classnames: true,
keep_fnames: true
}
}
})
}

267
yarn.lock
View File

@@ -925,31 +925,31 @@
integrity sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==
"@photo-sphere-viewer/core@^5.7.2":
version "5.7.2"
resolved "https://registry.yarnpkg.com/@photo-sphere-viewer/core/-/core-5.7.2.tgz#689a93354370b733441cfe336f7b0a04ab9df631"
integrity sha512-5RznXVRwuO+Izceae2SbwYM/H8GHtwxKlT26P4UcRFZYsYKllMAggAz9hhU729Vu+r1+il5PHvomIsmPHVTTaw==
version "5.7.3"
resolved "https://registry.yarnpkg.com/@photo-sphere-viewer/core/-/core-5.7.3.tgz#b17523df65c1a57c86f023d9a8cc0819d026f4c2"
integrity sha512-F2YYQVHwRxrFFvBXdfx0o9rBVOiHgHyMCGgtnJvo4dKVtoUzJdTjXXKVYiOG1ZCVpx1jsyhZeY5DykHnU+7NSw==
dependencies:
three "^0.161.0"
"@photo-sphere-viewer/equirectangular-tiles-adapter@^5.7.2":
version "5.7.2"
resolved "https://registry.yarnpkg.com/@photo-sphere-viewer/equirectangular-tiles-adapter/-/equirectangular-tiles-adapter-5.7.2.tgz#a83fc71b27c5f5ea8f6e4f3574db9528f0f3ad0d"
integrity sha512-ldObfwS0LAUKhPaTXlN+3NEkdfHd8qqqe4GeYcUjfirdRujPXsp2lCxanWstRI9qOF2HEYV1KwhSMyC92Tdy9g==
version "5.7.3"
resolved "https://registry.yarnpkg.com/@photo-sphere-viewer/equirectangular-tiles-adapter/-/equirectangular-tiles-adapter-5.7.3.tgz#7e150e72046b3c07a2ba127405cb358c19f8f5b6"
integrity sha512-6s3wxoQYzaudyWGXtOaIaQnrumWGi1j7RtdInbJW1OZ/LK28bW1xd16Nape72NFCLcibpT9JQD9MNSbiEShviw==
"@photo-sphere-viewer/gallery-plugin@^5.7.2":
version "5.7.2"
resolved "https://registry.yarnpkg.com/@photo-sphere-viewer/gallery-plugin/-/gallery-plugin-5.7.2.tgz#1fa92520879a06cc9b80aa7123e933a0d3e467f0"
integrity sha512-TG8sho17Q6vbVOtoQZ8Pfuo41vXOcswbHlLvlvnJyJyW46A9/VIA/8amcPEhVw4n1FZ07inp5/HoM9Hzd1VpEg==
version "5.7.3"
resolved "https://registry.yarnpkg.com/@photo-sphere-viewer/gallery-plugin/-/gallery-plugin-5.7.3.tgz#3232022c228cca7d6b3ec847e06e48305408c7b0"
integrity sha512-RRXdkYcjb210Lo3wXY3+6uKU/tkfFbhf59909ZA7tVn2HUIURgDrhif4t+S+Wv6Gq7lr3D38l4XIvKiplZqHgw==
"@photo-sphere-viewer/markers-plugin@^5.7.2":
version "5.7.2"
resolved "https://registry.yarnpkg.com/@photo-sphere-viewer/markers-plugin/-/markers-plugin-5.7.2.tgz#c48f296c919eff7893df28536a246af6a361ca4f"
integrity sha512-WBbFCRl6+XYkqRwJlN7Hpavhr5qnjaEyFRqY0rnsFelLIb/lfiYtMInJ1K0L4zv0so/NOW+AY+Tt8+HbIQMSTQ==
version "5.7.3"
resolved "https://registry.yarnpkg.com/@photo-sphere-viewer/markers-plugin/-/markers-plugin-5.7.3.tgz#5e53eb26cd9902203d563689ff27c450442c8047"
integrity sha512-m4f/vqCAMnwEssHiN1akvnsmD6yWdREI2t7Hs/k+nsbWd/vJ2XKb0iio/JyZWbCJhgsKGZ5sasqzhdxSOQBI8A==
"@photo-sphere-viewer/virtual-tour-plugin@^5.7.2":
version "5.7.2"
resolved "https://registry.yarnpkg.com/@photo-sphere-viewer/virtual-tour-plugin/-/virtual-tour-plugin-5.7.2.tgz#e85183b852bf4a62cc68e6e296bd83ab8d788ee4"
integrity sha512-3pal6sgTtoIlgQwmqimjKlEfa1XZKZpYO6Wft4Zk/J6r3pyGf8ZqrD4XPtxrDgiV3f3nZXyaUry3xkrLrxQbSw==
version "5.7.3"
resolved "https://registry.yarnpkg.com/@photo-sphere-viewer/virtual-tour-plugin/-/virtual-tour-plugin-5.7.3.tgz#3359446d1ff429c7c7673329b80a62ff13ae0591"
integrity sha512-TMlRT5edoLk54YtyPY1U3q7h2OfCFEvQna8zoSilhBO21ENivOtnCm055YS6JvaAuTmD91kN4lfBZlhk0+fzPg==
"@pinia/testing@^0.1.2":
version "0.1.3"
@@ -1083,9 +1083,9 @@
"@types/estree" "*"
"@types/eslint@*", "@types/eslint@^8.4.5":
version "8.56.9"
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.9.tgz#403e9ced04a34e63f1c383c5b8ee1a94442c8cc4"
integrity sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==
version "8.56.10"
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d"
integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==
dependencies:
"@types/estree" "*"
"@types/json-schema" "*"
@@ -1455,47 +1455,47 @@
semver "^7.3.4"
strip-ansi "^6.0.0"
"@vue/compiler-core@3.4.23":
version "3.4.23"
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.23.tgz#a08f5998e391ad75e602a66dd7255af9054df2f3"
integrity sha512-HAFmuVEwNqNdmk+w4VCQ2pkLk1Vw4XYiiyxEp3z/xvl14aLTUBw2OfVH3vBcx+FtGsynQLkkhK410Nah1N2yyQ==
"@vue/compiler-core@3.4.24":
version "3.4.24"
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.24.tgz#6b4a5ffddcd874a692f2acfa68981201bcd7096b"
integrity sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A==
dependencies:
"@babel/parser" "^7.24.1"
"@vue/shared" "3.4.23"
"@babel/parser" "^7.24.4"
"@vue/shared" "3.4.24"
entities "^4.5.0"
estree-walker "^2.0.2"
source-map-js "^1.2.0"
"@vue/compiler-dom@3.4.23", "@vue/compiler-dom@^3.3.0":
version "3.4.23"
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.23.tgz#6fa622d1e5c8508551564c5dc5948e9cddf60867"
integrity sha512-t0b9WSTnCRrzsBGrDd1LNR5HGzYTr7LX3z6nNBG+KGvZLqrT0mY6NsMzOqlVMBKKXKVuusbbB5aOOFgTY+senw==
"@vue/compiler-dom@3.4.24", "@vue/compiler-dom@^3.3.0":
version "3.4.24"
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.24.tgz#b7335a49f095b6d35e48b6f7be8da513c1fa52b8"
integrity sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA==
dependencies:
"@vue/compiler-core" "3.4.23"
"@vue/shared" "3.4.23"
"@vue/compiler-core" "3.4.24"
"@vue/shared" "3.4.24"
"@vue/compiler-sfc@3.4.23", "@vue/compiler-sfc@^3.2.37":
version "3.4.23"
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.23.tgz#7041517b9bbd1b304f0db33bfa424e9a899fda8d"
integrity sha512-fSDTKTfzaRX1kNAUiaj8JB4AokikzStWgHooMhaxyjZerw624L+IAP/fvI4ZwMpwIh8f08PVzEnu4rg8/Npssw==
"@vue/compiler-sfc@3.4.24", "@vue/compiler-sfc@^3.2.37":
version "3.4.24"
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.24.tgz#2872e353147ce2a145169a33ddd4d68dc95c3a18"
integrity sha512-nRAlJUK02FTWfA2nuvNBAqsDZuERGFgxZ8sGH62XgFSvMxO2URblzulExsmj4gFZ8e+VAyDooU9oAoXfEDNxTA==
dependencies:
"@babel/parser" "^7.24.1"
"@vue/compiler-core" "3.4.23"
"@vue/compiler-dom" "3.4.23"
"@vue/compiler-ssr" "3.4.23"
"@vue/shared" "3.4.23"
"@babel/parser" "^7.24.4"
"@vue/compiler-core" "3.4.24"
"@vue/compiler-dom" "3.4.24"
"@vue/compiler-ssr" "3.4.24"
"@vue/shared" "3.4.24"
estree-walker "^2.0.2"
magic-string "^0.30.8"
magic-string "^0.30.10"
postcss "^8.4.38"
source-map-js "^1.2.0"
"@vue/compiler-ssr@3.4.23":
version "3.4.23"
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.23.tgz#1ae4afe962a9e156b1a79eff909c37cd423dd4c2"
integrity sha512-hb6Uj2cYs+tfqz71Wj6h3E5t6OKvb4MVcM2Nl5i/z1nv1gjEhw+zYaNOV+Xwn+SSN/VZM0DgANw5TuJfxfezPg==
"@vue/compiler-ssr@3.4.24":
version "3.4.24"
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.24.tgz#0d11fe54dabd17cbd6393a16bf7f785da1cfab46"
integrity sha512-ZsAtr4fhaUFnVcDqwW3bYCSDwq+9Gk69q2r/7dAHDrOMw41kylaMgOP4zRnn6GIEJkQznKgrMOGPMFnLB52RbQ==
dependencies:
"@vue/compiler-dom" "3.4.23"
"@vue/shared" "3.4.23"
"@vue/compiler-dom" "3.4.24"
"@vue/shared" "3.4.24"
"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.5.1":
version "6.6.1"
@@ -1534,42 +1534,42 @@
path-browserify "^1.0.1"
vue-template-compiler "^2.7.14"
"@vue/reactivity@3.4.23":
version "3.4.23"
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.23.tgz#f29044a90a24994af075e4368790f31fa29ed747"
integrity sha512-GlXR9PL+23fQ3IqnbSQ8OQKLodjqCyoCrmdLKZk3BP7jN6prWheAfU7a3mrltewTkoBm+N7qMEb372VHIkQRMQ==
"@vue/reactivity@3.4.24":
version "3.4.24"
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.24.tgz#150584316ca2acc4ed19a24f9f29863c3a17a7b2"
integrity sha512-nup3fSYg4i4LtNvu9slF/HF/0dkMQYfepUdORBcMSsankzRPzE7ypAFurpwyRBfU1i7Dn1kcwpYsE1wETSh91g==
dependencies:
"@vue/shared" "3.4.23"
"@vue/shared" "3.4.24"
"@vue/runtime-core@3.4.23":
version "3.4.23"
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.23.tgz#21f6c7153c33f56081145c2819c2f194cbe3eb22"
integrity sha512-FeQ9MZEXoFzFkFiw9MQQ/FWs3srvrP+SjDKSeRIiQHIhtkzoj0X4rWQlRNHbGuSwLra6pMyjAttwixNMjc/xLw==
"@vue/runtime-core@3.4.24":
version "3.4.24"
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.24.tgz#066c544dc59a07a96c12874a57b750c239124874"
integrity sha512-c7iMfj6cJMeAG3s5yOn9Rc5D9e2/wIuaozmGf/ICGCY3KV5H7mbTVdvEkd4ZshTq7RUZqj2k7LMJWVx+EBiY1g==
dependencies:
"@vue/reactivity" "3.4.23"
"@vue/shared" "3.4.23"
"@vue/reactivity" "3.4.24"
"@vue/shared" "3.4.24"
"@vue/runtime-dom@3.4.23":
version "3.4.23"
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.23.tgz#d5a9cca88b445de125c57e6b0d73faa2491e853f"
integrity sha512-RXJFwwykZWBkMiTPSLEWU3kgVLNAfActBfWFlZd0y79FTUxexogd0PLG4HH2LfOktjRxV47Nulygh0JFXe5f9A==
"@vue/runtime-dom@3.4.24":
version "3.4.24"
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.24.tgz#4f8e7acbe1e8ffa7c55af1366e4438729ebe9b20"
integrity sha512-uXKzuh/Emfad2Y7Qm0ABsLZZV6H3mAJ5ZVqmAOlrNQRf+T5mxpPGZBfec1hkP41t6h6FwF6RSGCs/gd8WbuySQ==
dependencies:
"@vue/runtime-core" "3.4.23"
"@vue/shared" "3.4.23"
"@vue/runtime-core" "3.4.24"
"@vue/shared" "3.4.24"
csstype "^3.1.3"
"@vue/server-renderer@3.4.23":
version "3.4.23"
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.23.tgz#e605872e26d995f5ba9382e8758cd8cc7fa2e16d"
integrity sha512-LDwGHtnIzvKFNS8dPJ1SSU5Gvm36p2ck8wCZc52fc3k/IfjKcwCyrWEf0Yag/2wTFUBXrqizfhK9c/mC367dXQ==
"@vue/server-renderer@3.4.24":
version "3.4.24"
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.24.tgz#80dd546f8d6a9f5c4f8b68083fe9cc2d62299332"
integrity sha512-H+DLK4sQF6sRgzKyofmlEVBIV/9KrQU6HIV7nt6yIwSGGKvSwlV8pqJlebUKLpbXaNHugdSfAbP6YmXF69lxow==
dependencies:
"@vue/compiler-ssr" "3.4.23"
"@vue/shared" "3.4.23"
"@vue/compiler-ssr" "3.4.24"
"@vue/shared" "3.4.24"
"@vue/shared@3.4.23", "@vue/shared@^3.3.0":
version "3.4.23"
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.23.tgz#e536a6dfd2f5f950d08c2e8ebcfe7e5329a851a1"
integrity sha512-wBQ0gvf+SMwsCQOyusNw/GoXPV47WGd1xB5A1Pgzy0sQ3Bi5r5xm3n+92y3gCnB3MWqnRDdvfkRGxhKtbBRNgg==
"@vue/shared@3.4.24", "@vue/shared@^3.3.0":
version "3.4.24"
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.24.tgz#278ac71f492b392b9b17fe8fc7d324db1a8842db"
integrity sha512-BW4tajrJBM9AGAknnyEw5tO2xTmnqgup0VTnDAMcxYmqOX0RG0b9aSUGAbEKolD91tdwpA6oCwbltoJoNzpItw==
"@vue/test-utils@^2.2.4":
version "2.4.5"
@@ -2268,9 +2268,9 @@ camelcase@^6.2.0:
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
caniuse-lite@^1.0.30001587:
version "1.0.30001610"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001610.tgz#2f44ed6e21d359e914271ae35b68903632628ccf"
integrity sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA==
version "1.0.30001612"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz#d34248b4ec1f117b70b24ad9ee04c90e0b8a14ae"
integrity sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==
caseless@~0.12.0:
version "0.12.0"
@@ -2647,10 +2647,10 @@ csstype@^3.1.3:
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
cypress@^13.1.0:
version "13.7.3"
resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.7.3.tgz#3e7dcd32e007676a6c8e972293c50d6ef329d991"
integrity sha512-uoecY6FTCAuIEqLUYkTrxamDBjMHTYak/1O7jtgwboHiTnS1NaMOoR08KcTrbRZFCBvYOiS4tEkQRmsV+xcrag==
cypress@^13.8.1:
version "13.8.1"
resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.8.1.tgz#f558e51b770a409e2360031bbd36c3f4fb3f2db4"
integrity sha512-Uk6ovhRbTg6FmXjeZW/TkbRM07KPtvM5gah1BIMp4Y2s+i/NMxgaLw0+PbYTOdw1+egE0FP3mWRiGcRkjjmhzA==
dependencies:
"@cypress/request" "^3.0.0"
"@cypress/xvfb" "^1.2.4"
@@ -3033,9 +3033,9 @@ ejs@^3.1.6:
jake "^10.8.5"
electron-to-chromium@^1.4.668:
version "1.4.738"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.738.tgz#9a7fca98abaee61e20c9c25013d5ce60bb533436"
integrity sha512-lwKft2CLFztD+vEIpesrOtCrko/TFnEJlHFdRhazU7Y/jx5qc4cqsocfVrBg4So4gGe9lvxnbLIoev47WMpg+A==
version "1.4.746"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.746.tgz#787213e75f6c7bccb55dfe8b68170555c548d093"
integrity sha512-jeWaIta2rIG2FzHaYIhSuVWqC6KJYo7oSBX4Jv7g+aVujKztfvdpf+n6MGwZdC5hQXbax4nntykLH2juIQrfPg==
emittery@^0.13.1:
version "0.13.1"
@@ -3968,10 +3968,10 @@ geojson-vt@^3.2.1:
resolved "https://registry.yarnpkg.com/geojson-vt/-/geojson-vt-3.2.1.tgz#f8adb614d2c1d3f6ee7c4265cad4bbf3ad60c8b7"
integrity sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==
geovisio@2.5.1-develop-54c2e0c8:
version "2.5.1-develop-54c2e0c8"
resolved "https://registry.yarnpkg.com/geovisio/-/geovisio-2.5.1-develop-54c2e0c8.tgz#2fa5d12d0d8b26fc6bfc8a344cc6207ee38d988f"
integrity sha512-OA47XzvsdZn8CjKhup/IHtpKV48zePzrYa2AaP7cEDEELdb+GjnJNL20NsFmaVzy+Z+m37KYocGw1YNjQlDpRQ==
geovisio@2.5.1-develop-3e498d46:
version "2.5.1-develop-3e498d46"
resolved "https://registry.yarnpkg.com/geovisio/-/geovisio-2.5.1-develop-3e498d46.tgz#5122cc239771dc52bb6e887b83c8f4eee3504239"
integrity sha512-HzO9PIx1uAJNtYz0FtKnBKWLVB7Ipy7EmLYOM/wrPDB8rFVA0u7o4Ihhk8TpqpvKrW/5mIBwm2xzIp7in5O7Mw==
dependencies:
"@fortawesome/fontawesome-svg-core" "^6.4.0"
"@fortawesome/free-solid-svg-icons" "^6.4.0"
@@ -5262,9 +5262,9 @@ jest@^29.6.4:
jest-cli "^29.7.0"
joi@^17.4.0:
version "17.12.3"
resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.3.tgz#944646979cd3b460178547b12ba37aca8482f63d"
integrity sha512-2RRziagf555owrm9IRVtdKynOBeITiDpuZqIpgwqXShPncPKNiRQoiGsl/T8SQdq+8ugRzH2LqY67irr2y/d+g==
version "17.13.0"
resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.0.tgz#b6f340b8029ee7af2397f821d17a4f03bf34b043"
integrity sha512-9qcrTyoBmFZRNHeVP4edKqIUEgFzq7MHvTNSDuHSqkpOPtiBkgNgcmTSqmiw1kw9tdKaiddvIDv/eCJDxmqWCA==
dependencies:
"@hapi/hoek" "^9.3.0"
"@hapi/topo" "^5.1.0"
@@ -5649,10 +5649,10 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
magic-string@^0.30.8:
version "0.30.9"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.9.tgz#8927ae21bfdd856310e07a1bc8dd5e73cb6c251d"
integrity sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==
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"
@@ -6422,9 +6422,9 @@ nth-check@^2.0.1, nth-check@^2.1.1:
boolbase "^1.0.0"
nwsapi@^2.2.2:
version "2.2.7"
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30"
integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==
version "2.2.9"
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.9.tgz#7f3303218372db2e9f27c27766bcfc59ae7e61c6"
integrity sha512-2f3F0SEEer8bBu0dsNCFF50N0cTThV1nWFYcEYFZttdW0lDAoybv9cQoK7X7/68Z89S7FoRrVjP1LPX4XRf9vg==
object-inspect@^1.13.1:
version "1.13.1"
@@ -7596,16 +7596,7 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
"string-width-cjs@npm:string-width@^4.2.0":
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
emoji-regex "^8.0.0"
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -7676,14 +7667,7 @@ stringify-entities@^4.0.0:
character-entities-html4 "^2.0.0"
character-entities-legacy "^3.0.0"
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
ansi-regex "^5.0.1"
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -7798,10 +7782,10 @@ terser-webpack-plugin@^5.3.10:
serialize-javascript "^6.0.1"
terser "^5.26.0"
terser@^5.10.0, terser@^5.26.0:
version "5.30.3"
resolved "https://registry.yarnpkg.com/terser/-/terser-5.30.3.tgz#f1bb68ded42408c316b548e3ec2526d7dd03f4d2"
integrity sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==
terser@^5.10.0, terser@^5.26.0, terser@^5.30.4:
version "5.30.4"
resolved "https://registry.yarnpkg.com/terser/-/terser-5.30.4.tgz#62b4d16a819424e6317fd5ceffb4ee8dc769803a"
integrity sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ==
dependencies:
"@jridgewell/source-map" "^0.3.3"
acorn "^8.8.2"
@@ -7849,9 +7833,9 @@ through@^2.3.8:
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
tinybench@^2.3.1:
version "2.7.0"
resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.7.0.tgz#d56198a69bead7e240c8f9542484f3eb3c3f749d"
integrity sha512-Qgayeb106x2o4hNzNjsZEfFziw8IbKqtbXBjVh7VIZfBxfD5M4gWtpyx5+YTae2gJ6Y6Dz/KLepiv16RFeQWNA==
version "2.8.0"
resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.8.0.tgz#30e19ae3a27508ee18273ffed9ac7018949acd7b"
integrity sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==
tinypool@^0.3.0:
version "0.3.1"
@@ -8395,9 +8379,9 @@ vue-axios@^3.5.2:
integrity sha512-GP+dct7UlAWkl1qoP3ppw0z6jcSua5/IrMpjB5O8bh089iIiJ+hdxPYH2NPEpajlYgkW5EVMP95ttXWdas1O0g==
vue-component-type-helpers@^2.0.0:
version "2.0.13"
resolved "https://registry.yarnpkg.com/vue-component-type-helpers/-/vue-component-type-helpers-2.0.13.tgz#4cd08fe6c42a071159664e6c30b7fe1b01e17b68"
integrity sha512-xNO5B7DstNWETnoYflLkVgh8dK8h2ZDgxY1M2O0zrqGeBNq5yAZ8a10yCS9+HnixouNGYNX+ggU9MQQq86HTpg==
version "2.0.14"
resolved "https://registry.yarnpkg.com/vue-component-type-helpers/-/vue-component-type-helpers-2.0.14.tgz#8030ddb73fe9229c764c02edbd2d4d1ead234e30"
integrity sha512-DInfgOyXlMyliyqAAD9frK28tTfch0+tMi4qoWJcZlRxUf+NFAtraJBnAsKLep+FOyLMiajkhfyEb3xLK08i7w==
vue-demi@>=0.14.5, vue-demi@>=0.14.7:
version "0.14.7"
@@ -8445,9 +8429,9 @@ vue-matomo@^4.2.0:
integrity sha512-m5hCw7LH3wPDcERaF4sp/ojR9sEx7Rl8TpOyH/4jjQxMF2DuY/q5pO+i9o5Dx+BXLSa9+IQ0qhAbWYRyESQXmA==
vue-router@^4.3.0:
version "4.3.1"
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.3.1.tgz#05943e16781d8feb5195a932824afecd4d0b8282"
integrity sha512-D0h3oyP6vp28BOvxv2hVpiqFTjTJizCf1BuMmCibc8UW0Ll/N80SWqDd/hqPMaZfzW1j+s2s+aTRyBIP9ElzOw==
version "4.3.2"
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.3.2.tgz#08096c7765dacc6832f58e35f7a081a8b34116a7"
integrity sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==
dependencies:
"@vue/devtools-api" "^6.5.1"
@@ -8486,15 +8470,15 @@ vue3-smooth-scroll@^0.8.1:
integrity sha512-9EN1aiBT2RtkIe1MoGiyGjUoLmqmlJ96R9/QVCylaiurHQ7oGu1SPzEoGJyxdhCa1q3qyMcX/pne1oTAn1UaoQ==
vue@^3.0.0, vue@^3.4.21:
version "3.4.23"
resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.23.tgz#9d5a990a71c5bd5446f80377828e6587cfc488d5"
integrity sha512-X1y6yyGJ28LMUBJ0k/qIeKHstGd+BlWQEOT40x3auJFTmpIhpbKLgN7EFsqalnJXq1Km5ybDEsp6BhuWKciUDg==
version "3.4.24"
resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.24.tgz#f269549939a6c092480f018aa0bd886ba64f4c6f"
integrity sha512-NPdx7dLGyHmKHGRRU5bMRYVE+rechR+KDU5R2tSTNG36PuMwbfAJ+amEvOAw7BPfZp5sQulNELSLm5YUkau+Sg==
dependencies:
"@vue/compiler-dom" "3.4.23"
"@vue/compiler-sfc" "3.4.23"
"@vue/runtime-dom" "3.4.23"
"@vue/server-renderer" "3.4.23"
"@vue/shared" "3.4.23"
"@vue/compiler-dom" "3.4.24"
"@vue/compiler-sfc" "3.4.24"
"@vue/runtime-dom" "3.4.24"
"@vue/server-renderer" "3.4.24"
"@vue/shared" "3.4.24"
w3c-xmlserializer@^4.0.0:
version "4.0.0"
@@ -8639,7 +8623,7 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -8657,15 +8641,6 @@ wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
dependencies:
ansi-styles "^4.0.0"
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"